專利名稱:加密運(yùn)算中模冪的保護(hù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件和數(shù)據(jù)加密。特別是,本發(fā)明涉及一種用于隱藏模冪運(yùn)算中間結(jié)果的方法。
背景技術(shù):
直到不久前,密碼學(xué)還僅僅關(guān)注于對(duì)于不利環(huán)境中消息傳遞的保護(hù)。在傳統(tǒng)方案中(又名黑盒模型),攻擊者僅可以訪問(wèn)解密裝置的輸入。隨著付費(fèi)電視、受DRM所保護(hù)的數(shù)字內(nèi)容(智能電話、個(gè)人電腦或CD/DVD中的電影,音樂(lè))的出現(xiàn),當(dāng)前攻擊者實(shí)際可以訪問(wèn)解密裝置及其輸出,這意味著他不僅可以被動(dòng)研究加密裝置的狀態(tài)和中間值,而且還可以主動(dòng)地干預(yù)其計(jì)算。具體而言,1996年出現(xiàn)了故障分析的概念:當(dāng)提交解密裝置給異常狀況(輸入錯(cuò)誤、溫度異常、強(qiáng)電磁輻射……)時(shí),解密算法能夠輸出故障明文,其給出了有關(guān)解密裝置中所使用的密鑰的信息。參見(jià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ò)程中所輸出的物理信號(hào)(處理的定時(shí)、功率消耗、電磁輻射……)可能泄漏有關(guān)解密算法的內(nèi)部變量的信息(側(cè)信道信息)。從該內(nèi)部變量和統(tǒng)計(jì)分析,攻擊者可以檢索到有關(guān)解密裝置中所使用的密鑰的信息。參見(jiàn) Paul C.Kocher 在 1996 年的 proceedings of Eurocrypt 中的 “Timing Attackson Implementations of Diffie-HelIman, RSA, DSS and Other Systems,,。故障分析與側(cè)信道分析都屬于灰盒模型:攻擊者所擁有的關(guān)于實(shí)現(xiàn)加密算法及其內(nèi)部數(shù)據(jù)的知識(shí)是有限的。這些攻擊被成功地用于檢索付費(fèi)電視系統(tǒng)中所使用的智能卡的密鑰和源代碼。對(duì)于在個(gè)人計(jì)算機(jī)上或⑶/DVD上的音樂(lè)和電影,由于使用軟件混淆(DRM)比用分發(fā)智能卡來(lái)進(jìn)行保護(hù)成本低很多,所有使用軟件混淆來(lái)保護(hù)內(nèi)容密鑰。在這種情況下,由于攻擊者完全可以訪問(wèn)軟件內(nèi)部,因此它比灰盒模型的環(huán)境更加糟糕。這就是所謂的白盒模型。白盒密碼學(xué)的概念出現(xiàn)于2002年。白盒密碼學(xué)是一種混淆技術(shù),旨在實(shí)現(xiàn)密碼原語(yǔ)的方式為:即便對(duì)手完全可以訪問(wèn)實(shí)現(xiàn)及其執(zhí)行平臺(tái),他也無(wú)法提取密鑰信息[I]。正如BrechtWyseur在關(guān)于白盒密碼學(xué)的論文中所描述的,在白盒模型中能有效抵御攻擊的對(duì)策在灰盒模型中也能有效抵御攻擊。用于密鑰交換、加密或簽名的一些重要加密協(xié)議(Diffie_Hellman、EIGamal、RSA、DSS……)中涉及模冪運(yùn)算。本領(lǐng)域中公知的是:進(jìn)行模冪運(yùn)算的最基本的方法就是所謂的“平方乘(square-and-multiply) ”算法[2],其包括逐位處理指數(shù),并根據(jù)其數(shù)值進(jìn)行乘法。下面,我們來(lái)回顧一些有關(guān)模冪運(yùn)算的概念以及一些現(xiàn)有技術(shù)算法。 冪運(yùn)算是一種數(shù)學(xué)運(yùn)算,寫(xiě)為b%其涉及兩個(gè)數(shù)字,基數(shù)b和指數(shù)e。當(dāng)e是一個(gè)正整數(shù)時(shí),冪運(yùn)算相當(dāng)于重復(fù)相乘;換言之,b的e因子次乘積:bX……Xb
模冪運(yùn)算是一種在求冪運(yùn)算之后再取模的運(yùn)算。進(jìn)行“模冪”運(yùn)算是指一個(gè)正整數(shù)b (稱為基數(shù))升高e次方(e稱為指數(shù)),用其除以一個(gè)正整數(shù)m (稱為模數(shù)),再計(jì)算其余數(shù)。換句話說(shuō),設(shè)置問(wèn)題形式,其中給出基數(shù)b、指數(shù)e和模數(shù)m,那么人們期望如此計(jì)算 C:C = bemod m 基本二進(jìn)制模冪(平方乘)輸入:η位整數(shù)g, t+Ι位整數(shù)e,即e = (etey ep。),其中Gi是e的第i個(gè)最低有效位,以及η位模數(shù)m。輸出:gemodmUA=L2、對(duì)于i從t向下到O,進(jìn)行如下運(yùn)算:2.1A = AXAmod m.
2.2 如果 ei = I,則 A = AX g mod m3、返回(A) 通過(guò)對(duì)一組k位指數(shù)進(jìn)行分析,該二進(jìn)制冪運(yùn)算能夠大幅加速。這種方法也被稱為窗口法,其中窗口尺寸為k。 使用窗口法的模冪運(yùn)算輸入:n位的g, (t+1) Xb位的e,即e = (etety一盧丄,其中對(duì)于一些k > l,b =2k,以及η位模數(shù)m輸出:gemodm1.預(yù)計(jì)算1.1 G0 = I1.2 對(duì)于 i 從 I 到(2k_l),計(jì)算=Gi = Gi^1Xg,(由此,Gi = g1)2.A = 1.
3.對(duì)于i從t向下到0,進(jìn)行如下運(yùn)算:3.1B = A2mod m, A = Bk mod m3.2j = ej, A = AXGj.
4.返回(A)
發(fā)明內(nèi)容
應(yīng)該強(qiáng)調(diào)的是,上述任一模型中攻擊者為了自身的非法用途,其目標(biāo)都是要獲取密鑰。針對(duì)模冪運(yùn)算,如果使用混淆技術(shù)對(duì)指數(shù)進(jìn)行了適當(dāng)?shù)谋Wo(hù),那么攻擊者就會(huì)嘗試通過(guò)監(jiān)測(cè)模冪運(yùn)算的中間結(jié)果來(lái)獲取有關(guān)密鑰的信息。事實(shí)上本領(lǐng)域技術(shù)人員會(huì)注意到,在基本平方乘方法的示例中,攻擊者通過(guò)簡(jiǎn)單觀測(cè)求冪算法的執(zhí)行,并測(cè)量計(jì)算中所涉及每一步驟的時(shí)間(或者所消耗的功率),就能夠輕易獲取密鑰值(指數(shù))。窗口法也傾向于使用一些先進(jìn)的側(cè)信道攻擊技術(shù),諸如[3]中所述的差分功率分析(DPA)。用于混淆加密計(jì)算的現(xiàn)有技術(shù)包括在[4]中所提出的方法。與[4]中解決方案相比,本發(fā)明的優(yōu)點(diǎn)在于:在主 循環(huán)中除了對(duì)預(yù)計(jì)算的窗口因子進(jìn)行“隱蔽(blinding)”之夕卜,它不再需要額外的計(jì)算,因此基于窗口的冪運(yùn)算的執(zhí)行速度會(huì)顯著提升。雖然現(xiàn)有技術(shù)中提出了一些其它混淆和保護(hù)模冪運(yùn)算的方法,諸如,例如[5],但他們都是對(duì)加密的消息本身(C)或者解密指數(shù)(d)進(jìn)行掩蔽(隱蔽)處理。本發(fā)明提出一種新的方法,其中對(duì)預(yù)先計(jì)算的窗口值施以掩蔽,這使得攻擊者更難以憑借一次故障攻擊或軟件修改來(lái)繞過(guò)該隱蔽。本領(lǐng)域技術(shù)人員可以理解,通過(guò)對(duì)一個(gè)變量或數(shù)值的隨機(jī)化的操作進(jìn)行“隱蔽(blinding) ”或“掩蔽(masking) ”,使得所述變量或數(shù)值頻繁改變,由此攻擊者就無(wú)法使用側(cè)信道攻擊法來(lái)進(jìn)行識(shí)別和研究。要解決的問(wèn)題本發(fā)明的一個(gè)目的是提供一種隱蔽模冪的中間結(jié)果的方法,對(duì)于先進(jìn)的側(cè)信道分析技術(shù)來(lái)說(shuō),該方法比現(xiàn)有技術(shù)中描述的隱蔽方法更難繞過(guò),現(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ā)明提出了一種 用于保護(hù)模冪運(yùn)算的方法,基于窗口尺寸為k位的窗口法,對(duì)于η位輸入數(shù)據(jù)X,使用2k預(yù)計(jì)算變量(對(duì)于i = O到2k-l,Yi = XiHiod N),得到η位輸出數(shù)據(jù)S,S = Xd mod N,其中,d是尺寸為m位的指數(shù),N是η位的模數(shù),所述方法包括以下步驟: 通過(guò)隱蔽值BI對(duì)預(yù)計(jì)算變量進(jìn)行隱蔽,B1是與所述模數(shù)的尺寸相同(η位)但小于所述模數(shù)的偽隨機(jī)變量(對(duì)于i = O到2k-l, Yi = YiXB1Hiod N), 按照窗口法執(zhí)行模冪運(yùn)算,該窗口法基于將指數(shù)d分割成表示窗口的尺寸最多為k位的多個(gè)塊,利用所述隱蔽的預(yù)計(jì)算變量,以獲得中間結(jié)果(A), 通過(guò)解除隱蔽值C1 = (Bjr1mOd N對(duì)所述中間結(jié)果進(jìn)行解除隱蔽,以得到輸出數(shù)據(jù)S,其中g(shù)等于k位編碼的值“I”串聯(lián)m/k次。
附圖顯示了能夠執(zhí)行所要求保護(hù)方法的各個(gè)步驟的處理單元,借助該附圖,能夠更好地理解本發(fā)明。
具體實(shí)施例方式本發(fā)明描述了一種模冪運(yùn)算的保護(hù)方法,其在一個(gè)開(kāi)放軟件環(huán)境中使用所謂的窗口法。通過(guò)開(kāi)放軟件環(huán)境,我們假設(shè)在所述PC系統(tǒng)上執(zhí)行并由攻擊者可訪問(wèn)的二進(jìn)制代碼。如圖1所示,可以在專門(mén)執(zhí)行加密操作的處理單元中實(shí)現(xiàn)本發(fā)明。該單元至少包括:能夠執(zhí)行軟件核的處理器CPU ;以及存儲(chǔ)器MEM1,用于存儲(chǔ)該代碼并為存儲(chǔ)臨時(shí)數(shù)據(jù)MEM2提供必要的空間。提供接口 INT,以便接收被加密(或解密)以存儲(chǔ)于臨時(shí)存儲(chǔ)器MEM2的用于加密處理的消息。該接口 INT還以相同的方式向接收裝置的其它組件發(fā)送解密(或加密)的消息。根據(jù)優(yōu)選的實(shí)施方案,我們考慮使用窗口法來(lái)執(zhí)行所述模冪運(yùn)算的PC系統(tǒng)或處理單元,所述窗口法在所述軟件環(huán)境中實(shí)現(xiàn)。設(shè)X是η位輸入數(shù)據(jù),K是包括m位指數(shù)d和η位模數(shù)N的密鑰。在所述PC系統(tǒng)中執(zhí)行的模冪運(yùn)算包括兩個(gè)步驟:預(yù)計(jì)算(pre-calculation)和求幕運(yùn)算(exponentiation)。在預(yù)計(jì)算步驟中,值 Yi = X1 mod N 是預(yù)先計(jì)算的。本領(lǐng)域技術(shù)人員會(huì)注意到,在窗口法中,i的變化介于O至2k-l之間,k表示施加到指數(shù)d的窗口尺寸。在求冪運(yùn)算的步驟中使用所述預(yù)先計(jì)算的值I。下面使用偽代碼來(lái)介紹本發(fā)明的實(shí)施例。需著重注意的是,下面所描述的步驟僅僅是為了介紹本發(fā)明的優(yōu)選實(shí)施例,并且在任何情況下都不具有限制意義。使用η位寄存器Α,以值I進(jìn)行初始化,用于臨時(shí)存儲(chǔ)求冪算法的中間結(jié)果,使用η位寄存器C,以值I進(jìn)行初始化,用于臨時(shí)存儲(chǔ)最后使用的隨機(jī)值,使用log (m)位寄存器V,以值M/Κ進(jìn)行初始化,-對(duì)于j= m/k到I,從密鑰d的第j X K位開(kāi)始截取k位,根據(jù)關(guān)于j的函數(shù)Π,確定隱蔽條件(0/l)b,如果設(shè)定了隱蔽條件,則執(zhí)行:-更新η位偽隨機(jī)變量B,-對(duì)于i = O 到 2k-l, Yi 替換為 Yi X (B mod N),-對(duì)于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,則二進(jìn)制f2 (r =4) = “01010101”,十六進(jìn)制 f2 (4) =0X55),-加載具有值B的寄存器C,-加載具有值j的寄存器V數(shù)值A(chǔ)替換為(Ak mod NXYdj mod N),dj表示從最低有效位向最高有效位計(jì)數(shù)時(shí),指數(shù)d的k位中的第j位字,且K = 2k。本技術(shù)領(lǐng)域技術(shù)人員會(huì)理解該隱蔽方法的優(yōu)點(diǎn)在于,該隱蔽實(shí)際上涉及多次計(jì)算(與窗口尺寸一樣多次的計(jì)算),所以對(duì)于側(cè)信道攻擊者來(lái)說(shuō),想要通過(guò)一次故障攻擊或軟件修改來(lái)繞過(guò)該隱蔽會(huì)變得更加困難。相對(duì)于已知現(xiàn)有技術(shù)的另一個(gè)優(yōu)點(diǎn)是算法內(nèi)部的隱蔽是可更新的,這也使得使用故障攻擊或者通過(guò)軟件修改方式來(lái)繞過(guò)該隱蔽變得更加困難。如權(quán)利要求1所述的方法,其中,在幾次窗口處理之后隱蔽值B1被更新,而對(duì)中間結(jié)果的解除隱蔽是靠乘以變量C1來(lái)完成的,C1取決于窗口的尺寸(k)、所處理窗口的數(shù)量(w)、模數(shù)N和初始隱蔽值B1 % = (B11T1 mod N,其中h等于對(duì)k位編碼的值“I”進(jìn)行w次串聯(lián)。另一個(gè)優(yōu)點(diǎn)是,攻擊者無(wú)法找到具體的函數(shù)T,因此提交T (X)作為模冪運(yùn)算的輸入將使得A中存儲(chǔ)的中間結(jié)果獨(dú)立于隱蔽變量B,即使B是已知常數(shù)。如果解除隱蔽的步驟不是預(yù)先計(jì)算好的,那么與傳統(tǒng)的求冪算法相比,該對(duì)策的開(kāi)銷是使用與輸入指數(shù)d相同長(zhǎng)度的求冪運(yùn)算,以及與隱蔽更新的數(shù)量一樣多次的反演運(yùn)算。
根據(jù)另一特定實(shí)施例,當(dāng)在所述PC系統(tǒng)上執(zhí)行時(shí),可以在求冪算法剛開(kāi)始時(shí)隱蔽一次預(yù)計(jì)算變量,然后再在求冪運(yùn)算結(jié)束時(shí)移除該隱蔽,以此來(lái)簡(jiǎn)化現(xiàn)存速度有限時(shí)所要求保護(hù)的方法。于是,此對(duì)策的開(kāi)銷是一次使用與輸入指數(shù)d相同長(zhǎng)度的冪運(yùn)算以及僅僅一次的反演運(yùn)算。本領(lǐng)域的技術(shù)人員明白,模冪方法通常用于RSA密碼系統(tǒng)環(huán)境中。根據(jù)特定的實(shí)施例,當(dāng)模冪算法被用于具有私有密鑰d(其可能在位數(shù)尺寸方面相對(duì)較大)的RSA計(jì)算時(shí),參照以下步驟,可以提升所要求保護(hù)方法的速度: 預(yù)先計(jì)算e’ = g_1mod(p-l) X (q_l),其中g(shù)等于k位編碼的值“I”串聯(lián)m/k次, 通過(guò)同一個(gè)隱蔽值B2來(lái)對(duì)預(yù)計(jì)算變量(Yi = XiHiod N)進(jìn)行隱蔽,由此B2 =B1^mod N, B1是偽隨機(jī)變量,其與模數(shù)尺寸相同但小于模數(shù)(對(duì)于i = O到2k_l, Yi =YiXB2Hiod N), 使用已隱蔽的預(yù)計(jì)算變量來(lái)執(zhí)行模冪運(yùn)算,以獲得中間結(jié)果(A), 通過(guò)B1的反演運(yùn)算來(lái)對(duì)該中間結(jié)果解除隱蔽。通過(guò)這種方式,隱蔽開(kāi)銷被降低到一次小指數(shù)(冪指數(shù)為e’)的求冪運(yùn)算,以及一次反演。根據(jù)優(yōu)選的實(shí)施例,偽隨機(jī)變量B可以使用不同的方法進(jìn)行更新。此外,主方法的兩次執(zhí)行之間所使用的B值也 可以是不同的。下面根據(jù)優(yōu)選實(shí)施例,介紹了這種實(shí)施方式。一種提升速度的方法是建立新的隱蔽與在先隱蔽之間的聯(lián)系。在w個(gè)窗口處理之后更新隱蔽值B,在此情形下,冪運(yùn)算期間所使用的隱蔽值是子塊數(shù)組B= (B1, B2, B3,…Bn),后一子塊Bi+1是前一子塊Bi的平方值按N取模,每個(gè)子塊Bi都是一個(gè)與模數(shù)位數(shù)相同但小于模數(shù)的偽隨機(jī)變量,冪運(yùn)算期間所使用的解除隱蔽值是子塊數(shù)組C= (C17C27C3,…Cn),后一子塊Ci+1是前一子塊Ci的平方值,Ci= (BigFmod N,其中,g等于該k位編碼的值“I”串聯(lián)w次,但是只有C1是通過(guò)反演運(yùn)算得出,而其它的Ci均為其前一的平方。雖然B是在主算法內(nèi)部被更新,但是在主方法的兩次執(zhí)行之間可以使用相同的B值:因此能夠預(yù)先計(jì)算B和Cg的不同值,來(lái)消除冪運(yùn)算和反演運(yùn)算的開(kāi)銷。在優(yōu)選實(shí)施例中的特定情形下,該方法包括預(yù)先計(jì)算并存儲(chǔ)Cg值的步驟,其中隱蔽值B1提取于全部或部分模冪代碼。參考文獻(xiàn):[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.一種由處理單元在加密運(yùn)算中所執(zhí)行的用于保護(hù)模冪運(yùn)算的方法,所述模冪運(yùn)算基于窗口尺寸為k位的窗口法,對(duì)于η位輸入數(shù)據(jù)X,使用2k預(yù)計(jì)算變量(對(duì)于i = O到2k-l,Yi = X1Iiiod N),得到η位輸出數(shù)據(jù)S,S = Xd mod N,其中,d是尺寸為m位的指數(shù),N是η位的模數(shù),所述方法包括以下步驟: 通過(guò)隱蔽值B1對(duì)預(yù)計(jì)算變量進(jìn)行隱蔽,B1是與所述模數(shù)的尺寸相同(η位)但小于所述模數(shù)的偽隨機(jī)變量(對(duì)于i = O到2k-l, Yi = YiXB1Hiod N), 按照窗口法執(zhí)行模冪運(yùn)算,該窗口法基于將指數(shù)d分割成表示窗口的尺寸最多為k位的多個(gè)塊,利用所述隱蔽的預(yù)計(jì)算變量,以獲得中間結(jié)果(A), 通過(guò)解除隱蔽值C1= (B1T1Hiod N對(duì)所述中間結(jié)果進(jìn)行解除隱蔽,以得到輸出數(shù)據(jù)S,其中g(shù)等于k位編碼的值“I”串聯(lián)m/k次。
2.根據(jù)權(quán)利要求1所述的方法,其中所述窗口法基于將指數(shù)d分割成表示窗口的最多為k位的多個(gè)塊,隱蔽值B1在處理一個(gè)或多個(gè)所述塊之后被更新,以及對(duì)于中間結(jié)果的解除隱蔽是通過(guò)乘以變量C1來(lái)完成,C1取塊于窗口的尺寸(k)、所處理過(guò)的窗口的數(shù)目(W)、模數(shù)N和初始隱蔽值B1 =C1 = (B111)-1Hiod N,其中h等于k位編碼的值“ I”串聯(lián)w次。
3.根據(jù)權(quán)利要求1所述的方法,其中模數(shù)N是兩個(gè)n/2位的素?cái)?shù)p、q的乘積,所述方法包括以下步驟:預(yù)計(jì)算e’ = g_1mod(p-l) X (q_l),其中g(shù)等于k位編碼的值“I”串聯(lián)m/k次,通過(guò)相同隱蔽值B2對(duì)預(yù)計(jì)算變量(Yi = XiHiod N)進(jìn)行隱蔽,使得B2 = B,mod N7B1是與所述模數(shù)的尺寸相同但小于所述模數(shù)的偽隨機(jī)變量(對(duì)于i = O到Zk-LYi = YiXB2HiodN), 使用被隱蔽的預(yù)計(jì)算變量執(zhí)行模冪運(yùn)算,以獲得中間結(jié)果(A), 通過(guò)B2的反演運(yùn)算對(duì)所述中間結(jié)果解除隱蔽。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其中隱蔽值B1是動(dòng)態(tài)隨機(jī)值,B1在每次使用被隱蔽的預(yù)計(jì)算變量執(zhí)行模冪運(yùn)算的步驟時(shí)被更新。
5.根據(jù)權(quán)利要求2所述的方法,其中隱蔽值在每次k位窗口的處理之后被更新,在冪運(yùn)算中所使用的隱蔽值是子塊數(shù)組B = (B1, B2, B3,…匕),后一子塊Bi+1是前一子塊Bi的平方值對(duì)N取模,每個(gè)子塊Bi都是與所述模數(shù)的尺寸相同但小于所述模數(shù)的偽隨機(jī)變量,冪運(yùn)算中所使用的解除隱蔽值是子塊數(shù)組C = (C1, C2, (V..Cn),后一子塊Ci+1是前一子塊Ci的平方值,Ci= (B^^mod N,其中h等于k位編碼的值“I”串聯(lián)w次,但是僅C1使用反演運(yùn)算,而其它Ci均為其前一子塊的平方。
6.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,其中隱蔽值B1是靜態(tài)偽隨機(jī)值,并且對(duì)于權(quán)利要求1、3或5中所述的方法的多次執(zhí)行,根據(jù)所述靜態(tài)偽隨機(jī)值來(lái)對(duì)所述解除隱蔽值進(jìn)行一次預(yù)計(jì)算。
7.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,包括預(yù)先計(jì)算和存儲(chǔ)值C1的步驟,其中隱蔽值B1提取于全部或部分模冪代碼。
全文摘要
本發(fā)明提出了一種執(zhí)行掩蔽的模冪運(yùn)算的方法,基于窗口尺寸為k位的窗口法,對(duì)于n位輸入數(shù)據(jù)X,使用2k預(yù)計(jì)算變量(對(duì)于i=0到2k-1,Yi=Xi mod N),得到n位輸出數(shù)據(jù)S,S=Xd mod N,其中,d是尺寸為m位的指數(shù),N是n位的模數(shù),所述方法包括以下步驟通過(guò)隱蔽值B1對(duì)預(yù)計(jì)算變量進(jìn)行隱蔽,B1是與所述模數(shù)的尺寸相同(n位)但小于所述模數(shù)的偽隨機(jī)變量(對(duì)于i=0到2k-1,Yi=Y(jié)i×B1mod N),利用所述隱蔽的預(yù)計(jì)算變量執(zhí)行模冪運(yùn)算以獲得中間結(jié)果(A),通過(guò)解除隱蔽值C1=(B1g)-1mod N對(duì)所述中間結(jié)果進(jìn)行解除隱蔽,以得到輸出數(shù)據(jù)S。
文檔編號(hào)G06F7/72GK103221917SQ201180047639
公開(kāi)日2013年7月24日 申請(qǐng)日期2011年9月29日 優(yōu)先權(quán)日2010年9月29日
發(fā)明者R·貝文 申請(qǐng)人:納格拉影像股份有限公司