




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第第2 2章章密碼學概論密碼學概論2 2.1 2.1 密碼學的基本概念密碼學的基本概念 2.2 2.2 古典密碼體制古典密碼體制 2.3 2.3 對稱密碼體制對稱密碼體制 2.4 2.4 非對稱密碼體制非對稱密碼體制 2.5 2.5 密鑰管理密鑰管理 2.6 2.6 軟件與硬件加密技術軟件與硬件加密技術 本章主要內容:本章主要內容:32.1 1 密碼學的基本概念密碼學的基本概念密碼學密碼學: : 密碼學是關于加密和解密變換的一門科學,是密碼學是關于加密和解密變換的一門科學,是保護數據和信息的有力武器。密碼技術已經從早期的保護數據和信息的有力武器。密碼技術已經從早期的軍事和外交領域逐步延伸到金
2、融、交通、經濟、科學、軍事和外交領域逐步延伸到金融、交通、經濟、科學、技術、信息、社會生活等各個方面,成為現代社會中技術、信息、社會生活等各個方面,成為現代社會中保護信息的重要方法。保護信息的重要方法。 4明文明文(plaintext): 被用來加密被用來加密的消息的消息密文密文(ciphertext): 明文明文經經變換變換形形成成的的隱蔽形式隱蔽形式加密加密 (encryption) : 從明文到密文的變換過程從明文到密文的變換過程解密解密 (decryption) : 從密文恢復到明文的過程從密文恢復到明文的過程。5密鑰密鑰( (key):key): 變換函數所用的一個控制參數變換函數所
3、用的一個控制參數;加密密鑰加密密鑰: : 與加密算法一起操作的密鑰與加密算法一起操作的密鑰;解密密鑰解密密鑰: : 與解密算法一起操作的密鑰與解密算法一起操作的密鑰;6明文明文明文明文密文密文加密算法加密算法解密算法解密算法密鑰密鑰密鑰密鑰加密和解密算法的操作通常都是在一組密鑰的控加密和解密算法的操作通常都是在一組密鑰的控制下進行的制下進行的, ,分別稱為分別稱為加密密鑰加密密鑰(Encryption Key) (Encryption Key) 和解密密鑰和解密密鑰(Decryption Key).(Decryption Key).加解密過程加解密過程:7明文明文M明文明文M密文密文C加密算法
4、加密算法E解密算法解密算法D密鑰密鑰k1密鑰密鑰k2加解密過程加解密過程: M=D(k2, E(k1, M)8注意:注意: 密碼算法的保密性是基于保持密鑰的秘密,不是密碼算法的保密性是基于保持密鑰的秘密,不是基于保持加解密算法的秘密。(密鑰的安全性)基于保持加解密算法的秘密。(密鑰的安全性) 現代密碼學所使用的算法都是基于保持密鑰的秘現代密碼學所使用的算法都是基于保持密鑰的秘密!密碼算法可以公開。密!密碼算法可以公開。9密鑰分類:密鑰分類: 基本密鑰基本密鑰(base key)。用于啟動和控制某種用于啟動和控制某種算法結構的密鑰產生器,產生用于加密數據的密算法結構的密鑰產生器,產生用于加密數據
5、的密鑰流。鑰流。 會話密鑰會話密鑰(session key)。兩個用戶在一次兩個用戶在一次通話或交換數據時采用的密鑰,例如:數據加密通話或交換數據時采用的密鑰,例如:數據加密密鑰、文件加密密鑰等。密鑰、文件加密密鑰等。 密鑰加密密鑰密鑰加密密鑰(key encrypting key)。對密對密鑰進行加密時采用的密鑰。鑰進行加密時采用的密鑰。 主密鑰主密鑰(host master key)。對密鑰加密密對密鑰加密密鑰進行加密的密鑰。鑰進行加密的密鑰。10密碼分析密碼分析( (破譯、密碼攻擊破譯、密碼攻擊) ): 密鑰未知情況下進行的解密推演過程。密鑰未知情況下進行的解密推演過程。 只需要保持密鑰
6、的安全性,這使得密碼算法可以只需要保持密鑰的安全性,這使得密碼算法可以公開,當然也就可以被分析和攻擊。公開,當然也就可以被分析和攻擊。11常用的密碼分析常用的密碼分析(密碼攻擊密碼攻擊)方法方法v唯密文攻擊唯密文攻擊(Ciphertext-only attack)(Ciphertext-only attack): 密碼分析者擁有一些消息的密文,這些消息都密碼分析者擁有一些消息的密文,這些消息都是用同樣的加密算法來加密的。密碼分析者的任務是用同樣的加密算法來加密的。密碼分析者的任務是盡可能多地恢復出明文來。當然,最好能夠得到是盡可能多地恢復出明文來。當然,最好能夠得到加密消息所使用的密鑰,以便利
7、用該密鑰盡可能多加密消息所使用的密鑰,以便利用該密鑰盡可能多地去解讀其他的密文。地去解讀其他的密文。12v已知明文攻擊已知明文攻擊(Known-plaintext attack)(Known-plaintext attack): 密碼分析者不僅擁有一些消息的密文,而且還密碼分析者不僅擁有一些消息的密文,而且還擁有這些密文對應的明文。密碼分析者的任務就是擁有這些密文對應的明文。密碼分析者的任務就是根據這些明文和密文的對應關系來推出加密密鑰或根據這些明文和密文的對應關系來推出加密密鑰或者推導出一個算法,使得該算法可以對用同一密鑰者推導出一個算法,使得該算法可以對用同一密鑰加密的任何消息進行解密。加
8、密的任何消息進行解密。13v選擇明文攻擊選擇明文攻擊(Chosen-plaintext attack)(Chosen-plaintext attack):分析者不僅擁有一些消息的密文和相應的明文,而分析者不僅擁有一些消息的密文和相應的明文,而且他們還可以進行有選擇地加密明文。密碼分析者且他們還可以進行有選擇地加密明文。密碼分析者可以選擇特定的明文塊,這些明文塊可能會產生更可以選擇特定的明文塊,這些明文塊可能會產生更多關于密鑰的信息。分析者的任務就是推導用于加多關于密鑰的信息。分析者的任務就是推導用于加密的密鑰或者產生一個算法,使得該算法可以對用密的密鑰或者產生一個算法,使得該算法可以對用同一密
9、鑰加密得到的任何密文進行解密。同一密鑰加密得到的任何密文進行解密。14v選擇密文攻擊選擇密文攻擊(Chosen-ciphertext attack)(Chosen-ciphertext attack): 密碼分析者能夠選擇不同的密文,而且能夠得密碼分析者能夠選擇不同的密文,而且能夠得到與之對應的明文。有時我們將選擇明文攻擊和選到與之對應的明文。有時我們將選擇明文攻擊和選擇密文攻擊一起稱作選擇文本攻擊擇密文攻擊一起稱作選擇文本攻擊(Chosen-text (Chosen-text attack)attack) 上述四種攻擊目的是推導出加解密所使用的密鑰。上述四種攻擊目的是推導出加解密所使用的密鑰
10、。15 衡量密碼攻擊的復雜度有兩個方面:衡量密碼攻擊的復雜度有兩個方面: 數據復雜度和處理復雜度數據復雜度和處理復雜度。 數據復雜度是指為了實施攻擊所需輸入的數據量。數據復雜度是指為了實施攻擊所需輸入的數據量。 而處理復雜度是指處理這些數據所需的計算量。而處理復雜度是指處理這些數據所需的計算量。 16 采用了密碼體制的系統稱為密碼系統,密碼系統是采用了密碼體制的系統稱為密碼系統,密碼系統是各種攻擊的目標各種攻擊的目標。非授權者、惡意攻擊者通過各種辦法。非授權者、惡意攻擊者通過各種辦法來竊取機密信息。例如:網絡偵察、數據流分析、軟件來竊取機密信息。例如:網絡偵察、數據流分析、軟件跟蹤、搭線竊聽、
11、電磁竊聽等。跟蹤、搭線竊聽、電磁竊聽等。 在一定的情況下,不知道密鑰,仍然可能入侵密碼在一定的情況下,不知道密鑰,仍然可能入侵密碼系統。對一個密碼系統采取截獲密文,經過分析推斷出系統。對一個密碼系統采取截獲密文,經過分析推斷出明文的攻擊稱為明文的攻擊稱為被動攻擊被動攻擊。而主動向系統串擾,采用刪。而主動向系統串擾,采用刪除、增添、更改、偽造等手段向系統注入假信息的攻擊除、增添、更改、偽造等手段向系統注入假信息的攻擊稱為稱為主動攻擊主動攻擊。密碼系統密碼系統17 古典密碼體制有很多古典密碼體制有很多,如如:愷撒加密法、維吉尼亞加愷撒加密法、維吉尼亞加密法、柵欄加密法、密法、柵欄加密法、ENIGM
12、A加密機等。在密級要求不加密機等。在密級要求不高的場合,這些密碼體制仍然得到了廣泛的應用。高的場合,這些密碼體制仍然得到了廣泛的應用。2.2 2.2 古典密碼體制古典密碼體制18 它是一種古典替換密碼,名稱源于古羅馬的凱撒大帝。它是一種古典替換密碼,名稱源于古羅馬的凱撒大帝。假設明文僅含有英文字母,以查碼表方式進行一對一替假設明文僅含有英文字母,以查碼表方式進行一對一替換。換。愷撒加密法愷撒加密法(Caesar cipher)(Caesar cipher)ABCDE FGHIJKLM0123456789101112NOPQRSTUVWXYZ131415161718192021222324251
13、9 加密:加密:C=M+n (mod 26) 解密解密:M=C-n (mod 26) 密鑰:密鑰:n (0-25) 若若n=0,相當于沒有加密相當于沒有加密愷撒加密法愷撒加密法(Caesar cipher)(Caesar cipher)ABCDE FGHIJKLM0123456789101112NOPQRSTUVWXYZ1314151617181920212223242520 明文:明文:this is caesar cipher 密鑰密鑰:n=2 (C=M+n (mod 26) 密文:密文:vjku ku ecguct ekrjgt愷撒加密法愷撒加密法(Caesar cipher)(Caes
14、ar cipher)ABCDE FGHIJKLM0123456789101112NOPQRSTUVWXYZ1314151617181920212223242521密碼分析密碼分析()加解密算法已知()加解密算法已知()可能嘗試的密鑰只有()可能嘗試的密鑰只有26個個在計算機幫助下輕而易舉得到明文在計算機幫助下輕而易舉得到明文愷撒加密法愷撒加密法(Caesar cipher)(Caesar cipher)ABCDE FGHIJKLM0123456789101112NOPQRSTUVWXYZ1314151617181920212223242522 維吉尼亞密碼是一種以移位代換為基礎的周期代換密碼,
15、為維吉尼亞密碼是一種以移位代換為基礎的周期代換密碼,為18581858年法國密碼學家維吉尼亞提出。年法國密碼學家維吉尼亞提出。 首先構造一個維吉尼亞方陣:它的基本陣列是首先構造一個維吉尼亞方陣:它的基本陣列是2626行行2626列的方列的方陣陣. .方陣的第一行是按正常順序排列的字母表方陣的第一行是按正常順序排列的字母表, ,第二行是第一行左第二行是第一行左移循環移循環1 1位得到的位得到的, ,依此類推依此類推, ,得到其余各行得到其余各行. .然后在基本方陣的最然后在基本方陣的最上方附加一行上方附加一行, ,最左側附加一列最左側附加一列, ,分別依序寫上分別依序寫上a a到到z26z26個
16、字母個字母, ,表表的第一行與附加列上的的字母的第一行與附加列上的的字母a a相對應相對應, ,表的第二行與附加列上的表的第二行與附加列上的字母字母b b相對應相對應.最后一行與附加列上的字母最后一行與附加列上的字母z z相對應相對應. .如果把上面如果把上面的附加行看作是明文序列,則下面的的附加行看作是明文序列,則下面的2626行就分別構成了左移行就分別構成了左移0 0位,位,1 1位,位,2 2位位,2525位的位的2626個單表代換加同余密碼的密文序列。加密個單表代換加同余密碼的密文序列。加密時,按照密鑰字的指示,決定采用哪一個單表。時,按照密鑰字的指示,決定采用哪一個單表。 維吉尼亞加
17、密法(維吉尼亞加密法(Vigenere cipherVigenere cipher)23AABCDEFG HIJ.Y ZBBCDEFG HIJK.ZACCDEFG HIJKL.A BDDEFG HIJKLM .B CEEFG HIJKLM NC DFFG HIJKLM NOD EG G HIJKLM NO PE FHHIJKLM NO PQFGZZABCDEFG HI.X Y A B C D E F G H I J Y Z2425維吉尼亞密碼例子:維吉尼亞密碼例子:密鑰字密鑰字 encryptionencryptione 明明 文:文:publickeydistributionpublicke
18、ydistribution密密 文:文:thdcgrdmmqmfvrgqnbwbrthdcgrdmmqmfvrgqnbwbr由于密鑰字比明文短,所以要重復書寫密鑰字,以得與由于密鑰字比明文短,所以要重復書寫密鑰字,以得與明文等長的密鑰序列。明文等長的密鑰序列。 26Vigenre cipher-破譯依然保留了字符頻率某些統計信息依然保留了字符頻率某些統計信息重碼分析法:間距是密鑰長度整數倍的相同子串有重碼分析法:間距是密鑰長度整數倍的相同子串有相同密文,反過來,密文中兩個相同的子串對應的相同密文,反過來,密文中兩個相同的子串對應的明文相同的可能性很大。明文相同的可能性很大。柵欄加密法柵欄加密法
19、(rail fence cipher)(rail fence cipher)與凱撒加密和維吉尼亞加密不同:變換加密。按鋸齒與凱撒加密和維吉尼亞加密不同:變換加密。按鋸齒形寫在不同行然后重新排列。形寫在不同行然后重新排列。27 明文:明文:this is an example of rail fence cipher t i i a e a p e f a l e c c p e h s s n x m l o r i f n e i h r 密文:密文:tiiaeapefaleccpehssnxmlorifneihr28變換密碼的關鍵思想變換密碼的關鍵思想 按一定規則寫出明文,按另一規則讀出密
20、文。按一定規則寫出明文,按另一規則讀出密文。 密鑰:用于讀密文的方法和寫明文的方法密鑰:用于讀密文的方法和寫明文的方法這類加密算法在今天已基本廢棄不用。這類加密算法在今天已基本廢棄不用。EnigmaEnigma加密機加密機德國發明,用于二戰初期,后德國發明,用于二戰初期,后被破譯。被破譯。2930一次一密密碼一次一密密碼v一次一密密碼,由一次一密密碼,由AT&TAT&T公司的公司的Gilbert VernamGilbert Vernam在在19171917年提出。發方和收方各保存一份一次一密亂碼年提出。發方和收方各保存一份一次一密亂碼本,它是一個大的不重復的真隨機密鑰字母集。發本,它是一個大的
21、不重復的真隨機密鑰字母集。發方用亂碼本中的某一頁密鑰加密明文。加密方法:方用亂碼本中的某一頁密鑰加密明文。加密方法:明文字符和亂碼本密鑰字符的模明文字符和亂碼本密鑰字符的模2626加法。加法。v每個密鑰僅對一個消息使用一次。發方對所發的消每個密鑰僅對一個消息使用一次。發方對所發的消息加密,然后銷毀亂碼本中用過的一頁。收方有一息加密,然后銷毀亂碼本中用過的一頁。收方有一個同樣的亂碼本,并依次使用亂碼本上的每個密鑰個同樣的亂碼本,并依次使用亂碼本上的每個密鑰去解密密文的每個字符,然后銷毀亂碼本中用過的去解密密文的每個字符,然后銷毀亂碼本中用過的一頁。一頁。312.3 2.3 對稱密鑰體制對稱密鑰體
22、制 按照加密解密使用的密鑰是否相同按照加密解密使用的密鑰是否相同, ,可以將可以將密碼體制分為對稱密碼體制和非對稱密碼體制。密碼體制分為對稱密碼體制和非對稱密碼體制。 對稱密碼體制對稱密碼體制: :加密密鑰和解密密鑰相同,加密密鑰和解密密鑰相同,也叫私鑰體制(單鑰體制)。也叫私鑰體制(單鑰體制)。 非對稱密碼體制非對稱密碼體制: :加密密鑰和解密密鑰不同,加密密鑰和解密密鑰不同,也叫公鑰體制(雙鑰體制)。也叫公鑰體制(雙鑰體制)。 對稱密碼體制有很多,如:對稱密碼體制有很多,如:DESDES數據加密標數據加密標準、準、IDEAIDEA密碼算法、高級加密標準(密碼算法、高級加密標準(AESAES
23、)等。)等。 32 雙鑰密碼體制雙鑰密碼體制 也稱也稱非對稱密碼體制非對稱密碼體制,其加密密鑰與解密密鑰不,其加密密鑰與解密密鑰不相同,從一個很難得出另一個。采用雙密鑰體制的相同,從一個很難得出另一個。采用雙密鑰體制的每個用戶都有一對選定的密鑰,其中一個是秘密的,每個用戶都有一對選定的密鑰,其中一個是秘密的,而另一個則可以公開,并可以象電話號碼一樣注冊而另一個則可以公開,并可以象電話號碼一樣注冊公布。因此,雙鑰密碼體制也被稱為公布。因此,雙鑰密碼體制也被稱為公鑰體制公鑰體制( (public key system)public key system)。 33公鑰體制公鑰體制特點特點: 加密和解
24、密能力分開,可實現多個用戶加密的信息加密和解密能力分開,可實現多個用戶加密的信息只能由一個用戶解讀(多對一),或者一個用戶加密的只能由一個用戶解讀(多對一),或者一個用戶加密的信息可以由多個用戶解讀(一對多)。信息可以由多個用戶解讀(一對多)。 前者可以用于公共網絡中實現保密通信,后者可用前者可以用于公共網絡中實現保密通信,后者可用于認證系統中對信息進行數字簽名。由于該體制大大減于認證系統中對信息進行數字簽名。由于該體制大大減少了多用戶之間通信所需的密鑰數,方便了密鑰管理,少了多用戶之間通信所需的密鑰數,方便了密鑰管理,這種體制特別適合多用戶通信網絡。這種體制特別適合多用戶通信網絡。34公鑰體
25、制公鑰體制特點特點:大部分是分組密碼,只有概率密碼體制屬于大部分是分組密碼,只有概率密碼體制屬于流密碼流密碼 每次對一塊數據加密每次對一塊數據加密 數字簽名數字簽名, ,身份認證身份認證 RSA,ECC,ElGamalRSA,ECC,ElGamal 加密解密速度慢加密解密速度慢35 按照每次加密的數據量大小,可以分為流密碼體制和按照每次加密的數據量大小,可以分為流密碼體制和分組密碼體制。分組密碼體制。流密碼流密碼(stream cipher) : 又稱又稱序列密碼序列密碼.序列密碼每次加密一位或一字節的明序列密碼每次加密一位或一字節的明文。即文。即對明文按字符逐位加密對明文按字符逐位加密分分組
26、密碼組密碼(block cipher): 將明文分成固定長度的組,用同一密鑰和算法對每將明文分成固定長度的組,用同一密鑰和算法對每一塊加密,輸出也是固定長度的密文。一塊加密,輸出也是固定長度的密文。 36分組密碼的一般設計原理分組密碼的一般設計原理v分組密碼是將明文消息編碼表示后的數字(簡分組密碼是將明文消息編碼表示后的數字(簡稱明文數字)序列,劃分成長度為稱明文數字)序列,劃分成長度為n n的組(可的組(可看成長度為看成長度為n n的矢量),每組分別在密鑰的控的矢量),每組分別在密鑰的控制下變換成等長的輸出數字(簡稱密文數字)制下變換成等長的輸出數字(簡稱密文數字)序列,序列, 37 幾個概
27、念:幾個概念: 1 1)沒有一種密碼系統是無懈可擊的,僅僅是)沒有一種密碼系統是無懈可擊的,僅僅是 一個時間一個時間/ /空間復雜性問題。空間復雜性問題。 2 2)有多種密碼體制,每一種體制又派生出多)有多種密碼體制,每一種體制又派生出多 種算法,需要針對性折衷。種算法,需要針對性折衷。 3 3)加密程度可以根據應用安全的級別來定,)加密程度可以根據應用安全的級別來定, 一個系統可以有多種加密方式。一個系統可以有多種加密方式。 4 4)加密程度越高,算法越復雜,會降低系統)加密程度越高,算法越復雜,會降低系統 性能,需要實際性折衷。性能,需要實際性折衷。381)有很多)有很多密碼密碼體系體系,
28、各自產生的背景不同,各自產生的背景不同, 要要 了解他們各自適合的領域和范圍。了解他們各自適合的領域和范圍。2)每一種密碼體系都有其優勢和不足,揚)每一種密碼體系都有其優勢和不足,揚 長避短。長避短。3)每種密碼體系算法是公開的,需要用的)每種密碼體系算法是公開的,需要用的 時候可以知道到什么地方去查找這種標時候可以知道到什么地方去查找這種標 準化文本?知道如何使用。準化文本?知道如何使用。4)了解如何使用加密、解密工具。)了解如何使用加密、解密工具。如何對待密碼體系?如何對待密碼體系?39如何對待密碼體系?如何對待密碼體系?5)了解其如何產生?解決什么問題?優勢)了解其如何產生?解決什么問題
29、?優勢 和不足在哪里?還有什么問題沒有解決?和不足在哪里?還有什么問題沒有解決? 我們能不能解決?怎樣解決?我們能不能解決?怎樣解決?6)我們能夠做的事:)我們能夠做的事: 改進已有的算法,加深加密深度,提高加解改進已有的算法,加深加密深度,提高加解密速度,增強應用靈活性,檢測和評估加解密的密速度,增強應用靈活性,檢測和評估加解密的程度,發明新的加密解密算法和硬件。程度,發明新的加密解密算法和硬件。40 在所有分組密碼中,數據加密標準(在所有分組密碼中,數據加密標準(DES)可謂是)可謂是最著名的了。最著名的了。 DES密碼是一種數據加密標準密碼是一種數據加密標準,1977年正式公布,年正式公
30、布,供非機要部門的保密通信使用,是唯一由美國政府頒布供非機要部門的保密通信使用,是唯一由美國政府頒布的公開加密算法。的公開加密算法。 DES密碼在過去密碼在過去20年被正式作為國際標準采用,但年被正式作為國際標準采用,但業界認為其業界認為其56位密鑰太短,而且其基本設計原理,如各位密鑰太短,而且其基本設計原理,如各種不同排列選擇、置換、疊代次數等沒有清楚的說明,種不同排列選擇、置換、疊代次數等沒有清楚的說明,存在系統隱蔽陷阱的可能。存在系統隱蔽陷阱的可能。DESDES數據加密標準(數據加密標準(Data Encryption StandardData Encryption Standard)4
31、1 DES DES是一種對二進制數據進行加密的算法。數據是一種對二進制數據進行加密的算法。數據分組長為分組長為6464位,密鑰長也為位,密鑰長也為6464位。使用位。使用6464位密鑰對位密鑰對6464位的數據塊進行加密,并對位的數據塊進行加密,并對6464位的數據塊進行位的數據塊進行1616輪編輪編碼。經過碼。經過1616輪的迭代、乘積變換、壓縮變換等,輸出輪的迭代、乘積變換、壓縮變換等,輸出密文也為密文也為 6464位。位。DESDES算法的安全性完全依賴于其所用算法的安全性完全依賴于其所用的密鑰。的密鑰。42 目前,目前,DESDES密碼體制已經從密碼體制已經從5656位單一位單一DES
32、,DES,發展為發展為112112位的位的Double DESDouble DES,以及,以及Triple DESTriple DES和更多重的和更多重的DESDES,使加密程度和密碼本身安全性得以大大提高,使加密程度和密碼本身安全性得以大大提高。 43明文明文64 bit碼碼初始變換初始變換輪乘積變換輪乘積變換逆初始變換逆初始變換密文密文bit碼碼輸出輸出算法:算法:44輸入64位比特明文IP置換表L0R0Li = Ri-1 Ri = Lif(Ri-1,Ki)(i=1,2,16)迭代16次IP逆置換表輸出64位比特密文從圖中可以看出,從圖中可以看出,DES加密需要四個關鍵點:加密需要四個關鍵
33、點:1、IP置換表和置換表和IP-1逆置換逆置換表。表。2、函數、函數f。3、子密、子密鑰鑰Ki。4、S盒的工作原盒的工作原理。理。45 初始變換將初始變換將6464位數據按下表變換(位數據按下表變換(IPIP) 取得取得6464位的數據,如果數據長度不足位的數據,如果數據長度不足6464位,應該將其位,應該將其擴展為擴展為6464位(例如補零)位(例如補零)Initial Permutation (IP)Initial Permutation (IP)58 50 42 34 26 18 10 258 50 42 34 26 18 10 260 52 44 36 28 20 12 460 52
34、 44 36 28 20 12 462 54 46 38 30 22 14 662 54 46 38 30 22 14 664 56 48 40 32 24 16 864 56 48 40 32 24 16 857 49 41 33 25 17 9 157 49 41 33 25 17 9 159 51 43 35 27 19 11 359 51 43 35 27 19 11 361 53 45 37 29 21 13 561 53 45 37 29 21 13 563 55 47 39 31 23 15 763 55 47 39 31 23 15 746將輸入的第將輸入的第5858位換到第位
35、換到第1 1位,位,第第5050位換到第位換到第2 2位,位,.,依此類推,最后一位是原來的第依此類推,最后一位是原來的第7 7位。位。L0L0、R0R0則是換位輸出后的兩部分,則是換位輸出后的兩部分,L0L0是輸出的左是輸出的左3232位,位,R0 R0 是右是右3232位,位,例:設置換前的輸入值為例:設置換前的輸入值為D1D2D3.D64D1D2D3.D64,則經過,則經過初始置換后的結果為:初始置換后的結果為:L0=D58D50.D8L0=D58D50.D8; R0=D57D49.D7R0=D57D49.D7。47v進行進行1616輪迭代運算輪迭代運算 每輪都經過每輪都經過5 5步:密
36、鑰變換、擴展置換、步:密鑰變換、擴展置換、S S盒替換、盒替換、P P盒替換以及異或與交換。盒替換以及異或與交換。(1 1)密鑰變換(生成每輪的子密鑰)密鑰變換(生成每輪的子密鑰)48v取得取得6464位的密鑰,每個第位的密鑰,每個第8 8位作為奇偶校驗位。位作為奇偶校驗位。v舍棄舍棄6464位密鑰中的奇偶校驗位,根據下表(位密鑰中的奇偶校驗位,根據下表(PC-1PC-1)進行密鑰變換得到進行密鑰變換得到5656位的密鑰,在變換中,奇偶校位的密鑰,在變換中,奇偶校驗位已被舍棄。驗位已被舍棄。 49Permuted Choice 1 (PC-1)Permuted Choice 1 (PC-1)5
37、7 49 41 33 25 17 9 1 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 258 50 42 34 26 18 10 259 51 43 35 27 19 11 3 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 429 21
38、13 5 28 20 12 450將變換后的密鑰分為兩個部分將變換后的密鑰分為兩個部分: : 開始的開始的2828位稱為位稱為C0C0, 最后的最后的2828位稱為位稱為D0D0。51v同時將同時將CICI、DIDI左移左移1 1位或位或2 2位,根據位,根據I I值決定循值決定循環左移的位數。見下表環左移的位數。見下表vI I: v1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16v左移位數:左移位數: v1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 11 1 2 2 2 2
39、2 2 1 2 2 2 2 2 2 152將將CIDICIDI作為一個整體按下表(作為一個整體按下表(PC-2PC-2)變換,得到)變換,得到4848位的位的KIKI ( (去掉去掉9 9、1818、2222、2525、3535、3838、4343、54)54)Permuted Choice 2 (PC-2)Permuted Choice 2 (PC-2)14 17 11 24 1 5 3 28 15 6 21 1014 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 8 16 7 27 20 13 223 19 12 4 26 8 16 7 27 20 1
40、3 241 52 31 37 47 55 30 40 51 45 33 4841 52 31 37 47 55 30 40 51 45 33 4844 49 39 56 34 53 46 42 50 36 29 3244 49 39 56 34 53 46 42 50 36 29 3253v進行進行1616輪迭代運算輪迭代運算 每輪都經過每輪都經過5 5步:密鑰變換、步:密鑰變換、擴展置換擴展置換、S S盒替盒替換、換、P P盒替換以及異或與交換。盒替換以及異或與交換。54方法:選擇運算方法:選擇運算 將將3232位的位的RIRI按下表(按下表(E E)擴展為)擴展為4848位,輸入位,輸入3
41、232位數位數據,產生據,產生4848位輸出然后將位輸出然后將4848位子密鑰和位子密鑰和4848位的右明文位的右明文進行異或運算,將結果送入下一步。進行異或運算,將結果送入下一步。Expansion (E)Expansion (E)32 32 1 2 1 2 3 3 4 4 5 5 4 4 5 5 6 6 7 7 8 98 98 8 9 10 9 10 1111 12 13 1212 13 121313 1414 1515 16 1716 171616 1717 1818 1919 2020 21 20 21 20 2121 22 22 23 23 24 24 25252424 2525 2
42、626 2727 2828 29 28 29 28 2929 30 30 3131 32 32 1 1(2 2)擴展置換(對右明文)擴展置換(對右明文R R(I I)55輸入64位比特明文IP置換表L0R0Li = Ri-1 Ri = Lif(Ri-1,Ki)(i=1,2,16)迭代16次IP逆置換表輸出64位比特密文從圖中可以看出,從圖中可以看出,DES加密需要四個關鍵點:加密需要四個關鍵點:1、IP置換表和置換表和IP-1逆置換逆置換表。表。2、函數、函數f。3、子密、子密鑰鑰Ki。4、S盒的工作原盒的工作原理。理。56v進行進行1616輪迭代運算輪迭代運算 每輪都經過每輪都經過5 5步:
43、密鑰變換、擴展置換、步:密鑰變換、擴展置換、S S盒替盒替換換、P P盒替換以及異或與交換。盒替換以及異或與交換。57(3) S(3) S盒替換(核心部分)盒替換(核心部分)vS1S1、S2S2.S8.S8為選擇函數,其功能是將為選擇函數,其功能是將bitbit數據變數據變為為bit bit 數據數據 設設S S盒的盒的6 6位輸入為位輸入為b b1 1b b2 2b b3 3b b4 4b b5 5b b6 6, ,取取b b1 1b b6 6作為行數,作為行數,取取b b2 2b b3 3b b4 4b b5 5作為列數,交叉處的數字為輸出。作為列數,交叉處的數字為輸出。如:如:S1S1盒
44、中,若輸入為盒中,若輸入為101000,101000,那么輸出為第二行第那么輸出為第二行第四列的數字四列的數字4 4,用二進制表示就是,用二進制表示就是0100.0100.58S1S1盒盒14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 714 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 80 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 04 1 14 8 13 6 2 11 15
45、 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 1315 12 8 2 4 9 1 7 5 11 3 14 10 0 6 1359S2S215 1 8 14 6 11 3 4 9 7 2 13 12 0 5 1015 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 53 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 150 14 7 11 10 4 13 1
46、 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 913 8 10 1 3 15 4 2 11 6 7 12 0 5 14 960S3S310 0 9 14 6 3 15 5 1 13 12 7 11 4 2 810 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 713 6 4 9 8 15 3 0
47、 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 121 10 13 0 6 9 8 7 4 15 14 3 11 5 2 1261S4S47 13 14 3 0 6 9 10 1 2 8 5 11 12 4 157 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 913 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 410 6 9 0 12 11
48、7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 143 15 0 6 10 1 13 8 9 4 5 11 12 7 2 1462v63S8S813 2 8 4 6 15 11 1 10 9 3 14 5 0 12 713 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 15 13 8 10 3 7 4 12 5 6 11 0 14 9 21 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 87 11 4 1 9
49、 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 112 1 14 7 4 10 8 13 15 12 9 0 3 5 6 1164例:以為例說明例:以為例說明v在中,共有行數據,、在中,共有行數據,、v每行有列,、每行有列,、1414、1515列列v現輸入現輸入101100101100, 則行則行=10=10,列,列=0110=0110,坐標為(,坐標為(2 2,6 6)查表查表S1S1為為2 2,以,以4 4位二進制表示為:位二進制表示為:0010001065v進行進行1616輪迭代運算輪迭代運算 每輪都經過每輪都經
50、過5 5步:密鑰變換、擴展置換、步:密鑰變換、擴展置換、S S盒替盒替換、換、P P盒替換盒替換以及異或與交換。以及異或與交換。66(4 4)P P盒置換盒置換對對8 8個個S S盒的共盒的共3232位輸出按下表(位輸出按下表(P P)變換)變換. .16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 1016 7 20 21 29 12 28 17 1 15 23 26 5 18 31 102 8 24 14 32 27 3 9 19 13 30 6 22 11 4 252 8 24 14 32 27 3 9 19 13 30 6 22 11 4 2567v進
51、行進行1616輪迭代運算輪迭代運算 每輪都經過每輪都經過5 5步:密鑰變換、擴展置換、步:密鑰變換、擴展置換、S S盒替盒替換、換、P P盒替換以及盒替換以及異或與交換異或與交換。68(5)(5)異或和交換(每輪輸出)異或和交換(每輪輸出)v將左明文將左明文L0L0同第四步的結果進行異或運算形成新明同第四步的結果進行異或運算形成新明文(下輪的)文(下輪的)R1R1,將右明文,將右明文R0R0作為下輪的作為下輪的L1L1。 v如此反復,進行如此反復,進行1616輪的迭代。輪的迭代。 RI=P XOR LI-1 RI=P XOR LI-1。 LI=RI-1 LI=RI-1 得到得到R16R16和和
52、L16L16。69輸入64位比特明文IP置換表L0R0Li = Ri-1 Ri = Lif(Ri-1,Ki)(i=1,2,16)迭代16次IP逆置換表輸出64位比特密文從圖中可以看出,從圖中可以看出,DES加密需要四個關鍵點:加密需要四個關鍵點:1、IP置換表和置換表和IP-1逆置換逆置換表。表。2、函數、函數f。3、子密、子密鑰鑰Ki。4、S盒的工作原盒的工作原理。理。703 3 最后置換最后置換 IPIP-1-1v組合變換后的組合變換后的R16L16R16L16,按下表進行最后置換得到最終密文,按下表進行最后置換得到最終密文40 8 48 16 56 24 64 32 39 7 47 15
53、 55 23 63 3140 8 48 16 56 24 64 32 39 7 47 15 55 23 63 3138 6 46 14 54 22 62 30 37 5 45 13 53 21 61 2938 6 46 14 54 22 62 30 37 5 45 13 53 21 61 2936 4 44 12 52 20 60 28 35 3 43 11 51 19 59 2736 4 44 12 52 20 60 28 35 3 43 11 51 19 59 2734 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 34 2 42 10 50 18 5
54、8 26 33 1 41 9 49 17 57 25 71 DESDES的解密過程與加密過程幾乎一樣,唯一不的解密過程與加密過程幾乎一樣,唯一不同的是子密鑰的使用順序,正好相反。同的是子密鑰的使用順序,正好相反。 加密過程中子密鑰的使用順序是加密過程中子密鑰的使用順序是K1,K2K1,K2,K16K16,而在解密過程中子密鑰的使用順序是,而在解密過程中子密鑰的使用順序是K16K16,k15,K1k15,K1。72 DESDES用軟件進行解碼需要用很長時間,而用硬件用軟件進行解碼需要用很長時間,而用硬件解碼速度非常快,但幸運的是當時大多數黑客并沒解碼速度非常快,但幸運的是當時大多數黑客并沒有足夠
55、的設備制造出這種硬件設備。有足夠的設備制造出這種硬件設備。 在在19771977年,人們估計要耗資兩千萬美元才能年,人們估計要耗資兩千萬美元才能建成一個專門計算機用于建成一個專門計算機用于DESDES的解密,而且需要的解密,而且需要1212個個小時的破解才能得到結果。所以,當時小時的破解才能得到結果。所以,當時DESDES被認為是被認為是一種十分強壯的加密方法。一種十分強壯的加密方法。73 19971997年開始,年開始,RSARSA公司發起了一個稱作公司發起了一個稱作“向向DESDES挑挑戰戰”的競技賽。的競技賽。19971997年年1 1月,用了月,用了9696天時間,成功地天時間,成功地
56、破解了用破解了用DESDES加密的一段信息;加密的一段信息; 一年之后,在第二屆賽事上,這一記錄一年之后,在第二屆賽事上,這一記錄4141天天 ;19981998年年7 7月,月,“第第2-22-2屆屆DESDES挑戰賽(挑戰賽(DES Challenge DES Challenge II-2II-2)” ” 把破解把破解DESDES的時間縮短到了只需的時間縮短到了只需5656個小時;個小時; “ “第三屆第三屆DESDES挑戰賽(挑戰賽(DES Challenge IIIDES Challenge III)”把破解把破解DESDES的時間縮短到了只需的時間縮短到了只需22.522.5小時小時
57、 。74lDDESDDES 解決其密鑰長度問題的方法,即采用二重解決其密鑰長度問題的方法,即采用二重DESDES。這。這種方法用兩個密鑰對明文進行二次加密。種方法用兩個密鑰對明文進行二次加密。 假設兩個密鑰是假設兩個密鑰是K1K1和和K2K2,其算法的步驟:,其算法的步驟:1. 1. 用密鑰用密鑰K1K1進行進行DESDES加密。加密。2. 2. 用用K2K2對步驟對步驟1 1的結果進行的結果進行DESDES加密。加密。 解密正好相反解密正好相反優點:優點:112112位密鑰長度,很位密鑰長度,很“強壯強壯”的加密方式的加密方式缺點:花費原來二倍時間缺點:花費原來二倍時間75lTDES TDE
58、S 解決其密鑰長度問題的方法,即采用三重解決其密鑰長度問題的方法,即采用三重DESDES。這。這種方法用兩個密鑰對明文進行三次加密,假設兩個密種方法用兩個密鑰對明文進行三次加密,假設兩個密鑰是鑰是K1K1和和K2K2,其算法的步驟:,其算法的步驟:1. 1. 用密鑰用密鑰K1K1進行進行DESDES加密。加密。2. 2. 用用K2K2對步驟對步驟1 1的結果進行的結果進行DESDES解密。解密。 3. 3. 對步驟對步驟2 2的結果使用密鑰的結果使用密鑰K1K1進行進行DESDES加密加密優點:優點:112112位密鑰長度,很位密鑰長度,很“強壯強壯”的加密方式的加密方式缺點:花費原來三倍時間
59、缺點:花費原來三倍時間7677IDEAIDEA密碼算法密碼算法(International Data (International Data Encryption Algorithm) Encryption Algorithm) IDEA IDEA是以是以64-bit64-bit的明文塊進行分組,密鑰是的明文塊進行分組,密鑰是128-128-bitbit長。此算法可用于加密和解密。長。此算法可用于加密和解密。IDEAIDEA用了混亂和用了混亂和擴散等操作,算法背后的設計思想是擴散等操作,算法背后的設計思想是“在不同的代數在不同的代數組中的混合運算組中的混合運算”。主要有三種運算:異或、模加、。
60、主要有三種運算:異或、模加、模乘,容易用軟件和硬件來實現。模乘,容易用軟件和硬件來實現。IDEAIDEA的速度:現在的速度:現在IDEAIDEA的軟件實現同的軟件實現同DESDES的速度一樣的速度一樣塊。塊。78其它密碼算法其它密碼算法 隨著現代計算機能力的飛速發展,人們感覺到:隨著現代計算機能力的飛速發展,人們感覺到:密鑰長度是密鑰長度是5656位的位的在強大的計算能力攻勢下已在強大的計算能力攻勢下已經不夠安全。經不夠安全。高級加密標準高級加密標準(,),采用采用128位密鑰和位密鑰和128位的分組長度。位的分組長度。,等。,等。792.4 2.4 非對稱密碼體制(公鑰體制)非對稱密碼體制(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽預制疊合板施工方案
- 周口師范學院《土木工程施工組織》2023-2024學年第二學期期末試卷
- 榆林學院《翻譯技術》2023-2024學年第一學期期末試卷
- 閩南科技學院《物聯網技術及應用》2023-2024學年第二學期期末試卷
- 揚州市職業大學《生物力學》2023-2024學年第二學期期末試卷
- 農場項目定位方案范本
- 上海現代化工職業學院《中級阿拉伯語》2023-2024學年第一學期期末試卷
- 安裝小區單元門施工方案
- 2025至2031年中國方形橡膠隔振器行業投資前景及策略咨詢研究報告
- 2025租房合同附加協議列表
- 寧夏三支一扶考試試題及答案
- 特種設備作業人員考試機構規范管理辦法(含附件附表 )
- 環境有害物質管理辦法
- 基于PLC的溫室大棚控制系統設計
- 動物免疫學第五章細胞因子
- 新版防雷檢測職業技能競賽綜合知識試題庫(精簡500題)
- 2023年新華人壽保險股份有限公司招聘筆試題庫及答案解析
- GB/T 3452.1-2005液壓氣動用O形橡膠密封圈第1部分:尺寸系列及公差
- GB/T 23641-2018電氣用纖維增強不飽和聚酯模塑料(SMC/BMC)
- 新版《FMEA(第五版)》學習筆記(完整版)
- 裝配式建筑施工組織設計(修改)
評論
0/150
提交評論