專利名稱:用于加密和解密數(shù)據(jù)流的方法和系統(tǒng)的制作方法
用于加密和解密數(shù)據(jù)流的方法和系統(tǒng)
背景技術(shù):
數(shù)據(jù)加密是電子通信中很重要的一個(gè)方面。在從一個(gè)位置向另一個(gè)位置傳輸數(shù)據(jù)時(shí),可能期望加密數(shù)據(jù)以使得只有經(jīng)過授權(quán)的接收者能夠讀取。數(shù)據(jù)加密已經(jīng)被常規(guī)地應(yīng)用于電子設(shè)備之間的書面通信例如電子郵件和文本消息。但是,計(jì)算機(jī)圖形學(xué)的引入已經(jīng)使得除了文本之外還能夠?qū)D像進(jìn)行加密。圖像加密會(huì)使得全部或部分圖像不可讀。也就是說,無論是觀察員本人還是電子圖像閱讀器在沒有首先解密圖像的情況下都不能從加密圖像中識(shí)別出任何有意義的信息。現(xiàn)有圖像加密技術(shù)的一個(gè)問題在于,根據(jù)所用的編碼圖像的方法,可能會(huì)難于或者無法以令人滿意的方式進(jìn)行加密。較新的圖像格式例如JPEG2000在技術(shù)上很多方面都要優(yōu)于之前的格式。例如,與原始的JPEG標(biāo)準(zhǔn)相比,JPEG2000提供了更好的壓縮性能例如偽影更少,導(dǎo)致對原始圖像有更高的保真度,還提供了增強(qiáng)的比特率控制。但是,由于復(fù)雜度的增加,加密以JPEG2000編碼的圖像與加密以原始JPEG標(biāo)準(zhǔn)編碼的圖像相比在計(jì)算成本上通常會(huì)更加昂貴,例如搶占處理能力或者占用系統(tǒng)資源譬如總線帶寬。加密圖像的解密也會(huì)相應(yīng)地昂貴。在某些情況下,增加開銷可能是不允許的。例如,在需要基本上實(shí)時(shí)地進(jìn)行圖像解碼時(shí),譬如在互聯(lián)網(wǎng)流、電視、視頻監(jiān)控以及其他的視聽?wèi)?yīng)用中,可能無法足夠快地加密和/或解密以滿足帶寬的要求。另一種情況是當(dāng)存在大量的將被加密的圖像數(shù)據(jù)時(shí),例如大圖像文件、多圖像媒體例如視頻剪輯、幻燈片、電影、數(shù)字相冊等。在后一種情況下,盡管可能沒有對成品(例如完全加密圖像或完全解密圖像)的即時(shí)需要,但是總體的時(shí)間約束可能也會(huì)是一種限制因素。而且,代價(jià)高昂的加密和解密可能會(huì)從在相同系統(tǒng)上運(yùn)行的其他應(yīng)用程序抽調(diào)資源。
發(fā)明內(nèi)容
本發(fā)明的第一示例性實(shí)施例涉及一種數(shù)據(jù)流的加密方法,包括以下步驟接收數(shù)據(jù)流,并且對數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過加密數(shù)據(jù)包中的報(bào)頭部分同時(shí)保留數(shù)據(jù)包的主體部分不加密而形成加密包。該方法還包括組合由所有加密包構(gòu)成的加密數(shù)據(jù)流并輸出加密數(shù)據(jù)流的步驟。本發(fā)明的第二示例性實(shí)施例涉及一種加密數(shù)據(jù)流的解密方法,包括以下步驟接收加密數(shù)據(jù)流作為輸入,對加密數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過解密包中的報(bào)頭部分并將包中主體部分的位置作為報(bào)頭部分的函數(shù)加以確定而形成解密包,然后通過解碼解密包生成圖像。本發(fā)明的第三示例性實(shí)施例涉及一種用于加密數(shù)據(jù)流的設(shè)備。該設(shè)備包括被設(shè)置用于從數(shù)據(jù)源接收圖像作為輸入的輸入裝置,被設(shè)置用于將圖像編碼為數(shù)據(jù)流的編碼裝置,以及加密裝置,加密裝置被設(shè)置用于對數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過加密包中的報(bào)頭部分同時(shí)保留包的主體部分不加密而形成加密包,然后組合由加密包構(gòu)成的加密數(shù)據(jù)流。本發(fā)明的第四示例性實(shí)施例涉及一種用于將加密數(shù)據(jù)流解密的設(shè)備。該設(shè)備包括
4解密裝置,解密裝置被設(shè)置用于接收加密數(shù)據(jù)流作為輸入,并且對加密數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過解密包中的報(bào)頭部分并將包中主體部分的位置作為報(bào)頭部分的函數(shù)加以確定而形成解密包。該設(shè)備進(jìn)一步包括被設(shè)置用于通過解碼解密包而生成圖像的解碼裝置。本發(fā)明的第五示例性實(shí)施例涉及一種計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì),其上存儲(chǔ)有可由處理器執(zhí)行的一系列指令,這些指令被設(shè)置用于促使處理器執(zhí)行以下步驟接收未加密的數(shù)據(jù)流,對數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過加密包中的報(bào)頭部分同時(shí)保留包的主體部分不加密而形成加密包,組合由所有加密包構(gòu)成的加密數(shù)據(jù)流,以及輸出加密數(shù)據(jù)流。
圖1示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的用于加密數(shù)據(jù)流的系統(tǒng)的框圖。圖2示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的輸入設(shè)備的框圖。圖3示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的輸出設(shè)備的框圖。圖4示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的一組子帶。圖5示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的被劃分為多個(gè)子帶的圖像。圖6示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的碼流。圖7示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的用于加密數(shù)據(jù)流的方法。圖8示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的用于解密數(shù)據(jù)流的方法。
具體實(shí)施例方式本發(fā)明涉及用于加密和解密數(shù)據(jù)流的方法和系統(tǒng)。將參照對JPEG2000碼流的加密和解密來介紹本發(fā)明的示例性實(shí)施例。圖像的數(shù)字表示可以根據(jù)JPEG2000標(biāo)準(zhǔn)進(jìn)行編碼、加密、解密和解碼以生成實(shí)質(zhì)上代表編碼圖像的圖像。JPEG2000圖像的加密已經(jīng)被國際電信聯(lián)盟電信標(biāo)準(zhǔn)局(ITU-T)所推薦。在其 T. 807建議書中,ITU-T建議JPEG2000編碼的包應(yīng)該通過對包的主體(也就是每一個(gè)數(shù)據(jù)包中的數(shù)據(jù)內(nèi)容)進(jìn)行加密來加以保護(hù)。在碼流內(nèi)的每一個(gè)包中的主體都被加密之后,向碼流的主報(bào)頭添加標(biāo)記以使得能夠在隨后解密。因?yàn)镴PEG2000的這種基于包的結(jié)構(gòu),所以報(bào)頭信息是為了解析碼流和從一個(gè)包移動(dòng)到下一個(gè)包所必須的。為此,ITU-T建議書沒有加密包的報(bào)頭。推薦技術(shù)的一個(gè)缺點(diǎn)是必須加密每一個(gè)包主體所導(dǎo)致的計(jì)算開銷。但是, 這已經(jīng)被視為是必須的,原因在于加密碼流中的任意其他部分(例如包的報(bào)頭)將會(huì)使碼流JPEG2000不適用。也就是說,基于JPEG2000的解碼器將無法解析碼流并且因此就不能解碼圖像。另一個(gè)缺點(diǎn)是變得必須要加密所有的包主體。如果有一個(gè)包主體未被加密,那么即使是相同碼流內(nèi)的其他包主體均被加密,也仍然可能會(huì)根據(jù)對應(yīng)的包報(bào)頭將未加密的包主體解碼。不同于上述推薦技術(shù)的另一種已知的加密技術(shù)基于不同部分就其影響圖像可理解性的能力而具有變化的靈敏度這一認(rèn)知,采用選擇性加密JPEG2000的編碼部分(位平面、子帶和編碼次數(shù))。但是,這種已知技術(shù)需要在編碼階段期間執(zhí)行。如果期望在編碼之后(例如信息分包之后)進(jìn)行加密,那么必須首先要將包解碼,然后再加密和重新壓縮為新的包。因此,這種已知加密技術(shù)可能在計(jì)算成本上是很昂貴的?,F(xiàn)在介紹在計(jì)算上高效而無需犧牲安全性的本發(fā)明的示例性實(shí)施例。盡管將參照J(rèn)PEG2000碼流來介紹示例性實(shí)施例,但是應(yīng)該理解所介紹的示例性系統(tǒng)、設(shè)備和方法也可以用其他基于包的數(shù)據(jù)流實(shí)施,其中包的報(bào)頭含有解碼包(例如視頻流和音頻流)所需的信息。而且,盡管示例性實(shí)施例介紹了加密存儲(chǔ)的圖像(例如最初存儲(chǔ)在圖像源中的圖像),但是可選的實(shí)施例也可以涉及在初次存儲(chǔ)之前的圖像加密。因此,本發(fā)明可以適用于在期望加密數(shù)據(jù)流(例如圖像碼流)的任何應(yīng)用中使用。圖1示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的用于加密數(shù)據(jù)流的系統(tǒng)100的框圖。系統(tǒng)100可以包括圖像源10、一個(gè)或多個(gè)輸入設(shè)備12、22和對、輸出設(shè)備20和通信網(wǎng)絡(luò)30。圖像源10可以是包含數(shù)字圖像的任意電子數(shù)據(jù)源。圖像可以是掃描圖像、數(shù)字照片、計(jì)算機(jī)生成的圖像等。圖像可以是圖像的集合(例如幻燈片、視頻剪輯或電影)的一部分。在一個(gè)實(shí)施例中,圖像源10可以遠(yuǎn)離輸入設(shè)備12、22和M。圖像源10例如可以是娛樂服務(wù)提供商(譬如有線電視網(wǎng)或衛(wèi)星電視網(wǎng)、數(shù)字媒體傳送服務(wù)等)??蛇x地,圖像源10 可以局部于輸入設(shè)備12、22和M中的一個(gè)或多個(gè)。例如,圖像源10可以是由輸入設(shè)備12、 22和M中的一個(gè)或多個(gè)的使用者控制的媒體編碼的計(jì)算機(jī)可讀介質(zhì),例如軟盤、CD-ROM、 HD DVD、藍(lán)光光盤、閃存驅(qū)動(dòng)器等。輸入設(shè)備12可以是能夠加密圖像并傳輸圖像的任意設(shè)備。在家庭娛樂系統(tǒng)的背景下,輸入設(shè)備12可以是機(jī)頂盒、數(shù)字有線調(diào)諧器、HD-DVD播放器等。輸入設(shè)備12可以被設(shè)置用于接收并編碼圖像,然后將編碼的圖像加密,再將加密圖像傳輸至網(wǎng)絡(luò)30用于傳輸至輸出設(shè)備20。在可選的實(shí)施例中,輸入設(shè)備12可以不進(jìn)行編碼,而是可以改為直接從圖像源接收編碼圖像。輸出設(shè)備20可以是電視,例如高分辨率LCD、等離子電視或投影電視。在可選的實(shí)施例中,輸出設(shè)備20可以是能夠接收和解碼圖像的任意其他設(shè)備,例如用于即時(shí)顯示、用于轉(zhuǎn)化為其他的數(shù)據(jù)格式、用于傳輸至另一設(shè)備等的設(shè)備。輸入設(shè)備22和M可以是與輸出設(shè)備20通信的其他輸入設(shè)備。例如,輸入設(shè)備22 可以是被設(shè)置用于將存儲(chǔ)在DVD上的圖像傳輸至輸出設(shè)備20的DVD播放器,而輸入設(shè)備M 可以是被設(shè)置用于將交互游戲在輸出設(shè)備20或其他輸出設(shè)備(例如另一臺(tái)電視)處呈現(xiàn)給使用者的視頻游戲機(jī)。網(wǎng)絡(luò)30可以將輸入設(shè)備12、22和M通信連接至輸出設(shè)備20。網(wǎng)絡(luò)30可以是任意類型的有線或無線網(wǎng)絡(luò),包括例如虛擬專用網(wǎng)絡(luò)、局域網(wǎng)、廣域網(wǎng)、因特網(wǎng)等。因此,如果網(wǎng)絡(luò)30是無線的,那么就可以包括一種或多種無線的收發(fā)器、路由器或交換機(jī)。如果網(wǎng)絡(luò) 30是有線的,那么就可以包括一種或多種有線的路由器、交換機(jī)或其他的有線硬件裝置例如直接線路連接。圖2示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的輸入設(shè)備12的框圖。輸入設(shè)備12 可以包括輸入裝置120、處理器122、存儲(chǔ)器124、圖像處理裝置126、編碼裝置128、加密裝置130和通信裝置132。輸入裝置120可以被設(shè)置用于從圖像源10接收圖像。例如,如果圖像源10是有線電視提供商,那么輸入裝置120就可以包括連接至有線電視線路的硬件端口。如果圖像源10是計(jì)算機(jī)可讀介質(zhì),那么輸入裝置120就可以包括用于讀取圖像所需的任何硬件或軟件,例如磁盤驅(qū)動(dòng)器和對應(yīng)的軟件驅(qū)動(dòng)程序。處理器122可以是被設(shè)置用于執(zhí)行位于存儲(chǔ)器320內(nèi)的指令的微處理器、ASIC或
6任意其他的電路或電路組合。例如,處理器122可以被設(shè)置用于執(zhí)行計(jì)算以支持圖像處理裝置126、編碼裝置1 和加密裝置130的操作。可選地,裝置1沈、1觀和130中的每一個(gè)都可以具有專用的處理器,在此情況下,處理器122的支持作用可以被例如限制為輔助輸入設(shè)備12中各部分之間的數(shù)據(jù)通信。存儲(chǔ)器IM可以包括指令和數(shù)據(jù)。指令可以包括通用操作和控制例行程序例如操作系統(tǒng)例行程序。數(shù)據(jù)可以包括用于由處理器122或其他設(shè)備組件(例如裝置126、1觀和 130)所用數(shù)據(jù)的臨時(shí)存儲(chǔ)空間。例如,數(shù)據(jù)可以包括原始圖像數(shù)據(jù)、編碼圖像數(shù)據(jù)、部分加密的碼流、中間值等。處理裝置1 可以被設(shè)置用于從輸入裝置120接收圖像并且在編碼圖像之前進(jìn)行任何必要的處理。例如,處理裝置1 可以被設(shè)置用于將圖像劃分為多個(gè)較小的部分,例如圖片(tile),并進(jìn)行數(shù)字信號(hào)處理,例如對多個(gè)較小部分中的每一個(gè)進(jìn)行小波變換。處理裝置126的輸出例如一組小波變換系數(shù)可以被傳輸至編碼裝置1 用于后續(xù)編碼。編碼裝置1 可以被設(shè)置用于執(zhí)行小波變換系數(shù)的編碼以形成編碼圖像。編碼可以包括量化例如將小波變換系數(shù)轉(zhuǎn)化為標(biāo)量。編碼還可以包括熵編碼,例如基于任意數(shù)量的壓縮算法的圖像壓縮。壓縮圖像可以是具有一種或多種碼流形式的輸出,例如具有包含壓縮圖像數(shù)據(jù)的包的數(shù)據(jù)流。加密裝置130可以被設(shè)置用于根據(jù)一種或多種加密方法對一個(gè)或多個(gè)碼流進(jìn)行加密。在一個(gè)實(shí)施例中,加密方法是高級加密標(biāo)準(zhǔn)(AES)算法,例如128位的AES加密。在可選實(shí)施例中,可以使用其他的加密方法,例如數(shù)據(jù)加密標(biāo)準(zhǔn)(DEQ、其他的對稱加密算法 (例如EWamal)或非對稱加密算法(例如RSA)。加密裝置130可以通過通信裝置132與解密設(shè)備(例如輸出設(shè)備20)通信。通信可以包括例如向解密設(shè)備傳輸或從解密設(shè)備傳輸共享密鑰,以使得能夠利用共享密鑰來加密和解密一個(gè)或多個(gè)碼流。可選地,如果使用了非對稱算法,那么通信還可以包括將加密設(shè)備的公共密鑰傳輸至輸入設(shè)備12。通信裝置132可以包括被設(shè)置用于通信地連接至網(wǎng)絡(luò)30的任何硬件和/或軟件裝置。通信裝置132可以例如通過有線或無線連接將加密的碼流傳輸至網(wǎng)絡(luò)30。因此,通信裝置132可以包括例如收發(fā)器、數(shù)據(jù)總線、輸入緩沖器和輸出緩沖器等部件。圖3示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的輸出設(shè)備20的框圖。輸入設(shè)備20 可以包括通信裝置210、處理器212、存儲(chǔ)器214、解密裝置216、解碼裝置218和輸出裝置 220。通信裝置210可以通過網(wǎng)絡(luò)30與輸入設(shè)備通信并且可以包括例如收發(fā)器、數(shù)據(jù)總線、 輸入緩沖器和輸出緩沖器等部件。通信裝置210可以被設(shè)置用于從輸入設(shè)備12接收加密的碼流。處理器212可以是被設(shè)置用于執(zhí)行位于存儲(chǔ)器214內(nèi)的指令的微處理器、ASIC或任意其他的電路或電路組合。例如,處理器212可以被設(shè)置用于執(zhí)行計(jì)算以支持解密裝置 216、解碼裝置218和輸出裝置220的操作??蛇x地,裝置216、218和220中的每一個(gè)都可以具有專用的處理器,在此情況下,處理器122的支持作用可以例如被限制為輔助輸出設(shè)備20中各部分之間的數(shù)據(jù)通信。存儲(chǔ)器214可以包括指令和數(shù)據(jù)。指令可以包括通用操作和控制例行程序,例如操作系統(tǒng)例行程序。數(shù)據(jù)可以包括用于由處理器212或其他設(shè)備組件(例如裝置216、218 和220)所用數(shù)據(jù)的臨時(shí)存儲(chǔ)空間。例如,數(shù)據(jù)可以包括原始圖像數(shù)據(jù)、編碼圖像數(shù)據(jù)、部分加密的碼流、中間值等。解密裝置216可以被設(shè)置用于根據(jù)輸入設(shè)備12所用的加密方法來對加密碼流進(jìn)行解密。例如,如果加密方法是AES加密,那么即可利用共享密鑰來對加密的碼流進(jìn)行解密。隨后即可通過解碼裝置218來對解密的碼流進(jìn)行解碼。解碼裝置218可以被設(shè)置通過對解密碼流的解碼來生成重構(gòu)圖像。解碼裝置218 可以根據(jù)主碼流報(bào)頭、包報(bào)頭或解密碼流的結(jié)構(gòu)或內(nèi)容中的任意其他部分來確定圖像信息。隨后可以根據(jù)圖像信息來解碼解密碼流中的包以形成重構(gòu)圖像,重構(gòu)圖像看上去可以充分地類似于由圖像源10提供的原始圖像。輸出裝置220可以被設(shè)置用于在例如顯示屏上顯示重構(gòu)的圖像??蛇x地,輸出裝置220可以將用于進(jìn)一步處理的重構(gòu)圖像傳輸至例如存儲(chǔ)器214以供隨后訪問或者傳輸至另一輸出設(shè)備。圖4示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的由圖像32的小波變換生成的一組子帶。每一個(gè)后續(xù)的子帶都表示前一子帶或圖像的縮小版本。例如,每一個(gè)子帶的長度和寬度都可以是其前者的一半。如圖所示,如果圖像32是64X64像素,那么第一組子帶LL1, HLULHl和HHi;34可以均為32 X 32,并且第二組子帶LL2,HL2、LH2和HH2可以均為16 X 16。 子帶LLl、HLl、LHl和HH134中的每一個(gè)都可以包括與圖像32沿水平和垂直方向的具有變化的頻率的小波變換相對應(yīng)的小波變換系數(shù)。子帶HHl可以對應(yīng)于兩個(gè)方向上的最高頻率,而子帶LHl可以對應(yīng)于低水平頻率和高垂直頻率。子帶LLl可以對應(yīng)于兩個(gè)方向上的低頻。小波變換可以被模擬為高通和低通濾波器。子帶HLl、LHl和HHl表示圖像32的高通濾波版本。子帶LLl表示圖像32的低通濾波版本。子帶HLl、LHl和HHl可以因此被認(rèn)為是提供了差別信息,而子帶LLl可以被認(rèn)為是圖像32縮小的近似。第二組子帶LL2、HL2、LH2和HH2 36可以通過對第一組;34中的低頻子帶(例如 LLl)進(jìn)行小波變換而生成??梢酝ㄟ^對最低頻子帶進(jìn)行小波變換而重復(fù)生成常規(guī)子帶任意多次。回到濾波模擬,子帶HL2、LH2和HH2可以表示LLl的高通濾波版本,而子帶LL2可以表示LLl的低通濾波版本。小波變換可以被概括為生成單個(gè)縮小的近似圖像(例如LL2) 以及一系列縮小的差別圖像,例如HL2、LH2、HH2、HLl、LHl和HHl。圖5示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的被劃分為多個(gè)子帶的圖像40。第一小波變換可以將圖像40劃分為子帶LLl (未示出)、HL142、LH144和HH146。第二小波變換可以將子帶LLl劃分為子帶LL2 43、HL2 45、LH2 47和HH2 49。每一個(gè)子帶都可以被分為多個(gè)分區(qū)。例如,HLl 42的分區(qū)52、LH1 44的分區(qū)M和HH146的分區(qū)56均可以對應(yīng)于圖像40內(nèi)的相同位置。類似地,LL2 43的分區(qū)53、HL2 45的分區(qū)55、LH2 47的分區(qū)57和 HH2 49的分區(qū)59均可以對應(yīng)于圖像40內(nèi)的第二位置。圖6示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的碼流200。碼流200可以包括位于其報(bào)頭部分210處的主報(bào)頭60以及構(gòu)成包括其尾部215在內(nèi)的其余部分的一個(gè)或多個(gè)包 202、204和206。每一個(gè)包都可以具有報(bào)頭和主體。例如,包202、204和206可以具有各自的報(bào)頭62、64和66以及各自的主體70、72和74。包202、204和206都可以包含對應(yīng)于一個(gè)或多個(gè)分區(qū)的信息,這可以將它們劃分為碼塊。返回圖5,包202可以包括來自分區(qū)53的信息,包204可以包括來自分區(qū)55、57和59的信息,而包206可以包括來自分區(qū)5254和56的信息。因此,只有包202可以包含LL子帶信息。圖7示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的方法300。方法300可以在根據(jù)本發(fā)明的任意加密設(shè)備例如輸入設(shè)備12中實(shí)施,并且可以用任意的硬件和/或軟件的組合實(shí)施。在302,可以例如在輸入設(shè)備12處從圖像源10接收輸入碼流。在304,輸入碼流的主報(bào)頭可以被解碼以生成與整幅圖像(例如圖像40)相對應(yīng)的信息。主報(bào)頭信息可以包括例如圖像尺寸和圖片尺寸。在306,方法200前進(jìn)至下一個(gè)包,例如主報(bào)頭之后的第一個(gè)包??梢宰x取包的報(bào)頭以獲取包的信息。在308,可以確定包是否含有LL子帶信息。這種確定可以基于來自包報(bào)頭的包信肩、ο如果包含有LL子帶信息,那么可以在310利用1 位的AES加密來加密報(bào)頭和主體以形成加密包。盡管可能不需要加密主體,仍然可能會(huì)希望將主體加密作為附加的安全措施。但是,因?yàn)榧用苊恳粋€(gè)包的主體在計(jì)算成本上是很昂貴的,所以主體加密可能被限制為針對碼流中含有最重要信息的那些部分,例如對于LL子帶包譬如對應(yīng)于子帶LL243的部分進(jìn)行,原因就在于這些包與近似的圖像相對應(yīng)。如果包不含有LL子帶信息,那么在步驟312就可以僅加密報(bào)頭以形成加密包。對于整個(gè)碼流,可以使用單個(gè)密鑰來進(jìn)行加密。可選地,也可以使用不同的密鑰來加密包的報(bào)頭,例如每十個(gè)包就切換為一種新的密鑰。在314,可以確定是否已到達(dá)包的終點(diǎn)。如果尚未到達(dá)終點(diǎn),那么方法300就返回到306并且前進(jìn)至下一個(gè)包。如果已到達(dá)終點(diǎn),那么方法300就前進(jìn)至316。在316,可以將加密包輸出成為加密的碼流。例如,加密包可以被附加至輸入碼流的主報(bào)頭以形成加密的碼流。盡管方法300可以被應(yīng)用于完全編碼的碼流,但是應(yīng)該理解方法300也可以適用于在打包之前就加密碼流。例如,加密可以在編碼期間進(jìn)行而不是在已經(jīng)對碼流進(jìn)行編碼之后進(jìn)行。圖8示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的方法400。方法400可以在根據(jù)本發(fā)明的任意解密設(shè)備例如輸出設(shè)備20中實(shí)施,并且可以用任意的硬件和/或軟件的組合實(shí)施。方法400可以與方法300結(jié)合使用以對輸入碼流進(jìn)行加密和對應(yīng)的解密。在402,可以例如在輸出設(shè)備20處接收來自于輸入設(shè)備12的加密碼流。在404,可以讀取加密碼流中的主報(bào)頭。根據(jù)主報(bào)頭中的信息,方法400在406前進(jìn)至下一個(gè)包,例如緊隨報(bào)頭之后的包。在408,可以定位包報(bào)頭并且例如使用共享密鑰來進(jìn)行解密。在410,可以根據(jù)解密的包報(bào)頭來解碼包的主體。如果解密的包報(bào)頭指示包中包括 LL子帶信息,那么包主體可以在解碼之前被解密。但是,如果解密的包報(bào)頭中并不包括LL 子帶信息,那么即可直接對包的主體進(jìn)行解碼。在412,可以確定是否已到達(dá)包的終點(diǎn)。如果尚未到達(dá)終點(diǎn),那么方法400就返回到406并且前進(jìn)至下一個(gè)包。如果已到達(dá)終點(diǎn),那么方法400就前進(jìn)至414。在414,可以將解碼的碼流輸出例如與其他解碼的碼流相組合以形成用于顯示的完整圖像。可以例如通過將解碼的包主體組合到新的碼流中而形成解碼的碼流。
盡管上述示例性實(shí)施例涉及加密所有的包報(bào)頭,但是應(yīng)該理解并不是必須要進(jìn)行所有報(bào)頭的加密。加密任一包報(bào)頭可能就足以使碼流中在加密報(bào)頭之后的任意部分變得不可解析。只要不將加密的報(bào)頭解密,那么就不可能確定出下一個(gè)報(bào)頭位于何處,并且因此下一個(gè)報(bào)頭未加密可能就無關(guān)緊要了。所以,在可選的實(shí)施例中,部分包的報(bào)頭不加密也是可行的。 在以上的說明內(nèi)容中,已經(jīng)參照本發(fā)明具體的示例性實(shí)施例對本發(fā)明進(jìn)行了介紹。但是,顯而易見的是可以對本發(fā)明進(jìn)行各種變形和修改而并不背離由所附權(quán)利要求闡明的本發(fā)明更廣泛的實(shí)質(zhì)和保護(hù)范圍。本文中介紹的實(shí)施例可以表現(xiàn)為彼此間以各種組合方式相結(jié)合。因此,說明書和附圖應(yīng)該被視為是示意性的而并非是限制意義。
權(quán)利要求
1.一種加密數(shù)據(jù)流的方法,包括 接收數(shù)據(jù)流;對數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過加密所述數(shù)據(jù)包的報(bào)頭部分同時(shí)保留所述數(shù)據(jù)包的主體部分不被加密而形成加密包;組合包括所有加密包的加密數(shù)據(jù)流;以及輸出加密數(shù)據(jù)流。
2.如權(quán)利要求1所述的方法,其中所述數(shù)據(jù)流是JPEG2000碼流。
3.如權(quán)利要求2所述的方法,進(jìn)一步包括確定所述數(shù)據(jù)包含有與LL子帶相對應(yīng)的數(shù)據(jù);以及響應(yīng)于所述確定,加密所述數(shù)據(jù)包的主體部分。
4.如權(quán)利要求1所述的方法,其中所述數(shù)據(jù)流接收自圖像編碼器。
5.如權(quán)利要求1所述的方法,其中使用高級加密標(biāo)準(zhǔn)AES加密算法來進(jìn)行所述加密。
6.如權(quán)利要求1所述的方法,其中為了讀取所述數(shù)據(jù)包的主體部分,必須解碼所述報(bào)頭部分。
7.一種對加密數(shù)據(jù)流解密的方法,包括 接收加密數(shù)據(jù)流作為輸入;對所述加密數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過解密所述包中的報(bào)頭部分并根據(jù)所述報(bào)頭部分確定所述包的主體部分的位置,從而形成解密包;以及通過解碼所述解密包而生成圖像。
8.如權(quán)利要求7所述的方法,其中所述數(shù)據(jù)流是JPEG2000碼流。
9.如權(quán)利要求8所述的方法,進(jìn)一步包括確定所述數(shù)據(jù)包含有與LL子帶相對應(yīng)的數(shù)據(jù);以及響應(yīng)于所述確定,在形成解密包之前解密所述包的主體部分。
10.如權(quán)利要求7所述的方法,其中使用高級加密標(biāo)準(zhǔn)AES加密算法來進(jìn)行所述加密。
11.如權(quán)利要求7所述的方法,其中為了讀取所述數(shù)據(jù)包的主體部分,必須解碼所述報(bào)頭部分。
12.一種用于加密數(shù)據(jù)流的設(shè)備,包括輸入裝置,被設(shè)置用于從數(shù)據(jù)源接收圖像作為輸入; 編碼裝置,被設(shè)置用于將圖像編碼為數(shù)據(jù)流;以及加密裝置,被設(shè)置用于對數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過加密所述包的報(bào)頭部分同時(shí)保留所述包的主體部分不被加密而形成加密包,以及組合包括所述加密包的加密數(shù)據(jù)流。
13.如權(quán)利要求12所述的設(shè)備,其中所述數(shù)據(jù)流是JPEG2000碼流。
14.如權(quán)利要求13所述的設(shè)備,其中所述加密裝置被設(shè)置用于 確定數(shù)據(jù)包含有與LL子帶相對應(yīng)的數(shù)據(jù);以及響應(yīng)于所述確定,加密所述包的主體部分。
15.如權(quán)利要求12所述的設(shè)備,其中所述數(shù)據(jù)流接收自圖像編碼器。
16.如權(quán)利要求12所述的設(shè)備,其中使用高級加密標(biāo)準(zhǔn)AES加密算法來進(jìn)行所述加密。
17.如權(quán)利要求12所述的設(shè)備,其中為了讀取所述數(shù)據(jù)包的主體部分,必須解碼所述報(bào)頭部分。
18.一種用于對加密數(shù)據(jù)流進(jìn)行解密的設(shè)備,包括 解密裝置,被設(shè)置用于接收加密數(shù)據(jù)流作為輸入,并且對所述加密數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過解密所述包的報(bào)頭部分并根據(jù)所述報(bào)頭部分確定所述包的主體部分的位置,從而形成解密包;以及解碼裝置,被設(shè)置用于通過解碼所述解密包而生成圖像。
19.如權(quán)利要求18所述的設(shè)備,其中所述數(shù)據(jù)流是JPEG2000碼流。
20.如權(quán)利要求19所述的設(shè)備,其中所述解密裝置被設(shè)置用于 確定所述數(shù)據(jù)包含有與LL子帶相對應(yīng)的數(shù)據(jù);以及響應(yīng)于所述確定,在形成所述解密包之前解密所述包的主體部分。
21.如權(quán)利要求18所述的設(shè)備,其中使用高級加密標(biāo)準(zhǔn)AES加密算法來進(jìn)行所述加密。
22.如權(quán)利要求18所述的設(shè)備,其中為了讀取所述數(shù)據(jù)包的主體部分,必須解碼所述報(bào)頭部分。
23.一種計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì),其上存儲(chǔ)有可由處理器執(zhí)行的一系列指令,這些指令被設(shè)置用于使所述處理器執(zhí)行以下步驟接收未加密的數(shù)據(jù)流;對所述數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過加密所述包的報(bào)頭部分同時(shí)保留所述包的主體部分不被加密而形成加密包;組合包括所有所述加密包的加密數(shù)據(jù)流;以及輸出所述加密數(shù)據(jù)流。
全文摘要
一種加密數(shù)據(jù)流的方法,包括接收數(shù)據(jù)流,并且對數(shù)據(jù)流內(nèi)的每一個(gè)數(shù)據(jù)包,通過加密數(shù)據(jù)包中的報(bào)頭部分同時(shí)保留數(shù)據(jù)包的主體部分不被加密而形成加密包。該方法還包括組合由所有加密包構(gòu)成的加密數(shù)據(jù)流并輸出加密數(shù)據(jù)流。
文檔編號(hào)G06F15/16GK102216921SQ200980145183
公開日2011年10月12日 申請日期2009年9月23日 優(yōu)先權(quán)日2008年10月10日
發(fā)明者I·科米爾, R·葉, R·格林尼 申請人:美國亞德諾半導(dǎo)體公司