適用于混淆的電子塊密碼設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及用于加密或解密數(shù)字?jǐn)?shù)據(jù)的消息塊的電子塊密碼設(shè)備,包括:W查找 表形式存儲多個替換盒的存儲單元,運多個替換盒一起形成塊密碼的替換層,該替換層被 布置成取得替換層輸入并將其變換成替換層輸出;W及控制單元,其被配置成通過對數(shù)字 數(shù)據(jù)的消息塊應(yīng)用塊密碼輪序列來對該消息塊應(yīng)用塊密碼,塊密碼輪之一包括替換層。
[0002] 本發(fā)明進(jìn)一步設(shè)及電子塊密碼方法和對應(yīng)的軟件。
【背景技術(shù)】
[0003] 塊密碼是在密碼學(xué)中經(jīng)常使用的本原。塊密碼是一種用于在密碼密鑰的控制下加 密或解密數(shù)字?jǐn)?shù)據(jù)的消息塊的算法。塊密碼在某一預(yù)定塊尺寸(常規(guī)地,位尺寸)的數(shù)字?jǐn)?shù) 據(jù)的消息塊上運算。常用的塊尺寸包括64、128、192和256位。所述運算是確定性雙射(并 且因此可逆的)運算。已知的塊密碼包括DES和AES。
[0004]例如,內(nèi)容分發(fā)系統(tǒng)可W在分發(fā)之前加密內(nèi)容W對抗盜版。經(jīng)加密的內(nèi)容可W在 較不安全的通道(比如說因特網(wǎng))上分發(fā),而用于加密的密鑰可W使用更安全的工具(比如 說DRM系統(tǒng))分發(fā)。然而,甚至密鑰的分發(fā)也不是沒有風(fēng)險的。甚至DRM實現(xiàn)方式也可W被 破解從陜復(fù)它們的秘密,例如,它們的秘密密鑰。出于運種原因和其他原因,存在對可W防 范逆向工程的安全加密/解密本原的期望。
[0005] -種保護密鑰(例如,在DRM實現(xiàn)方式中使用的密鑰,比如說主密鑰)的方式可W 是使用塊密碼的實現(xiàn)方式。白盒密碼是塊密碼的軟件實現(xiàn)方式,其中秘密密鑰被"實例 化"。在一種實現(xiàn)方式中將密鑰實例化固定了該密鑰并通過關(guān)于密鑰的部分評估(partial evaluation)將密鑰嵌入在該實現(xiàn)方式中;密鑰輸入變成不必要的。取決于密鑰的計算被 評估,只要在不知道消息塊輸入的情況下是可能的。典型地,可W計算密鑰編排,并且輪密 鑰可W與其他步驟結(jié)合。通常,輪密鑰可W與替換層結(jié)合,即,通過將輪密鑰添加到替換層 中的替換盒的輸出來結(jié)合。
[0006] 接下來,該實現(xiàn)方式被混淆。典型地,運是通過將實例化的密碼表達(dá)為表網(wǎng)絡(luò)并 且編碼該網(wǎng)絡(luò)的表來完成的。目的是從白盒密碼恢復(fù)實例化的密鑰的努力至少與對底層密 碼的黑盒(例如暴力)攻擊一樣大。
[0007] -個理想的解決方案是將密碼實現(xiàn)為一個大的查找表。然而,運對于實際塊密碼 來說是不可行的。2002 年在ComputerScience2003 中的Digital化曲tsManagementof theLec1:ureNotes-書中發(fā)表的S.Qiow、P.EiseruH.Johnson和P.C.vanOorschot 的"AWhite-Box肥SImplementationforDRMApplications"中介紹了接近運種理想的 白盒策略。計算,特別是塊密碼,可W被實現(xiàn)為查找表的網(wǎng)絡(luò),其被隨機化,使得密鑰信息遍 布整個網(wǎng)絡(luò)??蒞使每個構(gòu)成塊看似獨立于密鑰。所W,對手被迫分析整個網(wǎng)絡(luò)W便獲得 秘密的密鑰信息。通過對在表中寫出的變換預(yù)先考慮并附加混淆變換,表的網(wǎng)絡(luò)的混淆是 可能的。按照運種方式,每個單獨的表格被隨機化,而所有混淆變換的組合取消。在化0W、 Eisen和vanOorschot的"White-BoxCryptographyandanAESImplementation" 中給 出了另一示例。
[0008] 在白盒密碼術(shù)中,塊密碼在軟件中實現(xiàn),使得即使攻擊者能完全訪問該實現(xiàn)方式 的情況下他也難W提取密鑰。然而,發(fā)明人發(fā)現(xiàn),特定種類的塊密碼、所謂的替換-線性變 換網(wǎng)絡(luò)在運方面有弱點,運使得它們難W使用傳統(tǒng)的白盒技術(shù)來保障安全。詳情參見Wil Michiels、PaulGorissen和HenkD.L.Hollmann的論文"CryptanalysisofaGeneric Classof怖ite-BoxImplementations"。該問題設(shè)及化T(替換-線性變換)型密碼的組 織方式,即使用比如化OW等人所使用的白盒技術(shù)的上述類型的塊密碼的任何白盒實現(xiàn)方 式將是脆弱的。
【發(fā)明內(nèi)容】
[0009] 有利的是具有一種改進(jìn)的塊密碼。
[0010] 提供了一種電子塊密碼設(shè)備,該電子塊密碼設(shè)備被布置成加密或解密數(shù)字?jǐn)?shù)據(jù)的 消息塊。該塊密碼設(shè)備包括存儲單元和控制單元。
[0011] 存儲單元W查找表形式存儲多個替換盒,多個替換盒一起形成塊密碼的替換層, 替換層被布置成取得替換層輸入并將其變換成替換層輸出,至少一個替換盒被布置成接收 相同替換層中多于一個的另外替換盒的輸出中的至少一部分輸出的組合作為輸入。
[0012] 控制單元被配置成通過對數(shù)字?jǐn)?shù)據(jù)的消息塊應(yīng)用塊密碼輪的序列來對該消息塊 應(yīng)用塊密碼,塊密碼輪之一包括替換層。
[0013] 替換層不是完全并行的,因為至少一個替換盒被布置成接收相同替換層中多于一 個的另外替換盒的輸出中的至少一部分輸出的組合作為輸入。運意味著按照W上描述的方 式無法消除對該層的輸入-輸出編碼,比如在白盒中使用的。更一般地,認(rèn)為不期望的是, 塊密碼部分可WW運樣的直接方式被分析。
[0014] 塊密碼也非常適合于用在比如相同申請在2012年12月21日提交的題為 "Computingdeviceconfiguredwithat油Ienetwork"的序列號為61/740726 的美國專 利申請中描述的系統(tǒng)中。此外,與一般的塊密碼相比,自動化軟件混淆系統(tǒng)當(dāng)用在所描述的 類型的軟件實現(xiàn)塊密碼上時通常更有效。
[0015] 實際上,按照與上述線性變換-層方法不同的方式,從較小的非線性函數(shù)(S-盒) 創(chuàng)建大的非線性函數(shù),運更適合用于在白盒攻擊上下文中的實現(xiàn)方式。替換盒是被布置成 取得數(shù)字輸入并將其變換成數(shù)字輸出的查找表。優(yōu)選地,S-盒是非線性的。
[0016] 通過W下操作也獲得非并行性:使至少一個替換盒被布置成使得所述至少一個替 換盒的數(shù)字輸出的第一部分被用作與所述至少一個替換盒在相同替換層中的另外替換盒 的輸入的一部分并且使得所述至少一個替換盒的數(shù)字輸出的第二部分被用作相同替換層 中又另外不同的替換盒的輸入的一部分。
[0017] 在實施例中,替換層包括多個子層,多個子層中的第一子層被布置成接收替換層 輸入作為輸入,接下來的子層被布置成接收先前替換層的輸出作為輸入,并且所述接下來 的子層之一是被布置成產(chǎn)生替換層輸出的最后子層。已經(jīng)發(fā)現(xiàn),使用多個子層是一種確保 擴散發(fā)生在替換層內(nèi)的高效方式。
[0018] 塊密碼設(shè)備可W包括在或用在諸如移動電話之類的移動電子設(shè)備中。塊密碼設(shè)備 可W包括在或用在機頂盒、計算機等等中。
[0019] 本發(fā)明的一方面設(shè)及一種用于加密或解密數(shù)字?jǐn)?shù)據(jù)的消息塊的電子塊密碼方法, 包括:W查找表的形式存儲多個替換盒,所述多個替換盒一起形成塊密碼的替換層,替換層 被布置成取得替換層輸入并將其變換成替換層輸出,至少一個替換盒被布置成接收相同替 換層中多于一個的另外替換盒的輸出中的至少一部分的組合作為輸入,通過對數(shù)字?jǐn)?shù)據(jù)的 消息塊應(yīng)用塊密碼輪的序列來對該消息塊應(yīng)用塊密碼,塊密碼輪之一包括替換層。
[0020] 根據(jù)本發(fā)明的方法可W作為計算機實現(xiàn)的方法在計算機上實現(xiàn),或者在專用硬件 中實現(xiàn),或者在二者的組合中實現(xiàn)。用于根據(jù)本發(fā)明的方法的可執(zhí)行代碼可W被存儲在計 算機程序產(chǎn)品上。計算機程序產(chǎn)品的示例包括存儲器設(shè)備、光學(xué)存儲設(shè)備、集成電路、服務(wù) 器、在線軟件等等。優(yōu)選地,計算機程序產(chǎn)品包括被存儲在計算機可讀介質(zhì)上的用于在所述 程序產(chǎn)品在計算機上執(zhí)行時執(zhí)行根據(jù)本發(fā)明的方法的非暫時性程序代碼裝置。
[0021] 在優(yōu)選的實施例中,計算機程序包括適于在計算機程序在計算機上運行時執(zhí)行根 據(jù)本發(fā)明的方法的所有步驟的計算機程序代碼裝置。優(yōu)選地,計算機程序被體現(xiàn)在計算機 可讀介質(zhì)上。
【附圖說明】
[0022] 根據(jù)下文描述的實施例,本發(fā)明的運些和其他方面是顯而易見的并且將參照運些 實施例而被闡明。在附圖中, 圖Ia是圖示了塊密碼的框圖, 圖Ib是圖示了塊密碼的輪的框圖, 圖2-4和圖5a是圖示了替換層的框圖, 圖化是圖示了包括編碼的替換層的框圖, 圖6是圖示了計算設(shè)備的框圖, 應(yīng)注意,不同的圖中具有相同附圖標(biāo)記的項目具有相同的結(jié)構(gòu)特征或相同的功能,或 者是相同的信號。在已解釋了運樣的項目的功能和/或結(jié)構(gòu)情況下,在詳細(xì)描述中不必對 其重復(fù)解釋。
【具體實施方式】
[0023] 盡管本發(fā)明易受許多不同形式的實施例的影響,但是在附圖中示出并將在本文中 詳細(xì)描述一個或多個特定的實施例,應(yīng)理解本公開將被認(rèn)為是本發(fā)明的原理的示范并且而 不旨在將本發(fā)明限于所示出和描述的特定實施例。
[0024] 圖IaW示意性的形式示出了塊密碼。塊密碼包括多個輪;所示出的是塊密碼輪 112、114和116。輪的數(shù)目取決于塊密碼的設(shè)計。例如,有時使用8個、12個或16個輪。典 型地,輪的數(shù)目是8或更高。還示出了數(shù)字?jǐn)?shù)據(jù)的消息輸入塊110。消息輸入塊典型地是二 進(jìn)制數(shù)據(jù)并且具有固定塊尺寸。常見的塊尺寸是64、128、192和256,特別地128是方便的 選擇。作為輸入而接收的消息塊可W是被劃分的字,比如說每個是8位字節(jié)或每個是4