信息安全原理與技術(shù) 課件 ch03(2)-對稱加密技術(shù)_第1頁
信息安全原理與技術(shù) 課件 ch03(2)-對稱加密技術(shù)_第2頁
信息安全原理與技術(shù) 課件 ch03(2)-對稱加密技術(shù)_第3頁
信息安全原理與技術(shù) 課件 ch03(2)-對稱加密技術(shù)_第4頁
信息安全原理與技術(shù) 課件 ch03(2)-對稱加密技術(shù)_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

信息安全原理與技術(shù)第3版第3章對稱加密技術(shù)(2)主要知識點:

--對稱密碼模型

--密碼攻擊

--古典加密技術(shù)

--數(shù)據(jù)加密標(biāo)準(zhǔn)

--高級加密標(biāo)準(zhǔn)--中國商用密碼算法-SM4

--RC6

--流密碼

--分組密碼工作模式

--隨機(jī)數(shù)的產(chǎn)生

--對稱密碼的密鑰分配

2024/4/5Ch3(2)-對稱加密技術(shù)2我國商用密碼算法--SM4

SM4原名是SMS4,該算法最早于2006年1月公布,用于無線局域網(wǎng)產(chǎn)品的分組對稱密碼算法。SM4分組長度和密鑰長度為128比特數(shù)據(jù)處理單位:字(32位),字節(jié)(8位)密碼算法結(jié)構(gòu):Feistel結(jié)構(gòu),與DES不同的是,SM4采用非對稱的Feistel結(jié)構(gòu),一邊1個字,另一邊為3個字。SM4共迭代32輪。2024/4/5Ch3(2)-對稱加密技術(shù)3SM4加密加密過程:

每個分組128位明文分組分為4個32位的字,經(jīng)過32輪迭代變換,再將4個字反序變化后,得到128位密文。如圖3.31所示。2024/4/5Ch3(2)-對稱加密技術(shù)42024/4/5Ch3(2)-對稱加密技術(shù)5SMS4加密1.基本運算

:表示32比特異或運算:表示32比特循環(huán)左移i位

2.SM4每輪結(jié)構(gòu)上一輪的數(shù)據(jù),i=1,2…32。循環(huán)左移32位后經(jīng)過加密函數(shù)(輪函數(shù)),得左移后最后32位數(shù)據(jù)

,此輪輸出作為下一輪迭代的輸入,迭代32輪后做反序變換,得到密文。下面從Feistel結(jié)構(gòu)來分析SM4輪結(jié)構(gòu)。

2024/4/5Ch3(2)-對稱加密技術(shù)6這里按照Feistel結(jié)構(gòu)來分析SM4的輪結(jié)構(gòu)上一輪的數(shù)據(jù)(Xi-1,Xi,Xi+1,Xi+2),可以看為左右邊的Feistel結(jié)構(gòu),左邊1個字Xi-1,右邊3個字(Xi,Xi+1,Xi+2)下一輪的左邊等于上一輪的右邊,即為(Xi,Xi+1,Xi+2)3個字,下一輪的右邊是通過加密函數(shù)F運算得到1個字Xi+3。SM4每輪的結(jié)構(gòu)如圖所示2024/4/5Ch3(2)-對稱加密技術(shù)72024/4/5Ch3(2)-對稱加密技術(shù)83.加密函數(shù)F輸入數(shù)據(jù):,128位,4個字。輸入輪密鑰:rk

,32位字。輸出數(shù)據(jù):加密函數(shù)F為:其中:rki-1是輪密鑰,合成置換T是一個可逆變換,由非線性變換和線性變換L構(gòu)成。

F的計算過程:輸入數(shù)據(jù)的Xi-1與合成置換T的輸出做異或運算即可。合成置換T如圖3.33所示。2024/4/5Ch3(2)-對稱加密技術(shù)92024/4/5Ch3(2)-對稱加密技術(shù)10(1)非線性變換:32位字的非線性變換輸入字A(4個字節(jié)a0,a1,a2,a3),每個字節(jié)用S盒進(jìn)行代換。

8位輸入a08位輸出b0S盒(代換)8位輸入a18位輸出b1S盒(代換)8位輸入a28位輸出b2S盒(代換)8位輸入a38位輸出b3S盒(代換)輸出字B非線性變換

2024/4/5Ch3(2)-對稱加密技術(shù)11S盒S盒為固定的8比特輸入8比特輸出的置換,記為S(.)。見圖3.34所示。S盒中的數(shù)據(jù)都是十六進(jìn)制表示的,它的置換規(guī)則是:以輸入的前半字節(jié)為行號,后半字節(jié)為列號,行列交叉點出的數(shù)據(jù)即為輸出。舉例:若輸入“ef”,則經(jīng)S盒后的值為表中第e行和第f列的值,S(ef)=84。2024/4/5Ch3(2)-對稱加密技術(shù)122024/4/5Ch3(2)-對稱加密技術(shù)13(2)線性變換L非線性變換

的輸出是線性變換L的輸入32位輸入、32位輸出。設(shè)輸入位B,輸出位C,表為:

C=L(B)運算規(guī)則:

C=L(B)

=B⊕(B<<<2)⊕(B<<<10)⊕(B<<<18)⊕(B<<<24)反序變換R為:

R(Xi,Xi+1,Xi+2,Xi+3)=(Xi+3,Xi+2,Xi+1,Xi)2024/4/5Ch3(2)-對稱加密技術(shù)14SM4密鑰擴(kuò)展

輸入加密密鑰:MK=(MK0,MK1,MK2,MK3)輸出輪密鑰:rki

,i=0,1…,30,31中間數(shù)據(jù):Ki,i=0,1…,34,35密鑰擴(kuò)展算法:①(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3)②Fori=0,1…,30,31Do

iki=Ki+4=Ki⊕T’(Ki+1⊕Ki+2⊕

Ki+3⊕

CKi)說明:T’變換與加密函數(shù)中的T基本相同,只將其中的線性變換L修改為以下:L’ L’(B)=B⊕(B<<<13)⊕(B<<<23)其中,F(xiàn)K=(FK0,FK1,FK2,FK3)為系統(tǒng)參數(shù),CK=(CK0,CK1,…,CK31)為固定參數(shù),用于密鑰擴(kuò)展算法,其中FKi(i=0,…,3)、CKi(i=0,…,31)為字。

2024/4/5Ch3(2)-對稱加密技術(shù)15輪密鑰rki生成方法如圖所示2024/4/5Ch3(2)-對稱加密技術(shù)16SM4密鑰擴(kuò)展算法(1)系統(tǒng)參數(shù)FK在密鑰擴(kuò)展中使用一些常數(shù)

FK0=(A3B1BAC6),F(xiàn)K1=(56AA3350),F(xiàn)K2=(677D9197),F(xiàn)K3=(B27022DC)。(2)固定參數(shù)CK

32個固定參數(shù)CKi,i=0,1,2…31,其16進(jìn)制表示00070e15,1c232a31,383f464d,545b6269,70777e85,8c939aa1,a8afb6bd,c4cbd2d9,e0e7eef5,fc030a11,181f262d,343b4249,50575e65,6c737a81,888f969d,a4abb2b9,c0c7ced5,dce3eaf1,f8ff060d,141b2229,30373e45,4c535a61,686f767d,848b9299,a0a7aeb5,bcc3cad1,d8dfe6ed,f4fb0209,10171e25,2c333a41,484f565d,646b7279產(chǎn)生規(guī)則:CKij=(4i+j)×7(mod256),i=0,1,2…31,j=0,1,…3

。

2024/4/5Ch3(2)-對稱加密技術(shù)17例題:按照SM4加密算法,對一組明文:0123456789abdeffedcba9876543210用密鑰加密一次,加密密鑰:0123456789abdeffedcba9876543210。其中,數(shù)據(jù)采用16進(jìn)制表示。求每一輪的輪密鑰,每輪最后32位的輸出狀態(tài)以及最終的密文。2024/4/5Ch3(2)-對稱加密技術(shù)18(1)第一輪輪密鑰rk0的計算過程如下:①首先,將加密密鑰按字分為四組,按照公式:計算出:K0=10100010100100101111111110100001K1=11011111000000011111111010111111K2=10011001101000010010101100001111K3=110001000010010000010000110011002024/4/5Ch3(2)-對稱加密技術(shù)19②然后,求出T‘變換的輸出:根據(jù)公式得到A的十六進(jìn)制為:8283cb69將輸出結(jié)果A分為四組進(jìn)入S盒,通過查表,輸出B的十六進(jìn)制為:8ad24122。

=01010011101100110111100101011000③最后,利用公式得到rk0=11110001001000011000011011111001,十六進(jìn)制表示為:f12186f9。2024/4/5Ch3(2)-對稱加密技術(shù)20(2)根據(jù)第一輪輪密鑰rk0的計算結(jié)果,將128位的明文同樣分組,利用加密函數(shù)得到第一輪的X4輸出狀態(tài)為:27fad345。(3)按照(1)(2)步驟計算,能夠求出每輪的輪密鑰和后32位的輸出狀態(tài):rk[0]=f12186f9X[4]=27fad345rk[1]=41662b61X[5]=a18b4cb2rk[2]=5a6ab19aX[6]=11c1e22ark[3]=7ba92077X[7]=cc13e2eerk[4]=367360f4X[8]=f87c5bd5rk[5]=776a0c61X[9]=33220757rk[6]=b6bb89b3X[10]=77f4c297rk[7]=24763151X[11]=7a96f2ebrk[8]=a520307cX[12]=27dac07frk[9]=b7584dbdX[13]=42dd0f19rk[10]=c30753edX[14]=b8a5da02

2024/4/5Ch3(2)-對稱加密技術(shù)21rk[11]=7ee55b57X[15]=907127fark[12]=6988608cX[16]=8b952b83rk[13]=30d895b7X[17]=d42b7c59rk[14]=44ba14afX[18]=2ffc5831rk[15]=104495a1X[19]=f69e6888rk[16]=d120b428X[20]=af2432c4rk[17]=73b55fa3X[21]=ed1ec85erk[18]=cc874966X[22]=55a3ba22rk[19]=92244439X[23]=124b18aark[20]=e89e641fX[24]=6ae7725frk[21]=98ca015aX[25]=f4cba1f9rk[22]=c7159060X[26]=1dcdfa10rk[23]=99e1fd2eX[27]=2ff60603rk[24]=b79bd80cX[28]=eff24fdcrk[25]=1d2115b0X[29]=6fe46b75rk[26]=0e228aebX[30]=893450adrk[27]=f1780c81X[31]=7b938f4crk[28]=428d3654X[32]=536e4246rk[29]=62293496X[33]=86b3e94frk[30]=01cf72e5X[34]=d206965erk[31]=9124a012X[35]=681edf342024/4/5Ch3(2)-對稱加密技術(shù)22SM4解密SM4的解密變換與加密變換結(jié)構(gòu)相同,不同的僅是輪密鑰的使用順序。加密時輪密鑰的使用順序為:解密時輪密鑰的使用順序為:2024/4/5Ch3(2)-對稱加密技術(shù)23SM4的安全性SM4算法是由國家專業(yè)機(jī)構(gòu)設(shè)計,自2006年公布之后,SM4分組密碼引起了國內(nèi)外學(xué)術(shù)界和產(chǎn)業(yè)界的極大關(guān)注,先后有學(xué)者研究了SM4對差分故障攻擊、積分攻擊、不可能差分密碼分析、代數(shù)攻擊、矩陣攻擊、差分密碼分析、線性密碼分析等分析方法的安全性。至今為止,從專業(yè)機(jī)構(gòu)對SM4進(jìn)行了密碼分析來看,SM4算法還是安全的,雖然有學(xué)者提出21輪SM4進(jìn)行了差分密碼分析和差分能量分析攻擊方面面臨威脅,但尚需經(jīng)過實踐檢驗。2024/4/5Ch3(2)-對稱加密技術(shù)24RC6

RC6是RSA公司提交給NIST的一個候選高級加密標(biāo)準(zhǔn)算法RC6在RC5基礎(chǔ)上將分組長度擴(kuò)展成128位,用四個32位區(qū)塊代替RC5的兩個32位區(qū)塊RC6是參數(shù)可變的分組密碼算法,三個可變的參數(shù)是:分組大小、密鑰大小和加密輪數(shù)RC6常常寫為RC6-w/r/b,其中w是字的大小,以位為單位,r為加密輪數(shù),允許值是0,…,255,b為密鑰長度,單位是字節(jié),0≤b≤255例如RC6-32/16/10表示字長為32位,迭代的輪數(shù)是16,密鑰長度為10字節(jié)由于高級加密標(biāo)準(zhǔn)的要求是w=32,r=20,因此滿足AES的RC6算法是RC6-32/20/16,也就是四個32位字(128位),迭代的輪數(shù)為20,密鑰長度16個字節(jié)2024/4/5Ch3(2)-對稱加密技術(shù)25RC6定義了6種運算基本操作,以2為底的對數(shù)表示為lg

w。:

a+b:模2w整數(shù)加a-b:模2w整數(shù)減

a⊕b:w位的字按位異或

a×b:模2w整數(shù)乘a<<<b:循環(huán)左移w位的字a,移動位數(shù)由b的低位lg

w位決定a>>>b:循環(huán)右移w位的字a,2024/4/5Ch3(2)-對稱加密技術(shù)26RC6的加密和解密

RC6用這4個w位寄存器A、B、C、D來存放輸入的明文和輸出的密文明文和密文第一個字節(jié)放在A的最低字節(jié)(即第一個字節(jié),明文和密文的最后一個字節(jié)放在D的最高字節(jié)(即最后一個字節(jié))RC6的加密過程如圖3.37所示,其中f(x)=x×(2x+1)加密算法和解密算法分別如圖3.38,圖3.39所示

2024/4/5Ch3(2)-對稱加密技術(shù)272024/4/5Ch3(2)-對稱加密技術(shù)282024/4/5Ch3(2)-對稱加密技術(shù)292024/4/5Ch3(2)-對稱加密技術(shù)30密鑰擴(kuò)展

密鑰擴(kuò)展算法是從密鑰K中導(dǎo)出2r+4個字長的密鑰,儲存在數(shù)組S[0,…,2r+3]中在這其中用到了兩個常量Pw和Qw,Pw和Qw大小是一個字長,定義如下:

Pw=Odd((e-2)2w)

Qw=Odd((φ-2)2w)其中,e=2.7182818284…(自然對數(shù)),φ=1.61803398874…(黃金分割),Odd(x)是離x最近的奇數(shù)2024/4/5Ch3(2)-對稱加密技術(shù)31密鑰擴(kuò)展時,首先將密鑰K[0,…,b-1]放入c個w位字的另一個數(shù)組L[0,…,c-1]中,其中c為b/u的整數(shù)部分,u=w/8,即L數(shù)組上的元素大小為uw位將u個連續(xù)字節(jié)的密鑰順序放入L中,先放入L中的低字節(jié),再放入其高字節(jié)如果L未填滿,用0填充。當(dāng)b=0,c=0時,c=1,L[0]=0。其次利用Pw和Qw將數(shù)組S初始化為一個固定的偽隨機(jī)的數(shù)組,最后將用戶密鑰擴(kuò)展到數(shù)組S中2024/4/5Ch3(2)-對稱加密技術(shù)32RC6-w/r/b

密鑰擴(kuò)展輸入:用戶密鑰字節(jié)預(yù)放入數(shù)組L[0,…,c-1]

輪數(shù)r輸出:w位的輪密鑰S[0,…,2r+3]過程:

S[0]=Pwfori=1to2r+3do

S[i]=

S[i+1]+

QwA=B=i=j=0

v=3×max{c,2r+4}fors=1tovdo{

A=S[i]=(S[i]+A+B)<<<3B=

L[j]=(

L[j]+A+B)<<<(A+B)

i=(i+1)mod(2r+4)

j=(j+1)modc2024/4/5Ch3(2)-對稱加密技術(shù)33RC6的安全性和靈活性

RC6是對RC5的發(fā)展,加入了二次函數(shù)f(x)=x×(2x+1),這個函數(shù)提高了函數(shù)密碼擴(kuò)散速度用二次函數(shù)變換的寄存器B和D的值來修改寄存器A和C的值,增加了密碼的非線性.因此RC6有很好的抗差分攻擊和線性攻擊的能力另外RC6的加密和解密的時間都與數(shù)據(jù)無關(guān),可以有效地避免計時攻擊。RC6也沒有存在類似DES中的弱密鑰RC6算法在加密過程中不需要查找表,加之算法中的乘法運算也可以用平方代替,所以該算法對內(nèi)存的要求很低RC6特別適合在單片機(jī)上實現(xiàn)。2024/4/5Ch3(2)-對稱加密技術(shù)34流密碼一次一密密碼是絕對安全的密碼,如果能以某種方式仿效一次一密密碼,則將可以得到安全性很高的密碼人們試圖以流密碼方式仿效一次一密密碼流密碼也稱為序列密碼,它是對明文以一位或者一個字節(jié)為單位進(jìn)行操作為了使加密算法更安全,一般選取盡可能長的密鑰但是長密鑰的存儲和分配都很困難流密碼采用一個短的種子密鑰來控制密鑰流發(fā)生器產(chǎn)生出長的密鑰序列,供加解密使用2024/4/5Ch3(2)-對稱加密技術(shù)35流密碼的加密過程

種子密鑰k輸入到密鑰流發(fā)生器,產(chǎn)生一系列密碼流,通過與同一時刻的一個字節(jié)或者一位明文流進(jìn)行異或操作產(chǎn)生密文流圖3.41流密碼加密過程密鑰流發(fā)生器種子密鑰k密鑰流ki明文流mi密文流ci2024/4/5Ch3(2)-對稱加密技術(shù)36在流密碼中,如果密鑰流的產(chǎn)生完全獨立于明文流或密文流,則稱該流密碼為同步流密碼(SynchronousStreamCipher),如圖3.42所示如果密鑰流的產(chǎn)生與明文或者密文相關(guān),則稱這類流密碼為自同步流密碼(Self-SynchronousStreamCipher),如圖3.43所示2024/4/5Ch3(2)-對稱加密技術(shù)37圖3.42同步流密碼2024/4/5Ch3(2)-對稱加密技術(shù)38圖3.43自同步流密碼2024/4/5Ch3(2)-對稱加密技術(shù)39同步流密碼

只要通信雙方的密鑰流產(chǎn)生器具有相同的種子密鑰和相同的初始狀態(tài),就能產(chǎn)生相同的密鑰流在保密通信過程中,通信的雙方必須保持精確的同步,收方才能正確解密如果通信中丟失或增加了一個密文字符,則收方將一直錯誤,直到重新同步為止但是同步流密碼對失步的敏感性,使我們能夠容易檢測插入、刪除、重播等主動攻擊由于同步流密碼各操作位之間相互獨立,因此應(yīng)用這種方式進(jìn)行加解密時無錯誤傳播,當(dāng)操作過程中產(chǎn)生一位錯誤時只影響一位,不影響后續(xù)位,這是同步流密碼的一個優(yōu)點2024/4/5Ch3(2)-對稱加密技術(shù)40自同步流密碼

每一個密鑰位是由前面n個密文位參與運算推導(dǎo)出來的,其中n為定值如果在傳輸過程中丟失或更改了一個位,則這一錯誤就要向前傳播n個位不過,在收到n個正確的密文位以后,密碼自身會實現(xiàn)重新同步在自同步流密碼系統(tǒng)中,密文流參與了密鑰流的生成,這使得對密鑰流的分析非常復(fù)雜,從而導(dǎo)致對自同步流密碼進(jìn)行系統(tǒng)的理論分析非常困難2024/4/5Ch3(2)-對稱加密技術(shù)41密鑰流產(chǎn)生器

流密碼的安全強(qiáng)度完全取決于它所產(chǎn)生的密鑰流的特性如果密鑰流是無限長且為無周期的隨機(jī)序列,那么流密碼屬于“一次一密”的密碼體制滿足這樣條件的隨機(jī)序列在現(xiàn)實中很難生成實際應(yīng)用當(dāng)中的密鑰流都是由有限存儲和有限復(fù)雜邏輯的電路產(chǎn)生的字符序列由于密鑰流生成器只具有有限狀態(tài),那么它產(chǎn)生的序列具有周期性,不是真正的隨機(jī)序列2024/4/5Ch3(2)-對稱加密技術(shù)42現(xiàn)實設(shè)計中只能追求密鑰流的周期盡可能的長,隨機(jī)性盡可能的好,近似于真正的隨機(jī)序列一個好的密鑰流需要考慮下面幾個要素:(1)加密序列的周期要長。密鑰流生成器產(chǎn)生的比特流最終會出現(xiàn)重復(fù)。重復(fù)的周期越長,密碼分析的難度越大。(2)密鑰流應(yīng)該盡可能地接近一個真正的隨機(jī)數(shù)流的特征。如,1和0的個數(shù)應(yīng)近似相等。如果密鑰流為字節(jié)流,則所有的256種可能的字節(jié)的值出現(xiàn)頻率應(yīng)近似相等。(3)為了防止窮舉攻擊,種子密鑰值也應(yīng)該有足夠的長度,至少要保證它的長度不小于128位。2024/4/5Ch3(2)-對稱加密技術(shù)43生成一個具有良好特性的密鑰流序列的常見方法有:線性反饋移位寄存器(LinearFeedbackShiftRegister,LFSR)、非線性移位寄存器(NLFSR)、有限自動機(jī)、線性同余以及混沌密碼序列等方法這些方法都是通過一個種子(有限長)密碼產(chǎn)生具有足夠長周期的、隨機(jī)性良好的序列。只要生成方法和種子都相同,就會產(chǎn)生完全相同的密鑰流。2024/4/5Ch3(2)-對稱加密技術(shù)44目前密鑰流生成器大都是基于移位寄存器移位寄存器結(jié)構(gòu)簡單,易于實現(xiàn)且運行速度快密鑰流產(chǎn)生器一般由線性移位寄存器和一個非線性組合函數(shù)兩部分構(gòu)成。其中線性移位寄存器部分稱為驅(qū)動部分,另一部分稱為非線性組合部分其工作原理是將驅(qū)動部分,即線性移位寄存器在j時刻的狀態(tài)變量x作為一組值輸入非線性組合部分的f,將f(x)作為當(dāng)前時刻的密鑰kj驅(qū)動部分負(fù)責(zé)提供非線性組合部分使用的周期大、統(tǒng)計性能好的序列,而非線性組合部分以各時刻移位寄存器的狀態(tài)組合出密鑰序列

2024/4/5Ch3(2)-對稱加密技術(shù)45移位寄存器(LFSR)非線性組合函數(shù)f密鑰流ki圖3.44

密鑰流產(chǎn)生器…2024/4/5Ch3(2)-對稱加密技術(shù)46圖3.45是一個域GF(2)上的反饋移位寄存器圖中標(biāo)有a1,a2,…,an-1,an

的小方框表示二值(0,1)存儲單元a1a2an-1anf(a1,a2,…,an)輸出序列圖3.45反饋移位寄存器…2024/4/5Ch3(2)-對稱加密技術(shù)47RC4算法RC4是RonRivest在1987年為RSA數(shù)據(jù)安全公司設(shè)計的一種同步流密碼

RC4不是基于移位寄存器的流密碼,而是一種基于非線性數(shù)據(jù)表變換的流密碼它以一個足夠大的數(shù)據(jù)表為基礎(chǔ),對表進(jìn)行非線性變換,產(chǎn)生非線性密鑰流序列RC4是一個可變密鑰長度,面向字節(jié)操作的流密碼該字節(jié)的大小n可以根據(jù)用戶需要來定義,一般應(yīng)用中n取8位2024/4/5Ch3(2)-對稱加密技術(shù)48流密鑰的生成需要兩個處理過程:一個是密鑰調(diào)度算法(KSA);二是偽隨機(jī)產(chǎn)生算法(PRGA)密鑰調(diào)度算法用來設(shè)置數(shù)據(jù)表S的初始排列偽隨機(jī)產(chǎn)生算法用來選取隨機(jī)元素并修改S的原始排列順序密鑰流產(chǎn)生過程是用1到256個字節(jié)的可變長度的密鑰初始化一個256個字節(jié)的數(shù)據(jù)表S加密和解密用的每一個密鑰K(i)是由S中的元素按照一定的方式選出一個元素而生成每生成一個K(i)值,S中的元素就被重新置換一次2024/4/5Ch3(2)-對稱加密技術(shù)49KSA初始化S

初始化時,先對S進(jìn)行填充,即令S(0)=0,S(1)=1,S(2)=2,…,S(255)=255用種子密鑰填充一個256個字節(jié)的密鑰表K,K(0),K(1),K(2),…K(255)如果種子密鑰的長度小于K的長度,則依次重復(fù)填充,直到將K填滿然后通過S(i)和K(i)置換S中的元素2024/4/5Ch3(2)-對稱加密技術(shù)50密鑰流生成

數(shù)據(jù)表S一旦完成初始化,種子密鑰將不再使用當(dāng)KSA完成S的初始化后,PRGA就將接手工作它為密鑰流選取一個個字節(jié),即從S中選取隨機(jī)元素,并修改S以便下一次選取密鑰流的生成是從S(0)到S(255),對每個S(i),根據(jù)當(dāng)前的S值,將S(i)與S中的另一個字節(jié)置換當(dāng)S(255)完成置換后,操作繼續(xù)重復(fù)從S(0)開始

2024/4/5Ch3(2)-對稱加密技術(shù)51分組密碼工作模式

分組密碼算法是提供數(shù)據(jù)安全的一個基本構(gòu)件分組密碼是針對固定大小的分組進(jìn)行加密的,例如,DES是對64比特的明文分組進(jìn)行加密,AES是對128位分組操作需要保密傳輸?shù)南⒉灰欢▌偤檬且粋€分組大小為了在實際中應(yīng)用分組密碼,定義了五種工作模式。任何一種對稱分組密碼算法都可以以這些方式進(jìn)行應(yīng)用2024/4/5Ch3(2)-對稱加密技術(shù)52電子密碼本模式

電子密碼本模式(ElectronicCodeBook,ECB)模式是分組密碼的基本工作方式它將明文分割成獨立大小的分組b,最后一組在必要時需要填充,一次處理b比特的明文,每次使用相同的密鑰加密每一個分組依次獨立加密,產(chǎn)生獨立的密文組優(yōu)點:并行處理來加速加/解密運算;一分組發(fā)生錯誤不會影響到其他分組.缺點:相同的明文組將產(chǎn)生相同的密文組,這樣會泄露明文的數(shù)據(jù)模式.ECB模式特別適合短數(shù)據(jù)(如加密密鑰)

2024/4/5Ch3(2)-對稱加密技術(shù)532024/4/5Ch3(2)-對稱加密技術(shù)54密碼分組鏈接模式(CBC)

將明文分成b位的一串分組,最后一組不足b位要進(jìn)行填充CBC將這些分組鏈接在一起進(jìn)行加密操作加密輸入是當(dāng)前明文分組和前一密文分組的異或,它們形成一條鏈每次加密使用相同的密鑰,每個明文分組的加密函數(shù)輸入與明文分組之間不再有固定的關(guān)系明文分組的數(shù)據(jù)模式不會在密文中暴露

2024/4/5Ch3(2)-對稱加密技術(shù)552024/4/5Ch3(2)-對稱加密技術(shù)56密碼反饋模式

將加密的明文必須按照一個字節(jié)或者一位進(jìn)行處理,即將分組密碼轉(zhuǎn)換為流密碼假設(shè)它的輸出是s位,s位的大小可以是1位、8位、64位或者其他大小,表示為CFB-1,CFB-8,CFB-64等密碼反饋模式具有流密碼的優(yōu)點,也擁有CBC模式的優(yōu)點但是它也擁有CBC模式的缺點,即也會導(dǎo)致錯誤傳播密碼反饋模式也會降低數(shù)據(jù)加密速度。無論每次輸出多少位,都需要事先用密鑰K加密一次,再與相等的明文位異或,所以即使一次輸出為1位,也要經(jīng)過相同的過程

2024/4/5Ch3(2)-對稱加密技術(shù)572024/4/5Ch3(2)-對稱加密技術(shù)58以DES為例,用CFB-8工作模式說明加密過程

--加密:加密函數(shù)的輸入是一個64位的移位寄存器,產(chǎn)生初始向量IV

--對移位寄存器64位的數(shù)據(jù)用密鑰進(jìn)行加密,然后取加密數(shù)據(jù)最左邊的8位跟輸入的明文最初的8位進(jìn)行異或操作,得到的值作為8位密文單元

--這8比特密文被移至位寄存器的最右端,而其它位則向左移動8位,最左端8比特丟棄

--繼續(xù)加密,與第2段明文輸入異或,如此重復(fù)直到所有明文單元都完成加密2024/4/5Ch3(2)-對稱加密技術(shù)59輸出反饋模式類似于密碼反饋模式不同的地方輸出反饋模式(OutputFeedBack,OFB)是將加密算法的輸出反饋到移位寄存器,而密碼反饋模式是將密文單元反饋到移位寄存器OFB模式的優(yōu)點是傳輸過程中的位錯誤不會被傳播但是這種模式數(shù)據(jù)之間相關(guān)性小,這種加密模式是比較不安全的

2024/4/5Ch3(2)-對稱加密技術(shù)602024/4/5Ch3(2)-對稱加密技術(shù)61計數(shù)器模式

計數(shù)器(Counter,CTR)采用與明文分組相同的長度加密不同的明文組,計數(shù)器對應(yīng)的值不同計數(shù)器首先被初試化為一個值,然后隨著消息塊的增加,計數(shù)器的值依次遞增1計數(shù)器加1后與明文分組異或得到密文分組解密是使用相同的計數(shù)器值序列,用加密后的計數(shù)器的值與密文分組異或來恢復(fù)明文2024/4/5Ch3(2)-對稱加密技術(shù)622024/4/5Ch3(2)-對稱加密技術(shù)63計數(shù)器模式比較適合對實時性和速度要求比較高的場合,具有以下的優(yōu)點。

--處理效率:由于下一塊數(shù)據(jù)不需要前一塊數(shù)據(jù)的運算結(jié)果,所以CTR能夠并行加密(解密)。這使其吞吐量可以大大提高。

--預(yù)處理:基本加密算法的執(zhí)行不依賴明文或者密文的輸入,因此可以事先處理。這樣可以極大的提高吞吐量。

--隨機(jī)訪問:由于對某一密文分組的處理與其他密文分組無關(guān),因此可以隨機(jī)地對任一個密文分組進(jìn)行解密處理。

--簡單性:計數(shù)器模式只要求實現(xiàn)加密算法,而不要求解密算法,加密階段和解密階段都使用相同的加密算法。2024/4/5Ch3(2)-對稱加密技術(shù)64隨機(jī)數(shù)的產(chǎn)生

在很多場合需要用到隨機(jī)數(shù),如對稱密碼體制中密鑰,非對稱密碼體制公鑰以及用于認(rèn)證的臨時交互號等使用了隨機(jī)數(shù)安全的隨機(jī)數(shù)應(yīng)該滿足隨機(jī)性和不可預(yù)測性隨機(jī)性有兩個評價標(biāo)準(zhǔn):

--分布一致性:隨機(jī)數(shù)分布是一致的,即每個數(shù)出現(xiàn)頻率大約相等;

--獨立性:數(shù)據(jù)序列中的任何數(shù)不能由其他數(shù)導(dǎo)出一般來說,數(shù)據(jù)序列是否滿足均勻分布可通過檢測得出,而是否滿足獨立性則無法檢測但有很多檢測方法能證明數(shù)據(jù)序列不滿足獨立性2024/4/5Ch3(2)-對稱加密技術(shù)65如果對數(shù)據(jù)序列進(jìn)行足夠多次檢測后都不能證明不滿足獨立性,就可比較有把握地相信該數(shù)據(jù)序列滿足獨立性不可預(yù)測性表示根據(jù)數(shù)據(jù)序列的一部分不能推導(dǎo)出之前的部分序列,也不能預(yù)測后續(xù)序列。產(chǎn)生隨機(jī)數(shù)的方式有兩種常見方法:

--通過一個確定性的算法,由數(shù)字電路或是軟件實現(xiàn),把一個初值擴(kuò)展成一個長的序列.這種方法產(chǎn)生的序列通常被稱為偽隨機(jī)序列

--選取真實世界的自然隨機(jī)源,比如熱噪聲等.這種方法產(chǎn)生的通常被稱為真隨機(jī)序列

2024/4/5Ch3(2)-對稱加密技術(shù)66真隨機(jī)數(shù)發(fā)生器對于工程應(yīng)用來說,只要產(chǎn)生的序列具有隨機(jī)統(tǒng)計特性,并且不可再現(xiàn),就可以被稱之為真隨機(jī)序列設(shè)計一個真隨機(jī)數(shù)發(fā)生器包括兩步:

--首先是獲取真隨機(jī)源

--然后是利用真隨機(jī)源依照特定的數(shù)學(xué)方法獲得真隨機(jī)數(shù)真隨機(jī)源廣泛存在于現(xiàn)實世界中,如隨機(jī)噪音、計算機(jī)當(dāng)前的秒級時鐘、鍵盤反應(yīng)時間、熱噪聲、操作系統(tǒng)的進(jìn)程信息、光量子的偏振等

獲取方法可以通過調(diào)用系統(tǒng)函數(shù)或者硬件電路來實現(xiàn)2024/4/5Ch3(2)-對稱加密技術(shù)67利用真隨機(jī)源產(chǎn)生真隨機(jī)數(shù)的方法有很多一種最簡單的方法是直接利用真隨機(jī)源的奇偶特性來產(chǎn)生0和1序列為了增加序列的隨機(jī)性,往往還對產(chǎn)生的0和1序列進(jìn)行一系列的變換,比如歸一化、非線性映射、移位、加密等圖3.52是通過提取電路中的熱噪聲來產(chǎn)生隨機(jī)數(shù)該方法將提取的熱噪聲進(jìn)行放大,輸入到一個比較器,與固定的參考電壓進(jìn)行比較,從而確定輸出0、1序列2024/4/5Ch3(2)-對稱加密技術(shù)68圖3.52利用熱噪聲的隨機(jī)數(shù)發(fā)生器2024/4/5Ch3(2)-對稱加密技術(shù)69偽隨機(jī)數(shù)發(fā)生器

在信息安全中常常用偽隨機(jī)發(fā)生器產(chǎn)生偽隨機(jī)數(shù)這些隨機(jī)數(shù)盡管不是真正的隨機(jī),但能夠經(jīng)過許多隨機(jī)測試常見的方法有:

--線性同余法

--非線性同余法

--混沌隨機(jī)數(shù)發(fā)生器

--用密碼學(xué)的方法產(chǎn)生隨機(jī)數(shù)

2024/4/5Ch3(2)-對稱加密技術(shù)70線性同余法

隨機(jī)數(shù)序列{Xn}通過下面的式子迭代獲得:

Xn+1=(aXn+c)modm,n≥0其中X0稱為種子或者初始值,并且0≤X0<m,常數(shù)m稱為模數(shù)m>0常數(shù)a稱為乘子0≤a<m常數(shù)c

稱為增量0≤c<m當(dāng)c=0時,該算法稱為乘同余法;當(dāng)時,該算法稱為混合線性同余法

2024/4/5Ch3(2)-對稱加密技術(shù)71a,c,m的取值是產(chǎn)生高質(zhì)量的隨機(jī)數(shù)的關(guān)鍵當(dāng)a=7,c=0,m=32,X0=1時,生成的數(shù)為{1,7,17,23,1,7,…},該數(shù)列的周期為4,而模為32,結(jié)果不滿意當(dāng)隨機(jī)數(shù)周期達(dá)到模時,則其周期稱為滿周期,也就是理論上的最大周期用同余算法生成隨機(jī)數(shù)的時候,要盡可能地使周期達(dá)到滿周期合理地選擇a、c、m、X0,可以使重復(fù)的周期充分長。2024/4/5Ch3(2)-對稱加密技術(shù)72非線性同余法

非線性同余(Nonlinear

Congruential)法的隨機(jī)數(shù)序列{Xn}通過下面的式子迭代獲得:Xn+1=f(Xn)modm,n≥0一些非線性同余發(fā)生器的區(qū)別主要是f函數(shù)不同逆同余發(fā)生器Xn+1=(aXn+b)modm,n≥0

二次同余發(fā)生器Xn+1=(aXn2+bXn+c)modm,n≥0BBS發(fā)生器Xn+1=Xn2modm,n≥0冪同余發(fā)生器Xn+1=Xndmodm,n≥0

指數(shù)同余發(fā)生器Xn+1=gXnmodm,n≥0

2024/4/5Ch3(2)-對稱加密技術(shù)73混沌隨機(jī)數(shù)發(fā)生器

在混沌區(qū)的數(shù)據(jù)具有兩個顯著的特性:迭代不重復(fù)性和初值敏感性如果選定一個迭代方程和適當(dāng)?shù)南禂?shù),方程將進(jìn)行無限制不循環(huán)地迭代,這種狀態(tài)稱為混沌狀態(tài)。下式是混合光學(xué)雙穩(wěn)模型的迭代方程:Xn+1=Asin2(Xn-XB)A和XB是方程的系數(shù),當(dāng)A=4,XB

=2.5時方程處于混沌狀態(tài)。根據(jù)該方程生成混沌序列{Xi},可以獲得不同0和1序列2024/4/5Ch3(2)-對稱加密技術(shù)74用密碼學(xué)的方法產(chǎn)生隨機(jī)數(shù)

單向函數(shù)可以用于產(chǎn)生偽隨機(jī)數(shù)方法是首先選取隨機(jī)種子s,然后再將函數(shù)應(yīng)用于序列s,s+1,s+2,…,進(jìn)而輸出序列f(s),f(s+1),f(s+2),…該單向函數(shù)可以是hash函數(shù),如SHA-1,或者是對稱分組密碼,如DES。常見的方法有:循環(huán)加密

,ANSIX9.17隨機(jī)數(shù)生成器

2024/4/5Ch3(2)-對稱加密技術(shù)75循環(huán)加密

循環(huán)加密是一種非常簡單的隨機(jī)數(shù)產(chǎn)生方法如圖3.53所示,它用一個種子密鑰循環(huán)加密計數(shù)器,從而產(chǎn)生一個隨機(jī)序列2024/4/5Ch3(2)-對稱加密技術(shù)76ANSIX9.17隨機(jī)數(shù)生成器

ANSIX9.17是基于3DES隨機(jī)數(shù)生成標(biāo)準(zhǔn),如圖所示圖中的符號含義如下:--EDE:表示用兩個密碼加密的三重DES,即加密-解密-加密。--DTi:第i輪的初始日期和時間。--V

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論