應(yīng)用密碼學(xué)課件_第1頁(yè)
應(yīng)用密碼學(xué)課件_第2頁(yè)
應(yīng)用密碼學(xué)課件_第3頁(yè)
應(yīng)用密碼學(xué)課件_第4頁(yè)
應(yīng)用密碼學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩309頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章密碼學(xué)概述密碼學(xué)與信息安全密碼體制與密碼分析密碼體制的安全性香農(nóng)理論簡(jiǎn)介計(jì)算復(fù)雜性理論簡(jiǎn)介*密碼學(xué)與信息安全密碼學(xué):研究信息的保密和復(fù)原保密信息以獲取其真實(shí)內(nèi)容的學(xué)科稱為密碼學(xué)(cryptology)。它包括密碼編碼學(xué)和密碼編碼學(xué)(cryptography):研究對(duì)信息進(jìn)行編碼實(shí)現(xiàn)隱蔽信息的一門學(xué)科。密碼分析學(xué)(cryptanalytics):研究復(fù)原保密信息或求解加密算法與密鑰的學(xué)科。密碼應(yīng)用舉例古希臘信使(獸皮文字加密)我國(guó)4千年前的象形文字周朝姜太公發(fā)明的陰書(shū)*密碼學(xué)與信息安全密碼學(xué)的發(fā)展史初等密碼、機(jī)械密碼、近代電子密碼(20世紀(jì)50年代)、現(xiàn)代密碼(20世紀(jì)70年代)密碼學(xué)發(fā)展的標(biāo)志性事件19世紀(jì)末,無(wú)線電的發(fā)明使密碼學(xué)的發(fā)展進(jìn)入一個(gè)開(kāi)始發(fā)展的時(shí)期。這一時(shí)期的密碼的主要標(biāo)志是以手工操作或機(jī)械操作實(shí)現(xiàn)的,通常稱之為機(jī)械密碼。1949年,香農(nóng)發(fā)表了<<秘密體制的通信理論>>(TheCommunicationTheoryofSecrecySystems),它證明了密碼編碼學(xué)是如何置于堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)之上,從此密碼學(xué)發(fā)展成為一個(gè)專門學(xué)科。*密碼學(xué)與信息安全密碼學(xué)發(fā)展的標(biāo)志性事件1976年,Diffie和Hellman發(fā)表的革命性論文<<密碼學(xué)新方向>>(Newderyctionsincryptography),突破了傳統(tǒng)密碼體制使用秘密密鑰所帶來(lái)的密鑰管理難題,使密碼的發(fā)展進(jìn)入了一個(gè)全新的發(fā)展時(shí)期。應(yīng)用舉例二次世界大戰(zhàn)時(shí),德國(guó)人認(rèn)為自己的“恩格尼瑪”密碼是不可破的。1940年被英軍破獲。1941年12月,日本海軍采用無(wú)線電靜默和戰(zhàn)略偽裝,騙過(guò)了美國(guó)人,成功地偷襲了珍珠港。但是,1942年6月,日本海軍對(duì)中途島發(fā)起的登陸作戰(zhàn)因日本密碼被破譯,終于遭到毀滅性的失敗,太平洋戰(zhàn)爭(zhēng)從此出現(xiàn)轉(zhuǎn)機(jī)。*密碼學(xué)與信息安全應(yīng)用舉例在1962年的古巴導(dǎo)彈危機(jī)中,蘇美劍拔弩張,形勢(shì)嚴(yán)峻。據(jù)悉,美國(guó)人心生一計(jì),故意用能被蘇聯(lián)截收、破譯的密碼告知其軍隊(duì),準(zhǔn)備與蘇聯(lián)開(kāi)戰(zhàn)。這一手果然嚇住了赫魯曉夫。甲午海戰(zhàn)中北洋水師的覆滅,雖然其根本的原因在于清朝廷的腐敗,但是日本人破譯了清軍的密碼也是一個(gè)重要的原因。二戰(zhàn)中,美國(guó)還利用破譯密碼所獲得的情報(bào)為其外交服務(wù)。*密碼學(xué)與信息安全應(yīng)用舉例1994年,因?yàn)槊绹?guó)的情報(bào)機(jī)構(gòu)通過(guò)截獲的國(guó)際電訊,得知法國(guó)與沙特阿拉伯正在進(jìn)行一筆數(shù)億美元的軍火交易,從而使美國(guó)先行一步從法國(guó)人手中搶下了這筆大生意。當(dāng)今的密碼學(xué)當(dāng)今時(shí)代,高新技術(shù)發(fā)展日新月異,計(jì)算機(jī)網(wǎng)絡(luò)的建設(shè)方興未艾。電子政府、知識(shí)經(jīng)濟(jì)、數(shù)字化部隊(duì)、信息化戰(zhàn)爭(zhēng)等等均立足于計(jì)算機(jī)網(wǎng)絡(luò)之上,融合于計(jì)算機(jī)網(wǎng)絡(luò)發(fā)展之中。而要解決計(jì)算機(jī)網(wǎng)絡(luò)的安全保密問(wèn)題,必須建立信息安全保障體系。這個(gè)體系由保護(hù)、檢測(cè)、反應(yīng)和恢復(fù)四大部分構(gòu)成。其中信息安全保護(hù)是信息安全保障體系的核心和基礎(chǔ)。*第1章密碼學(xué)概述密碼學(xué)與信息安全密碼體制與密碼分析密碼體制的安全性香農(nóng)理論簡(jiǎn)介計(jì)算復(fù)雜性理論簡(jiǎn)介*密碼體制與密碼分析密碼體制(密碼系統(tǒng)):密碼編碼學(xué)是改變信息形式以隱蔽其真實(shí)含義的學(xué)科。具有這種功能的系統(tǒng)稱為密碼體制或密碼系統(tǒng)(cryptographicsystem)。明文和密文:被隱蔽的信息稱為明文(plaintext),經(jīng)過(guò)密碼方法將明文變換成另一種隱蔽的形式稱為密文(ciphertext)。加密變換與加密算法:實(shí)現(xiàn)明文到密文的變換過(guò)程稱為加密變換(encryption),這種變換的規(guī)則稱為加密算法。解密變換與解密算法:合法接收者(receiver)將密文還原成明文的過(guò)程稱為解密變換(decryption),這種還原的規(guī)則稱為解密算法。密鑰:通常,加密算法和解密算法都是在一組信息的控制下進(jìn)行的。控制加密算法或解密算法的信息分別稱為加密密鑰(key)或解密密鑰。*密碼體制與密碼分析

信源M加密器解密器接收者mmc非法入侵者搭線信道(主動(dòng)攻擊)密碼分析員(竊聽(tīng)者)搭線信道(被動(dòng)攻擊)密鑰源密鑰源密鑰信道圖1-5保密通信系統(tǒng)模型*密碼體制與密碼分析從原理上可分為兩類單密鑰體制雙密鑰體制序列密碼(流密碼):按字符逐位加密。代數(shù)作業(yè)密碼:多次迭代,置換。分組密碼:將明文消息分組,逐組加密。主要特點(diǎn)是將加密和解密能力分開(kāi)。*密碼體制與密碼分析主動(dòng)攻擊與被動(dòng)攻擊:如果敵手(opponent)通過(guò)某些渠道竊聽(tīng)或偵收到正在被發(fā)送的密文信息,然后試圖用各種手段或方法去獲取密鑰或明文信息,那么,這種攻擊方法稱為被動(dòng)攻擊(passiveattack)。如果敵手通過(guò)更改被傳送的密文信息,或?qū)⒆砸训臄_亂信息插入到對(duì)方的通信信道之中以破壞合法接收者的正常解密,則這種攻擊為主動(dòng)攻擊(activeattack)。*密碼體制與密碼分析密碼分析:密碼分析(cryptanalysis)是被動(dòng)攻擊,它是在不知道解密密鑰及通信者所采用的加密體制的細(xì)節(jié)的條件下,試圖通過(guò)密碼分析達(dá)到獲得機(jī)密消息的目的。密碼分析在軍事、外交、公安、商務(wù)、反間諜等領(lǐng)域中起著相當(dāng)重要的作用。密碼分析工具:(1)概率論和數(shù)理統(tǒng)計(jì)(2)線性代數(shù)和抽象代數(shù)(3)計(jì)算的復(fù)雜性理論(4)信息理論及其它一些特定的知識(shí)等。*密碼體制與密碼分析密碼分析的類型

唯密文攻擊(ciphertextonlyattack)已知明文攻擊(knownplaintextattack)選擇明文攻擊(chosenplaintextattack)選擇密文攻擊(chosenciphertextattack)*第1章密碼學(xué)概述密碼學(xué)與信息安全密碼體制與密碼分析密碼體制的安全性香農(nóng)理論簡(jiǎn)介計(jì)算復(fù)雜性理論簡(jiǎn)介*密碼體制的安全性計(jì)算安全性可證明安全性無(wú)條件安全性*小結(jié)密碼學(xué)的基本概念和相關(guān)符號(hào)加密體制的分類密碼分析的工具密碼分析的類型密碼安全性準(zhǔn)則*應(yīng)用密碼學(xué)第2章古典密碼學(xué)17回顧什么是密碼體制?密碼體制的分類。密碼分析的分類。*2.1語(yǔ)言的統(tǒng)計(jì)特性研究保密性和密碼破譯方法的實(shí)質(zhì):就是研究明文信息在密文信息中有多大程度的泄漏。下面假設(shè)討論的語(yǔ)言是某種語(yǔ)言的文字:設(shè)字母表為

X={x0,x1,…,xm-1}

為了方便起見(jiàn),字母表也用0-(m-1)之間的數(shù)字來(lái)表示,此時(shí)字母表為

Zm={0,1,…,m-1}*2.1語(yǔ)言的統(tǒng)計(jì)特性例如,英文字母表可以表示為

X={a,b,c,…,x,y,z}或者

Zm={0,1,2,…,24,25}

明文是由Zm中的元素和固定的結(jié)個(gè)規(guī)則確定的。因此具有語(yǔ)言的統(tǒng)計(jì)特性。例如:字母q后總是跟著字母u。*2.1語(yǔ)言的統(tǒng)計(jì)特性語(yǔ)言的一階統(tǒng)計(jì)特性稱P={p0,p1,…,pm-1}為語(yǔ)言的一階統(tǒng)計(jì)特性。其中,pi(0≦i≦m-1)代表字母i在該語(yǔ)言中出現(xiàn)的概率。例2.1英文字母表X={a,b,c,…,x,y,z},由獨(dú)立試驗(yàn)產(chǎn)生明文單碼,Beker在1982年統(tǒng)計(jì)的樣本總數(shù)為100362,得到單碼的概率分布見(jiàn)表2.1。

*表2.1英文字母的概率分布字母概率字母概率字母概率A0.08167J0.00153S0.06327B0.01492K0.00772T0.09056C0.02782L0.04025U0.02758D0.04253M0.02405V0.00978E0.12702N0.06749W0.02360F0.02280O0.07567X0.00150G0.02015P0.01929Y0.01974H0.06094Q0.00095Z0.00074I0.06966R0.05497*2.1語(yǔ)言的統(tǒng)計(jì)特性英文字母出現(xiàn)的概率大小排列:

ETAOINSHRDLCUMWFGYPBVKJXQZ

按字母出現(xiàn)的概率分類:表2.2英文字母分類表1234567極大概率字母集:E大概率字母集:TAO較大概率子母集:INSHR平均概率字母集:DL較低概率字母集:CMWFGYPBU低概率字母集:VK極低概率字母集:JXQX*2.1語(yǔ)言的統(tǒng)計(jì)特性語(yǔ)言的一階特性至少在以下兩個(gè)方面沒(méi)有反映出英文的語(yǔ)言特性:(1)雙字母出現(xiàn)的概率例如QE出現(xiàn)的概率。按照一階特性計(jì)算QE出現(xiàn)的概率為

p(QE)=0.0095×0.12702≈1.21×10-4

但是在英文課文中QE根本不會(huì)出現(xiàn)。(2)四字母SEND和SEDN在一階統(tǒng)計(jì)特性下出現(xiàn)的概率相等,這也不符合實(shí)際。*2.1語(yǔ)言的統(tǒng)計(jì)特性雙字母出現(xiàn)的頻數(shù)表示為:

N(i,j)i,j=0,1,2,(m-1)

雙字母出現(xiàn)的概率p(xi,xj)近似地可以表示為

p(xi,xj)=N(i,j)/(N-1)例2.2由獨(dú)立試驗(yàn)產(chǎn)生雙字母表。表2.3是Beker在1982年的統(tǒng)計(jì)結(jié)果。(教材39頁(yè))。利用此表計(jì)算p(SEND)=p(SE)×p(ND)≈0.7919

p(SEDN)=p(SE)×p(DN)≈0.08146

p(QE)=0*2.1語(yǔ)言的統(tǒng)計(jì)特性同理,三字母出現(xiàn)的概率可以近似地表示為

p(xi,xj,xk)=N(I,j,k)/(N-2)注意:在實(shí)際的通信中除了字母外還有數(shù)字,標(biāo)點(diǎn)符號(hào)等,他們的統(tǒng)計(jì)特性也要考慮進(jìn)去。另外數(shù)據(jù)格式,報(bào)頭信息對(duì)于密碼體制的安全有重要意義,,在密碼分析中起著非常重要的作用。為什么是N-2?*2.2單表代替密碼補(bǔ)充(1)變換集合X到自身的一個(gè)映射稱為集合X的一個(gè)變換。對(duì)照映射的概念可以定義出滿射變換,單射變換,雙射變換。(2)置換有限集合X上的雙射變換稱為一個(gè)n次置換,通常用以下符號(hào)表示

=(3)群2…n

*2.2單表代替密碼設(shè)集合G是一個(gè)非空集合,·是它的一個(gè)代數(shù)運(yùn)算,如果滿足條件:(1)結(jié)合律成立,即對(duì)G中任意元素a,b,c都有(a·b)·c=a·(b·c)(2)有左單位元。即存在元素e∈G,對(duì)G中的每個(gè)元素a都有

e·a=a(3)每個(gè)元素都存在逆元。即對(duì)于任意a∈G,存在a-1∈G,使a-1·a=e

則稱G對(duì)代數(shù)運(yùn)算·作成一個(gè)群。若交換律成立,則稱G為可交換群或Abel群。*2.2單表代替密碼(4)對(duì)稱群假設(shè)所采用語(yǔ)言的字母表含有q個(gè)字母,即集合上置換的全體記為,則是上的對(duì)稱群。定義2.1設(shè)是一列置換,是一列明文,其中,。變換Ek將n-明文組加密成n-密文組,即*2.2單表代替密碼稱上述加密方式為代替(substitution)加密。當(dāng)時(shí),稱為單表代替(monalphabeticsubstitute)加密。否則,稱其為多表代替(polyalphabeticsubstitute)加密。稱為代替加密密表。下面學(xué)習(xí)兩種代替密碼*2.2.1移位代替密碼以下將q個(gè)字母的字母表與Z模q中數(shù)作一一對(duì)應(yīng),利用每個(gè)字母對(duì)應(yīng)的數(shù)字代替該字母。例如,將英文字母表作如下對(duì)應(yīng):abc…yz123…2526這樣,可以用0表示a,用1表示b.....。移位代替密碼是最簡(jiǎn)單的一種代替密碼。其加密變換為:,0≤m,c<q

顯然,移位代替密碼的密鑰空間中元素的個(gè)數(shù)為q,其中k=0是恒等變換。試著寫(xiě)出解密變換的公式*2.2.1移位代替密碼例2.3凱撒密碼(CaesarCipher)是對(duì)英文字母表進(jìn)行移位代替的密碼,其中q=26。例如,選擇密鑰k=3,則有下述代替表:明:abcdefghijklmnopqrstuvwxyz密:DEFGHIJKLMNOPQRSTUVWXYZABC

設(shè)明文m=helloeverybody試計(jì)算其密文。

解密時(shí),只要用密鑰k=23的加密密表對(duì)密文c進(jìn)行加密運(yùn)算就可恢復(fù)出原明文。這種密碼是將明文字母表中字母位置下標(biāo)與密鑰k進(jìn)行模q加法運(yùn)算的結(jié)果作為密文字母位置下標(biāo),相應(yīng)的字母即為密文字母,因此又稱其為加法代替密碼。

*2.2乘法代替密碼

乘法代替密碼的加密變換為:,0≤c

<q

。這種密碼又叫采樣密碼(decimationcipher),這是因?yàn)槠涿芪淖帜副硎菍⒚魑淖帜副戆聪聵?biāo)每隔k位取出一個(gè)字母排列而成(字母表首尾相接)。顯然,當(dāng)gcd(k,q)=1,即k與q互素時(shí)明文字母與密文字母才是一一對(duì)應(yīng)的。若q為素?cái)?shù),則有q-2個(gè)可用密鑰。否則就只有

φ(q)-1個(gè)可用密鑰。這里φ(q)是歐拉函數(shù),它表示小于q且與q互素的正整數(shù)的個(gè)數(shù)。(舉例說(shuō)明)

*2.2乘法代替密碼例2.4英文字母表q=26,選k=9,則有乘法代替密碼的明文密文字母對(duì)應(yīng)表:012345678910111213141516171819202122232425

明:abcdefghijklmnopqrstuvwxyz

密:AJSBKTCLUDMVENWFOXGPYHQZIR

若明文m=multiplicativecipher

密文c=?*2.2.3仿射代替密碼

將移位代替密碼和乘法代替密碼結(jié)合起來(lái)就構(gòu)成仿射代替密碼。其加密變換為其中以表示仿射代替密碼的密鑰。當(dāng)k0=0時(shí),就得到乘法代替密碼,當(dāng)k1=1時(shí)就得到移位代替密碼。q=26時(shí),可用的密鑰數(shù)為26×12-1=311個(gè)。

解密變換為*2.2.3仿射代替密碼例2.5

的仿射代替密碼的代替表為:c=m×7+3,m=cipher

求c=?

試計(jì)算解密變換的代替表.*2.2.4密鑰短語(yǔ)密碼

可以通過(guò)下述方法對(duì)例2.2.1的加法代替密碼進(jìn)行改造,得到一種密鑰可靈活變化的密碼。選一個(gè)英文短語(yǔ),稱其為密鑰字(keyword)或密鑰短語(yǔ)(keyphrase),如HAPPYNEWYEAR,按順序去掉重復(fù)字母得HAPYNEWR。將它依次寫(xiě)在明文字母表之下,而后再將明文字母表中未在短語(yǔ)中出現(xiàn)過(guò)的字母依次寫(xiě)在此短語(yǔ)之后,就可構(gòu)造出一個(gè)代替表,如下所示:

明:abcdefghijklmnopqrstuvwxyz

密:HAPYNEWRBCDFGIJKLMOQSTUVXZ*小結(jié)語(yǔ)言的表示方法及統(tǒng)計(jì)特性映射、置換、群、對(duì)稱群移位代替、乘法代替、仿射代替、密鑰短語(yǔ)作業(yè):2.2、2.3、2.4*第三講多表代替密碼39復(fù)習(xí)影射置換群代替密碼幾種常見(jiàn)的代替密碼移位代替密碼乘法代替密碼仿射代替密碼密鑰短語(yǔ)密碼*多表代替密碼什么是多表代替密碼?在上述公式中滿足什么條件?*本節(jié)內(nèi)容單表代替密碼能被破解的原因一次一密密碼維吉尼亞密碼博福特密碼滾動(dòng)密鑰密碼弗納姆密碼轉(zhuǎn)輪密碼M-209密碼*單表代替密碼能被破解的原因明文字母和密文字母之間存在一一對(duì)應(yīng)即一個(gè)給定的明文字母總是用同一個(gè)密文字母代替自然語(yǔ)言的各種基本特性都轉(zhuǎn)移到密文之中與明文字母相比,除了字母名稱外,所有語(yǔ)言特性都沒(méi)有變化*一次一密密碼在公式中若密鑰K是非周期序列,則對(duì)每一個(gè)明文字母都采用不同的代替表進(jìn)行加密,稱之為一次一密密碼。

這是一種在理論上唯一不可破的密碼。這種密碼對(duì)于明文的特點(diǎn)可實(shí)現(xiàn)完全隱蔽,但由于需要的密鑰量和明文信息的長(zhǎng)度相同而難于廣泛使用。為了減少密鑰量,在實(shí)際應(yīng)用中多采用周期多表代替密碼,即代替表個(gè)數(shù)有限且重復(fù)地使用,此時(shí)代替表序列

d=1和d為無(wú)窮大時(shí)分別是什么密碼*維吉尼亞密碼歷史上最有名的周期多表代替密碼是由法國(guó)密碼學(xué)家BlaisedeVigenere設(shè)計(jì)的。d個(gè)移位(加法)代替表由d個(gè)字母構(gòu)成的序列決定,ki(i=1,2...,d)是確定加密明文第i+td個(gè)字母(t=0,1,2,…)的代替表的移位數(shù),即維吉尼亞密碼的解密變換為:

*維吉尼亞密碼例題2.7令q=26,m=polyalphabeticcipher,密鑰字K=RADIO分析:周期d=5,則有k

1703814

明文m=polyalphabetIccIpher

密鑰K=RADIORADIORADIORADIO

怎樣計(jì)算?*博福特密碼加密:解密:

以為密鑰的代替表是密文字母表為英文字母表逆序排列進(jìn)行循環(huán)右移次形成的。例如,若ki=3(相當(dāng)于字母D),則明文和密文的對(duì)應(yīng)關(guān)系如下:明文:abcdefghijklmnopqrstuvwxyz密文:DCBAZYXWVUTSRQPONMLKJIHGFE*滾動(dòng)密鑰密碼

對(duì)于周期多表代替密碼,保密性將隨周期d加大而增加。當(dāng)d的長(zhǎng)度和明文一樣長(zhǎng)時(shí)就變成了滾動(dòng)密鑰密碼。如果其中所采用的密鑰不重復(fù)就是一次一密體制。一般,密鑰可取一本書(shū)或一篇報(bào)告作為密鑰源,可由書(shū)名,章節(jié)號(hào)及標(biāo)題來(lái)限定密鑰起始位置。*弗納姆密碼當(dāng)字母表字母數(shù)q=2時(shí)的滾動(dòng)密鑰密碼就變成弗納姆密碼。它將英文字母編成五單元波多電碼。波多電碼見(jiàn)表2.4.1所示。選擇隨機(jī)二元數(shù)字序列作為密鑰,以表示。明文字母變成二元向量后也可以表示成二元序列加密:解密:

例如:m=hello,k=00100,111000,10101,01010,11011

求:c=?*轉(zhuǎn)輪密碼第一次世界大戰(zhàn)以后,人們開(kāi)始研究用機(jī)械操作方式來(lái)設(shè)計(jì)極大周期的多表代替密碼,這就是轉(zhuǎn)輪密碼(rotorcipher)體制。轉(zhuǎn)輪密碼機(jī)(rotormachine)是由一組布線輪和轉(zhuǎn)動(dòng)軸組成的可以實(shí)現(xiàn)長(zhǎng)周期的多表代替密碼機(jī)。它是機(jī)械密碼時(shí)期最杰出的一種密碼機(jī),曾廣泛應(yīng)用于軍事通信中。德軍的Enigma密碼機(jī)美軍的Hagelin密碼機(jī)(其中Hagelinc-48即M-209)日本的紫密和藍(lán)密密碼機(jī)*轉(zhuǎn)輪密碼

轉(zhuǎn)輪密碼由一組(N個(gè))串聯(lián)起來(lái)的布線輪組成。用一根可以轉(zhuǎn)動(dòng)的軸把N個(gè)園盤(pán)串接起來(lái),使得相鄰兩個(gè)園盤(pán)上的接點(diǎn)能夠接觸就構(gòu)成了一個(gè)簡(jiǎn)易的轉(zhuǎn)輪密碼機(jī)。其中轉(zhuǎn)動(dòng)軸是可以轉(zhuǎn)動(dòng)的,而且每個(gè)園盤(pán)在轉(zhuǎn)動(dòng)軸上也是可以轉(zhuǎn)動(dòng)的。有N個(gè)園盤(pán)的轉(zhuǎn)輪密碼體制的密鑰由下面兩方面組成:

(1)N個(gè)園盤(pán)實(shí)現(xiàn)的代替表pi(i=1,2,...,N)(2)每個(gè)園盤(pán)的起點(diǎn)(i=1,2,....,N)。

如果一個(gè)轉(zhuǎn)輪密碼體制只是各園盤(pán)的合成組成,則此轉(zhuǎn)輪密碼體制只相當(dāng)于單表代替密碼體制。*M-209密碼機(jī)印字輪圓盤(pán)凸片鼓狀滾筒銷釘*M-209密碼機(jī)每個(gè)園盤(pán)的外緣上分別刻有26,25,23,21,19,17個(gè)字母,每個(gè)字母下面都有一根銷釘(或稱為針),每個(gè)銷釘可向園盤(pán)的左側(cè)或右側(cè)凸出來(lái),向右凸出時(shí)為有效位置,向左凸出時(shí)為無(wú)效位置。在使用密碼機(jī)之前,需要將各園盤(pán)上的每根銷釘置好位(向右或向左)。如果我們用0表示銷釘置無(wú)效位,用1表示銷釘置有效位,則第一個(gè)園盤(pán)上的銷釘位置可以用長(zhǎng)為26的0,1序列表示,第二個(gè)園盤(pán)上的銷釘位置可以用長(zhǎng)為25的0,1序列表示,……第六個(gè)園盤(pán)上的銷釘位置可以用長(zhǎng)為17的0,1序列表示,如表2.6.2所示。

*M-209密碼機(jī)鼓狀滾筒上有27根與其軸平行的桿等間隔地配置在凸片鼓狀滾筒的外圈上,每根桿上有8個(gè)可能的位置,其中六個(gè)位置與六個(gè)園盤(pán)對(duì)準(zhǔn),另兩個(gè)位置不與任何園盤(pán)對(duì)應(yīng)。在每根桿上面,有兩個(gè)可移動(dòng)的凸片,可以將其置于上述8個(gè)可能的位置(標(biāo)為1,0,2,3,4,5,0,6)中任何兩個(gè)上。如果凸片被置于與0對(duì)應(yīng)的位置,則它不起作用,稱其為凸片的無(wú)效位置,否則稱其為凸片的有效位置。當(dāng)凸片對(duì)應(yīng)園盤(pán)i(i=1,2,3,4,5,6),凸片可以與園盤(pán)i上的有效銷釘接觸。我們可以用下述方式來(lái)描述凸片鼓狀滾筒:對(duì)應(yīng)于六個(gè)園盤(pán)中的每一個(gè),如果凸片鼓狀滾筒上的某根桿上在此處安置有一個(gè)凸片,標(biāo)上1,否則標(biāo)上0。這樣,每根桿對(duì)應(yīng)的六個(gè)園盤(pán)中哪些安有凸片就可以用頂多含有兩個(gè)1的二元6維向量表示。表2.6.1(P40)就是凸片鼓狀滾筒上的27根桿中的每一根對(duì)應(yīng)六個(gè)園盤(pán)上凸片的一種配置。

*M-209密碼機(jī)*M-209密碼機(jī)凸片鼓狀滾筒的每根桿上的凸片的配置(如表2.6.1所示)和每個(gè)園盤(pán)上銷釘?shù)呐渲茫ㄈ绫?.6.2所示)稱為M-209的基本密鑰。基本密鑰在較長(zhǎng)一段時(shí)間內(nèi)(例如半年、一年等)不會(huì)改變。加密:c≡25+k–m(mod26)解密:m≡25+k–m(mod26)

其中k是凸片滾筒在一次完整旋轉(zhuǎn)中選中的桿數(shù)。*M-209密碼機(jī)例題:例2.6.1

設(shè)要加密的消息是

nowisthetimeforallgoodmen將單詞之間插入間隔z后為

nowzisztheztimezforzallzgoodzmen用表2.7的第一列001010作開(kāi)始加密的基本銷釘,此時(shí)選中的桿數(shù)為10,公式可以得到

25+10

13≡22(mod26)即第一個(gè)明文字母n加密成w。在n加密好之后,每個(gè)園盤(pán)都轉(zhuǎn)動(dòng)一個(gè)位置。這也相當(dāng)于表2.7的每一列向左移動(dòng)一位,因而新的基本銷釘位置為010110,此時(shí)選中的桿數(shù)為22,并把明文字母o加密成h。如此下去,得到的密文是:WHDFCDPCDRFZQNRWVYFUXYESSRKHWJBI*****M-209密碼機(jī)**小結(jié)數(shù)論知識(shí)單表代替多表代替密碼機(jī)*應(yīng)用密碼學(xué)第四講分組密碼體制(一)*應(yīng)用密碼學(xué)*第三章分組密碼體制復(fù)習(xí):1、密碼體制的分類。

2、什么是分組密碼?*應(yīng)用密碼學(xué)*§1節(jié)分組密碼概述分組密碼是將明文消息編碼表示后的序列劃分成長(zhǎng)為的組,各組(長(zhǎng)為n的矢量)分別在密鑰的控制下,變換成輸出數(shù)字系列(長(zhǎng)為m的矢量),其加密函數(shù),和分別是n維和m維矢量空間,為密鑰空間如圖3-1所示。加密算法明文x解密算法明文x密文圖3-1分組密碼框架*應(yīng)用密碼學(xué)*在相同的密鑰下,分組密碼對(duì)長(zhǎng)為n的輸入明文組所實(shí)施的變換是等同的,所以,只需研究對(duì)任意一組明文數(shù)字的的變換規(guī)則。通常取m=n。若則為有數(shù)據(jù)擴(kuò)展的分組密碼;若則為有數(shù)據(jù)壓縮的分組密碼。在二元的情況下,和均為二元數(shù)字序列,他們的每個(gè)分量,。本節(jié)主要討論二元的情況。一、代換若明文和密文分組都是n比特,則:每個(gè)明文分組有個(gè)不同的取值。明文到密文的可逆變換(又稱代換)個(gè)數(shù)為個(gè)。例如:n=4時(shí),可產(chǎn)生16個(gè)不同的狀態(tài),其中每一個(gè)輸入狀態(tài)通過(guò)代換映射成一個(gè)輸出狀態(tài),代換如圖3-2所示。*應(yīng)用密碼學(xué)*4比特輸入0123

4567

891011

1213141501234567891011121314154比特輸出圖3-2代換結(jié)構(gòu)加密映射和解密映射也可以用代換表來(lái)定義,如表3-1所示。這種定義法是分組密碼最常用的形式,能用于定義明文和密文間的任何可逆映射。*應(yīng)用密碼學(xué)*明文密文0000111000010100001011010011000101000010010111110110101101111000密文明文0000111000010011001001000011100001000001010111000110101001111111明文密文1000001110011010101001101011110011000101110110011110000011110111密文明文1000011110011101101010011011011011001011110100101110000011110101表3-1圖3-2對(duì)應(yīng)的代換表從安全角度講分組長(zhǎng)度n要足夠大,而且從明文到密文可有任意的可逆代換,那么明文的統(tǒng)計(jì)特性將被隱藏而使攻擊不能湊效。從實(shí)現(xiàn)的角度講分組長(zhǎng)度很大的可逆代換結(jié)構(gòu)是不實(shí)際的。以表3-1為例,該表定義了n=4時(shí)從明文到密文的一個(gè)可逆映射,*應(yīng)用密碼學(xué)*其中,第2列是決定該可逆映射的密鑰,該例中密鑰需要64bit。一般地,對(duì)比特的代換結(jié)構(gòu),密鑰的大小是比特。比如,密鑰大小應(yīng)是,變得難以處理。實(shí)際應(yīng)用中,常將分成較小的段,例如可選其中,和都是正整數(shù),將設(shè)計(jì)個(gè)變量的代換變?yōu)樵O(shè)計(jì)個(gè)較小的代換,而每個(gè)子代換只有個(gè)輸入變量。一般都不大,稱每個(gè)子代換為代換盒,簡(jiǎn)稱S盒。二、擴(kuò)散和混淆擴(kuò)散:擴(kuò)散就是將明文中的統(tǒng)計(jì)信息散布到密文中去,實(shí)現(xiàn)方式是使明文的每一位影響密文的多位的值,即密文中的密文中的每一位均受明文中的多位影響。例如對(duì)英文消息的加密:*應(yīng)用密碼學(xué)*是求字母對(duì)應(yīng)的序號(hào),是求序號(hào)對(duì)應(yīng)的字母,是密鑰。經(jīng)過(guò)這樣的代換后每一字母出現(xiàn)的頻率更接近于相等,雙字母及多字母出現(xiàn)的頻率也更接近于相等。在分組密碼中擴(kuò)散的目的是使明文和密文之間的統(tǒng)計(jì)關(guān)系變得盡可能的復(fù)雜,使敵手無(wú)法得到密鑰?;煜夯煜鞘姑芪暮兔荑€之間的關(guān)系變得盡可能的復(fù)雜,使敵手無(wú)法得到密鑰。使用復(fù)雜的代換算法可獲得預(yù)期的混淆效果。擴(kuò)散和混淆成功實(shí)現(xiàn)了分組密碼的本質(zhì)屬性,因而成為設(shè)計(jì)現(xiàn)代分組密碼的基礎(chǔ)。*應(yīng)用密碼學(xué)*三、Feistel密碼結(jié)構(gòu)Feistel提出了利用乘積密碼可獲得簡(jiǎn)單的代換密碼。乘積密碼是指順序地執(zhí)行兩個(gè)或多個(gè)基本密碼系統(tǒng),使得最后結(jié)果的密碼強(qiáng)度高于基本密碼系統(tǒng)產(chǎn)生的結(jié)果。Feistel還提出了實(shí)現(xiàn)代換和置換的方法。1、Feistel加密結(jié)構(gòu)加密算法的輸入是分組長(zhǎng)度為的明文和一個(gè)密鑰。將每組明文分成左右兩半和,在進(jìn)行完n輪迭代后,左右兩半再合并到一起以產(chǎn)生密文分組。其第輪迭代的輸入為前一輪輸出的函數(shù):其中是第輪用的子密鑰,由加密密鑰得到。一般地,各輪密鑰互不相同而且與也不相同。每輪的輪函數(shù)的結(jié)構(gòu)都相同,但以不同的子密鑰作為參數(shù)。如圖3-3所示。*應(yīng)用密碼學(xué)*FF密文明文F圖3-3Feistel網(wǎng)絡(luò)示意圖*應(yīng)用密碼學(xué)*Feistel網(wǎng)絡(luò)的實(shí)現(xiàn)與以下參數(shù)和特性有關(guān):①

分組大小 分組越大越安全,但加密速度就越慢。分組密碼設(shè)計(jì)中最為常用的分組大小是64比特。

密鑰大小 密鑰越長(zhǎng)安全性越高,但加密速度就越慢。通常128位。

輪數(shù) 單輪結(jié)構(gòu)遠(yuǎn)不足以保證安全性,但多輪結(jié)構(gòu)可提供足夠的安全性。典型的輪數(shù)取為16。

④子密鑰產(chǎn)生算法 該算法的復(fù)雜性越大,則密碼分析的困難性就越大。⑤

輪函數(shù) 輪函數(shù)的復(fù)雜性越大,密碼分析的難度就越大。在設(shè)計(jì)Feistel網(wǎng)絡(luò)時(shí),還有以下兩個(gè)方面需要考慮:①

快速的軟件實(shí)現(xiàn)。②

算法容易分析。算法能無(wú)疑義地解釋清楚,利于分析算法抵抗攻擊的能力,有助于設(shè)計(jì)高強(qiáng)度的算法。*應(yīng)用密碼學(xué)*2、Feistel的解密結(jié)構(gòu)Feistel的解密過(guò)程和加密過(guò)程是一樣的,算法使用密文作為輸入,但使用子密鑰的次序和加密過(guò)程相反,即第一輪使用,第二輪使用,,最后一輪使用。加密算法每輪的左右兩半用和來(lái)表示,解密算法每輪的左右兩半用和表示。加密過(guò)程的第輪的輸出是(表示鏈接),解密過(guò)程的第輪的輸入是。Feistel加密和解密過(guò)程見(jiàn)圖3-4。*應(yīng)用密碼學(xué)*圖3-4Feistel加解密結(jié)構(gòu)

輸入(明文)FFFF輸出(密文)輸入(密文)FFFF

輸出(明文)*應(yīng)用密碼學(xué)*下證解密過(guò)程第1輪的輸出等于加密過(guò)程第16輪的輸入左右兩半的交換值。在加密過(guò)程中:,在解密過(guò)程中:所以解密過(guò)程的第1輪的輸出為,等于加密過(guò)程中第16輪輸入左右兩半交換后的結(jié)果。一般地,加密過(guò)程的第輪有,所以,可以用歸納法證解密過(guò)程中有:*應(yīng)用密碼學(xué)*§2節(jié)數(shù)據(jù)加密標(biāo)準(zhǔn)1975年3月17日首次公布1977年1月15日被正式批準(zhǔn)為美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn),即FIP-46,同年7月15日生效。1997DESCHALL小組通過(guò)Internet搜索了個(gè)密鑰,找出了DES密鑰,恢復(fù)出了明文。1998美國(guó)EFF宣布,他們用一臺(tái)20萬(wàn)美元的計(jì)算機(jī)改裝的專用解密機(jī)用56小時(shí)破解了56比特密鑰的DES。2000年新的加密標(biāo)準(zhǔn)AES已經(jīng)產(chǎn)生。DES歷史回顧:*應(yīng)用密碼學(xué)*一、DES描述置換選擇2第2輪第1輪初始置換逆初始置換左右交換第16輪置換選擇2置換選擇2左循環(huán)移位左循環(huán)移位左循環(huán)移位置換選擇164比特明文64比特密文56比特密鑰圖3-5DES加密算法框圖*應(yīng)用密碼學(xué)*58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157表3-2DES的置換表(a)初始置換IP(b)逆初始置換IP408481656246432397471555236331386461454226230375451353216129364441252206028353431151195927342421050185826331419491757251、初始置換*應(yīng)用密碼學(xué)*32123454567898910111213121314151617161718192021202122232425242526272829282930313211672021291228171152326518311028241432273919133062211425(c)選擇擴(kuò)展運(yùn)算E(D)置換運(yùn)算P把32比特?cái)U(kuò)展成48比特*應(yīng)用密碼學(xué)*2、輪結(jié)構(gòu)置換(p)置換(E)XORS盒XOR左移位左移位置換選擇2圖3-6DES算法的輪結(jié)構(gòu)*應(yīng)用密碼學(xué)*R(32比特)K(48比特)48比特E+P32比特圖3-7函數(shù)F(R,K)的計(jì)算過(guò)程,*應(yīng)用密碼學(xué)*144131215118310612590701574142131106121195384114813621115129731050151282491751131410061301234568791011121314150213列行表3-3DES的S盒的定義對(duì)于每一個(gè)S盒,其中的6比特輸入中,第1和第6個(gè)比特形成一個(gè)2位二進(jìn)制數(shù),該二進(jìn)制數(shù)決定S盒的行號(hào)。中間4個(gè)比特表示的二進(jìn)制數(shù)決定列號(hào)。S盒中的元素轉(zhuǎn)換成二進(jìn)制后作為輸出。例如:的輸入為011001,01:即第1行1100:即第12列第1行,12列對(duì)應(yīng)的數(shù)為9,即1001,所以的輸出為1001。*應(yīng)用密碼學(xué)*3、密鑰的產(chǎn)生57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124表3-4DES密鑰編排用表(a)置換選擇11417112415328156211023191242681672720132415231374755304051453348444939563453464250362932(b)置換選擇2(PC-2)56比特的密鑰首先經(jīng)過(guò)一個(gè)置換選擇1,然后分成左右兩半,分別記作和。,,PC-2表示循環(huán)左移,當(dāng)時(shí)移1位,其它輪移兩位。*應(yīng)用密碼學(xué)*4、解密解密算法和加密算法相同,只是使用子密鑰的順序相反。參見(jiàn)圖3-4。二、二重DES,EE(a)加密(b)解密圖3-8二重DESDD*應(yīng)用密碼學(xué)*分析:假設(shè)對(duì)任意的兩個(gè)密鑰和,若能找出另一個(gè)密鑰使得則二重DES和多重DES都沒(méi)有意義。好在這種假設(shè)已經(jīng)在1992年被證明不成立。中途相遇攻擊如果有那么如果已知一個(gè)明文密文對(duì)(P,C),首先用個(gè)所有可能的密鑰加密,將加密結(jié)果存入一張表并對(duì)表按X排序,然后用個(gè)所有可能的密鑰對(duì)P對(duì)C解密,在上述表中找與C的解密結(jié)果相匹配的項(xiàng),如果找到則記下相應(yīng)的和。*應(yīng)用密碼學(xué)*再用一新的明文密文對(duì)檢驗(yàn)一下即可確定和。對(duì)已知的明文P,二重DES能產(chǎn)生個(gè)可能的密文,而二重DES所用的密鑰長(zhǎng)度為112比特,所以選擇密鑰有個(gè)可能,于是對(duì)于給定的一個(gè)明文加密成密文,有種可能,再經(jīng)過(guò)給定的明密文對(duì)的檢驗(yàn),密鑰的誤報(bào)率為,所以實(shí)施中途相遇攻擊時(shí),成功找到密鑰的概率為PCCC種可能每一種映射有種可能的密鑰。*應(yīng)用密碼學(xué)*三、兩個(gè)密鑰的三重DES解密圖3-9兩個(gè)密鑰的3重DES*應(yīng)用密碼學(xué)*四、三個(gè)密鑰的三重DES解密。*應(yīng)用密碼學(xué)*小結(jié):1、分組密碼的基本思想。2、代換、擴(kuò)散、混淆和Feistel結(jié)構(gòu)的基本思想。3、DES算法基本原理。4、多重DES。#本次課結(jié)束#*應(yīng)用密碼學(xué)*應(yīng)用密碼學(xué)

第五講AES算法93復(fù)習(xí)DES算法分組長(zhǎng)度密鑰長(zhǎng)度f(wàn)函數(shù)S盒輪變換密鑰調(diào)度

*本節(jié)內(nèi)容AES(高級(jí)數(shù)據(jù)加密標(biāo)準(zhǔn))算法描述密碼分析RC6算法(自學(xué))RC5算法描述RC6算法描述*AES算法1997年9月12日,為了替代即將退役的DES,美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)在《聯(lián)邦紀(jì)事》上發(fā)表了征集AES算法的公告。1999年3月22日,公布了5個(gè)候選算法:MARS,RC6,Rijndael,SERPENT,Twofish。2000年10月2日,由比利時(shí)密碼學(xué)家JoanDaemen和VincentRijmen提交的Rijndael算法被確定為AES。以下稱Rijndael算法為AES算法。2001年11月26日被采納為一個(gè)標(biāo)準(zhǔn)。*AES算法描述Rijndael分組加密算法的前身是Square分組加密算法,輪變換結(jié)構(gòu)與其基本相同。為了應(yīng)征AES候選算法,對(duì)Square分組加密算法進(jìn)行了改進(jìn)。由原來(lái)的密鑰和分組長(zhǎng)均為128比特改為分組和密鑰長(zhǎng)均可變,可以滿足不同的加密需求。具體參數(shù)如下:①分組長(zhǎng)度、密鑰長(zhǎng)度和加密層數(shù)均可變。②分組長(zhǎng)度和密鑰長(zhǎng)度支持128、192、256比特。③分組和密鑰長(zhǎng)度可以獨(dú)立改變,并由此決定加密層數(shù)。*為了后面論述方便,進(jìn)行如下定義:(一)設(shè)計(jì)準(zhǔn)則Rijndael加密算法按照如下原則進(jìn)行設(shè)計(jì):⒈抗所有已知的攻擊⒉在多個(gè)平臺(tái)上速度要快和編碼緊湊⒊設(shè)計(jì)簡(jiǎn)單(二)狀態(tài)、密鑰與輪數(shù)定義:狀態(tài)(State):中間密碼結(jié)果稱為狀態(tài)Nb=明文分組的4-字節(jié)字?jǐn)?shù)(32比特)Nk=密鑰的4-字節(jié)字?jǐn)?shù)(32比特)Nr=加密的輪數(shù)*明文分組(密鑰)長(zhǎng)度為128比特時(shí),Nb=Nk=4明文分組(密鑰)長(zhǎng)度為196比特時(shí),Nb=Nk=6明文分組(密鑰)長(zhǎng)度為256比特時(shí),Nb=Nk=8現(xiàn)以Nb=6和Nk=4為例進(jìn)行圖示說(shuō)明。a00a01a02a03a04a05a10a11a12a13a14a15a20a21a22a23a24a25a30a31a32a33a34a35Nb=6時(shí)狀態(tài)放置示意圖

k00k01k02k03k10k11k12k13k20k21k22k23k30k31k32k33Nk=4時(shí)密鑰放置示意圖

*分組長(zhǎng)度、密鑰長(zhǎng)度都可以在128bit、192比特和256比特間變化,但是不同的組合需要不同的加密輪數(shù)。分組長(zhǎng)度與輪數(shù)的關(guān)系:NrNb

=4Nb

=6Nb

=8Nk

=4101214Nk

=6121214Nk=8141414*AES的總體描述:①給定一個(gè)明文x,將State初始化為x,并進(jìn)行AddRoundKey操作,將RoundKey與State異或。②對(duì)前Nr-1輪中的每一輪,用S盒進(jìn)行一次代換操作,稱為SubBytes;對(duì)State作一個(gè)置換ShiftRows,再對(duì)State作一次操作MixColumns,然后進(jìn)行RoundKey操作。③依次進(jìn)行SubBytes,ShiftRows和AddRoundKey操作。④將State定義為明文。*加密開(kāi)始時(shí),首先將State定義明文字節(jié)x0,x1,…x15S00S01S02S03S10S11S12S13S20S21S22S23S30S31S32S33x00x01x02x03x10x11x12x13x20x1x22x23x30x31x32x33AESSubBytes操作所使用的S盒是{0,1}8上的一個(gè)置換,見(jiàn)下表。每一個(gè)字節(jié)都用兩個(gè)16進(jìn)制的數(shù)字表示。*0123456789abcdef0637c777bf26b6fc53001672bfed7ab761ca82c97dfa5947f0add4a2af9ca472c02b7fd9326363ff7cc34a5e5f171d83115304c723c31896059a071280e2eb27b275409832c1a1b6e5aa0523bd6b329e32f84553d100ed20fcb15b6acbbe394a4c58cf6d0efaafb434d338545f9027f503c9fa8751a3408f929d38f5bcb6da2110fff3d28cd0c13ec5f974417c4a77e3d645d1973060814fdc222a908846eeb814de5e0bdbAe0323a0a4906245cc2d3ac629195e479Be7c8376d8dd54ea96c56f4ea657aae08cBa78252e1ca6b4c6e8dd741f4bbd8b8ad703eb5664803f60e613557b986c11d9eee1f8981169d98e949b1e87e9ce5528dff8ca1890dbfe6426841992d0fb054bb16*SuBytes算法

ExternalFieldInv,BinaryToField,FieldToBinaryz

BinaryToField(a7a6a5a4a3a2a1a0)if

z

0

then

z

FieldInv(z)(a7a6a5a4a3a2a1a0)

FieldToBinary(z)(c7c6c5c4c3c2c1c0)

(01100011)//在下面的循環(huán)中,所有下標(biāo)都要經(jīng)過(guò)模8約簡(jiǎn)

fori

0to7

dobi

(ai+ai+4+ai+5+ai+6+ai+7+ci)mod2return(b7b6b5b4b3b2b1b0)*FieldInv:表示求一個(gè)域元素的乘法逆BinaryToField:把一個(gè)字節(jié)變成一個(gè)域元素FieldToBinary:把一個(gè)域元素變成一個(gè)字節(jié)例題:設(shè)算法的輸入是16進(jìn)制的53,在二進(jìn)制下是01010011表示為域元素為:x6+x4+x+1它的乘法逆元(在有限域F28中):x7+x6+x3+x在二進(jìn)制下,我們有:

(a7a6a5a4a3a2a1a0)

(11001010)*下面我們計(jì)算

b0=a0+a4+a5+a6+a7+c0mod2=0+0+0+1+1+1mod2=1b1=a1+a5+a6+a7+a0+c1mod2=1+0+1+1+0+1mod2=0

….

結(jié)果是:(b7b6b5b4b3b2b1b0)=(11101101)

以16進(jìn)制表示就是ED。上面的結(jié)果可以通過(guò)查S盒代換表來(lái)驗(yàn)證。行號(hào)5,列號(hào)3,對(duì)應(yīng)ED。*行變換改圖的右移字節(jié)數(shù)是以Nb=4為例。更一般的情況見(jiàn)下頁(yè)。*第0行保持不變,第1~3行分別右循環(huán)移動(dòng)移動(dòng)C1~C3字節(jié)。其中C1~C3的大小與Nb大小有關(guān)。NbC1C2C3412361238134*列混合通過(guò)線性變換將列變換到列。算法描述(MixColumn(State))。作上的多項(xiàng)式運(yùn)算,即作

(modx4+1)相當(dāng)于作和上的線性變換??捎蒙暇仃囘\(yùn)算描述為*Mixcolumn(c)ExternalFieldMult,BinaryToField,FieldToBinaryfori

0to3

doti

BinaryToField(Si,c)u0

FieldMult(x,t0)

FieldMult(x+1,t1)

t2

t3u1

FieldMult(x,t1)

FieldMult(x+1,t2)

t3

t0u2

FieldMult(x,t2)

FieldMult(x+1,t3)

t0

t1u3

FieldMult(x,t3)

FieldMult(x+1,t0)

t1

t2fori

0to3

doSi,c

FieldToBinary(ui)//FieldMult表示域元素求積。*密鑰編排①密鑰比特的總數(shù)等于分組長(zhǎng)度乘輪數(shù)加1.②將密碼密鑰擴(kuò)展成一個(gè)擴(kuò)展密鑰。③輪密鑰是按下述方式從擴(kuò)展密鑰中取出的:第一個(gè)輪密鑰由第一個(gè)Nb字組成,第二個(gè)輪密鑰由接下來(lái)的Nb組成,由此繼續(xù)下去。下面討論密鑰擴(kuò)展算法。*密鑰擴(kuò)展算法設(shè)將擴(kuò)展密鑰以4-字節(jié)字為單位放到數(shù)組W[Nb*(Nr+1)]中,則第一Nk字包括密碼密鑰。其他所有字則由較小腳標(biāo)的字遞歸生成。密鑰擴(kuò)展與Nk的取值有關(guān);分為Nk≥6和Nk≤6兩個(gè)版本當(dāng)Nk=Nb=4時(shí),Nr=10,我們需要11個(gè)輪密鑰,每個(gè)輪密鑰由16個(gè)字節(jié)4個(gè)字組成,共需44個(gè)字。*Nk≤6時(shí)的密鑰擴(kuò)展算法KeyExpansion(byteKey[4*Nk],wordW[Nb*(Nr+1)]){for(i=0;i<Nk;i++)W[i]=(Key[4*i],Key[4*i+1],Key[4*i+2],Key[4*i+3]);for(i=Nk;i<Nb*(Nr+1);i++){temp=W[i-1];if(imodNk==0)temp=SubByte(RotByte(temp))XorRcon[i/Nk];W[i]=W[i-Nk]Xortemp;}//SubByte表示將SubByte作用于其輸入的每個(gè)字節(jié)。

//RotByte表示將一個(gè)4-字節(jié)字左移循環(huán)一個(gè)字節(jié)。*Nk>6的密鑰擴(kuò)展算法

KeyExpansion(byteKey[4*Nk]wordW[Nb*(Nr+1)]{for(i=0;i<Nk;i++)W[i]=(Key[4*i],Key[4*i+1],Key[4*i+2],Key[4*i+3]);for(i=Nk;i<Nb*(Nr+1);i++){temp=W[i-1];if(imodNk==0)temp=SubByte(RotByte(temp))XorRcon[i/Nk];elseif(imodNk==4)temp=SubByte[temp];W[i]=W[i-Nk]Xortemp;}*輪常數(shù)各輪使用獨(dú)立的輪常數(shù)消除輪變換和輪之間的對(duì)稱性。

Rcon[1]=01000000,Rcon[2]=02000000,Rcon[3]=04000000,Rcon[4]=08000000,Rcon[5]=10000000,Rcon[6]=20000000,Rcon[7]=40000000,Rcon[8]=80000000,Rcon[9]=1B000000,Rcon[10]=36000000,*AES解密算法

為了解密只需要將所有的操作逆序進(jìn)行,并逆序使用密鑰編排即可。其中ShiftRow、SubBytes、MixCollumns均用它的逆操作代替。*應(yīng)用密碼學(xué)第六講分組密碼工作模式*應(yīng)用密碼學(xué)*回顧:1、分組密碼的基本概念。2、DES加密算法。Es-盒置換48bit(48bit)*應(yīng)用密碼學(xué)*

分組密碼的運(yùn)行模式電子本ECB(electroniccodebook)密碼反饋CFB(cipherfeedback)密碼分組鏈接CBC(cipherblockchaining)輸出反饋OFB(outputfeedback)美國(guó)NSB在[FIPSPUS74和81]中定義了DES的4種運(yùn)行模式。----這些模式也可以用于其它分組密碼。下面以DES算法為例來(lái)介紹這四種模式。*應(yīng)用密碼學(xué)*一、電子本ECB模式圖3-10ECB模式示意圖*應(yīng)用密碼學(xué)*電子本ECB模式的特點(diǎn):一次對(duì)64比特的分組加密,且每次加密密鑰都相同;每一個(gè)明文分組都有一個(gè)密文分組與之對(duì)應(yīng)----可以認(rèn)為有一個(gè)非常大的電碼本,對(duì)任意可能的明文分組,電碼本中都有一個(gè)對(duì)應(yīng)的密文;最后一個(gè)分組長(zhǎng)度不夠64比特,則要填充;相同的明文分組產(chǎn)生相同的密文分組;適用于短數(shù)據(jù)的加密;*應(yīng)用密碼學(xué)*二、密碼分組鏈接(CBC)模式DES加密DES加密第1次第2次(a)加密DES加密第N次DES加密DES加密DES加密(b)解密圖3-11CBC模式示意圖*應(yīng)用密碼學(xué)*解密時(shí)每個(gè)密文分組被解密后,再與前一個(gè)密文分組分組異或。設(shè):下面證明這種解密結(jié)構(gòu)的確能夠獲得明文。[證畢]*應(yīng)用密碼學(xué)*CBC的特點(diǎn)每次加密使用相同的密鑰;重復(fù)的明文分組產(chǎn)生不同的密文分組;需要一個(gè)初始向量和第一個(gè)明文分組異或;--初始向量需要像密鑰一樣保密,因?yàn)?,用表?4比特分組的第個(gè)比特,那么算法的輸入是當(dāng)前明文分組與前一次密文分組的異或;*應(yīng)用密碼學(xué)*由異或特性知撇號(hào)表示比特補(bǔ)。如果敵手能夠欺騙接收方使用不同的初始向量,則敵手能夠在明文的第一個(gè)分組中插入自己選擇的比特值。CBC模式對(duì)加密長(zhǎng)于64比特的消息非常合適。CBC模式除了能夠獲得保密性外,還能夠用于認(rèn)證*應(yīng)用密碼學(xué)*三、密碼反饋(CFB)模式DES是分組長(zhǎng)為64的分組密碼,但利用CFB或OFB模式可將DES轉(zhuǎn)換為流密碼。流密碼不需要填充,且運(yùn)行是實(shí)時(shí)的。棄

bit

選bit(a)加密bitbitDES加密bitbitDES加密棄

bit

選bitbitbitDES加密棄

bit

選bit*應(yīng)用密碼學(xué)*(b)解密圖3-12CFB模式示意圖bitbitDES加密棄

bit

選bitbitbitDES加密棄

bit

選bitbitbitDES加密棄

bit

選bit*應(yīng)用密碼學(xué)*解密時(shí)仍然使用加密算法,這是因?yàn)椋涸O(shè)是的個(gè)最高有效位,那么所以當(dāng)時(shí):所以*應(yīng)用密碼學(xué)*密碼反饋(CFB)模式的特點(diǎn):每個(gè)分組使用相同的密鑰;與CFB模式一樣明文被鏈接在一起,密文是前面所有明文分組的函數(shù);每次實(shí)際被加密的分組長(zhǎng)為j,一般是8;CFB模式除了加密外,還用于認(rèn)證。*應(yīng)用密碼學(xué)*四、輸出反饋(OFB)模式(a)加密bitbitDES加密棄

bit

選bitbitbitDES加密棄

bit

選bitbitbitDES加密棄

bit

選bit*應(yīng)用密碼學(xué)*(b)解密圖3-12OFB模式示意圖bitbitDES加密棄

bit

選bitbitbitDES加密棄

bit

選bitbitbitDES加密棄

bit

選bit*應(yīng)用密碼學(xué)*OFB的特點(diǎn)傳輸過(guò)程中的比特錯(cuò)誤不會(huì)被傳播;??比CFB更易受到對(duì)消息流的篡改攻擊。??每個(gè)分組都使用相同的密鑰;將加密算法輸出的最高j位反饋到移位寄存器;*應(yīng)用密碼學(xué)*IDEA算法一、設(shè)計(jì)原理明文:64比特,密文:64比特,密鑰:128比特1、密碼強(qiáng)度算法的強(qiáng)度主要通過(guò)有效的混淆和擴(kuò)散來(lái)實(shí)現(xiàn)?;煜?種運(yùn)算(兩個(gè)16比特輸入,一個(gè)16比特輸出)逐比特異或,表示為模即(65536)整數(shù)加法,表示為

,其輸入和輸出作為16位無(wú)符號(hào)位來(lái)處理。模(即65537)整數(shù)乘法,表示為,其輸入,輸出除16位全為0作為處理外,都作為16位無(wú)符號(hào)數(shù)處理。。*應(yīng)用密碼學(xué)*例如:000000000000000010000000000000001000000000000001這是因?yàn)檫@3種運(yùn)算的任意兩種都不滿足分配率,例如

這3種運(yùn)算的任意兩種都不滿足結(jié)合率,例如

這3中運(yùn)算結(jié)合起來(lái)使用可對(duì)算法的輸入提供復(fù)雜的變換,從而使得對(duì)IDEA的密碼分析比僅使用異或運(yùn)算的DES更安全。*應(yīng)用密碼學(xué)*XYXYXYXY000000000101000210000311101000101101101210101311210000210101210210210311311000311101311210311311表3-6IDEA中的3種運(yùn)算(2比特?cái)?shù))

模模?*應(yīng)用密碼學(xué)*

圖3-14MA結(jié)構(gòu)2、實(shí)現(xiàn)軟件軟件采用16比特子段處理,可通過(guò)使用容易編程的加法、移位等運(yùn)算實(shí)現(xiàn)3種運(yùn)算。硬件由于加解密相似,差別僅為密鑰的使用方式,因此可使用同一器件實(shí)現(xiàn)。算法的模塊結(jié)構(gòu)可方便VLSI的實(shí)現(xiàn)。擴(kuò)散由乘加(MA)結(jié)構(gòu)實(shí)現(xiàn),如圖3-14所示。該結(jié)構(gòu)的輸入是兩個(gè)16比特的子段和兩個(gè)16比特的子密鑰,輸出也是兩個(gè)16比特的子段。這一結(jié)構(gòu)在算法中重復(fù)使用了8次。

*應(yīng)用密碼學(xué)*補(bǔ)充:集成電路IC,集成電路

IC(InterrgratedCircuit),是將晶體管、電阻、電容、二極管等電子組件整合裝至一芯片(chip)上,由于集成電路的體積極小,使電子運(yùn)動(dòng)的距離大幅縮小,因此速度極快且可靠性高,集成電路的種類一般是以內(nèi)含晶體管等電子組件的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論