亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于不安全環(huán)境中的塊密碼處理的裝置和方法

文檔序號(hào):7885145閱讀:137來(lái)源:國(guó)知局
專利名稱:用于不安全環(huán)境中的塊密碼處理的裝置和方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)安全和加密,更特別地,涉及提高計(jì)算機(jī)實(shí)現(xiàn)的密碼處理和算法的安全性。
背景技術(shù)
密碼算法廣泛用于消息的加密、鑒別、加密簽名和識(shí)別。公知的DES (數(shù)據(jù)加密標(biāo)準(zhǔn))已被長(zhǎng)時(shí)間使用,并被Triple-DES更新,該Triple-DES已在許多應(yīng)用中被AES (高級(jí)加密標(biāo)準(zhǔn))替代。DES,Triple-DES和AES是示例性的對(duì)稱塊密碼。塊密碼在通常為64或128位但有時(shí)更長(zhǎng)的明碼文和密碼文的塊上操作。流密碼是其它主要類型的密碼,并且,一次I位或字節(jié)(有時(shí)是一個(gè)詞)地在明碼文和密碼文的流上操作。通過(guò)塊密碼,特定的明碼文塊將總是通過(guò)使用相同的密鑰被加密成相同的密碼文塊。但是,與流密碼相反,相同的明碼文位或字節(jié)將在每次被加密時(shí)被加密到不同的位或字節(jié)。由此,在用于塊密碼的ECB (電子代碼書(shū))模式中,各明碼文塊被獨(dú)立地加密。AES被美國(guó)政府批準(zhǔn)為加密標(biāo)準(zhǔn)。與DES不同,它是替代置換網(wǎng)絡(luò)。AES能夠迅速地在計(jì)算機(jī)軟件和硬件實(shí)現(xiàn)兩者中執(zhí)行、實(shí)現(xiàn)起來(lái)相對(duì)容易并且需要很少的存儲(chǔ)器。AES具有128位的固定的塊尺寸和為128、192或256位的密鑰尺寸。由于128位的固定的塊尺寸,因此AES在4X4陣列的字節(jié)上操作。它使用密鑰擴(kuò)展等,并且與大多數(shù)塊密碼類似,使用一組加密和解密輪次(迭代)。每輪次包含相同的處理。使用多個(gè)輪次能夠提高安全性。這種類型的塊密碼在各輪次中使用替代盒或s盒。該操作在密碼中提供非線性,并明顯地提高安全性。注意,這些塊密碼是對(duì)稱的密碼,從而意味著,除了通常用于密鑰調(diào)度的較小差異以外,對(duì)于加密和解密使用相同的算法和密鑰。大多數(shù)現(xiàn)在的密碼的典型的情況是,安全性取決于(秘密)密鑰而不是算法。s盒或替代盒被引入DES中,并且接收η位輸入并提供m位輸出。m和η的值隨密碼改變。輸入位以本領(lǐng)域公知的特定方式規(guī)定s盒中的條目。為了實(shí)現(xiàn)AES (具有128位的塊和10輪次),在運(yùn)算上包含以下運(yùn)算:(I) 11個(gè)AddRoundKey 運(yùn)算(I 個(gè)在 10 輪次之前);(2) 10 個(gè) Sub-Byte 運(yùn)算;(3) 10 個(gè) ShiftRow 運(yùn)算和(4) 9個(gè)Mix-Column運(yùn)算。第I 9輪次中的每輪次包含運(yùn)算(I) (4),這里,來(lái)自一個(gè)運(yùn)算的輸出被輸入到下一運(yùn)算,并且,來(lái)自運(yùn)算(4)的輸出被輸入到運(yùn)算(I )。輪次10包含運(yùn)算(I) (3),這里,來(lái)自運(yùn)算(3)的輸出是使用的輸出。如果攻擊人員具有訪問(wèn)實(shí)現(xiàn)密碼的系統(tǒng)的特權(quán),那么AES的運(yùn)算實(shí)現(xiàn)對(duì)于恢復(fù)密鑰的攻擊人員不能提供更多的安全性。
許多加密算法主要與產(chǎn)生抵抗攻擊人員的解碼的加密數(shù)據(jù)有關(guān),該攻擊人員只能與僅作為“黑盒”(輸入輸出)模型的加密算法交互作用,并且,由于缺少系統(tǒng)訪問(wèn)等,不能看到算法或存儲(chǔ)器內(nèi)容的內(nèi)部工作。黑盒模型適于受信任方對(duì)于編碼和解碼加密材料均控制計(jì)算系統(tǒng)的應(yīng)用。但是,加密的許多應(yīng)用不允許攻擊人員不能訪問(wèn)算法的內(nèi)部工作的假定。例如,力口密的數(shù)字媒體常常需要在完全由對(duì)手(攻擊人員)控制的計(jì)算系統(tǒng)上被解密。存在許多可松弛黑盒模型的程度。極端的松弛被稱為“白盒”模型。在白盒模型中,假定攻擊人員完全能夠訪問(wèn)執(zhí)行加密的系統(tǒng),包括能夠直接看到存儲(chǔ)器的狀態(tài)和程序執(zhí)行等。在這種模型中,可在存儲(chǔ)器中看到或者從中提取加密密鑰,因此,隱藏指示密鑰的運(yùn)算的方式是十分重要的。公開(kāi) “White-Box Cryptography in an AES implementation” Lecture Notesin Computer Science Vol.2595, Revised Papers from the 9th Annual InternationalWorkshop on Selected Areas in Cryptography pp.250-270 (2002) by Chow et al.公開(kāi)了如下的AES的實(shí)現(xiàn),即通過(guò)使用表格查找以掩蓋在AES中執(zhí)行的運(yùn)算,從而掩蓋查找表格內(nèi)的密鑰,并且掩蓋另外可用于AES的運(yùn)算實(shí)現(xiàn)的中間狀態(tài)信息。Chow et al.(對(duì)于他的在計(jì)算機(jī)代碼編譯時(shí)間已知密鑰的“白盒”實(shí)現(xiàn))使用160個(gè)單獨(dú)的表格以實(shí)現(xiàn)11個(gè)AddRoundKey運(yùn)算和10個(gè)SubByte運(yùn)算(10輪次,每輪次16個(gè)表,這里,每個(gè)表用于16字節(jié)長(zhǎng)-128比特-AES塊的I字節(jié))。這160個(gè)表嵌入特定的AES密鑰,使得來(lái)自包含這些表的查找的輸出嵌入一般源自AES算法的AddRoundKey和SubByte運(yùn)算的數(shù)據(jù),除了該數(shù)據(jù)包含使得更加難以確定這些表的哪些部分代表從AES密鑰導(dǎo)出的輪次密鑰信息的輸入/輸出置換以外。Chow et al.使用1008個(gè)單獨(dú)的表以實(shí)現(xiàn)9個(gè)MixColumn運(yùn)算(在AES的第10輪次中不存在MixColumn運(yùn)算)。一種類型的這些表實(shí)現(xiàn)一個(gè)字節(jié)與AES MixColumn多項(xiàng)式(按規(guī)范)的乘法,并且,另一類型實(shí)現(xiàn)MixColumn的邏輯XOR (異或)部分。各表在9個(gè)輪次中被使用一次。Chow et al.方案是更加聰明的,但已受到幾次攻擊。Chow et al.的給定塊密碼加密處理的白盒實(shí)現(xiàn)將塊密碼(以及其密鑰)分解成一組表查找。然后通過(guò)使用置換功能掩蔽表查找。(這里使用的置換指的是以預(yù)定的方式改變數(shù)據(jù)字節(jié)或詞中的位的次序的雙射運(yùn)算)。這一點(diǎn)在Chow et al.中被解釋,并且,該方法可擴(kuò)展到任何塊密碼。Olivier Billet et a 1.“Cryptanalysis of a White Box AESImplementation” in SAC2004, LNCS3357pp.227-240,2005 公開(kāi)了最近和最有力的這些擴(kuò)展。要進(jìn)行攻擊必需處理的基本運(yùn)算的細(xì)節(jié)。這意味著攻擊人員必須區(qū)分一組運(yùn)算以提取每輪次的運(yùn)算、MixColumn運(yùn)算等。

發(fā)明內(nèi)容
意圖是阻止這種攻擊的本方法及其相關(guān)的裝置包括構(gòu)建AES (或包含任何塊密碼算法的其它加密算法)實(shí)現(xiàn)作為各自不可相互區(qū)分并被掩蔽的一組基本表運(yùn)算。由此,攻擊人員迷失于或者受困于體現(xiàn)密碼的計(jì)算機(jī)代碼(對(duì)于被動(dòng)攻擊)和/或計(jì)算機(jī)代碼執(zhí)行路徑(對(duì)于主動(dòng)攻擊)。也可在被設(shè)計(jì)為實(shí)施密碼處理的硬件(基于電路)裝置中實(shí)現(xiàn)該方法。以上提到的Billet等攻擊是分解成一組基本問(wèn)題以逐步獲得關(guān)于被用于隱藏密碼運(yùn)算和密鑰的掩蔽的信息的處理。當(dāng)掩蔽已知時(shí),則很容易恢復(fù)密碼密鑰本身。只要攻擊人員能夠?qū)?gòu)成AES算法的輪次的表重新分組,Billet等攻擊使得攻擊人員能夠恢復(fù)輸出變換的非線性部分。例如,Billet等表示如何從Billet等恢復(fù)在諸如圖1所示的MixColumn “盒”10中使用的函數(shù)Q的非線性部分,并且表示四個(gè)輸入字節(jié)和四個(gè)輸出字節(jié)之間的盒10中的四個(gè)映射中的一個(gè)。輸入字節(jié)是X(!、X1^ X2和X3,輸出字節(jié)是1q、
每個(gè)這種盒由具有各輸出置換Q的四個(gè)8位到8位置換構(gòu)成。因此,在第一階段中,為了能夠計(jì)算包含于一個(gè)AES輪次中的表,恢復(fù)在存儲(chǔ)器中出現(xiàn)的表中的每一個(gè)的角色,以構(gòu)建一個(gè)輪次的運(yùn)算的以下組合。本密碼處理的目的是使得該任務(wù)更難。事實(shí)上,在AES的當(dāng)前已知的版本中,一些表比其它的表大,并且,一些運(yùn)算不是“白盒”。圖1中的MixColumn表具有8 X 32個(gè)元素而不是其它表的8X8元素的尺寸。并且,與其它的表的輸出相反,某些表的輸出在邏輯上為被XOR (異或)。由于由此這些運(yùn)算是可區(qū)分的,因此能夠使白盒環(huán)境中的攻擊人員確定什么時(shí)候完成AES輪次以及什么開(kāi)始新的一個(gè)。本方法的目的是,使這些表構(gòu)建為均具 有嚴(yán)格相同的尺寸,由此針對(duì)這種攻擊急劇強(qiáng)化。由于AES密碼算法的計(jì)算的結(jié)構(gòu),可使用尺寸為8位輸入X4位輸出(具有128字節(jié)的尺寸)、16位輸入X8位輸出(65K字節(jié))或32位輸入X 16位輸出(8G字節(jié))的表。示例性的選擇是各自具有尺寸為8位(I字節(jié))X4位(四位組)的表。以下給出的處理具有8X4表尺寸,但是,處理很容易被一般化為其它的表尺寸。注意,這些表用于置換和邏輯運(yùn)算;它們不是AES密碼的“S盒”替代運(yùn)算特性。這里加入共有的美國(guó)專利申請(qǐng)公開(kāi)US2009/0252327A1 “CombinationWhite Box/Black Box Cryptographic Processes and Apparatus” Ciet et al.和US2010/0054461A1“Systems and Methods for Implementing Block Cipher Algorithmson Attacker-Controlled Systems” Ciet et al.的全部?jī)?nèi)容作為參考。


圖1表示現(xiàn)有技術(shù)中的AES MixColumn運(yùn)算中的映射。圖2以圖示的方式表示XOR運(yùn)算表或“盒”圖3表示置換盒。圖4A、圖4B表示分解的圖3的置換。圖5表示XOR表的孿生。圖6表不圖5表的一般形式。圖7表不完成的XOR表。圖8A、圖8B和圖8C表示掩蔽置換。圖9表示計(jì)算系統(tǒng)。圖10表示圖9系統(tǒng)的細(xì)節(jié)。
具體實(shí)施例方式以上描述的類型的表輸入數(shù)據(jù)字節(jié),但返回?cái)?shù)據(jù)四位組(四位組是半個(gè)字節(jié))。以AES密碼為例,本發(fā)明的發(fā)明人確定對(duì)于AES算法來(lái)說(shuō)兩種類型的8X4表是足夠的:(a)實(shí)現(xiàn)8位輸入(2個(gè)四位組)與4位(I個(gè)四位組)輸出的表由此在輸出側(cè)被限于I個(gè)四位組。在這種情況下,為了代表輸入數(shù)據(jù)的I字節(jié)的置換功能,需要兩個(gè)8X4表。(b)在掩蔽的四位組上實(shí)現(xiàn)邏輯XOR運(yùn)算的表。這些表輸入兩個(gè)掩蔽四位組,逐位地計(jì)算兩個(gè)四位組的邏輯X0R,并返回單個(gè)掩蔽的四位組。具有根據(jù)本發(fā)明的相同尺寸表不意味著表是不可區(qū)分的。甚至通過(guò)使用輸入和輸出置換掩蔽表,那么情況也更是如此。本發(fā)明的發(fā)明人已識(shí)別區(qū)分攻擊人員可使用的表的第一種方式。因此,即使所有的包含的表具有相同的尺寸,它們也很容易被區(qū)分。事實(shí)上,XOR運(yùn)算表是分組定律的表。由此,對(duì)于任何四位組,存在唯一的四位組,使得通過(guò)“盒”(表)的輸出為O。(術(shù)語(yǔ)“盒”指的是表或在表中體現(xiàn)的邏輯或算術(shù)運(yùn)算,而不是制“白盒”環(huán)境)。也對(duì)于組[1,24-1]內(nèi)的任何值驗(yàn)證該特性(區(qū)分符),它們是XOR運(yùn)算表的其它可能的輸出。該后一特性確保XOR運(yùn)算表的各輸出確切地具有16個(gè)預(yù)先圖像。(加密中的預(yù)先圖像是映射到特定的輸出的一個(gè)或者多個(gè)值)。由此,如果在計(jì)算內(nèi)使用XOR運(yùn)算表,那么攻擊人員能夠通過(guò)使用已知的預(yù)先圖像攻擊檢測(cè)它們,并能夠獲得關(guān)于包含這些表的結(jié)構(gòu)的實(shí)現(xiàn)的有用的信息。本發(fā)明的發(fā)明人還識(shí)別了區(qū)分這兩種類型的表的第二種方式(特性)。代表置換的一半的各8X4表必然具有作為置換的第二部分的“孿生”表。如果A和B的聯(lián)結(jié)表C為C[i] =A[i] I I [i]并且A、B和C接收相同的輸入,并且,對(duì)于任何輸入,表C的輸出是A和B輸出的聯(lián)結(jié),并且,C是置換,那么特定表A的“孿生”是表B,這里,“ I I ”表示聯(lián)結(jié)。因此,給定特定的XOR運(yùn)算表A,它未必具有存在于任何特定的密碼算法中的孿生表B。但事實(shí)上能夠構(gòu)建這種表B。因此,在本處理中,對(duì)于各XOR運(yùn)算表A構(gòu)建這種附加的表B,并且,使用這些附加的表B。注意,為了節(jié)約軟件實(shí)施例中的計(jì)算機(jī)代碼,可對(duì)于兩個(gè)這種XOR運(yùn)算表構(gòu)建輸入和輸出置換,使得它們孿生。代表XOR運(yùn)算的8X4表沒(méi)有上面解釋的這種孿生,原因是它輸入兩個(gè)四位組并返回單個(gè)四位組。由此,先驗(yàn)的,在一組8 X 4表中,很容易從其它的表區(qū)分XOR運(yùn)算表,并且,這不希望地關(guān)于表的類型向攻擊人員給出實(shí)現(xiàn)的信息。以下是用于隱藏作為置換的一部分或作為XOR運(yùn)算表的表的性質(zhì)以挫敗這兩種區(qū)分表的方式的在計(jì)算上有效的方法。使由X表示的數(shù)據(jù)字節(jié)為表示為Xtl和X1的兩個(gè)四位組的聯(lián)結(jié),它在代數(shù)上表達(dá)為:X0I Ix1O這里,輸入X。和X1的XOR運(yùn)算表由圖2中的盒12代表。使輸入字節(jié)X (X0 X1)上的表示為P的置換的結(jié)果為表示為PpP1的兩個(gè)置換的聯(lián)結(jié),因此,P。(xQ| Ix1WPP1 (xq| Ix1)表達(dá)為:P0 (X0I X1) I P1 (X0I X1)這里,P0和P1被應(yīng)用到X上而不是僅應(yīng)用于X的一部分上。還通過(guò)圖3所示的尺寸8X8的盒14代表置換P。如上面解釋的那樣,置換可被分解成分別在圖4A、圖4B中表示的兩個(gè)子表匕16和PJ8。以下描述構(gòu)建用于XOR運(yùn)算的孿生表,以挫敗第二種區(qū)分表的方式。如上面解釋的那樣,算法中的XOR運(yùn)算表不具有被定義(見(jiàn)上)為當(dāng)與XOR運(yùn)算表相關(guān)時(shí)進(jìn)行置換的任何孿生表。但是,很容易地實(shí)現(xiàn)這種表的構(gòu)建。事實(shí)上,存在作為XOR表的孿生的許多表。例如,圖5所不的表不為Q的函數(shù)20為它們中的一個(gè)。在圖6中表不這種表22的一般形式,這里,F(xiàn)是表示為φ的函數(shù),該函數(shù)以字節(jié)(Xtl, X1)為輸入并且輸出tp ( Xii,X ) = ( Χ( 0Χι F ( X()> Xi))并且是雙射。以下描述使得XOR表不可區(qū)分,由此挫敗第一種區(qū)分的方式。這包括隱藏關(guān)于XOR運(yùn)算表的預(yù)先圖像的數(shù)量的特性。假定存在作為在上面描述并且在圖7中表示的完整的XOR運(yùn)算表24的置換。為了隱藏從XOR運(yùn)算表制作其上部,在第一步驟中,計(jì)算分別表示為M和R的兩個(gè)置換,使得對(duì)于所有的四位組X(i和X1,存在以下關(guān)系:M(R( X0, Xl)) = (X0 Xf, F(Xf)5 X1))這里,M是圖 8A 中的掩蔽 26,而 R是圖8B中的]T1和Q的聯(lián)結(jié)。字母M表示“掩蔽”,原因是該置換掩蔽表實(shí)際上是XOR運(yùn)算表。從例如預(yù)定的一組置換選擇圖8A所示的置換M26。一般在計(jì)算機(jī)源代碼被編譯成目標(biāo)(可執(zhí)行)代碼時(shí)執(zhí)行該選擇。從表示為M—1的M的逆反置換,用完成的XOR運(yùn)算表計(jì)算M—1的成分。現(xiàn)在存在圖8B所示的兩個(gè)置換Μ<27和Q28,它們組合成圖8C中的置換R29。有利地,單獨(dú)地取得的這些置換均不具有使得攻擊人員能夠從隨機(jī)的置換區(qū)分它們的任何特定的特性。在掩蔽的第二步驟中,掩蔽XOR運(yùn)算表的輸出。事實(shí)上,對(duì)于安全性來(lái)說(shuō),從不在計(jì)算中暴露正確的數(shù)據(jù)一般會(huì)更好。要這樣做,可應(yīng)用兩種方法:(a)第一方法包括計(jì)算4X4隨機(jī)置換,并用第二置換的上部構(gòu)成它。(b)第二方法包括計(jì)算8X8隨機(jī)置換,并用整個(gè)第二置換構(gòu)成它。在兩種情況下,均重新使用最后的計(jì)算的置換的逆反。事實(shí)上,目標(biāo)是具有可鏈接的一組置換。因此,根據(jù)本發(fā)明,能夠通過(guò)使用這些表的上述的構(gòu)成來(lái)代表AES的白盒實(shí)現(xiàn)或類似的密碼算法的任何表作為一組不可區(qū)分的表查找。得到的密碼處理被表達(dá)(以計(jì)算代碼或硬件)為各自具有尺寸8X4的表的一組不可區(qū)分表查找。這使得攻擊人員很難檢索什么與完整的輪次對(duì)應(yīng)以進(jìn)行其攻擊,原因是他難以確定什么時(shí)候各輪次開(kāi)始或結(jié)束。當(dāng)在該處理中在希望時(shí)添加增加復(fù)雜性的幾個(gè)“無(wú)用”運(yùn)算(各自包含附加的置換),并且這些附加和無(wú)用的表不能與有用的表相互區(qū)分時(shí),尤其如此。這些附加的置換通過(guò)使得密碼算法的一些輪次比其它輪次長(zhǎng)提高安全性。在另一實(shí)施例中,可在各輪次內(nèi)在每個(gè)字節(jié)的基礎(chǔ)上添加這種類型的附加的運(yùn)算。本方法可擴(kuò)展到使用諸如18X8或32X16的其它尺寸的表的密碼處理。但是,8X4表可能是優(yōu)選的。圖9表示根據(jù)本發(fā)明的解密的計(jì)算裝置(系統(tǒng))30的框圖相關(guān)部分。例如,它是計(jì)算機(jī)、移動(dòng)電話、智能電話、個(gè)人數(shù)字助理或類似的設(shè)備或者這些設(shè)備的一部分,并且其包含在體現(xiàn)密碼(例如,加密或解密)處理的以上的例子的一個(gè)實(shí)施例軟件(計(jì)算機(jī)代碼)中執(zhí)行的常規(guī)的硬件部件。該代碼可為例如C或C++計(jì)算機(jī)語(yǔ)言的形式,或者其功能可以由固件或硬件(電路)邏輯的形式被表達(dá);考慮以上的公開(kāi),編寫(xiě)這種代碼或者設(shè)計(jì)這種邏輯會(huì)是日常工作。計(jì)算機(jī)代碼在常規(guī)上被存儲(chǔ)于與處理器38相關(guān)的代碼存儲(chǔ)器(計(jì)算可讀存儲(chǔ)介質(zhì),例如,ROM) 40 (作為目標(biāo)代碼或源代碼)中以供處理器38執(zhí)行。待加密或解密或另外被處理的到來(lái)的消息(數(shù)據(jù))在端口 32上被接收,并被存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(存儲(chǔ)器,例如,RAM) 36中,在這里,它與處理器38耦合。處理器38在軟件分割模塊42中在常規(guī)上將消息分成適當(dāng)?shù)某叽绲膲K。處理器38中的其它的軟件(代碼)模塊包括實(shí)施以上闡述的塊密碼密碼算法功能的算法模塊46。用于存儲(chǔ)表的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(存儲(chǔ)器)52以及用于例如解密或加密的輸入數(shù)據(jù)的得到的輸出數(shù)據(jù)的第三存儲(chǔ)設(shè)備58也與處理器38耦合。存儲(chǔ)位置36、52、58可處于一個(gè)或更多個(gè)常規(guī)的物理存儲(chǔ)器裝置(諸如半導(dǎo)體RAM或其變體或硬盤(pán)驅(qū)動(dòng)器)中。在圖9的各種元件之間以常規(guī)的方式承載電信號(hào)。在圖9中沒(méi)有示出得到的加密或解密的消息的隨后的常規(guī)的使用。圖10表示一個(gè)實(shí)施例中的計(jì)算裝置的其它細(xì)節(jié)。圖10示出可用于實(shí)現(xiàn)本發(fā)明的實(shí)施例中的處理功能的典型的常規(guī)的計(jì)算系統(tǒng)60,并表示圖9系統(tǒng)的其它的細(xì)節(jié)。例如,這種類型的計(jì)算系統(tǒng)可被用于計(jì)算機(jī)服務(wù)器或用戶(客戶機(jī))計(jì)算機(jī)或其它計(jì)算設(shè)備中。本領(lǐng)域技術(shù)人員可以想到如何通過(guò)使用其它的計(jì)算機(jī)系統(tǒng)或結(jié)構(gòu)實(shí)現(xiàn)本發(fā)明的實(shí)施例。計(jì)算系統(tǒng)60可代表例如臺(tái)式、膝上型或筆記本計(jì)算機(jī)、手持計(jì)算設(shè)備(個(gè)人數(shù)字助理(PDA)、蜂窩式電話、掌上型計(jì)算機(jī)等)、大型機(jī)、服務(wù)器、客戶機(jī)或給定的應(yīng)用或環(huán)境所希望的或者適當(dāng)?shù)娜魏纹渌愋偷奶厥庥猛净蛲ㄓ糜?jì)算設(shè)備。計(jì)算系統(tǒng)60可包括一個(gè)或更多個(gè)處理器,諸如處理器64 (與圖9中的處理器38等同)??赏ㄟ^(guò)使用諸如例如微處理器、微控制器或其它控制邏輯的一般用途或特殊用途處理引擎實(shí)現(xiàn)處理器64。在本例子中,處理器64與總線62或其它通信介質(zhì)連接。計(jì)算系統(tǒng)60還可包括用于存儲(chǔ)由處理器64執(zhí)行的信息和指令的諸如隨機(jī)存取存儲(chǔ)器(RAM)或其它動(dòng)態(tài)存儲(chǔ)器的主存儲(chǔ)器68 (與存儲(chǔ)器36、52、58等同)。主存儲(chǔ)器68還可被用于在執(zhí)行由處理器64執(zhí)行的指令的過(guò)程中存儲(chǔ)暫時(shí)變量或其它中間信息。計(jì)算系統(tǒng)60可類似地包括與總線62耦合的用于存儲(chǔ)用于處理器64的靜態(tài)信息和指令的只讀存儲(chǔ)器(ROM)或其它靜態(tài)存儲(chǔ)設(shè)備。計(jì)算系統(tǒng)60還可包括可包含例如介質(zhì)驅(qū)動(dòng)器62和/或可去除存儲(chǔ)接口 80的信息存儲(chǔ)系統(tǒng)70。介質(zhì)驅(qū)動(dòng)器72可包含用于支持固定或可去除存儲(chǔ)介質(zhì)的驅(qū)動(dòng)器或其它機(jī)構(gòu),固定或可去除存儲(chǔ)介質(zhì)諸如快擦寫(xiě)存儲(chǔ)器、硬盤(pán)驅(qū)動(dòng)器、軟盤(pán)驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、緊致盤(pán)(CD)或數(shù)字萬(wàn)用盤(pán)(DVD)驅(qū)動(dòng)器(R或RW)或其它可去除或固定介質(zhì)驅(qū)動(dòng)器。存儲(chǔ)介質(zhì)78可包含例如硬盤(pán)、軟盤(pán)、磁帶、光盤(pán)、CD或DVD或可由介質(zhì)驅(qū)動(dòng)器72讀寫(xiě)的其它固定或可去除介質(zhì)。如這些例子所示,存儲(chǔ)介質(zhì)78可包含其中存儲(chǔ)有特定的計(jì)算機(jī)軟件或數(shù)據(jù)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在替代性實(shí)施例中,信息存儲(chǔ)系統(tǒng)70可包含用于允許計(jì)算機(jī)程序或其它指令或數(shù)據(jù)被加載到計(jì)算系統(tǒng)60中的其它類似的部件。這種部件可包含例如可去除存儲(chǔ)單元82和接口 80,諸如程序盒和盒接口、可去除存儲(chǔ)器(例如,快擦寫(xiě)存儲(chǔ)器或其它可去除存儲(chǔ)器模塊)和存儲(chǔ)器插槽、以及允許將軟件和數(shù)據(jù)從可去除存儲(chǔ)單元78傳送到計(jì)算系統(tǒng)60的其它可去除存儲(chǔ)單元82和接口 80。計(jì)算系統(tǒng)60還可包含通信接口 84 (與圖9中的端口 32等同)。通信接口 84可被用于允許在計(jì)算系統(tǒng)60和外部設(shè)備之間傳送軟件和數(shù)據(jù)。通信接口 84的例子可包含調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(諸如以太網(wǎng)或其它網(wǎng)絡(luò)接口卡(NIC))、通信端口(諸如例如USB端口)、PCMCIA插槽和卡等。通過(guò)通信接口 84傳送的軟件和數(shù)據(jù)采用可以為電子、電磁、光學(xué)的信號(hào)或能夠被通信接口 84接收的其它信號(hào)的形式。這些信號(hào)通過(guò)信道88被提供給通信接口84。該信道88可承載信號(hào),并且可通過(guò)使用無(wú)線介質(zhì)、導(dǎo)線或電纜、光纖或其它通信介質(zhì)被實(shí)現(xiàn)。信道的某些例子包含電話線、蜂窩式電話鏈路、RF鏈路、網(wǎng)絡(luò)接口、局域和廣域網(wǎng)和其它通信信道。在本公開(kāi)中,可一般使用術(shù)語(yǔ)“計(jì)算機(jī)程序產(chǎn)品”和“計(jì)算機(jī)可讀介質(zhì)”等以表示諸如例如存儲(chǔ)器68、存儲(chǔ)設(shè)備78或存儲(chǔ)單元82的介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的這些和其它形式可存儲(chǔ)供處理器64使用以導(dǎo)致處理器執(zhí)行指定動(dòng)作的一個(gè)或更多個(gè)指令。這些指令,統(tǒng)稱為“計(jì)算機(jī)程序代碼”(可以按計(jì)算機(jī)程序的形式被分組或者以其它的方式分組),當(dāng)被執(zhí)行時(shí)使得計(jì)算系統(tǒng)60能夠執(zhí)行本發(fā)明的實(shí)施例的功能。注意,代碼可直接導(dǎo)致處理器執(zhí)行指定動(dòng)作、被編譯以執(zhí)行指定動(dòng)作和/或與其它軟件、硬件和/或固件元件(例如,用于執(zhí)行標(biāo)準(zhǔn)功能的庫(kù))組合以執(zhí)行指定動(dòng)作。在通過(guò)使用軟件實(shí)現(xiàn)元件的實(shí)施例中,可通過(guò)使用例如可去除存儲(chǔ)驅(qū)動(dòng)器74、驅(qū)動(dòng)器72或通信接口 84將軟件存儲(chǔ)于計(jì)算機(jī)可讀介質(zhì)中或加載到計(jì)算系統(tǒng)60中??刂七壿?在本例子中,為軟件指令或計(jì)算機(jī)程序代碼),當(dāng)被處理器64執(zhí)行時(shí),導(dǎo)致處理器64執(zhí)行這里描述的本發(fā)明的實(shí)施例的功能。本公開(kāi)是解釋性的,不是限制性的??紤]本公開(kāi),其它的修改對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)是十分明顯的,并且要落入所附的權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種方法,包括以下動(dòng)作: 接收輸入數(shù)據(jù); 在第一計(jì)算機(jī)可讀存儲(chǔ)器中存儲(chǔ)接收的數(shù)據(jù); 在處理器中向存儲(chǔ)的數(shù)據(jù)應(yīng)用塊密碼處理,該處理器完成以下操作: 向數(shù)據(jù)應(yīng)用各自包含相同尺寸的查找表的多個(gè)置換運(yùn)算; 應(yīng)用各自包含尺寸與置換查找表相同的查找表并進(jìn)一步具有掩蔽的輸出的多個(gè)異或運(yùn)算,和 在第二計(jì)算機(jī)可讀存儲(chǔ)器中存儲(chǔ)從塊密碼處理得到的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1的方法,其中,各查找表接收一個(gè)數(shù)據(jù)字節(jié)作為輸入并且輸出數(shù)據(jù)字節(jié)的一半。
3.根據(jù)權(quán)利要求1的方法,其中,各查找表的尺寸為8位輸入和4位輸出。
4.根據(jù)權(quán)利要求3的方法,其中,各查找表的尺寸為16位輸入和8位輸出。
5.根據(jù)權(quán)利要求1的方法,其中,各查找表的尺寸為32位輸入和16位輸出。
6.根據(jù)權(quán)利要求1的方法,其中,塊密碼處理符合高級(jí)加密標(biāo)準(zhǔn)。
7.根據(jù)權(quán)利要求1的方法,其中,處理掩蓋包含密碼處理的密鑰的數(shù)據(jù)。
8.根據(jù)權(quán)利要求1的方法,其中,密碼處理是加密、解密或計(jì)算數(shù)字簽名中的一種。
9.根據(jù)權(quán)利要求1的方法,其中,向異或運(yùn)算查找表的輸入也被掩蔽。
10.根據(jù)權(quán)利要求1的方法,其中,置換和異或運(yùn)算各自在逐位的基礎(chǔ)上被執(zhí)行。
11.根據(jù)權(quán)利要求1的方法,還包括以下動(dòng)作: 對(duì)于異或運(yùn)算查找表中的至少一個(gè)提供相應(yīng)的孿生查找表; 提供多個(gè)輪次的密碼處理;和 在輪次中的至少一個(gè)中使用孿生查找表。
12.根據(jù)權(quán)利要求11的方法,其中,包含孿生查找表的特定的輪次包含比其它輪次多的運(yùn)算。
13.根據(jù)權(quán)利要求11的方法,其中,對(duì)于數(shù)據(jù)的各字節(jié),輪次的長(zhǎng)度不同。
14.根據(jù)權(quán)利要求1的方法,其中,對(duì)于各異或查找表,數(shù)據(jù)通過(guò)置換被掩蔽。
15.根據(jù)權(quán)利要求14的方法,其中,數(shù)據(jù)通過(guò)作為第一置換和異或運(yùn)算的計(jì)算的第二置換被掩蔽。
16.根據(jù)權(quán)利要求14的方法,其中,置換包含兩個(gè)4要素X4要素置換。
17.根據(jù)權(quán)利要求14的方法,其中,置換包含8要素X8要素置換。
18.根據(jù)權(quán)利要求1的方法,其中,用于密碼處理的密鑰在處理的運(yùn)行時(shí)是已知的。
19.根據(jù)權(quán)利要求1的方法,其中,密碼處理的密鑰在處理的代碼編譯時(shí)間是已知的。
20.一種非暫時(shí)性計(jì)算機(jī)可讀介質(zhì),其存儲(chǔ)用于執(zhí)行權(quán)利要求1的方法的計(jì)算機(jī)代碼。
21.一種計(jì)算裝置,被編程為執(zhí)行權(quán)利要求1的方法。
22.—種裝置,包括: 適于接收輸入數(shù)據(jù)的端口; 與端口耦合并適于存儲(chǔ)接收的數(shù)據(jù)的第一計(jì)算機(jī)可讀存儲(chǔ)器; 與第一計(jì)算機(jī)可讀存儲(chǔ)器耦合并向存儲(chǔ)的數(shù)據(jù)應(yīng)用塊密碼處理的處理器,該處理器完成以下操作:向數(shù)據(jù)應(yīng)用各自包含相同尺寸的查找表的多個(gè)置換運(yùn)算; 應(yīng)用各自包含尺寸與置換查找表相同的查找表并進(jìn)一步具有掩蔽的輸出的多個(gè)異或運(yùn)算,和 在與處理器耦合的第二計(jì)算機(jī)可讀存儲(chǔ)器中存儲(chǔ)從塊密碼處理得到的數(shù)據(jù)。
23.根據(jù)權(quán)利要求22的裝置,其中,各查找表接收一個(gè)數(shù)據(jù)字節(jié)作為輸入并且輸出數(shù)據(jù)字節(jié)的一半。
24.根據(jù)權(quán)利要求22 的裝置,其中,各查找表的尺寸為8位輸入和4位輸出。
25.根據(jù)權(quán)利要求22的裝置,其中,各查找表的尺寸為16位輸入和8位輸出。
26.根據(jù)權(quán)利要求22的裝置,其中,各查找表的尺寸為32位輸入和16位輸出。
27.根據(jù)權(quán)利要求22的裝置,其中,塊密碼處理符合高級(jí)加密標(biāo)準(zhǔn)。
28.根據(jù)權(quán)利要求22的裝置,其中,該處理掩蓋包含密碼處理的密鑰的數(shù)據(jù)。
29.根據(jù)權(quán)利要求22的裝置,其中,密碼處理是加密、解密或計(jì)算數(shù)字簽名中的一種。
30.根據(jù)權(quán)利要求22的裝置,其中,向異或運(yùn)算查找表的輸入也被掩蔽。
31.根據(jù)權(quán)利要求22的裝置,其中,置換和異或運(yùn)算各自在逐位的基礎(chǔ)上被執(zhí)行。
32.根據(jù)權(quán)利要求22的裝置,該處理器還完成以下操作: 對(duì)于異或運(yùn)算查找表中的至少一個(gè)提供相應(yīng)的孿生查找表; 提供多個(gè)輪次的密碼處理;和 在輪次中的至少一個(gè)中使用孿生查找表。
33.根據(jù)權(quán)利要求32的裝置,其中,包含孿生查找表的特定的輪次包含比其它輪次多的運(yùn)算。
34.根據(jù)權(quán)利要求32的裝置,其中,對(duì)于數(shù)據(jù)的各字節(jié),輪次的長(zhǎng)度不同。
35.根據(jù)權(quán)利要求2 2的裝置,其中,對(duì)于各異或查找表,數(shù)據(jù)通過(guò)置換被掩蔽。
36.根據(jù)權(quán)利要求35的裝置,其中,數(shù)據(jù)通過(guò)作為第一置換和異或運(yùn)算的計(jì)算的第二置換被掩蔽。
37.根據(jù)權(quán)利要求35的裝置,其中,置換包含兩個(gè)4要素X4要素置換。
38.根據(jù)權(quán)利要求35的裝置,其中,置換包含8要素X8要素置換。
39.根據(jù)權(quán)利要求22的裝置,其中,用于密碼處理的密鑰在處理的運(yùn)行時(shí)是已知的。
40.根據(jù)權(quán)利要求22的裝置,其中,密碼處理的密鑰在處理的代碼編譯時(shí)是已知的。
全文摘要
提供通過(guò)使用諸如在例如具有在編譯時(shí)已知或未知的密碼密鑰的“白盒”模型中實(shí)現(xiàn)的AES的塊型密碼增加諸如解密、加密或數(shù)字簽名的密碼算法的安全性的方法和裝置。該方法可安全地用于受信任的環(huán)境中,特別是用于使密碼密鑰安全。這里,通過(guò)使得所有這些表具有相同尺寸并且不可區(qū)分,并進(jìn)一步通過(guò)掩蔽這些表的輸出值,針對(duì)攻擊保護(hù)這種算法的查找表特性,一般地,這里,表實(shí)施置換功能或邏輯異或運(yùn)算。
文檔編號(hào)H04L9/06GK103119888SQ201180045342
公開(kāi)日2013年5月22日 申請(qǐng)日期2011年8月3日 優(yōu)先權(quán)日2010年8月20日
發(fā)明者A·J·法魯戈雅, T·艾卡特, M·賽特 申請(qǐng)人:蘋(píng)果公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1