![2024現(xiàn)代密碼學(xué)簡介_第1頁](http://file4.renrendoc.com/view3/M01/1D/3A/wKhkFmZ6cq2AAMRgAAA3fpUBagA727.jpg)
![2024現(xiàn)代密碼學(xué)簡介_第2頁](http://file4.renrendoc.com/view3/M01/1D/3A/wKhkFmZ6cq2AAMRgAAA3fpUBagA7272.jpg)
![2024現(xiàn)代密碼學(xué)簡介_第3頁](http://file4.renrendoc.com/view3/M01/1D/3A/wKhkFmZ6cq2AAMRgAAA3fpUBagA7273.jpg)
![2024現(xiàn)代密碼學(xué)簡介_第4頁](http://file4.renrendoc.com/view3/M01/1D/3A/wKhkFmZ6cq2AAMRgAAA3fpUBagA7274.jpg)
![2024現(xiàn)代密碼學(xué)簡介_第5頁](http://file4.renrendoc.com/view3/M01/1D/3A/wKhkFmZ6cq2AAMRgAAA3fpUBagA7275.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
提供PDF版現(xiàn)代密碼學(xué)簡介\h2023現(xiàn)代密碼學(xué)簡介PAGE100現(xiàn)代密碼學(xué)簡介PAGE100目錄第一章緒論21.1什么是密碼學(xué).....................................21.1.1 密鑰 ......................................21.2密碼體制的基本要素.................................31.2.1 弱密鑰與半弱密鑰 ..............................51.3經(jīng)典密碼........................................51.3.1 ....................................51.3.2 單表代換密碼.................................61.3.3 單表代換密碼的破解.............................71.3.4 多表代換密碼.................................81.3.5 ....................................101.4加密系統(tǒng)的安全性...................................10第二章流密碼與偽隨機(jī)數(shù)發(fā)生器132.1數(shù)學(xué)上的基本概念...................................132.1.1 GF(2)上的加法與乘法............................132.1.2 GF(2)...............................142.2流密碼的基本概念...................................162.3基于LFSR的偽隨機(jī)比特發(fā)生器...........................172.3.1 ........................172.3.2 偽隨機(jī)比特發(fā)生器的非線性部分 ......................202.4BBS產(chǎn)生器.......................................212.5ANSIX9.17偽隨機(jī)數(shù)發(fā)生器.............................222.5.1 ....................................222.5.2 算法 ......................................22第三章分組密碼233.1設(shè)計(jì)密碼系統(tǒng)的方法.................................233.1.1 擴(kuò)散與混淆 ..................................233.1.2 置換與代換 ..................................233.2分組密碼的定義....................................233.3分組密碼的設(shè)計(jì)方法.................................243.3.1 費(fèi)斯妥密碼 ..................................243.3.2 SP.....................................253.4 分組密碼的運(yùn)行模式 263.4.1電碼本模式(ECB)...............................263.4.2密碼分組鏈接模式(CBC)...........................273.4.3密碼反饋模式(CFB).............................283.4.4輸出反饋模式(OFB).............................283.4.5計(jì)數(shù)器模式(CTR)...............................293.5DES...........................................293.5.1算法與代碼 ..................................303.5.2多重DES....................................403.5.3結(jié)構(gòu)特性....................................403.6IDEA..........................................413.6.1符號(hào)說明....................................413.6.2輪結(jié)構(gòu).....................................423.6.3加密過程....................................423.7AES...........................................433.7.1輸入與輸出 ..................................433.7.2輪函數(shù).....................................443.7.3密鑰編排算法.................................483.7.4總的加解密過程................................503.7.5數(shù)學(xué)基礎(chǔ)....................................52第四章公鑰密碼 574.1 簡介 574.2.1 ....................................584.2.2 ....................................4.2.1 ....................................584.2.2 ....................................594.2.3 RSA................................654.2.4 RSA的安全性.................................66ElGamal密碼......................................664.3.1 ....................................664.3.2 ....................................664.3.3 正確性證明 ..................................674.3.4 ElGamal密碼的安全性............................674.3.5 nElGamal........................684.3.6 ....................................684.3.7 ElGamal............................694.3第五章哈希算法 715.1 消息認(rèn)證 715.2 定義 715.3 應(yīng)用 72Merkle-Damg?rd結(jié)構(gòu) 73服從MD結(jié)構(gòu)的填充函數(shù) 735.4.2單向壓縮函數(shù).................................735.4.3算法 ......................................745.5MD5...........................................745.5.1填充比特....................................755.5.2填充長度....................................765.5.3初始化變量 ..................................765.5.4處理消息....................................775.5.5總過程.....................................815.6SHA-256........................................825.6.1填充比特....................................825.6.2填充長度....................................825.6.3 初始化變量 ..................................835.6.4 ....................................855.6.5 總過程.....................................87第六章消息驗(yàn)證碼896.1簡介...........................................896.2基于分組密碼的MAC算法..............................906.2.1 CBC-MAC...................................906.2.2 CMAC.....................................906.3基于哈希函數(shù)的MAC算法..............................916.4基于全域哈希的MAC算法..............................926.4.1 Poly1305....................................926.5認(rèn)證加密........................................956.5.1 先加密再M(fèi)AC ................................956.5.2 加密同時(shí)MAC ................................956.5.3 MAC再加密................................956.5.4 認(rèn)證加密模式.................................95第七章數(shù)字簽名967.1簡介...........................................967.2數(shù)字簽名的執(zhí)行方法.................................967.2.1 (Directdigitalsignatures)......................977.2.2 (Arbitrateddigitalsignatures)....................977.3基于公鑰密碼的數(shù)字簽名的基本步驟........................977.3.1 密鑰生成算法.................................977.3.2 ....................................977.3.3 驗(yàn)證簽名算法.................................977.3.4 討論 ......................................977.4數(shù)字簽名算法DSA..................................987.4.1 密鑰生成算法.................................987.4.2 ....................................997.4.3 驗(yàn)證簽名算法.................................99第八章安全協(xié)議 100為什么要安全協(xié)議 100安全協(xié)議記號(hào) 100密鑰協(xié)議 101對(duì)稱密碼的密鑰分配 101公鑰密碼體系的安全協(xié)議 104基于公鑰密碼的會(huì)話密鑰分配協(xié)議 105秘密共享 107第一章 緒論什么是密碼學(xué)如果我們要求一個(gè)從未接觸過密碼學(xué)的人處理一段文字,把這段文字盡可能地加密,讓思路可能會(huì)有幾個(gè)方向。318=21,“yp”2516=41,“cryptography”對(duì)應(yīng)的密碼就是“214135252133”。3“venividivici”也就變成了“yhql?ylgl?ylfl”.3個(gè)位置。當(dāng)問起這種密碼體制里最重要的是什么,大部分人都會(huì)說是加密算法。如果把加密算法告訴了別人,那這種密碼就相當(dāng)于被破解了。通人聰明一點(diǎn)的人,還會(huì)加上一個(gè)解密算法,也就是,將處理過后的密碼變?yōu)檎N淖值乃鉳代表要被加密的文字,c代表被加密出來的密碼,E()代表加密算法,D()代表解密算法,那么大多數(shù)人理解的密碼學(xué),本質(zhì)就是以下這兩個(gè)式子:c=E(m)m=D(c)密鑰AliceBobAlice事先在安全信道Bob說“我的這種加密方式是把一段由英文字母組成的語句,每個(gè)字母都在字母表中3那么花費(fèi)的這么長的時(shí)間顯然是不合理的。再者,現(xiàn)代的通信方式一般都是把信息編碼成二的這段思想博弈中,一個(gè)重要的概念呼之欲出。拿凱撒密碼為例,在其加密算法中,還有一個(gè)關(guān)鍵的量:3.AliceBob,Alice在場的所有人她用的是凱撒密碼的加密方式加密她的話,又在安全信道中告訴Bob“4”,4AliceBobAlice想說的是什么,只有掌握4Bob,才能正確地破解密碼。3個(gè)4個(gè)位置的凱撒密碼,就成了兩個(gè)密碼體制。但是,這兩種加密34個(gè)位置。我們對(duì)于這些密碼的研究,也許也就十分類似。因此,把這兩種加密方式歸類為同一種密碼體制,似乎是更好的選擇。因此,密鑰就應(yīng)運(yùn)而生了。所謂密鑰,我們可以粗略地理解成加密算法、34.k代表密鑰,那么之前的式子就變成了c=Ek(m)m=Dk(c)這也就是現(xiàn)在通用的密碼學(xué)。那么我們思考幾個(gè)問題:在一次加密通信過程中,加密算法和解密算法中使用的密鑰是否必須要相同?密鑰是否只能是一個(gè)數(shù)?可不可以沒有密鑰?針對(duì)第一個(gè)問題,確實(shí)存在某些高端的技巧,使得加密算法和解密算法使用的密鑰是不方式分為對(duì)稱加密與非對(duì)稱加密,分別對(duì)應(yīng)使用同一密鑰和使用不同密鑰。非對(duì)稱加密方式對(duì)稱加密過程中,請(qǐng)大家記住,加密算法和解密算法使用的是相同的密鑰。此外,對(duì)于對(duì)稱加密算法,密鑰也并不一定是一個(gè)數(shù)。比如說,加密算法Ea,b(m)=am+b其密鑰為(a,b),但我們?nèi)哉J(rèn)為其使用單一密鑰,也就是說,把(a,b)看作一個(gè)密鑰。此外,可不可能不存在密鑰呢?確實(shí)有這樣的密碼體制,但這樣卻也十分不安全。比如說,加密算法E(m)=m就是一個(gè)無密鑰的加密算法。密碼體制的基本要素根據(jù)之前的討論,我們就可以得出一個(gè)密碼體制的基本要素:M所有可以被加密算法加密的元素組成的集合,加密算法的定義域。明文空間的元素叫做明文m∈M.例如,在凱撒密碼中,明文空間就為所有由英文字母組成的字符串。C所有可以由加密算法輸出的元素組成的集合,加密算法的值域。密文空間的元素叫做密文c∈C.我們需要注意到的是,這里的值域,可以理解成二元函數(shù)E(k,m)的值域。比如說,對(duì)于加密算法Ek(m)=m2+k2其密文空間為[0,+∞)而非[k2,+∞).K所有密鑰組成的集合。密鑰空間的元素叫做密鑰k∈K.在非對(duì)稱加密中,密鑰空間分為加密密鑰空間和解密密鑰空間。Ek(m)根據(jù)密鑰生成的特定算法,將明文轉(zhuǎn)化為密文。Dk(c)根據(jù)密鑰生成的特定算法,將密文轉(zhuǎn)化為明文。對(duì)于對(duì)稱加密算法,也就是只使用一個(gè)密鑰的加密體制,解密算法與加密算法滿足Dk(Ek(m))=m在我們討論密碼體制的一些性質(zhì)時(shí),密鑰生成算法有時(shí)也是必要的。什么是密鑰生成算AliceBobAlice425呢?這就涉及Alice自己想到哪個(gè)密鑰就輸出哪個(gè)密(0,1)t,k1 t∈(0.5,1)k= 0 t=0.5?1 t∈(0,0.5)這就是一個(gè)典型的概率算法。其特點(diǎn)就是在兩次運(yùn)行中輸出的結(jié)果不一定相同。因此,我們稱一個(gè)加密方案包含三個(gè)要素:加密算法E,解密算法D,密鑰生成算法G.根據(jù)定義,我們可以說,一個(gè)密碼體制由一個(gè)加密方案(E,D,G)及一個(gè)明文空間M完全定義。因此,Alice和Bob的一次加密通信的過程包括:AliceGk∈K.AlicekBob.AlicemMcEk(mBob.BobAlicekcm=Dk(c)Kerckhoffs原則。用現(xiàn)代的語言來說,Kerckhoffs原則闡述的是:提倡安全性不能建立在對(duì)算法的保密上。也就是說,我們?nèi)绻C明一個(gè)加密體制的安全性,不能指望算法的保密性。我們應(yīng)默(事實(shí)上也確實(shí)如此如果潛在的敵手獲得密鑰,那么根據(jù)公開的解密算法,那么他就可以從竊得的密文中獲得明文。弱密鑰與半弱密鑰在我們構(gòu)造密碼體系的時(shí)候,有的人會(huì)想,利用已有的密碼體系加密兩次怎么樣?即:Ek(Ek(m))或者的安全性如何?
Ek1(Ek2(m))這里提出了弱密鑰與半弱密鑰的概念:1.1.Ek(m)km∈M有Ek(Ek(m))=m則稱k為弱密鑰。若密鑰k1,k2若密鑰k使得對(duì)于任意m∈M,有k1(Ek2(m))=m則稱k1,k2為一對(duì)半弱密鑰。由上述定義可知,如果我們想要利用已有的密碼體系加密兩次,那么一定要避開的就是弱密鑰與半弱密鑰。經(jīng)典密碼基礎(chǔ)概念我們討論了密碼體制的基本要素之后,就可以介紹一些經(jīng)典的密碼,讓大家更好地理解這些術(shù)語了。值得指出的是,這些密碼都是古代歐洲人的研究成果,當(dāng)時(shí)并沒有如今“數(shù)字化”的概念。因此,這些密碼,都是針對(duì)拉丁字母進(jìn)行的加密。因此,我們首先要引入一些概念:C(mmC(a1C(z)=26.I(n126之間的數(shù)字映射到字母表中相應(yīng)位置的拉丁字母上,比如I(1)=a,I(26)z.在討論經(jīng)典密碼時(shí),一些極其基礎(chǔ)的數(shù)論記號(hào)及知識(shí)可以讓我們更加方便、更加簡潔地?cái)⑹觥⒗斫膺@些經(jīng)典密碼。我們用gcd(a,b)表示a與b的最大公因數(shù)。用amodb表示整數(shù)a除以b后的余數(shù)(取值范圍為0到b?1),比如說15mod6=3,12mod6=0,(?4)mod6=2.若amodb=0,即a能整除b,我們則記為a|b.如2|4,3?4.若(a?b)|c,我們則稱a與b模c同余,記作a≡b(modc).如16≡23(mod7).a,b,cac≡1(modb),caba?1.并42a,b,ba存在gcd(a,b)=1.單表代換密碼么如果設(shè)明文為字符串“m1m2···mn”,密文為字符串“c1c2···cn”,mici均代表一個(gè)拉丁字母。凱撒密碼的加密算法ci=E(mi)=C((I(mi)+3)mod26) (1.1)解密算法
mi=D(ci)=C((I(ci)?3)mod26) (1.2)它通過對(duì)字母表中每個(gè)字母進(jìn)行固定的代換,得到密碼。單表替換密碼則是凱撒密碼的推廣,引入了密鑰。從數(shù)學(xué)意義上,可以作如下定義:“m1m2···mn“c1c2···cn”,mici均代表一個(gè)拉丁字母。(a,ba?=0那么其加密算法ci=Ea,b(mi)=C((aI(mi)+b)mod26)解密算法
mi=Da,b(ci)=C((a?1(I(ci)?b))mod26)其中a?1為a模26的逆。事實(shí)上,如果我們令ni=I(mi),qi=I(Ea,b(mi)),ei=I(Ea,b(mi)),di=I(Da,b(Ea,b(mi))),那么故也就是說,故
qi≡ani+b (mod26)di≡a?1(qi?b)≡a?1(ani+b?b)≡ni (mod26)I(Da,b(Ea,b(mi)))≡mi (mod26)Da,b(Ea,b(mi))=mi這也就證明了這個(gè)加密算法是正確的算法。讓我們不要再糾結(jié)于繁瑣的數(shù)學(xué)符號(hào),我們來從直觀上看一看這個(gè)加密算法。任意取一個(gè)密鑰,比如說,a=3,b=7,就會(huì)對(duì)應(yīng)的生成一張加密表和解密表:1.1:a3b7時(shí)的加密表明文密文ahbkcndqetfwgzhcifjikllomr明文密文nuoxpaqdrgsjtmupvswvxyybze1.2:a3b7時(shí)的解密表密文明文apbychdqezfigrhaijjskblkmt密文明文ncolpuqdrmsvteunvwwfxoyxzg那么我們根據(jù)這張表,就可以很快地進(jìn)行加密和解密的工作了。M度的字符串組成的集合,密文空間CM密鑰空間K{(a,b|a,bZgcd(a,26)1}(這gcd(a,26)1a26的逆存在。).單表代換密碼的破解上述的單表代換密碼看似十分安全,但是如果用來加密由拉丁字母組成的用語言邏輯形成的一句話時(shí),卻有一個(gè)致命的弱點(diǎn)。雖然這些密碼不會(huì)直接暴露明文,但卻會(huì)暴露明文中各個(gè)字母出現(xiàn)的頻率。我們知道,在任何一門由字母組成的語言文字中,每個(gè)字母出現(xiàn)的頻SHRDLU”12個(gè)字母,從高到低排列。根據(jù)這些頻率,就可以找到破解這種密碼的方法。為什么暴露明文出現(xiàn)的頻率就會(huì)使加密系統(tǒng)不安全呢?我們可以用一個(gè)例子來說明:我們利用單表代換密碼的原理,加密東南大學(xué)的校徽:圖1.1:單表代換加密前 圖1.2:單表代換加密顯而易見,加密效果近似于無。利用這個(gè)原理,有兩種最常用的方法:頻率分析法與巧合指數(shù)法。頻率分析法假設(shè)利用單表代換密碼加密的語言為英文,那么根據(jù)統(tǒng)計(jì)學(xué)家的知識(shí),英文字母出現(xiàn)的頻率從高到低依次是“ETAOINSHRDLU”.如果我們可以統(tǒng)計(jì)出一個(gè)相當(dāng)長的密文中各個(gè)字母出現(xiàn)的頻率,那么極有可能出現(xiàn)頻率最高的字母對(duì)應(yīng)的就是明文中的“E”.這就是頻率分析法的基本思想。巧合指數(shù)法ICNcni,i=12c.那么巧合指數(shù)的值為IC=如果這段文字充分長,那么我們有
c∑ni(ni?1)∑i=1N(N?1)
(1.3)c∑≈ci∑ni(ni?1)c∑≈cii=1N(N?1)
i=1 (1.4)N2
ni= i個(gè)字母在這段文字中出現(xiàn)的頻率,那么NICIC≈ pi2 (1.5)ii=1IC≈0.0686.kk0125依次去0.0686,k有很大可能是密鑰。多表代換密碼此,多表代換密碼應(yīng)運(yùn)而生。tttt+1個(gè)字符,則又回到第一張加密表進(jìn)行加密。用數(shù)學(xué)的語言怎么敘述這件事呢?Mm1m2···mnntp.我們將明文字符串等分12pip(i?1)+1p(i?1)+2p(i?1)+t成p個(gè)列向量M,M,...,M,其中M=(m ,m ,.12pip(i?1)+1p(i?1)+2p(i?1)+tCC1C2Cp.(A,B)Att的可逆矩陣,且滿gcd(|A|26)=1Bt維列向量。那么多表代換密碼的加密算法為Ci=EA,B(Mi)=C((AI(Mi)+B)mod26) (1.6)解密算法為
Mi=DA,B(Ci)=C((A?1I(Ci?B))mod26) (1.7)A?1滿足
A?1Amod26= ..10···001···..10···001···1.. ..00···1我們可以用一個(gè)具體的例子來理解這些抽象的公式:(11)(33)(57)的單表替換密碼生成。明文M=m1m2···mnn=3p.pM1M2Mp,其中M=(m m m )T.CCCC.i p(i?1)+1 取
p(i?1)+3A=030,BA=030,B=
1 2 p為密鑰。那么其加密算法為cp(i?1)+3cp(i?cp(i?1)+3
005 7100005005
177
=Ci=EA,B(Mi)=030Mi+3mod26 mp(i?1)+1+1 其解密算法為
= 3mp(i?1)+2+3 mod265cp(i?1)+3+7100900217 0 100900217Mi=DA,B(Ci)= 0Ci?3mod26p(p(i?1)+1 (p(i?1)+1 ) p(i?1)+2 ( p(i?1)+2 法為c =m +1mod26,第二個(gè)字符使用的加密方法為c =3m +3mod表代換密碼的原意。26,第三個(gè)字符使用的加密方法為cp(i?1)+3=(5mp(i?1)+3+7)mod26.這也就是我們?cè)O(shè)計(jì)多表代換密碼的原意。A0的位置。但是,我們之前在數(shù)學(xué)上0.事實(shí)上,這些位置如果不是0置與前后位置的字符一起確定。這也是可行的。多表代換密碼也是不安全的。我們利用多表代換密碼同樣加密上面提到的東南大學(xué)?;?,得到的結(jié)果也很不理想: 圖1.3:多表代換加密前 圖1.4:多表代換加密后一次一密之前我們說道,單表代換密碼可以根據(jù)每個(gè)字母出現(xiàn)的頻率來破解,其實(shí)多表代換密碼一密的方法就是答案。為了加密某個(gè)長度為n的字符串,我們?nèi)×硪粋€(gè)長度為n的字符串作為密鑰。所得的密文就是明文每個(gè)字符在字母表中的位置與密鑰每個(gè)字符在字母表中的位置相加。由密文得到明文也就是密文中每個(gè)字符在字母表中的位置與密鑰每個(gè)字符在字母表中的位置相減。這種方式之所以稱為一次一密,是因?yàn)橥淮荑€只能使用一次。試想如果有人竊得了用同一串密鑰加密的兩個(gè)密文C1,C2,將這兩個(gè)字符串中的每個(gè)字符按其在字母表中的位置相減,那么如果出現(xiàn)0,那么對(duì)應(yīng)位置就就有可能是出現(xiàn)頻率比較高的幾個(gè)字母。當(dāng)然,更嚴(yán)謹(jǐn)?shù)恼撟C可以用之后提到的概率論的方式證明。最后,值得一提的是,現(xiàn)代使用的量子加密中,最常用的加密機(jī)制就是一次一密。加密系統(tǒng)的安全性(EDG).其中,E代表加密算法,D代表解密算法,G代表密鑰MC,K.m∈M,MPr[M=m]m的概率。這一定“attacktomorrow”“don’tattack”.“attacktomorrow”0.6,明“don’tattack”0.4.k∈K,K為表示密鑰值的隨機(jī)變量,用Pr[Kk]Gk的概(由常識(shí)可知,KM是獨(dú)立的)c∈C,CPr[C=c]c∑Pr[C=c]=∑c=Ek(m)我們定義完善保密(perfectsecrecy):
Pr[M=m]Pr[K=k] (1.8)定義1.2.對(duì)于明文空間為M的加密方案(E,D,G),若對(duì)M上的任何概率分布,任何明文m∈M、任何密文c∈C且Pr[C=c]有Pr[M=m|C=c]=Pr[M=m] (1.9)則稱加密方案(E,D,G)是完善保密。用一句通俗的話來講,就是敵手在竊取密文之后并不會(huì)對(duì)明文有任何知識(shí)。而用概率論MC是獨(dú)立的。但是,完善保密也有其膠柱鼓瑟之處:定理1.1.若明文空間為M的加密方案(E,D,G)是完善保密,則|K|≥|M|,|C|≥|M| (1.10)長,而密文則也至少要和明文一樣長。難以實(shí)現(xiàn)的目標(biāo)。香農(nóng)定理:定理1.2.對(duì)于明文空間為M的加密方案(E,D,G),若|K|=|M|=|C|,則當(dāng)且僅當(dāng)下列條件成立時(shí),此方案是完善保密加密:∈K由G產(chǎn)生的任意密鑰k 的概率都是1∈K|K|mMcCkKcEk(m).關(guān)于完善保密,我們的討論就告一段落。最后,介紹一下對(duì)加密系統(tǒng)安全性的分類。對(duì)加密系統(tǒng)安全性的分類,現(xiàn)在主流學(xué)界習(xí)慣上以敵手的算力及時(shí)間進(jìn)行劃分:無條件安全如果假設(shè)攻擊者在無限資源的前提下,也無法破譯加密算法,就認(rèn)為相應(yīng)的密碼體制是無條件安全的。這里的無限資源,可以包括無限算力和無限時(shí)間??梢园褵o條件安全的加密方式理解成完美加密。計(jì)算安全使用目前最好的方法攻破它所需要的計(jì)算遠(yuǎn)遠(yuǎn)超出攻擊者的計(jì)算資源水平,則可以定義這個(gè)密碼體制是計(jì)算安全的。比如說,如果要破解某個(gè)加密算法需要用當(dāng)今最好的計(jì)算機(jī)連續(xù)工作一萬年,那么我們就可以認(rèn)為這個(gè)密碼體制是計(jì)算安全的??勺C明安全如果破譯某加密算法的困難性與破解某些困難數(shù)學(xué)命題的困難性相同(如大整數(shù)的因數(shù)分解,則可以定義這個(gè)密碼體制是可證明安全的。些概念實(shí)際上都是有嚴(yán)格的數(shù)學(xué)定義的。鑒于我們目前的數(shù)學(xué)水平有限,在這里引入這些數(shù)學(xué)概念是不適合的。因此,我們僅從感性上理解這些概念即可。第二章 流密碼與偽隨機(jī)數(shù)發(fā)生器數(shù)學(xué)上的基本概念0101二進(jìn)制串組成的集合。因此,為了接下來能更順暢地進(jìn)行關(guān)于流密碼的討論,這里先介紹一些數(shù)學(xué)上關(guān)于這方面的基礎(chǔ)知識(shí)。GF(2)上的加法與乘法由于我們討論的僅是0和1及它們的運(yùn)算,因此,我們定義一個(gè)有限域GF(2)={0,1}.有限域GF(2)上的加法被定義成邏輯上的異或,也可以理解成模2加法。以下為GF(2)上的加法表:表2.1:GF(2)上的加法表+01001110如果我們定義一個(gè)集合中元素a的加法逆元?a滿足a+(?a)=(?a)+a=0則GF(2)上的加法逆元表為:表2.2:GF(2)上的加法逆元表a0 1?a0 1而GF(2)上的減法則可以定義成與加法逆元的加法,即a?b=a+(?b) (2.1)GF(2)上的乘法則被定義成了邏輯上的與。以下為GF(2)上的乘法表:表2.3:GF(2)上的乘法表·01000101根據(jù)上述的定義,我們可以得出以下GF(2)上常用的運(yùn)算規(guī)則:??x∈GF(2),x+x=0 (2.2)??x,y∈GF(2),x?y=y?x=x+y (2.3)??x∈GF(2),x·x=x (2.4)GF(2)上的多項(xiàng)式(2)式理論。對(duì)于表達(dá)式∑n∑anxn+an?1xn?1+···+a1x+a0= aixi (2.5)i=0a0a1anSa0a1anan?0Sn01,GF(2)上的多項(xiàng)式。值得指出的是,我們研究多項(xiàng)式理論時(shí),多項(xiàng)式在我們眼中僅僅是一個(gè)表達(dá)式,我們并x的取值進(jìn)行多項(xiàng)式的求值。它就相當(dāng)于一個(gè)集合的元素,一個(gè)多項(xiàng)式就fgh?x,h(xf(xg(x來定義多項(xiàng)式之和。盡管結(jié)果確實(shí)如此,但這應(yīng)該理解為自洽的定義,而非推導(dǎo)。多項(xiàng)式的加法兩個(gè)多項(xiàng)式之和的多項(xiàng)式的系數(shù),等于其對(duì)應(yīng)系數(shù)之和。即:若m≥n,則m n n mi=0j=0k=0i=n+1∑aixi+∑bjxj=∑(ak+bk)xk+∑i=0j=0k=0i=n+1其中ak+bk的加法應(yīng)理解成系數(shù)集S上的加法。f=x21g=x3x2那么其和我們可以類似于小學(xué)時(shí)的豎式來計(jì)算:f = x2 +1g = x3 + x2 +1f+g = x3 + 2x2 +2但是,我們這里也需要注意到剛剛說的,ak+bk的加法應(yīng)理解成系數(shù)集S上的加法。比如說還是剛剛的兩個(gè)多項(xiàng)式,但其在GF(2)上的加法為:f = x2 + 1g = x3 + x2 + 1f+g = x3這里2x2與2之所以不見了,是因?yàn)樵贕F(2)上,1+1=0.多項(xiàng)式的減法類似于多項(xiàng)式的加法的定義,兩個(gè)多項(xiàng)式之差的系數(shù),等于其對(duì)應(yīng)系數(shù)之差。在GF(2)上的多項(xiàng)式之差的例子:f = x2 + 1g = x3 + x2 + 1f?g = x3這里是由于(0?1)x3=(0+1)x3=x3,(1?1)x2=0,1?1=0.多項(xiàng)式的乘法我們可以形式上地用乘法分配律進(jìn)行計(jì)算,并且約定xixj=xi+j.下面演示一下GF(2)上多項(xiàng)式的乘法運(yùn)算:(x+1)(x+1)=xx+(1+1)x+1=x2+1注意到在GF(2)上,(1+1)x=0.fnf·fn?1.多項(xiàng)式的整除|fghfghgfgf同時(shí)fh.|g注意這仍是在系數(shù)集S上的。比如說,在GF(2)中,我們有(x2+1)|(x+1)2fghghfgh的f的次數(shù)。GF(2)上的常用等式加法交換律f+g=g+f (2.7)加法結(jié)合律乘法交換律乘法結(jié)合律乘法對(duì)加法的分配律
(f+g)+h=f+(g+h) (2.8)fg=gf (2.9)(fg)h=f(gh) (2.10)f(g+h)=fg+fh 等比數(shù)列求和公式:對(duì)于多項(xiàng)式f和g?=1∑n?1 n∑f+gf+fg2+···+fgn?1= fgi=i=0
?fg1?g
(2.12)總結(jié)GF(2)這個(gè)有限域上的運(yùn)算和我們?cè)趯?shí)數(shù)集上的運(yùn)算很不一樣,所以在后文中我們應(yīng)GF(2)上的還是定義在實(shí)數(shù)集上的。同時(shí),我們也該清楚定理敘述的是多項(xiàng)式之間的關(guān)系還是值之間的關(guān)系。流密碼的基本概念所以是完善保密的,最重要的一點(diǎn)是每次密鑰的字符串是隨機(jī)生成的。通過之前講的香農(nóng)定理我們可以知道,每個(gè)密鑰字符串生成的概率均是相等的。如果我們可以降低一點(diǎn)這種隨機(jī)+強(qiáng)保密的目標(biāo)。為此,我們引入偽隨機(jī)數(shù)序列的概念。由于這個(gè)概念的嚴(yán)格定義需要高超的概率論及算法知識(shí),我們只需要感性地理解偽隨機(jī)數(shù)序列為一種,由確定的算法產(chǎn)生的(即相同的初始條件下的輸出是相同的,與真隨機(jī)數(shù)序列性質(zhì)幾乎一樣的序列。Mm1m2···mn我kZz1z2···zn作為密鑰流輸出Yy1y2···ynyimiziGF(2)miyizi.一次一密使用的是真隨機(jī)序列,流密碼使用的是偽隨機(jī)序列。如何能使偽隨機(jī)序列的表現(xiàn)足f(kσik為當(dāng)前時(shí)刻系統(tǒng)的狀態(tài)。在每個(gè)時(shí)刻,f(kσiσi+1常把一個(gè)用于加密算法的偽隨機(jī)序列稱為密鑰流,產(chǎn)生偽隨機(jī)序列的算法稱為密鑰流生成器。σi.們將流密碼分為同步流密碼和自同步流密碼。如果密鑰流生成器中的狀態(tài)與輸入的明文有關(guān),(PRBG)CFB模式。那么流密碼的過程可以理解為:如果設(shè)明文為二進(jìn)制串X=x1x2···xn,密鑰為k.在初始狀態(tài)下,輸入x1和k,偽隨機(jī)數(shù)發(fā)生器根據(jù)當(dāng)前的狀態(tài)輸出一個(gè)偽隨機(jī)數(shù)z1,輸出密文y1=x1⊕z1.接著輸入x2,密鑰流生成器根據(jù)當(dāng)前的狀態(tài)輸出一個(gè)偽隨機(jī)數(shù)z2,輸出密文y2=x2⊕z2.以此類推。流密碼本身并沒有太多的技巧,但是,偽隨機(jī)比特發(fā)生器在密碼學(xué)中則有許多作用。所以,下面我們主要討論一下各種偽隨機(jī)比特發(fā)生器。LFSR的偽隨機(jī)比特發(fā)生器為了生成近似真隨機(jī)的偽隨機(jī)序列,基于LFSR的偽隨機(jī)數(shù)發(fā)生器由線性部分和非線性部分組合。偽隨機(jī)比特發(fā)生器的線性部分LFSRσi=an,ian?1,i···a1,in個(gè)二進(jìn)制數(shù)構(gòu)成。在啟動(dòng)之a(chǎn)n,0an?1,0···a1,0.bi為bi=a1,i?1 (2.13)而狀態(tài)更新的方法為aj,i
=aj+1,i 1≤j≤n?f(a1,i?1,a2,i?1,...,an,i?1) j=n
(2.14)其中反饋函數(shù)f(a1,i?1,a2,i?1,...,an,i?1)是一個(gè)GF(2)上的線性函數(shù)。即:an,i=f(a1,i?1,a2,i?1,...,an,i?1)=cna1,i?1+cn?1a2,i?1+···+c1an,i?1 (2.15)∑n∑= cn+1?kak,i?1 (2.16)k=1ckGF(2)ck01.這些數(shù)字都是固定的,由偽隨機(jī)數(shù)發(fā)生器本身決定。GF(2)上的運(yùn)算。我們通過一個(gè)例子來熟悉:110f(a3,ia2,ia1,ia3,ia1,i則我們可以通過下表來了解這個(gè)線性部分的輸出:i01234567···f(a3,a2,a1)10100111···a311010011···a211101001···a101110100···b0111010···其輸出序列就為011101 011101···.i的遞增,上一行的數(shù)會(huì)傳給下一行的數(shù)。這似乎是某種線性寄存器的工作形式。因此,我們稱偽隨機(jī)數(shù)發(fā)生器的線性部分為一個(gè)(LinearFeedbackShiftRegisterLFSR).n?=0,nLFSR.LFSR的輸出序列B=b1b2···bi···LFSR的輸出序列,則由上述的討論也可以知道(bi+1bi+2···bi+n)=(a1,i?1a2,i?1···an,i?1) (2.17)前半句話顯然,設(shè)?1≤j≤n,aj,i=0.對(duì)于j≤n?1,aj,i+1=aj+1前半句話顯然,設(shè)?1≤j≤n,aj,i=0.對(duì)于j≤n?1,aj,i+1=aj+1,i=0.而an,i=cna1,i?1+cn?1a2,i?1+···+c1an,i?1=0σian,ian?1,i···a1,i≤j≤n,aj,iaj?1,i+10an,i+1?=0.且0=an,i+1=cna1,i+cn?1a2,i+···+c1an,i=cna1,i又由于cn0,故a1,i=0矛盾。由上述討論可知,一個(gè)LFSR中的狀態(tài),至多2n?1個(gè)之后即達(dá)成循環(huán)。也就是說,一個(gè)LFSR產(chǎn)生的序列,周期至多為2n?1.2.1.LFSR2n1m序列。m序列相關(guān)定理上述的討論中,我們提到,反饋函數(shù)an,i=cna1,i?1+cn?1a2,i?1+···+c1an,i?1中的c1,c2,...,cn由LFSR本身決定。因此:2.2.GF(2)上的多項(xiàng)式p(x)=1+c1x+···+cn?1xn?1+cnxn (2.18)為LFSR的特征多項(xiàng)式。對(duì)于LFSR生成的一個(gè)序列a1a2···an···,稱冪級(jí)數(shù)∑∞∑A(x)= aixi?1 (2.19)i=1為該序列的生成函數(shù)。對(duì)于使用給定的LFSR,由于初始狀態(tài)不同而產(chǎn)生的所有2n?1個(gè)非零序列構(gòu)成的集合記作tt(p(x)).下面敘述一個(gè)在證明中很有用的定理:2.1.LFSRp(x1c1x···cn?1xn?1cnxnA(xtt(p(x))中任意序列{an}的生成函數(shù),則對(duì)于GF(2)上的多項(xiàng)式p(x)和A(x),滿足?(x)A(x)=(其中(nn
p(x)i∑ )i
(2.20)?(x)=我們可以對(duì)?(x)進(jìn)行展開:nn
i=1(
cn?ixn?iii
j=1
)
(2.21)?(x)===
i=1nnii=1
cn?ixn?i∑jj=1
j=1
ajxj?1)nn? k=ni+?
n?1
cn?iak?n+i+1x∑ki=1k=n?i∑k因此,我們可以發(fā)現(xiàn),?(x)的次數(shù)不超過n?1.2.3.GF(2)p(x)p(x|xp1pp(x的階。一個(gè)與之相關(guān)的定理是:2.2.p(xnm.an}∈tt(p(x)){an}的周期為m.2.4.np(x2n1p(x是本原多項(xiàng)式。下面敘述的是最關(guān)鍵的一個(gè)定理:2.3.{antt(p(x)){anmp(x是本原多項(xiàng)式。LFSR是偽隨機(jī)比特產(chǎn)生器為了敘述本節(jié)的定理,我們引入兩個(gè)概念:定義2.5.對(duì)于序列{an},長度最大為n的連續(xù)的0或者1稱為一個(gè)長度為n的0游程或1游程。對(duì)于GF(2)上周期為2的序列{an},稱其異相關(guān)函數(shù)為11 ? ? ≤ ?R(τ)= (1)ak(1)ak+τ,0<τ T 1 (2.22)Tk=1之前我們提到的偽隨機(jī)數(shù)序列,我們?cè)谶@里給出一種定義方法:2.6.{an},其為偽隨機(jī)序列的條件為在序列的一個(gè)周期內(nèi),011.i101游程個(gè)數(shù)相等。2i該序列的異相關(guān)函數(shù)是個(gè)常數(shù)。那么我們可以證明,一個(gè)n長m序列是這種意義下的偽隨機(jī)序列。LFSR密碼的破譯LFSRn2n的明密文對(duì)。假設(shè)敵手獲得的明密文對(duì)為x1x2···x2n和y1y2···y2n,其需要破譯的是LFSR的特征多項(xiàng)式的系數(shù)c1,c2,...,cn.那么由于在GF(2)上yi=xi+ziziiGF(2)上xi+yi=xi+xi+zi=zi從而敵手就獲得了一段長度為2n的密鑰流z1z2···z2n.如果記且故根據(jù)表達(dá)式可得:
S=(z ,z ,...,z )T,i=0,1,...,n?1 (2.23)i i+1 i+2 X=(S0,S1,...i i+1 i+2 zn+i=cnzi+cn?1zi+1+···+c1zi+n?1 (2.25)(zn+1,zn+2,...,z2n)=(cn,cn?1,···,c1)X (2.26)而我們可以證明X是可逆的。故(cn,cn?1,···,c1)=(zn+1,zn+2,...,z2n)X?1 (2.27)偽隨機(jī)比特發(fā)生器的非線性部分由上述的討論我們可以發(fā)現(xiàn),線性的偽隨機(jī)數(shù)發(fā)生器產(chǎn)生的密鑰流一定是周期的。而周處理,才能提高安全性。偽隨機(jī)數(shù)發(fā)生器的非線性部分的主要工作是接受一個(gè)或多個(gè)LFSR的輸入,以非線性的方式,輸出密鑰流。線性復(fù)雜度越高的密鑰流越安全。周期我們可以直接衡量,而線性復(fù)雜度我們?cè)撊绾魏饬磕兀课覀兎Q一個(gè)序列的線性復(fù)雜度為生成該序列的最短LFSR的級(jí)數(shù)。即若該序列周期T滿足2n?11<T≤2n1,n.GeffeLFSRGeffeLFSR{a(1){a(2){a(3)}.其輸出序列{bk}可以表示為
n n na(2)kbk0a(3)k1a(1)knnn12{a(1)},{a(2)}{a(3)}2n1?1,2n2?12n3?1n,n,nnn12
3兩兩互3{bk}(2n1?1)(2n2?1)(2n3?1),(n1+n3)n2+n3JK觸發(fā)器JKLFSRJKLFSR{a(1){a(2)}.其輸出序列{bk}可以表示為a(1)ka(2)kbk00bk?101010011bk?1nn00k若{a(1)和{a(2)2n12m1m,n互素,a(1)a(2)1則nn00k的周期為(2n?1)(2m?1)鐘控序列生成器LFSR{LFSR{a(1){a(2)}.前一個(gè)序列控制后一個(gè)序列的時(shí)鐘周期nk.其輸出序列{bk}可以表示為a(1)knkbk0nk?1a(2)nk1nk?1+1a(2)nk的周期分別為p{ } 的周期分別為p若 n 和 n若n和n
p1?11和p,1和p,且記w=ia(1),則a(1),則的周期為12.2i=0
pp k gcdkgcd(w,p2)若p1=2m?1,p2=2n?1,則其線性復(fù)雜度為n(2m?1).BBS產(chǎn)生器與LFSR相比,BBS產(chǎn)生器則需要更多的數(shù)學(xué)技巧。其步驟如下:p,qp≡q≡3(mod4),n=pqs(s,n1X0=s2modn{Bn的計(jì)算公式如下i?1Xi=i?1
modnBi=Ximod2BBSLFSR相比,BBS涉及了大素BBS產(chǎn)生器一般不用于實(shí)際操作中。ANSIX9.17偽隨機(jī)數(shù)發(fā)生器與每次產(chǎn)生一個(gè)比特的偽隨機(jī)比特發(fā)生器不同,偽隨機(jī)數(shù)發(fā)生器每次產(chǎn)生一個(gè)偽隨機(jī)數(shù)。偽隨機(jī)比特發(fā)生器是一種特殊的偽隨機(jī)數(shù)發(fā)生器。偽隨機(jī)比特發(fā)生器一般用于流密碼,而偽偽隨機(jī)數(shù)發(fā)生器。準(zhǔn)備階段64V0.此外,DTii64位的數(shù)字。TDESDES6464比特的輸出,同時(shí),TDES56K1,K2K1,K2TDESmTDEK1,K2(m).算法輸出的偽隨機(jī)數(shù)序列{Rn}的公式如下:Ri=TDEK1,K2(Vi⊕TDEK1,K2(Ti))Vi+1=TDEK1,K2(Ri⊕TDEK1,K2(Ti))第三章 分組密碼設(shè)計(jì)密碼系統(tǒng)的方法我們之前提到如凱撒密碼、多表代換密碼等經(jīng)典密碼的時(shí)候,講到了破解這些密碼的一是對(duì)于明文中的每個(gè)字符,其移位都是隨機(jī)的,因此在密文中完全沒有明文中字母出現(xiàn)的頻現(xiàn)的字母頻率的信息,來抵御這種頻率攻擊呢?香農(nóng)給出了一種解決方法。擴(kuò)散與混淆所謂擴(kuò)散,指的是如果我們改變明文中的一個(gè)字符,加密得到的密文中的多個(gè)字符也會(huì)得到改變;如果我們改變密文中的一個(gè)字符,解密得到的明文中的多個(gè)字符也同樣會(huì)得到改就可以是用明文中的多個(gè)字符去生成密文中的一個(gè)字符。擴(kuò)散是將明文和密文之間的關(guān)系變得復(fù)雜使我們很難獲得密鑰,而混淆則是將密鑰和密文之間的關(guān)系變得復(fù)雜。例如,密鑰中的一個(gè)字符的改變會(huì)導(dǎo)致密文中多個(gè)字符的改變。因此,即使攻擊者通過密文,知道了一些關(guān)于明文的統(tǒng)計(jì)信息,也很難獲得密鑰。易破解。置換與代換后輸出。置換中最常用的結(jié)構(gòu)為Pm位二進(jìn)制輸入,m把輸入的比特按一定規(guī)則打亂順序后輸出。Sm位二進(jìn)制2m2nS2mnS盒需要保證不同的輸入對(duì)應(yīng)的輸出也不同。從編程上,我們也可以將此理解成一個(gè)長度2mnn2m.分組密碼的定義P盒與S可以是任意長度的。因此,為了更好地實(shí)現(xiàn)擴(kuò)散與混淆,我們引入了分組密碼。文分成若干個(gè)等長的組,然后對(duì)每個(gè)組利用密鑰依次進(jìn)行加密,生成等長的密文組。。由于密文是明文按組生成的,因此,分組密碼具有擴(kuò)散性;而通過采用特別設(shè)定的S盒,也可以實(shí)現(xiàn)混淆性。們之前提到的同步密碼,實(shí)際上也可以看作是將明文分組進(jìn)行加密,每個(gè)組的長度為其偽隨個(gè)組的每個(gè)比特都參與到了密文的生成中的加密方法,才是我們這一章研究的重點(diǎn)。DES,IDEA,AES或者密文是固定長度的。分組密碼的設(shè)計(jì)方法SP需要將同一個(gè)步驟重復(fù)多輪。而在加密過程中,任何核心步驟都是同時(shí)需要明文和密鑰的信16輪步驟,那么,我們就應(yīng)設(shè)計(jì)一種算法,使密鑰16個(gè)子密鑰。費(fèi)斯妥密碼費(fèi)斯妥密碼每一輪的步驟,接受上一輪的輸出Oi?1為本輪的輸入Ii,同時(shí)接受子密鑰Ki,輸出本輪輸出Oi.首先,將輸入的二進(jìn)制串Oi?1分成左右兩個(gè)相等長度的子串Li?1和Ri?1,然后計(jì)算Li=Ri?1 (3.1)Ri=Li?1⊕F(Ri?1,Ki) (3.2)最后輸出是把Li和Ri拼起來成Oi.其中F(Ri?1,Ki)稱為輪函數(shù),是不同具體的加密算法的核心。abba因此,其解密過程與加密過程完全相同,只不過需要把子密鑰倒著順序使用??梢杂孟聢D形象地理解費(fèi)斯妥密碼(i:值得注意到的一點(diǎn)是,在最后一次輸出的時(shí)候,不再進(jìn)行交換,也就是說,輸出的并不是(Ln+1,Rn+1),而是(Rn+1,Ln+1).SP網(wǎng)絡(luò)SP網(wǎng)絡(luò)每輪接受到輸入之后,首先,將輸入與該輪的子密鑰進(jìn)行異或,然后是對(duì)輸入再(也就是對(duì)分過組的明文的每組內(nèi)容再次進(jìn)行分組SP盒的置換進(jìn)行輸出。P網(wǎng)絡(luò)(i:分組密碼的運(yùn)行模式Mm1m2mnnEk(m)Dk(c).(ECB)對(duì)于每組,其加密的輸入為明文分好的組mi,密鑰為同一個(gè)密鑰串k.也就是說,ci=Ek(mi) (3.3)其加密過程如圖所示(i:blockcipherencryptionblockcipherencryptionPlaintext Plaintext PlaintextblockcipherencryptionblockcipherencryptionblockcipherencryptionKeyblockcipherencryption
Key
Key Ciphertext
Ciphertext
CiphertextElectronicCodebook(ECB)modeencryptionECB模式極不安全。比如說,我想用ECB模式的AES密碼體系加密東南大學(xué)的?;眨航Y(jié)果為(CBC)對(duì)于每組,其加密的輸入為當(dāng)前明文組與前一密文組的異或。也就是說,ci=Ek(mi⊕ci?1)=Ek(mi⊕Ek(mi?1)) (3.4)m0,IV,m1異或。其加密過程如圖所示(i:Plaintext
Plaintext
PlaintextInitializationInitialization(IV)KeyblockcipherencryptionKeyblockcipherencryptionKeyblockcipherencryptionCiphertext
Ciphertext
CiphertextCipherBlockChaining(CBC)modeencryption(CFB)CFB模式需要一個(gè)移位寄存器。同時(shí),CFB模式也提供了一個(gè)可選的參數(shù)j,通常取j=8.其過程如下:jjj個(gè)比特輸入到移位寄存器的右邊。然kjj個(gè)比特的輸入進(jìn)行異或輸出。與CBC類似,處理第一組時(shí)移位寄存器內(nèi)的值也需要一組初始的二進(jìn)制串IV.Hj(mmj位,Pij比特的分組,CFB模式的加密過程可用公式描述為:ci=Hj(Ek(Si?1))⊕Pi (3.5)其中Si為移位寄存器的值。移位寄存器的工作方式為Si=((Si?1<<x)+ci)mod64 (3.6)如果忽略移位寄存器,其大致的工作原理可由下圖表示(i:InitializationVector(IV)KeyKeyKeyKeyPlaintextPlaintextPlaintextblockcipherencryptionblockcipherencryptionblockcipherencryptionCiphertext
Ciphertext
CiphertextCipherFeedback(CFB)modeencryption(OFB)OFB模式與CFB文異或之前的輸出。如下圖所示(i:InitializationVector(IV)KeyKeyKeyKeyPlaintextPlaintextPlaintextblockcipherencryptionblockcipherencryptionblockcipherencryptionCiphertext
Ciphertext
CiphertextOutputFeedback(OFB)modeencryptionOFB中,明文出錯(cuò)只會(huì)影響該組的密文,之后的密文都不會(huì)被影響。OFB密碼。真正經(jīng)過分組密碼體系加密的是密鑰,而明文則是通過與密鑰加密出來的結(jié)果異或產(chǎn)OFB模式的安全性高,則要求由分組密碼加密出來的密鑰為偽隨機(jī)序列。(CTR)OFBCTRCTR模f.其接受一個(gè)初始值,并在每組加密完成后,進(jìn)行計(jì)數(shù),累加到當(dāng)前明文組異或產(chǎn)生密文輸出。其過程如圖所示(i:Noncec59bcf35…
Nonceblockcipherencryptionc59bcf35…blockcipherencryption
Nonceblockcipherencryptionc59bcf35…blockcipherencryption
Counter00000002 blockcipherencryptionKeyPlaintextblockcipherencryption
KeyPlaintext
KeyPlaintextCiphertext
CiphertextCounter(CTR)modeencryption
Ciphertext根據(jù)上圖,我們可以發(fā)現(xiàn)CTR的獨(dú)一無二的好處:可以并行加密。其每組加密不需要上組的任何信息,只需要該組對(duì)應(yīng)的計(jì)數(shù)器值即可。DES接下來,我們討論的是,在每組內(nèi)的分組加密算法。DES是最著名的分組密碼之一。我們可以先大致地討論其算法,然后再討論其一些性質(zhì)。算法與代碼DES采用了費(fèi)斯妥密碼的結(jié)構(gòu),并對(duì)它進(jìn)行了一定的改進(jìn)。之前我們提到的費(fèi)斯妥密碼,DES的算法。主體:費(fèi)斯妥密碼首先,我們介紹DES的主體——費(fèi)斯妥密碼。正如之前說的,費(fèi)斯妥密碼為一個(gè)步驟的多輪操作。其核心公式為Li=Ri?1 (3.7)Ri=Li?1⊕F(Ri?1,Ki) (3.8)其中,Li?1,Ri?1為上一輪輸出的左右兩半,Li,Ri為本輪輸出的左右兩半,F(xiàn)(Ri?1,Ki)為輪函數(shù),Ki為本輪的子密鑰。的密鑰的順序與加密正好相反。DES166448位二進(jìn)制串(568位是校驗(yàn)位不用于加密過程64進(jìn)制串。bitset<64>round(bitset<64>input,bitset<48>ki){bitset<64>output;bitset<32>bitset<64>round(bitset<64>input,bitset<48>ki){bitset<64>output;bitset<32>previousLeftPart;bitset<32>leftPart;bitset<32>rightPart;for(inti=0;i<32;i++)previousLeftPart[31-i]=input[63-i];for(inti=0;i<32;i++)leftPart[31-i]=input[31-i];rightPart=previousLeftPart^F(leftPart,ki);for(inti=0;i<32;i++)output[63-i]=leftPart[31-i];for(inti=32;i<64;i++)output[63-i]=rightPart[63-i];returnoutput;}}費(fèi)斯妥密碼的輪函數(shù)SPSP盒的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)城市中的智能化垃圾分類與處理
- 物流園區(qū)中的多式聯(lián)運(yùn)組織與管理
- 國慶節(jié)手表銷售活動(dòng)方案
- 臨時(shí)用電專項(xiàng)施工方案編制
- 現(xiàn)代辦公環(huán)境下的溝通技巧與團(tuán)隊(duì)合作
- 生產(chǎn)中的柔性管理策略及實(shí)踐應(yīng)用
- 學(xué)生國慶節(jié)游玩活動(dòng)方案
- Unit 1 Sports and Game Lesson 3(說課稿)-2024-2025學(xué)年人教新起點(diǎn)版英語四年級(jí)上冊(cè)
- 25 王戎不取道旁李(說課稿)-2024-2025學(xué)年統(tǒng)編版語文四年級(jí)上冊(cè)
- 2024年六年級(jí)品社下冊(cè)《可怕的物種入侵》說課稿2 蘇教版
- 2025年三人合伙投資合作開店合同模板(三篇)
- 2025年合資經(jīng)營印刷煙包盒行業(yè)深度研究分析報(bào)告
- 天津市五區(qū)縣重點(diǎn)校2024-2025學(xué)年高一上學(xué)期1月期末聯(lián)考試題 化學(xué) 含答案
- 吉林省吉林市普通中學(xué)2024-2025學(xué)年高三上學(xué)期二模試題 生物 含答案
- 高考日語閱讀理解練習(xí)2篇-高考日語復(fù)習(xí)
- 2025年湖南省通信產(chǎn)業(yè)服務(wù)限公司春季校園招聘76人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版高一數(shù)學(xué)上冊(cè)期末考試試卷及答案
- 安全學(xué)原理第2版-ppt課件(完整版)
- 鉭鈮礦開采項(xiàng)目可行性研究報(bào)告寫作范文
- 小升初數(shù)學(xué)銜接班優(yōu)秀課件
- 出口食品生產(chǎn)企業(yè)備案自我評(píng)估表
評(píng)論
0/150
提交評(píng)論