国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一次一密SM4算法的設(shè)計(jì)

2018-06-29 02:01:32艾心吳鳴旦武旭東李小衛(wèi)羅群
網(wǎng)絡(luò)空間安全 2018年2期
關(guān)鍵詞:安全性

艾心 吳鳴旦 武旭東 李小衛(wèi) 羅群

摘 要:SM4算法的優(yōu)點(diǎn)是軟件和硬件容易實(shí)現(xiàn)、運(yùn)算速度快,但是由于其加密算法與解密算法均使用相同的密鑰,并且加密過(guò)程和解密過(guò)程互逆,SM4算法的適用范圍受到了很大限制。SM4算法的缺點(diǎn)是信息安全取決于對(duì)密鑰的保護(hù),密鑰泄漏則意味著任何人都能通過(guò)解密密文獲得明文。論文在SM4算法的基礎(chǔ)上,提出一種“一次一密”的加密機(jī)制,對(duì)其密鑰的安全性進(jìn)行提高,從而提高整個(gè)加密算法的安全性。

關(guān)鍵詞:SM4算法;一次一密;安全性

中圖分類(lèi)號(hào): TP312 文獻(xiàn)標(biāo)識(shí)碼:A

Design of one-time pad SM4 algorithm

Abstract: The advantage of SM4 algorithm is that the software and hardware are easy to implement and computing speed is fast, but becausethe keys inthe encryption algorithm and decryption algorithm are same, and the encryption process and decryption process are mutually inverse, the application range of SM4 algorithm is greatly restricted.The disadvantage of SM4 algorithm is that the information security depends on the protection of the key, and the leakage of key means that anyone can get plaintext by decrypting the ciphertext.On the basis of SM4 algorithm, this paper proposes a "one-time pad" encryption mechanism to improve the security of its key, so as to improve the security of the entire encryption algorithm.

Key words: SM4 algorithm; one-time pad; security

1 引言

隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,無(wú)線(xiàn)局域網(wǎng)正在日益普及,但是其傳輸信息的安全性也正面臨著嚴(yán)峻的挑戰(zhàn)。采用數(shù)據(jù)加密技術(shù)是保證用戶(hù)信息在傳輸過(guò)程中不被暴露和篡改的有效方式。國(guó)家密碼管理局于2012年發(fā)布了一套密碼行業(yè)標(biāo)準(zhǔn)[1],即SM4算法。SM4算法屬于對(duì)稱(chēng)密碼體制中的分組加密算法,加密過(guò)程和解密過(guò)程中采用的密鑰一致,其中明文分組、密文分組、密鑰的長(zhǎng)度均為128位。解密過(guò)程與加密過(guò)程的結(jié)構(gòu)相似,不同的是輪密鑰的使用順序相反[2]。加密算法與密鑰擴(kuò)展算法均使用32輪非線(xiàn)性迭代結(jié)構(gòu)。

SM4算法的優(yōu)點(diǎn)是軟件和硬件容易實(shí)現(xiàn)、運(yùn)算速度快[3],但是由于其加密算法與解密算法均使用相同的密鑰,并且加密過(guò)程和解密過(guò)程互逆,SM4算法的適用范圍受到了很大限制。SM4算法的缺點(diǎn)是信息安全取決于對(duì)密鑰的保護(hù),若攻擊者獲取了密鑰,那么就能通過(guò)解密密文獲得明文。

“一次一密”算法要求每次均采用不同的密鑰來(lái)完成對(duì)明文的加密,即密鑰是隨機(jī)產(chǎn)生的并且明文和密鑰是等長(zhǎng)的。實(shí)現(xiàn)了“一次一密”加密機(jī)制的密鑰才是理論上安全的密鑰[4]。采用這種方案時(shí)除非攻擊者知道完整的密鑰信息,否則須經(jīng)過(guò)2n(n為明文的長(zhǎng)度)次破解嘗試才能獲得密鑰,在現(xiàn)有的計(jì)算能力下是不可能實(shí)現(xiàn)的。本文在SM4算法的基礎(chǔ)上,提出一種“一次一密”的加密機(jī)制,對(duì)其密鑰的安全性進(jìn)行提高,從而提高整個(gè)加密算法的安全性。

2 SM4算法原理

SM4算法屬于對(duì)稱(chēng)密碼體制中的分組加密算法,加密過(guò)程和解密過(guò)程中采用的密鑰一致,其中明文分組、密文分組、密鑰的長(zhǎng)度均為128位。解密過(guò)程與加密過(guò)程的結(jié)構(gòu)相似,不同的是輪密鑰的使用順序相反。加密算法與密鑰擴(kuò)展算法均使用32輪非線(xiàn)性迭代結(jié)構(gòu)。

SM4算法將每個(gè)明文分組和密文分組均分成128位,然后將每個(gè)分組分為4部分,即明文(P0,P1,P2,P3)∈(Z322)4,密 文(Q0,Q1,Q2,Q3)∈(Z322)4。輪密鑰為ghi∈∈Z322,i=0,1,2,…,31。反序變換R為R(B0,B1,B2,B3)=(B3,B2,B1,B0),Bi∈∈Z322,i=0,1,2,3。

本算法的加密變換為:Pi+4=F(Pi,P(i+1),P(i+2),P(i+3),ghi)=Pi?⊕T(Pi,P(i+1),P(i+2),P(i+3),ghi), i=0,1,2,…,31,(Q0,Q1,Q2,Q3)=R(P32,P33,P34,P35)=(P35,P34,P33,P32)。

在SM4算法中,解密與加密過(guò)程的輪密鑰使用順序不同:

加密時(shí)輪密鑰的使用順序:(gh0,…,gh31);

解密時(shí)輪密鑰的使用順序:(gh31,…,gh0)。

輪密鑰由加密密鑰生成,加密密鑰長(zhǎng)度為128比特,表示為NH=(NH0,NH1,NH2,NH3),其中NHi∈∈Z322(i=0,1,2,3)。

3 密鑰產(chǎn)生的協(xié)議及算法

為了描述方便,本文僅討論兩人通信模式。

(1)密鑰分配中心KDC是目前公認(rèn)的最有效的密鑰分配方法,是Kerberos協(xié)議[5]的重要組成部分。KDC的可信性、安全性是無(wú)需質(zhì)疑的。因此,通信雙方首先通過(guò)密鑰分配中心KDC獲得對(duì)方的公鑰。

(2)通信雙方各自生成128位隨機(jī)數(shù),分別用U、V表示,并利用對(duì)方的公鑰加密并進(jìn)行交換;雙方各自計(jì)算J=U?V,J稱(chēng)為基本密鑰。

(3)首先對(duì)基本密鑰J做左循環(huán)運(yùn)算,結(jié)果記為JR。即JR=R<<

(4)按照二進(jìn)制數(shù)字串的順序?qū)?28位的JR分為4組,每32位為一組,并用D0,D1,D2,D3為每組命名。

(5)對(duì)D0,D1,D2,D3依照算法分別作左循環(huán)、右循環(huán)運(yùn)算,運(yùn)算結(jié)果為新的128位數(shù)字串。即:

JR ET=((T+1)<<>>2(T+1))&(D3>>>(T+1)),T=0,1,2,…,15。

之所以從T+1開(kāi)始循環(huán)運(yùn)算,是為了提高數(shù)字串的混亂程度,進(jìn)而優(yōu)化密鑰生成的效果。

(6)將JR ET作為單向散列函數(shù)的輸入值,生成的128位輸出值作為SM4算法的工作密鑰。

單向散列函數(shù)是指將任意長(zhǎng)度的數(shù)據(jù)轉(zhuǎn)換為不可逆轉(zhuǎn)的、定長(zhǎng)的數(shù)字串[6]。即:l)散列函數(shù)是單向的,因此不同輸入數(shù)據(jù)的散列值是獨(dú)立的;2)給予相同的輸入數(shù)據(jù),散列值相同。

本文還要求所選的單向散列函數(shù)具有強(qiáng)抗碰撞性。即對(duì)于任意的兩組輸入x和y,使得輸出H(x)=H(y)在計(jì)算上是不可行的[7]。目前廣泛使用的散列函數(shù)有SHA-1和MD5。SHA-1作為散列數(shù)據(jù)的標(biāo)準(zhǔn),輸出160位的散列值。與SHA-1不同,MD5的輸出為128位的散列值。

工作密鑰HRT=HASH(JR ET),R的最大值為127,T的最大值為15,工作密鑰個(gè)數(shù)最多為128×16=2048。

(7)加密/解密時(shí),偏移量是一個(gè)非常重要的參數(shù)。首先應(yīng)該根據(jù)偏移量求得工作密鑰。設(shè)偏移量為W(假定W<2048),則首先根據(jù)取整運(yùn)算求得R,即R=[W/16],根據(jù)模運(yùn)算求得T,即T=Wmod16。然后根據(jù)R和T的值計(jì)算JR ET,最后得到工作密鑰HRT=HASH(JR ET)。

(8)當(dāng)需要加密/解密的信息量比較大時(shí)(假定W大于2048),須產(chǎn)生更多的工作密鑰,可以考慮增加基本密鑰長(zhǎng)度。例如當(dāng)基本密鑰為256位時(shí),R和T的最大值分別為255和31,工作密鑰個(gè)數(shù)最多為256×32=8192,工作密鑰HRT=HASH(JR ET)的長(zhǎng)度依然為128位。

(9)當(dāng)需要加密/解密的信息量非常大時(shí)(假定W遠(yuǎn)遠(yuǎn)大于2048),可采用增加基本密鑰長(zhǎng)度和個(gè)數(shù)的方法來(lái)產(chǎn)生更多的工作密鑰。例如通信雙方各自產(chǎn)生K組128位二進(jìn)制串。在產(chǎn)生基本密鑰時(shí),按照順序號(hào)相同的原則將每位二進(jìn)制數(shù)進(jìn)行異或運(yùn)算,即:JS=US⊕VS,S∈[0,K]。JSR ET為單向散列函數(shù)的輸入值。當(dāng)加密/解密時(shí)首先求得S=[W/2048],再按照步驟7計(jì)算相應(yīng)的R和T,最終求得JSR ET和工作密鑰HSRT=HASH(JSR ET)。

產(chǎn)生更多的工作密鑰的算法有很多,可以通過(guò)不同的移位、組合等方式實(shí)現(xiàn),本文僅闡述算法的可行性。從理論上講, 128位二進(jìn)制數(shù)按照一定順序排列產(chǎn)生工作密鑰,所以工作密鑰最多有2128種可能。

4 算法分析

4.1 算法可行性分析

本文提出的算法由偏移量可以獨(dú)立計(jì)算出一致的單向散列函數(shù)的輸入值JR ET,并且該輸入值具有強(qiáng)抗碰撞性。通信雙方可獨(dú)立產(chǎn)生完全一致的對(duì)應(yīng)明文/密文的SM4算法的工作密鑰,并且在設(shè)計(jì)時(shí)考慮到SM4算法的對(duì)稱(chēng)加密算法特性。另外,加密/解密過(guò)程均使用SM4算法,符合算法一致的要求,因此算法是可行的。本文的設(shè)計(jì)采用了“一次一密”加密機(jī)制,可以極大地增強(qiáng)SM4算法的安全性。

4.2 弱密鑰分析

本文雖然在算法復(fù)雜度上進(jìn)行了提升,但由于密鑰均由二進(jìn)制數(shù)字組成,在工作密鑰產(chǎn)生時(shí),不可避免會(huì)出現(xiàn)某些比較簡(jiǎn)單的工作密鑰(即弱密鑰),這種簡(jiǎn)單的工作密鑰會(huì)對(duì)算法的安全性產(chǎn)生一定影響。因此在生成128位密鑰時(shí),對(duì)于連續(xù)16位二進(jìn)制數(shù)全為0或全為1的特殊數(shù)字串[8]須適當(dāng)去除,當(dāng)產(chǎn)生這種特殊字符串時(shí),通信雙方須進(jìn)行協(xié)商,重新生成密鑰,以確保安全性。在產(chǎn)生隨機(jī)二進(jìn)制數(shù)時(shí),要求通信雙方應(yīng)盡量做到0、1均勻分布。雖然弱密鑰的產(chǎn)生是不可避免的,但本算法在加密/解密時(shí)采用“一次一密”的加密/解密方式,各個(gè)密鑰間不具備相關(guān)性,攻擊者無(wú)法得知哪些加密/解密過(guò)程中存在弱密鑰,所以極少數(shù)弱密鑰的存在并不影響算法的安全性。

4.3 窮舉法攻擊分析

基于隨機(jī)數(shù)字串通過(guò)單向散列函數(shù)進(jìn)行的散列運(yùn)算,本文設(shè)計(jì)的算法能夠產(chǎn)生“一次一密”的工作密鑰,可以保證在一定范圍內(nèi),SM4算法在每次加密/解密過(guò)程中使用的密鑰均為相互獨(dú)立的,從而提高了算法安全性。該算法不會(huì)因?yàn)楣粽吲既黄谱g的一個(gè)密鑰而影響其他密鑰的安全性,因?yàn)椴煌斎霐?shù)據(jù)的散列值的產(chǎn)生是互不影響的。攻擊者若要破譯一組128位的密文,則需要分析2128個(gè)工作密鑰,破譯成本非常高,在現(xiàn)有的計(jì)算條件下破解是不現(xiàn)實(shí)的,因此攻擊者使用窮舉法破譯本算法是并不可行的。

基金項(xiàng)目:

國(guó)家科技支撐計(jì)劃課題資助(項(xiàng)目編號(hào):2016YFF0204001)。

參考文獻(xiàn)

[1] 國(guó)家密碼管理局.國(guó)家密碼管理局公告第23號(hào)[EB/OL].(2012-03-21).http://www.oscca.gov.cn/News/201204/News_1227.htm.

[2] 張遠(yuǎn)洋,李錚,徐建,張少武.面積優(yōu)先的分組密碼算法SMS4 IP核設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007,(1):127-129.

[3] 國(guó)家密鑰管理局.SM4分組密碼算法[S].GM/T 0002-2012.

[4] D.E.R.丹寧.密碼學(xué)與數(shù)據(jù)安全(美)[M].北京:科學(xué)出版社, 1991.11.

[5] Floyd S,Jacobson V. Random Early Detection Gateways for Congestion Avoidance[J]. IEEE/ACM Trans on Networking,1993,1(4):397-413.

[6] 施榮華.一種基于單向函數(shù)的雙重認(rèn)證存取控制方案[J].電子科學(xué)學(xué)刊,1997,19(2):278-281.

[7] 盧開(kāi)澄.計(jì)算機(jī)密碼學(xué)——計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)保密與安全(第2版)[M].北京:清華大學(xué)出版社,1998.

[8] 王偉,郭錫泉.一次一密DES算法的設(shè)計(jì)[J].計(jì)算機(jī)安全,2006,(5):17-18.

猜你喜歡
安全性
兩款輸液泵的輸血安全性評(píng)估
新染料可提高電動(dòng)汽車(chē)安全性
既有建筑工程質(zhì)量安全性的思考
某既有隔震建筑檢測(cè)與安全性鑒定
基于安全性需求的高升力控制系統(tǒng)架構(gòu)設(shè)計(jì)
加強(qiáng)廣播電視信息安全性的思考
科技傳播(2019年22期)2020-01-14 03:05:32
網(wǎng)約車(chē)安全性提高研究
活力(2019年17期)2019-11-26 00:42:18
注意藥酒服用的安全性
田間施用滅幼脲在桃中的殘留安全性評(píng)估
ApplePay橫空出世 安全性遭受質(zhì)疑 拿什么保護(hù)你,我的蘋(píng)果支付?
汶川县| 六安市| 临清市| 梨树县| 托克托县| 邓州市| 额尔古纳市| 勃利县| 广丰县| 双鸭山市| 噶尔县| 京山县| 台南市| 恩施市| 乌什县| 金乡县| 邛崃市| 布尔津县| 沂源县| 宁德市| 安丘市| 肇源县| 景东| 康乐县| 施秉县| 咸宁市| 右玉县| 彭阳县| 武胜县| 垦利县| 墨竹工卡县| 仁寿县| 德惠市| 连州市| 隆德县| 新邵县| 呈贡县| 澄城县| 台前县| 荔浦县| 烟台市|