• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

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

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

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

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

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

      2 SM4算法原理

      SM4算法屬于對稱密碼體制中的分組加密算法,加密過程和解密過程中采用的密鑰一致,其中明文分組、密文分組、密鑰的長度均為128位。解密過程與加密過程的結(jié)構(gòu)相似,不同的是輪密鑰的使用順序相反。加密算法與密鑰擴(kuò)展算法均使用32輪非線性迭代結(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算法中,解密與加密過程的輪密鑰使用順序不同:

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

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

      輪密鑰由加密密鑰生成,加密密鑰長度為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的可信性、安全性是無需質(zhì)疑的。因此,通信雙方首先通過密鑰分配中心KDC獲得對方的公鑰。

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

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

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

      (5)對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開始循環(huán)運(yùn)算,是為了提高數(shù)字串的混亂程度,進(jìn)而優(yōu)化密鑰生成的效果。

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

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

      本文還要求所選的單向散列函數(shù)具有強(qiáng)抗碰撞性。即對于任意的兩組輸入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)生更多的工作密鑰,可以考慮增加基本密鑰長度。例如當(dāng)基本密鑰為256位時(shí),R和T的最大值分別為255和31,工作密鑰個(gè)數(shù)最多為256×32=8192,工作密鑰HRT=HASH(JR ET)的長度依然為128位。

      (9)當(dāng)需要加密/解密的信息量非常大時(shí)(假定W遠(yuǎn)遠(yuǎn)大于2048),可采用增加基本密鑰長度和個(gè)數(shù)的方法來產(chǎn)生更多的工作密鑰。例如通信雙方各自產(chǎn)生K組128位二進(jìn)制串。在產(chǎn)生基本密鑰時(shí),按照順序號相同的原則將每位二進(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)生更多的工作密鑰的算法有很多,可以通過不同的移位、組合等方式實(shí)現(xiàn),本文僅闡述算法的可行性。從理論上講, 128位二進(jìn)制數(shù)按照一定順序排列產(chǎn)生工作密鑰,所以工作密鑰最多有2128種可能。

      4 算法分析

      4.1 算法可行性分析

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

      4.2 弱密鑰分析

      本文雖然在算法復(fù)雜度上進(jìn)行了提升,但由于密鑰均由二進(jìn)制數(shù)字組成,在工作密鑰產(chǎn)生時(shí),不可避免會出現(xiàn)某些比較簡單的工作密鑰(即弱密鑰),這種簡單的工作密鑰會對算法的安全性產(chǎn)生一定影響。因此在生成128位密鑰時(shí),對于連續(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)性,攻擊者無法得知哪些加密/解密過程中存在弱密鑰,所以極少數(shù)弱密鑰的存在并不影響算法的安全性。

      4.3 窮舉法攻擊分析

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

      基金項(xiàng)目:

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

      參考文獻(xiàn)

      [1] 國家密碼管理局.國家密碼管理局公告第23號[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] 國家密鑰管理局.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] 盧開澄.計(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.

      猜你喜歡
      安全性
      細(xì)節(jié)護(hù)理在老年人健康體檢護(hù)理中的應(yīng)用及其安全性分析
      拉西酮治療女性精神分裂癥的療效與安全性分析
      鎖骨骨折內(nèi)固定術(shù)中兩種神經(jīng)阻滯的麻醉效果與安全性比較
      長效胰島素聯(lián)合口服降糖藥治療2型糖尿病的療效與安全性
      民航空中交通管制進(jìn)近程序間隔安全性評估模型
      疤痕子宮再次妊娠經(jīng)陰道分娩的臨床療效及安全性
      西藥臨床應(yīng)用中合理用藥對其安全性的影響
      鼻內(nèi)鏡手術(shù)治療老年慢性鼻竇炎鼻息肉的療效及安全性探討
      關(guān)于橋梁設(shè)計(jì)中的安全性與耐久性問題的幾點(diǎn)思考
      西酞普蘭治療抑郁癥的療效及安全性
      404 Not Found

      404 Not Found


      nginx
      龙井市| 台东县| 肃宁县| 凤山市| 广昌县| 翼城县| 博湖县| 宾阳县| 阿荣旗| 福泉市| 上蔡县| 巴里| 涞水县| 三原县| 寿阳县| 兴宁市| 洪江市| 吕梁市| 乌兰县| 淮安市| 田林县| 柞水县| 措美县| 兴宁市| 宝山区| 烟台市| 浦县| 祥云县| 毕节市| 夏邑县| 大埔县| 浑源县| 崇义县| 宜阳县| 松阳县| 桓台县| 武穴市| 柏乡县| 金昌市| 盐山县| 静安区|