基于改進(jìn)差分錯(cuò)誤攻擊的sm2簽名算法安全性驗(yàn)證方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于楠圓曲線密碼算法巧CC)分析和錯(cuò)誤攻擊領(lǐng)域,具體設(shè)及一種基于改 進(jìn)差分錯(cuò)誤攻擊的SM2簽名算法安全性驗(yàn)證方法,屬于信息安全技術(shù)領(lǐng)域。
【背景技術(shù)】
[000引 自從20世紀(jì)80年代,Miller和Koblitz將楠圓曲線引入密碼學(xué),W及Lenstra提 出了利用楠圓曲線進(jìn)行因數(shù)分解算法W來,楠圓曲線在密碼學(xué)中的作用越來越大。ECC是基 于有限域楠圓曲線離散對(duì)數(shù)問題巧CDLP);在一個(gè)循環(huán)加法群中,G為生成元,且G的階為 n,已知Q=kG和G,求k的值,其中Q=kG為有限域上的標(biāo)量乘運(yùn)算,具體為有限域上的 代數(shù)運(yùn)算。
[000引若F為有限域,則至少含有兩個(gè)元素,并存在一個(gè)加法"+ "和一個(gè)乘法"?"運(yùn)算, 滿足如下條件:
[0004] 1)化+)是一個(gè)交換群;
[000引 。(F/ {0},?)是一個(gè)交換群;
[0006]如滿足結(jié)合律;(a,b) -c=a?化-C)加法和乘法滿足分配律,即對(duì)任何 a,b,CER,a? (b+c) =a?b+a?c, (b+c) ?a=a?b+a?c。
[0007] 密碼應(yīng)用中最常用的有限域包括;素?cái)?shù)域和特征為2的擴(kuò)張域(二元擴(kuò)域),該里 主要介紹素?cái)?shù)域。若P是素?cái)?shù),F(xiàn)= {0,1,2,…,P-1}是關(guān)于modP的+和?構(gòu)成的一個(gè)有 限域,記為Fp,稱為素?cái)?shù)域(Galois域),F(xiàn)/=Fp/{0}是Fp由中所有非零元構(gòu)成的乘法群, 由于F/是循環(huán)群,所W在FP中至少存在一個(gè)元素g,使得FP中任一非零元都可W由g的一 個(gè)方幕表示,稱g為F/的生成元(或本原元),即F/= <g>,階為P-1。
[000引若在素?cái)?shù)域Fp(p是大于3的素?cái)?shù))上的楠圓曲線方程為:
[0009]y2=X3+ax+bmodP,a、bGFp,且(4a3+2化2)m〇dP聲 0
[0010]則有限域Fp上楠圓曲線點(diǎn)集E(Fp)定義為:
[0011] E(Fp) = {(X,y) |x, y G Fp, y2= X 3+ax+b mod p} U {0},其中,0為無窮遠(yuǎn)點(diǎn)。 [001引若點(diǎn)G G E巧),且G的階n為素?cái)?shù),則由G生成的循環(huán)群<G> ={0, G,2G,3G,… ,(n-l)G}為E(Fp)的循環(huán)子群。楠圓曲線點(diǎn)集EOg的元素?cái)?shù)目用#E^)表示,稱為楠圓 曲線E(Fp)的階。在ECC密碼系統(tǒng)中,素?cái)?shù)P、域Fp的楠圓曲線方程、基點(diǎn)G及其階n均為 公開的域參數(shù),任選私鑰d G [1,n-1],則相應(yīng)的公鑰P = dG。
[0013] 楠圓曲線上定義的點(diǎn)與點(diǎn)加法運(yùn)算使用了弦切線法則,則E(Fp)為加法交換群,無 窮遠(yuǎn)點(diǎn)0為單位元,P(x,y)+P(x,-y) =0。對(duì)E(Fp)上兩點(diǎn)P、Q之和P+Q,若P聲Q,連接P、 Q的直線交E于點(diǎn)R',則R'關(guān)于X軸的對(duì)稱點(diǎn)R即為P+Q之和,稱為點(diǎn)加運(yùn)算(A)。如圖1 所示。
[0014] 若P = Q,做P點(diǎn)的切線交E于點(diǎn)R',則R'關(guān)于X軸的對(duì)稱點(diǎn)R即為則2P,稱為點(diǎn) 倍運(yùn)算值)。如圖2所示。
[001引 由楠圓曲線上的點(diǎn)加和點(diǎn)倍的幾何意義,可朗t斷出E(Fp)在仿射坐標(biāo)下運(yùn)算法 貝Ij,具體如下:
[001 引 點(diǎn)加:令P= (X。yi)GE化),Q= (X2, 72)eE化),且P聲Q,則R(X3,y3) =P+Q, 其中,
【主權(quán)項(xiàng)】
1. 一種基于改進(jìn)差分錯(cuò)誤攻擊的SM2簽名算法安全性驗(yàn)證方法,其特征在于,所述方 法包括步驟: 1) 采用SM2簽名算法對(duì)消息M進(jìn)行簽名,當(dāng)生成的隨機(jī)數(shù)k和SM2簽名算法的橢圓曲 線基點(diǎn)G的標(biāo)量乘迭代進(jìn)行到第i輪時(shí)注入錯(cuò)誤,使第i輪中間值y坐標(biāo)的部分比特值改 變; 2) 利用步驟1)得到的簽名結(jié)果,以及驗(yàn)簽公鑰Pa和消息M雜湊值e恢復(fù)出隨機(jī)數(shù)k 的連續(xù)比特值; 3) 利用所述連續(xù)比特值和錯(cuò)誤簽名結(jié)果構(gòu)造 HNP問題,采用格攻擊分析出私鑰,然后 根據(jù)該私鑰判定當(dāng)前SM2簽名算法是否安全。
2. 如權(quán)利要求1所述的方法,其特征在于,所述第i輪迭代注入錯(cuò)誤,使第i輪中間值 y坐標(biāo)的部分比特值改變的方法為: 1. SM2簽名算法對(duì)生成的隨機(jī)數(shù)k與SM2簽名算法的橢圓曲線基點(diǎn)G進(jìn)行標(biāo)量乘迭代 運(yùn)算 kG;其中,k= (Ι^ν,Ι^,Ι?。)# [l,n-l],n 為基點(diǎn) G 的階; 2) 根據(jù)經(jīng)驗(yàn)?zāi)芰扣E估計(jì)設(shè)定的第i輪迭代在當(dāng)前SM2簽名運(yùn)算中出現(xiàn)時(shí)刻,在估計(jì)的 第i輪迭代將要結(jié)束時(shí)對(duì)中間值y坐標(biāo)的存儲(chǔ)器注入錯(cuò)誤,使中間值y坐標(biāo)的部分比特值 變化;繼續(xù)迭代運(yùn)算,得到最終的簽名結(jié)果;查看當(dāng)前能量跡的錯(cuò)誤注入時(shí)刻,如果錯(cuò)誤注 入在第i輪迭代將要結(jié)束時(shí),則保留該簽名,否則舍棄該簽名。
3. 如權(quán)利要求2所述的方法,其特征在于,使用激光照射所述存儲(chǔ)器實(shí)現(xiàn)注入錯(cuò)誤;通 過調(diào)整激光照射強(qiáng)度或照射時(shí)間,使得變化的比特?cái)?shù)A y < N,N為設(shè)定的閾值。
4. 如權(quán)利要求2或3所述的方法,其特征在于,所述閾值N小于32。
5. 如權(quán)利要求2或3所述的方法,其特征在于,所述恢復(fù)出隨機(jī)數(shù)k的連續(xù)比特值的方 法為: 1) 首先利用所述簽名結(jié)果、公鑰Pa和消息M雜湊值e恢復(fù)出標(biāo)量乘法運(yùn)算的正確結(jié)果, 及注入錯(cuò)誤后產(chǎn)生的錯(cuò)誤標(biāo)量乘法結(jié)果的橫坐標(biāo); 2) 設(shè)隨機(jī)數(shù)k部分連續(xù)比特可能值為,計(jì)算與以'對(duì)應(yīng)的第i輪未注入錯(cuò)誤的中間 值; 3) 將中的所有比特ξ轉(zhuǎn)化為點(diǎn)/?>(;后,其中t e [i,m-l];根據(jù)從右到左的二進(jìn) 制標(biāo)量乘運(yùn)算法則,以第i輪錯(cuò)誤的中間值為初始點(diǎn),將/〗,6'·按照t從小到大的順序依 次進(jìn)行偽加法運(yùn)算,然后根據(jù)該偽加法運(yùn)算公式和注入錯(cuò)誤后產(chǎn)生的錯(cuò)誤標(biāo)量乘法結(jié)果的 橫坐標(biāo)得到第i輪迭代的錯(cuò)誤中間值坐標(biāo)巧;如果漢明距離函數(shù)#,則確定 為所述連續(xù)比特值k(i),否則返回步驟2)重新設(shè)定;其中,&為第i輪未注入錯(cuò)誤 的中間值中的坐標(biāo);如果所有都不符合要求,則舍棄該簽名。
6. 如權(quán)利要求5所述的方法,其特征在于,分析出所述私鑰的方法為:根據(jù)所述簽名結(jié) 果和確定出的所述連續(xù)比特值k(i)構(gòu)造 HNP問題,然后將構(gòu)造的HNP問題轉(zhuǎn)化為CVP問題, 采用LLL和Babai算法求解,分析出私鑰dA。
7. 如權(quán)利要求1所述的方法,其特征在于,在倒數(shù)第Iogn輪之前的某一輪迭代中注入 錯(cuò)誤,其中,迭代輪數(shù)為η。
【專利摘要】本發(fā)明公開了一種基于改進(jìn)差分錯(cuò)誤攻擊的SM2簽名算法安全性驗(yàn)證方法。本方法為:1)采用SM2簽名算法對(duì)消息M進(jìn)行簽名,當(dāng)生成的隨機(jī)數(shù)k和SM2簽名算法的橢圓曲線基點(diǎn)G的標(biāo)量乘迭代進(jìn)行到第i輪時(shí)注入錯(cuò)誤,使第i輪中間值y坐標(biāo)的部分比特值改變;2)利用步驟1)得到的簽名結(jié)果,以及驗(yàn)簽公鑰PA和消息M雜湊值e恢復(fù)出隨機(jī)數(shù)k的連續(xù)比特值;3)利用所述連續(xù)比特值和錯(cuò)誤簽名結(jié)果構(gòu)造HNP問題,采用格攻擊分析出私鑰,然后根據(jù)該私鑰判定當(dāng)前SM2簽名算法是否安全。本發(fā)明能夠更簡(jiǎn)便的注入錯(cuò)誤,更全面分析SM2簽名算法抵抗攻擊的安全能力。
【IPC分類】H04L29-06, H04L9-32
【公開號(hào)】CN104836808
【申請(qǐng)?zhí)枴緾N201510239497
【發(fā)明人】馮婧怡, 陳華, 曹偉瓊, 韓緒倉(cāng), 李大為, 羅鵬, 鄭曉光, 李國(guó)友, 高順賢, 朱少峰
【申請(qǐng)人】中國(guó)科學(xué)院軟件研究所, 北京中電華大電子設(shè)計(jì)有限責(zé)任公司, 國(guó)家密碼管理局商用密碼檢測(cè)中心
【公開日】2015年8月12日
【申請(qǐng)日】2015年5月12日