第4章對稱密碼技術(shù)_第1頁
第4章對稱密碼技術(shù)_第2頁
第4章對稱密碼技術(shù)_第3頁
第4章對稱密碼技術(shù)_第4頁
第4章對稱密碼技術(shù)_第5頁
已閱讀5頁,還剩108頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、復(fù)習(xí)與回顧復(fù)習(xí)與回顧密碼技術(shù)的基本概念、分類、實現(xiàn)和應(yīng)用原理。內(nèi)容密碼技術(shù)的基本概念、分類、實現(xiàn)和應(yīng)用原理。內(nèi)容包括:包括:數(shù)據(jù)保密通信模型及基本術(shù)語數(shù)據(jù)保密通信模型及基本術(shù)語對稱密碼體制及其分類與工作原理對稱密碼體制及其分類與工作原理公鑰密碼體制及其工作原理公鑰密碼體制及其工作原理數(shù)字簽名技術(shù)及其特性數(shù)字簽名技術(shù)及其特性消息完整性保護及認證消息完整性保護及認證如何定義和衡量密碼體制的安全性如何定義和衡量密碼體制的安全性學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)本章以幾個典型對稱密碼算法為例,介紹對稱密碼算本章以幾個典型對稱密碼算法為例,介紹對稱密碼算法實現(xiàn)過程、機理及特點,理解密碼算法的應(yīng)用背景。法實現(xiàn)過程、機理及特

2、點,理解密碼算法的應(yīng)用背景。幾個經(jīng)典的古典密碼方案幾個經(jīng)典的古典密碼方案數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DESDES高級加密標(biāo)準高級加密標(biāo)準AESAES其它典型分組密碼算法其它典型分組密碼算法流密碼算法流密碼算法分組密碼算法工作模式分組密碼算法工作模式目目 錄錄4.0 古典密碼古典密碼4.1 數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DES4.2 高級加密標(biāo)準高級加密標(biāo)準AES4.3 其他分組密碼算法介紹其他分組密碼算法介紹4.4 流密碼算法流密碼算法RC44.5 分組密碼工作模式分組密碼工作模式4 0n古典代換密碼古典代換密碼q將明文字母替換成其他字母、數(shù)字或符號的方法;將明文字母替換成其他字母、數(shù)字或符號的方法;q

3、如果把明文看成是如果把明文看成是0 0或或1 1的序列,那么密文就是的序列,那么密文就是0 0或或1 1比比特序列的另一種表達。特序列的另一種表達。n古典置換密碼古典置換密碼q通過改變明文字符的位置來實現(xiàn)加解密;通過改變明文字符的位置來實現(xiàn)加解密;q例如:柵欄密碼、行移位密碼等例如:柵欄密碼、行移位密碼等4n所知道的最早的代替密碼;所知道的最早的代替密碼;nJulius Caesar;n首先用在軍事通信中;首先用在軍事通信中;n用字母后的第三個字母代替。用字母后的第三個字母代替。明 文ab cdefghijklmnopqrstuvwxyz密 文D E F G HIJKL M N OP Q R

4、S T U V W X YZ A BCn加密加密q方式一:公式計算方式一:公式計算m明文編碼:如明文編碼:如a=0,b=1,z=25,則明文,則明文Pp1p2pnm加密運算:加密運算:cipi +k (mod 26), i 1,2,nm加密得密文:加密得密文:Cc1c2cnq方式二:查表(例方式二:查表(例k3)明文明文abcdefghijklmnopqrstuvwxyz密文密文DEFGHIJKLM N OPQRSTUV W XYZABCn 解密解密q 方式一:公式計算方式一:公式計算m 密文密文Cc1c2cn 解密運算:解密運算:Pici k(mod 26), i1,2,nm 解碼得明文:解

5、碼得明文:Pp1p2pnq 方式二:查表(例方式二:查表(例k=3)密文密文ABCDEFGHIJKLMNOPQRSTUVWX Y Z明文明文xyzabcdefghijklmnopqrstuv wn愷撒密碼加解密算法愷撒密碼加解密算法q加密算法:加密算法:c = E(p) = (p+k) mod (26)q解密算法:解密算法:p = D(c) = (ck) mod (26)q 共有密鑰共有密鑰25個個 q 可簡單地依次去測試可簡單地依次去測試 ,強力搜索,窮舉攻擊,強力搜索,窮舉攻擊 q 基于字母頻率的破譯方法基于字母頻率的破譯方法q 所破譯的明文需要識別所破譯的明文需要識別m如:破譯密文如:破

6、譯密文 GCUA VQ DTGCM“ dzrx sn aqdzj (k=3) easy to break (k=2)4換換n 不是簡單有序地字母移位不是簡單有序地字母移位 n 任意地打亂字母的順序任意地打亂字母的順序 n 每個明文字母映射到一個不同的隨機密文字母每個明文字母映射到一個不同的隨機密文字母 n 密鑰數(shù)目:密鑰數(shù)目:26! 4換換q密鑰空間:密鑰空間: 26! 4 1026 q貌似安全,實則不然貌似安全,實則不然 q語言特性語言特性4換換q 人類的語言是有冗余的人類的語言是有冗余的 q 字母的使用頻率是不同的字母的使用頻率是不同的q 在英語中在英語中E使用的頻率最高使用的頻率最高 q

7、 有些字母使用較少有些字母使用較少q 單字母、雙字母、三字母組合統(tǒng)計單字母、雙字母、三字母組合統(tǒng)計4換換4n 特點:在明文消息中采用不同的代換表特點:在明文消息中采用不同的代換表n 安全性提高安全性提高 n 使得字母的頻率分布更加平坦使得字母的頻率分布更加平坦n 用一個密鑰指示明文消息中每個字母加解密時所用的用一個密鑰指示明文消息中每個字母加解密時所用的代換表代換表n 密鑰依次重復(fù)使用,代換表依次重復(fù)使用密鑰依次重復(fù)使用,代換表依次重復(fù)使用 n 例子:例子:q Vigenre(維吉利亞)密碼(維吉利亞)密碼(1858)q Vernam(唯爾南)密碼(唯爾南)密碼(1918)4加密方式一:數(shù)學(xué)公

8、式計算加密方式一:數(shù)學(xué)公式計算q設(shè)明文設(shè)明文 P = p1p2pn,密鑰,密鑰 k = k1k2kn,密文,密文C = c1c2cn 明文編碼;明文編碼;計算計算 ci= pi+ki(mod 26),i=1,2,n。q說明:若明文長度大于說明:若明文長度大于n,則,則K重復(fù)使用。重復(fù)使用。方式二:查表法方式二:查表法44nVigenre密碼解密方法一:數(shù)學(xué)公式計算密碼解密方法一:數(shù)學(xué)公式計算qpi = ciki (mod 26),=1,2,n;n方法二:查表方法二:查表n加密過程:加密過程:qP“encode and decode”,k“mykey”字母序號字母序號12345678910111

9、2131415明文編碼明文編碼P =4132143401333421434密鑰編碼密鑰編碼k =122410424122410424122410424加密加密C =1637121827162423727162624728模運算模運算111102密文編碼密文編碼C =QLMSBQYXHBQAYHBn解密過程:解密過程:qC“QLMSBQYXHBQAYHB”,k“mykey”字母序號字母序號123456789101112131415密文編碼密文編碼C=161112181162423711602472密鑰編碼密鑰編碼k=122410424122410424122410424加密加密C=4-13214

10、-2340133-234-24143-22模運算模運算133324明文編碼明文編碼P=encodeanddecoden密鑰空間:密鑰空間:|K|26nn字母的統(tǒng)計規(guī)律進一步降低字母的統(tǒng)計規(guī)律進一步降低n明、密文字母不是一一對應(yīng)關(guān)系明、密文字母不是一一對應(yīng)關(guān)系nVigenre本人建議:密鑰與明文一樣長本人建議:密鑰與明文一樣長n特例:特例:當(dāng)當(dāng)k1 k2 kn k時,是時,是Caesar密碼密碼4 0n 1929年由數(shù)學(xué)家年由數(shù)學(xué)家Lester Hill發(fā)明發(fā)明n 是一種多表代換密碼是一種多表代換密碼n 利用模運算意義下的矩陣乘法、求逆矩陣、線性利用模運算意義下的矩陣乘法、求逆矩陣、線性無關(guān)、線

11、性空間與線性變換等概念和運算無關(guān)、線性空間與線性變換等概念和運算 4 0q加密加密m 明文分組并編碼明文分組并編碼m CKP mod26,其中,其中K為密鑰矩陣,為密鑰矩陣,P、C分別為明文分別為明文分組和密文分組。分組和密文分組。q解密解密m 密文分組并編碼密文分組并編碼m PK-1C mod 26 注:對密鑰矩陣注:對密鑰矩陣K的要求:在的要求:在mod 26下可逆。下可逆。密鑰矩陣密鑰矩陣K92221182151717明文分組明文分組P“mor” rom171412明文編碼明文編碼 P 192221182151717 171412 375651527 1137加密加密 C mod 26密

12、文密文 C LDH,即,即C“HDL”Hill密碼的例子密碼的例子 17024617151594K1加密加密:密鑰矩陣密鑰矩陣K92221182151717明文明文P“mor” rom171412明文明文 P 1137解密解密 P mod 26C LDHC“HDL”解密解密: 17024617151594K1 355222220 17024617151594 11371714124 0q密鑰空間:密鑰空間:|K|25!1.61025q字母的統(tǒng)計規(guī)律進一步降低字母的統(tǒng)計規(guī)律進一步降低q明、密文字母不是一一對應(yīng)關(guān)系明、密文字母不是一一對應(yīng)關(guān)系4n 隨機密鑰隨機密鑰n 理論上不可破理論上不可破n 實

13、際上不可行實際上不可行q 產(chǎn)生大量的隨機密鑰難產(chǎn)生大量的隨機密鑰難q 密鑰分配與保護更難密鑰分配與保護更難4.0n在現(xiàn)代密碼之前,轉(zhuǎn)輪密碼是最廣泛使用的復(fù)雜密碼在現(xiàn)代密碼之前,轉(zhuǎn)輪密碼是最廣泛使用的復(fù)雜密碼n廣泛用在第二次世界大戰(zhàn)中:廣泛用在第二次世界大戰(zhàn)中:German Enigma, Allied Hagelin, Japanese Purplen實現(xiàn)了復(fù)雜多變的多表代換密碼,多層加密實現(xiàn)了復(fù)雜多變的多表代換密碼,多層加密n采用一系列轉(zhuǎn)輪,每一個都是一個代換表,轉(zhuǎn)輪可以采用一系列轉(zhuǎn)輪,每一個都是一個代換表,轉(zhuǎn)輪可以依次旋轉(zhuǎn)加密每個字母依次旋轉(zhuǎn)加密每個字母q用用3個轉(zhuǎn)輪就有個轉(zhuǎn)輪就有 263

14、=17576 代替表代替表目目 錄錄4.0 古典密碼古典密碼4.1 數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DES4.2高級加密標(biāo)準高級加密標(biāo)準AES4.3 其他分組密碼算法介紹其他分組密碼算法介紹4.4 流密碼算法流密碼算法RC44.5 分組密碼工作模式分組密碼工作模式如何實現(xiàn)加解密過程相同、密鑰相同的對如何實現(xiàn)加解密過程相同、密鑰相同的對稱密碼算法稱密碼算法?4.1 數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DES4.1 數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DESn 數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DES(Data Encryption Standard)是一個著名是一個著名分組加密算法。分組加密算法。n 美國國家標(biāo)準局美國國家標(biāo)準局1973

15、年年5月公開征集用于計算機數(shù)據(jù)在傳輸和月公開征集用于計算機數(shù)據(jù)在傳輸和存儲期間實現(xiàn)加密保護的密碼算法。存儲期間實現(xiàn)加密保護的密碼算法。n 1975年美國國家標(biāo)準局接受了年美國國家標(biāo)準局接受了IBM公司提交的一種密碼算法并公司提交的一種密碼算法并向社會公開征求意見。向社會公開征求意見。n 1977年正式采用該算法作為美國數(shù)據(jù)加密標(biāo)準。年正式采用該算法作為美國數(shù)據(jù)加密標(biāo)準。n 1980年年12月美國國家標(biāo)準協(xié)會正式采用該算法作為美國商用加月美國國家標(biāo)準協(xié)會正式采用該算法作為美國商用加密算法。密算法。4.1.1 概述概述n美國國家標(biāo)準局征求加密算法的要求:美國國家標(biāo)準局征求加密算法的要求:q提供高質(zhì)

16、量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被提供高質(zhì)量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺的修改。察覺的修改。q具有相當(dāng)高的復(fù)雜性,使得破譯的開銷超過可能獲得的利具有相當(dāng)高的復(fù)雜性,使得破譯的開銷超過可能獲得的利益,同時又便于理解和掌握。益,同時又便于理解和掌握。q密碼體制的安全性應(yīng)該不依賴于算法的保密,其安全性僅密碼體制的安全性應(yīng)該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎(chǔ)。以加密密鑰的保密為基礎(chǔ)。 q實現(xiàn)經(jīng)濟,運行有效,并且適用于多種完全不同的應(yīng)用。實現(xiàn)經(jīng)濟,運行有效,并且適用于多種完全不同的應(yīng)用。4.1.1 概述概述nDES是一種分組密碼算法,加密和解密使用相同的密是一種

17、分組密碼算法,加密和解密使用相同的密鑰。鑰。nDES的分組長度為的分組長度為64比特位比特位。n使用使用64比特密鑰(其中包括比特密鑰(其中包括8比特奇偶校驗位),密比特奇偶校驗位),密鑰通過擴展后鑰通過擴展后n經(jīng)過經(jīng)過16輪對明文分組的代換和置換輪對明文分組的代換和置換4.1.2 DES工作過工作過程程1. 初始置換初始置換和和其逆置換其逆置換 IP置換置換逆逆IP置換置換2. f函數(shù)函數(shù)2. f函數(shù)函數(shù) 2. f函數(shù)函數(shù)置換置換P4.1.3 密鑰調(diào)度密鑰調(diào)度n56比特密鑰作為初始輸入,經(jīng)過置換選擇操作比特密鑰作為初始輸入,經(jīng)過置換選擇操作PC1,輸出輸出56比特分作左右兩個部分(各比特分作

18、左右兩個部分(各28比特),分別做左循環(huán)比特),分別做左循環(huán)移位,之后左右兩部分合并再進行置換選擇操作移位,之后左右兩部分合并再進行置換選擇操作PC2,產(chǎn),產(chǎn)生生48比特輪密鑰。比特輪密鑰。置換選擇置換選擇PC1置換選擇置換選擇PC24.1.4 DES安全性分析安全性分析n S盒是盒是DES的核心,也是的核心,也是DES算法最敏感的部分,所有替換都是算法最敏感的部分,所有替換都是固定的,甚顯神秘。許多密碼學(xué)家曾擔(dān)心固定的,甚顯神秘。許多密碼學(xué)家曾擔(dān)心NSA設(shè)計設(shè)計S盒時隱藏了盒時隱藏了某些陷門某些陷門。n DES算法具有很好的雪崩效應(yīng)算法具有很好的雪崩效應(yīng)。n 1997年年通過通過互聯(lián)網(wǎng)利用上

19、萬臺微機互聯(lián)網(wǎng)利用上萬臺微機4個月成功破譯個月成功破譯DES。n 1998年年EFF花費大約花費大約25萬美元定制構(gòu)造了一個萬美元定制構(gòu)造了一個DES解密器,該解密器,該機器包含機器包含1856個定制芯片,可在個定制芯片,可在2天內(nèi)強力搜索一個天內(nèi)強力搜索一個DES密鑰。密鑰。n 2006年德國年德國Bochum和和Kiel大學(xué)花費大學(xué)花費1萬美元,構(gòu)建了一個名為萬美元,構(gòu)建了一個名為COPACOBANA機器,它包含機器,它包含120個低成本個低成本FPGA,平均在,平均在9天內(nèi)天內(nèi)能夠完成一個能夠完成一個DES密鑰窮舉。密鑰窮舉。4.1.5 3DESnP= EK3(DK2(EK1(M)nFI

20、PS PUB46-3標(biāo)準中定義標(biāo)準中定義3種密鑰使用方式:種密鑰使用方式:q 3個密鑰相互獨立,互不相同。這種方式提供最強安全性,個密鑰相互獨立,互不相同。這種方式提供最強安全性,相當(dāng)于提供相當(dāng)于提供356=168比特長度密鑰。比特長度密鑰。q K1和和K2相互獨立,互不相同,而相互獨立,互不相同,而K3=K1。提供。提供256=112比特長度密鑰,密鑰空間為比特長度密鑰,密鑰空間為2112=51033。實際應(yīng)用多采用。實際應(yīng)用多采用此方法。此方法。q 3個密鑰完全相等,即個密鑰完全相等,即K1=K2=K3。算法退化為標(biāo)準。算法退化為標(biāo)準DES,保證向后兼容。保證向后兼容。目目 錄錄4.0 古

21、典密碼古典密碼4.1 數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DES4.2高級加密標(biāo)準高級加密標(biāo)準AES4.3 其他分組密碼算法介紹其他分組密碼算法介紹4.4 流密碼算法流密碼算法RC44.5 分組密碼工作模式分組密碼工作模式如何設(shè)計數(shù)學(xué)上可證明安全性的對稱密碼算如何設(shè)計數(shù)學(xué)上可證明安全性的對稱密碼算法法?4.2 高級加密標(biāo)準高級加密標(biāo)準AES4.2 高級加密標(biāo)準高級加密標(biāo)準AESn1997.4.15,NIST發(fā)起征集高級加密標(biāo)準的活動,目的發(fā)起征集高級加密標(biāo)準的活動,目的是確定一個可以公開技術(shù)細節(jié)的、全球免費使用的分組密是確定一個可以公開技術(shù)細節(jié)的、全球免費使用的分組密碼算法,作為新的數(shù)據(jù)加密標(biāo)準。碼算法,

22、作為新的數(shù)據(jù)加密標(biāo)準。n1997.9.12,美國聯(lián)邦登記處公布了正式征集,美國聯(lián)邦登記處公布了正式征集AES候選算候選算法的通告。作為進入法的通告。作為進入AES候選過程的一個條件,開發(fā)者承候選過程的一個條件,開發(fā)者承諾放棄被選中算法的知識產(chǎn)權(quán)。諾放棄被選中算法的知識產(chǎn)權(quán)。nNIST對對AES算法的要求算法的要求q 算法應(yīng)比三重算法應(yīng)比三重DES快而且至少還要一樣的安全快而且至少還要一樣的安全q 應(yīng)當(dāng)具有應(yīng)當(dāng)具有128比特分組長度和比特分組長度和128/192/256比特密鑰長度比特密鑰長度n1998.8.12首屆首屆AES會議會議NIST收到收到15個候選算法。個候選算法。1999.3.22

23、第二次第二次AES會議將候選名單減少為會議將候選名單減少為5個:個:qMARS(IBM)、)、RC6(MIT)、)、Rijndael(比)、(比)、Serpent( 英、以、美)、英、以、美)、Twofish(美)(美)n2000.4.13第三次第三次AES會議上,對這會議上,對這5個候選算法的各種分個候選算法的各種分析結(jié)果進行了討論。析結(jié)果進行了討論。n2000.10.2,NIST宣布了獲勝者:比利時密碼專家宣布了獲勝者:比利時密碼專家Vincent Rijmen和和Joan Daemen設(shè)計的設(shè)計的Rijndael算法。算法。2001年年11月出版了最終標(biāo)準月出版了最終標(biāo)準FIPS PUB

24、197,該算法稱為,該算法稱為AES: Advanced Encryption Standard。4.2 高級加密標(biāo)準高級加密標(biāo)準AES4.2 高級加密標(biāo)準高級加密標(biāo)準AESnRijndael算法算法q分組長度為分組長度為128比特,密鑰長度為比特,密鑰長度為128/192/256比特比特q使用替換置換網(wǎng)絡(luò)設(shè)計,而沒有采用使用替換置換網(wǎng)絡(luò)設(shè)計,而沒有采用Feistel結(jié)構(gòu),軟硬結(jié)構(gòu),軟硬件實現(xiàn)都很快。件實現(xiàn)都很快。q基本特性基本特性m 能夠抵抗已知的所有攻擊能夠抵抗已知的所有攻擊m 在各種平臺上執(zhí)行速度快,代碼緊湊在各種平臺上執(zhí)行速度快,代碼緊湊m 設(shè)計簡單設(shè)計簡單4.2.1 AES基本操作流

25、程基本操作流程nAES由多輪操作組成,輪數(shù)由分組和密鑰長度決定由多輪操作組成,輪數(shù)由分組和密鑰長度決定。nAES在在4n字節(jié)數(shù)組字節(jié)數(shù)組/矩陣上操作,稱為狀態(tài)矩陣上操作,稱為狀態(tài)(State),其中,其中n是密鑰字節(jié)數(shù)除是密鑰字節(jié)數(shù)除4。n數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)q 以字節(jié)為單位的方陣描述:輸入分組以字節(jié)為單位的方陣描述:輸入分組in、中間數(shù)組、中間數(shù)組State、輸出、密鑰、輸出、密鑰q 排列順序:方陣中從上到下,從左到右排列順序:方陣中從上到下,從左到右4.2.1 AES基本操作流程基本操作流程n AES狀態(tài)矩陣的構(gòu)造與變化狀態(tài)矩陣的構(gòu)造與變化4.2.1 AES基本操作流程基本操作流程n AES允

26、許分組和密鑰以允許分組和密鑰以128比特為基礎(chǔ),以比特為基礎(chǔ),以8字節(jié)倍數(shù)擴展長度字節(jié)倍數(shù)擴展長度,因此,因此192、256比特分組或密鑰被組織成比特分組或密鑰被組織成46、48矩陣。矩陣。n AES標(biāo)準中使用標(biāo)準中使用Nb、Nk分別表示分組矩陣、密鑰矩陣列數(shù),如分別表示分組矩陣、密鑰矩陣列數(shù),如當(dāng)分組為當(dāng)分組為46矩陣,即矩陣,即Nb=6,密鑰為,密鑰為48矩陣,則矩陣,則Nk=8。n AES算法流程中輪數(shù)依賴于密鑰長度,標(biāo)準中使用算法流程中輪數(shù)依賴于密鑰長度,標(biāo)準中使用Nr表示輪數(shù)。表示輪數(shù)。AES包括包括3個分組密碼套件:個分組密碼套件: AES-128、AES-192、AES-256對

27、應(yīng)對應(yīng)Nk分別為分別為4、6、8,即密鑰長度對應(yīng),即密鑰長度對應(yīng)128、192和和256比特,對應(yīng)輪數(shù)比特,對應(yīng)輪數(shù)Nr等于等于10、12、14,分組長度都為,分組長度都為128比特。比特。4.2.1 AES基本操作流程基本操作流程 n AES的參數(shù)的參數(shù)AES-128AES-192AES-256密鑰長度密鑰長度(字(字/字節(jié)字節(jié)/位)位)4/16/1286/24/1928/32/256明文分組長度明文分組長度(字(字/字節(jié)字節(jié)/位)位)4/16/1284/16/1284/16/128輪數(shù)輪數(shù)101214輪密鑰長度輪密鑰長度(字(字/字節(jié)字節(jié)/位)位)4/16/1284/16/1284/16/

28、128擴展密鑰長度擴展密鑰長度(字(字/字節(jié))字節(jié))44/17652/20860/2404.2.1 AES基本操作流程基本操作流程nAES加解密基本流程加解密基本流程q首選執(zhí)行一次初始密鑰混合:明文字節(jié)矩陣與初始主密首選執(zhí)行一次初始密鑰混合:明文字節(jié)矩陣與初始主密鑰矩陣直接相加。鑰矩陣直接相加。q然后按規(guī)定次數(shù)執(zhí)行輪變換。然后按規(guī)定次數(shù)執(zhí)行輪變換。4.2.1 AES基本操作流程基本操作流程nAES的輪變換:每一輪包含的輪變換:每一輪包含4個步驟個步驟(最后一輪稍有不同最后一輪稍有不同)q 字節(jié)替換字節(jié)替換(Byte):執(zhí)行一個非線性替換操作,通過查):執(zhí)行一個非線性替換操作,通過查表替換每個字

29、節(jié)。表替換每個字節(jié)。q 行移位行移位:狀態(tài)(矩陣)的每一行按字節(jié)為單位循環(huán)移動:狀態(tài)(矩陣)的每一行按字節(jié)為單位循環(huán)移動若干字節(jié)。若干字節(jié)。q 列混合列混合:基于狀態(tài)列的混合操作。:基于狀態(tài)列的混合操作。q 輪密鑰疊加輪密鑰疊加:狀態(tài)的每一個字節(jié)混合輪密鑰:狀態(tài)的每一個字節(jié)混合輪密鑰,輪密鑰由輪密鑰由密鑰調(diào)度算法產(chǎn)生。密鑰調(diào)度算法產(chǎn)生。4.2.1 AES基本操作流程基本操作流程 n AES算法結(jié)構(gòu)算法結(jié)構(gòu)4.2.1 AES基本操作流程基本操作流程nAES算法結(jié)構(gòu)算法結(jié)構(gòu)qAES算法的輪變換中沒有算法的輪變換中沒有Feistel結(jié)構(gòu),輪變換是由三結(jié)構(gòu),輪變換是由三個不同的可逆一致變換組成,稱之為

30、層。個不同的可逆一致變換組成,稱之為層。m線性混合層:確保多輪之上的高度擴散。線性混合層:確保多輪之上的高度擴散。m非線性層:具有最優(yōu)最差情形非線性性的非線性層:具有最優(yōu)最差情形非線性性的S-盒的并盒的并行應(yīng)用。行應(yīng)用。m密鑰加層:輪密鑰簡單地異或到中間狀態(tài)上密鑰加層:輪密鑰簡單地異或到中間狀態(tài)上。4.2.1 AES基本操作流程基本操作流程nSP網(wǎng)絡(luò)結(jié)構(gòu)網(wǎng)絡(luò)結(jié)構(gòu)q在這種密碼的每一輪中,輪輸在這種密碼的每一輪中,輪輸入首先被一個由子密鑰控制的入首先被一個由子密鑰控制的可逆函數(shù)可逆函數(shù)S作用,然后再對所作用,然后再對所得結(jié)果用置換(或可逆線性變得結(jié)果用置換(或可逆線性變換)換)P作用。作用。S和和

31、P分別被稱為分別被稱為混亂層和擴散層,主要起混亂混亂層和擴散層,主要起混亂和擴散作用。和擴散作用。4.2.2 輪操作輪操作1.字節(jié)替換字節(jié)替換q狀態(tài)矩陣中每個字節(jié)通過查狀態(tài)矩陣中每個字節(jié)通過查S盒進行替換,實現(xiàn)密碼算盒進行替換,實現(xiàn)密碼算法的非線性運算。法的非線性運算。qS盒是一個盒是一個1616可逆矩陣,用作替換表??赡婢仃嚕米魈鎿Q表。q查查S盒方法:以一個狀態(tài)字節(jié)的高盒方法:以一個狀態(tài)字節(jié)的高4位作為行號,低位作為行號,低4位位作為列號,確定作為列號,確定S盒中的一個字節(jié)位置,以該字節(jié)替換盒中的一個字節(jié)位置,以該字節(jié)替換原狀態(tài)字節(jié)。原狀態(tài)字節(jié)。4.2.2 輪操作輪操作1. 字節(jié)替換字節(jié)替

32、換4.2.2 輪操作輪操作1.字節(jié)替換字節(jié)替換nS盒盒n逆逆S盒盒4.2.2 輪操作輪操作1.字節(jié)替換字節(jié)替換n 字節(jié)替換的例子字節(jié)替換的例子1.字節(jié)替換:字節(jié)替換:S盒的構(gòu)造盒的構(gòu)造q 初始化:逐行按上升排列的字節(jié)值初始化初始化:逐行按上升排列的字節(jié)值初始化S盒。盒。q 元素求逆:在元素求逆:在GF(28)中求逆中求逆q 元素置換元素置換:(b7,b6.b0)-(b7,b6.b0)。其中。其中iiiiiiicbbbbbb8mod78mod68mod58mod4 0110001111111000111100017070bbbb ,067ccc=(01100011)2 4.2.2 輪操作輪操作4

33、.2.2 輪操作輪操作2. 行移位行移位n1、2、3行以字節(jié)為單位分別按行以字節(jié)為單位分別按1、2、3字節(jié)的偏移量做字節(jié)的偏移量做循環(huán)左移位。循環(huán)左移位。q狀態(tài)矩陣為狀態(tài)矩陣為4 46 6和和4 48 8時移位偏移量分別為時移位偏移量分別為(1(1、2 2、3)3)和和(1(1、3 3、4)4)4.2.2 輪操作輪操作2. 行移位行移位n 例子例子4.2.2 輪操作輪操作3. 列混合列混合n將狀態(tài)矩陣每一列看作將狀態(tài)矩陣每一列看作GF(28)上的多項式與一個固定上的多項式與一個固定多項式多項式a(x)模模x4+1相乘。相乘。a(x)(03)x3+(01)x2+(01)x+(02)n上述多項式乘

34、法可表示成如下矩陣形式上述多項式乘法可表示成如下矩陣形式4.2.2 輪操作輪操作3. 列混合列混合n 例子例子4.2.2 輪操作輪操作4.輪密鑰加輪密鑰加n一個簡單地按位異或操作一個簡單地按位異或操作 4.2.2 輪操作輪操作n輪操作小結(jié)輪操作小結(jié)qSubBytes的目的是為了得到一個非線性的代換密碼。對的目的是為了得到一個非線性的代換密碼。對于密碼抗差分分析來說,非線性是一個重要的性質(zhì)。于密碼抗差分分析來說,非線性是一個重要的性質(zhì)。q ShiftRows 和和MixColumns 的目的是獲得明文消息分的目的是獲得明文消息分組在不同位置上的字節(jié)混合。組在不同位置上的字節(jié)混合。q AddRou

35、ndKey 給出了消息分布所需的秘密隨機性。給出了消息分布所需的秘密隨機性。4.2.3 密鑰擴展密鑰擴展n輪密鑰是通過密鑰調(diào)度算法產(chǎn)生,包括兩個組成部分:密輪密鑰是通過密鑰調(diào)度算法產(chǎn)生,包括兩個組成部分:密鑰擴展和輪密鑰選取?;驹砣缦拢鸿€擴展和輪密鑰選取。基本原理如下:q所有輪密鑰比特的總數(shù)等于分組長度乘輪數(shù)加所有輪密鑰比特的總數(shù)等于分組長度乘輪數(shù)加1。例如。例如128比特分組長度和比特分組長度和10輪迭代,共需輪迭代,共需1408比特的密鑰。比特的密鑰。q將密鑰擴展成一個擴展密鑰。將密鑰擴展成一個擴展密鑰。q輪密鑰按下述方式從擴展密鑰中選?。旱谝粋€輪密鑰由輪密鑰按下述方式從擴展密鑰中選取

36、:第一個輪密鑰由開始開始Nb個字組成,第二個輪密鑰由接下來的個字組成,第二個輪密鑰由接下來的Nb個字組個字組成,如此繼續(xù)下去。成,如此繼續(xù)下去。4.2.3 密鑰擴展密鑰擴展n 擴展過程擴展過程4.2.3 密鑰擴展密鑰擴展14.2.3 密鑰擴展密鑰擴展 n函數(shù)函數(shù)gqRotWord執(zhí)行一字節(jié)循環(huán)左移執(zhí)行一字節(jié)循環(huán)左移b0,b1,b2,b3 b1,b2,b3,b0qSubWord使用使用S-盒實行字節(jié)替換盒實行字節(jié)替換q前兩步的結(jié)果與輪常數(shù)前兩步的結(jié)果與輪常數(shù)Rcon j 異或異或n輪常數(shù)輪常數(shù)Rcon j j12345678910RCj01020408102040801B364.2.3 密鑰擴展

37、密鑰擴展n偽代碼偽代碼4.2.3 密鑰擴展密鑰擴展n密鑰擴展偽代碼密鑰擴展偽代碼4.2.3 密鑰擴展密鑰擴展n 例子例子4.2.4 AES解密操作解密操作nAES解密是加密的逆過程解密是加密的逆過程q逆字節(jié)替換:翻轉(zhuǎn)逆字節(jié)替換:翻轉(zhuǎn)S盒盒q逆行移位:右循環(huán)字節(jié)行移位逆行移位:右循環(huán)字節(jié)行移位q逆列混合:逆列混合:a-1(x)(0b)x3+(0d)x2+(09)x+(0e)q輪密鑰加:異或運算輪密鑰加:異或運算目目 錄錄4.0 古典密碼古典密碼4.1 數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DES4.2 高級加密標(biāo)準高級加密標(biāo)準AES4.3 其他分組密碼算法介紹其他分組密碼算法介紹4.4 流密碼算法流密碼算法R

38、C44.5 分組密碼工作模式分組密碼工作模式對稱密碼中混亂與替換的不同實現(xiàn)方法對稱密碼中混亂與替換的不同實現(xiàn)方法?4.3 其它分組密碼其它分組密碼算法算法介紹介紹4.3.1 IDEA算法算法n國際數(shù)據(jù)加密算法國際數(shù)據(jù)加密算法IDEA由由James Massey和我國學(xué)者來和我國學(xué)者來學(xué)嘉學(xué)嘉1991年共同設(shè)計年共同設(shè)計,在協(xié)在協(xié)議議PGP中廣泛應(yīng)用。中廣泛應(yīng)用。n來學(xué)嘉來學(xué)嘉4.3.1 IDEA算法算法nIDEA算法采用算法采用64比特分組和比特分組和128比特密鑰,包括相同的比特密鑰,包括相同的8輪轉(zhuǎn)換和輪轉(zhuǎn)換和1個輸出轉(zhuǎn)換(半輪)。個輸出轉(zhuǎn)換(半輪)。nIDEA通過交叉使用不同群通過交叉使

39、用不同群-模加和乘運算,以及比特位異模加和乘運算,以及比特位異或,或,實現(xiàn)其安全性(實現(xiàn)其安全性(“不協(xié)調(diào)不協(xié)調(diào)”運算)運算)。n輪變換輸入將輪變換輸入將64比特分為比特分為4個個16比特子分組,經(jīng)過變換輸比特子分組,經(jīng)過變換輸出出4個個16比特子分組,作為下一輪輸入。比特子分組,作為下一輪輸入。n每輪變換,在模乘或模加運算中混合每輪變換,在模乘或模加運算中混合6個個16比特密鑰,最比特密鑰,最后一輪后一輪4個運算,混合個運算,混合K1到到K4密鑰,密鑰,4個個16比特輸出合并比特輸出合并后作為后作為IDEA產(chǎn)生的產(chǎn)生的64比特密文。比特密文。4.3.2 Blowfish算法算法nBruce

40、Schneier在在1993設(shè)計設(shè)計的分組加密算法,速度的分組加密算法,速度快???。n依賴密鑰的依賴密鑰的S盒和復(fù)雜盒和復(fù)雜的的密鑰密鑰調(diào)度。調(diào)度。n使用使用64比特分組,從比特分組,從32比特比特到到448比特可變長度密鑰,比特可變長度密鑰,采用采用16輪輪Feistel結(jié)構(gòu)結(jié)構(gòu)。P P1818P P17174.3.2 Blowfish算法算法nBlowfish的的輪函數(shù)輪函數(shù)4.3.2 Blowfish算法算法nBlowfish算法算法包括包括2個子密鑰陣列個子密鑰陣列q18行的行的P陣列:每輪使用陣列:每輪使用1行(行(32比特),最后比特),最后2行在行在16輪輸出的左右分別異或。輪輸

41、出的左右分別異或。q4個個256元素的元素的S盒:輸入盒:輸入8比特,輸出比特,輸出32比特。比特。m4個個S盒的輸出再經(jīng)過模盒的輸出再經(jīng)過模232加運算和異或運算后產(chǎn)生加運算和異或運算后產(chǎn)生32比特輸出。比特輸出。n解密與加密過程完全一樣,但解密與加密過程完全一樣,但P1,.,P18按逆序使用。按逆序使用。nP陣列和陣列和S陣列均由密鑰調(diào)試算法生成陣列均由密鑰調(diào)試算法生成4.3.2 Blowfish算法算法nBlowfish的密鑰調(diào)度算法復(fù)雜的密鑰調(diào)度算法復(fù)雜q使用從使用從的確的確16進制導(dǎo)出值初始化進制導(dǎo)出值初始化P陣列和陣列和S盒;盒;q密鑰與密鑰與P陣列逐行異或;陣列逐行異或;q加密全

42、加密全0分組,用密文替換分組,用密文替換P1和和P2;q再加密上一輪密文,用輸出替換再加密上一輪密文,用輸出替換P3和和P4;依此類推,替;依此類推,替換整個換整個P陣列和陣列和S盒;盒;q加密算法運行加密算法運行521次產(chǎn)生所有子密鑰,大約次產(chǎn)生所有子密鑰,大約4KB數(shù)據(jù)。數(shù)據(jù)。nRC5算法算法q可變分組長度(可變分組長度(32、64或或128比特)、密鑰長度(比特)、密鑰長度(0到到2040比特)以及輪數(shù)(比特)以及輪數(shù)(0到到255),原始),原始參數(shù)參數(shù)和和q用于研究和評估作為密碼原語相關(guān)操作。用于研究和評估作為密碼原語相關(guān)操作。qRC5包括一系列模加和異或,采用類包括一系列模加和異或

43、,采用類Feistel網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)結(jié)構(gòu)。q密鑰調(diào)度密鑰調(diào)度復(fù)雜,復(fù)雜,本質(zhì)上本質(zhì)上使用使用單向函數(shù)擴展密鑰。單向函數(shù)擴展密鑰。q每一輪變換有相同的每一輪變換有相同的2個半輪構(gòu)成。個半輪構(gòu)成。nRC5算法的輪結(jié)構(gòu)算法的輪結(jié)構(gòu)目目 錄錄4.0 古典密碼古典密碼4.1 數(shù)據(jù)加密標(biāo)準數(shù)據(jù)加密標(biāo)準DES4.2 高級加密標(biāo)準高級加密標(biāo)準AES4.3 其他分組密碼算法介紹其他分組密碼算法介紹4.4 流密碼算法流密碼算法RC44.5 分組密碼工作模式分組密碼工作模式如何實現(xiàn)如何實現(xiàn)“無限無限”長度密鑰的對稱密碼算法長度密鑰的對稱密碼算法?4.4 流密碼算法流密碼算法RC44.4 流密碼算法流密碼算法RC4n

44、RC4算法由主密鑰(通信雙方共享的一定長度密鑰)算法由主密鑰(通信雙方共享的一定長度密鑰)按一定密鑰調(diào)度算法產(chǎn)生任意長度偽隨機密鑰字節(jié)流按一定密鑰調(diào)度算法產(chǎn)生任意長度偽隨機密鑰字節(jié)流(以字節(jié)為單位),與明文流按字節(jié)異或生成密文流(以字節(jié)為單位),與明文流按字節(jié)異或生成密文流,解密時密文流與相同的密鑰流按字節(jié)異或恢復(fù)出明,解密時密文流與相同的密鑰流按字節(jié)異或恢復(fù)出明文字節(jié)流。文字節(jié)流。4.4 流密碼算法流密碼算法RC4nRC4算法先使用算法先使用1到到256字節(jié)(字節(jié)(8到到2048比特)的可變長度比特)的可變長度密鑰初始化一個密鑰初始化一個256個字節(jié)狀態(tài)矢量,記為個字節(jié)狀態(tài)矢量,記為S。S的元素記的元素記為為S0、S1、S2 S255,類似于數(shù)組表示。,類似于數(shù)組表示。自自始至終始至終S向量始終包含向量始終包含0255(十進制)所有的(十進制)所有的8比特數(shù)。比特數(shù)。n加密和解密過程中,密鑰流每個字節(jié)由加密和解密過程中,密鑰流每個字節(jié)由S中的中的256個元素個元素按一定方式依次選出一個元素生成按一定方式依次選出一個元素生成;每生

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論