欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于生成消息驗(yàn)證碼的裝置和方法與流程

文檔序號(hào):11964698閱讀:234來(lái)源:國(guó)知局
用于生成消息驗(yàn)證碼的裝置和方法與流程
本發(fā)明涉及一種消息驗(yàn)證碼的生成以及,具體的說(shuō),用于基于第一消息和原始密鑰生成消息驗(yàn)證碼的裝置和方法。

背景技術(shù):
十幾年以來(lái),人們一直使用側(cè)通道攻擊,例如簡(jiǎn)單功耗分析(英語(yǔ):SimplePowerAnalysis=SPA)和差分功耗分析(英語(yǔ):DifferentialPowerAnalysis=DPA),對(duì)于對(duì)稱塊加密(Blockchiffren)的實(shí)施進(jìn)行攻擊,該對(duì)稱塊加密例如由DES-加密算法(英語(yǔ):DES=DataEncryptionStandard數(shù)據(jù)加密標(biāo)準(zhǔn))或者由AES-加密算法(英語(yǔ):AES=AdvancedEncryptionStandard高級(jí)加密標(biāo)準(zhǔn))所使用。同樣地,還使用如SPA和DPA一類的側(cè)通道攻擊對(duì)像例如RSA加密算法(RSA=RivestShamirAdleman)和橢圓曲線密碼系統(tǒng)一類的非對(duì)稱的加密算法進(jìn)行攻擊?!肮簟痹谶@里的意思是,攻擊者提取出運(yùn)行加密算法的機(jī)密的密鑰。不用機(jī)密的密鑰運(yùn)行的加密算法,例如哈希算法,就較少遭受側(cè)通道攻擊,因?yàn)檫@里在大部分情況下沒(méi)有更多的秘密在其中,例如密鑰,而只要以消息的形式(英語(yǔ):message)M壓縮預(yù)先給定的信息。然而,存在一種哈希算法的應(yīng)用,其中,使用了需要防止泄漏的機(jī)密的密鑰,具體來(lái)說(shuō)就是計(jì)算所謂的消息驗(yàn)證碼(英語(yǔ):messageauthenticationcode)?!跋Ⅱ?yàn)證碼”這個(gè)概念在下面用“MAC”縮略表示。MAC,粗略來(lái)說(shuō),就是由密鑰k和消息M組成的哈希值。此外,消息驗(yàn) 證碼不僅僅是用來(lái)確保消息的完整性,而是還要額外地確保只能由擁有機(jī)密的密鑰k的一方使用該消息驗(yàn)證碼。圖7描繪了根據(jù)現(xiàn)有技術(shù)的MAC生成法。以消息M形式的信息連同機(jī)密的密鑰k一起被輸入執(zhí)行MAC算法的裝置700。該裝置700計(jì)算與消息M和機(jī)密的密鑰k相關(guān)的消息驗(yàn)證碼Mack(M)。因?yàn)樵谠瓌t上,每一種沒(méi)有特別針對(duì)加強(qiáng)的算法的應(yīng)用(該算法將像例如機(jī)密的密鑰一樣的不變的秘密內(nèi)容與變量和已知的輸入“混合”)都能夠通過(guò)DPA進(jìn)行攻擊,所以這對(duì)于MAC計(jì)算也同樣適用。側(cè)通道攻擊經(jīng)常為了攻擊而利用關(guān)于處理器的耗電量的信息。在許多加密算法中,處理器在處理密鑰或中間結(jié)果的值為1的一個(gè)位時(shí)的耗電量,不同于處理器在處理密鑰或中間結(jié)果的值為0的一個(gè)位時(shí)的耗電量。所以,通常只有當(dāng)密鑰或者與密鑰相關(guān)的中間結(jié)果的一個(gè)比特位的值為1時(shí),才用加密算法進(jìn)行計(jì)算,而在比特位值為0時(shí),不進(jìn)行計(jì)算。在這個(gè)實(shí)例中,相對(duì)于比特位值為0時(shí),當(dāng)比特位值為1時(shí)導(dǎo)致的耗電量更高。在其他情況下,例如只有當(dāng)密鑰的特定的一個(gè)比特位或者與密鑰相關(guān)的中間結(jié)果的特定的一個(gè)比特位的值為0時(shí),才執(zhí)行特定的指示。這也會(huì)導(dǎo)致處理器的耗電量不同,依據(jù)的是一比特位比特比特位的值是1還是0。所以,在原則上有可能的是,在知道關(guān)于處理器的耗電量的情況下,推導(dǎo)出關(guān)于機(jī)密的密鑰的結(jié)論,或者獲得關(guān)于與機(jī)密的密鑰相關(guān)的中間結(jié)果的結(jié)論,然后這個(gè)中間結(jié)果就又允許關(guān)于機(jī)密的密鑰的結(jié)論。于是以這種方法可能通過(guò)側(cè)通道攻擊確定由芯片卡使用的機(jī)密的密鑰,只要該芯片卡不針對(duì)側(cè)通道攻擊進(jìn)行保護(hù)。然而,側(cè)通道攻擊不局限于分析耗電量。所以,在側(cè)通道攻擊的框架內(nèi)作為可選地例如也可以分析其他的特征變量,如電磁輻射量同樣可能依賴于密鑰或與密鑰相關(guān)的中間結(jié)果的比特位比特比特位值而有所不同。側(cè)通道攻擊的實(shí)例有簡(jiǎn)單功耗分析(英語(yǔ):SimplePowerAnalysis),在下文中稱為“SPA”,還有差分功耗分析(英語(yǔ):DifferentialPowerAnalysis),在下文中稱為“DPA”。也可以采用錯(cuò)誤攻擊法(Fehlerattacken)來(lái)進(jìn)行攻擊。簡(jiǎn)單來(lái)說(shuō),SPA是這樣工作的,即,記錄處理器的耗電量。然后觀察記錄下的功耗分布圖,并且對(duì)異常情況進(jìn)行調(diào)查。于是,在可視地觀察功耗分布圖時(shí),即例如時(shí)間變化趨勢(shì)圖中的耗電量,經(jīng)常在時(shí)間變化過(guò)程中出現(xiàn)明顯差異。耗電量較高的階段和耗電量較低的階段通常能夠明顯地區(qū)分開(kāi)。如果分析例如處理器執(zhí)行DES加密算法的功耗分布圖,那么就能夠例如經(jīng)常明顯地識(shí)別出在DES加密時(shí)的16個(gè)重復(fù)的輪回。如果然后對(duì)功耗分布圖的這些被識(shí)別的輪回進(jìn)行更詳盡的觀察,就經(jīng)常能夠推導(dǎo)出結(jié)論,例如以多少的比特位比特比特位值在何時(shí)進(jìn)行了何種操作。而差分功耗分析(DPA)不是像在使用SPA時(shí)那樣可視地觀察例如處理器的功耗分布圖,而是使用統(tǒng)計(jì)工具確定在加密算法中使用的機(jī)密的密鑰。此外,在執(zhí)行加密算法時(shí)首先對(duì)于多個(gè)利用機(jī)密的密鑰而被加密的消息相應(yīng)記錄下功耗分布圖,即例如處理器在時(shí)間趨勢(shì)圖中的耗電量,并且緊接著統(tǒng)計(jì)地進(jìn)行分析。于是例如能利用以下經(jīng)常出現(xiàn)的情況,即,由加密算法計(jì)算得出的中間結(jié)果隨同被加密的消息經(jīng)常僅僅與加密的密鑰的一部分比特位相關(guān)。如果例如一個(gè)中間結(jié)果(例如可以是0或1)只與一個(gè)56位密鑰的6個(gè)比特位相關(guān),那么攻擊者在知道輸入值的情況下(即例如在密鑰的六個(gè)相關(guān)的比特位的所有26=64種不同的變化情況下的需要加密的消息)計(jì)算中間結(jié)果的值,并且然后例如為這64種不同變化情況的每一種情況從所有功耗分布圖中計(jì)算出平均功耗分布圖,這些功耗分布圖的中間結(jié)果采用一個(gè)特定的值,例如對(duì)于需要計(jì)算的比特位的值1。很有可能的是,對(duì)于這六個(gè)比特位值的64種不同可能性當(dāng)中,那個(gè)正確的變化情況的平均的功耗分布圖,相比其他的平均功耗分布圖具有明顯的特點(diǎn),因?yàn)橥ǔ_@是唯一的,其中,所有為了計(jì)算平均功耗分布圖使用的功耗分布圖的消息在加密時(shí)實(shí)際上全部都導(dǎo)出同一個(gè)中間結(jié)果。為了防止DPA攻擊,人們建議了各種技術(shù)。一種技術(shù)例如是在進(jìn)行使用密鑰的運(yùn)算時(shí)添加噪聲。另一種技術(shù)是使用掩碼技術(shù),例如布爾掩碼和算術(shù)掩碼基本上,掩碼技術(shù)指的是在使用秘密信息的情況下(例如使用機(jī)密的密鑰)采用一種運(yùn)算之前,首先掩碼使用密鑰的消息,也就是說(shuō)改動(dòng)消息。例如可以如下地實(shí)現(xiàn)掩碼,即,以一種攻擊者不知道的方式更換消息的若干比特位。另一種可能性是,這樣改動(dòng)對(duì)其使用密鑰的消息,即,在使用秘密的位串情況下改動(dòng)該消息,例如其中進(jìn)行XOR運(yùn)算,該運(yùn)算將消息和秘密的位串彼此聯(lián)系起來(lái)。作為可選地或者作為補(bǔ)充,也可以進(jìn)行AND運(yùn)算和/或OR運(yùn)算,從而對(duì)消息進(jìn)行掩碼。然后,其中要使用密鑰的關(guān)鍵運(yùn)算用到被掩碼的消息上,從而得出運(yùn)算結(jié)果。那么該結(jié)果以被掩碼的形式存在。相應(yīng)地,在進(jìn)行運(yùn)算以后再逆向去除掩碼,從而得到無(wú)掩碼的結(jié)果。需要保護(hù)的算法(其中,不僅要保護(hù)布爾運(yùn)算還要保護(hù)算術(shù)運(yùn)算),在采用掩碼技術(shù)時(shí)經(jīng)常需要常常將布爾掩碼換算成算術(shù)掩碼,并且反之亦然。例如對(duì)于哈希運(yùn)算是如此,其中,與機(jī)密的位串進(jìn)行哈希運(yùn)算,并且必須針對(duì)側(cè)通道攻擊對(duì)其進(jìn)行保護(hù)。為此,這種算法例如通過(guò)掩碼法進(jìn)行保護(hù),這些掩碼法或者用在軟件中時(shí),需要耗費(fèi)大量的計(jì)算時(shí)間,或者在硬件中實(shí)現(xiàn)時(shí),需要占用相應(yīng)大的面積。在計(jì)算MAC時(shí),為那些在它們那方面在使用需要機(jī)密地保持的密鑰的情況下計(jì)算出的值計(jì)算哈希值。此外,值得做的是,發(fā)展能夠有效實(shí)現(xiàn)的方案來(lái)防止那些分析消息驗(yàn)證碼的生成的側(cè)通道攻擊。

技術(shù)實(shí)現(xiàn)要素:
因此,本發(fā)明的目的在于提出一種有效的方案,針對(duì)側(cè)通道攻擊對(duì)MAC的生成進(jìn)行保護(hù)。在傳統(tǒng)的針對(duì)像例如DPA這樣的側(cè)通道攻擊的保護(hù)中,應(yīng)用了傳統(tǒng)的MAC計(jì)算,正如例如這能夠在芯片卡上實(shí)現(xiàn)的那樣,人們可能采用例如那些也用來(lái)保護(hù)例如DES、AES、RSA等等的常見(jiàn)的技術(shù)。其中例如有掩碼法。因?yàn)镸AC計(jì)算就是多次執(zhí)行哈希壓縮函數(shù),所以防DPA地設(shè)計(jì)哈希計(jì)算就已經(jīng)足夠。然而,針對(duì)側(cè)通道攻擊對(duì)哈希計(jì)算進(jìn)行保護(hù)的耗費(fèi)極大。如果在硬件模塊中應(yīng)用哈希計(jì)算,那么設(shè)計(jì)的領(lǐng)域就會(huì)大幅度增加。如果在軟件中應(yīng)用哈希計(jì)算,那么掩碼法的計(jì)算時(shí)間要增加好幾倍。本發(fā)明的實(shí)施方式能避免這些缺點(diǎn),走的是另一條途徑。根據(jù)本發(fā)明的一種實(shí)施方式,提供一種用于基于第一消息和原始密鑰生成消息驗(yàn)證碼的裝置。該裝置包括用于基于原始密鑰和第一消息產(chǎn)生生成的密鑰的密鑰生成器。此外,該裝置還包括用于基于被生成的密鑰和第一消息生成消息驗(yàn)證碼的消息驗(yàn)證碼生成器。以上實(shí)施方式避免了將MAC計(jì)算簡(jiǎn)單地與常規(guī)的針對(duì)側(cè)通道攻擊的保護(hù)方案進(jìn)行組合,這樣會(huì)有很多缺點(diǎn)。根據(jù)以上的實(shí)施例,保護(hù)問(wèn)題轉(zhuǎn)移到另一種像例如防DPA的AES運(yùn)算,或者另一種運(yùn)算一樣的算法上,該另一種運(yùn)算能滿足一定的條件,并且能夠容易設(shè)計(jì)為防DPA。所以,對(duì)于防DPA的應(yīng)用場(chǎng)合,許多哈希算法不如對(duì)稱塊加密更適合;或者反過(guò)來(lái)說(shuō),對(duì)于防DPA的應(yīng)用場(chǎng)合,對(duì)稱塊加密比哈希算法更適合。將針對(duì)側(cè)通道攻擊進(jìn)行保護(hù)的問(wèn)題例如轉(zhuǎn)移到防DPA的AES運(yùn)算上,正如在優(yōu)選的實(shí)施方式中設(shè)計(jì)的那樣,除了其他原因,因而特別有利的是,因?yàn)榉繢PA的AES運(yùn)算的實(shí)施一般總歸在芯片卡上存在。這種解決方案的其中一個(gè)優(yōu)點(diǎn)是,不必將哈希硬件或哈希軟件防DPA地實(shí)施, 而是取而代之針對(duì)側(cè)通道攻擊能夠動(dòng)用標(biāo)準(zhǔn)實(shí)施方案,和/或動(dòng)用在速度方面最優(yōu)化的實(shí)施方案,并且這種實(shí)施方案例如在芯片卡上經(jīng)??倸w存在。此外,可以利用以下情況,即,相比塊加密,哈希計(jì)算耗費(fèi)的時(shí)間或者面積要多出幾倍,或者說(shuō)反過(guò)來(lái),塊加密能設(shè)計(jì)得比哈希計(jì)算在時(shí)間或面積上更有效率。根據(jù)一種實(shí)施方式,密鑰生成器能夠設(shè)置用于在使用密碼編寫(xiě)的加密算法的情況下產(chǎn)生生成的密鑰。在另一種實(shí)施方式中,密鑰生成器能夠設(shè)置用于通過(guò)對(duì)第一消息進(jìn)行哈希計(jì)算產(chǎn)生被生成的密鑰。在另一種實(shí)施方式中,密鑰生成器能夠設(shè)置用于產(chǎn)生被生成的密鑰,其中,對(duì)第一消息的一部分進(jìn)行哈希計(jì)算。根據(jù)另一種實(shí)施方式,密鑰生成器能夠設(shè)置用于這樣產(chǎn)生被生成的密鑰,即,使被生成的密鑰的熵(Entropie)不小于原始密鑰的熵。在另一種實(shí)施方式中,密鑰生成器能夠設(shè)置用于這樣產(chǎn)生被生成的密鑰,即,當(dāng)正好改變了第一消息或者原始密鑰的一個(gè)比特位時(shí),在重新產(chǎn)生被生成的密鑰時(shí),對(duì)具有第一預(yù)定義的比特位長(zhǎng)度的所有可能的密鑰和具有第二預(yù)定義的比特位長(zhǎng)度的所有第一消息而言,平均有45%到55%之間的被生成的密鑰的比特位發(fā)生變動(dòng)。根據(jù)另一種實(shí)施方式,密鑰生成器能夠設(shè)置用于使用AES加密來(lái)產(chǎn)生被生成的密鑰。在另一種實(shí)施方式中,密鑰生成器能夠設(shè)置用于運(yùn)用AESk(H(M))公式,其中,M表示第一消息,其中,H(M)表示第一消息M的哈希計(jì)算,其中,k表示原始密鑰,并且其中,AESk表示在使用原始密鑰k的情況下進(jìn)行AES加密。根據(jù)另一種實(shí)施方式,密鑰生成器能夠具有保護(hù)裝置,該保護(hù)裝置設(shè)置用于針對(duì)側(cè)通道攻擊保護(hù)被生成的密鑰的產(chǎn)生。優(yōu)選地,保護(hù)裝置被設(shè)計(jì)用于針對(duì)第一消息進(jìn)行掩碼運(yùn)算,從而得到被掩碼的消息,其中,密鑰生成器能夠設(shè)置用于在原始密鑰和被掩碼的第一消息的基礎(chǔ)上產(chǎn)生被生成的密鑰。在另一種實(shí)施方式中,掩碼運(yùn)算在此可以包括第一消息的更換或者第一消息與位串的XOR、AND或OR關(guān)聯(lián)。在另一種實(shí)施方式中,消息驗(yàn)證碼生成器能夠設(shè)置用于進(jìn)行M的哈希計(jì)算,從而計(jì)算出消息驗(yàn)證碼。在另一種實(shí)施方式中,消息驗(yàn)證碼生成器能夠設(shè)置用于,將被生成的密鑰在第一XOR運(yùn)算中與第一常數(shù)進(jìn)行關(guān)聯(lián),并且將被生成的密鑰在第二XOR運(yùn)算中與第二常數(shù)進(jìn)行關(guān)聯(lián)。根據(jù)另一種實(shí)施方式,消息驗(yàn)證碼生成器能夠設(shè)置用于運(yùn)用公式其中,M表示第一消息,其中,k′表示被生成的密鑰,其中,表示XOR運(yùn)算,其中,||表示級(jí)聯(lián)運(yùn)算,并且其中,H表示哈希運(yùn)算。此外,提供了一種用于檢查消息的準(zhǔn)確性和可信度的裝置,該裝置包括用于產(chǎn)生獲得的消息驗(yàn)證碼的裝置和比較單元。該比較單元設(shè)置用于檢查獲得的消息驗(yàn)證碼和接收到的消息驗(yàn)證碼的一致性,從而檢查消息的準(zhǔn)確性和可信度。根據(jù)一種實(shí)施方式,提供一種用于基于第一消息M和原始密鑰k的產(chǎn)生消息驗(yàn)證碼的方法。以原始密鑰k和消息M為基礎(chǔ),產(chǎn)生被生成的 密鑰k′。然后,在被生成的密鑰k′和消息M的基礎(chǔ)上產(chǎn)生一個(gè)消息驗(yàn)證碼。在另一種實(shí)施方式中,提供一種利用密鑰k基于消息M生成消息驗(yàn)證碼MAC的流程或者說(shuō)方法。該流程或者說(shuō)方法具有以下特征:(i)通過(guò)一種相對(duì)消息來(lái)說(shuō)防沖突的流程或者說(shuō)方法從M和k中生成會(huì)議密鑰k′,即,如下地設(shè)計(jì)流程或者說(shuō)方法,即,通過(guò)密碼很難找到兩個(gè)消息M1和M2,能使得k′(k,M1)=k′(k,M2)。(ii)在MAC算法中使用會(huì)議密鑰k′,從而利用被生成的密鑰k′由消息M產(chǎn)生MAC。優(yōu)選地,產(chǎn)生被生成的密鑰k′涉及到對(duì)消息M的哈希計(jì)算。此外還優(yōu)選的是,由輸入M、或者基于M計(jì)算出的哈希值、并且由原始密鑰k進(jìn)行的密碼編寫(xiě)的加密算法產(chǎn)生一個(gè)被生成的密鑰k′作為密碼。附圖說(shuō)明參照附圖闡述優(yōu)選的實(shí)施方式,其中:圖1示出一種根據(jù)一種實(shí)施方式基于第一消息和原始密鑰產(chǎn)生消息驗(yàn)證碼的裝置,圖2示出一種根據(jù)另一種實(shí)施方式基于第一消息和原始密鑰產(chǎn)生消息驗(yàn)證碼的裝置,圖3示出一種根據(jù)一種實(shí)施方式基于第一消息和原始密鑰產(chǎn)生被生成的密鑰的裝置,圖4示出一種根據(jù)另一種實(shí)施方式,基于第一消息和原始密鑰,在使用HMAC的情況下產(chǎn)生消息驗(yàn)證碼的裝置,圖5示出一種根據(jù)一種實(shí)施方式檢查消息的正確性和可信度的裝置,圖6示出一個(gè)流程圖,即描繪了根據(jù)另一種實(shí)施方式,基于第一消息和原始密鑰用于產(chǎn)生消息驗(yàn)證碼的方法,圖7示出根據(jù)現(xiàn)有技術(shù)的消息驗(yàn)證碼的產(chǎn)生,并且圖8示出根據(jù)現(xiàn)有技術(shù)的HMAC的產(chǎn)生。具體實(shí)施例方式圖1示出一種用于基于第一消息M和原始密鑰k產(chǎn)生消息驗(yàn)證碼的裝置。該裝置包括用于基于原始密鑰k和第一消息M產(chǎn)生被生成的密鑰k′的密鑰生成器110。此外,該裝置還包括用于產(chǎn)生消息驗(yàn)證碼MAC′k的消息驗(yàn)證碼生成器120。裝置獲得消息M和原始密鑰k作為輸入。密鑰生成器設(shè)置用于在使用原始密鑰k和使用第一消息M的情況下產(chǎn)生被生成的密鑰k′。然后這個(gè)被生成的密鑰k′就被用于產(chǎn)生消息驗(yàn)證碼。優(yōu)選地,密鑰生成器設(shè)置用于,在為不同的消息M1和M2編碼時(shí),使得被生成的密鑰k′在絕大多數(shù)情況下與另一個(gè)被生成的密鑰相區(qū)別。因?yàn)橄馜PA這樣的側(cè)通道攻擊要求在密鑰k不變的情況下為多個(gè)消息獲得多個(gè)功耗分布圖,所以在本實(shí)施方式中成功進(jìn)行側(cè)通道攻擊的前提條件不復(fù)存在,因?yàn)橛糜诋a(chǎn)生消息驗(yàn)證碼的密鑰k′因此在不同的消息M1和M2的情況下幾乎總是不同的。于是,攻擊者不再能夠通過(guò)使用DPA獲得用于產(chǎn)生消息驗(yàn)證碼的所使用的密鑰k′,或者至少要難得多。通過(guò)在圖1中描述的方案,僅僅基于被生成的密鑰k′和消息M實(shí)現(xiàn)的消息驗(yàn)證碼的真 正的生成針對(duì)側(cè)通道攻擊進(jìn)行了保護(hù)。此外,對(duì)側(cè)通道攻擊的抵抗力弱的問(wèn)題被推到了另一個(gè)流程中,也就是在用于產(chǎn)生被生成的密鑰k′的流程中,該密鑰是基于原始密鑰k和消息M由密鑰生成器110產(chǎn)生的。因?yàn)檫@里的密鑰k也與(潛在已知的)消息M有接觸,所以在這里也有DPA的問(wèn)題。所以,被生成的密鑰k′的產(chǎn)生對(duì)于例如以確定原始密鑰k為目標(biāo)的側(cè)通道攻擊原則上是抵抗力弱的。所以,在本實(shí)施方式中,盡管不再可能針對(duì)側(cè)通道攻擊基于被生成的密鑰k′和消息M保護(hù)實(shí)際的MAC的產(chǎn)生;然而,應(yīng)該針對(duì)側(cè)通道攻擊保護(hù)了從原始密鑰k和消息M中產(chǎn)生被生成的密鑰k′。所以要確保的是,針對(duì)側(cè)通道攻擊保護(hù)推導(dǎo)出的k′=k′(k,M)。然而,正如在本實(shí)施方式中設(shè)計(jì)的那樣,轉(zhuǎn)移安全問(wèn)題的方案在此被證明特別有利:于是,相比為了在產(chǎn)生MAC的過(guò)程中保護(hù)哈希運(yùn)算,能夠針對(duì)像例如DPA一樣的側(cè)通道攻擊更輕松地保護(hù)被生成的密鑰的產(chǎn)生,其中,例如通過(guò)塊加密產(chǎn)生該被生成的密鑰,例如其中使用AES加密算法。相比在消息驗(yàn)證碼的產(chǎn)生過(guò)程中所使用的哈希運(yùn)算,這種AES運(yùn)算能夠輕松得多地針對(duì)側(cè)通道攻擊被予以保護(hù)。此外,在產(chǎn)生消息的MAC時(shí)只需要針對(duì)側(cè)通道攻擊保護(hù)運(yùn)算,然而在保護(hù)哈希運(yùn)算在生成MAC的時(shí)候,就必須針對(duì)側(cè)通道攻擊保護(hù)一系列運(yùn)算。在產(chǎn)生密鑰k′時(shí),可以使用傳統(tǒng)的機(jī)制,用于保護(hù)被生成密鑰k′的產(chǎn)生,例如掩碼或者添加噪聲??偠灾?,這種實(shí)施方式的一個(gè)重要方面在于,利用可變的機(jī)密的密鑰k′計(jì)算的MAC,取代利用機(jī)密的密鑰k的實(shí)際的MAC計(jì)算值MACk(M)。當(dāng)這個(gè)可變的密鑰k′不僅與機(jī)密的密鑰k相關(guān)還與消息M本身相關(guān)時(shí),并且當(dāng)這些以帶密碼的有意義的方式發(fā)生時(shí),就能夠確保,即利用兩個(gè)不同的推導(dǎo)出的密鑰為兩個(gè)不同的消息M1和M2進(jìn)行MAC計(jì)算。甚至在攻擊者能夠確定出進(jìn)行了MAC計(jì)算的消息本身時(shí),也能夠確保這一點(diǎn)。在這種情況下,一條固定消息的MAC總是使用相同的密鑰k′,使得MAC能夠重復(fù)生成。但是,因?yàn)橛眠@個(gè)密鑰k′通常不能為第二消息 進(jìn)行MAC運(yùn)算(或者至少幾乎不能),所以不能通過(guò)DPA獲得k′。特別有利的是,當(dāng)從a)至e)的以下幾點(diǎn)都得到滿足時(shí):a)系統(tǒng)的加密強(qiáng)度不應(yīng)降低。換句話說(shuō),計(jì)算k′不應(yīng)該減小密鑰的熵。但是盡管如此,可以容忍在一定的情況下?lián)p失若干比特位的熵,例如當(dāng)密鑰長(zhǎng)度仍然長(zhǎng)于必要長(zhǎng)度時(shí)。b)對(duì)輸入的每一個(gè)比特位,也就是說(shuō)對(duì)原始密鑰k和消息M的每一個(gè)比特位,都應(yīng)該做出反應(yīng),例如被生成的密鑰的產(chǎn)生應(yīng)該與輸入的每一個(gè)比特位相關(guān)。優(yōu)選地,當(dāng)輸入任意一個(gè)比特位顛倒,例如原始密鑰k的一個(gè)比特位或者消息M的一個(gè)比特位,那么平均有45%到55%之間的輸出比特位顛倒。換句話說(shuō),在被生成的密鑰k′中,平均有45%到55%之間的比特位發(fā)生改變。特別優(yōu)選地是,發(fā)生雪崩效應(yīng),這就是說(shuō):平均有50%的輸出比特位顛倒。換句話說(shuō),在被生成的密鑰k′中,平均有50%的比特位發(fā)生改變。c)應(yīng)該不可能的是,對(duì)于第一消息M1生成另一個(gè)第二消息M2,使得對(duì)于原始密鑰k和被生成的密鑰k′來(lái)說(shuō),以下等式成立:k′(k,M1)=k′(k,M2)首先,即使在不知道k的情況下,也不應(yīng)該能夠成立。d)有利的是,如果不能夠從信息k′(被生成的密鑰)和M(為之計(jì)算MAC的消息)中計(jì)算出原始密鑰k。e)計(jì)算k′=k′(k,M)不應(yīng)該允許通過(guò)側(cè)通道攻擊推導(dǎo)出k。即使已知M或者甚至允許選擇M也不行。根據(jù)一種實(shí)施方式,能提供一種滿足a)到d)這幾點(diǎn)的裝置。在一種優(yōu)選的實(shí)施方式中,能提供一種滿足a)到e)這幾點(diǎn)的裝置。根據(jù)一種實(shí)施方式,能提供一種裝置,該裝置設(shè)置用于為了產(chǎn)生消息驗(yàn)證碼而用被生成的密鑰k′取代原始密鑰k,被生成的密鑰是通過(guò)以下方式產(chǎn)生的:k′:=k′(k,M):=AESk(H(M))。其中,M表示消息;H表示運(yùn)用到這個(gè)消息上以獲得哈希值H(M)的哈希運(yùn)算;AESk表示AES加密算法,該算法利用原始密鑰k用于為哈希值M加密;并且k′表示產(chǎn)生的要被生成的密鑰。這種裝置自動(dòng)滿足a)至d)這幾點(diǎn)。要點(diǎn)e)是通過(guò)實(shí)施得以確保的。例如可以采用根據(jù)現(xiàn)有技術(shù)的掩碼方案來(lái)實(shí)現(xiàn)要點(diǎn)e),例如用于AES加密算法掩碼的一項(xiàng)已知技術(shù)。除了其他原因,這樣產(chǎn)生被生成的密鑰之所以特別有利的原因還有,因?yàn)槭褂玫墓_\(yùn)算不必強(qiáng)制性針對(duì)側(cè)通道攻擊進(jìn)行保護(hù),因?yàn)樵撨\(yùn)算不運(yùn)用到保持秘密的密鑰k上,而是僅僅用到消息M上。因此,在產(chǎn)生MAC時(shí),只有AES計(jì)算是唯一的必須有側(cè)信道防護(hù)的計(jì)算。除了使用AES算法,還有許多其他產(chǎn)生被生成的密鑰k′的可能性。例如可以使用DES算法或者三重DES算法來(lái)產(chǎn)生被生成的密鑰k′。在有些實(shí)施方式中,a)至e)這幾點(diǎn)要依據(jù)情況可能逐漸地或者部分地得以滿足。所以,在有些實(shí)施方式中,不一定必須使用強(qiáng)大的加密算法。圖2在這里就提供了一種能夠進(jìn)行安全的MAC計(jì)算的實(shí)施方式。根據(jù)這種新的方案,首先由密鑰生成器210從消息M和原始密鑰k中產(chǎn)生一個(gè)被生成的密鑰,例如會(huì)議密鑰(英語(yǔ):Session-key)。然后該會(huì)議密鑰被消息驗(yàn)證碼生成器220使用以產(chǎn)生消息驗(yàn)證碼Mac′k。圖3示出一種用于產(chǎn)生被生成的密鑰的實(shí)施方式,例如產(chǎn)生會(huì)議密鑰k′。例如能夠通過(guò)在第一模塊312中對(duì)消息M進(jìn)行哈希計(jì)算來(lái)產(chǎn)生會(huì)議密鑰k′。然后就可以例如在使用針對(duì)側(cè)通道攻擊受到保護(hù)的AES的情況下在第二模塊315中利用密鑰k對(duì)結(jié)果進(jìn)行加密。根據(jù)另一種實(shí)施方式,例如能夠通過(guò)在第一模塊312中對(duì)一部分消息M進(jìn)行哈希計(jì)算來(lái)產(chǎn)生會(huì)議密鑰k′。然后就可以例如在使用針對(duì)側(cè)通道攻擊受到保護(hù)的AES的情況下在第二模塊315中利用密鑰k對(duì)結(jié)果進(jìn)行加密。還有多個(gè)其他的產(chǎn)生被生成的密鑰的可能性,其針對(duì)側(cè)通道攻擊予以保護(hù),只要注意遵守上面所述的a)至e)幾點(diǎn)。下面示出本發(fā)明的另一種實(shí)施方式,其涉及HMAC(HMAC=基于哈希運(yùn)算的消息驗(yàn)證碼;英語(yǔ):Hash-basedMessageAuthenticationCode)。然而,首先為了更好地理解HMAC消息驗(yàn)證碼,正如由現(xiàn)有技術(shù)中已知的那樣,參照?qǐng)D8進(jìn)行闡述。此外,將信息以消息M的形式連同機(jī)密的密鑰輸送給執(zhí)行MAC算法的裝置。這個(gè)裝置計(jì)算消息驗(yàn)證碼。在圖8的裝置中,如果原始密鑰k太長(zhǎng),可能縮短該密鑰,從而獲得(步驟810)密鑰K。如果不需要縮短密鑰k,那么接受不改變的密鑰k作為密鑰K。緊接著,將密鑰K和位串ipad進(jìn)行XOR關(guān)聯(lián)(820)。然后所得結(jié)果與消息M級(jí)聯(lián)運(yùn)算(830),從而獲得第一級(jí)聯(lián)結(jié)果,該結(jié)果在步驟835中提供用于第一哈希運(yùn)算。然后對(duì)這個(gè)第一級(jí)聯(lián)結(jié)果運(yùn)用(840)第一哈希運(yùn)算,從而獲得第一哈希運(yùn)算結(jié)果,該結(jié)果在步驟845中提供用于第二級(jí)聯(lián)運(yùn)算860。在另一個(gè)步驟850中,將密鑰K和另一種位串opad進(jìn)行XOR關(guān)聯(lián),并且然后通過(guò)步驟855同樣提供用于第二級(jí)聯(lián)。然后,在步驟855中提供的XOR運(yùn)算的結(jié)果與在步驟845中提供的第一哈希運(yùn)算結(jié)果級(jí)聯(lián)運(yùn)算(860)。然后將第二級(jí)聯(lián)的結(jié)果運(yùn)用第二哈希運(yùn)算,由此最終獲得消息驗(yàn)證碼Mac。作為HMAC方法的基礎(chǔ)的常見(jiàn)哈希函數(shù)是通過(guò)以下條件定義的H:{0,1}*→{0,1}l輸出長(zhǎng)度l公知的哈希方法例如有SHA-1、SHA-2家族(SHA=安全哈希算法;英語(yǔ)=secureHashAlgorithm),其包括SHA256、SHA384、SHA512。這種形式的哈希算法的核心是由循環(huán)函數(shù)h構(gòu)成的:{0,1}L×{0,1}l,→{0,1}l,其中L≥l。例如在SHA-1中,L=512,l=180。交互地運(yùn)用循環(huán)函數(shù),從而對(duì)任意長(zhǎng)度的消息進(jìn)行哈希運(yùn)算。正如在圖8中已經(jīng)描繪的那樣,利用密鑰K對(duì)于消息M的HMAC就被定義為其中,opad和ipad是常數(shù),代表XOR運(yùn)算,并且其中,||代表簡(jiǎn)單的級(jí)聯(lián)運(yùn)算。這就是說(shuō),首先,K連同消息M進(jìn)行哈希運(yùn)算,并且然后該結(jié)果又連同K進(jìn)行哈希運(yùn)算。其中,K滿足哈希運(yùn)算H的輸入長(zhǎng)度,即,例如K:=k||0.........0。于是例如能夠通過(guò)HMAC借助通常的哈希算法產(chǎn)生MAC算法。為此,首先將消息連同密鑰k以鋪墊的形式進(jìn)行一次哈希運(yùn)算。然后將這個(gè)哈希結(jié)果再一次與密鑰k進(jìn)行哈希運(yùn)算。圖4示出根據(jù)本發(fā)明的實(shí)施方式的一種裝置,其中,借助HMAC產(chǎn)生消息驗(yàn)證碼。該裝置設(shè)計(jì)用于通過(guò)以下方式產(chǎn)生被生成的密鑰k′,即,在第一哈希運(yùn)算單元410中對(duì)消息M進(jìn)行哈希運(yùn)算,從而獲得第一哈希運(yùn)算結(jié)果,并且其中,預(yù)設(shè)了AES單元420,其設(shè)計(jì)用于在使用針對(duì)側(cè)通道攻擊受保護(hù)的AES算法的情況下利用密鑰k為第一哈希運(yùn)算結(jié)果加密。第一修改器430和第二修改器470設(shè)計(jì)用于在被生成的密鑰k′太長(zhǎng)時(shí),縮短該密鑰,從而獲得密鑰K′。如果不需要縮短被生成的密鑰k′,那么接受不改變的被生成的密鑰k′作為密鑰K′。第一XOR單元440設(shè)計(jì)用于將密鑰K′與位串ipad進(jìn)行XOR運(yùn)算,從而得到第一XOR結(jié)果。第一級(jí)聯(lián)單元450設(shè)計(jì)用于將第一XOR結(jié)果與消息M級(jí)聯(lián)運(yùn)算,從而獲得第一級(jí)聯(lián)的結(jié)果。此外,第二哈希運(yùn)算單元460設(shè)計(jì)用于將哈希運(yùn)算運(yùn)用到第一級(jí)聯(lián)結(jié)果上,從而獲得第二哈希運(yùn)算結(jié)果。第二XOR單元480設(shè)置用于將密鑰K′和另一外的位串opad進(jìn)行XOR關(guān)聯(lián),從而獲得第二XOR結(jié)果。第二級(jí)聯(lián)單元490設(shè)置用于運(yùn)算第二哈希運(yùn)算結(jié)果和第二XOR結(jié)果,從而獲得第二級(jí)聯(lián)結(jié)果。此外,第三哈希運(yùn)算單元495設(shè)置用于將哈希運(yùn)算運(yùn)用到第二級(jí)聯(lián)結(jié)果上,從而獲得消息驗(yàn)證碼Mac。圖5示出一種用于檢查消息的準(zhǔn)確性和可信度的裝置。該裝置設(shè)置用于借助接收到的消息驗(yàn)證碼MACempfangen檢查消息的準(zhǔn)確性和可信度。為此,用于檢查該消息的準(zhǔn)確性和可信度的裝置具有根據(jù)以上描述的實(shí)施方式之一的用于產(chǎn)生消息驗(yàn)證碼的裝置510和比較單元520。用于產(chǎn)生消息驗(yàn)證碼的裝置510基于(原始)密鑰和消息M產(chǎn)生計(jì)算出的消息驗(yàn)證碼MACberechnet。比較單元520設(shè)置用于檢查產(chǎn)生的消息驗(yàn)證碼MACberechnet和接收到的消息驗(yàn)證碼MACempfangen的一致性,從而檢查消息的準(zhǔn)確性和可信度。如 果MACberechnet和MACempfangen一致,就知道消息是準(zhǔn)確的且可信的。如果MACberechnet和MACempfangen不一致,就能得出消息不準(zhǔn)確和/或不可信的結(jié)論。圖6示出根據(jù)一種實(shí)施方式基于第一消息M和原始密鑰k用于產(chǎn)生消息驗(yàn)證碼的一種方法。在步驟610中產(chǎn)生被生成的密鑰k′,這是以原始密鑰k和消息M為基礎(chǔ)的。然后在步驟620中基于被生成的密鑰k′和消息M產(chǎn)生消息驗(yàn)證碼。盡管是結(jié)合裝置描述了一些方面,然而不言而喻的是,這些方面也是對(duì)相應(yīng)方法流程的描述,所以裝置的一個(gè)組塊或者組件也可以理解成相應(yīng)的方法步驟或者方法步驟的特征。與之類似地,結(jié)合方法步驟或者作為方法步驟所描述的那些方面也是對(duì)相應(yīng)裝置的相應(yīng)組塊或者細(xì)節(jié)或者特征的描述。幾個(gè)或者所有的方法步驟都能夠通過(guò)硬件設(shè)備(或者在使用硬件設(shè)備的情況下),例如微處理器,可編程的電腦或者電子電路來(lái)實(shí)施。在幾個(gè)實(shí)例中,能夠通過(guò)這種設(shè)備執(zhí)行幾個(gè)或者多個(gè)最重要的方法步驟。依據(jù)一些特定的具體實(shí)施條件,本發(fā)明的實(shí)施例能夠在硬件中或者軟件中實(shí)施??梢栽谑褂脭?shù)碼存儲(chǔ)媒介的情況下實(shí)現(xiàn)具體實(shí)施,例如軟盤、DVD、藍(lán)光碟、CD、ROM、PROM、EPROM、EEPROM或者閃存、硬盤或者其他的磁性或光學(xué)存儲(chǔ)器,其上存儲(chǔ)著可讀的電子控制信號(hào),這些電子控制信號(hào)這樣地與可編程的電腦系統(tǒng)共同起作用,或者能夠共同起作用,即,執(zhí)行相應(yīng)的方法。因此該數(shù)碼存儲(chǔ)媒介可以是電腦可讀的。根據(jù)本發(fā)明的有些實(shí)施例就包括數(shù)據(jù)載體,該數(shù)據(jù)載體具有可讀的電子控制信號(hào),可讀的電子控制信號(hào)能夠這樣地與可編程的電腦系統(tǒng)共同起作用,即,執(zhí)行本文中描述的其中一種方法。一般來(lái)說(shuō),本發(fā)明的實(shí)施例能夠?qū)嵤┳鳛閹в谐绦虼a的電腦程序產(chǎn)品,其中,當(dāng)電腦程序產(chǎn)品在電腦上運(yùn)行時(shí),程序代碼能夠有效地執(zhí)行其中一種方法。該程序代碼例如也可以存儲(chǔ)在機(jī)器可讀的載體上。其他的實(shí)施例包括用于執(zhí)行本文中所述的其中一種方法的電腦程序,其中,該電腦程序存儲(chǔ)在機(jī)器可讀的載體上。換句話說(shuō),根據(jù)本發(fā)明的方法的一種實(shí)施例由此是一種電腦程序,該電腦程序具有用于在電腦程序在電腦上運(yùn)行時(shí)執(zhí)行本文中描述的一種方法的程序代碼。因此,根據(jù)本發(fā)明的方法的另一個(gè)實(shí)施例是數(shù)據(jù)載體(或者數(shù)碼存儲(chǔ)媒介或者電腦可讀的媒介),其上記錄著用于執(zhí)行本文中所描述的其中一種方法的電腦程序。因此,根據(jù)本發(fā)明的方法的另一個(gè)實(shí)施例是數(shù)據(jù)流或者一系列的信號(hào),該數(shù)據(jù)流或者這一系列的信號(hào)代表著用于執(zhí)行本文中所述的其中一種方法的電腦程序。該數(shù)據(jù)流或者這一系列的信號(hào)例如能夠配置用于通過(guò)數(shù)據(jù)通信連接進(jìn)行傳輸,例如通過(guò)因特網(wǎng)。另一個(gè)實(shí)施方式包括一個(gè)處理裝置例如電腦或者可編程的邏輯組件,該處理裝置配置或者調(diào)適用于能夠執(zhí)行本文中描述的其中一種方法。另一個(gè)實(shí)施例包括一臺(tái)電腦,在其上面安裝著用于執(zhí)行本文中描述的其中一種方法的電腦程序。根據(jù)本發(fā)明的另一個(gè)實(shí)施例包括一個(gè)裝置或者一個(gè)系統(tǒng),該裝置或者是該系統(tǒng)設(shè)計(jì)用于將執(zhí)行本文中描述的至少一種方法的電腦程序傳輸給接收者。例如可以電子地或者光學(xué)地實(shí)現(xiàn)傳輸。接收者例如可以是電腦、 移動(dòng)裝置、存儲(chǔ)裝置或者類似的裝置。該裝置或者該系統(tǒng)例如可以包括用于傳輸電腦程序給接收者的文件服務(wù)器。在有些實(shí)施例中,可編程的邏輯組件(例如現(xiàn)場(chǎng)可編程門電路陣列,F(xiàn)PGA)用于執(zhí)行本文中描述的方法的某些或者所有功能。在有些實(shí)施例中,現(xiàn)場(chǎng)可編程門陣列與微處理器共同起作用,執(zhí)行本文中描述的其中一種方法??偟膩?lái)說(shuō),這些方法在一些實(shí)施例中是在任意的硬件裝置一方執(zhí)行。這可以是可普遍通用的硬件,例如電腦處理器(CPU),或者是針對(duì)該方法的特殊硬件,例如ASIC。以上描述的實(shí)施例僅僅展示了本發(fā)明的原理。不言而喻地,其他的專業(yè)技術(shù)人員能想到本文中描述的布置和特征的修改方案和變化方案。因此,特意僅通過(guò)權(quán)利要求的保護(hù)范圍來(lái)限定本發(fā)明,而不是通過(guò)那些借助說(shuō)明書(shū)和對(duì)實(shí)施例的闡述在文中展示的具體特征。
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
确山县| 秭归县| 南和县| 琼结县| 兴安盟| 杭锦旗| 丽水市| 外汇| 保定市| 滨海县| 镇安县| 海南省| 聊城市| 西充县| 延津县| 平谷区| 资阳市| 建德市| 大丰市| 保康县| 浦城县| 沈丘县| 五台县| 博湖县| 博野县| 东乡| 滁州市| 长治市| 正定县| 奉贤区| 龙胜| 夏邑县| 道孚县| 常德市| 阳新县| 宜阳县| 武陟县| 鄯善县| 无为县| 册亨县| 明光市|