一種tts簽名的解密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種TTS簽名的解密方法。
【背景技術(shù)】
[0002] 多變量公鑰密碼是現(xiàn)在和未來重要的公鑰密碼之一,它具有能夠抵御量子計(jì)算機(jī) 攻擊的能力。它的安全性是建立在一個(gè)NP-Hard問題的基礎(chǔ)上,即求解有限域的多元多次方 程組,其中大部分的多項(xiàng)式是二次多項(xiàng)式。TTS簽名是多變量公鑰密碼的一種代表性的密 碼。
[0003] 對(duì)多變量公鑰密碼的解密,特別是對(duì)TTS簽名的解密,現(xiàn)有技術(shù)一般采用代數(shù)攻擊 方法,但隨著算法的不斷改進(jìn),這些解密方法的使用并不是特別有效。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提出一種TTS簽名的解密方法,能夠提高TTS簽名的解密效率。
[0005] 本發(fā)明實(shí)施例提供一種TTS簽名的解密方法,包括:
[0006] 獲取TTS簽名算法中的計(jì)算公式;
[0007]依次選取集合中的數(shù)值作為所述計(jì)算公式中的私鑰采樣值,并在每選取一個(gè)私鑰 采樣值時(shí),依次選取所述集合中的數(shù)值作為所述計(jì)算公式的輸入值進(jìn)行運(yùn)算,獲取運(yùn)算過 程中產(chǎn)生的功耗曲線;所述集合為{(〇〇.. .0)2,(00.. .1)2,...,(11.. .1)2};
[0008] 采用基于漢明距離模型的差分能量攻擊方法對(duì)所述功耗曲線進(jìn)行分析,獲得所述 TTS簽名算法中私鑰。
[0009] 進(jìn)一步地,所述TTS簽名算法包括多個(gè)計(jì)算公式q(x) Θ e(x) =r(x);其中,q(x)為 輸入值,e(x)為私鑰,r(x)為輸出值,θ為加法運(yùn)算或乘法運(yùn)算,q(X)、e( X)和r(x)均由GF (2k)的元素組成。
[0010] 進(jìn)一步地,所述依次選取集合中的數(shù)值作為所述計(jì)算公式中的私鑰采樣值,并在 每選取一個(gè)私鑰采樣值時(shí),依次選取所述集合中的數(shù)值作為所述計(jì)算公式的輸入值進(jìn)行運(yùn) 算,獲取運(yùn)算過程中產(chǎn)生的功耗曲線,具體包括:
[0011]在運(yùn)算每個(gè)計(jì)算公式時(shí),依次選取集合中的k個(gè)數(shù)值作為所述計(jì)算公式中私鑰e (X)的采樣值,并在每選取一個(gè)私鑰采樣值時(shí),依次選取所述集合中的所述k個(gè)數(shù)值作為所 述計(jì)算公式的輸入值q(x)進(jìn)行運(yùn)算,獲取每個(gè)私鑰采樣值所對(duì)應(yīng)的k個(gè)輸出值r(x)和k條功 耗曲線;其中,k個(gè)輸入值q (X)、k個(gè)輸出值r (X)和k條功耗曲線--對(duì)應(yīng),k 2 1。
[0012] 進(jìn)一步地,所述采用基于漢明距離模型的差分能量攻擊方法對(duì)所述功耗曲線進(jìn)行 分析,獲得所述TTS簽名算法中私鑰,具體包括:
[0013] 在運(yùn)算每個(gè)計(jì)算公式后,基于漢明距離模型計(jì)算每個(gè)輸入值q(x)及其對(duì)應(yīng)的輸出 值r(x)之間的漢明距離,獲得每個(gè)私鑰采樣值所對(duì)應(yīng)的k個(gè)漢明距離;其中,所述k個(gè)漢明距 離和k條功耗曲線一一對(duì)應(yīng),所述功耗曲線為時(shí)刻與功耗的對(duì)應(yīng)關(guān)系變化曲線;
[0014] 根據(jù)所述漢明距離對(duì)所述k條功耗曲線進(jìn)行分組,使?jié)h明距離大于預(yù)設(shè)值的功耗 曲線為一組,使?jié)h明距離小于預(yù)設(shè)值的功耗曲線為另一組;
[0015] 根據(jù)每組中的所有功耗曲線計(jì)算每個(gè)時(shí)刻的平均功耗,獲取每組的平均功耗曲 線,以使每個(gè)私鑰采樣值對(duì)應(yīng)兩條平均功耗曲線;
[0016] 根據(jù)每個(gè)私鑰采樣值所對(duì)應(yīng)的兩條平均功耗曲線,計(jì)算每個(gè)時(shí)刻的功耗差值,獲 取每個(gè)私鑰采樣值所對(duì)應(yīng)的功耗差值曲線;
[0017]求取每個(gè)私鑰采樣值所對(duì)應(yīng)的功耗差值曲線的極值,獲取極值最大的功耗差值曲 線,并將所述極值最大的功耗差值曲線所對(duì)應(yīng)的私鑰采樣值作為所述計(jì)算公式中的私鑰e (x)〇
[0018] 進(jìn)一步地,所述TTS簽名算法包括第一仿射變換計(jì)算公式;所述第一仿射變換計(jì)算 公式包括第一計(jì)算公式y(tǒng)i = yi+bi和第二計(jì)算公式aij = aij Xyj,i,j = 0,1,…,27;
[0019] 其中,在所述第一計(jì)算公式中,yi為輸入值q(x),bi為私鑰e(x),yi為輸出值r(x); 在所述第二計(jì)算公式中,yj為輸入值q(x),aij為私鑰e(x),aij為輸出值r(x)。
[0020] 進(jìn)一步地,所述TTS簽名算法還包括中心映射計(jì)算公式;
[0021] 所述中心映射計(jì)算公式如下:
[0022]
[0023]
[0024]
[0025]
[0026] 其中,果:為輸入值q(X),Pij為私鑰e (X),fi為輸出值r(X)。
[0027] 進(jìn)一步地,所述TTS簽名算法還包括第二仿射變換計(jì)算公式;所述第二仿射變換計(jì) 算公式包括第三計(jì)算公式$ = $十 < 和第四計(jì)算公式~ = x 5,i,j = 〇,1,. . .,27;
[0028] 其中,在所述第三計(jì)算公式中,巧為輸入值q(x),cU為私鑰e(x),另為輸出值r(x); 在所述第四計(jì)算公式中,巧為輸入值q(x) ,(?為私鑰e(x),Clj為輸出值r(x)。
[0029] 實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
[0030] 本發(fā)明實(shí)施例提供的TTS簽名的解密方法,能夠在TTS簽名算法的運(yùn)算過程中進(jìn)行 功耗采樣,獲得功耗曲線,進(jìn)而采用基于漢明距離模型的差分能量攻擊方法對(duì)功耗曲線進(jìn) 行分析,以獲得TTS簽名算法中使用的私鑰,可在TTS簽名無法進(jìn)行正常解密的情況下,實(shí)現(xiàn) 對(duì)TTS簽名的解密,且有效提高TTS簽名的解密效率。
【附圖說明】
[0031] 圖1是本發(fā)明提供的TTS簽名的解密方法的一個(gè)實(shí)施例的流程示意圖;
[0032] 圖2是本發(fā)明提供的TTS簽名的解密方法中步驟S3的一個(gè)實(shí)施例的流程示意圖;
[0033] 圖3是本發(fā)明提供的TTS簽名的解密系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0034]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0035]參見圖1,本發(fā)明提供的TTS簽名的解密方法的一個(gè)實(shí)施例的流程示意圖,包括: [0036] S1、獲取TTS簽名算法中的計(jì)算公式;
[0037] S2、依次選取集合中的數(shù)值作為所述計(jì)算公式中的私鑰采樣值,并在每選取一個(gè) 私鑰采樣值時(shí),依次選取所述集合中的數(shù)值作為所述計(jì)算公式的輸入值進(jìn)行運(yùn)算,獲取運(yùn) 算過程中產(chǎn)生的功耗曲線;所述集合為{(〇〇.. .0)2,(00.. .1)2,...,(11.. .1)2};
[0038] S3、采用基于漢明距離模型的差分能量攻擊方法對(duì)所述功耗曲線進(jìn)行分析,獲得 所述TTS簽名算法中私鑰。
[0039] 需要說明的是,TTS簽名算法由TTS簽名系統(tǒng)來運(yùn)行,TTS簽名系統(tǒng)根據(jù)輸入的密文 y,計(jì)算并輸出其TTS簽名X。TTS簽名系統(tǒng)包括隨機(jī)數(shù)產(chǎn)生模塊、第一仿射變換模塊、第二仿 射變換模塊、中心映射模塊和私鑰。其中,私鑰包括A、B、C、D和p,其中,A、C是矩陣,B、D是向 量,P是數(shù)組,它們均由GF(2 k)的元素組成,即A = A(aoo,a()i,· · ·,ai9,i9),B = B(bo,bi,· · ·, big),C = C(C00,C01,· · ·,C27,27),D = D(d〇,dl,· · ·,d27),Ρ = Ρ(Ρ〇0,Ρ〇1,· · ·,P27,27)。
[0040] 在TTS簽名系統(tǒng)運(yùn)算過程中,隨機(jī)數(shù)產(chǎn)生模塊用于產(chǎn)生多個(gè)GF(2k)的隨機(jī)數(shù)S,其 中隨機(jī)數(shù)S由GF(2 k)的元素組成,即S = S(so,S1,. . .,s7)。第一仿射變換模塊用于計(jì)算 J = 4)· + 5,其中歹是y經(jīng)過第一次仿射變換后的計(jì)算結(jié)果,密文y和中間的計(jì)算結(jié)果f均由GF (2k)的元素組成,即y = y(y〇,yi, . . · ,yi9),.F = y("..,yi9)。其中,第一次仿射變換計(jì)算公式 j =_辦+ .A具體如下:
[0041] yi = yi+bi ;
[0042] aij = aij Xyj ;
[0043] = (〇〇..,Ο),;
[0044] y,=y,+ ai, > = 〇,i,...,i9。
[0045] 中心映射模塊用于計(jì)算? = .,其中是中心映射的逆變換,?是f經(jīng)過中心映 射逆變換后的計(jì)算結(jié)果,中間的計(jì)算結(jié)果f由GF(2k)的元素組成,即7 =可,…石)。其中, 中心映射計(jì)算公式IzF1?具體如下:
[0046]
[0047]
[0048]
[0049]
[0050] 其中,中心映射模塊的計(jì)算步驟為:利用隨機(jī)數(shù)產(chǎn)生模塊為1,系,...,?選擇隨機(jī)的 數(shù)值;將代入f〇,fi,. . .,fs,并計(jì)算它們的系數(shù);fhfl·,. . .,f8被轉(zhuǎn)化為關(guān)于 的線性方程組,求解這個(gè)線性方程組;將"代入f9,f 1Q中,計(jì)算H1S的值; 將代入fn,f12, · . .,f19中,計(jì)算它們的系數(shù);fn,f12, . . .,f19被轉(zhuǎn)化為關(guān)于 4心的線性方程組,求解這個(gè)線性方程組。
[0051] 第二仿射變換模塊用于計(jì)算x = CT + l>,這里1是?經(jīng)過第二次仿射變換后的計(jì)算結(jié) 果。其中簽名X由GF(2k)的元素組成,即X = X(XQ,X1, . . .,X27)。其中,第二次仿射變換計(jì)算公 式* = CT+I3具體如下:
[0052] X; = s;. + di;
[0053] ?/ =?,χ5;
[0054] xi=(00. · .0)2;
[0055] x = xi+cij,i,j = 0,1,· · ·,27。
[0056] 進(jìn)一步地,所述TTS簽名算法包括多個(gè)直接由私鑰運(yùn)算的計(jì)算公式q(x) 〇 e(x)=r (x);其中,q(x)為輸入值,e(x)為私鑰,r(x)為輸出值,〇為加法運(yùn)算或乘法運(yùn)算,q(x)、e (X)和r(x)均由GF(2 k)的元素組成。
[0057]具體地,在第一仿射變換計(jì)算公式中,第一計(jì)算公式y(tǒng)i = yi+bi和第二計(jì)算公式aij = aijXyj為直接由私鑰A、B運(yùn)算的計(jì)算公式,i, j = 0,l,. . . ,27。其中,在所述第一計(jì)算公式 中,yi為輸入值q(x),bi為私鑰e(x),yi為輸出值r(x);在所述第二計(jì)算公式中,yj為輸入值q (X),aij為私鑰e(x),aij為輸出值r(x)。
[0058] 在中心映射計(jì)算公式中,直接由私鑰p運(yùn)算的計(jì)算公式如下:
[0059]
[0060]
[0061]
[0062]
[0063] 其中,5為輸入值q(x),Pij為私鑰e(x),fi為輸出值r(x)。
[0064] 在第二仿射變換計(jì)算公式中,第三計(jì)算公式X =$ + ??,和第四計(jì)算公式Q 為 直接由私鑰C、D運(yùn)算的計(jì)算公式,i,j = 0,1,. . .,27。其中,在所述第三計(jì)算公式中,?;為輸 入值q(x),cU為私鑰e(x),5為輸出