專利名稱:基于具有安全特性的壓縮技術(shù)來編碼數(shù)據(jù)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及數(shù)據(jù)編碼和加密,尤其是涉及 Lempel-Ziv-Welch數(shù)據(jù)壓縮。
背景技術(shù):
Ziv和Lempel在1977和1978年的他們的具有里程碑意義的分別 被稱為LZ77和LZ78的論文中提出了兩種通用的無損數(shù)據(jù)壓縮算法。從 那以后,己經(jīng)提出了很多的變型,例如Lempel-Ziv-Welch (LZW) 、 L empel-Ziv-Storer-Szymanski(LZSS)以及Lempel-Ziv-Ross (LZR)。在最 初的LZ78的這些變型中,Welch于1984年所設(shè)計的LZW可能是最著 名和最流行的變型。已經(jīng)采用了這種變型用于很多系統(tǒng)和標(biāo)準(zhǔn)中,并作 為一種選擇用于TIFF圖像和PDF格式文檔中,這些系統(tǒng)和標(biāo)準(zhǔn)包括U NIX系統(tǒng)、圖形互換格式(GIF)標(biāo)準(zhǔn)、V.42位調(diào)制解調(diào)器標(biāo)準(zhǔn)。
一種保護由LZW算法所產(chǎn)生的位流的簡單方法是采用流密碼對其 進行加密,即,對LZW位流和密鑰流進行異或(XOR)運算。但是, 這種機制極易受到選擇明文攻擊。特別地,攻擊者可以對源符號序列S 進行編碼并獲得壓縮的和加密的位流Y。由于LZW算法是公知的,攻 擊者可以很容易地確定LZW編碼器所產(chǎn)生的中間位流X。因此,通過
進行《-ie;rl運算(其中e是xoR運算符),可以容易地恢復(fù)密鑰流。
可替換地,可以采用諸如在高級加密標(biāo)準(zhǔn)(AES)中定義的密碼之類的 分組密碼對由LZW算法所產(chǎn)生的位流進行加密。實際上,這種加密機
制提供了非常高的安全性能。但是,分組密碼的一個重要缺陷是,由于分組密碼通常涉及幾個查表操作的循環(huán)、XOR操作以及混合操作, 與流密碼相比,它是復(fù)雜的且計算速度緩慢。另外,由于在大多數(shù)多 媒體應(yīng)用中,所需要的安全級別遠低于軍事應(yīng)用中的安全級別,不需
要采用AES以較低的運算速度為代價來實現(xiàn)這么高的安全性。
有一些利用LZW算法其自身來實現(xiàn)高安全性能的現(xiàn)存系統(tǒng)和方 法。例如,Xie et al. "Secure Lempel Ziv Compression with Embedded Encryption," Proc. SPIE, vol. 5681, pp. 318-327, 2005描述了一種基于 LZ78方法的加密機制。其基本思想是用不同的條目順序建立多個字典, 并接著在每個壓縮步驟中選擇隨機字典。但是,這些現(xiàn)有的方法仍然 容易受到大量的攻擊(如選擇明碼攻擊)。
發(fā)明內(nèi)容
本文描述的是在多媒體應(yīng)用中基于數(shù)據(jù)壓縮技術(shù)進行數(shù)據(jù)加密 的系統(tǒng)和方法,具有三個要求(l)沒有編碼效率損失;(2)高安 全性;(3)加密成本應(yīng)當(dāng)大致等于采用其后接流密碼器的標(biāo)準(zhǔn)LZW 的方案的加密成本。
根據(jù)一些實施例,該系統(tǒng)包括低成本的改進的LZW模塊和流密 碼器,所述LZW模塊采用隨機字典插入和隨機字典排列。這種低成 本的改進的LZW的一個非常期望的屬性是可以很容易地將隨機字典 插入與散列算法合并在一起,這種散列算法已經(jīng)廣泛地用于實際 LZW實現(xiàn)中來加速字典中的字符串比較。密碼分析結(jié)果顯示,在不 影響編碼效率的情況下,該系統(tǒng)可以提供令人滿意的安全級別。
根據(jù)其他的一些實施例,提供了一種用于采用基于字典的壓縮 技術(shù)對數(shù)據(jù)進行編碼的方法。這種方法包括(1)接收源符號序列, (2)根據(jù)隨機插入采用源字符表對字典進行初始化,以及(3)根據(jù) 基于字典的壓縮技術(shù)對源符號序列進行編碼。所述源符號表包括多個 字符且所述字典具有多個條目。所述源符號序列包括至少第一和第二 符號。
在字典的初始化過程中,多個字符中的每一個均被分配至多個 條目中的一個。在編碼過程中,根據(jù)隨機插入和隨機排列對字典進一步更新。
對源符號序列進行編碼的步驟還包括將第一字符添加到一個字 符串,并在字典中搜索具有第一符號的該字符串。另外,編碼步驟還 包括確定該字典具有對具有第一符號的字符串的匹配,并將第二符號 添加到具有第一符號的字符串。
可替換地,如果該字典不具有對具有第一符號的字符串的匹配, 該方法還包括確定沒有第一符號的字符串的字典索弓l,在字典中隨機 地選擇一個空條目來存儲具有第一符號的字符串,并將字符串初始化 為第一符號?;诰哂兴接忻荑€的鍵控散列函數(shù)來選擇空條目。
在另一個實施例中,該編碼步驟包括將字典布置成具有多個列 和多個行的二維矩陣,在所述多個列上執(zhí)行列排列,并在所述多個行 上執(zhí)行行排列。行排列包括對多個列中的每一個以及多個行中的每一 個進行循環(huán)移位。特別地,用第一隨機偏移量對每一個偶數(shù)列進行循 環(huán)移位,用第二隨機偏移量對每一個奇數(shù)列進行循環(huán)移位,用第三隨 機偏移量對每一個偶數(shù)行進行循環(huán)移位,用第四隨機偏移量對每一個 奇數(shù)行進行循環(huán)移位。
在又一個實施例中,該方法包括通過組合已編碼的符號序列和 流密碼器所產(chǎn)生的密鑰流來產(chǎn)生編碼數(shù)據(jù)流。
在另外一些實施例中,壓縮技術(shù)是Lempel-Ziv-Welch壓縮、 Lempel-Ziv-Storer-Szymanski壓縮和Lempel-Ziv-Ross壓縮中的一種。
根據(jù)其他一些實施例,提供了一種計算機可讀媒介,其上具有 存儲的計算機代碼。該計算機代碼包括計算機可執(zhí)行指令,當(dāng)這些可 執(zhí)行指令被一個或多個數(shù)字處理器執(zhí)行時,提供采用基于字典的壓縮 技術(shù)的數(shù)據(jù)編碼。該計算機代碼包括接收源符號序列的指令、根據(jù)隨 機插入采用源字符表初始化字典的指令、根據(jù)壓縮技術(shù)對該源符號序 列進行編碼的指令、以及在編碼過程中根據(jù)隨機插入和隨機字典排列 對字典進行更新的指令。
在另一個實施例中,源符號序列包括多個符號。而且計算機代 碼還包括將第一符號添加到字符串的指令、確定字典不具有與具有第 一符號的字符串相匹配的條目、確定不具有第一符號的字符串的字典索引的指令、在字典中隨機選擇空條目來存儲具有第一符號的字符串 的指令、以及將字符串初始化為第一符號的指令。
根據(jù)本發(fā)明的其他一些實施例,提供了一種用來采用具有多個
條目的字典對源符號序列進行編碼的方法。該源符號序列包括多個符 號。該方法包括執(zhí)行下列步驟,直到該源符號序列被用盡為止(1) 將字符串初始化為源符號序列的一個符號,(2)在字典中搜索與該 字符串匹配的最長條目,(3)執(zhí)行(a) - (b),直到在字典中不能 找到對該字符串的匹配(a)確定字典具有與字符串相匹配的最長 條目和與字符串相匹配的最長條目的字典索引,(b)將來自源符號
序列的另一個符號插入字符串。該方法還包括存儲該字典索引、隨機 地選擇字典中的條目來存儲不具有另一個符號的字符串、以及執(zhí)行隨 機字典排列。
在一個實施例中,執(zhí)行隨機字典排列的步驟還包括將字典布置 成具有多個列和多個行的二維矩陣,并對所述的多個列和多個行執(zhí)行
隨機字典排列。特別地,該方法包括用第一隨機偏移量對所述多個 列的至少一個奇數(shù)列進行循環(huán)移位,用第二隨機偏移量對所述多個列 的至少一個偶數(shù)列進行循環(huán)移位,用第三隨機偏移量對所述多個行的 至少一個奇數(shù)行進行循環(huán)移位,用第四隨機偏移量對所述多個行的至 少一個偶數(shù)行進行循環(huán)移位。
在另一個實施例中,該方法還包括產(chǎn)生用于隨機插入和隨機字 典排列的密鑰流?;诰哂信c該密鑰流的一部分相關(guān)聯(lián)的秘密密鑰的 散列函數(shù),選擇用于存儲不具有另一個符號的字符串的條目。
在又一個實施例中,該方法還包括產(chǎn)生表示源符號序列的字典 索引流、按照異或運算將字典索引流與密鑰流組合起來,產(chǎn)生編碼數(shù) 據(jù)流,并輸出己編碼的數(shù)據(jù)流。
圖1是我們所提出的機制的示意圖2是(a)在排列之前、(b)在列排列之后以及(c)在列和 行排列之后的字典排列的示例;圖3是用以實現(xiàn)圖1中的編碼方法和系統(tǒng)的計算系統(tǒng)的視圖; 圖4描述了具有用于實現(xiàn)所述編碼方法的多個部件的計算裝置 的示意圖5描述了采用基于字典的壓縮技術(shù)對符號序列進行編碼的方 法的一個實施例的示意圖6 (a)示出了明文形式的源符號序列的一個示例,且圖6 (b) 示出了采用標(biāo)準(zhǔn)LZW技術(shù)對源符號序列進行解碼的結(jié)果,所述源符 號序列是基于本文所述的方法進行編碼的。
具體實施例方式
根據(jù)一些實施例,在圖1中示出了用于采用壓縮技術(shù)執(zhí)行數(shù)據(jù) 加密的系統(tǒng)100的示意圖。該壓縮技術(shù)可以是任何采用字典的技術(shù), 如Lempel-Ziv-Welch(LZW)壓縮、Lempel-Ziv-Storer-Szymanski(LZSS) 壓縮以及Lempel-Ziv-Ross (LZR)壓縮。為了便于討論,在圖中示 出了改進的LZW壓縮。但是,本文所描述的發(fā)明不局限于LZW壓
縮,且本領(lǐng)域技術(shù)人員在閱讀本說明書之后,可以將本發(fā)明修改為采 用字典的其他壓縮方法。
根據(jù)圖1中所示的實施例,改進的LZW壓縮具有一些安全特性, 將在下文進一步描述。特別地,系統(tǒng)100包括兩個基本部件用于產(chǎn) 生密碼流的密鑰調(diào)度器102,以及用于執(zhí)行LZW編碼的改進的LZW 模塊104。在另外一些實施例中,該系統(tǒng)可以包括如圖1中所示的 XOR運算符106,用于基于密鑰調(diào)度器102所產(chǎn)生的密鑰流,采用 流密碼對LZW數(shù)據(jù)流進行進一步加密。
與現(xiàn)有的基于LZW的編碼技術(shù)不同,本文所述的LZW壓縮采 用隨機字典插入以及隨機字典排列來獲得改進的針對各種攻擊類型 (如純密文攻擊、已知明文攻擊、選擇明文攻擊和選擇密文攻擊)的 安全性。如圖1所示,改進的LZW模塊104采用密鑰調(diào)度器102所 產(chǎn)生的密鑰流的部分來對源符號序列S執(zhí)行安全壓縮。接著由XOR 運算符106對改進的LZW模塊104所產(chǎn)生的位流X和密鑰調(diào)度器 102所產(chǎn)生的保留密鑰流執(zhí)行XOR運算,來形成最后的加密輸出B。下文將描述基于改進的LZW壓縮而提供數(shù)據(jù)加密的系統(tǒng)和方法的細(xì) 節(jié)。在下文的描述中,假定i表示正整數(shù),且。^表示具有長度b的i 的二進制表示。
4夯傲教薪A浙腐教字傳銀^/游改遂游丄Z『
假定源字符表為^ = {"1,"2,...,";4,其中>^是源字符表A的字符數(shù)。
假定要被編碼的輸入源符號序列是& = ^1^2,... },其中M是源序列S 中的符號數(shù)。為了便于討論,釆用b=12的位數(shù)來表示每個字典索引, 即,字典的大小為2b=4096。當(dāng)然,在閱讀本說明書之后,b的其他選 擇對于本領(lǐng)域技術(shù)人員也是可行并顯而易見的。下文將說明該編碼過程。
根據(jù)圖4所示的實施例,在接收到要被編碼的輸入符號序列S 之后(步驟402),采用源字符表對字典進行初始化(步驟404)。 特別地,構(gòu)建具有2b個空條目的字典,從其中隨機地選擇N個條目 來存儲源字符表A的字符ai (1《i《N)。換句話說,源字符表A的 每個字符ai隨機插入或填充在字典中。
這個過程與傳統(tǒng)的LZW壓縮不同,在傳統(tǒng)LZW壓縮中,源字 符表A的字符a, (7《Z《A0被分配給該字典的第一個N個條目。傳 統(tǒng)LZW方法的一個缺點是第一個"[1(^2^]個位被固定為零。攻擊者 可以采用這個信息來恢復(fù)密鑰流的部分,從而使編碼的數(shù)據(jù)特別容易 受到攻擊。相反,根據(jù)本文所描述的實施例,由于是基于隨機插入對 字典進行初始化,攻擊者很難恢復(fù)密鑰流。
在對字典進行初始化之后,采用改進的LZW方法來對源符號序 列S進行編碼(步驟406),其中根據(jù)每個迭代中的隨機插入對LZW 機制的字典進行更新。特別地,來自符號序列S的源符號Sj (7《7'《M) 被輸入,并在字符串I中一個接一個地累加。在每個字符被輸入并被連 結(jié)到字符串I之后,對字典進行搜索來查找字符串I的匹配。只要在字 典中找到字符串I的匹配,就繼續(xù)連結(jié)和搜索過程。
在某一點,將來自符號序列S的下一個符號x添加到字符串I, 使得搜索第一次失敗,即,在添加符號x之前找到對字符串I的匹配,而在添加符號X之后沒有找到對字符串Ix的匹配。接著執(zhí)行后續(xù)的 步驟。特別地,確定指向添加X之前的字符串I的匹配的字典索弓l。 如上文所述,該字典索引由b個二進制位所表示。接著,從字典中隨 機選擇一個空條目來存儲添加x之后的字符串Ix的副本?;谝宰?符串Ix為輸入的密鑰散列函數(shù),對空條目進行隨機選擇。在將字符 串Ix的副本存入字典之后,將字符串I初始化為符號x。
根據(jù)一個實施例,根據(jù)字符串自身采用公共散列函數(shù)所形成的 地址,將新字符串Ix存儲在字典中的位置中。這種策略極大地提升 了字典搜索的速度??商鎿Q地,采用具有秘密密鑰的私有散列函數(shù)來
確定用于存儲字符串Ix的地址。換句話說,用秘密密鑰來取代該散 列函數(shù)的一些參數(shù),使得在沒有這些秘密密鑰的情況下,該散列函數(shù) 的輸出是不可預(yù)知的。
根據(jù)本發(fā)明的另一個實施例,在將字符串Ix存儲到字典中之后, 如下對更新的字典執(zhí)行隨機排列。
首先,將字典布置成具有2"/2個列和2b"個行的二維矩陣。兩個 索引集合被定義為^={1,3,...,24/2-1}和《={2,4,...,2"/2}。因此,首先對 這個二維矩陣執(zhí)行循環(huán)的列排列,用偏移量q對那些具有索引meC^的 列進行循環(huán)移位,其中q是一個隨機數(shù)且0《C/《2b/2-1。用偏移量q 對那些具有索引weG,的列進行循環(huán)移位,其中Q是另一個隨機數(shù)且O 《c2《2b/2-l。類似地,分別用偏移量r,和r2對二維矩陣的奇數(shù)行和 偶數(shù)行采用循環(huán)的行排列。圖2描述了用參數(shù)b二4, Cl=2, c2=3, ri=l 和r2二2進行隨機字典排列的示例。圖2 (a)示出了排列之前的二維 字典,圖2 (b)示出了列排列之后的二維字典,且圖2 (c)示出了 列和行排列之后的二維字典。
重復(fù)上述的搜索、存儲、初始化和排列步驟,直到源符號序列s 中的所有符號都被編碼。
根據(jù)一些實施例,在不采用隨機字典排列的情況下可以執(zhí)行上 述的基于改進的LZW壓縮的數(shù)據(jù)編碼和加密方法。
根據(jù)如圖5所示的另一個實施例,提供了方法500,用來采用具 有多個與上述條目相似的條目的字典來對源符號序列進行編碼,其中該源符號序列包括多個符號。如圖5所示,方法500包括下列步驟。 在步驟502,將一個字符串初始化為來自符號序列的多個符號中的一 個。在步驟504和508,方法500執(zhí)行字典搜索來確定是否存在具有 最長長度的匹配字符串的條目。如果發(fā)現(xiàn)了這種匹配,方法500接著 前進到確定匹配字符串的最長條目的字典索引(步驟510),并將來 自源符號序列的另一個符號添加到該字符串(步驟506)。執(zhí)行步驟 504-510,直到?jīng)]有該字符串的匹配被發(fā)現(xiàn)。方法500接著前進到存 儲在步驟510中所確定的最近的字典索引(步驟512),隨機地選擇 字典中的條目來存儲最近的字符串(步驟514),并對更新的字典執(zhí) 行隨機的字典排列(步驟516)。如果方法500確定源符號序列中的 所有符號都己經(jīng)被編碼(步驟518),那么,其接著前進到輸出編碼 的符號序列。根據(jù)上述的各個實施例,編碼的符號序列包括一系列的 字典索引。
密舒源度器
密鑰調(diào)度器102的作用是產(chǎn)生用于改進的LZW和XOR運算的 必要的密鑰流。根據(jù)一個實施例,流密碼(如本領(lǐng)域所公知的RC4) 用于這個目的。RC4密碼的一個優(yōu)點是在密鑰流產(chǎn)生中所涉及的軟件 和硬件的復(fù)雜度非常低??商鎿Q地,在閱讀本說明書之后本領(lǐng)域技術(shù) 人員很容易理解,還可以采用如密碼塊鏈接模式(Cipher Block Chaining mode)中的數(shù)據(jù)加密標(biāo)準(zhǔn)密碼(Data Encryption Standard cipher )禾n高效替代轉(zhuǎn)換密碼 (Very Efficient Substitution Transposition)之類的其他流密碼。
實現(xiàn)該教薪勿密方^游^",教系統(tǒng)
圖3示出了其中可以實現(xiàn)本發(fā)明的合適的硬件系統(tǒng)300的示例。 該硬件系統(tǒng)300只是合適的操作環(huán)境的一個示例,并不意味著對本發(fā) 明的使用范圍或功能的任何限制。適于與本發(fā)明一起使用的其他已知 的計算系統(tǒng)、環(huán)境和/或配置包括但不限于個人計算機、服務(wù)器、手 持或膝上裝置、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程電子器 件、網(wǎng)絡(luò)PC、小型計算機、大型計算機、包括任何上述系統(tǒng)或裝置的分布式計算環(huán)境等。
參照圖3,用于實現(xiàn)本發(fā)明的示例系統(tǒng)300包括計算裝置(如裝 置IIO)。在其最基本的配置中,裝置IIO通常包括處理單元120和 系統(tǒng)存儲器130。根據(jù)計算裝置的精確配置和類型,系統(tǒng)存儲器130 可包括易失性存儲器(例如RAM 132)、非易失性存儲器(例如ROM 131) 或二者的組合。另外,系統(tǒng)300還可以具有海量存儲單元,該海量存 儲單元包括不可拆除的存儲器141 (如硬盤)禾卩/或可拆除存儲器(如 通常的軟盤152或光盤(CD/DVD) 156或閃存存儲器裝置)。類似地, 系統(tǒng)100還可以具有輸入裝置(如鼠標(biāo)161、鍵盤162),和/或輸出 裝置(如顯示單元191、打印機196和揚聲器197)。系統(tǒng)100的其 他方面還包括采用有線或無線媒介到其他裝置、計算機、網(wǎng)絡(luò)、服務(wù) 器等的網(wǎng)絡(luò)連接。例如,系統(tǒng)100還可以包括用于通過廣域網(wǎng)(WAN) 173禾卩/或局域網(wǎng)(LAN) 171與遠程計算機180進行通信的調(diào)制解調(diào) 器172和網(wǎng)絡(luò)接口 170。另外,裝置IIO還包括系統(tǒng)總線121,該系 統(tǒng)總線121電學(xué)上連接至處理單元120、各種存儲器模塊、輸入/輸 出裝置以及上述的其他功能部件。因此,處理單元120可以從/向系 統(tǒng)存儲器130直接讀取/寫入數(shù)據(jù)。它還可以通過各種接口 (如存儲器 接口 140和150、用戶輸入接口 160、網(wǎng)絡(luò)接口 170、視頻接口 190 以及輸出外圍接口 195)與各種輸入/輸出裝置以及網(wǎng)絡(luò)裝置交換數(shù) 據(jù)。所有這些裝置都是本領(lǐng)域公知的裝置,在這里不需要對其進行長 篇討論。
可以將上述的編碼方法實現(xiàn)為在類似于裝置110的通用數(shù)字處 理器上運行的軟件程序。特別地,用于實現(xiàn)該編碼方法的軟件程序可 以包括用于指示裝置110的各個部件執(zhí)行上述方法步驟的程序代碼。 例如,這些程序代碼可以包括提供密鑰調(diào)度器102、改進的LZW模 塊104以及XOR運算符106的功能的功能模塊??商鎿Q地,該軟件
程序可以包括分離的程序,單獨地執(zhí)行每一個程序用于提供密鑰調(diào)度 器102、改進的LZW104和XOR運算符106的功能。無論該軟件程
序的結(jié)構(gòu)如何,這些程序代碼通常包括用于接收包括源符號序列和其 他編碼參數(shù)的輸入數(shù)據(jù)的指令、用于初始化字典的指令、用于根據(jù)上述改進的LZW對符號序列進行編碼的指令。更具體地,用于指示裝
置IIO執(zhí)行改進的LZW的程序代碼還包括用于對字典進行搜索來査
找字符串I的匹配的指令、通過隨機插入和隨機排列的方式更新字典 的指令、以及確定字符串I的字典索引的指令。
采用標(biāo)準(zhǔn)編程語言(如C/C++、 Cft、 Java以及Basic)可以實現(xiàn)該 軟件程序。可替換地,可以在商業(yè)計算機平臺(如Matlab)中實現(xiàn)。 該軟件程序可以是獨立于裝置110上運行的其他程序的可以由裝置 110所執(zhí)行的獨立的程序,或者它還可以是嵌入在其他程序中或操作 系統(tǒng)中用來提供數(shù)據(jù)編碼和加密的程序。例如,它可以嵌入到UNIX 操作系統(tǒng)或Adobe文檔處理程序中,來提供其中的數(shù)據(jù)壓縮和加密。 用以實現(xiàn)編碼系統(tǒng)100的軟件程序可以位于不可拆除的存儲器141 或可拆除存儲器(如軟盤152或CD/DVD 156)上。 一旦啟動系統(tǒng)300 或者通過鼠標(biāo)161或鍵盤162接收用于執(zhí)行該軟件程序的輸入時,可 以將該程序代碼加載到與系統(tǒng)存儲器130中的應(yīng)用程序相關(guān)的存儲 器空間135中。
另一方面,裝置110可通過各種裝置接收要被編碼的數(shù)據(jù)(如 圖1中的源符號序列S)。例如,可以將數(shù)據(jù)存儲到不可拆除的存儲 器141中,并加載到與系統(tǒng)存儲器130中的程序數(shù)據(jù)相關(guān)的存儲器空 間137中。可替換地,可以將要被編碼的數(shù)據(jù)存儲在軟盤152或 CD/DVD 156上,并通過存儲器接口 150和盤閱讀器151或155將其 讀入存儲器空間137。還可替換地,用戶通過鍵盤162或通過網(wǎng)絡(luò)接 口 170從遠程計算機180輸入要被編碼的數(shù)據(jù)。根據(jù)另一個實施例, 可以由各種格式的輸入數(shù)據(jù)產(chǎn)生源符號序列S。例如,輸入數(shù)據(jù)可以 是ASCII文本格式、Microsoft Word格式、HTML格式、XML格式、 PDF格式或其它合適的專用格式。
當(dāng)接收到用以執(zhí)行編碼過程的另一個指令時,從存儲器空間135 中讀出并由處理單元120解釋包括這些指令的程序代碼。這些程序代 碼可以指示處理單元120來加載以之前接收并存儲在存儲空間137 中的數(shù)據(jù),并根據(jù)本文所述的方法對這些數(shù)據(jù)進行處理。在編碼過程 中,可以將中間數(shù)據(jù)和包括密鑰流、位流X和字典的編碼參數(shù)存儲在與程序數(shù)據(jù)相關(guān)的存儲器空間137中,或者存儲在處理單元120 的內(nèi)部寄存器中。當(dāng)完成編碼時,可將己編碼的數(shù)據(jù)流B存儲在存儲 空間137中,用于后續(xù)的處理,或者被其他的程序所利用。可替換地, 可以將已編碼的數(shù)據(jù)流B輸出到不可拆除的存儲器141或可拆除的存 儲器(包括軟盤152和CD/DVD 156)中來進行存儲。還可以通過LAN 171上的網(wǎng)絡(luò)接口 170或WAN 173上的調(diào)制解調(diào)器172將其發(fā)送到 遠程計算機180上。還可替換地,可以在現(xiàn)實裝置191上顯示已編碼 的數(shù)據(jù)流B??梢詫⑵淝度氲狡渌淳幋a的數(shù)據(jù)中,以使己編碼的數(shù) 據(jù)流B與內(nèi)容己被編碼且訪問這些內(nèi)容需要得到授權(quán)的表示一起被 顯示為無意義的文本。
根據(jù)其他一些實施例,還可以在形式為插入到通用計算機系統(tǒng) 中的計算機卡的專有軟件/硬件系統(tǒng)上實現(xiàn)本文所述的編碼方法和系
統(tǒng)??商鎿Q地,可以在現(xiàn)場可編程門陣列(FPGA)或?qū)S眉呻娐?(ASIC)中實現(xiàn)。
根據(jù)如圖4所示的一些實施例,提供計算裝置400來執(zhí)行上文 所述的編碼方法的各種實施例。特別地,如圖4所示,計算裝置400 包括用以接收輸入的源符號序列的接收模塊402、用于對編碼過程中 所采用的字典進行初始化的字典初始化裝置404以及用來基于該字 典對輸入的符號序列進行編碼的編碼器406。
根據(jù)另外一些實施例,接收模塊402可以包括圖l所示的各種 接口和存儲器裝置,例如不可拆除的存儲器接口 140與存儲器141、 可拆除存儲器接口 150與軟盤152和CD/DVD 156、用戶輸入接口 160與鍵盤162和調(diào)制解調(diào)器172以及網(wǎng)絡(luò)接口 170。接收模塊402 還可以包括其中存儲了用于后續(xù)編碼的源符號序列的系統(tǒng)存儲器 130。例如,可以將符號序列存儲在與程序數(shù)據(jù)相關(guān)的存儲空間137 中,之后可以將所述程序數(shù)據(jù)讀取并加載到處理單元120中。
參照圖4,通過釆用用于執(zhí)行初始化過程的程序代碼,可以在數(shù) 字處理器上實現(xiàn)用于對字典進行初始化的字典初始化裝置404。例 如,可以采用處理單元120來執(zhí)行一組用于執(zhí)行字典的初始化過程的 程序代碼。特別地,可以將這組程序代碼存儲在與應(yīng)用程序相關(guān)的存儲空間135中,并讀入存儲單元120用于執(zhí)行。
對于圖4所示的編碼器406,還可以在與實現(xiàn)了初始化裝置404 的處理器不同的數(shù)字處理器上或在如處理單元120同一個數(shù)字處理 器上實現(xiàn)。特別地,用于執(zhí)行編碼器406的程序代碼組可以被讀入并 存儲在存儲空間135中,接著由處理單元120連續(xù)地讀取并加載用于 對源符號序列進行編碼。
可以從系統(tǒng)存儲器中逐個讀出要被編碼的源符號序列的符號, 并將其存儲在處理單元120的內(nèi)部寄存器中。另外,還可以將字典存 儲在存儲空間137中,并將其加載到處理單元120中以用于執(zhí)行編碼 步驟(例如字典搜索、隨機插入和字典排列)??梢詫⒃诿總€編碼迭代 更新后的字典重新存回到存儲器空間137中或存儲在處理單元120 的內(nèi)部寄存器中。此外,處理單元120可以根據(jù)用于執(zhí)行編碼的程序 代碼來執(zhí)行對字典的附加操作。例如,處理單元120可以采用內(nèi)部指 針或存儲器地址對字典中的每個條目進行檢索??梢园才胚@些指針和 存儲器地址,使得由具有多個行和多個列的二維矩陣來表示字典。處 理單元120還可以根據(jù)程序代碼的指令來識別每個偶數(shù)或奇數(shù)列以 及每個偶數(shù)或奇數(shù)行,接著如根據(jù)該編碼方法的各種實施例的描述, 對這些行和列的每一個執(zhí)行循環(huán)移位。
安全分橋
在一些已知攻擊的情況下,分析由上述各種實施例所提供的安 全性,并將顯示這些實施例比基于傳統(tǒng)的LZW壓縮的編碼策略能更 安全地對抗這些攻擊。根據(jù)攻擊者可以訪問的信息,通常將攻擊分成 幾種類型,包括(1)純密文攻擊,(2)已知明文攻擊,(3)選擇明 文攻擊和(4)選擇密文攻擊。對于攻擊模式(4),攻擊通常依賴于 安全性分析,所述安全性分析高度依賴于解碼器中的誤差糾正。在選 擇密文攻擊的情況下,攻擊者不能訪問本文所述的編碼機制的信息。 因此,本文所述的加密和編碼機制在選擇密文攻擊下是安全的。關(guān)于 攻擊模式(2)(已知明文攻擊),對于本領(lǐng)域技術(shù)人員而言,很明顯 它是攻擊模式(3)(選擇明文攻擊)的弱化版本。因此,為了防止已知明文攻擊,系統(tǒng)在選擇明文攻擊下是足夠安全的。出于這些原因, 本領(lǐng)域技術(shù)人員將意識到,在分析上述方法和系統(tǒng)的安全性能時,討 論攻擊模式(1)和(3)就足夠了。
錄麥文攻擊
在這種攻擊情形下,攻擊者只能訪問加密位流,并希望找到系 統(tǒng)中所采用的密鑰。由于攻擊者可用的信息非常有限,非常普通的攻 擊是復(fù)雜性涉及到密鑰空間的強力攻擊。
根據(jù)上述實施例,只有私有信息是密鑰調(diào)度器102中所采用的 密鑰,該密鑰的長度是128位。因此,密鑰空間是2128,這保證了令 人滿意的安全級別。
可替換地,攻擊者可能希望恢復(fù)在改進的LZW 104和OXR運 算符106中所采用的密鑰流。但是,可以顯示出這個任務(wù)甚至比僅采 用強力攻擊來找到密鑰調(diào)度器102中的密鑰更加困難。為了便于討 論,只考慮隨機字典插入。由于可以將字符a, (1《i《N)分配給2'1 大小的字典中的任意條目,隨機字典初始化和隨機字典插入的密鑰空
間將是2"。在b^2的情況下,密鑰空間將是4096!級別的,這是 難以置信地大,且即使采用當(dāng)今的計算能力進行攻擊也是極度困難 的。因此,攻擊者寧愿采用具有復(fù)雜度為2'28的強力攻擊來找到密鑰 調(diào)度器中所采用的密鑰,這已經(jīng)被證實是極度困難的。
因此,針對純密文攻擊本文所述的數(shù)據(jù)編碼方法是安全的。
透存剪文攻擊
在這種攻擊情形下,允許攻擊者向編碼器輸入幾個源符號序列, 并得到相應(yīng)的位流。
如上所述,在不采用隨機字典排列的情況下,可以執(zhí)行基于改 進的LZW壓縮的數(shù)據(jù)編碼和加密方法。但是,如下文所示,這并是 一個容易受到選擇明文攻擊的非優(yōu)選的實施例。
特別地,對于輸入源符號序列S—^&,...^^,給定對應(yīng)的位流為 B二B,B2…B^其中B,的長度為b位,且L是由改進的LZW所產(chǎn)生的索引的數(shù)量。假定與初始字典中的符號S^目關(guān)的索引是h,那么
(/乂e《=^, (i)
其中K,是XOR運算符106中所采用的密鑰流中的第一個b個位。 如果攻擊者采用強力攻擊來破解具有2b=4096復(fù)雜度的K"那么
攻擊者可以對一系列的源符號序列A = ^,x2,...xM} (1《J《N)進行編 碼,其中^e^ (2《m《M)是任意符號。由于K,是通過強力攻擊已知
的,攻擊者可以接著確定與初始字典中的符號Sj相關(guān)的所有索引。應(yīng)
當(dāng)注意的是,在不進行隨機字典排列的情況下,由于新的字符串Ix的
隨機插入將不會影響已經(jīng)填充進字典的條目,與符號Sj相關(guān)的索引不
會隨時間改變。因此,為了恢復(fù)K2,攻擊者可以類似地對另一個符號 序列A^b,^,^,…xd進行編碼。假定Sj的索引是ij,那么, 0))*2@《2 = 52。 (2)
由于采用強力攻擊已經(jīng)知道了(/^,而且B2是公知的,攻擊者可
以唯一地確定K2。類似地,攻擊者可以恢復(fù)所有后續(xù)的Km。在確定
XOR運算符106中所采用的整體密鑰流K之后,恢復(fù)改進的LZW104 中所采用的密鑰流就很簡單了。因此,針對這個沒有采用隨機字典排 列的實施例的攻擊的復(fù)雜度是2、4096量級的,在當(dāng)今的計算能力下這
是完全可以接受的。
因此,采用隨機字典插入和隨機字典排列的編碼是一種更優(yōu)選的 實施例。如下文所示,該實施例提供了一種比沒有采用隨機字典排列 情況下在選擇明文攻擊下更加嚴(yán)密的安全性。
特別地,在對采用了隨機字典插入和隨機字典排列的實施例的攻 擊嘗試中,攻擊者還可以采用等式(1)所示的關(guān)系和強力攻擊來找到 K卜但是,與上文一些實施例中所述相同,在每個編碼步驟之后,通 過將每個條目移動到隨機位置的循環(huán)的列排列和行排列來進一步更新 該字典。如果對符號序列義=^,,^^,...;^進行編碼,并將隨機排列應(yīng)
用于該字典,那么,
(C《2 = 52|, (3)
其中':是s」在行和列排列后的新索引且K2是K的第二個b個位。 由于排列偏移量是隨機數(shù),因此攻擊者對解方程(3)為之。因此,攻擊者不得不采用強力攻擊來確定K2或^。由于行排列偏移量和列排列
偏移量均位于[O, 2^-l]范圍內(nèi),采用強力攻擊找到r,.的復(fù)雜度是2215,
其中奇數(shù)列和偶數(shù)列的偏移量是不同的,且奇數(shù)行和偶數(shù)行的偏移量
也是不同的。由于破解K2的復(fù)雜度是2b,比2215小,攻擊者愿意瞄準(zhǔn) K2。應(yīng)該注意,在這個實施例中對奇數(shù)和偶數(shù)列以及奇數(shù)和偶數(shù)行進 行不同的處理,因為這有助于破壞條目的局部依賴性。換句話說,在 幾次循環(huán)排列之后,彼此接近的兩個條目被迅速地隔離遠離彼此。這 使得攻擊者難以利用條目的相對位置信息來設(shè)計潛在的攻擊。
如上所述,攻擊者不得不采用強力攻擊來找到K的隨后發(fā)生的位。 在確定K之后,恢復(fù)隨機插入中所采用的隨機數(shù)以及字典排列中所采 用的排列偏移量是很簡單的。因此,這種選擇明文攻擊的復(fù)雜度是2bL 量級的,其中L是由改進的LZW 104所產(chǎn)生的索引數(shù)。當(dāng)L比很大時, 攻擊者將寧愿采用強力攻擊來找到密鑰調(diào)度器102中所采用的密鑰, 己經(jīng)示出其具有2b!的復(fù)雜度,并因此難以攻擊。因此,采用隨機插 入和隨機排列的實施例確保了相應(yīng)編碼的數(shù)據(jù)針對選擇明文攻擊是安 全的。
編碼效率
由于采用固定的b個位對每個字典索引進行編碼,最終壓縮和加 密的文件的大小等于bL,其中L是索引數(shù)量??梢院苋菀椎乜闯?,隨 機插入和隨機字典排列只改變了索引的分布,但是沒有影響索引的數(shù) 量。當(dāng)然,XOR運算符106不會增大最終位流的長度。因此,可以發(fā) 現(xiàn)最終的位流與由標(biāo)準(zhǔn)LZW所產(chǎn)生的位流具有相同的大小。換句話說, 沒有編碼效率的損失。
實邀錄菜
下文所描述的是說明該編碼方法和系統(tǒng)的有效性的示例。采用作 為最常用的軟件流密碼的流密碼RC4來實現(xiàn)密鑰調(diào)度器102。 128位 16進制密鑰是9F7AC6DC。改進的LZW 104采用了由RC4所產(chǎn)生的 密鑰流來在字典上執(zhí)行隨機插入和隨機字典排列。由RC4密碼所產(chǎn)生的密鑰流還可以用于XOR級106,通過對來自改進的LZW 104的位流 進行編碼來產(chǎn)生最終的位流。
圖6 (a)示出了要被編碼和加密的一段ASCII字符。當(dāng)然,如果 將圖1所示的系統(tǒng)100所產(chǎn)生的位流B輸入到授權(quán)的采用具有正確密 鑰的適當(dāng)編碼策略的解碼器,已解碼的符號序列與圖6 (a)所示的原 始序列完全相同。但是,如果將系統(tǒng)100所編碼的位流B輸入到標(biāo)準(zhǔn) 的LZW解碼器,解碼的符號序列如圖6 (b)所示,是完全無意義的序 列。應(yīng)該注意,標(biāo)準(zhǔn)LZW解碼器由于不同的實現(xiàn)而有一些差異。例如, 考慮ASCII字符表,如果第一個索引大于255, 一些實現(xiàn)只是聲明一個 嚴(yán)重錯誤,而不輸出任何的符號序列。根據(jù)一些實施例,在這種情況 下解碼器仍然繼續(xù)解碼??梢宰⒁獾?,在采用標(biāo)準(zhǔn)LZW解碼的符號序 列中,有很多的重復(fù)符號。這是因為在標(biāo)準(zhǔn)LZW中如果索引所指的條 目為空,該解碼器將輸出與第一符號連接的最后的解碼符號串。M. N elson,"LZW Data Compression," http:〃marknelson.us/1989/10/01/lzw-d atacompression/有關(guān)于標(biāo)準(zhǔn)LZW的更多細(xì)節(jié)。
雖然在本文中公開了發(fā)明的注入-增強注入-鎖定分頻器的一些示 例實施例,這不意味著對本發(fā)明范圍的必然限制。因此,不脫離權(quán)利 要求的原理或范圍的簡單改進或變型仍然處于本發(fā)明的范圍內(nèi)。
所有本文引用的參考,包括出版物、專利申請以及專利,均通過 引用合并到與單獨地且專門地將每個參考通過引用合并而且在這里以 全文闡述的相同的范圍。
在描述本發(fā)明的上下文中(特別是如下權(quán)利要求的上下文中) 將所采用的術(shù)語"一個"、"一種"和"這種"以及類似的指示對象 解釋為涵蓋單數(shù)和復(fù)數(shù),除非在本文中另行說明或與上下文的內(nèi)容明 確地出現(xiàn)了抵觸。將術(shù)語"包含""具有""包括"以及"含有"解 釋為開放性術(shù)語(如意思是"包括但不限于"),除非另行說明。本 文所述的值的范圍僅僅用來作為對落在范圍內(nèi)的每個分離值單獨引 用的速記方法,除非在文中另行說明,且如果每個分離值在本文中被 單獨引用,將該值均合并到本說明書中??梢砸匀魏魏线m的順序執(zhí)行 本文所述的所有方法,除非在文中另行說明,或者與上下文的內(nèi)容明確地出現(xiàn)了抵觸。本文提供的所采用的任何示例和所有示例或示例語 言(例如"如")僅僅是為了更好地說明本發(fā)明,而不是要對本發(fā)明 的范圍提出限制,除非另行聲明。說明書中的任何語言都不解釋為表 示本發(fā)明的實踐要素的任何非聲明元素。
本文對本發(fā)明的優(yōu)選實施例進行了說明,包括發(fā)明人所知的用 于執(zhí)行本發(fā)明的最佳模式。本領(lǐng)域技術(shù)人員在閱讀前述說明書之后, 各種優(yōu)選實施例的變型將變得很明顯。發(fā)明人希望技術(shù)人員以合適的 方式采用這些變型,且發(fā)明人希望可以以本說明書中沒有明確說明的 方式來實踐本發(fā)明。因此,本發(fā)明包括所附的權(quán)利要求所列舉的主題 的所有變型和等價,這是適用的法律所允許的。此外,本發(fā)明包含上 述元素所有可能的變型的任何組合,除非在文中另行說明,或者與上 下文的內(nèi)容明確地出現(xiàn)了抵觸。
權(quán)利要求
1.一種采用基于字典的壓縮技術(shù)對數(shù)據(jù)進行編碼的方法,該方法包括接收源符號序列;根據(jù)隨機插入采用源字符表對所述字典進行初始化;以及根據(jù)基于字典的壓縮技術(shù)對所述源符號序列進行編碼,其中根據(jù)編碼過程中的隨機插入和隨機排列更新字典。
2. 根據(jù)權(quán)利要求1所述的方法,其中所述源字符表包括多個字 符,所述字典包括多個條目,對所述字典進行初始化的步驟還包括將所述多個字符中的每一 個隨機地分配給所述多個條目中的一個。
3. 根據(jù)權(quán)利要求1所述的方法,其中所述源符號序列至少包括第一字符,對源符號序列進行編碼的步驟還包括將所述第一符號添加到字符串;以及 在字典中搜索具有所述第一符號的字符串。
4. 根據(jù)權(quán)利要求3所述的方法,所述源符號序列還包括第二符 號,對所述源符號序列進行編碼的步驟還包括確定字典中存在對具有第一符號的字符串的匹配;以及 將第二符號添加到具有第一符號的字符串。
5. 根據(jù)權(quán)利要求3所述的方法,對所述源符號序列進行編碼的 步驟還包括確定字典中不存在對具有第一符號的字符串的匹配; 確定不具有第一符號的字符串的字典索引;在字典中隨機選擇一個空條目,用來存儲具有第一符號的字符 串;以及將所述字符串初始化為第一符號。
6. 根據(jù)權(quán)利要求5所述的方法,在字典中隨機選擇一個空條目來存儲具有第一符號的字符串的步驟還包括基于具有私有密鑰的鍵控散列函數(shù)來選擇所述空條目。
7. 根據(jù)權(quán)利要求1所述的方法,還包括 將字典布置成具有多個列和多個行的二維矩陣;對所述的多個列執(zhí)行列排列;以及 對所述的多個行執(zhí)行行排列。
8. 根據(jù)權(quán)利要求7所述的方法,還包括對所述多個列中的每一列進行循環(huán)移位。
9. 根據(jù)權(quán)利要求8所述的方法,其中用第一隨機偏移量對每一 個偶數(shù)列進行循環(huán)移位,并用第二隨機偏移量對每一個奇數(shù)列進行循 環(huán)移位。
10. 根據(jù)權(quán)利要求7所述的方法,還包括對所述多個行中的每 一行進行循環(huán)移位。
11. 根據(jù)權(quán)利要求8所述的方法,其中用第三隨機偏移量對每 一個偶數(shù)行進行循環(huán)移位,并用第四隨機偏移量對每一個奇數(shù)行進行 循環(huán)移位。
12. 根據(jù)權(quán)利要求1所述的方法,還包括通過組合己編碼的源 符號序列與流密碼器所產(chǎn)生的密鑰流,來產(chǎn)生編碼數(shù)據(jù)流。
13. 根據(jù)權(quán)利要求1所述的方法,其中所述壓縮技術(shù)是 Lempel-Ziv-Welch 壓縮 、Lempel-Ziv-Storer-Szymanski 壓縮禾口Lempel-Ziv-Ross壓縮中的一種。
14. 一種計算機可讀媒介,具有存儲在其上的計算機代碼,所述 計算機代碼包括計算機可執(zhí)行指令,當(dāng)這些可執(zhí)行指令被一個或多個 數(shù)字處理器執(zhí)行時,提供采用基于字典的壓縮技術(shù)的數(shù)據(jù)編碼,所述 計算機代碼包括接收源符號序列的指令;根據(jù)隨機插入采用源字符表對字典進行初始化的指令; 根據(jù)壓縮技術(shù)對源符號序列進行編碼的指令;以及 在編碼過程中根據(jù)隨機插入和隨機字典排列對字典進行更新的 指令。
15. 根據(jù)權(quán)利要求14所述的計算機可讀媒介,其中所述源字符 表包括多個字符,且所述字典包括多個條目,所述計算機代碼還包括將所述多個符號中的每一個隨機地分配給所述多個條目中的一 個的指令。
16. 根據(jù)權(quán)利要求14所述的計算機可讀媒介,所述計算機代碼 還包括通過根據(jù)異或運算將已編碼的源符號序列與密鑰流進行組合來 產(chǎn)生輸出數(shù)據(jù)流的指令。
17. 根據(jù)權(quán)利要求14所述的計算機可讀媒介,其中所述源符號序 列包括多個符號,所述計算機代碼還包括用于將第一符號添加到字符串的指令;用于確定字典中不存在與具有第一符號的字符串相匹配的條目 的指令;用于確定不具有第一符號的字符串的字典索引的指令; 用于在字典中隨機選擇一個空條目來存儲具有第一符號的字符串的指令;將字符串初始化為第一符號的指令。
18. 根據(jù)權(quán)利要求14所述的計算機可讀媒介,其中所述壓縮技 術(shù)是 Lempel-Ziv-Welch壓縮、Lempel-Ziv-Storer-Szymanski 壓縮禾口 Lempel-Ziv-Ross壓縮中的一種。
19. 一種用于采用具有多個條目的字典來對源符號序列進行編 碼的方法,所述源符號序列包括多個符號,該方法包括執(zhí)行下列步驟, 直到源符號序列被用盡為止將字符串初始化為源符號序列的一個符號;在字典中搜索與所述字符串匹配的最長條目;執(zhí)行(a) - (b)直到在所述字典中不能找到對該字符串的匹配(a) 確定字典具有與該字符串相匹配的最長條目和與所述 字符串相匹配的最長條目的字典索引,(b) 將來自源符號序列的另一個符號添加到該字符串; 存儲所述字典索引;隨機地選擇字典中的條目來存儲不具有所述另一個符號的字符串;以及執(zhí)行隨機字典排列。
20. 根據(jù)權(quán)利要求19所述的方法,其中執(zhí)行所述隨機字典排列 還包括將字典布置成具有多個列和多個行的二維矩陣;以及對所述的多個列和所述的多個行執(zhí)行隨機字典排列。
21. 根據(jù)權(quán)利要求20所述的方法,還包括用第一隨機偏移量對所述的多個列的至少一個奇數(shù)列進行循環(huán)移位;以及用第二隨機偏移量對所述的多個列的至少一個偶數(shù)列進行循環(huán) 移位。
22. 根據(jù)權(quán)利要求21所述的方法,還包括用第三隨機偏移量對所述多個行的至少一個奇數(shù)行進行循環(huán)移位;以及用第四隨機偏移量對所述多個行的至少一個偶數(shù)行進行循環(huán)移位。
23. 根據(jù)權(quán)利要求19所述的方法,還包括 產(chǎn)生用于隨機插入和隨機字典排列的密鑰流。
24. 根據(jù)權(quán)利要求23所述的方法,其中,基于具有與密鑰流的 一部分相關(guān)聯(lián)的秘密密鑰的散列函數(shù)來選擇用于存儲不具有另一個 符號的字符串的條目。
25. 根據(jù)權(quán)利要求19所述的方法,其中所述字典索引包括一個 或多個二進制位,所述方法還包括產(chǎn)生表示源符號序列的字典索引流,通過根據(jù)異或運算將字典索引流與密鑰流進行組合,來產(chǎn)生編 碼數(shù)據(jù)流;以及輸出編碼數(shù)據(jù)流。
全文摘要
本發(fā)明涉及基于具有安全特性的壓縮技術(shù)來編碼數(shù)據(jù)的系統(tǒng)和方法。本文描述的是一種有效的加密方法和系統(tǒng),該方法和系統(tǒng)具有改進的基于隨機性的安全特性。該方法和系統(tǒng)采用隨機字典插入和隨機字典排列、以及由流密碼器所產(chǎn)生的密鑰流。安全性分析結(jié)果顯示,與現(xiàn)有的編碼方法相比,該方法和系統(tǒng)提供了更高級別的安全性,而沒有引入任何編碼效率的損失。
文檔編號G06F9/44GK101610088SQ20091020369
公開日2009年12月23日 申請日期2009年6月17日 優(yōu)先權(quán)日2008年6月17日
發(fā)明者區(qū)子廉, 周建濤 申請人:香港科技大學(xué)