第2章 對(duì)稱密鑰密碼體系_第1頁(yè)
第2章 對(duì)稱密鑰密碼體系_第2頁(yè)
第2章 對(duì)稱密鑰密碼體系_第3頁(yè)
第2章 對(duì)稱密鑰密碼體系_第4頁(yè)
第2章 對(duì)稱密鑰密碼體系_第5頁(yè)
已閱讀5頁(yè),還剩136頁(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)介

NetworkandInformationSecurity第2章對(duì)稱密鑰密碼體系NetworkandInformationSecurity密碼體系的原理和基本概念數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)IDEAAES序列密碼

主要內(nèi)容2.1密碼學(xué)原理2.1.1密碼學(xué)的基本原理

密碼技術(shù)是一門古老的技術(shù)。公元前1世紀(jì),著名的凱撒(Caesar)密碼被用于高盧戰(zhàn)爭(zhēng)中,這是一種簡(jiǎn)單易行的單字母替代密碼。20世紀(jì),第一次世界大戰(zhàn)進(jìn)行到關(guān)鍵時(shí)刻,英國(guó)破譯密碼的專門機(jī)構(gòu)“40號(hào)房間”利用繳獲的德國(guó)密碼本破譯了著名的“齊默爾曼”電報(bào),促使美國(guó)放棄中立參戰(zhàn),改變了戰(zhàn)爭(zhēng)進(jìn)程。戰(zhàn)爭(zhēng)的刺激和科學(xué)技術(shù)的發(fā)展對(duì)密碼學(xué)的發(fā)展起到了推動(dòng)作用。NetworkandInformationSecurity凱撒密碼,又叫循環(huán)移位密碼。其加密方法就是將明文中的每個(gè)字母都用其右邊固定步長(zhǎng)的字母代替,構(gòu)成密文。例如:步長(zhǎng)為4,則明文A、B、C、…、Y、Z可分別由E、F、G、…、C、D代替。如果明文是“about”,則變?yōu)槊芪摹癳fsyx”,其密鑰k=+4。兩個(gè)循環(huán)的字母表對(duì)應(yīng)。思考:若步長(zhǎng)為3,密文是“LORYHBRX”,則明文是多少?齊默爾曼電報(bào)(英語(yǔ):ZimmermannTelegram,德語(yǔ):Zimmermann-Depesche)是一份由德意志帝國(guó)外交秘書阿瑟·齊默爾曼于1917年1月16號(hào)向德國(guó)駐墨西哥大使馮·伯恩托夫發(fā)出的加密電報(bào)。

電報(bào)內(nèi)容建議與墨西哥結(jié)成對(duì)抗美國(guó)的軍事聯(lián)盟,但被英國(guó)40號(hào)辦公室情報(bào)機(jī)關(guān)截獲。英國(guó)通過(guò)外交部將電報(bào)全文交給美國(guó)總統(tǒng)并約定該電報(bào)是美國(guó)自己截獲并破譯的。2.1密碼學(xué)原理

1.密碼學(xué)的發(fā)展簡(jiǎn)史早在四千多年以前,古埃及人就開始使用密碼技術(shù)來(lái)保密要傳遞的消息。一直到第一次世界大戰(zhàn)前,密碼技術(shù)的進(jìn)展很少見諸于世,直到1918年,WilliamF.Friedman的論文“TheIndexofCoincidenceandItsApplicationsinCryptography”(重合指數(shù)及其在密碼學(xué)中的應(yīng)用)發(fā)表時(shí),情況才有所好轉(zhuǎn)。2.1.1密碼學(xué)的基本原理2023/2/3

1949年,C.E.Shannon(香農(nóng))在《貝爾系統(tǒng)技術(shù)雜志》上發(fā)表了“TheCommunicationTheoryofSecrecySystem(保密系統(tǒng)的通信理論)”,為密碼技術(shù)奠定了堅(jiān)實(shí)理論基礎(chǔ)。使密碼學(xué)真正成為一門科學(xué)。

1976年,W.E.Diffie和M.E.Hellman發(fā)表了“NewDirectioninCryptography(密碼學(xué)新方向)”一文,提出了一種全新的密碼設(shè)計(jì)思想,導(dǎo)致了密碼技術(shù)上的一場(chǎng)革命。他們首次證明了在發(fā)送端和接收端不需要傳送密鑰的保密通信是可能的,從而開創(chuàng)了公鑰密碼技術(shù)的新紀(jì)元,成為現(xiàn)代密碼技術(shù)的一個(gè)里程碑。2023/2/3

1977年美國(guó)國(guó)家標(biāo)準(zhǔn)局NBS(NationalBureauofStandards,即現(xiàn)在的國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所NIST)正式公布了數(shù)據(jù)加密標(biāo)準(zhǔn)DES(DataEncryptionStandard)1978年,R.L.Rivest,A.Shamir和L.Adleman實(shí)現(xiàn)了RSA公鑰密碼技術(shù),此后成為了公鑰密碼技術(shù)中杰出代表

1984年,Bennett.CharlesH.,Brassard.Gille首次提出了量子密碼技術(shù)(現(xiàn)稱為BB84協(xié)議)。2023/2/3

1985年,N.Koblitz和V.Miller把橢圓曲線理論運(yùn)用到公鑰密碼技術(shù)中,成為公鑰密碼技術(shù)研究的新亮點(diǎn)。密碼技術(shù)的另一個(gè)重要方向——序列密碼(也稱為流密碼,序列密碼主要用于政府、軍方等國(guó)家要害部門)理論也取得了重大的進(jìn)展。1989年,R.Mathews,D.Wheeler,L.M.Pecora和Carroll等人首次把混沌理論使用到序列密碼及保密通信理論中,為序列密碼的研究開辟了一條新的途徑。2.1.1密碼學(xué)基本原理意義解決數(shù)據(jù)的機(jī)密性、完整性、不可否認(rèn)性以及身份識(shí)別等問(wèn)題均需要以密碼為基礎(chǔ),密碼技術(shù)是保障信息安全的核心基礎(chǔ)。

研究?jī)?nèi)容密碼學(xué)以研究數(shù)據(jù)保密為目的,對(duì)存儲(chǔ)和傳輸?shù)男畔⑦M(jìn)行秘密變換以防止第三者竊取信息的科學(xué)。包括密碼編碼學(xué)和密碼分析學(xué)兩部分。密碼編碼學(xué):研究如何編碼,采用什么樣的密碼體制保證信息被安全加密。密碼分析學(xué):破譯密文,在未知密鑰的情況下推演出明文和密鑰的技術(shù)。基本概念:未經(jīng)過(guò)加密的原始消息稱為明文m或p(PlainText)。偽裝消息以隱藏它的內(nèi)容的過(guò)程稱為加密E(Encrypt)加密后的消息,即經(jīng)過(guò)偽裝后的明文稱為密文c(CipherText)把密文轉(zhuǎn)變?yōu)槊魑牡倪^(guò)程稱為解密D(Decrypt)。密碼方案確切地描述了加密變換和解密變換的具體規(guī)則加密算法對(duì)明文進(jìn)行加密時(shí)所使用的規(guī)則的描述E(m)解密算法對(duì)密文進(jìn)行還原時(shí)所使用的規(guī)則的描述D(c)NetworkandInformationSecurity加密和解密的原理如圖2-1所示圖2-1加密和解密原理加密函數(shù)E作用于M得到密文C,用數(shù)學(xué)公式表示為:E(M)=C相反地,解密函數(shù)D作用于C產(chǎn)生M:D(C)=M先加密消息后解密,原始的明文將恢復(fù)出來(lái),下面的等式必須成立:D(E(M))=M2.1.2安全密碼準(zhǔn)則如果密碼的保密性是基于保持算法的秘密,這種密碼算法就稱為受限制的算法。

缺陷:大型的或經(jīng)常變換用戶的組織不能使用它們。受限制的密碼算法不可能進(jìn)行質(zhì)量控制或標(biāo)準(zhǔn)化。解決方法:現(xiàn)代密碼學(xué)用密鑰解決了這個(gè)問(wèn)題。密鑰:加密和解密算法的操作在稱為密鑰(K)的元素控制下進(jìn)行。K可以是很多數(shù)值里的任意值。秘鑰K的可能值的范圍叫做密鑰空間。加/解密函數(shù):Ek(M)=CDk(C)=MNetworkandInformationSecurity加密的過(guò)程:c=Eke(m)解密的過(guò)程:m=Dkd(c)注意:Ke和Kd可以相同,也可以不同。加密/解密過(guò)程示意圖NetworkandInformationSecurity所有算法的安全性都基于密鑰的安全性,而不是基于算法細(xì)節(jié)的安全性。無(wú)數(shù)的事實(shí)已經(jīng)證明,只有公開的算法才是安全的。

NetworkandInformationSecurity

2.1.3對(duì)稱密鑰密碼和非對(duì)稱密鑰密碼基于密鑰的算法通常有兩類:對(duì)稱算法和非對(duì)稱算法。對(duì)稱算法有時(shí)又叫傳統(tǒng)密碼算法,就是加密密鑰能夠從解密密鑰中容易地推算出來(lái),反過(guò)來(lái)也成立。在大多數(shù)對(duì)稱算法中,加/解密密鑰是相同的。這些算法也叫秘密密鑰算法或單密鑰算法,它要求發(fā)送者和接收者在安全通信之前,商定一個(gè)密鑰。對(duì)稱算法可分為兩類。一次只對(duì)明文中的單個(gè)比特(有時(shí)對(duì)字節(jié))運(yùn)算的算法稱為序列密碼或流密碼算法。另一類算法是對(duì)明文的一組比特進(jìn)行運(yùn)算,這些比特組稱為分組,相應(yīng)的算法稱為分組算法。NetworkandInformationSecurity分組密碼的工作原理如圖2-4所示:

圖2-4分組密碼的工作原理NetworkandInformationSecurity非對(duì)稱算法是這樣設(shè)計(jì)的:用作加密的密鑰不同于用作解密的密鑰,而且解密密鑰不能根據(jù)加密密鑰計(jì)算出來(lái)(至少在合理假定的有限時(shí)間內(nèi))。非對(duì)稱算法也叫做公開密鑰算法,是因?yàn)榧用苊荑€能夠公開,即陌生者能用加密密鑰加密信息,但只有用相應(yīng)的解密密鑰才能解密信息。2.1.4密碼分析(密碼攻擊)攻擊者在不知道密鑰的情況下,對(duì)密文進(jìn)行分析,試圖獲得機(jī)密信息(明文或密鑰)。密碼編碼與密碼分析是共生的、互逆的,兩者解決問(wèn)題的途徑有很多差別。密碼編碼設(shè)計(jì)是利用數(shù)學(xué)基礎(chǔ)構(gòu)造密碼。密碼分析出了依靠數(shù)學(xué)、工程背景、語(yǔ)言學(xué)等知識(shí)外,還靠經(jīng)驗(yàn)、測(cè)試、眼力、運(yùn)氣、直覺(jué)判斷能力等。根據(jù)密碼分析者對(duì)明文、密文等數(shù)據(jù)資源所掌握的程度,將密碼分析攻擊劃分為不同的形式:

密碼攻擊分類(1)唯密文攻擊密碼分析者已知的內(nèi)容只有密文,即假設(shè)密碼分析者已知算法并能截取到密文,他要盡力找出所使用的秘鑰和對(duì)應(yīng)的明文。唯密文攻擊最容易實(shí)施,因?yàn)槊艽a分析者只需要知道密文,密碼算法必須要抵抗這類攻擊,這是密碼算法設(shè)計(jì)的最低要求。NetworkandInformationSecurity(2)已知明文攻擊密碼分析者已知的內(nèi)容包括一個(gè)或多個(gè)明文-密文對(duì)以及截獲的待解密密文。明文-密文對(duì)被事先搜集。NetworkandInformationSecurity(3)選擇明文攻擊

與已知明文攻擊類似,不同點(diǎn)在于選擇明文攻擊的密碼分析者可以自己選定明文消息,并知道其對(duì)應(yīng)的密文。NetworkandInformationSecurity(4)選擇密文攻擊

與選擇明文攻擊類似,密碼分析者可以自己選擇密文并解密形成密文-明文對(duì)。NetworkandInformationSecurity(5)選擇文本攻擊

選擇文本攻擊是選擇明文攻擊與選擇密文攻擊的結(jié)合。密碼分析者已知的內(nèi)容包括:加密算法、由密碼分析者選擇的明文消息和它對(duì)應(yīng)的密文,以及由密碼分析者選擇的猜測(cè)性密文和它對(duì)應(yīng)的已破譯的明文。

很明顯,唯密文攻擊是最困難的,因?yàn)槊艽a分析者有最少量的信息可供利用。上述攻擊的強(qiáng)度是遞增的。NetworkandInformationSecurityNetworkandInformationSecurity根據(jù)被破譯的難易程度,不同的密碼算法具有不同的安全等級(jí)如果破譯算法的代價(jià)大于加密數(shù)據(jù)的價(jià)值,那么可能是安全的。如果破譯算法所需的時(shí)間比加密數(shù)據(jù)保密的時(shí)間更長(zhǎng),那么可能是安全的。如果用單密鑰加密的數(shù)據(jù)量比破譯算法需要的數(shù)據(jù)量少得多,那么可能是安全的。學(xué)者LarsKundsen把破譯算法分為不同的類別,安全性的遞減順序如下:(1)全盤破譯:密碼分析者找出了秘鑰。(2)全盤推導(dǎo):密碼分析者找到一個(gè)代替算法,在不知道密鑰的情況下,可用它得到明文。(3)實(shí)例(或局部)推導(dǎo):密碼分析者從截獲的密文中找出明文。(4)信息推導(dǎo):密碼分析者獲得一些有關(guān)密鑰或明文的信息。這些信息可能是密鑰的幾bit、有關(guān)明文格式的信息等。NetworkandInformationSecurityNetworkandInformationSecurity幾乎所有密碼系統(tǒng)在唯密文攻擊中都是可破的,只要簡(jiǎn)單地一個(gè)接一個(gè)地去試每種可能的密鑰,并且檢查所得明文是否有意義。這種方法叫做蠻力攻擊。密碼學(xué)更關(guān)心在計(jì)算上不可破譯的密碼系統(tǒng)。如果一個(gè)算法用(現(xiàn)在或?qū)?lái))可得到的資源在可接受的時(shí)間內(nèi)都不能破譯,這個(gè)算法則被認(rèn)為在計(jì)算上是安全的。NetworkandInformationSecurity可以用不同方式衡量攻擊方法的復(fù)雜性:(1)數(shù)據(jù)復(fù)雜性:用作攻擊輸入所需要的數(shù)據(jù)量。(2)時(shí)間復(fù)雜性:完成攻擊所需要的時(shí)間。(3)存儲(chǔ)復(fù)雜性:進(jìn)行攻擊所需要的存儲(chǔ)量。2.2數(shù)據(jù)加密標(biāo)準(zhǔn)DES背景基礎(chǔ):1967年美國(guó)HorstFeistel提出的理論。發(fā)明人:美國(guó)IBM公司W(wǎng).Tuchman和C.Meyer1971-1972年研制成功。產(chǎn)生:美國(guó)國(guó)家標(biāo)準(zhǔn)局(NBS)1973年5月-1974年8月兩次發(fā)布公告,公開征求用于電子計(jì)算機(jī)的加密算法,經(jīng)評(píng)選采納了IBM的LUCIFER方案。標(biāo)準(zhǔn)化:DES算法1975年3月公開發(fā)表,1977年1月15日由NBS頒布為數(shù)據(jù)加密標(biāo)準(zhǔn),于1977年7月15日生效。應(yīng)用:DES算法在POS、ATM、智能卡(IC卡),加油站、高速公路收費(fèi)站被廣泛應(yīng)用,以此來(lái)實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)的保密。1.S-DES加密算法(簡(jiǎn)化的DES)S-DES是由美國(guó)圣達(dá)卡拉大學(xué)的EdwardSchaeffer教授提出的,主要用于教學(xué),其設(shè)計(jì)思想和性質(zhì)與DES一致,有關(guān)函數(shù)變換相對(duì)簡(jiǎn)化,具體參數(shù)要小得多。相關(guān)知識(shí)置換:“ABCDEFGH”做一下”82641753″置換的結(jié)果就是”HBFDAGEC”循環(huán)移位:“ABCDEFGH”循環(huán)左移2位結(jié)果就是”CDEFGHAB”S盒替代選擇:輸入的四位數(shù)”ABCD”在S盒中找第AD行BC列的數(shù)字作為輸出。比如0101輸入S0盒的話就是第1(01)行第2(10)列,輸出為1即01,再比如1001輸入S1的話就是第3(11)行第0(00)列,輸出為2即10按位異或:1100∧1010=0110S-DES的體制輸入為一個(gè)8位的二進(jìn)制明文組和一個(gè)10位的二進(jìn)制密鑰,輸出為8位二進(jìn)制密文組;解密與加密基本一致。加密:IP-1(fk2(SW(fk1(IP(明文)))))解密:IP-1(fk1(SW(fk2(IP(密文)))))算法安全性:依賴于雙方共享的10位密鑰,經(jīng)過(guò)變換生成2個(gè)8位密鑰,分別用于加、解密的不同階段。S-DES的密鑰產(chǎn)生置換函數(shù):P10=(3,5,2,7,4,10,1,9,8,6)循環(huán)左移函數(shù)LSP8=(6,3,7,4,8,5,10,9)P10(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6)循環(huán)左移1位,結(jié)果被兩次使用,分別產(chǎn)生k1,k2思考:若初始密鑰k0為(1010000010),產(chǎn)生的兩個(gè)子密鑰k1,k2分別為多少?(k1:10100100k2:01000011)

S-DES的加密變換過(guò)程

IP=(2,6,3,1,4,8,5,7)IP-1=(4,1,3,5,7,2,8,6)E/P=(4,1,2,3,2,3,4,1)“⊕”:按位異或運(yùn)算;P4=(2,4,3,1)S盒函數(shù)S0和S1為兩個(gè)盒子函數(shù),將輸入作為索引行列號(hào)查表,得到相應(yīng)的系數(shù)作為輸出。SW:將左4位和右4位交換。思考:如果明文:10010101,密鑰k1=10100100,K2=01000011,則密文是多少?2023/2/3322.DES算法

DES是一個(gè)分組密碼算法,使用64位密鑰(除去8位奇偶校驗(yàn),實(shí)際密鑰長(zhǎng)為56位)對(duì)64比特的數(shù)據(jù)分組(二進(jìn)制數(shù)據(jù))加密,產(chǎn)生64位密文數(shù)據(jù)。DES是一個(gè)對(duì)稱密碼體制,加密和解密使用同一密鑰,解密和加密使用同一算法。DES的所有保密性均依賴于密鑰。2023/2/333DES加密算法圖DES的一次迭代過(guò)程N(yùn)etworkandInformationSecurity(1)DES的加密過(guò)程(3個(gè)階段)第一階段:初始置換IP(如下頁(yè)表所示)DES對(duì)64位明文分組進(jìn)行操作。首先,64位明文分組x經(jīng)過(guò)一個(gè)初始置換函數(shù)IP,產(chǎn)生64位的輸出x0,再將分組x0分成左半部分L0和右半部分R0,即:

x0=IP(x)=L0R0置換表如表2-1所示。此表順序?yàn)閺纳系较拢瑥淖笾劣?。如初始置換把明文的第58位換至第1位,把第50位換至第二位,以此類推。NetworkandInformationSecurity表2-1初始置換IP58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157特點(diǎn):整個(gè)64位按8行、8列排列;最右邊一列按照2,4,6,8和1,3,5,7的次序排列;往左邊各列的位序號(hào)依次為緊鄰其右邊一列各位序號(hào)加8.DES算法的子密鑰的生成過(guò)程

NetworkandInformationSecurityDES加密算法的密鑰長(zhǎng)度為56位,但一般表示為64位,其中,每個(gè)第8位用于奇偶校驗(yàn)。在DES加密算法中,將用戶提供的64位初始密鑰經(jīng)過(guò)一系列的處理得到K1,K2,…,K16,分別作為1~16輪運(yùn)算的16個(gè)子密鑰。子密鑰的生成過(guò)程如右圖所示:8的倍數(shù)位,即第8,16,24,32,40,48,56和64位共8位未被使用。NetworkandInformationSecurity子密鑰的生成過(guò)程如下:首先,將64位密鑰去掉8個(gè)校驗(yàn)位,用密鑰置換PC–1置換剩下的56位密鑰;再將56位分成前28位C0和后28位D0兩部分,即PC–1(K56)=C0D0。密鑰置換PC-1如表2-2所示。57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124表2-2密鑰置換PC–1NetworkandInformationSecurity

接下來(lái),根據(jù)輪數(shù),這兩部分分別循環(huán)左移1位或2位。具體每輪移位的位數(shù)如表2-3所示。

表2-3每輪移動(dòng)的位數(shù)輪次12345678910111213141516位數(shù)1122222212222221NetworkandInformationSecurity

移動(dòng)后,將兩部分合并成56位后通過(guò)壓縮置換PC–2后得到48位子密鑰,即Ki=PC-2(CiDi)。壓縮置換如表2-4所示。表2-4壓縮置換PC–214171124153281562110231912426816727201324152313747553040514533484449395634534642503629329,18?NetworkandInformationSecurity圖2-6子密鑰產(chǎn)生第二階段:計(jì)算16次迭代變換。

DES采用了典型的Feistel結(jié)構(gòu),其算法的核心是算法所規(guī)定的16次迭代變換。DES算法的16次迭代變換具有相同的結(jié)構(gòu),每一次迭代變換都以前一次迭代變換的結(jié)果(第一次迭代以作x0=L0R0為輸入)和用戶密鑰擴(kuò)展得到的子密鑰ki作為輸入;每一次迭代變換只變換一半數(shù)據(jù),它們將輸入數(shù)據(jù)的右半部分經(jīng)過(guò)函數(shù)f后,將其輸出與輸入數(shù)據(jù)的左半部分進(jìn)行異或運(yùn)算,并將得到的結(jié)果作為新的右半部分,原來(lái)的右半部分變成了新的左半部分NetworkandInformationSecurityDES加密算法圖注意:DES在最后一輪后,左半部分和右半部分不再交換NetworkandInformationSecurity密碼函數(shù)F:1)函數(shù)F的操作步驟密碼函數(shù)F的輸入是32比特?cái)?shù)據(jù)和48比特的子密鑰,其操作步驟如下頁(yè)圖2-7所示。(1)擴(kuò)展置換(E)。將數(shù)據(jù)的右半部分Ri從32位擴(kuò)展為48位。位選擇函數(shù)(也稱E盒)如表2-5所示。NetworkandInformationSecurity圖2-7F(Ri,Ki)計(jì)算NetworkandInformationSecurity表2-5擴(kuò)展置換(E)32123

4

54

5678

989101112131213141516171617

1819202120212223242524252627282928293031321特點(diǎn):擴(kuò)展置換(E)將32位輸入擴(kuò)展為48位輸出,實(shí)際上32位輸入中有16位被重用;將48位按8行、6列的次序排列;排列時(shí),將輸入位序號(hào)按32,1,2,。。。31,32的次序依次排列,但上一行的后兩位依次在下一行的前兩位得到重用,認(rèn)為最后一行的下一行是第1行。NetworkandInformationSecurity(2)異或。擴(kuò)展后的48位輸出E(Ri)與壓縮后的48位密鑰Ki作異或運(yùn)算。

(3)S盒替代。將異或得到的48位結(jié)果分成八個(gè)6位的塊,每一塊通過(guò)對(duì)應(yīng)的一個(gè)S盒產(chǎn)生一個(gè)4位的輸出。八個(gè)S盒如表2-6所示。NetworkandInformationSecurity表2-6S盒S1盒1441312151183106125907015741421311061211953841148136211151297310501512824917511314100613S2盒1518146113497213120510313471528141201106911501471110413158126932151381013154211671205149NetworkandInformationSecurityS3盒1009146315511312711428137093461028514121115113649815301112125101471101306987415143115212S4盒7131430691012851112415138115615034721211014910690121171315131452843150610113894511127214S5盒2124171011685315130149141121247131501510398642111101378159125630141181271142136150910453NetworkandInformationSecurityS6盒1211015926801334147511101542712956113140113891415528123704101131164321295151011141760813S7盒4112141508133129751061130117491101435122158614111312371410156805926111381410795015142312S8盒1328461511110931450127115138103741256110149271141912142061013153582114741081315129035611NetworkandInformationSecurityS盒的具體置換過(guò)程為:某個(gè)Si盒的6位輸入的第1位和第6位形成一個(gè)2位的二進(jìn)制數(shù)(從0~3),對(duì)應(yīng)表中的某一行;同時(shí),輸入的中間4位構(gòu)成4位二進(jìn)制數(shù)(從0~15)對(duì)應(yīng)表中的某一列(注意:行和列均從0開始計(jì)數(shù))。例如,第8個(gè)S盒的輸入為001011,前后2位形成的二進(jìn)制數(shù)為01,對(duì)應(yīng)第8個(gè)S盒的第1行;中間4位為0101,對(duì)應(yīng)同一S盒的第5列。從表2-6中可得S8盒的第1行第5列的數(shù)為3,于是就用0011代替原輸入001011。

S盒具有下列一些屬性:S盒的每一行都是0—15的一個(gè)排列;S盒是非線性的,輸出不是輸入的一個(gè)仿射變換(輸入6位,輸出4位);改變S盒的1位輸入,至少有2位輸出會(huì)發(fā)生改變;如果一個(gè)S盒的兩個(gè)輸入只有中間兩位,即3,4位不同,它們的輸出至少有兩位不同;如果一個(gè)S盒的兩個(gè)輸入只有起始兩位,即第1,2位不同,而最后兩位,即第5、6位相同,它們的輸出一定是不同的;在任何一個(gè)S盒中,當(dāng)它的任一位輸入保持不變,其它5位輸入盡情變化時(shí),所有諸4位輸出中,0與1的總數(shù)接近相等。NetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurity(4)P盒置換。將八個(gè)S盒的輸出連在一起生成一個(gè)32位的輸出,輸出結(jié)果再通過(guò)置換P產(chǎn)生一個(gè)32位的輸出即:F(Ri,Ki)。表2-7為P盒置換。至此,密碼函數(shù)F的操作就完成了。最后,將P盒置換的結(jié)果與最初的64位分組的左半部分異或,然后左、右半部分交換,接著開始下一輪計(jì)算。1672021291228171152326518311028241432273919133062211425

表2-7P盒置換NetworkandInformationSecurity

第三階段:末置換函數(shù)IP-1

末置換是初始置換的逆變換。對(duì)L0和R0進(jìn)行16輪相同的運(yùn)算后,將得到的兩部分?jǐn)?shù)據(jù)合在一起,經(jīng)過(guò)一個(gè)末置換函數(shù)就可得到64位的密文c,即:

c=IP-1(R16L16)(16指的是16輪)表2-8列出了該變換。40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725表2-8末置換IP-1DES的解密NetworkandInformationSecurityNetworkandInformationSecurity

函數(shù)F的設(shè)計(jì)

函數(shù)F是DES加密的核心,它依賴于S盒的設(shè)計(jì)。這也適用于其它的對(duì)稱分組加密算法。下面我們簡(jiǎn)單討論一下有關(guān)F函數(shù)的一些通用設(shè)計(jì)準(zhǔn)則以及S盒設(shè)計(jì)問(wèn)題。

(1)F的設(shè)計(jì)準(zhǔn)則。函數(shù)F的基本功能就是“擾亂(confusion)”輸入,因此,對(duì)于F來(lái)說(shuō),其非線性越高越好,也就是說(shuō),要恢復(fù)F所做的“擾亂”操作越難越好。NetworkandInformationSecurity

其它的設(shè)計(jì)準(zhǔn)則還包括嚴(yán)格雪崩準(zhǔn)則(SAC)和

比特獨(dú)立準(zhǔn)則(BIC)

。所謂SAC,就是要求算法具有良好的雪崩效應(yīng),輸入當(dāng)中的一個(gè)比特發(fā)生變化都應(yīng)當(dāng)使輸出產(chǎn)生”盡可能多”

的比特變化。

嚴(yán)格地說(shuō),就是當(dāng)任何單個(gè)輸入比特位i發(fā)生變換時(shí),一個(gè)S盒的第j比特輸出位發(fā)生變換的概率應(yīng)為1/2,且對(duì)任意的i,j都應(yīng)成立。

BIC的意思是當(dāng)單個(gè)輸入比特位i發(fā)生變化時(shí),輸出比特位j,k的變化應(yīng)當(dāng)互相獨(dú)立,且對(duì)任意的i,j,k均應(yīng)成立。SAC和BIC可以有效的增強(qiáng)F函數(shù)的“擾亂”功能。NetworkandInformationSecurity

(2)S盒設(shè)計(jì)。S盒的設(shè)計(jì)在對(duì)稱分組密碼研究領(lǐng)域中起著舉足輕重的作用。本質(zhì)上,S盒的作用就是對(duì)輸入向量進(jìn)行處理,使得輸出看起來(lái)更具隨機(jī)性,輸入和輸出之間應(yīng)當(dāng)是非線性的,很難用線性函數(shù)來(lái)逼近。顯然,S盒的尺寸是一個(gè)很重要的特性。一個(gè)n×m的S盒其輸入為n比特,輸出為m比特。DES的S盒大小為6×4。S盒越大,就越容易抵制差分和線性密碼分析。NetworkandInformationSecurityMister和Adams提出了很多的S盒設(shè)計(jì)原則,其中包括要求S盒滿足SAC和BIC的原則,以及S盒的所有列的全部線性組合應(yīng)當(dāng)滿足一類稱為bent函數(shù)的高度非線性布爾函數(shù)的原則。Bent函數(shù)具有很多有趣的特性,其中,高度非線性和最高階的嚴(yán)格雪崩準(zhǔn)則對(duì)于S盒的設(shè)計(jì)尤為重要。DES的安全性DES的安全性完全依賴于所用的密鑰。自從其算法作為標(biāo)準(zhǔn)公開以來(lái),人們對(duì)它的安全性就有激烈的爭(zhēng)論。在對(duì)DES安全性的批評(píng)意見中,較一致的看法是DES的密鑰太短!其長(zhǎng)度56bit,致使密鑰量?jī)H為256=1017,不能抵抗窮舉攻擊,事實(shí)證明的確如此。NetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurityDES舉例NetworkandInformationSecurityDES舉例NetworkandInformationSecurityDES舉例NetworkandInformationSecurity分組密碼的工作模式電子編碼本模式(ECB):用相同的密鑰分別對(duì)明文分組加密。ECB模式特點(diǎn)模式簡(jiǎn)單有效,主要用于內(nèi)容較短且隨機(jī)的報(bào)文的加密傳遞各組的加密獨(dú)立于其它分組,可以實(shí)現(xiàn)并行處理不能隱藏明文的模式信息(統(tǒng)計(jì)規(guī)律、結(jié)構(gòu)規(guī)律)相同的明文得出相同的密文同樣信息多次出現(xiàn)造成統(tǒng)計(jì)分析攻擊對(duì)明文的主動(dòng)攻擊

信息塊可以被替換、重排、刪除、重放誤差傳遞較?。好芪膲K損壞只會(huì)影響其對(duì)應(yīng)的明文解密明文:張三隊(duì)長(zhǎng)昨晚抓住3名竊賊密文:c1=DES(張三隊(duì)長(zhǎng))c2=DES(昨晚抓住)c3=DES(3名竊賊)若將c1及c3的順序?qū)φ{(diào),則解密后?密碼分組鏈接模式(CBC)加密算法的輸入是上一個(gè)密文組和下一個(gè)明文組的異或收發(fā)雙方共享IV和Key加密:ci=Ek(mi⊕ci-1)i=1,2,3…..解密:mi=Ek-1(ci)⊕ci-1i=1,2,3…..CBC的特點(diǎn)優(yōu)點(diǎn):相同明文塊產(chǎn)生不同密文塊,隱蔽明文的數(shù)據(jù)模式。密文塊之間聯(lián)系緊密,某一密文塊被破壞,解密不出有意義的明文塊,在一定程度上防止分組重放、插入、刪除等攻擊。缺點(diǎn):加密易導(dǎo)致錯(cuò)誤傳播,任何一個(gè)明文或密文分組出錯(cuò)都會(huì)導(dǎo)致其后的密文分組出錯(cuò)。解密時(shí),如果某密文塊ci出錯(cuò),則該組明文mi及下一組明文mi+1會(huì)出錯(cuò),其余組不受影響。加密不能并行處理,解密可以(因做異或的加密區(qū)塊結(jié)果已經(jīng)存在)。密碼反饋模式(CFB)適用于待加密的消息需要按照字符、比特處理,需要共同的IV值。優(yōu)點(diǎn):隱藏明文模式缺點(diǎn):加密明文發(fā)生錯(cuò)誤時(shí),錯(cuò)誤會(huì)傳播。解密時(shí),一個(gè)密文塊損壞會(huì)影響兩個(gè)明文塊無(wú)法解密還原。無(wú)并行實(shí)現(xiàn)的算法。輸出反饋模式(OFB)與CFB類似,但反饋的內(nèi)容是DES的輸出而不是密文。優(yōu)點(diǎn):沒(méi)有錯(cuò)誤傳播,如果傳輸中出現(xiàn)錯(cuò)誤,不會(huì)影響其后各位。隱藏明文模式密文中的一位傳輸錯(cuò)誤只影響明文中的相應(yīng)位。缺點(diǎn):不能并行實(shí)現(xiàn)安全性較CFB差2.2.2DES的變形——3DES由于DES的密鑰長(zhǎng)度相對(duì)于窮舉攻擊過(guò)短,因此一般使用多重DES進(jìn)行加密,常見的是三重DES。將64位的明文組以3個(gè)56位的密鑰分別在3個(gè)DES系統(tǒng)加密處理后,產(chǎn)生64位的密文分組,將密鑰長(zhǎng)度有原來(lái)的56位擴(kuò)增到168位,大大增強(qiáng)其安全性。

加密:c=EK3(DK2(EK1(m)))解密:m=DK1(EK2(DK3(c)))一些三重DES算法的模型(其中E代表加密,D代表解密)(1)DES-EEE2:第一和第三加密過(guò)程使用相同的密鑰。(2)DES-EDE2:第一和第三加密過(guò)程使用相同的密鑰。(3)DES-EEE3:每次用一個(gè)不同的密鑰。(4)DES-EDE3:每次用一個(gè)不同的密鑰。NetworkandInformationSecurity 由來(lái)學(xué)嘉(X.J.Lai)和J.L.Massey提出的第1版IDEA(internationaldataencryptionalgorithm,國(guó)際數(shù)據(jù)加密算法)于1990年公布,當(dāng)時(shí)稱為PES(proposedencryptionstandard,建議加密標(biāo)準(zhǔn))。1991年,在Biham和Shamir提出差分密碼分析之后,設(shè)計(jì)者推出了改進(jìn)算法IPES,即改進(jìn)型建議加密標(biāo)準(zhǔn)。1992年,設(shè)計(jì)者又將IPES改名為IDEA。這是近年來(lái)提出的各種分組密碼中一個(gè)很成功的方案,已在PGP中采用。2.3IDEANetworkandInformationSecurityIDEA是一個(gè)分組長(zhǎng)度為64位的分組密碼算法,密鑰長(zhǎng)度為128位,同一個(gè)算法即可用于加密,也可用于解密。首先定義五種算法:(一)三種加密運(yùn)算(二)兩種子密鑰運(yùn)算NetworkandInformationSecurity3種運(yùn)算結(jié)合起來(lái)使用可對(duì)算法的輸入提供復(fù)雜的變換,從而使得對(duì)IDEA的密碼分析比對(duì)僅使用異或運(yùn)算的DES更為困難。算法中擴(kuò)散是由稱為乘加(multiplication/addition,MA)結(jié)構(gòu)的基本單元實(shí)現(xiàn)的。該結(jié)構(gòu)的輸入是兩個(gè)16比特的子段和兩個(gè)16比特的子密鑰,輸出也為兩個(gè)16比特的子段。這一結(jié)構(gòu)在算法中重復(fù)使用了8次,獲得了非常有效的擴(kuò)散效果。圖IDEA的加密框圖IDEA的加密過(guò)程包括兩部分:(1)輸入的64位明文組分成四個(gè)16位子分組:X1、X2、X3和X4。四個(gè)子分組作為算法第一輪的輸入,總共進(jìn)行八輪的迭代運(yùn)算,產(chǎn)生64位的密文輸出。(2)輸入的128位會(huì)話密鑰產(chǎn)生八輪迭代所需的52個(gè)子密鑰(八輪運(yùn)算中每輪需要六個(gè),還有四個(gè)用于輸出變換)。IDEA第1輪的輪結(jié)構(gòu)1)X1和第1個(gè)子密鑰塊進(jìn)行乘法運(yùn)算。2)X2和第2個(gè)子密鑰塊進(jìn)行加法運(yùn)算。3)X3和第3個(gè)子密鑰塊進(jìn)行加法運(yùn)算。4)X4和第4個(gè)子密鑰塊進(jìn)行乘法運(yùn)算。5)1)和3)的結(jié)果進(jìn)行異或運(yùn)算。6)2)和4)的結(jié)果進(jìn)行異或運(yùn)算。7)5)的結(jié)果與第5子密鑰進(jìn)行乘法運(yùn)算。8)6)和7)的結(jié)果進(jìn)行加法運(yùn)算。9)8)的結(jié)果與第6個(gè)子密鑰塊進(jìn)行乘法運(yùn)算。10)7)和9)的結(jié)果進(jìn)行加法運(yùn)算。11)1)和9)的結(jié)果進(jìn)行異或運(yùn)算。12)3)和9)的結(jié)果進(jìn)行異或運(yùn)算。13)2)和10)的結(jié)果進(jìn)行異或運(yùn)算。14)4)和10)的結(jié)果進(jìn)行異或運(yùn)算。結(jié)果的輸出為11)、13)、12)、14),除最后一輪外,第2和第3塊交換。1)W1和第1個(gè)子密鑰塊進(jìn)行乘法運(yùn)算。2)W3和第2個(gè)子密鑰塊進(jìn)行加法運(yùn)算。3)W2和第3個(gè)子密鑰塊進(jìn)行加法運(yùn)算。4)W4和第4個(gè)子密鑰塊進(jìn)行乘法運(yùn)算。IDEA的輸出變換NetworkandInformationSecurity

子密鑰產(chǎn)生:加密過(guò)程中52個(gè)16比特的子密鑰是由128比特的加密密鑰按如下方式產(chǎn)生的:前8個(gè)子密鑰Z1,Z2,…,Z8直接從加密密鑰中取,即Z1取前16比特(最高有效位),Z2取下面的16比特,依次類推。然后加密密鑰循環(huán)左移25位,再取下面8個(gè)子密鑰Z9,Z10,…,Z16,取法與Z1,Z2,…,Z8的取法相同。這一過(guò)程重復(fù)下去,直到52子密鑰都被產(chǎn)生為止。NetworkandInformationSecurity解密過(guò)程 解密過(guò)程和加密過(guò)程基本相同,但子密鑰的選取不同。解密子密鑰U1,U2,…,U52是由加密子密鑰轉(zhuǎn)換得到(將加密過(guò)程最后一步的輸出變換當(dāng)作第9輪):①第i(i=1,…,9)輪解密的前4個(gè)子密鑰由加密過(guò)程第(10-i)輪的前4個(gè)子密鑰得出:其中第1和第4個(gè)解密子密鑰取為相應(yīng)的第1和第4個(gè)加密子密鑰的模216+1乘法逆元,第2和第3個(gè)子密鑰的取法為:當(dāng)輪數(shù)i=2,…,8時(shí),取為相應(yīng)的第3個(gè)和第2個(gè)加密子密鑰的模216加法逆元。i=1和9時(shí),取為相應(yīng)的第2個(gè)和第3個(gè)加密子密鑰的模216加法逆元。②第i(i=1,…,8)輪解密的后兩個(gè)子密鑰等于加密過(guò)程第(9-i)輪的后兩個(gè)子密鑰。IDEA算法的設(shè)計(jì)原理NetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurity2.4高級(jí)加密標(biāo)準(zhǔn)(AES)AES提出1997年1月,美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所NIST向全世界密碼學(xué)界發(fā)出征集21世紀(jì)高級(jí)加密標(biāo)準(zhǔn)AES(AdvancedEncryptionStandard)算法的公告,并成立了AES標(biāo)準(zhǔn)工作研究室,1997年4月15日的例會(huì)制定了對(duì)AES的評(píng)估標(biāo)準(zhǔn)。NetworkandInformationSecurityAES的要求(1)AES是公開的;(2)AES為單鑰體制分組密碼(3)AES的密鑰長(zhǎng)度可變,可按需要增大(4)AES適于用軟件和硬件實(shí)現(xiàn);(5)AES可以自由地使用,或按符合美國(guó)國(guó)家標(biāo)準(zhǔn)(ANST)策略的條件使用;算法衡量條件滿足以上要求的AES算法,需按下述條件判斷優(yōu)劣:安全性計(jì)算效率內(nèi)存要求使用簡(jiǎn)便性靈活性AES的評(píng)審1998年4月15日全面征集AES算法的工作結(jié)束。1998年8月12日舉行了首屆AES候選會(huì)議(firstAEScandidateconference),在涉及14個(gè)國(guó)家的密碼學(xué)家所提出的候選AES算法進(jìn)行了評(píng)估和測(cè)試,初選并公布了15個(gè)備選方案,任由全世界各機(jī)構(gòu)和個(gè)人攻擊和評(píng)論。CAST256、CRYPTON、E2、DEAL、FROG、SAFER+、RC6、MAGENTA、LOKI97、SERPENT、MARS、Rijndael、DFC、Twofish、HPC。這些算法設(shè)計(jì)思想新穎,技術(shù)水平先進(jìn),算法的強(qiáng)度都超過(guò)3-DES,實(shí)現(xiàn)速度快于3-DES。NetworkandInformationSecurityAES的評(píng)審1999年8月9日NIST宣布第二輪篩選出的5個(gè)候選算法為:MARS(C.Burwick等,IBM),RC6(R.Rivest等,RSALab),Rijndael(J.Daemen,比),SERPENT(R.Anderson等,英,以,挪威),Twofish(B.Schiener)。2000年10月2日,NIST宣布Rijndael作為新的AES。至此,經(jīng)過(guò)3年多的討論,Rijndael終于脫穎而出。NetworkandInformationSecurityAES算法設(shè)計(jì)思想抵抗所有已知攻擊在多個(gè)平臺(tái)上速度快,編碼緊湊設(shè)計(jì)簡(jiǎn)單Rijndael是一個(gè)分組密碼算法,其分組長(zhǎng)度和密鑰長(zhǎng)度相互獨(dú)立,都可以改變。分組長(zhǎng)度和密鑰長(zhǎng)度的不同取值NetworkandInformationSecurityAES中共用到5個(gè)數(shù)據(jù)度量單位:位、字節(jié)、字、分組和態(tài)。位:就是二進(jìn)制的0或1;字節(jié):就是一組8位的二進(jìn)制數(shù);字:是由4個(gè)字節(jié)組成的一個(gè)基本處理單位,可以是按行或列排成一個(gè)矩陣;AES中的分組:如128位,可以表示成16個(gè)字節(jié)組成的一個(gè)行矩陣態(tài)(State):密碼運(yùn)算的中間結(jié)果成為狀態(tài)。State的表示:狀態(tài)用以字節(jié)為基本構(gòu)成元素的矩陣陣列來(lái)表示,該陣列有4行,列數(shù)記為Nb。Nb=分組長(zhǎng)度(bits)÷32Nb可以取的值為4,6,8,對(duì)應(yīng)的分組長(zhǎng)度為128,192,256bits.明文分組和密鑰的組織排列方式NetworkandInformationSecurity以明文分組為128bits為例組成的陣列注意:矩陣中字節(jié)排列順序是從上到下從左到右。以明文分組(或密鑰)為128bits、192bits、256bits為例組成的陣列NetworkandInformationSecurity102AES的加密與解密

過(guò)程最后1輪沒(méi)有列混合輪函數(shù)的3層線性混合層:確保多輪之上的高度擴(kuò)散非線性層:進(jìn)行字節(jié)代換,即S-盒替換,起到混淆的作用密鑰加層:?jiǎn)屋喿用荑€簡(jiǎn)單的異或到中間狀態(tài)上,實(shí)現(xiàn)一次性掩蓋AES各輪AES加密循環(huán)(除最后一輪外)均包含4個(gè)步驟:(1)字節(jié)代換(SubBytes)通過(guò)一個(gè)非線性的替換函數(shù),用查找表的方式把每個(gè)字節(jié)替換成對(duì)應(yīng)的字節(jié)。(2)行位移變換(ShiftRows)將矩陣中的每個(gè)橫列進(jìn)行循環(huán)式移位。

(3)列混合變換(MixColumns)為了充分混合矩陣中各個(gè)直行的操作。這個(gè)步驟使用線性轉(zhuǎn)換來(lái)混合每?jī)?nèi)聯(lián)的四個(gè)字節(jié)。

(4)輪密鑰加運(yùn)算(AddRoundKey)矩陣中的每一個(gè)字節(jié)都與該次輪密鑰(Roundkey)做XOR運(yùn)算;每個(gè)子密鑰由密鑰生成方案產(chǎn)生。AES(1)字節(jié)變換(SubBytes)Subbytes變換是一個(gè)基于S盒的非線性置換。將狀態(tài)矩陣中的每一個(gè)字節(jié)通過(guò)查表操作映射成另一個(gè)字節(jié)映射方法:輸入字節(jié)的高4位作為S盒的行值,低4位為S盒的列值。e按照字節(jié)代替的處理方法,可以將一個(gè)態(tài)中的16字節(jié)分別代替87f24d97ec6e4c904ac346e72464612aea04658583455d965c3398b0a68cd895AES(2)行位移變換(ShiftRows)每一行都向左循環(huán)位移某個(gè)偏移量。在AES中(區(qū)塊大小128位),第一行維持不變,第二行里的每個(gè)字節(jié)都向左循環(huán)移動(dòng)一格。同理,第三行及第四行向左循環(huán)位移的偏移量就分別是2和3。經(jīng)過(guò)ShiftRows之后,矩陣中每一豎列,都是由輸入矩陣中的每個(gè)不同列中的元素組成。偏移量C1、C2、C3與分組長(zhǎng)度Nb有關(guān)按照行移位的處理方法,可以將一個(gè)態(tài)中的4行分別移位處理87f24d976e4c90ec46e74ac32a24646187f24d97ec6e4c904ac346e72464612a(3)列混合變換(MixColumns)可用矩陣乘法表示:即MixColumns函數(shù)接受4個(gè)字節(jié)的輸入,輸出4個(gè)字節(jié),每一個(gè)輸入的字節(jié)都會(huì)對(duì)輸出的四個(gè)字節(jié)造成影響。因此ShiftRows和MixColumns兩步驟為這個(gè)密碼系統(tǒng)提供了擴(kuò)散性。AES一個(gè)列混淆的例子0203010101020301010102030301010287f24d976e4c90ec46e74ac3a68cd8954740a34c37d4709f94e43a42eda5a6bc﹒=02·87⊕03·6e⊕01·46⊕01·a6=47113AES(4)輪密鑰加運(yùn)算(AddRoundKey)

在每次的加密循環(huán)中,都會(huì)由主密鑰產(chǎn)生一把輪密鑰,這把密鑰大小會(huì)跟原矩陣一樣,然后與原矩陣中每個(gè)對(duì)應(yīng)的字節(jié)作異或(⊕)加法。一個(gè)輪密鑰加的例子328831e0435a3137f6309807a88da2342b28ab097eaef7ef15d2154f16a6883c19A09aE93dF4C6F8E3E28d48Be2b2a08⊕=態(tài)輪密鑰新態(tài)密鑰擴(kuò)展密碼密鑰的表示:用一個(gè)4行的矩陣來(lái)表示,列數(shù)記為Nk。Nk=密鑰長(zhǎng)度(bits)÷32Nk可以取的值為4,6,8,對(duì)應(yīng)的密鑰長(zhǎng)度為128,192,256bits。密鑰擴(kuò)展(ExpandedKey)算法密鑰bit的總數(shù)=分組長(zhǎng)度×(輪數(shù)Round+1)例如當(dāng)分組長(zhǎng)度為128bits和輪數(shù)Round為10時(shí),輪密鑰長(zhǎng)度為128×(10+1)=1408bits種子密鑰被擴(kuò)展為擴(kuò)展密鑰輪密鑰從擴(kuò)展密鑰中按順序選?。旱谝粋€(gè)輪密鑰由擴(kuò)展密鑰的第一個(gè)Nb個(gè)4字節(jié)字,第二個(gè)輪密鑰由接下來(lái)的Nb個(gè)4字節(jié)字組成,以此類推。例如:128位的密鑰以字節(jié)為單位的矩陣描述的,這個(gè)密鑰采用擴(kuò)展算法被擴(kuò)展到一個(gè)以字為單位的密鑰序列中,最終擴(kuò)展成44字的序列。128位密鑰擴(kuò)展的具體步驟:(1)初始密鑰直接被復(fù)制到數(shù)組W[i]的前4個(gè)字中,得到W[0],W[1],W[2],W[3]如加密密鑰=2b7e151628aed2a6abf7158809cf4f3c,則:w[0]=2b7e1516,w[1]=28aed2a6,w[2]=abf71588,w[3]=09cf4f3c(2)對(duì)W數(shù)組中下標(biāo)不為4的倍數(shù)的元素,只是簡(jiǎn)單地異或,即W[i]=W[i-1]⊕W[i-4](i不為4的倍數(shù))W[5]=w[4]⊕w[1]w[6]=w[5]⊕w[2](3)對(duì)w數(shù)組中下標(biāo)為4的倍數(shù)的元素,在使用上式進(jìn)行異或前,需對(duì)w[i-1]進(jìn)行一系列處理,即依次進(jìn)行:1)RotWord(對(duì)輸入4個(gè)字節(jié)循環(huán)左移一個(gè)字節(jié)),即將字(b0,b1,b2,b3)變?yōu)椋╞1,b2,b3,b0)。如以下求w[4]為例,需對(duì)w[3]進(jìn)行處理RotWord(w[3])=RotWord(09cf4f3c)={cf4f3c09}2)SubWord():基于S盒對(duì)輸入字(步驟1的結(jié)果)中的每個(gè)字節(jié)進(jìn)行S代替。如:SubWord(cf4f3c09)={8a84eb01}3)將步驟2的結(jié)果再與輪常量Rcon[i/4]異或。前10個(gè)輪常數(shù)Rcon[i]{8a84eb01}⊕Rcon[4/4]={8a84eb01}⊕{01000000}={8b84eb01}4)將步驟3的結(jié)果再與w[i-4]異或。{8b84eb01}⊕w[4-4]={8b84eb01}⊕{2b7e1516}={a0fafe17}即w[4]={a0fafe17}例:明文信息:3243f6a8885a308d313198a2e0370734

加密密鑰:2b7e151628aed2a6abf7158809cf4f3c加密密鑰為128位,輪數(shù)Nr=10加密過(guò)程:(1)10輪迭代前,先把原明文寫成如下形式(表1),本輪密鑰寫成如表2形式328831e0435a3137f6309807a88da2342b28ab097eaeF7cf15d2154f16a6883c表1表2

進(jìn)行輪密鑰加變換操作后產(chǎn)生一個(gè)結(jié)果,作為10輪迭代的第一輪輸入。輪密鑰加變換操作如下:每個(gè)字節(jié)相應(yīng)異或,32:001100102b:00101011異或結(jié)果:00011001即19,所以第一個(gè)字節(jié)為19,其他字節(jié)依次類推,因此第一輪的輪開始狀態(tài)為(表3):19a09ae93df4c6f8e3e28d48be2b2a08表3

(2)輪循環(huán)

①進(jìn)行第一輪的“字節(jié)代換”操作要查S盒,每個(gè)字節(jié)依次置換,結(jié)果如表4d4e0b81e27bfb44111985d52aef1e530表4

②然后按照行移位變換原則進(jìn)行操作,結(jié)果如表5d4e0b81ebfb441275d52119830aef1e5表5③列混合變換利用公式完成,結(jié)果為表604e0482866cbf8068119d326e59a7a4c表6(3)密鑰擴(kuò)展:①W[0]=2b7e1516、w[1]=28aed2a6、w[2]=abf71588、w[3]=09cf4f3c用初始密鑰填充。②接著求w[4],下標(biāo)為4的倍數(shù),則在異或之前對(duì)w[i-1]也就是w[3]處理,w[4]的產(chǎn)生過(guò)程如下圖所示:w[4]=a0fafe17w[5]=w[4]⊕w[1]=88542cb1w[6]=w[5]⊕w[2]=23a33939w[7]=w[6]⊕w[3]=2a6c7605w[4],w[5],w[6],w[7]即為新一輪的密鑰③把新一輪的密鑰和表6做輪密鑰加變換,得到的結(jié)果如表7做為第2輪迭代的輸入。(4)依次迭代下去,直到第10輪迭代結(jié)束。最后的結(jié)果即產(chǎn)生的密文為表8所示即:3925841d02dc09fbdc118597196a0b32W[3]=09cf4f3ccf4f3c09RotByte()操作8a84eb01SubByte()操作8b84eb01a0fafe17與Rcon[1]異或與w[0]異或3902dc1925dc116a8409850b1dfb9732a4686b029c9f5b6a7f35aa50f22b4349表8表72.5序列密碼序列密碼強(qiáng)度完全依賴于密鑰流產(chǎn)生器所產(chǎn)生的序列的隨機(jī)性和不可預(yù)測(cè)性,其核心問(wèn)題是密鑰流生成器的設(shè)計(jì)。而保持收發(fā)兩端密鑰流的精確同步是實(shí)現(xiàn)可靠解密的關(guān)鍵技術(shù)。迄今為止,只有一種理論上不可破的加密方案,叫做一次一密亂碼本,這是一種序列密碼。RC4RC4概述基本思想:

溫馨提示

  • 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)論