亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

對(duì)稱密鑰隨機(jī)分組密碼的制作方法

文檔序號(hào):11234376閱讀:1103來源:國知局
對(duì)稱密鑰隨機(jī)分組密碼的制造方法與工藝

本發(fā)明涉及對(duì)稱密鑰分組密碼的加密、解密方法和技術(shù)實(shí)現(xiàn)。



背景技術(shù):

一、概述

20世紀(jì)70年代,計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展對(duì)信息安全提出了迫切要求,近代密碼學(xué)及其相關(guān)理論和算法于是應(yīng)運(yùn)而生。為保證信息的安全,信息傳送前需要加密,接收者接收加密的信息后需要解密,而信息的加密和解密則需密碼技術(shù)予以實(shí)現(xiàn)。

密碼可大體分為公鑰密碼(publickeycipher)和對(duì)稱密鑰密碼(symmetrickeycipher)。

rsa加密算法是一種基于公鑰體制實(shí)現(xiàn)的加密算法,1977年由羅納德·李維斯特等人提出。des和aes加密算法則是基于對(duì)稱密碼體制實(shí)現(xiàn)的分組加密算法,其中des又被稱為美國數(shù)據(jù)加密標(biāo)準(zhǔn),是1972年由美國ibm公司研制并推出的。aes高級(jí)加密標(biāo)準(zhǔn)(advancedencryptionstandard),是美國聯(lián)邦政府2000年10月2日后采用的一種分組加密標(biāo)準(zhǔn)并用來替代原先的des。

分組密碼是將明文消息的二進(jìn)制編碼序列x0,x1,…,xi,…xw劃分成n比特的若干個(gè)輸入分組,每個(gè)分組x=(x0,x1,…,xn-1),在密鑰k=(k0,k1,…,kt-1)控制下變換成對(duì)應(yīng)的輸出分組y=(y0,y1,…,ym-1)。其加密函數(shù)e:vn×k→vm,實(shí)現(xiàn)把每個(gè)n比特輸入分組轉(zhuǎn)換成對(duì)應(yīng)的m比特輸出分組,其解密函數(shù)d:vm×k→vn,則實(shí)現(xiàn)把m比特輸出分組轉(zhuǎn)換成n比特輸入分組,其中vn和vm分別是n維和m維矢量空間,k為密鑰空間。

分組的長度通常取m=n。若m>n,則為有數(shù)據(jù)擴(kuò)展的分組密碼;若m<n,則為有數(shù)據(jù)壓縮的分組密碼。在2階有限域gf(2)情況下,x和y均為二進(jìn)制數(shù)字序列,其每個(gè)分量xi和yi均屬于gf(2)。

分組密碼算法應(yīng)滿足下述要求:

1、分組長度n要足夠大,以使得分組代換字母表中的元素個(gè)數(shù)2n足夠大,防止窮舉攻擊法輕易地奏效。des、idea、feal和loki等分組密碼采用了n=64比特分組,aes分組密碼采用n=128比特分組。

2、密鑰量要足夠大,盡可能消除弱密鑰,以防止密鑰窮舉攻擊奏效。des采用56比特密鑰,idea采用128比特密鑰,aes密鑰長度可以分別是128,192或256比特。

3、由密鑰確定的變換算法要足夠復(fù)雜,充分實(shí)現(xiàn)明文與密鑰的擴(kuò)散和混淆,沒有簡單的關(guān)系可循,能抗擊各種已知的攻擊,如差分攻擊和線性攻擊;有高的非線性階數(shù),實(shí)現(xiàn)復(fù)雜的密碼變換;使對(duì)手破譯時(shí)除了用窮舉法外,無其它捷徑可循。

4、加密和解密運(yùn)算簡單,易于軟件和硬件高速實(shí)現(xiàn)。

5、差錯(cuò)傳播盡可能地小。

常用分組密碼設(shè)計(jì)技術(shù):

1、替換(polygramsubstitution)

設(shè)明文和密文的分組的長度均為n比特,則明文和密文的每一個(gè)分組都有2n個(gè)可能的取值。為使加密運(yùn)算可逆,明文的每個(gè)分組都應(yīng)產(chǎn)生唯一的密文分組,稱明文分組到密文分組可逆的變換為替換。

2、擴(kuò)散和混淆(diffusionandconfusion)

擴(kuò)散(diffusion)和混淆(confusion)是shannon提出的設(shè)計(jì)密碼系統(tǒng)的兩種基本方法,其目的是為了有效阻止對(duì)手從密文的統(tǒng)計(jì)特性推測(cè)明文和密鑰。所謂擴(kuò)散就是讓明文中的每一位影響密文中的多位,由此隱藏明文的統(tǒng)計(jì)特性,最理想的擴(kuò)散是明文中的每一位影響密文中的所有位。所謂混淆是指將密鑰和密文之間的統(tǒng)計(jì)關(guān)系盡可能復(fù)雜化,使得對(duì)手即使獲取了某些密文的統(tǒng)計(jì)特性也無法推測(cè)密鑰。

在c.e.shannon所提出的理想密碼系統(tǒng)中,密文的所有統(tǒng)計(jì)特性都與所使用的密鑰無關(guān)。

二、本發(fā)明所能達(dá)到的效果

本發(fā)明針對(duì)傳統(tǒng)分組密碼的密鑰直接參與密文或明文的計(jì)算,從而導(dǎo)致的密鑰與密文統(tǒng)計(jì)特性存在較密切關(guān)聯(lián)的缺陷,設(shè)計(jì)了一個(gè)對(duì)稱密鑰隨機(jī)分組密碼。此密碼在加密或解密時(shí),密鑰的唯一作用是通過選擇邏輯根據(jù)秘鑰值選擇一組不包含密鑰信息的函數(shù)式,由函數(shù)式完成加密或解密變換,以達(dá)到隔離密鑰與密文統(tǒng)計(jì)特性的目的。對(duì)于對(duì)手而言,這種通過密鑰值選擇加密函數(shù)去完成明文加密變換的加密機(jī)制更多地體現(xiàn)了在加密過程中密鑰隱秘性的一面。



技術(shù)實(shí)現(xiàn)要素:

一、隨機(jī)分組密碼

現(xiàn)有的分組密碼設(shè)計(jì)幾乎都是通過把明文和密鑰直接進(jìn)行運(yùn)算從而產(chǎn)生密文,由此帶來的一個(gè)弊端是密鑰緊密依賴于密文的統(tǒng)計(jì)特性。例,des的16輪變換的輸出li和ri是由明文信息和密鑰信息經(jīng)擴(kuò)展、異或、代換、置換和異或運(yùn)算所生成,des最終的密文也是由明文信息和密鑰信息直接運(yùn)算所形成。。

事實(shí)上,現(xiàn)有分組密碼算法,如idea和loki9等,其密文均由明文信息和密鑰信息直接計(jì)算形成,密文與明文和密鑰直接相關(guān)。由于密鑰直接參與密文或明文的計(jì)算,對(duì)手可采用差分攻擊和線性攻擊等手段對(duì)密鑰進(jìn)行分析并有可能加以破解,因此或許上述特點(diǎn)正是這類分組密碼的固有和致命缺陷。

一個(gè)n比特明文分組具有2n個(gè)不同明文分組值,若將其變換為n比特密文分組,則密文分組共有2n個(gè)不同的分組值。從2n個(gè)明文分組值變換為2n個(gè)不同的密文分組值共有2n!種不同的變換,一個(gè)理想的隨機(jī)分組密碼應(yīng)能實(shí)現(xiàn)2n!種不同的變換。

定義1一個(gè)n比特理想對(duì)稱密鑰隨機(jī)分組密碼是滿足下述條件的分組密碼:

a、不同的密鑰有2n!個(gè),分別一一對(duì)應(yīng)對(duì)應(yīng)著2n!種不同的可逆加密變換。

b、任給一密鑰k,通過條件選擇邏輯可根據(jù)密鑰k選擇一個(gè)唯一的可逆加密變換ti:若k=i,則選擇ti,i=0,1,...2n!-1。

c、可逆加密變換ti實(shí)現(xiàn)把明文空間中的任意一個(gè)明文變換成密文空間中的唯一一個(gè)密文,其逆變換t-1i則實(shí)現(xiàn)把密文空間中的任意一個(gè)密文變換成明文空間中的唯一一個(gè)明文。

定義2一個(gè)n比特對(duì)稱密鑰隨機(jī)分組密碼是滿足下述條件的分組密碼:

a、不同的密鑰有|k|個(gè),分別一一對(duì)應(yīng)對(duì)應(yīng)著|k|種不同的可逆加密變換,|k|表示密鑰空間的大小(size)。

b、任給一密鑰k,通過條件選擇邏輯可根據(jù)密鑰k選擇一個(gè)唯一的可逆加密變換ti:若k=i,則選擇ti,i=0,1,...|k|-1。

c、可逆加密變換ti實(shí)現(xiàn)把明文空間中的任意一個(gè)明文變換成密文空間中的唯一一個(gè)密文,其逆變換t-1i則實(shí)現(xiàn)把密文空間中的任意一個(gè)密文變換成明文空間中的唯一一個(gè)明文。

定理n比特理想對(duì)稱密鑰隨機(jī)分組密碼和n比特對(duì)稱密鑰隨機(jī)分組密碼具有抵抗除窮盡攻擊外任何其他攻擊的能力。

證明由上述定義1和定義2可知,理想隨機(jī)分組密碼和隨機(jī)分組密碼的密鑰的唯一作用是從若干個(gè)變換中選擇一個(gè)變換,密鑰不參與密文的復(fù)雜計(jì)算,因此其密鑰和密文的統(tǒng)計(jì)特性得以自然隔離。因?yàn)槌F盡攻擊外針對(duì)密碼的攻擊均依賴于這種統(tǒng)計(jì)特性,所以針對(duì)n比特理想隨機(jī)分組密碼和n比特隨機(jī)分組密碼的有效攻擊只有窮盡攻擊。

由上述可知,一個(gè)n比特理想隨機(jī)分組密碼,不同的密鑰值有2n!個(gè),分別一一對(duì)應(yīng)著2n!種不同的變換,密鑰的唯一作用就是通過密鑰的簡單邏輯運(yùn)算在2n!種變換中選中一種變換,去實(shí)現(xiàn)明文至密文的變換。然而,設(shè)計(jì)實(shí)現(xiàn)一個(gè)理想分組密碼絕非易事,一個(gè)n比特的理想隨機(jī)分組密碼需要2n!個(gè)密鑰,其密鑰比特?cái)?shù)為log2(2n!)比特。例,n=5,25!≈2.6×1035,所需密鑰比特?cái)?shù)約為118比特。理想分組密碼的較多密鑰比特?cái)?shù)為密鑰的保存和傳送帶來了極大的不便,且當(dāng)n較大時(shí)2n!種不同變換的設(shè)計(jì)實(shí)現(xiàn)幾乎是不可能的。

二、隨機(jī)子分組

本發(fā)明把長度為2m比特的分組劃分為m個(gè)2比特的子分組,然后實(shí)現(xiàn)2比特子分組對(duì)應(yīng)24種不同變換中的16種變換。對(duì)于2m比特的分組,盡管這種方式所實(shí)現(xiàn)變換數(shù)遠(yuǎn)小于22m!,其不同變換數(shù)仍達(dá)到16m=24m種,且加密或解密時(shí)密鑰不直接參與加密或解密的復(fù)雜運(yùn)算,達(dá)到了密鑰與密文或明文的有效隔離。

隨機(jī)子分組由2個(gè)輸入邏輯變量x1和x0,2個(gè)輸出變量f和g,4個(gè)控制邏輯變量k3、k2、k1、k0(作為密鑰輸入端)和內(nèi)部控制邏輯組成,如圖1所示。內(nèi)部控制邏輯實(shí)現(xiàn)了16組由fi和gi組成的函數(shù)表達(dá)式分別對(duì)應(yīng)著16種不同的加密變換并可根據(jù)k3、k2、k1、k0的不同取值選擇其中一種變換。這16組函數(shù)式如下所示:

上式中,⊕是邏輯變量異或二元運(yùn)算符,其計(jì)算規(guī)則為:0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0;⊙是邏輯變量同或二元運(yùn)算符,其計(jì)算規(guī)則為:0⊙0=1,0⊙1=0,1⊙0=0,1⊙1=1;-是邏輯變量求補(bǔ)一元運(yùn)算符,其計(jì)算規(guī)則為:

隨機(jī)子分組具有如下基本屬性:

1、根據(jù)密鑰值變換函數(shù)的選擇

內(nèi)部控制邏輯根據(jù)邏輯變量k3、k2、k1和k0的不同取值選擇其中一種變換,其選擇邏輯為:若k3k2k1k0=i,則選擇fi和gi,i=0,1,2,...15。

2、加密密鑰和解密密鑰對(duì)

隨機(jī)子分組有10組加密、解密密鑰對(duì)。當(dāng)加密、解密密鑰對(duì)中的一個(gè)密鑰用于加密時(shí),另一個(gè)密鑰則用于解密。10組加密、解密密鑰對(duì)如下所示:

3、密鑰不直接參與明文或密文的計(jì)算

不同于des等分組密碼,隨機(jī)子分組的密鑰k3k2k1k0不直接參與明文或密文的計(jì)算,密鑰僅僅用于控制選擇16組函數(shù)中的一組函數(shù)進(jìn)行加密或解密變換。由于一組函數(shù)一一對(duì)應(yīng)著一種變換,因此選擇了函數(shù)組就等價(jià)于選擇了對(duì)應(yīng)的變換。

4、輸入值變化的或然性擴(kuò)散

隨機(jī)子分組包含16組函數(shù)式,每組均由兩個(gè)函數(shù)式fi(x1,x0)和gi(x1,x0)組成,x1和x0中必有一個(gè)變量以原變量或反變量的形式同時(shí)出現(xiàn)在這兩個(gè)函數(shù)式中而另一個(gè)變量僅出現(xiàn)在一個(gè)函數(shù)式中。因而,當(dāng)這個(gè)同時(shí)出現(xiàn)在兩個(gè)函數(shù)式中的變量的值變化時(shí),這個(gè)變量的變化或可擴(kuò)散至兩個(gè)輸出端。

當(dāng)使用隨機(jī)子分組進(jìn)行多級(jí)加密時(shí),輸入值的變化或可擴(kuò)散至較多個(gè)輸出端,這種輸入值變化擴(kuò)散的或然性增加了密文的隨機(jī)性,尤其是對(duì)手采用差分分析等攻擊手段試圖破譯密碼時(shí)極大地增加了密碼的安全性。

三、隨機(jī)分組密碼組件

如圖2所示,隨機(jī)分組密碼組件是由若干個(gè)隨機(jī)子分組并聯(lián)構(gòu)成,其功能是實(shí)現(xiàn)對(duì)明文或密文的單輪加密或解密。對(duì)于2m比特的分組,隨機(jī)分組密碼組件是由m個(gè)隨機(jī)子分組并聯(lián)構(gòu)成,其中m為一個(gè)正整數(shù)。

當(dāng)隨機(jī)分組密碼組件用于加密時(shí),輸入明文是:x2m-1x2m-2...x1x0,其輸出密文是:f2m-1f2m-2...f1f0,其密鑰是:k=km-1km-2...k1k0,其中ki是密鑰位。每個(gè)密鑰位ki=(k3k2k1k0)2的可取值二進(jìn)制數(shù)是:0000至1111,i=0,1...m-1。若將組件用于解密變換,x2m-1x2m-2...x1x0輸入密文,f2m-1f2m-2...f1f0則輸出明文,其解密密鑰需將加密密鑰的各密鑰位ki經(jīng)(2)式變換后輸入至km-1km-2...k1k0端。

為闡述隨機(jī)分組密碼組件的工作原理,假設(shè)2m=4,k=k1k0,k1=0010,k0=1101,明文為x3x2x1x0=0010。加密時(shí),在密鑰位k1k0的控制下,選擇(1)式的第2組和第13組函數(shù)式分別對(duì)x3x2和x1x0進(jìn)行加密變換。經(jīng)組件變換后,f3=x3⊕x2=0⊕0=0,f2=x3=0,f0=x1⊕x0=1⊕0=1,即密文為f3f2f1f0=0011。解密時(shí),密鑰k1由0010轉(zhuǎn)換為1010,k0由1101轉(zhuǎn)換為0111,輸入密文為x3x2x1x0=0011,在密鑰位k1k0的控制下,選擇(1)式的第10組和第7組函數(shù)式分別對(duì)x3x2和x1x0進(jìn)行加密變換。經(jīng)組件變換后,f3=x2=0,f2=x3⊕x2=0⊕0=0,f1=x1⊙x0=1⊙1=1,即解密后的明文為f3f2f1f0=0010。

隨機(jī)分組密碼組件具有如下屬性:

1、基于密鑰值選擇加密變換的加密機(jī)制,通過條件選擇邏輯根據(jù)密鑰值選擇加密變換,密鑰不直接參與密文的計(jì)算。

由于組件的密鑰k由m個(gè)有序密鑰位ki組成,每個(gè)密鑰位ki可選擇16個(gè)函數(shù)組之一,因此每個(gè)密鑰共可選擇m個(gè)函數(shù)組的2m個(gè)函數(shù)式。對(duì)明文的加密是通過2m個(gè)函數(shù)分別對(duì)m個(gè)2比特的明文計(jì)算求得密文,密鑰k和密鑰位ki并未出現(xiàn)在2m個(gè)函數(shù)中,因而該組件不同于傳統(tǒng)的分組密碼,其密鑰不直接參與密文或明文的計(jì)算。

2、密鑰空間的大小(size)為16m

若2m=64,則其密鑰空間大小為1632=2128,相較于des分組密碼,其密鑰空間擴(kuò)大了約264倍。

由于隨機(jī)分組密碼組件的加密是通過有序密鑰位ki去選擇不同函數(shù)式實(shí)現(xiàn)的,因而并不是真正意義上的隨機(jī)分組變換。真正的隨機(jī)分組變換每一個(gè)密鑰值對(duì)應(yīng)于一種變換,僅僅由密鑰值選擇一種變換,而不是通過密鑰的密鑰位去選擇函數(shù)組中的函數(shù)去實(shí)現(xiàn)加密變換。真正隨機(jī)分組的變換理應(yīng)僅僅與密鑰值相關(guān)而與密鑰的密鑰位ki無關(guān)。

四、對(duì)稱密鑰隨機(jī)分組密碼(symmetricalkeyrandomblockcipher,skrbc)

為打破隨機(jī)分組密碼組件中明文位和密文位與密鑰位(ki,i=0,1...15)的一一對(duì)應(yīng)關(guān)系,作者對(duì)隨機(jī)分組密碼組件進(jìn)行了完善。完善后的對(duì)稱密鑰隨機(jī)分組密碼其加密和解密過程如圖3和圖4所示。

數(shù)據(jù)結(jié)構(gòu)

1、分組明文:x0,x1,...x2m-10,x2m-9,其中2m為分組的長度,m是一個(gè)較大正整數(shù),一般m≥32,xi∈gf(2)(二階有限域),i=0,1,...2m-9。

2、隨機(jī)數(shù)據(jù)信息:r=r7r6r5r4r3r2r2r0,ri∈gf(2),i=0,1...7。

3、分組打包數(shù)據(jù):w0,w1,...w2m-1,其中2m為分組的長度,m是一個(gè)較大正整數(shù),一般m≥32,wi∈gf(2),i=0,1,...2m-1。

4、分組密文:f0,f1,...f2m-2,f2m-1,fi∈gf(2),i=0,1,...2m-1。

5、加密密鑰和加密子密鑰keyi

keyi=ki0ki1...kim-1,kij∈gf(16),i=0,1...n-1,j=0,1,...m-1。

key0為加密密鑰,key1...keyn-1為由key0生成的加密子密鑰。

對(duì)稱密鑰隨機(jī)分組密碼加密過程

對(duì)稱分組密碼的加密由子密鑰生成和加密變換兩個(gè)階段組成,其中加密變換共計(jì)n輪,詳情如下所示。

1、子密鑰生成

如圖3(a)中處理模塊1所示,此階段由密鑰key0生成n-1個(gè)子密鑰:key1,key2,...keyn-1,其算法描述為:

keyji←key0i⊕dj,0≤dj≤15,若n<16且k≠j,則dk≠dj;i=0,1,...m-1,j=1,2...n-1,k=1,2...n-1?!皑挕北硎景次划惢蜻\(yùn)算符,key0j⊕dj表示將key0j和dj逐位進(jìn)行異或運(yùn)算。

2、加密變換

加密過程如圖3(b)所示,其步驟為:

步驟1、輸入2m-8比特的明文,存入x0,x1,...x2m-10,x2m-9,m為一個(gè)正整數(shù)。

步驟2、在明文的最后添加一個(gè)字節(jié)隨機(jī)數(shù)據(jù)信息,明文分組打包成2m比特的分組:

w2m-1w2m-2...w1w0=x2m-9x2m-10...x1x0r7r6r5r4r3r2r2r0,

w2m-1w2m-2...w1w0為打包后的2m比特的分組,r7r6r5r4r3r2r2r0為一字節(jié)隨機(jī)數(shù)據(jù)信息,

r7r6r5r4r3r2r2r0=x7x6x5x4x3x2x1x0⊕x15x14x13x12x11x10x9x8⊕...⊕x2m-9x2m-10x2m-11x2m-12x2m-13x2m-14x2m-15x2m-16

⊕表示按位異或,即每個(gè)字節(jié)相同位權(quán)的位進(jìn)行異或運(yùn)算。若明文不足2m-8比特,則在明文的末尾以隨機(jī)數(shù)據(jù)信息r填充,以湊齊2m比特。

步驟3、數(shù)據(jù)變換

2m比特打包后的分組按字節(jié)進(jìn)行變換:

w7w6w5w4w3w2w1w0←w7w6w5w4w3w2w1w0⊕d1

w15w14w13w12w11w10w9w8←w15w14w13w12w11w10w9w8⊕d2

......

w2m-1w2m-2w2m-3w2m-4w2m-5w2m-6w2m-7w2m-8←w2m-1w2m-2w2m-3w2m-4w2m-5w2m-6w2m-7w2m-8⊕d2m/8

其中,1≤di≤255,i=1,2...,2m/8,符號(hào)“/”表示普通除法運(yùn)算符,⊕表示按位異或運(yùn)算符。步驟4、n輪加密變換

打包后的分組其加密共有n輪。每輪加密變換由隨機(jī)分組密碼組件變換、位兩兩交換和分組循環(huán)左移ci位三個(gè)步驟組成。n為一個(gè)正整數(shù)。n的數(shù)值越大輸入明文中一位變化所引起數(shù)據(jù)擴(kuò)散程度越高,加密算法的安全性亦越高,建議選取n大于等于3作為加密變換的輪數(shù)。

n輪加密中每輪加密變換步驟:

步驟4.1、隨機(jī)分組密碼組件變換

隨機(jī)分組密碼組件變換的功能是實(shí)現(xiàn)加密變換,待處理數(shù)據(jù)w2m-1w2m-2...w1w0的各位數(shù)據(jù)分別送入組件的輸入端進(jìn)行加密變換,并把其輸出f2m-1f2m-2...f1f0作為下一步處理的輸入。

步驟4.2、位兩兩交換

把f2m-1f2m-2...f1f0分成m個(gè)二元組:(f2m-1,f2m-2)m-1,...(f3,f2)1,(f1,f0)0,然后把所有分組中的兩位分別與不同分組中的位進(jìn)行交換。

設(shè)待交換的二元組是(fx,fx+1)k,其它任意兩個(gè)二元組分別是:(fy,fy+1)p,(fz,fz+1)q,其中0≤x,y,z≤2m-2,0≤k,p,q≤m-1,且x≠y,x≠z,z≠y,k≠p,k≠q,p≠q,滿足上述要求的方案有8種,可任選其中任意一種交換方案,例符號(hào)表示把其左右兩端中的位互換位置。

完成位交換后的數(shù)據(jù)仍記為f2m-1f2m-2...f1f0,并將其作為下一步處理的輸入數(shù)據(jù)。

步驟4.3、分組循環(huán)左移ci位

f2m-1f2m-2...f1f0循環(huán)左移ci位,其中0≤ci<2m-1。完成循環(huán)左移后的數(shù)據(jù)仍記為f2m-1f2m-2...f1f0,并將其作為下一輪處理的輸入數(shù)據(jù)。

重復(fù)4.1、4.2、4.3步驟n次,即完成數(shù)據(jù)的n輪加密變換。每輪變換的4.3步驟中的循環(huán)左移位數(shù)ci每輪應(yīng)選為不同數(shù)值,但加密和解密所選ci應(yīng)相同。第n輪加密變換的輸出f2m-1f2m-2...f1f0作為密文輸出之。

步驟5、結(jié)束

對(duì)稱密鑰隨機(jī)分組密碼解密過程

對(duì)稱密鑰隨機(jī)分組密碼的解密是加密的逆過程。解密過程由解密密鑰生成和解密變換兩個(gè)階段組成,其中解密變換也需n輪,詳情如下所示。

1、解密密鑰和解密子密鑰生成

如圖4(a)所示,其步驟為:

步驟1、根據(jù)密鑰key0生成子密鑰key1、key2...keyn-1

子密鑰key1...keyn-1的生成與加密子密鑰的生成方法相同,詳見加密子密鑰的生成方法。

步驟2、求解key0、key1...keyn-1的解密密鑰

根據(jù)(2)式給出的加密和解密密鑰對(duì),分別求出key0、key1...keyn-1的解密密鑰,仍存入key0、key1...keyn-1。

2、解密變換

解密過程如圖4(b)所示,其步驟為:

步驟1、輸入2m-1比特的密文,存入x0,x1,...,x2m-1,m為一個(gè)正整數(shù)。

步驟2、n輪解密變換。

步驟2.1分組循環(huán)右移ci位

x2m-1...x1x0循環(huán)右移ci位。此步處理與4.3步驟的循環(huán)左移ci位的操作除移位方向不同外其他均相同,右移的次數(shù)ci與加密時(shí)所移位次數(shù)亦相同。

步驟2.2位兩兩交換

此步操作與加密變換的4.2步驟相同,操作后的結(jié)果仍表示為x2m-1...x1x0。

步驟2.3隨機(jī)分組密碼組件變換

隨機(jī)分組密碼組件變換的操作與與加密變換的4.1相同。

重復(fù)步驟2.1、2.2和2.3n次,第n次操作的結(jié)果記為f2m-1f...f1f0。

步驟3、數(shù)據(jù)變換。

此步操作與與加密變換的步驟3相同。數(shù)據(jù)變換操作的結(jié)果記為f2m-1...f1f0。

步驟4、分組數(shù)據(jù)解包成2m-8位的分組

去除分組數(shù)據(jù)變換的最低8位,即去除f2m-1...f1f0中的f7f6f5f4f3f2f2f0,把f2m-1...f9f8作為明文x2m-8...x1x0輸出,結(jié)束解密計(jì)算過程。

基本算法測(cè)試

針對(duì)對(duì)稱密鑰隨機(jī)分組密碼加密和解密算法,本發(fā)明的作者編寫了c語言實(shí)現(xiàn)的加密和解密算法基本函數(shù)庫和64比特分組、128比特分組和256比特分組實(shí)驗(yàn)程序,包括基本加密、解密程序、數(shù)據(jù)一位變化擴(kuò)散實(shí)驗(yàn)程序和隨機(jī)子分組線性分析實(shí)驗(yàn)程序等程序。

加密或解密時(shí)采用4輪加密或解密變換。子密鑰生成階段的3個(gè)參數(shù)分別為:d1=0x5,d2=0xa,d3=0x7。數(shù)據(jù)變換模塊(參見圖3和圖4)的參數(shù)為:(d1,d2,...d32)=(0x1,0xf2,0xd5,0x34,0xa1,0x32,0x5,0x34,0x1,0xf2,0x5,0xd4,0x1,0x2,0x5,0x34,0x1,0x2,0x5,0xa4,0x21,0x2,0x5,0x34,0x11,0x32,0x15,0x34,0x11,0x2,0x5,0x34),其中64位分組采用以上向量的前8個(gè)分量,128位分組采用采用以上向量的前16個(gè)分量,256位分組采用以上向量的所有分量。分組循環(huán)左移次數(shù)ci其四輪取值分別為c1=3,c2=7,c3=11,c4=0(參見圖3的4.3和圖4的2.1)。以上參數(shù)是隨機(jī)選擇設(shè)置的,實(shí)際應(yīng)用中建議盡量避免多個(gè)參數(shù)的值雷同。

實(shí)驗(yàn)結(jié)果如下所示:

一、基本加密解密實(shí)驗(yàn)

基本加密解密實(shí)驗(yàn)包括64比特、128比特和256比特分組的加密、解密實(shí)驗(yàn),其目的是驗(yàn)證加密、解密算法的正確性。

圖5(a),(b),(c)分別是64比特、128比特和256比特分組的加密解密實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。圖5中,plaintext表示明文數(shù)據(jù),ciphertext表示密文數(shù)據(jù),deciphertext表示解密后的明文數(shù)據(jù)。由圖5可知,加密前的明文與解密后的明文完全一致,從而驗(yàn)證了對(duì)稱密鑰隨機(jī)分組密碼加密和解密算法的正確性。

二、分組1位數(shù)據(jù)變化擴(kuò)散實(shí)驗(yàn)

差分分析是一種針對(duì)分組密碼的分析方法,其思路是改變一部分明文,通過分析密文變化所產(chǎn)生的與明文的偏差獲得破譯密碼的線索。

分組1位數(shù)據(jù)變化擴(kuò)散實(shí)驗(yàn)就是依據(jù)差分分析的基本原理而實(shí)施的。分組1位數(shù)據(jù)變化擴(kuò)散實(shí)驗(yàn)包括64比特、128比特和256比特分組的1位數(shù)據(jù)變化擴(kuò)散實(shí)驗(yàn),其基本方法是,分別對(duì)兩組僅有一個(gè)數(shù)據(jù)位不同的明文進(jìn)行加密,然后比對(duì)相應(yīng)的兩組密文,統(tǒng)計(jì)兩組密文中取值不同位的總位數(shù),其目的是查看一位明文變化所引起的密文變化的擴(kuò)散程度。

圖6(a)、(b)和(c)分別是64比特、128比特和256比特分組明文一位變化所引起的密文變化的位數(shù)。圖6(a)中,明文的第六個(gè)字節(jié)由0x6b變化為0x6a時(shí)(最低二進(jìn)制位變化)引起密文7位變化。圖6(b)中,明文的第一個(gè)字節(jié)由0xff變化為0xfe時(shí)引起密文14位變化,圖6(c)中明文的第四個(gè)字節(jié)由0x73變化為0x74時(shí)引起密文20位變化。

以上實(shí)驗(yàn)結(jié)果表明,當(dāng)對(duì)手試圖根據(jù)輸入值和輸出值的對(duì)應(yīng)關(guān)系去構(gòu)造輸出函數(shù)式并由此推斷密鑰位ki是極為困難的。經(jīng)過四輪加密變換,每個(gè)密鑰位ki與明文或密文的二進(jìn)制位對(duì)應(yīng)關(guān)系得以充分隱匿,其密鑰從外部性能上更像一個(gè)不可分割的整體。

三、線性分析測(cè)試

線性分析也是一種針對(duì)分組密碼的分析方法,常用于對(duì)傳統(tǒng)分組密碼的分析,其基本思路是將明文和密文的某些對(duì)應(yīng)位進(jìn)行異或(xor)運(yùn)算,并計(jì)算結(jié)果為零的概率,其概率應(yīng)為二分之一。若能找到概率大幅偏離二分之一的位則可以由此獲得與密鑰有關(guān)的信息。

3.1隨機(jī)子分組測(cè)試

根據(jù)(1)式,隨機(jī)子分組的十六個(gè)函數(shù)組依次為(f0,g0),(f1,g1)...(f15,g15),其中fi和x1分別是高位的輸出和輸入位,gi和x0分別是低位的輸出和輸入位,i=0,1...15。依據(jù)線性分析的原理把x1和fi異或、x0和gi異或可得:

(x1⊕f0,x0⊕g0),(x1⊕f1,x0⊕g1),...(x1⊕f15,x0⊕g15)(3)式

令x1x0依次取值為:00,01,10,11,編程分別計(jì)算(3)式中兩個(gè)表達(dá)式的值,其實(shí)驗(yàn)結(jié)果如圖7(a)所示。圖7(b)中省略了變量x1和x0,僅給出了密鑰ki和對(duì)應(yīng)的x1⊕fi和x0⊕gi的結(jié)果:ki:(x1⊕fi,x0⊕gi)。

在圖7中,當(dāng)密鑰位ki一定時(shí),隨機(jī)子分組的加密輸出結(jié)果為零的概率并不為二分之一,ki=15的行甚至出現(xiàn)了輸出值等于1的概率是1的位(該行的高位輸出部分)。按照傳統(tǒng)分組密碼的線性分析方法,隨機(jī)子分組的密鑰位應(yīng)該是極易破解的。然而不同于傳統(tǒng)的分組密碼,該分組單元是以2位為單位進(jìn)行加密和解密的且密鑰位ki的每個(gè)取值分別對(duì)應(yīng)了一組函數(shù)式,16個(gè)密鑰位ki的值以及對(duì)應(yīng)函數(shù)組函數(shù)對(duì)兩個(gè)輸入變量x1x0加密后線性分析的結(jié)果確是均勻分布的,圖7中輸出為00、01、10和11的次數(shù)均為16次。

為分析隨機(jī)子分組的安全性,根據(jù)圖7繪制線性分析表,如表1所示。

表1

在表1中,當(dāng)密鑰位ki=1時(shí),選擇(1)式中的第1組函數(shù)式(f1,g1)。x1x0=00時(shí),(x1⊕f1,x0⊕g1)=(1,0);x1x0=01時(shí),(x1⊕f1,x0⊕g1)=(0,0);x1x0=10時(shí),(x1⊕f1,x0⊕g1)=(1,0);x1x0=11時(shí),(x1⊕f1,x0⊕g1)=(0,0),表1中的其他行按照類似方法得出。

假設(shè)對(duì)手可以得到任意的明文密文對(duì)(采用選擇明文攻擊方式),即當(dāng)輸入x1x0的值后可得到figi的取值,但是密鑰位ki的值未知。

當(dāng)對(duì)手輸入x1x0=00時(shí),假設(shè)取得figi=10,10與x1x0=00異或后得(x1⊕fi,x0⊕gi)=(1,0)(如表1中的第1列所示)。由于(1,0)對(duì)應(yīng)于1、5、13和14四個(gè)密鑰位,因此對(duì)手不能確定密鑰位ki的值。繼續(xù)輸入x1x0=01,假設(shè)計(jì)算后得(x1⊕fi,x0⊕gi)=(0,0)(如表1中ki=1和ki=13行的第2列所示),由于00對(duì)應(yīng)于1和13兩個(gè)密鑰位,因此對(duì)手仍不能確定密鑰位的值。若要求解密鑰位的確切值只有繼續(xù)輸入x1x0=10或x1x0=11,方能求解出密鑰位ki。此種情況下若確定ki的值,對(duì)手需要三組x1x0輸入值和figi的值。

另一種情況是,假設(shè)對(duì)手輸入x1x0=00時(shí),經(jīng)線性分析計(jì)算后得到(1,0);繼續(xù)輸入x1x0=01經(jīng)計(jì)算得到(1,0),由于表1中只有密鑰位ki=14才能出現(xiàn)此種情況,因此可求解出密鑰位是14。

采用類似的方法分析表1中其他輸入和輸出序列,可得如下一般性結(jié)論:

1、對(duì)手選擇明文攻擊方式時(shí),若破解隨機(jī)子分組的密鑰位最少需要兩組x1x0的值,最多需要三組x1x0的值。

2、若加密密碼采用m個(gè)隨機(jī)子分組構(gòu)成,破解其密鑰最少需要2m次計(jì)算最多需要3m次計(jì)算。例,對(duì)于64比特的分組至少需要232次計(jì)算最多需要332次計(jì)算。

上述結(jié)論似乎有些悲觀,然而這是在對(duì)手可以取得任意的明文和密文對(duì),加密過程僅采用一輪加密且不改變明文和密文的對(duì)應(yīng)位置的情況下得出的。若加密和解密以物理設(shè)備實(shí)現(xiàn),上述情況相當(dāng)于對(duì)手繳獲了加密和解密設(shè)備,設(shè)備的密鑰一定但未知的情況下對(duì)設(shè)備密鑰進(jìn)行破解所需的計(jì)算量。

為避免單輪加密所帶來的安全隱患,本發(fā)明的加密和解密的實(shí)驗(yàn)程序采用了4輪加密,對(duì)密文的各位進(jìn)行了多次換位操作,打散了明文位和密文位的對(duì)應(yīng)關(guān)系,4輪加密和解密的實(shí)驗(yàn)及線性分析結(jié)果如下所述。

3.2對(duì)稱密鑰隨機(jī)分組密碼測(cè)試

對(duì)稱密鑰隨機(jī)分組密碼測(cè)試的線性分析采用64位分組4輪加密變換,其參數(shù)如前所述,實(shí)驗(yàn)結(jié)果如圖8所示,根據(jù)圖8繪制表2如下所示。

表2

在表2中,明文1、明文2、明文3和明文4僅有第6個(gè)字節(jié)不同,四組明文的第6個(gè)字節(jié)分別是0,1,2和3,對(duì)應(yīng)第6個(gè)字節(jié)的最低兩個(gè)二進(jìn)制位分別是00、01、10和11,如表中的第0、3、6和9行所示。密文的第6個(gè)字節(jié)都是十六進(jìn)制的2d,其最低兩個(gè)二進(jìn)制位都是01,如表中的第1、4、7和10行所示。由此可得明文和密文第6個(gè)字節(jié)的最低兩位的對(duì)應(yīng)關(guān)系為:00--01,01--01,10--01,11--01,而實(shí)際的第6個(gè)字節(jié)最低兩位所用密鑰位ki=12,正確的輸入、輸出對(duì)應(yīng)關(guān)系應(yīng)為:00--11,01--10,10--00,11--01。

四組明文和對(duì)應(yīng)密文按位異或運(yùn)算結(jié)果如表中的第2、5、8和11行所示,其第6個(gè)字節(jié)分別是2d、2c、2f和2e,對(duì)應(yīng)第6個(gè)字節(jié)的最低兩個(gè)二進(jìn)制位分別是01、00、11和10,明文和密文第6字節(jié)最低兩位對(duì)應(yīng)關(guān)系為:00--01,01--00,10--11,11--10,此對(duì)應(yīng)關(guān)系也不是希望的正確結(jié)果。

事實(shí)上上述實(shí)驗(yàn)結(jié)果具有普遍意義。對(duì)于任意比特的2m分組,由于四輪加密變換過程中對(duì)密文的各位進(jìn)行了換位,因此明文和密文諸位間的對(duì)應(yīng)關(guān)系已被打散,任何力圖通過分析明文位和密文位對(duì)應(yīng)關(guān)系去破解加密算法的密鑰位ki是不可能的。

四、加密和解密程序運(yùn)行速度測(cè)試

為測(cè)試基本程序運(yùn)行速度,作者分別編寫了對(duì)稱密鑰隨機(jī)分組密碼的64比特分組、128比特分組和256比特分組四輪加密和解密c語言程序,從有關(guān)網(wǎng)站下載了des和aes的加密和解密c語言程序。為保證比較結(jié)果的基本公正性,加密和解密程序中僅包含加密和解密的基本程序段,每個(gè)被測(cè)試程序重復(fù)運(yùn)行40960次,約4萬1千次。

實(shí)驗(yàn)結(jié)果如圖9(a)、圖9(b)、圖9(c)、圖9(d)和圖9(e)所示。對(duì)稱密鑰隨機(jī)分組密碼的64比特分組、128比特分組和256比特分組測(cè)試程序運(yùn)行速度分別為:343ms(毫秒)、702ms和1903ms。aes的128比特分組和des的64比特分組測(cè)試程序運(yùn)行速度分別為:7550ms和1467ms。根據(jù)實(shí)驗(yàn)結(jié)果和密碼的密鑰空間大小繪制表3如下:

表3

由表3可知,對(duì)稱密鑰隨機(jī)分組密碼128比特分組的運(yùn)行速度比aes密碼128比特分組的運(yùn)行速度快了10倍之多,對(duì)稱密鑰隨機(jī)分組密碼64比特分組的運(yùn)行速度比des密碼64比特分組的運(yùn)行速度快了約4.27倍。盡管程序的運(yùn)行速度與其運(yùn)行平臺(tái)、程序的優(yōu)化程度等因素有關(guān),但是在相同條件下的上述測(cè)試結(jié)果仍有一定參考價(jià)值。

根據(jù)以上實(shí)驗(yàn)可得出如下結(jié)論:

1、盡管對(duì)稱密鑰隨機(jī)分組密碼的加密是采用對(duì)明文兩位一組分別加密的加密方式,由于隨機(jī)子分組對(duì)一位數(shù)據(jù)變化的或然性擴(kuò)散和加密過程中的多輪換位和移位操作,明文和密文的數(shù)據(jù)位與密鑰位ki的對(duì)應(yīng)關(guān)系已被打亂,因此根據(jù)明文和密文數(shù)據(jù)位的對(duì)應(yīng)關(guān)系去破解密鑰位ki是極為困難的。在其密鑰位ki極難被逐個(gè)破解的情況下,對(duì)于企圖破解密碼密鑰的對(duì)手,分組密碼充分體現(xiàn)了其密鑰整體性和明文與密文對(duì)應(yīng)關(guān)系隨機(jī)性的一面,或許除了采用使用窮舉法選擇明文攻擊外,無其它捷徑可循。

2、對(duì)稱密鑰隨機(jī)分組密碼的運(yùn)行速度明顯快于aes和des目前較為流行分組密碼的運(yùn)行速度。在減少對(duì)稱密鑰隨機(jī)分組密碼加密輪數(shù)的情況下,其速度必將會(huì)進(jìn)一步提高。

安全性分析

一般而言,分組密碼的密鑰空間k、明文空間p、密文空間c和加密函數(shù)ek構(gòu)成了一個(gè)密碼系統(tǒng),將此系統(tǒng)記為∏=(k,p,c,ek)。其中,p是由n比特明文p組成的集合,c是由n比特密文c組成的集合,k是由n比特密鑰k組成的集合,ek是從p至c可逆加密變換。令e∏=∪{ek:k∈k},e∏是密碼系統(tǒng)所有加密變換ek的集合,|e∏|稱之為系統(tǒng)的階(order),|e∏|表示集合e∏的大小(size)。

有別于一般分組密碼系統(tǒng),對(duì)稱密鑰隨機(jī)分組密碼對(duì)應(yīng)的密碼系統(tǒng)為∏=(k,p,r,c,ek)。與一般系統(tǒng)不同的是此系統(tǒng)增加了一個(gè)隨機(jī)數(shù)據(jù)空間r,r是由8比特隨機(jī)字節(jié)r組成的集合;p是由2m-8比特明文p組成的集合,c是由2m比特密文c組成的集合,k是是4m比特密鑰k組成的集合。對(duì)于任意一個(gè)密鑰k,k∈k,加密函數(shù)ek(p,r)是一個(gè)從k、p和r至c映射;其逆函數(shù)記為dk(c),是一個(gè)從k和c至p映射(解密函數(shù))。

針對(duì)skrbc密碼的窮盡攻擊:

窮盡攻擊是攻擊者依次嘗試密鑰空間中的密鑰逐個(gè)對(duì)所截獲的密文進(jìn)行脫密測(cè)試,進(jìn)而找出正確密鑰的一種攻擊方法。窮盡攻擊的實(shí)施有一個(gè)前提,攻擊者除密鑰外可以獲得密碼算法、所需明文和密文。

窮舉攻擊的基本方法是,攻擊者用假設(shè)的密鑰k對(duì)已知密文c和明文p進(jìn)行脫密測(cè)試,若d(k,c)≠p,則k一定不是正確的密鑰;若d(k,c)=p,則k可能是正確的密鑰,密鑰的正確性需通過附加的已知明文和密文加以驗(yàn)證。這種在密鑰k滿足解密關(guān)系式d(k,c)=p的條件下仍不能確定密鑰正確性的狀況,恰恰表明了某些傳統(tǒng)分組密碼從密鑰和密文空間向明文空間映射時(shí)其唯一性的欠缺,而對(duì)于skrbc密碼以及隨機(jī)分組密碼則不會(huì)出現(xiàn)這種情況。

窮舉攻擊算法的優(yōu)劣主要由四個(gè)指標(biāo)加以衡量:算法成功率、算法存儲(chǔ)復(fù)雜性、算法數(shù)據(jù)復(fù)雜性和算法計(jì)算復(fù)雜性。其中與密碼算法安全性能有關(guān)的是窮舉攻擊算法的計(jì)算復(fù)雜性。

以下針對(duì)skrbc密碼進(jìn)行分析,假定skrbc密碼的密鑰位不可能被逐個(gè)破解,這種情況下任何針對(duì)skrbc密碼的攻擊只有窮舉攻擊。

設(shè)對(duì)稱密鑰隨機(jī)分組密碼的分組長度為2m比特,依次需要窮舉的密鑰是k1、k2...k4m,并假設(shè)正確密鑰kξ的出現(xiàn)是等概率隨機(jī)事件,即

由此求得針對(duì)skrbc密碼窮舉攻擊的平均計(jì)算復(fù)雜性:

(4)式是在skrbc密碼為隨機(jī)分組密碼條件下得出的,若2m=128,則針對(duì)skrbc密碼窮舉攻擊的平均計(jì)算復(fù)雜性是2255,以上結(jié)果表明對(duì)于窮舉攻擊skrbc密碼的安全性極高。

針對(duì)skrbc密碼密鑰位的攻擊:

另一種針對(duì)skrbc密碼的攻擊是逐個(gè)破解密鑰的每個(gè)密鑰位ki,i=0,1...2m-1。假設(shè)對(duì)手獲取了skrbc密碼的算法程序,可以通過計(jì)算求得所需明文和密文。這種情況下,盡管對(duì)手可以取得所需的明文和密文,但是由于隨機(jī)子分組輸入值變化的或然性擴(kuò)散和skrbc密碼加密過程中加密中間結(jié)果被多次換位,因此對(duì)應(yīng)于每個(gè)密鑰位ki的兩個(gè)輸入變量x1和x0的值和兩個(gè)輸出變量f和g的值的對(duì)應(yīng)關(guān)系是不能被確定的。在兩個(gè)輸入變量x1x0和兩個(gè)輸出變量fg的值的對(duì)應(yīng)關(guān)系不確定的情況下,求出輸出函數(shù)f和g的邏輯表達(dá)式并進(jìn)而推測(cè)密鑰位ki的值是不可能的。

總結(jié)

不同于傳統(tǒng)的分組密碼,skrbc密碼有如下獨(dú)特之處:

1、經(jīng)過多輪的組件加密變換、位兩兩交換和分組循環(huán)左移打散了密文和明文與密鑰位的一一對(duì)應(yīng)關(guān)系,對(duì)手通過分析明文與密文的對(duì)應(yīng)關(guān)系去求解各個(gè)密鑰位ki是及其困難的。

2、skrbc密碼的密鑰空間的大小達(dá)到了16m=24m,24m個(gè)密鑰一一對(duì)應(yīng)著24m個(gè)變換;通過條件選擇邏輯根據(jù)密鑰值選擇加密變換,密鑰不直接參與求解密文或明文的復(fù)雜計(jì)算。以上特征使得skrbc密碼具有隨機(jī)分組密碼的基本特征,因而具有抗傳統(tǒng)分組密碼攻擊方法攻擊的能力。

3、分組的長度(size)2m和加密的輪數(shù)n可視不同安全級(jí)別加以改變,以滿足不同安全級(jí)別和算法運(yùn)行速度的需求。2m和n愈小安全性逾低,其算法運(yùn)行速度愈快,不同的用戶可視不同的應(yīng)用場(chǎng)合選定合理的2m和n值。

4、skrbc密碼僅對(duì)實(shí)現(xiàn)加密運(yùn)算的隨機(jī)分組密碼組件的算法進(jìn)行了嚴(yán)格限定,而對(duì)加密過程中的位交換未加嚴(yán)格限制。事實(shí)上,位交換的目的僅僅是把運(yùn)算的結(jié)果或然性地?cái)U(kuò)散至其他位,至于如何擴(kuò)散、擴(kuò)散效果如何對(duì)skrbc密碼的安全性并無實(shí)質(zhì)性影響。

5、skrbc密碼的算法簡單,便于以軟件或硬件高速實(shí)現(xiàn)。

總之,較大的密鑰空間、極易的分組長度擴(kuò)充、隨機(jī)分組密碼的基本特征和運(yùn)行速度較快等特征使得skrbc密碼突破了傳統(tǒng)分組密碼設(shè)計(jì)的桎梏,尤其是可任意擴(kuò)展的分組長度是目前為止所有其他分組密碼所不具備的優(yōu)點(diǎn),也使得skrbc密碼的安全性在理論上沒有止境。希望此密碼的性能得到國家有關(guān)部門的審核驗(yàn)證,并希望其獲得廣泛的應(yīng)用。

本發(fā)明的主要貢獻(xiàn)

突破傳統(tǒng)分組密碼百年來設(shè)計(jì)思路的束縛,對(duì)理想隨機(jī)分組密碼和隨機(jī)分組密碼的基本屬性進(jìn)行了定義和分析證明,提出了一種全新的分組密碼設(shè)計(jì)方法,即通過選擇邏輯以密鑰值控制選擇不同的加密函數(shù)式,通過函數(shù)式實(shí)現(xiàn)對(duì)明文進(jìn)行加密的方法。按照此方法實(shí)現(xiàn)的skrbc密碼具有隨機(jī)分組密碼的基本特征,具有除窮盡攻擊外抗傳統(tǒng)分組密碼攻擊方法攻擊的能力,為分組密碼的設(shè)計(jì)開辟了一條全新途徑。

附圖說明

圖1是隨機(jī)子分組的邏輯圖,此圖主要用于展示隨機(jī)子分組的所有變量(隨機(jī)子分組)。

圖2是隨機(jī)分組密碼組件的邏輯圖,主要用于展示圖中各個(gè)隨機(jī)子分組的邏輯關(guān)聯(lián)(隨機(jī)分組密碼組件)。

圖3是skrbc密碼加密過程的邏輯圖,用于展示加密過程中諸模塊的邏輯次序(加密過程)。

圖4是skrbc密碼解密過程的邏輯圖,用于展示解密過程中諸模塊的邏輯次序(解密過程)。

圖5是skrbc密碼64比特、128比特和256比特分組的基本加密、解密的實(shí)驗(yàn)結(jié)果。

圖5(a)64位分組基本加密解密實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。

圖5(b)128位分組加密解密實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。

圖5(c)256位分組加密解密實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。

圖6是skrbc密碼64比特、128比特和256比特分組當(dāng)一位輸入明文變化后引起密文擴(kuò)散的實(shí)驗(yàn)結(jié)果。

圖6(a)64位分組1位數(shù)據(jù)變化擴(kuò)散實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。

圖6(b)128位分組1位數(shù)據(jù)變化擴(kuò)散實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。

圖6(c)256位分組1位數(shù)據(jù)變化擴(kuò)散實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。

圖7是隨機(jī)子分組線性分析的實(shí)驗(yàn)結(jié)果。

圖7(a)隨機(jī)子分組線性分析的實(shí)驗(yàn)結(jié)果。

圖7(b)隨機(jī)子分組線性分析簡略圖的實(shí)驗(yàn)結(jié)果。

圖8是skrbc密碼64比特分組線性分析的實(shí)驗(yàn)結(jié)果。圖864位分組線性分析的實(shí)驗(yàn)結(jié)果。

圖9是skrbc密碼64比特、128比特、256比特分組、aes分組和des分組程序運(yùn)行速度的實(shí)驗(yàn)結(jié)果。

圖9(a)四輪64位分組密碼運(yùn)行速度測(cè)試的實(shí)驗(yàn)結(jié)果。

圖9(b)四輪128位分組密碼運(yùn)行速度測(cè)試的實(shí)驗(yàn)結(jié)果。

圖9(c)四輪256位分組密碼運(yùn)行速度測(cè)試的實(shí)驗(yàn)結(jié)果。

圖9(d)128位aes分組運(yùn)行速度測(cè)試的實(shí)驗(yàn)結(jié)果。

圖9(e)64位des分組運(yùn)行速度測(cè)試的實(shí)驗(yàn)結(jié)果。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1