一種攻擊密鑰的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種密鑰攻擊方法和裝置,屬安全【技術(shù)領(lǐng)域】。針對RSA_CRT變形算法中隨機(jī)數(shù)引起的功耗曲線波形不規(guī)律的情況,根據(jù)隨機(jī)數(shù)進(jìn)制以及密鑰算法中素數(shù)P和Q的取值特性,采用概率分析統(tǒng)計(jì)出攻擊明文在由P和Q確定的不同取值區(qū)間時,功耗曲線中的特性波形及特性波形出現(xiàn)的概率。攻擊時,通過分析某一攻擊明文對應(yīng)的特性波形及特性波形出現(xiàn)的概率得到攻擊明文的取值區(qū)間,再逐步增大或縮小攻擊明文,直至特性波形發(fā)生變化,從而得到邊界的P或Q值,完成攻擊。利用本發(fā)明提供的密鑰攻擊方法和裝置可以測試引入了隨機(jī)數(shù)的RSA_CRT變形算法的安全性,彌補(bǔ)傳統(tǒng)攻擊方法和裝置無法充分測試密鑰安全性的不足。
【專利說明】一種攻擊密鑰的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及安全【技術(shù)領(lǐng)域】,特別是涉及一種攻擊密鑰的方法和裝置。
【背景技術(shù)】
[0002]RSA (名稱來自三位開發(fā)者 Ron Rivest、Adi Shamir 和 Leonard Adleman 名字的首字母組合)是信息安全領(lǐng)域中比較主流的公鑰密碼技術(shù)?;赗SA實(shí)現(xiàn)的各種Key及智能卡等已經(jīng)廣泛應(yīng)用于金融、通信、社保、交通等各個領(lǐng)域。為了保障Key及智能卡等的安全性,需要研究各種攻擊方法對這些產(chǎn)品的威脅程度。目前比較流行的攻擊方法包括側(cè)信道攻擊(Side Channel Attack, SCA)和錯誤注入攻擊(Fault Inject1n Attack,FIA),其中SCA攻擊中的SPA (SimPle Power Attack/Analysis,簡單能量攻擊/分析)和DPA (Differential Power Attack/Analysis,差分能量攻擊/分析)攻擊最為普遍。
[0003]傳統(tǒng)的SPA攻擊是根據(jù)加密/解密硬件功耗曲線的特征及攻擊者的經(jīng)驗(yàn)直觀地分析出加密/解密執(zhí)行的指令或操作,從而破解指令執(zhí)行和某些數(shù)據(jù)有關(guān)的算法。例如,現(xiàn)有的 RSA_CRT (Chinese remainder theorem,中國剩余定理)算法為:
[0004]選取P、Q兩個長度接近的大素數(shù),N = P*Q,取歐拉數(shù)Φ(η) = (P_l) * (Q-1),其中(η)表示比N小的素數(shù)的個數(shù),任取2〈 = e〈 = (η),且(e,(n)) = I, e為加密密鑰,計(jì)算d,使e*d = I (mod (η)),稱d為e對模(η)的逆,其中d為解密秘鑰,
[0005]選取明文M, 則密文C = M~e mod N,
[0006]MP = C mod P, MQ = C mod Q,
[0007]sq = MP'dp, sq = MQ'dq,其中 dp = d (mod (P-1)), dq = d (mod (Q-1)), dp 和 dq 稱為私鑰(或秘密)CRT指數(shù),
[0008]CRT (sp, sq) = (((sp_sq) *qinv) mod P)*Q+sq,
[0009]其中,qinv為 CRT 系數(shù),Q*qinv = I (mod P)。
[0010]該算法中,計(jì)算(sp-sq) *qinv mod P時,當(dāng)sp> = sq時,只進(jìn)行一次減法操作,當(dāng)sp〈sq時,進(jìn)行一次減法和一次加模數(shù)的操作,兩次操作的明顯差異會導(dǎo)致芯片的功耗曲線中出現(xiàn)規(guī)律且明顯的波形差異,成為SPA可攻擊的漏洞。
[0011]但當(dāng)對RSA算法進(jìn)行變形,例如在RSA_CRT算法中引入隨機(jī)數(shù)(以trng表示),用(((sp+trng) - (sq+trng)) *qinv) mod P 5? ((sp+trng-sq-trng)) *qinv)mod P i十算替換(sp-sq) *qinv mod P計(jì)算后,由于隨機(jī)數(shù)的不確定性,使得計(jì)算操作呈現(xiàn)不確定性,功耗曲線將呈現(xiàn)無規(guī)律的狀態(tài),傳統(tǒng)的SPA攻擊方法將無法發(fā)揮作用??梢姡瑐鹘y(tǒng)的攻擊密鑰的方法存在缺陷和不足,無法充分測試各種Key、智能卡等嵌入式產(chǎn)品的芯片或其操作系統(tǒng)的安全性。
【發(fā)明內(nèi)容】
[0012]本發(fā)明實(shí)施例中提供了一種攻擊密鑰的方法及裝置,以解決現(xiàn)有方法中無法充分測試密鑰安全性的問題。
[0013]為了解決上述技術(shù)問題,在第一方面,本發(fā)明實(shí)施例公開了一種攻擊密鑰的方法,包括以下步驟:
[0014]A、計(jì)算被攻擊密鑰的RSA中國剩余定理變形算法中,攻擊明文M在不同取值區(qū)間時隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率,分析并記錄功耗曲線中與變形部分的運(yùn)算操作對應(yīng)的特性波形,所述特性波形在功耗曲線采樣組中出現(xiàn)的概率根據(jù)所述引起變形部分發(fā)生進(jìn)位操作的概率確定,所述功耗曲線為被攻擊密鑰進(jìn)行密碼運(yùn)算的功耗曲線,所述功耗曲線采樣組由有限次所述密碼運(yùn)算的功耗曲線組成,
[0015]所述取值區(qū)間由P和Q確定,包括:M小于P和Q的第一區(qū)間,M介于P和Q之間的第二區(qū)間,M大于P和Q的第三區(qū)間,其中,P和Q為RSA合數(shù)模N的兩個素數(shù)因子,M與P和Q等長;
[0016]B、選取攻擊明文M,使用公鑰將M加密為密文,采用被攻擊密鑰對所述密文進(jìn)行有限次密碼運(yùn)算,得到功耗曲線采樣組,根據(jù)所述功耗曲線采樣組中的所述特性波形和所述特性波形出現(xiàn)的概率判斷M的取值區(qū)間;
[0017]C、根據(jù)判斷得到的所述M的取值區(qū)間,逐步增大或減小M值,并得到每個M值對應(yīng)的功耗曲線采樣組,直至所述功耗曲線采樣組中的特性波形發(fā)生變化,判斷最后得到的M值是否在所述M的取值區(qū)間內(nèi)且為素數(shù),如果得到的M值是否在所述M的取值區(qū)間內(nèi)且為素數(shù),則攻擊成功,否則,攻擊失敗,
[0018]其中,所述特性波形發(fā)生變化為所述功耗曲線采樣組中出現(xiàn)M在其他取值區(qū)間時變形操作對應(yīng)的特性波形,所述密碼運(yùn)算為標(biāo)準(zhǔn)RSA中國剩余定理變形算法解密運(yùn)算或簽名運(yùn)算。
[0019]其中,所述隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率根據(jù)所述隨機(jī)數(shù)的進(jìn)制確定。
[0020]可選的,所述的密鑰攻擊方法中,所述有限次密碼運(yùn)算為1000次密碼運(yùn)算。
[0021]可選的,所述的密鑰攻擊方法中,所述步驟B包括:
[0022]選取第一攻擊明文M1,設(shè)置Ml的所有比特位為0,得到Ml對應(yīng)的功耗曲線采樣組
510;
[0023]選取第二攻擊明文M2,設(shè)置M2的所有比特位為1,得到M2對應(yīng)的功耗曲線采樣組
511;
[0024]選取第一攻擊明文M3,設(shè)置M3從高往低的第二個比特位為I,其余比特位為O,得到M3對應(yīng)的功耗曲線采樣組S20 ;
[0025]選取第二攻擊明文M2,設(shè)置M4從高往低的第二個比特位為0,其余比特位為1,得到M4對應(yīng)的功耗曲線采樣組S21 ;對比SlO和S11,以及對比S20和S21,得到所述特性波形和所述特性波形出現(xiàn)的概率,根據(jù)所述特性波形和所述特性波形出現(xiàn)的概率判斷M3或M4的取值區(qū)間,以所述M3或M4的取值區(qū)間為所述M的取值區(qū)間。
[0026]可選的,所述的密鑰攻擊方法中,所述步驟C包括:
[0027]當(dāng)M在第一區(qū)間或第二區(qū)間時,設(shè)置M的所有比特位為O后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為1,并得到當(dāng)前M值對應(yīng)的功耗曲線采樣組,如所述功耗曲線采樣組中的特性波形與所述步驟B中的特性波形相同,則保持第i比特位為I,否則,將第i比特位設(shè)為0,判斷最后得到的M值是否在所述M的取值空間內(nèi)且為素數(shù),若最后得到的M值在所述M的取值空間內(nèi)且為素數(shù),則攻擊成功,否則,攻擊失??;
[0028]當(dāng)M在第三區(qū)間時,設(shè)置M的所有比特位為I后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為0,并得到當(dāng)前M值對應(yīng)的功耗曲線采樣組,如所述功耗曲線采樣組中的特性波形與所述步驟B中的特性波形相同,則保持第i比特位為O,否則,將第i比特位設(shè)為1,判斷最后得到的M值是否在所述M的取值空間內(nèi)且為素數(shù),若最后得到的M值在所述M的取值空間內(nèi)且為素數(shù),則攻擊成功,否則,攻擊失敗,
[0029]其中,所述當(dāng)前M值為當(dāng)前所述第i比特位為I或O時對應(yīng)的M值,i為整數(shù),t為M的長度。
[0030]在第二方面,本發(fā)明實(shí)施例公開了一種攻擊密鑰的裝置,包括:
[0031]特性波形分析單元,用于計(jì)算被攻擊密鑰的RSA中國剩余定理變形算法中,攻擊明文M在不同取值區(qū)間時隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率,以及分析并記錄功耗曲線中與變形部分的運(yùn)算操作對應(yīng)的特性波形,所述特性波形在功耗曲線采樣組中出現(xiàn)的概率根據(jù)所述引起變形部分發(fā)生進(jìn)位操作的概率確定,所述功耗曲線為被攻擊密鑰進(jìn)行密碼運(yùn)算的功耗曲線,所述功耗曲線采樣組由有限次所述密碼運(yùn)算的功耗曲線組成
[0032]所述取值區(qū)間由P和Q確定,包括:M小于P和Q的第一區(qū)間,M介于P和Q之間的第二區(qū)間,M大于P和Q的第三區(qū)間,其中,P和Q為RSA合數(shù)模N的兩個素數(shù)因子,M與P和Q等長;
[0033]功耗曲線獲取單元,用于獲取被攻擊密鑰對密文進(jìn)行密碼運(yùn)算的功耗曲線,以及獲取被攻擊密鑰對密文進(jìn)行有限次密碼運(yùn)算的功耗曲線組;
[0034]區(qū)間判斷單元,用于選取攻擊明文M,使用公鑰將M加密為密文,根據(jù)M對應(yīng)的功耗曲線采樣組中的特性波形和所述特性波形出現(xiàn)的概率判斷M的取值區(qū)間;
[0035]攻擊單元,根據(jù)所述區(qū)間判斷單元得到的所述M的取值區(qū)間,逐步增大或減小M值,直至M值對應(yīng)的功耗曲線采樣組中的特性波形發(fā)生變化,判斷最后得到的M值是否在所述M的取值區(qū)間內(nèi)且為素數(shù),若是,則攻擊成功,否則,攻擊失敗,
[0036]其中,所述特性波形發(fā)生變化為所述功耗曲線采樣組中出現(xiàn)M在其他取值區(qū)間時變形操作對應(yīng)的特性波形,所述密碼運(yùn)算為標(biāo)準(zhǔn)RSA中國剩余定理變形算法解密運(yùn)算或簽名運(yùn)算。
[0037]可選的,所述的密鑰攻擊裝置中,所述有限次密碼運(yùn)算為1000次密碼運(yùn)算。
[0038]可選的,所述的密鑰攻擊裝置中,所述特性波形分析單元包括:
[0039]進(jìn)位概率計(jì)算子單元,用于計(jì)算被攻擊密鑰的RSA中國剩余定理變形算法中,攻擊明文M在不同取值區(qū)間時隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率;
[0040]特性波形記錄子單元,用于分析并記錄M在不同取值區(qū)間時功耗曲線中與變形部分的運(yùn)算操作對應(yīng)的特性波形,所述特性波形在功耗曲線采樣組中出現(xiàn)的概率根據(jù)所述引起變形部分發(fā)生進(jìn)位操作的概率確定。
[0041]可選的,所述的密鑰攻擊裝置中,所述區(qū)間判斷單元包括:
[0042]第一功耗曲線記錄單元,用于選取第一攻擊明文Ml和第二攻擊明文M2,設(shè)置Ml的所有比特位為0,以及設(shè)置M2的所有比特位為1,使用公鑰將Ml和M2加密為密文,分別記錄Ml和M2對應(yīng)的功耗曲線采樣組SlO和Sll ;
[0043]第二功耗曲線記錄單元,用于選取第二攻擊明文M3和第二攻擊明文M4,設(shè)置M3從高往低的第二個比特位為1,其余比特位為O,以及設(shè)置M4從高往低的第二個比特位為O,其余比特位為1,使用公鑰將M3和M4加密為密文,分別記錄M3和M4對應(yīng)的功耗曲線采樣組S20 和 S21 ;
[0044]對比單元,用于對比S20和S10,以及對比S21和S11,得到所述特性波形和所述特性波形出現(xiàn)的概率,根據(jù)所述特性波形和所述特性波形出現(xiàn)的概率判斷M3或M4的取值區(qū)間,以所述M3或M4的取值區(qū)間為所述M的取值區(qū)間。
[0045]可選的,所述的密鑰攻擊裝置中,所述攻擊單元包括:
[0046]循環(huán)單元,用于根據(jù)所述區(qū)間判斷單元的結(jié)果,當(dāng)M在第一區(qū)間或第二區(qū)間時,設(shè)置M的所有比特位為O后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為1,或者當(dāng)M在第三區(qū)間時,設(shè)置M的所有比特位為I后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為O ;
[0047]第一判斷單元,用于判斷所述循環(huán)單元中當(dāng)前M值對應(yīng)的功耗曲線采樣組中的特性波形與所述區(qū)間判斷單元中的特性波形是否相同,所述當(dāng)前M值為所述循環(huán)單元中當(dāng)前第i比特位為I或O時對應(yīng)的M值;
[0048]M值記錄單元,用于根據(jù)所述第一判斷單元的結(jié)果設(shè)置第i位比特位的值,保持當(dāng)前第i位比特位的值,否則,對當(dāng)前第i位比特位的值取反;
[0049]第二判斷單元,用于判斷所述循環(huán)單元的循環(huán)結(jié)束后所述M值記錄單元得到的M值是否在所述區(qū)間判斷單元得到的M的取值空間內(nèi)且為素數(shù),若所述M值在所述區(qū)間判斷單元得到的M的取值空間內(nèi)且為素數(shù),則攻擊成功,否則,攻擊失敗,
[0050]其中,i為整數(shù),t為M的長度。
[0051]由以上技術(shù)方案可見,本發(fā)明實(shí)施例提供的密鑰攻擊方法和裝置,針對密鑰變形算法中隨機(jī)數(shù)引起的功耗曲線波形不規(guī)律情況,根據(jù)隨機(jī)數(shù)進(jìn)制和取值的限制以及P、Q大素數(shù)的特性,采用概率分析統(tǒng)計(jì)出攻擊明文在P和Q確定的不同取值區(qū)間時功耗波形的大概率規(guī)律性,得到攻擊明文在不同取值區(qū)間時的特性波形及特性波形出現(xiàn)的概率。攻擊時,通過分析某一攻擊明文的特性波形及特性波形出現(xiàn)的概率得到攻擊明文的取值區(qū)間,然后逐步增大或縮小攻擊明文,不斷逼近區(qū)間邊界值即P或Q值,直至特性波形發(fā)生變化,即區(qū)間跳躍,從而得到邊界的P或Q值,完成攻擊,由P或Q可以得到私鑰的其他參數(shù)。因此利用本發(fā)明提供的密鑰攻擊方法和裝置可以測試引入了隨機(jī)數(shù)的RSA_CRT變形算法的安全性,彌補(bǔ)傳統(tǒng)攻擊方法和裝置不能充分測試密鑰安全性的不足。
【專利附圖】
【附圖說明】
[0052]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0053]圖1為本發(fā)明實(shí)施例提供的一種密鑰攻擊方法的流程示意圖;
[0054]圖2為本發(fā)明實(shí)施例提供的一種密鑰攻擊裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0055]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0056]為更好的對本發(fā)明實(shí)施例所述的方法進(jìn)行介紹,首先,對RSA_CRT變形算法進(jìn)行簡單描述。以現(xiàn)有芯片中1024比特的RSA算法為例,其中,N的長度為1024比特,P和Q為大素數(shù),長度為512比特。為保證P和Q的長度,P和Q的最高兩比特位必須為I。攻擊明文M取值可以分為三個區(qū)間,設(shè)P>Q,則第一區(qū)間為M〈Q〈P、第二區(qū)間為Q〈M〈P、第三區(qū)間為M>P>Q。三個區(qū)間可以分別表示為:[1,Q)(第一區(qū)間)、[Q,P)(第二區(qū)間)和[P, (2~512)-1](第三區(qū)間)。
[0057]RSA_CRT變形算法中,弓丨入隨機(jī)數(shù)trng的變形方式有兩種:
[0058]CRT (sp, sq) = ((((sp+trng) - (sq+trng)) *qinv) mod P)*Q+sq(第一種)和CRT (sp, sq) = (((sp+trng-sq-trng)) *qinv) mod P) *Q+sq (第二種)。
[0059]第一種變形中(((sp+trng)-(sq+trng))*qinv)modP 可以進(jìn)行如下變換:
[0060]由于 sp = (C mod P) 'dp = (((M'e)mod N) mod P) 'dp = (M~ (e*dp) )mod P = MmodP, sq = (C mod Q) 'dq = (((M'e)mod N)mod Q) 'dq = (M~ (e*dq) )mod Q = M mod Q
[0061]因此,(sp+trng) - (sq+trng) = (M mod P+trng) - (M mod Q+trng)。
[0062]針對采用上述RSA_CRT變形算法的密鑰,為了對該密鑰的安全性進(jìn)行測試,第一方面,本發(fā)明實(shí)施例提供了一種密鑰攻擊方法,所述方法包括:
[0063]步驟S1000,分析和計(jì)算M在不同取值區(qū)間時trng引起RSA_CRT變形算法中變形部分發(fā)生進(jìn)位的概率,以及變形操作對應(yīng)的特性波形和所述特性波形出現(xiàn)的概率,所述變形操作為變形部分的運(yùn)算操作。
[0064]首先,分析第一種變形的情況下M在不同取值區(qū)間時trng引起變形操作M modP+trng、M mod Q+trng 和(M mod P+trng) - (M mod Q+trng)發(fā)生進(jìn)位的情況,及變形操作 Mmod P+trng、M mod Q+trng 和(M mod P+trng) - (M mod Q+trng)對應(yīng)的特性波形和所述特性波形出現(xiàn)的概率:
[0065](I)當(dāng) M 在第一區(qū)間時,M mod P+trng 和 M mod Q+trng 相等,由于 M mod P =Mmod Q = M,因此加上隨機(jī)數(shù)trng后,如果trng引起變形操作進(jìn)位,則M mod P+trng和Mmod Q+trng會同時進(jìn)位,如果trng不引起進(jìn)位,則M mod P+trng和M mod Q+trng都不進(jìn)位。是否引起變形操作進(jìn)位取決于隨機(jī)數(shù)trng的大小。
[0066]現(xiàn)有芯片運(yùn)算操作的功耗曲線中,在M mod P+trng、M mod Q+trng和(M modP+trng)-(M mod Q+trng)三段波形上,第三段(M mod P+trng)-(M mod Q+trng)的波形為執(zhí)行一次減法。當(dāng)不發(fā)生進(jìn)位時,對M mod P+trng、M mod Q+trng和(M mod P+trng) - (Μmod Q+trng)執(zhí)行的運(yùn)算操作分別為一次加法、一次加法和一次減法,由于加法和減法的波形相似,因此三段運(yùn)算過程在功耗曲線上呈現(xiàn)三個連續(xù)較短的波形;當(dāng)發(fā)生進(jìn)位時,M modP+trng、M mod Q+trng執(zhí)行的運(yùn)算操作中還包括進(jìn)位操作,因而使M mod P+trng、M modQ+trng運(yùn)算操作的波形變長,整個M mod P+trng、M mod Q+trng和(M mod P+trng)-(M modQ+trng)三段運(yùn)算的過程在功耗曲線上呈現(xiàn)出兩長一短的波形。
[0067]由上可知,當(dāng)M在第一區(qū)間時,RSA_CRT變形算法進(jìn)行密碼運(yùn)算時的功耗曲線(以下簡稱功耗曲線)中,對應(yīng)變形操作的部分僅會出現(xiàn)三個連續(xù)較短的波形和兩長一短的波形兩種情況。所述三個連續(xù)較短的波形和兩長一短的波形即M在第一區(qū)間時變形操作對應(yīng)的特性波形。如果選取一個攻擊明文M,將攻擊明文加密后,采用標(biāo)準(zhǔn)RSA_CRT解密運(yùn)算或簽名運(yùn)算進(jìn)行有限次運(yùn)算,例如1000次運(yùn)算,大量的功耗曲線將顯示在功耗曲線的某一段(即對應(yīng)于 M mod P+trng、M mod Q+trng 和(M mod P+trng) - (M mod Q+trng)的部分)僅出現(xiàn)三個連續(xù)較短的波形和兩長一短的波形兩種情況,則可以判斷該攻擊明文M在第一區(qū)間,即M〈Q。此時按一定規(guī)律調(diào)整M值變大,使M逼近素數(shù)Q的值。得到Q值后,利用N/P獲得第二個素數(shù)P,然后可以利用公鑰e、N計(jì)算出dp、dq、qinV等RSA_CRT算法的所有私鑰元素。
[0068]其中,有限次運(yùn)算采用1000次運(yùn)算,即可以獲得足夠大數(shù)量的功耗曲線組,有利于進(jìn)行概率分析,同時過多的次數(shù)會加重采樣和運(yùn)算的負(fù)擔(dān),選擇1000次是足夠且較經(jīng)濟(jì)的運(yùn)算次數(shù)。
[0069](2)當(dāng)M在第二區(qū)間時,P>M>Q,則M mod P = M>Q。由于Q為大素數(shù),且最高兩比特位為1,因此M的最高兩比特也為I。由于現(xiàn)有芯片采取16進(jìn)制取值的方式,因此trng的最高兩比特位都為O的概率為2/16,相應(yīng)地,M mod P+trng進(jìn)位的概率為1-2/16,即14/16。同時,因?yàn)镸 mod Q = M-Q,所以M mod Q的值較小,M mod Q最高6比特的取值均為0,此時隨機(jī)數(shù)trng最高兩比特位取值為I的概率為2/16,所以M mod Q+trng不進(jìn)位的概率為1-2/16,即14/16。當(dāng)M mod P+trng發(fā)生進(jìn)位時,對應(yīng)的波形較長,而M mod Q+trng不進(jìn)位,對應(yīng)的波形短,由于M mod P+trng和M mod Q+trng的運(yùn)算操作緊連,因而M mod P+trng和M mod Q+trng的運(yùn)算操作在功耗曲線上呈現(xiàn)一長一短的波形,所述一長一短的波形即M在第二區(qū)間的特性波形,且該特性波形出現(xiàn)的概率為14/16*14/16 = 49/64。
[0070]由上可知,當(dāng)M在第二區(qū)間時,RSA_CRT變形算法密碼運(yùn)算的功耗曲線在概率上有49/64的可能性會出現(xiàn)一長一短的波形,即M在第二區(qū)間是變形操作對應(yīng)的特性波形。如果選取一個攻擊明文M,將攻擊明文加密后,采用標(biāo)準(zhǔn)RSA_CRT解密運(yùn)算或簽名運(yùn)算進(jìn)行有限次運(yùn)算,例如1000次運(yùn)算,大量的功耗曲線顯示在功耗曲線的某一段(即對應(yīng)于M modP+trng、M mod Q+trng)有超過2/3的概率出現(xiàn)一長一短的波形,貝U可以判斷該攻擊明文M在第二區(qū)間,即Q〈M〈P。此時按一定規(guī)律調(diào)整M值變大,使M趨近素數(shù)P的值。得到P值后,利用N/Q獲得第二個素數(shù)Q,然后可以利用公鑰e、N計(jì)算出dp、dq、qinV等RSA_CRT算法的所有私鑰元素。
[0071]M在第二區(qū)間時,由于M mod P+trng、M mod Q+trng對應(yīng)的波形已有明顯差異,因此可以不考慮(M mod P+trng)-(M mod Q+trng)對應(yīng)的波形。
[0072](3)當(dāng)M在第三區(qū)間時,M mod P和M mod Q都較小,M mod P和M mod Q最高6比特的取值均為O。隨機(jī)數(shù)trng最高前兩個比特位取值為I的概率為2/16,則M mod P+trng和Mmod Q+trng 不進(jìn)位的概率為 1-2/16,即 14/16,若不進(jìn)位,則 M mod P+trng〈M mod Q+trng,所以(M mod P+trng) - (M mod Q+trng) <0 的概率為 14/16,由于(M mod P+trng) - (M modQ+trng)〈0,操作上會產(chǎn)生借位,故對應(yīng)的波形較長,因此,不進(jìn)位時,M mod P+trng、M modQ+trng和(M mod P+trng) - (M mod Q+trng)的運(yùn)算操作在功耗曲線上呈現(xiàn)兩短一長的波形,且該特性波形出現(xiàn)的概率為14/16。
[0073]由上可知,當(dāng)M在第三區(qū)間時,RSA_CRT變形算法密碼運(yùn)算的功耗曲線在概率上有14/16的可能性會出現(xiàn)兩短一長的波形,即M在第三區(qū)間時變性操作對應(yīng)的特性波形。如果選取一個攻擊明文M,將攻擊明文加密后,采用標(biāo)準(zhǔn)RSA_CRT解密運(yùn)算或簽名運(yùn)算進(jìn)行有限次運(yùn)算,例如1000次運(yùn)算,大量的功耗曲線顯示在功耗曲線的某一段(即對應(yīng)于M modP+trng、M mod Q+trng 和(M mod P+trng) - (M mod Q+trng))有超過 2/3 的概率出現(xiàn)兩短一長的波形,則可以判斷該攻擊明文M在第三區(qū)間,即M>P。此時按一定規(guī)律調(diào)整M值變小,使M趨近素數(shù)P的值。得到P值后,利用N/Q獲得第二個素數(shù)Q,然后可以利用公鑰e、N計(jì)算出dp、dq、qinv等RSA_CRT算法的所有私鑰元素。
[0074]其次,在步驟S1000中,分析第二種變形,即CRT(sp,sq)=(((sp+trng-sq-trng)) *qinv) mod P) *Q+sq的情況下,M在不同取值區(qū)間時,trng弓丨起變形部分發(fā)生進(jìn)位操作的概率,以及變形操作對應(yīng)的特性波形和所述特性波形出現(xiàn)的概率。由于在第二種變形中,減去隨機(jī)數(shù)的運(yùn)算不發(fā)生進(jìn)位,因此只針對sp+trng和sp+trng - sq進(jìn)行分析即可。
[0075](I)當(dāng) M 在第二區(qū)間時,Q〈M〈P, sp = M 且 M>Q, sp+trng = M+trng,由于 Q 為最高兩比特位為I的素數(shù),而trng最高兩比特位取值為O的概率為2/16,因此sp+trng進(jìn)位的概率為1-2/16,即14/16。由于第二種變形中發(fā)生進(jìn)位時需要減去相應(yīng)的mod數(shù)P來保持運(yùn)算結(jié)果位數(shù)統(tǒng)一,因此sp+trng發(fā)生進(jìn)位時其運(yùn)算操作的波形較長。由于P和Q的最高兩比特位為I,因此M在P和Q之間的取值空間不超過16進(jìn)制取值的1/16,因而sp加上隨機(jī)數(shù)trng進(jìn)位后小于sq的概率也只有1/16,相應(yīng)地,sp+trng>sq的概率為15/16。由于sp+trng>sq時,sp+trng-sq為一次減法,因此在功耗曲線上呈現(xiàn)較短的波形。由上分析可知,sp+trng和sp+trng - sq的運(yùn)算操作過程在功耗曲線組中呈現(xiàn)一長一短的波形的概率為14/16*15/16 = 105/128,所述一長一短的波形即M在第二區(qū)間時變性操作對應(yīng)的特性波形。
[0076]由上可知,第二種變形情況下,當(dāng)M在第二區(qū)間時,RSA_CRT變形算法密碼運(yùn)算的功耗曲線在概率上有105/128的可能性會出現(xiàn)一長一短的波形,即M在第二區(qū)間時變形操作對應(yīng)的特性波形。如果選取一個攻擊明文M,將攻擊明文加密后,采用標(biāo)準(zhǔn)RSA_CRT解密運(yùn)算或簽名運(yùn)算進(jìn)行有限次運(yùn)算,例如1000次運(yùn)算,大量的功耗曲線顯示在功耗曲線的某一段(即對應(yīng)于sp+trng和sp+trng - sq)有超過2/3的概率出現(xiàn)一長一短的波形,貝U可以判斷該攻擊明文M在第二區(qū)間,即Q〈M〈P。此時按一定規(guī)律調(diào)整M值變大,使M趨近素數(shù)P的值。得到P值后,利用N/Q獲得第二個素數(shù)Q,然后可以利用公鑰e、N計(jì)算出dp、dq、qinV等RSA_CRT算法的所有私鑰元素。
[0077](2)當(dāng)M在第二區(qū)間時,由于P為最聞兩比特位為I的素數(shù),因此sp最聞兩比特位均為0,加入的隨機(jī)數(shù)最高兩比特位位為I的概率為2/16,所以sp+trng發(fā)生進(jìn)位的概率為1/8,不發(fā)生進(jìn)位的概率為1-1/8,即7/8。相應(yīng)地,由于M>P>Q,不發(fā)生進(jìn)位時,sp+trng大于sq,因此sp+trng大于sq的概率為7/8,即sp+trng_sq>0的概率為7/8。此時sp+trng和sp+trng - sq的運(yùn)算操作分別為一次加法和一次減法,sp+trng和sp+trng - sq的運(yùn)算操作在功耗曲線上將呈現(xiàn)為兩個連續(xù)較短的波形。
[0078]由上可知,在第二種變形情況下,當(dāng)M在第三區(qū)間時,RSA_CRT變形算法密碼運(yùn)算的功耗曲線在概率上有7/8的可能性會出現(xiàn)兩個連續(xù)較短的波形,即M在第三區(qū)間時變性操作對應(yīng)的特性波形。如果選取一個攻擊明文M,將攻擊明文加密后,采用標(biāo)準(zhǔn)RSA_CRT解密運(yùn)算或簽名運(yùn)算進(jìn)行有限次運(yùn)算,例如1000次運(yùn)算,大量的功耗曲線顯示在功耗曲線的某一段(即對應(yīng)于sp+trng和sp+trng - sq的部分)有超過2/3的概率出現(xiàn)兩個連續(xù)較短的波形,則可以判斷該攻擊明文M在第三區(qū)間,即M>P。此時按一定規(guī)律調(diào)整M值變小,使M趨近素數(shù)P的值。得到P值后,利用N/Q獲得第二個素數(shù)Q,然后可以利用公鑰e、N計(jì)算出dp、dq、qinv等RSA_CRT算法的所有私鑰元素。
[0079](3)當(dāng)選取一個攻擊明文M,將攻擊明文加密后,采用標(biāo)準(zhǔn)RSA_CRT解密運(yùn)算或簽名運(yùn)算進(jìn)行有限次運(yùn)算,例如1000次運(yùn)算,功耗曲線組中未出現(xiàn)上述第二種變形情況下M在第二區(qū)間和M在第三區(qū)間時變形操作對應(yīng)的特性波形,則可以判斷該攻擊明文M在第一區(qū)間,即M〈Q。此時按一定規(guī)律調(diào)整M值變大,使M趨近素數(shù)Q的值。得到Q值后,利用N/Q獲得第二個素數(shù)P,然后可以利用公鑰e、N計(jì)算出dp、dq、qinv等RSA_CRT算法的所有私鑰元素。
[0080]在分析和計(jì)算得到M在不同取值區(qū)間時,變形操作對應(yīng)的特性波形和所述特性波形出現(xiàn)的概率后,執(zhí)行密鑰攻擊程序流程。以下將以RSA的素數(shù)P、Q的長度為t的情況為例,說明密鑰攻擊程序流程,相應(yīng)地,模數(shù)N的長度為2t,N = P*Q,所述流程步驟如下:
[0081]步驟S1100,設(shè)置攻擊明文M長度為t ;
[0082]步驟S1200,設(shè)置M的所有比特位為0,計(jì)算密文C = M~e mod N,將C輸入至被攻擊芯片進(jìn)行標(biāo)準(zhǔn)RSA_CRT簽名或解密操作,運(yùn)行1000次,得到功耗曲線組SlO ;
[0083]步驟S1300,設(shè)置M的從高往低的第二位設(shè)置為I,其余位設(shè)置為0,計(jì)算C = M~emod N,把C的值輸入被攻擊芯片進(jìn)行標(biāo)準(zhǔn)RSA_CRT簽名或解密操作,得到功耗曲線組S20 ;
[0084]步驟S1400,設(shè)置M的所有比特位為1,計(jì)算密文C = M~e mod N,將C輸入至被攻擊芯片進(jìn)行標(biāo)準(zhǔn)RSA_CRT簽名或解密操作,運(yùn)行1000次,得到功耗曲線組Sll ;
[0085]步驟S1500,設(shè)置M的從高往低的第二位設(shè)置為0,其余位設(shè)置為1,計(jì)算C = M~emod N,將C輸入被攻擊芯片進(jìn)行標(biāo)準(zhǔn)RSA_CRT簽名或解密操作,得到功耗曲線組S21 ;
[0086]步驟S1600,對比功耗曲線組SlO和功耗曲線組S20,及對比功耗曲線組Sll和功耗曲線組S21,從S20相對于SlO的差異波形中,以及從S21相對于Sll的差異波形中,分析出RSA_CRT變形運(yùn)算功耗曲線組中的特性波形,以所述特性波形為參考特性波形,統(tǒng)計(jì)所述參考特性波形出現(xiàn)的概率,根據(jù)所述參考特性波形和所述參考特性波形出現(xiàn)的概率判斷M的取值區(qū)間,具體為:
[0087]如果參考特性波形為三個連續(xù)較短的波形或者兩長一短的波形,且兩者在功耗曲線的同一段交替出現(xiàn),則M在第一種變形情況下的第一區(qū)間,
[0088]如果特性波形為一長一短的波形,且特性波形出現(xiàn)的概率大于2/3,則M在第一種變形情況或第二種變形情況下的第二區(qū)間,
[0089]如果特性波形為兩短一長的波形,且特性波形出現(xiàn)的概率大于2/3,則M在第一種變形情況下的第三區(qū)間,
[0090]如果特性波形為兩個連續(xù)較短的波形,且特性波形出現(xiàn)的概率大于2/3,則M在第二種變形情況下的第三區(qū)間,
[0091]如果未出現(xiàn)以上所有情況的特性波形,則M在第二種變形情況下的第一區(qū)間;
[0092]步驟S1700,
[0093]若M在第一種變形或第二種變形情況下的第一區(qū)間或第二區(qū)間,則執(zhí)行以下步驟S1701:
[0094]步驟S1701,設(shè)置M的所有比特位為0,當(dāng)i從t_l到1,執(zhí)行如下循環(huán)步驟S1702至步驟S1703:
[0095]步驟S1702,設(shè)置M的第i比特位為1,計(jì)算C = M~e mod N,將C輸入被攻擊芯片進(jìn)行標(biāo)準(zhǔn)RSA_CRT簽名或解密運(yùn)算,得到功耗曲線組S3,
[0096]步驟S1703,判斷S3的特性波形是否與參考特性波形相同,如果相同,則保持當(dāng)前第i比特位為1,否則,將當(dāng)前第i比特位取反為0,
[0097]若M在第一種變形或第二種變形情況下的第三區(qū)間,則執(zhí)行以下步驟S1711:
[0098]步驟S1711,設(shè)置M的所有比特位為1,當(dāng)i從t_l到1,執(zhí)行如下循環(huán)步驟S1712至步驟S1713:
[0099]步驟S1712,設(shè)置M的第i比特位為0,計(jì)算C = M~e mod N,將C輸入被攻擊芯片進(jìn)行標(biāo)準(zhǔn)RSA_CRT簽名或解密運(yùn)算,得到功耗曲線組S4,
[0100]步驟S1713,判斷S4的特性波形是否與參考特性波形相同,如果相同,則保持當(dāng)前第i比特位為0,否則,將當(dāng)前第i比特位取反為1,
[0101]步驟S1800,步驟S1701或步驟S1711的循環(huán)過程結(jié)束,判斷最后得到的M值是否在與參考特性波形對應(yīng)的取值區(qū)間內(nèi)且為素數(shù),若是,則攻擊成功,否則,攻擊失敗。
[0102]在步驟S1600中,對比功耗曲線組SlO和功耗曲線組S20,及對比功耗曲線組Sll和功耗曲線組S21,是以所有比特位全為O和所有比特位全為I的攻擊明文的功耗曲線作為參考曲線,通常所有比特位全為O和所有比特位全為I的攻擊明文更容易使功耗曲線中出現(xiàn)特性波形,從而可以通過對比SlO和S20之間的差異,以及Sll和S21之間的差異,識別出特性波形。功耗曲線組的對比及特性波形的識別采用常規(guī)的波形識別和統(tǒng)計(jì)方法,可以將前述分析得到的M在各個取值區(qū)間變形操作對應(yīng)的特性波形輸入常規(guī)的波形識別和統(tǒng)計(jì)系統(tǒng)中作為參照,從而得到被檢測的功耗曲線組中的特性波形和特性波形出現(xiàn)的概率。
[0103]在步驟S1600中,通過對比SlO和S20可以識別M在第一變形情況和第二變形情況的第一區(qū)間或第二區(qū)間時變形操作對應(yīng)的特性波形,通過對比Sll和S21可以識別M在第一變形情況和第二變形情況的第三區(qū)間時變形操作對應(yīng)的特性波形。
[0104]在步驟S1800中,最后得到的滿足條件的M的值,當(dāng)M在第一區(qū)間時,所得M的值即Q的值;當(dāng)M在第二區(qū)間或第三區(qū)間時,所得M的值即的P值。在得到P或Q的值后,可以利用公鑰e、N計(jì)算出dp、dq、qinv等RSA_CRT算法的所有私鑰元素,因此得到最后的滿足條件的M的值,即可認(rèn)為攻擊成功。
[0105]在步驟S1701和步驟S1711中,是以循環(huán)結(jié)束來判斷M值逼近P值或Q值的過程結(jié)束,這是因?yàn)?,如果循環(huán)至第i比特位時,變形操作對應(yīng)的特性波形發(fā)生變化,即功耗曲線采樣組中出現(xiàn)與當(dāng)前M值所在取值區(qū)間不同的其他取值區(qū)間時變形操作對應(yīng)的特性波形,則在當(dāng)前第i比特位之后,特性波形將一直與參考特性波形不同,在當(dāng)前第i比特位后的所有比特位都將為O或1,之后的循環(huán)中不再發(fā)生比特位的值的變化,也就是說,M值將不再增大或減小,亦即達(dá)到了最大值或最小值。因此以循環(huán)過程的結(jié)束來判斷逼近過程的結(jié)束,和以特性波形發(fā)生變化來判斷逼近過程的結(jié)束是一致的,且在程序流程上更容易實(shí)現(xiàn)。
[0106]在本發(fā)明實(shí)施例中,當(dāng)M在第二區(qū)間時,攻擊時可以通過逐步增大M值逼近P的值,也可以通過逐步減小M值逼近Q的值,根據(jù)上述方法實(shí)施例的描述,本領(lǐng)域技術(shù)人員可以很容易得到當(dāng)M在第二區(qū)間時,通過逐步減小M值逼近Q的值的過程,故不贅述。
[0107]通過以上的方法實(shí)施例的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0108]在第二方面,本發(fā)明實(shí)施例公開了一種攻擊密鑰的裝置。如圖2所示,所述攻擊密鑰的裝置包括:
[0109]特性波形分析單元U2100,用于計(jì)算與分析RSA_CRT變形算法在第一種變形和第二種變形情況下,M在不同取值區(qū)間時,隨機(jī)數(shù)trng引起變形部分發(fā)生進(jìn)位操作的概率,及變形操作對應(yīng)的特性波形和所述特性波形出現(xiàn)的概率,并記錄M在不同取值區(qū)間時變形操作對應(yīng)的特性波形和所述特性波形出現(xiàn)的概率,所述M的取值區(qū)間由P和Q確定,包括:M小于P和Q的第一區(qū)間,M介于P和Q之間的第二區(qū)間,M大于P和Q的第三區(qū)間,其中,P和Q為RSA合數(shù)模N的兩個素數(shù)因子,M與P和Q等長;
[0110]功耗曲線獲取單元U2200,用于獲取被攻擊的RSA_CRT變形算法對密文進(jìn)行密碼運(yùn)算的功耗曲線,以及獲取被攻擊的RSA_CRT變形算法對密文進(jìn)行有限次密碼運(yùn)算的功耗曲線組,所述有限次可以為1000次;
[0111]區(qū)間判斷單元U2300,與所述特性波形分析單元U2100及所述功耗曲線獲取單元U2200連接,用于選取攻擊明文M,使用公鑰將M加密為密文,根據(jù)M對應(yīng)的功耗曲線采樣組中的特性波形和所述特性波形出現(xiàn)的概率判斷M的取值區(qū)間,所述M對應(yīng)的功耗曲線采樣組即被攻擊的RSA_CRT變形算法對所述密文進(jìn)行有限次密碼運(yùn)算的功耗曲線組;
[0112]攻擊單元U2400,與所述特性波形分析單元U2200及所述功耗曲線獲取單元U2300連接,根據(jù)區(qū)間判斷單元得到的所述M的取值區(qū)間,逐步增大或減小M值,直至M值對應(yīng)的功耗曲線采樣組中的特性波形發(fā)生變化,判斷最后得到的M值是否在所述M的取值區(qū)間內(nèi)且為素數(shù),若是,則攻擊成功,否則,攻擊失敗。
[0113]其中,所述變形操作指RSA_CRT變形算法中,第一種變形情況下的M mod P+trng、M mod Q+trng和(M mod P+trng) - (M mod Q+trng)運(yùn)算操作,以及第二種變形情況下的sp+trng 和 sp+trng - sq 運(yùn)算操作。
[0114]其中,如圖2所示,所述特性波形分析單元U2100可以包括:
[0115]進(jìn)位概率計(jì)算單元U2101,用于分析與計(jì)算被攻擊的RSA_CRT變形算法中攻擊明文M在不同取值區(qū)間時隨機(jī)數(shù)trng引起變形部分發(fā)生進(jìn)位操作的概率,所述概率根據(jù)所述隨機(jī)數(shù)的進(jìn)制和P、Q的取值特性計(jì)算得到;
[0116]特性波形記錄單元U2102,與所述進(jìn)位概率計(jì)算單元U2101連接,用于分析并記錄M在不同取值區(qū)間時功耗曲線中所述變形操作對應(yīng)的特性波形,所述特性波形在功耗曲線采樣組中出現(xiàn)的概率根據(jù)所述引起變形部分發(fā)生進(jìn)位操作的概率確定。
[0117]具體地,所述進(jìn)位概率計(jì)算單元U2101根據(jù)P、Q的取值特性以及隨機(jī)數(shù)的進(jìn)制,分析引起M mod P+trng、M mod Q+trng或sp+trng進(jìn)位的隨機(jī)數(shù)的比特位的取值情況,得到隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率,即引起變形操作進(jìn)位的概率。所述特性波形記錄單元U2102分析M在不同取值區(qū)間時變形操作可能產(chǎn)生的特性波形,并記錄所述特性波形。所述特性波形根據(jù)常規(guī)的標(biāo)準(zhǔn)RSA_CRT變形算法密碼運(yùn)算的功耗曲線中波形的形式,如加、減、進(jìn)位、借位的波形形式得到。在一種可能實(shí)施方式中,也可以根據(jù)芯片數(shù)據(jù)運(yùn)算操作處理的波形特征,得到變形操作可能產(chǎn)生的特性波形。
[0118]如圖2所示,所述區(qū)間判斷單元包括:
[0119]第一功耗曲線記錄單元U2301,與所述功耗曲線獲取單元U2200連接,用于選取第一攻擊明文Ml和第二攻擊明文M2,設(shè)置Ml的所有比特位為0,以及設(shè)置M2的所有比特位為I,使用公鑰將Ml和M2加密為密文,分別記錄Ml和M2對應(yīng)的功耗曲線采樣組SlO和Sll ;
[0120]第二功耗曲線記錄單元U2302,與所述功耗曲線獲取單元U2200連接,用于選取第二攻擊明文M3和第二攻擊明文M4,設(shè)置M3從高往低的第二個比特位為I,其余比特位為O,以及設(shè)置M4從高往低的第二個比特位為0,其余比特位為1,使用公鑰將M3和M4加密為密文,分別記錄M3和M4對應(yīng)的功耗曲線采樣組S20和S21 ;
[0121]對比單元U2303,與所述第一功耗曲線記錄單元U2301、第二功耗曲線記錄單元U2302及特性波形記錄單元U2102連接,用于對比S20和S10,以及對比S21和S11,得到所述特性波形和所述特性波形出現(xiàn)的概率,根據(jù)所述特性波形和所述特性波形出現(xiàn)的概率判斷M3或M4的取值區(qū)間,以所述M3或M4的取值區(qū)間為所述M的取值區(qū)間。
[0122]其中,對比功耗曲線組SlO和功耗曲線組S20,及對比功耗曲線組Sll和功耗曲線組S21,是以所有比特位全為O和所有比特位全為I的攻擊明文的功耗曲線作為參考曲線,通過對比SlO和S20之間的差異,以及Sll和S21之間的差異,識別出特性波形。功耗曲線組的對比及特性波形的識別采用常規(guī)的波形識別及統(tǒng)計(jì)方法。其中,通過對比SlO和S20可以識別M在第一變形情況和第二變形情況的第一區(qū)間或第二區(qū)間的特性波形,通過對比Sll和S21可以識別M在第一變形情況和第二變形情況的第三區(qū)間的特性波形。
[0123]如圖2所示,所述攻擊單元包括:
[0124]循環(huán)單元U2401,與所述對比單元U2303連接,用于根據(jù)所述區(qū)間判斷單元U2300(本實(shí)施例中實(shí)際為區(qū)間判斷單元U2300中的對比單元U2303)的結(jié)果,當(dāng)M在第一區(qū)間或第二區(qū)間時,設(shè)置M的所有比特位為O后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為I,或者當(dāng)M在第三區(qū)間時,設(shè)置M的所有比特位為I后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為O ;
[0125]第一判斷單元U2402,與所述循環(huán)單元U2401連接及所述功耗曲線獲取單元U2200連接,用于判斷所述循環(huán)單元U2401中當(dāng)前M值對應(yīng)的功耗曲線采樣組中的特性波形與所述對比單元U2303得到的特性波形是否相同,所述當(dāng)前M值為所述循環(huán)單元U2401中當(dāng)前第i比特位為I或O時對應(yīng)的M值;
[0126]M值記錄單元U2403,與所述第一判斷單元U2402連接,用于根據(jù)所述第一判斷單元U2402的結(jié)果設(shè)置第i位比特位的值,當(dāng)所述結(jié)果為相同時,保持當(dāng)前第i位比特位的值,否則,對當(dāng)前第i位比特位的值取反;
[0127]第二判斷單元U2404,與所述循環(huán)單元U2401及M值記錄單元U2403連接,用于判斷所述循環(huán)單元U2401的循環(huán)結(jié)束后所述M值記錄單元U2403得到的M值是否在所述對比單元U2303得到的M的取值空間內(nèi)且為素數(shù),若是,則攻擊成功,否則,攻擊失敗。
[0128]其中,i為整數(shù),t為M的長度。
[0129]其中,第一判斷單元U2402與第二判斷單元U2404通過循環(huán)單元U2401獲得對比單元U2303中的結(jié)果。
[0130]為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本發(fā)明時可以把各單元的功能在同一個或多個軟件和/或硬件中實(shí)現(xiàn)。
[0131]本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,各個實(shí)施例之間相同相似的部分互相參見即可,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。
[0132]需要說明的是,在本文中,諸如“第一”和“第二”等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者裝置中還存在另外的相同要素。
[0133] 以上所述僅是本發(fā)明的【具體實(shí)施方式】,使本領(lǐng)域技術(shù)人員能夠理解或?qū)崿F(xiàn)本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【權(quán)利要求】
1.一種攻擊密鑰的方法,其特征在于,包括以下步驟: A、計(jì)算被攻擊密鑰的RSA中國剩余定理變形算法中,攻擊明文M在不同取值區(qū)間時隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率,分析并記錄功耗曲線中與變形部分的運(yùn)算操作對應(yīng)的特性波形,所述特性波形在功耗曲線采樣組中出現(xiàn)的概率根據(jù)所述引起變形部分發(fā)生進(jìn)位操作的概率確定,所述功耗曲線為被攻擊密鑰進(jìn)行密碼運(yùn)算的功耗曲線,所述功耗曲線采樣組由有限次所述密碼運(yùn)算的功耗曲線組成, 所述取值區(qū)間由P和Q確定,包括:M小于P和Q的第一區(qū)間,M介于P和Q之間的第二區(qū)間,M大于P和Q的第三區(qū)間,其中,P和Q為RSA合數(shù)模N的兩個素數(shù)因子,M與P和Q等長; B、選取攻擊明文M,使用公鑰將M加密為密文,采用被攻擊密鑰對所述密文進(jìn)行有限次密碼運(yùn)算,得到功耗曲線采樣組,根據(jù)所述功耗曲線采樣組中的所述特性波形和所述特性波形出現(xiàn)的概率判斷M的取值區(qū)間; C、根據(jù)判斷得到的所述M的取值區(qū)間,逐步增大或減小M值,并得到每個M值對應(yīng)的功耗曲線采樣組,直至所述功耗曲線采樣組中的特性波形發(fā)生變化,判斷最后得到的M值是否在所述M的取值區(qū)間內(nèi)且為素數(shù),如果得到的M值是否在所述M的取值區(qū)間內(nèi)且為素數(shù),則攻擊成功,否則,攻擊失敗, 其中,所述特性波形發(fā)生變化為所述功耗曲線采樣組中出現(xiàn)M在其他取值區(qū)間時變形操作對應(yīng)的特性波形,所述密碼運(yùn)算為標(biāo)準(zhǔn)RSA中國剩余定理變形算法解密運(yùn)算或簽名運(yùn)算。
2.根據(jù)權(quán)利要求1所述的密鑰攻擊方法,其特征在于,所述隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率根據(jù)所述隨機(jī)數(shù)的進(jìn)制確定。
3.根據(jù)權(quán)利要求1所述的密鑰攻擊方法,其特征在于,所述有限次密碼運(yùn)算為1000次密碼運(yùn)算。
4.根據(jù)權(quán)利要求1所述的密鑰攻擊方法,其特征在于,所述步驟B包括: 選取第一攻擊明文M1,設(shè)置Ml的所有比特位為0,得到Ml對應(yīng)的功耗曲線采樣組SlO ; 選取第二攻擊明文M2,設(shè)置M2的所有比特位為1,得到M2對應(yīng)的功耗曲線采樣組Sll ; 選取第一攻擊明文M3,設(shè)置M3從高往低的第二個比特位為1,其余比特位為0,得到M3對應(yīng)的功耗曲線采樣組S20 ; 選取第二攻擊明文M2,設(shè)置M4從高往低的第二個比特位為0,其余比特位為1,得到M4對應(yīng)的功耗曲線采樣組S21 ;對比SlO和S11,以及對比S20和S21,得到所述特性波形和所述特性波形出現(xiàn)的概率,根據(jù)所述特性波形和所述特性波形出現(xiàn)的概率判斷M3或M4的取值區(qū)間,以所述M3或M4的取值區(qū)間為所述M的取值區(qū)間。
5.根據(jù)權(quán)利要求1所述的密鑰攻擊方法,其特征在于,所述步驟C包括: 當(dāng)M在第一區(qū)間或第二區(qū)間時,設(shè)置M的所有比特位為O后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為1,并得到當(dāng)前M值對應(yīng)的功耗曲線采樣組,如所述功耗曲線采樣組中的特性波形與所述步驟B中的特性波形相同,則保持第i比特位為1,否則,將第i比特位設(shè)為0,判斷最后得到的M值是否在所述M的取值空間內(nèi)且為素數(shù),若最后得到的M值在所述M的取值空間內(nèi)且為素數(shù),則攻擊成功,否則,攻擊失?。? 當(dāng)M在第三區(qū)間時,設(shè)置M的所有比特位為I后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為O,并得到當(dāng)前M值對應(yīng)的功耗曲線采樣組,如所述功耗曲線采樣組中的特性波形與所述步驟B中的特性波形相同,則保持第i比特位為O,否則,將第i比特位設(shè)為1,判斷最后得到的M值是否在所述M的取值空間內(nèi)且為素數(shù),若最后得到的M值在所述M的取值空間內(nèi)且為素數(shù),則攻擊成功,否則,攻擊失敗, 其中,所述當(dāng)前M值為當(dāng)前所述第i比特位為I或O時對應(yīng)的M值,i為整數(shù),t為M的長度。
6.一種攻擊密鑰的裝置,其特征在于,包括: 特性波形分析單元,用于計(jì)算被攻擊密鑰的RSA中國剩余定理變形算法中,攻擊明文M在不同取值區(qū)間時隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率,以及分析并記錄功耗曲線中與變形部分的運(yùn)算操作對應(yīng)的特性波形,所述特性波形在功耗曲線采樣組中出現(xiàn)的概率根據(jù)所述引起變形部分發(fā)生進(jìn)位操作的概率確定,所述功耗曲線為被攻擊密鑰進(jìn)行密碼運(yùn)算的功耗曲線,所述功耗曲線采樣組由有限次所述密碼運(yùn)算的功耗曲線組成 所述取值區(qū)間由P和Q確定,包括:M小于P和Q的第一區(qū)間,M介于P和Q之間的第二區(qū)間,M大于P和Q的第三區(qū)間,其中,P和Q為RSA合數(shù)模N的兩個素數(shù)因子,M與P和Q等長; 功耗曲線獲取單元,用于獲取被攻擊密鑰對密文進(jìn)行密碼運(yùn)算的功耗曲線,以及獲取被攻擊密鑰對密文進(jìn)行有限次密碼運(yùn)算的功耗曲線組; 區(qū)間判斷單元,用于選取攻擊明文M,使用公鑰將M加密為密文,根據(jù)M對應(yīng)的功耗曲線采樣組中的特性波形 和所述特性波形出現(xiàn)的概率判斷M的取值區(qū)間; 攻擊單元,根據(jù)所述區(qū)間判斷單元得到的所述M的取值區(qū)間,逐步增大或減小M值,直至M值對應(yīng)的功耗曲線采樣組中的特性波形發(fā)生變化,判斷最后得到的M值是否在所述M的取值區(qū)間內(nèi)且為素數(shù),若是,則攻擊成功,否則,攻擊失敗, 其中,所述特性波形發(fā)生變化為所述功耗曲線采樣組中出現(xiàn)M在其他取值區(qū)間時變形操作對應(yīng)的特性波形,所述密碼運(yùn)算為標(biāo)準(zhǔn)RSA中國剩余定理變形算法解密運(yùn)算或簽名運(yùn)笪
ο
7.根據(jù)權(quán)利要求6所述的密鑰攻擊裝置,其特征在于,所述有限次密碼運(yùn)算為1000次密碼運(yùn)算。
8.根據(jù)權(quán)利要求6所述的密鑰攻擊裝置,其特征在于,所述特性波形分析單元包括: 進(jìn)位概率計(jì)算子單元,用于計(jì)算被攻擊密鑰的RSA中國剩余定理變形算法中,攻擊明文M在不同取值區(qū)間時隨機(jī)數(shù)引起變形部分發(fā)生進(jìn)位操作的概率; 特性波形記錄子單元,用于分析并記錄M在不同取值區(qū)間時功耗曲線中與變形部分的運(yùn)算操作對應(yīng)的特性波形,所述特性波形在功耗曲線采樣組中出現(xiàn)的概率根據(jù)所述引起變形部分發(fā)生進(jìn)位操作的概率確定。
9.根據(jù)權(quán)利要求6所述的密鑰攻擊裝置,其特征在于,所述區(qū)間判斷單元包括: 第一功耗曲線記錄單元,用于選取第一攻擊明文Ml和第二攻擊明文M2,設(shè)置Ml的所有比特位為0,以及設(shè)置M2的所有比特位為1,使用公鑰將Ml和M2加密為密文,分別記錄Ml和M2對應(yīng)的功耗曲線采樣組SlO和Sll ; 第二功耗曲線記錄單元,用于選取第二攻擊明文M3和第二攻擊明文M4,設(shè)置M3從高往低的第二個比特位為1,其余比特位為0,以及設(shè)置M4從高往低的第二個比特位為0,其余比特位為1,使用公鑰將M3和M4加密為密文,分別記錄M3和M4對應(yīng)的功耗曲線采樣組S20和 S21 ; 對比單元,用于對比S20和S10,以及對比S21和S11,得到所述特性波形和所述特性波形出現(xiàn)的概率,根據(jù)所述特性波形和所述特性波形出現(xiàn)的概率判斷M3或M4的取值區(qū)間,以所述M3或M4的取值區(qū)間為所述M的取值區(qū)間。
10.根據(jù)權(quán)利要求6所述的密鑰攻擊裝置,其特征在于,所述攻擊單元包括: 循環(huán)單元,用于根據(jù)所述區(qū)間判斷單元的結(jié)果,當(dāng)M在第一區(qū)間或第二區(qū)間時,設(shè)置M的所有比特位為O后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為1,或者當(dāng)M在第三區(qū)間時,設(shè)置M的所有比特位為I后,從第t-Ι比特位至第I比特位,依次設(shè)置第i比特位為O ; 第一判斷單元,用于判斷所述循環(huán)單元中當(dāng)前M值對應(yīng)的功耗曲線采樣組中的特性波形與所述區(qū)間判斷單元中的特性波形是否相同,所述當(dāng)前M值為所述循環(huán)單元中當(dāng)前第i比特位為I或O時對應(yīng)的M值; M值記錄單元,用于根據(jù)所述第一判斷單元的結(jié)果設(shè)置第i位比特位的值,當(dāng)所述第一判斷單元的結(jié)果為相同時,保持當(dāng)前第i位比特位的值,否則,對當(dāng)前第i位比特位的值取反; 第二判斷單元,用于判斷所述循環(huán)單元的循環(huán)結(jié)束后所述M值記錄單元得到的M值是否在所述區(qū)間判斷單元 得到的M的取值空間內(nèi)且為素數(shù),若所述M值在所述區(qū)間判斷單元得到的M的取值空間內(nèi)且為素數(shù),則攻擊成功,否則,攻擊失敗, 其中,i為整數(shù),t為M的長度。
【文檔編號】H04L29/06GK104079561SQ201410252680
【公開日】2014年10月1日 申請日期:2014年6月9日 優(yōu)先權(quán)日:2014年6月9日
【發(fā)明者】王冠華, 王亞偉, 謝蒂, 李國俊 申請人:中國電子科技集團(tuán)公司第十五研究所, 北京華大信安科技有限公司