




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章分組密碼3.1分組密碼概述3.2DES3.3分組密碼運行模式3.4AES一、分組密碼概述分組密碼概述分組密碼是許多系統(tǒng)安全的一個重要組成部分??捎糜跇?gòu)造偽隨機數(shù)生成器流密碼消息認證碼(MAC)和雜湊函數(shù)消息認證技術(shù)、數(shù)據(jù)完整性機制、實體認證協(xié)議以及單鑰數(shù)字簽字體制的核心組成部分。
應(yīng)用中對于分組密碼的要求安全性運行速度存儲量(程序的長度、數(shù)據(jù)分組長度、高速緩存大小)實現(xiàn)平臺(硬、軟件、芯片)運行模式分組密碼概述明文序列x1,x2,…,xi,…
加密函數(shù)E:Vn×KVm
這種密碼實質(zhì)上是字長為n的數(shù)字序列的代換密碼。
解密算法加密算法密鑰k=(k0,k1,…,kt-1)密鑰k=(k0,k1,…,kt-1)明文x=(x0,x1,…,xn-1)明文x=(x0,x1,…,xn-1)密文x=(y0,y1,…,ym-1)
分組密碼概述通常取n=m。若n<m
,則為有數(shù)據(jù)擴展的分組密碼。若n>m
,則為有數(shù)據(jù)壓縮的分組密碼。分組密碼設(shè)計問題
分組密碼的設(shè)計問題在于找到一種算法,能在密鑰控制下從一個足夠大且足夠好的置換子集中,簡單而迅速地選出一個置換,用來對當前輸入的明文的數(shù)字組進行加密變換。分組密碼設(shè)計準則混淆:人們所設(shè)計的密碼應(yīng)使用使得密鑰和明文以及密文之間的依賴關(guān)系相當復(fù)雜以至于這種依賴性對密碼分析者來說是無法利用的。擴散:人們所設(shè)計的密碼應(yīng)使得密鑰的每一位數(shù)字影響密文的許多位數(shù)字以防止對密鑰進行逐段破譯,而且明文的每一位數(shù)字也應(yīng)影響密文的許多位數(shù)字以便隱藏明文數(shù)字統(tǒng)計特性。分組密碼算法應(yīng)滿足的要求分組長度n要足夠大:防止明文窮舉攻擊法奏效。密鑰量要足夠大:盡可能消除弱密鑰并使所有密鑰同等地好,以防止密鑰窮舉攻擊奏效。由密鑰確定置換的算法要足夠復(fù)雜:充分實現(xiàn)明文與密鑰的擴散和混淆,沒有簡單的關(guān)系可循,要能抗擊各種已知的攻擊。分組密碼算法應(yīng)滿足的要求加密和解密運算簡單:
易于軟件和硬件高速實現(xiàn)。數(shù)據(jù)擴展:
一般無數(shù)據(jù)擴展,在采用同態(tài)置換和隨機化加密技術(shù)時可引入數(shù)據(jù)擴展。差錯傳播盡可能地小。
分組密碼的實現(xiàn)原則軟件實現(xiàn)的原則:使用子塊和簡單的運算。如將分組n化分為子段,每段長為8、16或32。在以軟件實現(xiàn)時,應(yīng)選用簡單的運算,使作用于子段上的密碼運算易于以標準處理器的基本運算,如加、乘、移位等實現(xiàn),避免用以軟件難于實現(xiàn)的逐比特置換。硬件實現(xiàn)的原則:加密解密可用同樣的器件來實現(xiàn)。代換網(wǎng)絡(luò)代換是輸入集A到輸出A’上的雙射變換:
fk:AA'
k是控制輸入變量,在密碼學(xué)中則為密鑰。實現(xiàn)代換fk的網(wǎng)絡(luò)稱作代換網(wǎng)絡(luò)。雙射條件保證在給定k下可從密文惟一地恢復(fù)出原明文。代換網(wǎng)絡(luò)代換fk的集合:
S={fkkK}K是密鑰空間。如果網(wǎng)絡(luò)可以實現(xiàn)所有可能的2n!個代換,則稱其為全代換網(wǎng)絡(luò)。代換結(jié)構(gòu)代換網(wǎng)絡(luò)密碼設(shè)計中需要先定義代換集S,而后還需定義解密變換集,即逆代換網(wǎng)絡(luò)S-1,它以密文y作為輸入矢量,其輸出為恢復(fù)的明文矢量x。要實現(xiàn)全代換網(wǎng)絡(luò)并不容易。因此實用中常常利用一些簡單的基本代換,通過組合實現(xiàn)較復(fù)雜的、元素個數(shù)較多的代換集。實用密碼體制的集合S中的元素個數(shù)都遠小于2n!。代換盒(S盒)
在密碼設(shè)計中,可選n=rn0,其中r和n0都為正整數(shù),將設(shè)計n個變量的代換網(wǎng)絡(luò)化為設(shè)計r個較小的子代換網(wǎng)絡(luò),而每個子代換網(wǎng)絡(luò)只有n0個輸入變量,稱每個子代換網(wǎng)絡(luò)為代換盒(SubstitutionBox)
S盒x5
x4
x3
x2
x1
x0y3
y2
y1
y0DES的S盒DES的S1-盒的輸入和輸出關(guān)系x5x0x5x4x3x2x1x010101100
列號0123456789101112131415
行號
01441312151183106125907101574142131106121195382411481362111512973105031512824917511214100613
(y3
,
y2,
y1
,y0)=(0,0,1,0)
S盒的設(shè)計準則迄今為止,有關(guān)方面未曾完全公開有關(guān)DES的S盒的設(shè)計準則。Branstead等曾披露過下述準則:P1S盒的輸出都不是其輸入的線性或仿射函數(shù)。P2改變S盒的一個輸入比特,其輸出至少有兩比特產(chǎn)生變化,即近一半產(chǎn)生變化。P3當S盒的任一輸入位保持不變,其它5位輸入變化時(共有25=32種情況),輸出數(shù)字中的0和1的總數(shù)近于相等。這三點使DES的S盒能夠?qū)崿F(xiàn)較好的混淆。Feistel密碼結(jié)構(gòu)
乘積密碼指順序地執(zhí)行兩個或多個基本密碼系統(tǒng),使得最后結(jié)果的密碼強度高于每個基本密碼系統(tǒng)產(chǎn)生的結(jié)果.Feistel還提出了實現(xiàn)代換和置換的方法。其思想實際上是Shannon提出的利用乘積密碼實現(xiàn)混淆和擴散思想的具體應(yīng)用。Feistel網(wǎng)絡(luò)示意圖
輸入是分組長為2w的明文和一個密鑰K。將每組明文分成左右兩半L0和R0,在進行完n輪迭代后,左右兩半再合并到一起以產(chǎn)生密文分組。第i輪迭代的輸入為前一輪輸出的函數(shù):其中Ki是第i輪用的子密鑰,由加密密鑰K得到。一般地,各輪子密鑰彼此不同而且與K也不同。Feistel密碼結(jié)構(gòu)Feistel密碼結(jié)構(gòu)Feistel網(wǎng)絡(luò)的實現(xiàn)與以下參數(shù)和特性有關(guān):①分組大小:分組越大則安全性越高,但加密速度就越慢。②密鑰大小:密鑰越長則安全性越高,但加密速度就越慢。③輪數(shù):單輪結(jié)構(gòu)遠不足以保證安全性,但多輪結(jié)構(gòu)可提供足夠的安全性。典型地,輪數(shù)取為16。④子密鑰產(chǎn)生算法:該算法的復(fù)雜性越大,則密碼分析的困難性就越大。⑤輪函數(shù):輪函數(shù)的復(fù)雜性越大,密碼分析的困難性也越大。在設(shè)計Feistel網(wǎng)絡(luò)時,還有以下兩個方面需要考慮:①快速的軟件實現(xiàn):在很多情況中,算法是被鑲嵌在應(yīng)用程序中,因而無法用硬件實現(xiàn)。此時算法的執(zhí)行速度是考慮的關(guān)鍵。②算法容易分析:如果算法能被無疑義地解釋清楚,就可容易地分析算法抵抗攻擊的能力,有助于設(shè)計高強度的算法。Feistel密碼結(jié)構(gòu)
Feistel解密過程本質(zhì)上和加密過程是一樣的,算法使用密文作為輸入,但使用子密鑰Ki的次序與加密過程相反,即第1輪使用Kn,第2輪使用Kn-1,……,最后一輪使用K1。這一特性保證了解密和加密可采用同一算法。Feistel解密結(jié)構(gòu)
Feistel加解密過程在加密過程中:在解密過程中Feistel密碼結(jié)構(gòu)所以解密過程第1輪的輸出為LE15‖RE15,等于加密過程第16輪輸入左右兩半交換后的結(jié)果。容易證明這種對應(yīng)關(guān)系在16輪中每輪都成立。一般地,加密過程的第i輪有因此Feistel密碼結(jié)構(gòu)3.2美國數(shù)據(jù)加密標準—DES(DataEncryptionStandard)美國制定數(shù)據(jù)加密標準簡況目的
通信與計算機相結(jié)合是人類步入信息社會的一個階梯,它始于六十年代末,完成于90年代初。計算機通信網(wǎng)的形成與發(fā)展,要求信息作業(yè)標準化,安全保密亦不例外。只有標準化,才能真正實現(xiàn)網(wǎng)的安全,才能推廣使用加密手段,以便于訓(xùn)練、生產(chǎn)和降低成本。
美國制定數(shù)據(jù)加密標準簡況美國NBS(NationalBureauofStandards)在1973年5月15公布了征求建議。1974年8月27日NBS再次出公告征求建議,對建議方案提出如下要求:(1)算法必須提供高度的安全性(2)算法必須有詳細的說明,并易于理解(3)算法的安全性取決于密鑰,不依賴于算法(4)算法適用于所有用戶(5)算法適用于不同應(yīng)用場合(6)算法必須高效、經(jīng)濟(7)算法必須能被證實有效(8)算法必須是可出口的美國制定數(shù)據(jù)加密標準簡況IBM公司在1971年完成的LUCIFER密碼(64bit分組,代換-置換,128bit密鑰)的基礎(chǔ)上,改進成為建議的DES體制1975年3月17日NBS公布了這個算法,并說明要以它作為聯(lián)邦信息處理標準,征求各方意見。1977年1月15日建議被批準為聯(lián)邦標準[FIPSPUB46],并設(shè)計推出DES芯片。1981年美國ANSI(AmericanNationalStandardsInstitute)將其作為標準,稱之為DEA[ANSIX3.92]1983年國際標準化組織(ISO,InternationalOrganizationforStandardization)采用它作為標準,稱作DEA-1
美國制定數(shù)據(jù)加密標準簡況NSA(NationalSecurityAgency)宣布每隔5年重新審議DES是否繼續(xù)作為聯(lián)邦標準,1988年(FIPS46-1)、1993年(FIPS46-2),1998年不再重新批準DES為聯(lián)邦標準。雖然DES已有替代的數(shù)據(jù)加密標準算法,但它仍是迄今為止得到最廣泛應(yīng)用的一種算法,也是一種最有代表性的分組加密體制。1993年4月,Clinton政府公布了一項建議的加密技術(shù)標準,稱作密鑰托管加密技術(shù)標準EES(EscrowedEncryptionStandard)。算法屬美國政府SECRET密級。美國制定數(shù)據(jù)加密標準簡況DES發(fā)展史確定了發(fā)展公用標準算法模式,而EES(EscrowedEncryptionStandard)的制定路線與DES的背道而馳。人們懷疑有陷門和政府部門肆意侵犯公民權(quán)利。此舉遭到廣為反對。1995年5月AT&TBellLab的M.Blaze博士在PC機上用45分鐘時間使SKIPJACK的LEAF協(xié)議失敗,偽造ID碼獲得成功。1995年7月美國政府宣布放棄用EES來加密數(shù)據(jù),只將它用于語音通信。1997年1月美國NIST著手進行AES(AdvancedEncryptionStandard)的研究,成立了標準工作室。2001年Rijndael被批準為AES標準。DES(DataEncryptionStandard)算法于1977年得到美國政府的正式許可,是一種用56位密鑰來加密64位數(shù)據(jù)的方法。這是IBM的研究成果。DES是第一代公開的、完全說明細節(jié)的商業(yè)級現(xiàn)代算法,并被世界公認。美國制定數(shù)據(jù)加密標準簡況
DES算法分組長度為64bits(8bytes)密文分組長度也是64bits。密鑰長度為64bits,有8bits奇偶校驗,有效密鑰長度為56bits。算法主要包括:初始置換IP、16輪迭代的乘積變換、逆初始置換IP-1以及16個子密鑰產(chǎn)生器。
DES算法框圖
初始置換IP將64bit明文的位置進行置換,得到一個亂序的64bit明文組,而后分成左右兩段,每段為32bit,以L0和R0表示。逆初始置換IP-1。將16輪迭代后給出的64bit組進行置換,得到輸出的密文組。輸出為陣中元素按行讀得的結(jié)果。IP和IP-1在密碼意義上作用不大,它們的作用在于打亂原來輸入x的ASCII碼字劃分的關(guān)系。
DES算法(續(xù))1初值置換IP
1.初始置換M1M2M3M4M5M6M7M8 M9M10M11M12M13M14M15M16M17M18M19M20M21M22M23M24M25M26M27M28M29M30M31M32M33M34M35M36M37M38M39M40M41M42M43M44M45M46M47M48M49M50M51M52M53M54M55M56M57M58M59M60M61M62M63M64DES算法(續(xù))
其中Mi是二元數(shù)字。由下表得X=IP(M)為:
M58M50M42M34M26M18M10M2M60M52M44M36M28M20M12M4M62M54M46M38M30M22M14M6M64M56M48M40M32M24M16M8M57M49M41M33M25M17M9M1M59M51M43M35M27M19M11M3M61M53M45M37M29M21M13M5M63M55M47M39M31M23M15M7DES算法(續(xù))
如果再取逆初始置換Y=IP-1(X)=IP-1(IP(M)),可以看出,M各位的初始順序?qū)⒈换謴?fù)。DES算法(續(xù))
DES算法輪結(jié)構(gòu)
DES算法(續(xù))圖3.7函數(shù)F(R,K)的計算過程DES算法(續(xù))DES算法(續(xù))
對每個盒Si,其6比特輸入中,第1個和第6個比特形成一個2位二進制數(shù)用來選擇行,中間4位用來選擇列。行和列選定后,得到其交叉位置的十進制數(shù),將這個數(shù)表示為4位二進制數(shù)即得這一S盒的輸出。 例如,S1的輸入為011001,行選為01(即第1行),列選為1100(即第12列),行列交叉位置的數(shù)為9,其4位二進制表示為1001,所以S1的輸出為1001。
S盒的每一行定義了一個可逆代換。DES算法(續(xù))DES的S1-盒的輸入和輸出關(guān)系x0x5x0x1x2x3x4x510101100
列號0123456789101112131415
行號
01441312151183106125907101574142131106121195382411481362111512973105031512824917511214100613
(y0
,
y1,
y2
,y3)=(0,0,1,0)P置換DES算法密鑰的產(chǎn)生置換選擇1置換選擇1DES算法密鑰的產(chǎn)生(續(xù))
和Feistel密碼一樣,DES的解密和加密使用同一算法,但子密鑰使用的順序相反。DES解密DES的安全性互補性。DES算法具有下述性質(zhì)。若明文組x逐位取補,密鑰k逐位取補,即y=DESk(x),則有這種互補性會使DES在選擇明文破譯下所需的工作量減半。弱密鑰和半弱密鑰。DES算法在每次迭代時都有一個子密鑰供加密用。如果給定初始密鑰k,各輪的子密鑰都相同,即有k1=k2=…=k16
就稱給定密鑰k為弱密鑰(Weakkey)。DES的安全性若k為弱密鑰,則有
DESk(DESk(x))=xDESk-1(DESk-1(x))=x
即以k對x加密兩次或解密兩次都可恢復(fù)出明文。其加密運算和解密運算沒有區(qū)別。
弱密鑰下使DES在選擇明文攻擊下的搜索量減半。如果隨機地選擇密鑰,弱密鑰所占比例極小,而且稍加注意就不難避開。因此,弱密鑰的存在不會危及DES的安全性。DES的安全性S盒設(shè)計。
DES靠S盒實現(xiàn)非線性變換。密鑰搜索機。
對DES安全性批評意見中,較為一致的看法是DES的密鑰短了些。采用窮搜索對已經(jīng)對DES構(gòu)成了威脅.DES算法的安全性DES算法正式公開發(fā)表以后,引起了一場激烈的爭論。1977年,Diffie和Hellman提出了制造一個每秒能測試106個密鑰的大規(guī)模芯片,這種芯片的機器大約一天就可以搜索DES算法的整個密鑰空間,制造這樣的機器需要兩千萬美元。1993年,R.Session和M.Wiener給出了一個非常詳細的密鑰搜索機器的設(shè)計方案,它基于并行的密鑰搜索芯片,此芯片每秒測試5×107個密鑰,當時這種芯片的造價是10.5美元,5760個這樣的芯片組成的系統(tǒng)需要10萬美元,這一系統(tǒng)平均1.5天即可找到密鑰,如果利用10個這樣的系統(tǒng),費用是100萬美元,但搜索時間可以降到2.5小時??梢娺@種機制是不安全的。DES的56位短密鑰面臨的另外一個嚴峻而現(xiàn)實的問題是:國際互聯(lián)網(wǎng)Internet的超級計算能力。1997年1月28日,美國的RSA數(shù)據(jù)安全公司在互聯(lián)網(wǎng)上開展了一項名為“密鑰挑戰(zhàn)”的競賽,懸賞一萬美元,破解一段用56位密鑰加密的DES密文。一位名叫Rocke
Verser的程序員設(shè)計了一個可以通過互聯(lián)網(wǎng)分段運行的密鑰窮舉搜索程序,組織實施了一個稱為DESHALL的搜索行動,成千上萬的志愿者加入到計劃中,在計劃實施的第96天,即挑戰(zhàn)賽計劃公布的第140天,1997年6月17日晚上10點39分,美國鹽湖城Inetz公司的職員MichaelSanders成功地找到了密鑰,在計算機上顯示了明文:“Theunknownmessageis:Strongcryptographymakestheworldasaferplace”。1998年7月電子前沿基金會(EFF)使用一臺25萬美元的電腦在56小時內(nèi)破譯了56比特密鑰的DES。1999年1月RSA數(shù)據(jù)安全會議期間,電子前沿基金會用22小時15分鐘就宣告破解了一個DES的密鑰。盡管DES有這樣那樣的不足,但是作為第一個公開密碼算法的密碼體制成功地完成了它的使命,它在密碼學(xué)發(fā)展歷史上具有重要的地位。二重DES
zEEDDxiyixizyi
k1
k1k2k2二重DES用DES進行兩次加密,但這是否就意味著兩重DES加密的強度等價于112bit密鑰的密碼的強度?答案是否定的。
中途相遇攻擊法(Meet-in-the-MiddleAttack)
由Diffie和Hellman[1977]最早提出,可以降低搜索量其基本想法如下。若有明文密文對(xi,yi)滿足
yi=Ek2[Ek1[xi]]
則可得z=Ek1[xi]=Dk2[yi]
中途相遇攻擊給定一已知明密文對(x1,y1),可按下述方法攻擊。以密鑰k1的所有256個可能的取值對此明文x1加密,并將密文z存儲在一個表中;從所有可能的256個密鑰k2中依任意次序選出一個對給定的密文y1解密,并將每次解密結(jié)果z在上述表中查找相匹配的值。一旦找到,則可確定出兩個密鑰k1和k2;以此對密鑰k1和k2對另一已知明文密文對(x2,y2)中的明文x2進行加密,如果能得出相應(yīng)的密文y2就可確定k1和k2是所要找的密鑰。三重DES加密加密:y=Ek1[Dk2[Ek1[x]]]解密:x=Dk1[Ek2[Dk1[y]]]稱其為加密-解密-加密方案,簡記為EDE(encrypt-decrypt-encrypt)。此方案已在ANSIX9.17和ISO8732標準中采用,并在保密增強郵遞(PEM)系統(tǒng)中得到利用。破譯它的窮舉密鑰搜索量為21125×1035量級,而用差分分析破譯也要超過1052量級。此方案仍有足夠的安全性。3.3分組密碼的運行模式填充(Padding)
給定加密消息的長度是隨機的,按64bit分組時,最后一組消息長度可能不足64bit??梢蕴畛湟恍?shù)字,通常用最后1字節(jié)作為填充指示符(PI)。它所表示的十進制數(shù)字就是填充占有的字節(jié)數(shù)。數(shù)據(jù)尾部、填充字符和填充指示符一起作為一組進行加密。
數(shù)據(jù)填充PI
主要工作模式
即使有了安全的分組密碼算法,也需要采用適當?shù)墓ぷ髂J絹黼[蔽明文的統(tǒng)計特性、數(shù)據(jù)的格式等,以提高整體的安全性,降低刪除、重放、插入和偽造成功的機會。電碼本(ECB,ElectronicCodeBook)密碼分組鏈接模式(CBC,CipherBlockChaining)密碼反饋模式(CFB,CipherFeedback)輸出反饋模式(OFB,OutputFeedback)
電碼本ECB模式直接利用加密算法分別對分組數(shù)據(jù)組加密。在給定的密鑰下,同一明文組總產(chǎn)生同樣的密文組。這會暴露明文數(shù)據(jù)的格式和統(tǒng)計特征。
明文數(shù)據(jù)都有固定的格式,需要以協(xié)議的形式定義,重要的數(shù)據(jù)常常在同一位置上出現(xiàn),使密碼分析者可以對其進行統(tǒng)計分析、重傳和代換攻擊。
電碼本ECB模式
電碼本ECB模式
ECB在用于短數(shù)據(jù)(如加密密鑰)時非常理想,因此如果需要安全地傳遞DES密鑰,ECB是最合適的模式。
ECB的最大特性是同一明文分組在消息中重復(fù)出現(xiàn)的話,產(chǎn)生的密文分組也相同。
ECB用于長消息時可能不夠安全,如果消息有固定結(jié)構(gòu),密碼分析者有可能找出這種關(guān)系。密碼分組鏈接CBC模式為了解決ECB的安全缺陷,可以讓重復(fù)的明文分組產(chǎn)生不同的密文分組,CBC(cipherblockchaining)模式就可滿足這一要求。 加密算法的輸入是當前明文分組和前一次密文分組的異或,因此加密算法的輸入不會顯示出與這次的明文分組之間的固定關(guān)系,所以重復(fù)的明文分組不會在密文中暴露出這種重復(fù)關(guān)系。
CBC模式示意圖CBC的優(yōu)缺點優(yōu)點:能隱蔽明文的數(shù)據(jù)模式,在某種程度上能防止數(shù)據(jù)纂改,諸如重放、嵌入和刪除等。缺點:會出現(xiàn)傳播錯誤,對同步差錯敏感(增加或丟失一個或多個比特)。CBC的錯誤傳播1.明文有一組中有錯,會使以后的密文組都受影響,但經(jīng)解密后的恢復(fù)結(jié)果,除原有誤的一組外,其后各組明文都正確地恢復(fù)。2.若在傳送過程中,某組密文組yi出錯時,則該組恢復(fù)的明文x’i和下一組恢復(fù)數(shù)據(jù)x’i+1出錯。再后面的組將不會受yi中錯誤比特的影響。k-比特密碼反饋CFB模式若待加密消息必須按字符(如電傳電報)或按比特處理時,可采用CFB模式。CFB實際上是將加密算法DES作為一個密鑰流產(chǎn)生器,當k=1時就退化為前面討論的流密碼了。CFB與CBC的區(qū)別是反饋的密文長度為k,且不是直接與明文相加,而是反饋至密鑰產(chǎn)生器。CFB模式示意圖密碼反饋CFB模式CFB的優(yōu)點它特別適于用戶數(shù)據(jù)格式的需要。能隱蔽明文數(shù)據(jù)圖樣,也能檢測出對手對于密文的篡改。CFB的缺點對信道錯誤較敏感,且會造成錯誤傳播。CFB也需要一個初始矢量,并要和密鑰同時進行更換。輸出反饋OFB模式將分組密碼算法作為一個密鑰流產(chǎn)生器,其輸出的k-bit密鑰直接反饋至分組密碼的輸入端,同時這k-bit密鑰和輸入的k-bit明文段進行對應(yīng)位模2相加。克服了CBC和CFB的錯誤傳播所帶來的問題。對于密文被篡改難以進行檢測不具有自同步能力,要求系統(tǒng)要保持嚴格的同步比較和選用ECB模式,簡單、高速,但最弱、易受重發(fā)攻擊,一般不推薦。CBC適用于文件加密,但較ECB慢。安全性加強。當有少量錯誤時,也不會造成同步錯誤。OFB和CFB較CBC慢許多。每次迭代只有少數(shù)bit完成加密。若可以容忍少量錯誤擴展,則可換來恢復(fù)同步能力,此時用CFB。在字符為單元的流密碼中多選CFB模式。OFB用于高速同步系統(tǒng),不容忍差錯傳播。3.4高級加密標準
AES
AES提出1997年1月,美國NIST向全世界密碼學(xué)界發(fā)出征集21世紀高級加密標準(AES——AdvancedEncryptionStandard)算法的公告,并成立了AES標準工作研究室,1997年4月15日的例會制定了對AES的評估標準。
AES的要求(1)AES是公開的;(2)AES為單鑰體制分組密碼;(3)AES的密鑰長度可變,可按需要增大;(4)AES適于用軟件和硬件實現(xiàn);(5)AES可以自由地使用,或按符合美國國家標準(ANST)策略的條件使用;算法衡量條件滿足以上要求的AES算法,需按下述條件判斷優(yōu)劣a.安全性b.計算效率c.內(nèi)存要求d.使用簡便性e.靈活性。AES的評審
1998年4月15日全面征集AES算法的工作結(jié)束。1998年8月20日舉行了首屆AES討論會,對涉及14個國家的密碼學(xué)家所提出的候選AES算法進行了評估和測試,初選并公布了15個被選方案,供大家公開討論。
CAST-256,RC-6,CRYPTON-128,DEAL-128,
FROG,DFC,LOKI-97,MAGENTA,
MARS,HPC,RIJNDAEL,SAFER+,
SERPENT,E-2,TWOFISH。這些算法設(shè)計思想新穎,技術(shù)水平先進,算法的強度都超過3-DES,實現(xiàn)速度快于3-DES。
AES的評審1999年8月9日NIST宣布第二輪篩選出的5個候選算法為:
MARS(C.Burwick等,IBM),
RC6TM(R.Rivest等,RSALab.),
RIJNDEAL(J.Daemen,比),
SERPENT(R.Anderson等,英、以、挪威),
TWOFISH(B.Schiener)。2000年10月2日,NIST宣布Rijndael作為新的AESAES算法設(shè)計思想抵抗所有已知的攻擊;在多個平臺上速度快,編碼緊湊;設(shè)計簡單。Rijndael沒有采用Feistel結(jié)構(gòu),輪函數(shù)由3個不同的可逆均勻變換構(gòu)成的,稱為3個層均勻變換是指狀態(tài)的每個bit都用類似的方法處理輪函數(shù)的3層線性混合層確保多輪之上的高度擴散;非線性層將具有最優(yōu)的“最壞情況非線性特性”的S盒并行使用;密鑰加層單輪子密鑰簡單的異或到中間狀態(tài)上,實現(xiàn)一次性掩蓋。算法說明密鑰長度可變,各自可獨立指定為128、192、256比特。狀態(tài)算法中間的結(jié)果也需要分組,稱之為狀態(tài),狀態(tài)可以用以字節(jié)為元素的矩陣陣列表示,該陣列有4行,列數(shù)Nb為分組長度除32種子密鑰以字節(jié)為元素的矩陣陣列描述,陣列為4行,列數(shù)Nk為密鑰長度除321.Rijndael數(shù)學(xué)基礎(chǔ)定義一個由組成的字節(jié)b可表示為系數(shù)為{0,1}的二進制多項式:
定義在上的加法定義為二進制多項式的加法,且其系數(shù)模2。定義
在上的乘法(用符號·表示)定義為二進制多項式的乘積模一個次數(shù)為8的不可約二進制多項式,此不可約多項式為(十六進制為‘11B’)
上面定義的乘法在上滿足結(jié)合律,且有一個本原元(‘02’)。定義
在上的二進制多項式b(x)的乘法逆為滿足方程式的二進制多項式a(x),記為定義
函數(shù)xtime(x)定義為上的x·b(x)。其運算如下:若b7=0,則x·b(x)的結(jié)果就是把字節(jié)b左移一位;若b7=1,則結(jié)果需異或‘1B’。定義
有限域上的多項式是系數(shù)取自元素的多項式,這樣,一個4字節(jié)向量與一個次數(shù)小于4的多項式相對應(yīng)。定義
上的多項式的加法定義為相應(yīng)項系數(shù)相加。因為在域上的加是簡單的按位異或,所以在域上的兩向量的加也就是簡單的按位異或。定義
上的多項式和相乘模的積(表示為)為,其系數(shù)由下面4個式子得到:,,,,利用該定義有??蓪⑸鲜鲇嬎惚硎緸? 注意到M(x)不是GF(28)上的不可約多項式(甚至也不是GF(2)上的不可約多項式),因此非0多項式的這種乘法不是群運算。不過在Rijndael密碼中,對多項式b(x),這種乘法運算只限于乘一個固定的有逆元的多項式a(x)=a3x3+a2x2+a1x+a0。 定理3.1系數(shù)在GF(28)上的多項式a3x3+a2x2+a1x+a0是模x4+1可逆的,當且僅當矩陣在GF(28)上可逆。
證明:a3x3+a2x2+a1x+a0是模x4+1可逆的,當且僅當存在多項式h3x3+h2x2+h1x+h0(a3x3+a2x2+a1x+a0)(h3x3+h2x2+h1x+h0)=1mod(x4+1)
因此有(a3x3+a2x2+a1x+a0)(h2x3+h1x2+h0x+h3)=xmod(x4+1)(a3x3+a2x2+a1x+a0)(h1x3+h0x2+h3x+h2)=x2mod(x4+1)(a3x3+a2x2+a1x+a0)(h0x3+h3x2+h2x+h1)=x3mod(x4+1)將以上關(guān)系寫成矩陣形式即得(證畢)多輪整體結(jié)構(gòu)算法說明算法的輸入、輸出和種子密鑰可看成字節(jié)組成的一維數(shù)組。下標范圍輸入輸出:0-4Nb-1,種子密鑰:0-4Nk-1數(shù)據(jù)單位數(shù)據(jù)單位轉(zhuǎn)換Nb=6和Nk=4的狀態(tài)密鑰陣列按此順序放入和讀出按此順序放入將明文變成狀態(tài)(state)分組和陣列中元素對應(yīng)關(guān)系分組下標n陣列位置(i,j)i=nmod4,j=[n/4];n=i+4j輪數(shù)Nr與Nb和Nk對應(yīng)關(guān)系Nb=4Nb=6Nb=8Nk=4101214Nk=6121214Nk=8141414輪函數(shù)字節(jié)代換行移位列混合密鑰加字節(jié)代換非線性代換,獨立地對狀態(tài)的每個字節(jié)進行,并且代換表(S盒)可逆,記為ByteSub(State),分兩步將字節(jié)作為GF(28)上的元素映射到自己的逆元將字節(jié)做如下的GF(2)上變換字節(jié)代換AES的S盒y0123456789abcdefx0637c777bf26b6fc53001672bfed7ab761ca82c97dfa5947f0add4a2af9ca472c02b7fd9326363ff7cc34a5e5f171d83115304c723c31896059a071280e2eb27b275409832c1a1b6e5aa0523bd6b329e32f84553d100ed20fcb15b6acbbe394a4c58cf6d0efaafb434d338545f9027f503c9fa8751a3408f929d38f5bcb6da2110fff3d28cd0c13ec5f974417c4a77e3d645d1973960814fdc222a908846eeb814de5e0bdbae0323a0a4906245cc2d3ac629195e479be7c8376d8dd54ea96c56f4ea657aae08cba78252e1ca6b4c6e8dd741f4bbd8b8ad703eB5664803f60e613557b986c11d9eee1f8981169d98e949b1e87e9ce5528dff8ca1890dbfe6426841992d0fB054bb1695->2A逆字節(jié)代換InvSubBytes()逆字節(jié)替代變換是字節(jié)第替代變換的逆變換,在狀態(tài)的每個字節(jié)上應(yīng)用逆S盒。這是通過應(yīng)用字節(jié)替代變換中的仿射變換的逆變換,再對所得結(jié)果應(yīng)用有限域的乘法逆運算得到的。AES的逆S盒y0123456789abcdefx052096ad53036a538bf40a39e81f3d7fb17ce339829b2fff87348e4344c4dee9cb2547b9432a6c2233dee4c950b42fac34e3082eA16628d924b2765ba2496d8bd125472f8f66486689816d4a45ccc5d65B69256c704850fdedb9da5e154657a78d9d84690d8ab008cbcd30af7e45805b8b345067d02c1e8fca3f0f02c1afbd0301138a6b83a9111414f67dcea97f2cfcef0b4e673996ac7422e7ad3585e2f937e81c75df6ea47f11a711d29c5896fb7620eaa18be1bbfc563e4bc6d279209adbc0fe78cd5af4c1fdda8338807c731b11210592780ec5fd60517fa919b54a0d2de57a9f93c99cefea0e03b4dae2af5b0c8ebbb3c83539961f172b047eba77d626e169146355210c7d上述S-盒對狀態(tài)的所有字節(jié)所做的變換記為例子行移位將狀態(tài)陣列的各行進行循環(huán)移位,不同行的移位量不同0行:不動1行:循環(huán)左移C1字節(jié)2行:循環(huán)左移C2字節(jié)3行:循環(huán)左移C3字節(jié)記為:ShiftRow(State)行移位示意圖行移位移位量與分組長度的關(guān)系NbC1C2C3412361238134逆行移位InvShiftRows()逆行移位變換是行移位變換的逆變換,它對狀態(tài)的每一行進行循環(huán)右移,其中第一行保持不變,第二行循環(huán)右移1個字節(jié),第三行循環(huán)右移2個字節(jié),第四行循環(huán)右移3個字節(jié)。列混合將每列視為GF(28)上多項式,與固定的多項式c(x)進行模x4+1乘法,要求c(x)模x4+1可逆。表示為MixColumn(State)c(x)是與x4+1互素的,因此是模x4+1可逆的。列混合運算也可寫為矩陣乘法。設(shè)b(x)=c(x)a(x),則圖3.21列混合運算示意圖逆列混合InvMixColumns()逆列混合變換是列混合變換的逆,它將狀態(tài)矩陣中的每一列視為系數(shù)在上的次數(shù)小于4的多項式與同一個固定的多項式d(x)相乘。d(x)滿足(‘03’x3+‘01’x2+‘01’x+‘02
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國輪胎式挖壕機數(shù)據(jù)監(jiān)測研究報告
- 部編版一年級下冊語文期末試卷 (含答案)
- 北師大版(2019)選擇性必修第一冊Unit 1 Relationships Topic Talk Lesson 1 Teachers 同步練習(xí)(含答案)
- Unit 12 Life is full of the unexpected. Section A 1a-2d 同步達標練習(xí)題(含答案)2025年人教版英語九年級全冊
- 小飯店的勞動合同
- 給水管道管卡支墩施工方案
- 服務(wù)器托管數(shù)據(jù)中心選址考量
- 游褒禪山記:探究文言文故事脈絡(luò)教案
- 年度行業(yè)銷售額趨勢表
- 公對公車輛租賃合同
- 孩子你是在為自己讀書
- 腦梗死一病一品
- 大學(xué)物理思政元素教學(xué)大綱
- 生產(chǎn)計劃和排程培訓(xùn)
- 特朗普貿(mào)易戰(zhàn)的基本邏輯、本質(zhì)及其應(yīng)對
- 經(jīng)口鼻吸痰法護理課件
- 勞動教育課件勞動的意義
- 電氣設(shè)備故障診斷及維修方法
- 2024年其他資格考試-WSET二級認證歷年考試高頻考點試題附帶答案
- 06J403-1 樓梯、欄桿、欄板圖集
- 課堂導(dǎo)入培訓(xùn)課件
評論
0/150
提交評論