專(zhuān)利名稱(chēng):一種針對(duì)Twofish加密芯片的DFA分析方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼安全技術(shù)領(lǐng)域,尤其涉及一種針對(duì)Twofish硬件的DFA分析方法及系統(tǒng),利用DFA技術(shù)進(jìn)行Twofish密碼分析并評(píng)估其安全性。
背景技術(shù):
DFA113(Differential Fault Analysis)技術(shù)是一種高效的密碼分析方法,這一分析方法是基于寄存器中短暫的錯(cuò)誤輸入會(huì)導(dǎo)致少量的錯(cuò)誤輸出。我們利用這一原理,在加密或者解密過(guò)程中插入一個(gè)或者多個(gè)比特位的錯(cuò)誤,能夠得到錯(cuò)誤輸入對(duì)應(yīng)的錯(cuò)誤輸出差分,從而能夠通過(guò)差分分析得到密碼系統(tǒng)的S盒部件或者密鑰等信息。這里我們所使用的DFA攻擊模型是字節(jié)隨機(jī)錯(cuò)誤模型,它假設(shè)攻擊者能夠在加密算法的某個(gè)步驟中引入一個(gè)字節(jié)的隨機(jī)錯(cuò)誤。字節(jié)錯(cuò)誤模型可以通過(guò)接地、電磁干擾、頻率干擾、光照等物理手段引入到設(shè)備當(dāng)中2。Twofish3算法是Bruce在1998年作為AES候選算法提出的,它的分組長(zhǎng)度為 U8bit,密鑰長(zhǎng)度有三種可選U8bit、192bit、256bit。算法經(jīng)過(guò)16輪迭代,其最大特點(diǎn)是 4個(gè)S盒由子密鑰控制,在加密過(guò)程中,明文的左半部分要經(jīng)過(guò)循環(huán)移位,S盒代換,矩陣混淆,函數(shù)混淆以及子密鑰模加。一輪Twofish的結(jié)構(gòu)如
圖1,算法具體如下在第一輪前面和最后一輪后面均有一個(gè)與子密鑰進(jìn)行異或的白化過(guò)程。具體輪函數(shù)結(jié)構(gòu)可以表示為
權(quán)利要求
1.一種針對(duì)Twofish加密芯片的DFA分析方法,其特征在于,包括①令k= O ;②初始化一個(gè)集合candk,candk的元素是個(gè)三元組(owkk,skkj0,Sk1^1),分別代表控制 Sboxk的兩個(gè)字節(jié)密鑰,跟對(duì)應(yīng)的輸出白化密鑰字節(jié);③初始化一系列的aid(d)集合;④隨機(jī)選定一個(gè)明文P,利用加密設(shè)備進(jìn)行一次新的加密,得到密文c,再次利用同一明文P加密一次,并在加密的最后一輪第k字節(jié)引入一個(gè)字節(jié)的隨機(jī)錯(cuò)誤得到錯(cuò)誤密文 c',這樣得到一個(gè)新的差分錯(cuò)誤樣本8個(gè)三元組(c [i],c [i]',£3,^(0<1<8),其中 c[i]表示密文的第i個(gè)字節(jié);⑤從cand集合當(dāng)中取出1個(gè)可能值(owkk,sku,Skkil),如果已經(jīng)遍歷完成,轉(zhuǎn)4,否則利用這個(gè)可能值計(jì)算第k字節(jié)的Sbc^k輸出so = sboxk(owkk θ c\k\,(skk 0,skkl))so = sboxk(owkk 十 c[A], (skk 0,skkl))⑥計(jì)算A=擬十?dāng)M',并判斷(a·ε丨,e3ji) e aid(d) (O彡i < 8)這8個(gè)關(guān)系式是否成立,如果8個(gè)關(guān)系式當(dāng)中任意一個(gè)成立,將三元組(owk。,SlvSk1)從cand當(dāng)中去除,其中對(duì)于i = 0,4,判斷是否屬于aid(0),其它情況下為aid(0) Π aid(l) Π aid(2);⑦判斷cand集合大小,如果cand大小為1,則此三元組即為對(duì)應(yīng)的三個(gè)密鑰值,否則轉(zhuǎn)⑤;⑧令k: = k+1,判斷k是否小于4,如果成立,轉(zhuǎn)②;⑨利用加密設(shè)備加密明文P得到密文C,形成明密文對(duì)(P,C);⑩窮舉剩下的32比特密鑰,然后將前幾步確定的96比特子密鑰與這32比特密鑰串成 128比特密鑰,利用這些密鑰和Twofish算法解密C,得到P',若P = P',則此128比特密鑰即為完整的正確密鑰K; 利用前幾步得到的正確密鑰K跟Twofish算法解密攻擊者手頭的機(jī)密數(shù)據(jù)所有密文,還原得到明文信息,結(jié)束。
2.一種針對(duì)Twofish硬件的DFA的分析系統(tǒng),其特征在于模塊1 用于在硬件加密系統(tǒng)中插入一個(gè)字節(jié)長(zhǎng)度的隨機(jī)錯(cuò)誤ε,同時(shí)跟蹤錯(cuò)誤傳播途徑;模塊2 用于初始化一個(gè)集合cand,cand的元素是個(gè)三元組(Owktl, sk0, Sk1),分別代表控制Sbc^tl的兩個(gè)字節(jié)密鑰,跟對(duì)應(yīng)的輸出白化密鑰字節(jié);模塊3 用于初始化一系列的aid(d)集合;模塊4:用于得到一個(gè)新的差分錯(cuò)誤樣本8個(gè)三元組(c[i],c[i]',ε 3, i) (O ^ i < 8),其中c[i]表示密文的第i個(gè)字節(jié),如果沒(méi)有新樣本,結(jié)束,輸出未能唯一確定密鑰;模塊5:用于從cand集合當(dāng)中取出1個(gè)可能值(Owktl, Sktl, Sk1),如果已經(jīng)遍歷完成,轉(zhuǎn) 3,否則利用這個(gè)可能值計(jì)算第O字節(jié)的sboh輸出so = sbox0{owk0 十 C
,(Sk0ySk1))so = sbox0{owk0 十 C
,(Sk0ySk1))模塊6 用于計(jì)算S1 =擬十?dāng)M,并判斷(a · ε丨,ε 3,i) e aid(d) (O ^ i < 8)這8個(gè)關(guān)系式是否成立,如果8個(gè)關(guān)系式當(dāng)中任意一個(gè)成立,將三元組(owk。,sk0, Sk1)從cand當(dāng)中去除,其中對(duì)于i = 0,4,判斷是否屬于aid(0),其它情況下為aid(0) Π aid(l) Π aid(2); 模塊7 用于判斷cand集合大小,如果cand大小為1,則此三元組即為對(duì)應(yīng)的三個(gè)密鑰值,算法結(jié)束,否則轉(zhuǎn)模塊5。
全文摘要
本發(fā)明涉及密碼芯片安全技術(shù)領(lǐng)域,尤其涉及一種Twofish加密硬件的DFA分析方法及系統(tǒng)。本發(fā)明結(jié)合Twofish這類(lèi)未知S盒的加密系統(tǒng)的特點(diǎn),跟蹤密碼硬件中錯(cuò)誤傳播途徑,在未知S盒的情況下進(jìn)行DFA分析,改進(jìn)了傳統(tǒng)的DFA分析方法,使得在未知S盒的情況下也能夠進(jìn)行有效的DFA分析,分析得到密鑰;在DFA的基礎(chǔ)上運(yùn)用不可能輸入輸出差分集合,對(duì)可能的集合進(jìn)行篩選,從而有效的進(jìn)行密鑰的分析;結(jié)合字節(jié)隨機(jī)錯(cuò)誤模型以及不可能輸入輸出差分集合方法,有效降低了算法的復(fù)雜度,使得這一DFA分析方法僅需16對(duì)錯(cuò)誤樣本,在4*224的計(jì)算復(fù)雜度上就能夠成功恢復(fù)出96bit的密鑰。
文檔編號(hào)H04L9/06GK102158338SQ20111013717
公開(kāi)日2011年8月17日 申請(qǐng)日期2011年5月25日 優(yōu)先權(quán)日2011年5月25日
發(fā)明者伍前紅, 唐明, 張欣雨, 沈菲, 鄧慧, 邱鎮(zhèn)龍 申請(qǐng)人:武漢大學(xué)