基于ofb模式和分組密碼vh的輕量級(jí)流密碼技術(shù)vho的制作方法
【專利說明】基于OFB模式和分組密碼VH的輕量級(jí)流密碼技術(shù)VHO 一、技術(shù)領(lǐng)域
[0001] 本發(fā)明是保密通信領(lǐng)域的一種輕量級(jí)流密碼技術(shù),主要用于無線通信中低成本嵌 入式移動(dòng)終端的安全保密。 二、
【背景技術(shù)】
[0002] 隨著無線網(wǎng)絡(luò)技術(shù)的發(fā)展,信息深入到我們生活的各個(gè)方面。對(duì)于資源受限的 無線終端,由于計(jì)算能力差,存儲(chǔ)空間小,能量供應(yīng)弱,普通密碼技術(shù)難以適用這種資源受 限的環(huán)境需求,這就需要輕量級(jí)密碼,以滿足軟硬件、計(jì)算能力和能耗等資源受限終端的需 求。
[0003] 輕量級(jí)流密碼主要有Grain-128、WG-7和A2U2等。Grain-128無法抵抗相關(guān)密 鑰攻擊,且易受線性攻擊。對(duì)于WG-7,構(gòu)造線性區(qū)分器能區(qū)分密鑰流和隨機(jī)序列,且代數(shù)攻 擊對(duì)其有效。A2U2硬件實(shí)現(xiàn)代價(jià)很小,但有個(gè)大的缺點(diǎn),軟件效率很低,且密鑰短,易受猜 測-確定攻擊。
[0004] 對(duì)于本發(fā)明中的輕量級(jí)流密碼VH0,其軟硬件效率都高于Grain-128和WG-7。 三、
【發(fā)明內(nèi)容】
[0005] 【發(fā)明目的】
[0006] 為了彌補(bǔ)現(xiàn)有輕量級(jí)流密碼的不足,本發(fā)明提供了一種輕量級(jí)流密碼VH0,以解決 現(xiàn)有輕量級(jí)流密碼的綜合效率問題,提高無線通信安全中低成本嵌入式移動(dòng)終端的效用, 并提高了安仝性。
[0007] 【技術(shù)方案】
[0008] 本發(fā)明所述的輕量級(jí)流密碼VHO基于OFB(輸出反饋)模式和分組密碼VH。
[0009] I.VH加密方案
[0010] VH采用SP結(jié)構(gòu),分組長度為64bit,支持長度為64、80、96、112、128bit的密鑰,相 應(yīng)的迭代輪數(shù)分別為r= 10、11、12、13、14輪。¥11有3個(gè)參數(shù):6413^明文?。,密鑰1(,641^七 密文Y。VH的加密過程用Y=VHk (P。)表示,包括以下步驟。
[0011] (1)加密變換表S[256]產(chǎn)生。
[0012] 加密S盒采用偽隨機(jī)變換的方式產(chǎn)生。先計(jì)算T(i) =「|256sin(i) |」,其中「」表 示向下取整運(yùn)算;為了產(chǎn)生不重復(fù)的256個(gè)字節(jié),i的取值由1到30000,遇到重復(fù)的排除, 直到產(chǎn)生全部不重復(fù)的256個(gè)字節(jié)為止。加密變換表S[256]是256個(gè)字節(jié)的一個(gè)偽隨機(jī) 排列,由T中字節(jié)輪換得到:S[T(j)] =T(j+l),S[T(255)] =T(O);其中0彡j彡254。
[0013] (2)密鑰擴(kuò)展。
[0014] 通過遞推進(jìn)行密鑰擴(kuò)展,將L字節(jié)的密鑰K擴(kuò)展成8 (r+1)字節(jié):擴(kuò)展密鑰Key= 匕|1(1|...|1(1=!^|!^|...|1^ +7;其中"|',為連接運(yùn)算。每個(gè)1(1為8字節(jié),其中0<1^^; 每個(gè)kj為1字節(jié),0 <j< 8r+7。對(duì)于8、10、12、14、16字節(jié)的密鑰1(,相應(yīng)的迭代輪數(shù)分 別為r= 10、11、12、13、14輪。擴(kuò)展密鑰Key的前L字節(jié)就是密鑰K:K=I^lk11... |kt1<3 L彡j彡8r+7時(shí),擴(kuò)展密鑰Key中的Icj由ku和kji兩個(gè)字節(jié)遞推得到:< =MV1] ? 其中?為異或運(yùn)算。
[0015] (3)數(shù)據(jù)加密過程:先進(jìn)行初始加密,再進(jìn)行r輪迭代加密,得到密文y,如圖1所 不。
[0016] (a)初始加密:初始密文& = 。其中P。為64bit初始明文,K。為密鑰K的前8 由一K- 字Tl。
[0017] (b)r輪迭代加密。i從1到r,每輪迭代包括以下三步。
[0018] 首先對(duì)數(shù)據(jù)進(jìn)行"行偽隨機(jī)變換",即對(duì)數(shù)據(jù)的每個(gè)字節(jié)用加密S盒進(jìn)行偽隨機(jī)變 換:
[0019] M1U) =SEY1山-)];其中i從1至IJnXjj)表示X1的第j個(gè)字節(jié),0彡j彡7。
[0020] 再把64bit數(shù)據(jù)M1排成8*8的方陣,對(duì)M 每個(gè)斜對(duì)角線用加密S盒進(jìn)行偽隨機(jī) 變換:
[0029] 最后再將上述輸出P1與該輪的子密鑰Ki進(jìn)行異或得到該輪的密文:K=P,e/:,;其 中I<i<r〇
[0030] 最后一輪的輸出結(jié)果Yr即為最終的密文Y。
[0031] II.VHO加解密方案
[0032] 保密通信時(shí),VHO的加解密過程有4個(gè)參數(shù):明文P,密鑰K,初值KS。,密文C。KS。 長度為64bit,是不重復(fù)的偽隨機(jī)數(shù),功能是抗重放攻擊。對(duì)于長度為Ien比特的明文P,VHO 基于分組密碼VH,采用OFB模式產(chǎn)生n=「(Ien-I)/64」+1組密鑰流KSi,其中1彡i彡n, 每組密鑰流的長度為64bit,如圖2所示,即
[0033] Fori=Iton(KSi=VHK (KSi:) ;}
[0034] 其中,VHk (X)表示分組密碼VH采用密鑰K對(duì)數(shù)據(jù)X進(jìn)行加密。
[0035] 則VHO的加密方案為:密文OP?MSBlen(KS),如圖2所示;其中MSBlen(KS)表示截 取全部密鑰流KS的前Ien比特。VHO的解密方案為:明文尸=C?MSBlen(KS)。
[0036] 【有益效果】
[0037] 本發(fā)明所述輕量級(jí)流密碼VHO基于OFB模式和分組密碼VH,支持64bit、80bit、 96bit、112bit、128bit的密鑰。與現(xiàn)有技術(shù)相比,VHO的有益效果表現(xiàn)在以下幾方面。
[0038] (1)軟件效率:在Intel(R)、Core(TM)、CPU為i5-430M、主頻 2. 27GHz、內(nèi)存 2GB、C 語言編程環(huán)境下測試,密鑰長度為80bit的VH0、Grain-128、密鑰長度為80bit的WG-7和密 鑰長度為61bit的A2U2的效率如表1所示。由此可見,VH0-80的軟件效率優(yōu)于其它輕量級(jí) 流密碼。VH0-128的軟件效率為11. 303Mb/s,遠(yuǎn)高于密鑰長度同為128bit的Grain-128。
[0039] 表 1
[0040]
[0041] (2)硬件代價(jià)與效率:VHO、Grain-128、WG-7和A2U2的硬件實(shí)現(xiàn)所需要的門電路 數(shù)如表1所示。因此,VHO的軟硬件效率都高于Grain-128和WG-7。雖然VHO的硬件實(shí)現(xiàn) 代價(jià)高于A2U2,但A2U2有個(gè)大的缺點(diǎn),軟件效率很低,且密鑰短,只有61bit,易受猜測-確 定攻擊。特別地,VHO采用的分組密碼VH的每輪迭代能八核并行,適合硬件和多核軟件實(shí) 現(xiàn),軟硬件執(zhí)行效率高。
[0042] (3)安全性:通過差分分析、線性分析和不可能差分分析對(duì)VHO進(jìn)行了安全性驗(yàn) 證。
[0043] 通過計(jì)算可得VH的S盒的最大差分概率是2 3'415,通過程序計(jì)算密鑰長度為64bit 的VH算法前10輪的活動(dòng)S盒的個(gè)數(shù)DS,如表2所示。由此可得VH的4輪最大差分概率為 DCP4彡221x(i415)=2 7h715< 2 64。當(dāng)?shù)啍?shù)大于4輪時(shí),找不到一個(gè)有效的差分特征進(jìn) 行分析,所以完整輪數(shù)的VH可以抵抗差分分析。
[0044] 表 2
[0045]
[0046] 對(duì)于線性分析,利用計(jì)算加密過程中線性活動(dòng)S盒的個(gè)數(shù)來分析VH的線性特征。 通過計(jì)算可得VH的S盒的最大線性概率是2 2'83,通過程序計(jì)算出密鑰長度為64bit的VH 前10輪的線性活動(dòng)S盒的個(gè)數(shù)LS,如表3所示。由此可得VH的4輪最大線性偏差概率為 LCP4彡224X(2^3)=2 %92< 264。因此根據(jù)線性分析復(fù)雜度,難以找到一個(gè)4輪的線性可把 加密密文從一個(gè)隨機(jī)置換中區(qū)分出來,所以完整輪數(shù)的VH足夠安全,可以抵抗線性分析。
[0047] 表 3
[0048]
[0049] 通過編程實(shí)現(xiàn)不可能差分分析(IDC),得到最大輪數(shù)M= 6。通過進(jìn)一步的理論分 析,找到8條6輪IDC路徑:
[0050]
[0051] 其中aGGF(2s)表示非零差分。由此可知,IDC攻擊對(duì)VH無效。
[0052] 因此,基于OFB模式和分組密碼VH的輕量級(jí)流密碼VHO滿足輕量級(jí)密碼的安全需 求。 四、
【附圖說明】
[0053] 附圖1分組密碼VH的數(shù)據(jù)加密過程
[0054] 附圖2輕量級(jí)流密碼VHO的數(shù)據(jù)加密過程
[0055] 說明:II為連接運(yùn)算為異或運(yùn)算。 五、
【具體實(shí)施方式】
[0056] 下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明。
[0057] I .VH加密方式
[0058] VH采用SP結(jié)構(gòu),分組長度為64bit,支持長度為64、80、96、112、128bit的密鑰,相 應(yīng)的迭代輪數(shù)分別為r= 10、11、12、13、14輪。¥11有3個(gè)參數(shù):6413^明文?。,密鑰1(,641^七 密文Y。VH的加密過程用Y=VHk (P。)表示,按以下步驟實(shí)施。
[0059] (1)加密變換表S[256]產(chǎn)生。
[0060] 加密S盒采用偽隨機(jī)變換的方式產(chǎn)生。先計(jì)算T(i) =「|256sin(i) |」,其中「」表 示向下取整運(yùn)算;為了產(chǎn)生不重復(fù)的256個(gè)字節(jié),i的取值由1到30000,遇到重復(fù)的排除, 直到產(chǎn)生全部不重復(fù)的256個(gè)字節(jié)為止。加密變換表S[256]是256個(gè)字節(jié)的一個(gè)偽隨機(jī) 排列,由T中字節(jié)輪換得到:S[T(j)] =T(j+l),S[T(255)] =T(O);其中0彡j彡254。
[0061] (2)密鑰擴(kuò)展。
[0062] 通過遞推進(jìn)行密鑰擴(kuò)展,將L字節(jié)的密鑰K擴(kuò)展成8 (r+1)字節(jié):擴(kuò)展密鑰Key= 匕|1(1|...|1(1=!^|!^|...|1^ +7;其中"|',為連接運(yùn)算。