国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      加密運算中模冪的保護的制作方法

      文檔序號:6361929閱讀:267來源:國知局
      專利名稱:加密運算中模冪的保護的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及軟件和數(shù)據(jù)加密。特別是,本發(fā)明涉及一種用于隱藏模冪運算中間結(jié)果的方法。
      背景技術(shù)
      直到不久前,密碼學(xué)還僅僅關(guān)注于對于不利環(huán)境中消息傳遞的保護。在傳統(tǒng)方案中(又名黑盒模型),攻擊者僅可以訪問解密裝置的輸入。隨著付費電視、受DRM所保護的數(shù)字內(nèi)容(智能電話、個人電腦或CD/DVD中的電影,音樂)的出現(xiàn),當(dāng)前攻擊者實際可以訪問解密裝置及其輸出,這意味著他不僅可以被動研究加密裝置的狀態(tài)和中間值,而且還可以主動地干預(yù)其計算。具體而言,1996年出現(xiàn)了故障分析的概念:當(dāng)提交解密裝置給異常狀況(輸入錯誤、溫度異常、強電磁輻射……)時,解密算法能夠輸出故障明文,其給出了有關(guān)解密裝置中所使用的密鑰的信息。參見 Dan Boneh,Richard A.DeMillo 和 Richard J.Lipton 在 1997年的 proceedings of Eurocrypt 中的 “On the Importance of Checking CryptographicProtocols for Faults“。

      同年還出現(xiàn)了側(cè)信道攻擊的概念:解密裝置在解密處理過程中所輸出的物理信號(處理的定時、功率消耗、電磁輻射……)可能泄漏有關(guān)解密算法的內(nèi)部變量的信息(側(cè)信道信息)。從該內(nèi)部變量和統(tǒng)計分析,攻擊者可以檢索到有關(guān)解密裝置中所使用的密鑰的信息。參見 Paul C.Kocher 在 1996 年的 proceedings of Eurocrypt 中的 “Timing Attackson Implementations of Diffie-HelIman, RSA, DSS and Other Systems,,。故障分析與側(cè)信道分析都屬于灰盒模型:攻擊者所擁有的關(guān)于實現(xiàn)加密算法及其內(nèi)部數(shù)據(jù)的知識是有限的。這些攻擊被成功地用于檢索付費電視系統(tǒng)中所使用的智能卡的密鑰和源代碼。對于在個人計算機上或⑶/DVD上的音樂和電影,由于使用軟件混淆(DRM)比用分發(fā)智能卡來進行保護成本低很多,所有使用軟件混淆來保護內(nèi)容密鑰。在這種情況下,由于攻擊者完全可以訪問軟件內(nèi)部,因此它比灰盒模型的環(huán)境更加糟糕。這就是所謂的白盒模型。白盒密碼學(xué)的概念出現(xiàn)于2002年。白盒密碼學(xué)是一種混淆技術(shù),旨在實現(xiàn)密碼原語的方式為:即便對手完全可以訪問實現(xiàn)及其執(zhí)行平臺,他也無法提取密鑰信息[I]。正如BrechtWyseur在關(guān)于白盒密碼學(xué)的論文中所描述的,在白盒模型中能有效抵御攻擊的對策在灰盒模型中也能有效抵御攻擊。用于密鑰交換、加密或簽名的一些重要加密協(xié)議(Diffie_Hellman、EIGamal、RSA、DSS……)中涉及模冪運算。本領(lǐng)域中公知的是:進行模冪運算的最基本的方法就是所謂的“平方乘(square-and-multiply) ”算法[2],其包括逐位處理指數(shù),并根據(jù)其數(shù)值進行乘法。下面,我們來回顧一些有關(guān)模冪運算的概念以及一些現(xiàn)有技術(shù)算法。 冪運算是一種數(shù)學(xué)運算,寫為b%其涉及兩個數(shù)字,基數(shù)b和指數(shù)e。當(dāng)e是一個正整數(shù)時,冪運算相當(dāng)于重復(fù)相乘;換言之,b的e因子次乘積:bX……Xb
      模冪運算是一種在求冪運算之后再取模的運算。進行“模冪”運算是指一個正整數(shù)b (稱為基數(shù))升高e次方(e稱為指數(shù)),用其除以一個正整數(shù)m (稱為模數(shù)),再計算其余數(shù)。換句話說,設(shè)置問題形式,其中給出基數(shù)b、指數(shù)e和模數(shù)m,那么人們期望如此計算 C:C = bemod m 基本二進制模冪(平方乘)輸入:η位整數(shù)g, t+Ι位整數(shù)e,即e = (etey ep。),其中Gi是e的第i個最低有效位,以及η位模數(shù)m。輸出:gemodmUA=L2、對于i從t向下到O,進行如下運算:2.1A = AXAmod m.
      2.2 如果 ei = I,則 A = AX g mod m3、返回(A) 通過對一組k位指數(shù)進行分析,該二進制冪運算能夠大幅加速。這種方法也被稱為窗口法,其中窗口尺寸為k。 使用窗口法的模冪運算輸入:n位的g, (t+1) Xb位的e,即e = (etety一盧丄,其中對于一些k > l,b =2k,以及η位模數(shù)m輸出:gemodm1.預(yù)計算1.1 G0 = I1.2 對于 i 從 I 到(2k_l),計算=Gi = Gi^1Xg,(由此,Gi = g1)2.A = 1.
      3.對于i從t向下到0,進行如下運算:3.1B = A2mod m, A = Bk mod m3.2j = ej, A = AXGj.
      4.返回(A)

      發(fā)明內(nèi)容
      應(yīng)該強調(diào)的是,上述任一模型中攻擊者為了自身的非法用途,其目標(biāo)都是要獲取密鑰。針對模冪運算,如果使用混淆技術(shù)對指數(shù)進行了適當(dāng)?shù)谋Wo,那么攻擊者就會嘗試通過監(jiān)測模冪運算的中間結(jié)果來獲取有關(guān)密鑰的信息。事實上本領(lǐng)域技術(shù)人員會注意到,在基本平方乘方法的示例中,攻擊者通過簡單觀測求冪算法的執(zhí)行,并測量計算中所涉及每一步驟的時間(或者所消耗的功率),就能夠輕易獲取密鑰值(指數(shù))。窗口法也傾向于使用一些先進的側(cè)信道攻擊技術(shù),諸如[3]中所述的差分功率分析(DPA)。用于混淆加密計算的現(xiàn)有技術(shù)包括在[4]中所提出的方法。與[4]中解決方案相比,本發(fā)明的優(yōu)點在于:在主 循環(huán)中除了對預(yù)計算的窗口因子進行“隱蔽(blinding)”之夕卜,它不再需要額外的計算,因此基于窗口的冪運算的執(zhí)行速度會顯著提升。雖然現(xiàn)有技術(shù)中提出了一些其它混淆和保護模冪運算的方法,諸如,例如[5],但他們都是對加密的消息本身(C)或者解密指數(shù)(d)進行掩蔽(隱蔽)處理。本發(fā)明提出一種新的方法,其中對預(yù)先計算的窗口值施以掩蔽,這使得攻擊者更難以憑借一次故障攻擊或軟件修改來繞過該隱蔽。本領(lǐng)域技術(shù)人員可以理解,通過對一個變量或數(shù)值的隨機化的操作進行“隱蔽(blinding) ”或“掩蔽(masking) ”,使得所述變量或數(shù)值頻繁改變,由此攻擊者就無法使用側(cè)信道攻擊法來進行識別和研究。要解決的問題本發(fā)明的一個目的是提供一種隱蔽模冪的中間結(jié)果的方法,對于先進的側(cè)信道分析技術(shù)來說,該方法比現(xiàn)有技術(shù)中描述的隱蔽方法更難繞過,現(xiàn)有技術(shù)例如為[4]、[5]以及 Paul C.Kocher 在 1996 年的 proceedings of Eurocrypt 中的 “Timing Attacks onImplementations of Diffie-HelIman, RSA, DSS and Other Systems,,。技術(shù)方案本發(fā)明提出了一種 用于保護模冪運算的方法,基于窗口尺寸為k位的窗口法,對于η位輸入數(shù)據(jù)X,使用2k預(yù)計算變量(對于i = O到2k-l,Yi = XiHiod N),得到η位輸出數(shù)據(jù)S,S = Xd mod N,其中,d是尺寸為m位的指數(shù),N是η位的模數(shù),所述方法包括以下步驟: 通過隱蔽值BI對預(yù)計算變量進行隱蔽,B1是與所述模數(shù)的尺寸相同(η位)但小于所述模數(shù)的偽隨機變量(對于i = O到2k-l, Yi = YiXB1Hiod N), 按照窗口法執(zhí)行模冪運算,該窗口法基于將指數(shù)d分割成表示窗口的尺寸最多為k位的多個塊,利用所述隱蔽的預(yù)計算變量,以獲得中間結(jié)果(A), 通過解除隱蔽值C1 = (Bjr1mOd N對所述中間結(jié)果進行解除隱蔽,以得到輸出數(shù)據(jù)S,其中g(shù)等于k位編碼的值“I”串聯(lián)m/k次。


      附圖顯示了能夠執(zhí)行所要求保護方法的各個步驟的處理單元,借助該附圖,能夠更好地理解本發(fā)明。
      具體實施例方式本發(fā)明描述了一種模冪運算的保護方法,其在一個開放軟件環(huán)境中使用所謂的窗口法。通過開放軟件環(huán)境,我們假設(shè)在所述PC系統(tǒng)上執(zhí)行并由攻擊者可訪問的二進制代碼。如圖1所示,可以在專門執(zhí)行加密操作的處理單元中實現(xiàn)本發(fā)明。該單元至少包括:能夠執(zhí)行軟件核的處理器CPU ;以及存儲器MEM1,用于存儲該代碼并為存儲臨時數(shù)據(jù)MEM2提供必要的空間。提供接口 INT,以便接收被加密(或解密)以存儲于臨時存儲器MEM2的用于加密處理的消息。該接口 INT還以相同的方式向接收裝置的其它組件發(fā)送解密(或加密)的消息。根據(jù)優(yōu)選的實施方案,我們考慮使用窗口法來執(zhí)行所述模冪運算的PC系統(tǒng)或處理單元,所述窗口法在所述軟件環(huán)境中實現(xiàn)。設(shè)X是η位輸入數(shù)據(jù),K是包括m位指數(shù)d和η位模數(shù)N的密鑰。在所述PC系統(tǒng)中執(zhí)行的模冪運算包括兩個步驟:預(yù)計算(pre-calculation)和求幕運算(exponentiation)。在預(yù)計算步驟中,值 Yi = X1 mod N 是預(yù)先計算的。本領(lǐng)域技術(shù)人員會注意到,在窗口法中,i的變化介于O至2k-l之間,k表示施加到指數(shù)d的窗口尺寸。在求冪運算的步驟中使用所述預(yù)先計算的值I。下面使用偽代碼來介紹本發(fā)明的實施例。需著重注意的是,下面所描述的步驟僅僅是為了介紹本發(fā)明的優(yōu)選實施例,并且在任何情況下都不具有限制意義。使用η位寄存器Α,以值I進行初始化,用于臨時存儲求冪算法的中間結(jié)果,使用η位寄存器C,以值I進行初始化,用于臨時存儲最后使用的隨機值,使用log (m)位寄存器V,以值M/Κ進行初始化,-對于j= m/k到I,從密鑰d的第j X K位開始截取k位,根據(jù)關(guān)于j的函數(shù)Π,確定隱蔽條件(0/l)b,如果設(shè)定了隱蔽條件,則執(zhí)行:-更新η位偽隨機變量B,-對于i = O 到 2k-l, Yi 替換為 Yi X (B mod N),-對于i = O 到 2k_l,Yi 替換為 Yi X ((TlIiiod N),-A 替換為 AXCg,其中 g 為(v-j)的函數(shù)(即,g =-f2(v_j),其中 f2(r)是 kXr位的數(shù),它由k位編碼的數(shù)字I串聯(lián)r次得到,例如,如果r = 4且k = 2,則二進制f2 (r =4) = “01010101”,十六進制 f2 (4) =0X55),-加載具有值B的寄存器C,-加載具有值j的寄存器V數(shù)值A(chǔ)替換為(Ak mod NXYdj mod N),dj表示從最低有效位向最高有效位計數(shù)時,指數(shù)d的k位中的第j位字,且K = 2k。本技術(shù)領(lǐng)域技術(shù)人員會理解該隱蔽方法的優(yōu)點在于,該隱蔽實際上涉及多次計算(與窗口尺寸一樣多次的計算),所以對于側(cè)信道攻擊者來說,想要通過一次故障攻擊或軟件修改來繞過該隱蔽會變得更加困難。相對于已知現(xiàn)有技術(shù)的另一個優(yōu)點是算法內(nèi)部的隱蔽是可更新的,這也使得使用故障攻擊或者通過軟件修改方式來繞過該隱蔽變得更加困難。如權(quán)利要求1所述的方法,其中,在幾次窗口處理之后隱蔽值B1被更新,而對中間結(jié)果的解除隱蔽是靠乘以變量C1來完成的,C1取決于窗口的尺寸(k)、所處理窗口的數(shù)量(w)、模數(shù)N和初始隱蔽值B1 % = (B11T1 mod N,其中h等于對k位編碼的值“I”進行w次串聯(lián)。另一個優(yōu)點是,攻擊者無法找到具體的函數(shù)T,因此提交T (X)作為模冪運算的輸入將使得A中存儲的中間結(jié)果獨立于隱蔽變量B,即使B是已知常數(shù)。如果解除隱蔽的步驟不是預(yù)先計算好的,那么與傳統(tǒng)的求冪算法相比,該對策的開銷是使用與輸入指數(shù)d相同長度的求冪運算,以及與隱蔽更新的數(shù)量一樣多次的反演運算。
      根據(jù)另一特定實施例,當(dāng)在所述PC系統(tǒng)上執(zhí)行時,可以在求冪算法剛開始時隱蔽一次預(yù)計算變量,然后再在求冪運算結(jié)束時移除該隱蔽,以此來簡化現(xiàn)存速度有限時所要求保護的方法。于是,此對策的開銷是一次使用與輸入指數(shù)d相同長度的冪運算以及僅僅一次的反演運算。本領(lǐng)域的技術(shù)人員明白,模冪方法通常用于RSA密碼系統(tǒng)環(huán)境中。根據(jù)特定的實施例,當(dāng)模冪算法被用于具有私有密鑰d(其可能在位數(shù)尺寸方面相對較大)的RSA計算時,參照以下步驟,可以提升所要求保護方法的速度: 預(yù)先計算e’ = g_1mod(p-l) X (q_l),其中g(shù)等于k位編碼的值“I”串聯(lián)m/k次, 通過同一個隱蔽值B2來對預(yù)計算變量(Yi = XiHiod N)進行隱蔽,由此B2 =B1^mod N, B1是偽隨機變量,其與模數(shù)尺寸相同但小于模數(shù)(對于i = O到2k_l, Yi =YiXB2Hiod N), 使用已隱蔽的預(yù)計算變量來執(zhí)行模冪運算,以獲得中間結(jié)果(A), 通過B1的反演運算來對該中間結(jié)果解除隱蔽。通過這種方式,隱蔽開銷被降低到一次小指數(shù)(冪指數(shù)為e’)的求冪運算,以及一次反演。根據(jù)優(yōu)選的實施例,偽隨機變量B可以使用不同的方法進行更新。此外,主方法的兩次執(zhí)行之間所使用的B值也 可以是不同的。下面根據(jù)優(yōu)選實施例,介紹了這種實施方式。一種提升速度的方法是建立新的隱蔽與在先隱蔽之間的聯(lián)系。在w個窗口處理之后更新隱蔽值B,在此情形下,冪運算期間所使用的隱蔽值是子塊數(shù)組B= (B1, B2, B3,…Bn),后一子塊Bi+1是前一子塊Bi的平方值按N取模,每個子塊Bi都是一個與模數(shù)位數(shù)相同但小于模數(shù)的偽隨機變量,冪運算期間所使用的解除隱蔽值是子塊數(shù)組C= (C17C27C3,…Cn),后一子塊Ci+1是前一子塊Ci的平方值,Ci= (BigFmod N,其中,g等于該k位編碼的值“I”串聯(lián)w次,但是只有C1是通過反演運算得出,而其它的Ci均為其前一的平方。雖然B是在主算法內(nèi)部被更新,但是在主方法的兩次執(zhí)行之間可以使用相同的B值:因此能夠預(yù)先計算B和Cg的不同值,來消除冪運算和反演運算的開銷。在優(yōu)選實施例中的特定情形下,該方法包括預(yù)先計算并存儲Cg值的步驟,其中隱蔽值B1提取于全部或部分模冪代碼。參考文獻:[I] ^ffhite-Box Cryptography and an AES Implementation”of Stanley Chow,Philip A.EiseniHarold Johnson,and Paul C.van Oorschot in the proceedings of the9th International Workshop on Selected Areas in Cryptography (SAC2002)[2] “Handbook of applied cryptography” of A.Menezes, P.van Oorshot andS.Vanstone.
      [3]“Differential Power Analysis,,,Paul Kocher,Joshua Jaffe and BenjaminJun in the proceedings of Advances in CryptoIOgy-CRYPTO^ 99,19th AnnualInternational Cryptology Conference[4] “Method of obscuring cryptographic computations,,,Ernie F.Brickel,Pub.No US 2005/0084098[5] “Cryptographic method comprising a modular exponentiation securedagainst hidden—channel attacks,cryptoprocessor for implementing the method andassociated chip card”,Mathieu Ciet,Benoit Feix,Pub N0.2007/074149
      權(quán)利要求
      1.一種由處理單元在加密運算中所執(zhí)行的用于保護模冪運算的方法,所述模冪運算基于窗口尺寸為k位的窗口法,對于η位輸入數(shù)據(jù)X,使用2k預(yù)計算變量(對于i = O到2k-l,Yi = X1Iiiod N),得到η位輸出數(shù)據(jù)S,S = Xd mod N,其中,d是尺寸為m位的指數(shù),N是η位的模數(shù),所述方法包括以下步驟: 通過隱蔽值B1對預(yù)計算變量進行隱蔽,B1是與所述模數(shù)的尺寸相同(η位)但小于所述模數(shù)的偽隨機變量(對于i = O到2k-l, Yi = YiXB1Hiod N), 按照窗口法執(zhí)行模冪運算,該窗口法基于將指數(shù)d分割成表示窗口的尺寸最多為k位的多個塊,利用所述隱蔽的預(yù)計算變量,以獲得中間結(jié)果(A), 通過解除隱蔽值C1= (B1T1Hiod N對所述中間結(jié)果進行解除隱蔽,以得到輸出數(shù)據(jù)S,其中g(shù)等于k位編碼的值“I”串聯(lián)m/k次。
      2.根據(jù)權(quán)利要求1所述的方法,其中所述窗口法基于將指數(shù)d分割成表示窗口的最多為k位的多個塊,隱蔽值B1在處理一個或多個所述塊之后被更新,以及對于中間結(jié)果的解除隱蔽是通過乘以變量C1來完成,C1取塊于窗口的尺寸(k)、所處理過的窗口的數(shù)目(W)、模數(shù)N和初始隱蔽值B1 =C1 = (B111)-1Hiod N,其中h等于k位編碼的值“ I”串聯(lián)w次。
      3.根據(jù)權(quán)利要求1所述的方法,其中模數(shù)N是兩個n/2位的素數(shù)p、q的乘積,所述方法包括以下步驟:預(yù)計算e’ = g_1mod(p-l) X (q_l),其中g(shù)等于k位編碼的值“I”串聯(lián)m/k次,通過相同隱蔽值B2對預(yù)計算變量(Yi = XiHiod N)進行隱蔽,使得B2 = B,mod N7B1是與所述模數(shù)的尺寸相同但小于所述模數(shù)的偽隨機變量(對于i = O到Zk-LYi = YiXB2HiodN), 使用被隱蔽的預(yù)計算變量執(zhí)行模冪運算,以獲得中間結(jié)果(A), 通過B2的反演運算對所述中間結(jié)果解除隱蔽。
      4.根據(jù)權(quán)利要求1、2或3所述的方法,其中隱蔽值B1是動態(tài)隨機值,B1在每次使用被隱蔽的預(yù)計算變量執(zhí)行模冪運算的步驟時被更新。
      5.根據(jù)權(quán)利要求2所述的方法,其中隱蔽值在每次k位窗口的處理之后被更新,在冪運算中所使用的隱蔽值是子塊數(shù)組B = (B1, B2, B3,…匕),后一子塊Bi+1是前一子塊Bi的平方值對N取模,每個子塊Bi都是與所述模數(shù)的尺寸相同但小于所述模數(shù)的偽隨機變量,冪運算中所使用的解除隱蔽值是子塊數(shù)組C = (C1, C2, (V..Cn),后一子塊Ci+1是前一子塊Ci的平方值,Ci= (B^^mod N,其中h等于k位編碼的值“I”串聯(lián)w次,但是僅C1使用反演運算,而其它Ci均為其前一子塊的平方。
      6.根據(jù)前述權(quán)利要求中任一項所述的方法,其中隱蔽值B1是靜態(tài)偽隨機值,并且對于權(quán)利要求1、3或5中所述的方法的多次執(zhí)行,根據(jù)所述靜態(tài)偽隨機值來對所述解除隱蔽值進行一次預(yù)計算。
      7.根據(jù)前述權(quán)利要求中任一項所述的方法,包括預(yù)先計算和存儲值C1的步驟,其中隱蔽值B1提取于全部或部分模冪代碼。
      全文摘要
      本發(fā)明提出了一種執(zhí)行掩蔽的模冪運算的方法,基于窗口尺寸為k位的窗口法,對于n位輸入數(shù)據(jù)X,使用2k預(yù)計算變量(對于i=0到2k-1,Yi=Xi mod N),得到n位輸出數(shù)據(jù)S,S=Xd mod N,其中,d是尺寸為m位的指數(shù),N是n位的模數(shù),所述方法包括以下步驟通過隱蔽值B1對預(yù)計算變量進行隱蔽,B1是與所述模數(shù)的尺寸相同(n位)但小于所述模數(shù)的偽隨機變量(對于i=0到2k-1,Yi=Y(jié)i×B1mod N),利用所述隱蔽的預(yù)計算變量執(zhí)行模冪運算以獲得中間結(jié)果(A),通過解除隱蔽值C1=(B1g)-1mod N對所述中間結(jié)果進行解除隱蔽,以得到輸出數(shù)據(jù)S。
      文檔編號G06F7/72GK103221917SQ201180047639
      公開日2013年7月24日 申請日期2011年9月29日 優(yōu)先權(quán)日2010年9月29日
      發(fā)明者R·貝文 申請人:納格拉影像股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1