© the mcgraw-hill companies, inc., 2007 秘密金鑰密碼系統 (secret key cryptosystems)
Post on 22-Dec-2015
234 views
TRANSCRIPT
© The McGraw-Hill Companies, Inc., 2007
秘密金鑰密碼系統(Secret Key Cryptosystems)
2
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
本章內容
5.1 前言5.2 密碼學基本概念5.3 古代密碼系統5.4 古代密碼系統之破解法5.5 近代密碼系統5.6 DES 密碼系統演算法5.7 秘密金鑰密碼系統加密模式5.8 三重 DES 密碼系統
3
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
5.1 前言
• 透過網路來傳遞機密資訊,很容易就被竊聽。因此,對於機密資料存入於磁碟、備援磁帶、或傳遞網路前,應先加密成密文,使一般未經授權人員不能得知其內容。
4
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
5.2 密碼學基本概念
基本的加解密系統基本的加解密系統
5
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
換位法 (Transposition Cipher)
將明文調換位置使別人不容易一眼看穿
Ex: Xk(1,2,3,4,5,6,7)=(4,3,7,1,8,5,2,6)
換位法 (Transposition Cipher)
將明文調換位置使別人不容易一眼看穿
Ex: Xk(1,2,3,4,5,6,7)=(4,3,7,1,8,5,2,6)
傳統加密法與解密法分為下面兩種 : 換位與置換
COMPUTER → PMECRUOTCOMPUTER → PMECRUOT
5.3 古代密碼系統
6
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
1.簡單替代法 (Simple Substitution)
2.編碼法 (Code Book)
3.同音異字替代法 (Homophonic Substitution)
4.多字母替代法 (Polyalphabetic Substitution)
5.多圖替代法 (Polygram Substitution)
古代密碼系統 ( 續 )
代換法 (Substitution Cipher)
以其他文字取代明文中的每一個字
代換法 (Substitution Cipher)
以其他文字取代明文中的每一個字
7
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
M=COMPUTER ( 明文 )
C=DXIJSRAW ( 密文 )
Ex:Ex:
( 簡單替換法加密 )
M C 為一對一之對應關係 M C 為一對一之對應關係
簡單替代法
8
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
編碼法隨機編碼本範例
『資訊管理系』:
1232 3661 4538
編碼本範例
『資訊管理系』:
14 02 26 63 45 28
9
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
將明文每個字母以一組數中的任ㄧ個來替代 將明文每個字母以一組數中的任ㄧ個來替代 字母 同音異字
C 07,11,70,83
E 04,17,33
M 01,13,19,20
O 02,06,61,92
P 08,18,21,38
R 10,81
T 05,16,50,63
U 03,09,14,15,43,47
M=COMPUTER ( 明文 )
C= 11 61 19 08 14 16 17 81 ( 密文 )
( 同音異字法加密 )
同音異字替代法
10
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
將最常見的為 Vigenere 加密法,以數學式子表示
XK( M )=( M + Ki ) mod n
將最常見的為 Vigenere 加密法,以數學式子表示
XK( M )=( M + Ki ) mod n M=COMPUTER ( 明文 )
XK( M ) =NCHTFHZV ( 密文 )
( 多字母替代法加密 )
K=LOVELOVE
多字母替代法
11
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
http://www.math.ncu.edu.tw/~jovice/c++/93exams/a7.html
12
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
多圖替代法其基本觀念是將一組字母一起加密,其基本精神是將每一對之明文之字母 m1,m2 一起加密成密文字母 c1,c2 。如 Playfair 密碼法其規則如下:
多圖替代法其基本觀念是將一組字母一起加密,其基本精神是將每一對之明文之字母 m1,m2 一起加密成密文字母 c1,c2 。如 Playfair 密碼法其規則如下:1. 若 m1 和 m2 在同一列,則 c1 和 c2 分別為其右邊之字
母,其中最右一行之字母的右邊為第一行之字母。2. 若 m1 和 m2 在同一行,則 c1 和 c2 分別為其下方字母,
其中最下一列之字母的下方為第一列之字母。3. 若 m1 和 m2 不同行和列,則 c1 和 c2 為其相對應之方
形邊角,其中 c1 與 m1 同列。4. 若 m1=m2 ,則將一空字母(設為 x )加在 m1 及 m2 之
間,使不成為連續相同字母。5. 若明文之字串長度為奇數則在尾端加一空字串 x 。
多圖替代法
13
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
H A R P S
I C O D B
E F G K L
M N Q T U
V W X Y Z
Playfair 加密法金鑰表Playfair 加密法金鑰表
M=CO MP UT ER ( 明文 )
C=OD HT MU HG ( 密文 )
( 多圖替代法加密 )
多圖替代法(續)
14
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
5.4 古代密碼系統之破解法• 窮舉法 (Exhaustive Attack)
- 將所有可能的情況均嘗試一遍,直到找出正確的解密方式為止。
• 統計法 (Statistics Attack)- 利用一些統計資料來協助破解密碼,例如以字母出現的頻率。
- EX. 『 A 、 E 、 I 、 O 、 U 』出現頻率比『 Q 、 X 、 Z 』的出現頻率高出許多。
15
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
• 傳統數據保密技術並不能保證系統的安全,而且應用上也受到相當大之限制,比如中文系統就很難用換位法以達到保密效果,試想將「今天我不回家」之明文換位置成「回不天家我今」之密文,該密文一看就可重組成明文而不需藉其他工具來破解,所以我們需要使用一些以「位元」為處理單位的加密系統。
5.5 近代密碼系統
16
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
5.6 DES 加密系統
• 對稱式加密系統之代表 • 1970 年代中期由 IBM 公司所發展 • 美國國家標準局公佈為資料加密標準的一種區
塊加密法 (Block Cipher) (key: 12864 = 56+8)• DES 屬於區塊加密法,而區塊加密法就是對
一定大小的明文或密文來做加密或解密動作• 每次加密解密的區塊大小均為 64 位元 (Bits)
◎ DES (Data Encryption Standard)
17
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 加密系統(續)
• 就一般資料而言,資料通常大於 64 位元。只要將明 / 密文中每 64 位元當作一個區塊加以切割,再將每個區塊做加密或解密即可。
• 最後一個區塊大小可能小於 64 位元,此時就要將此區塊附加 “ 0” 位元,直到區塊大小成為 64 位元為止。
• DES 所用加密或解密金鑰也是 64 位元大小。但其中有 8 個位元是用來做錯誤更正,真正的金鑰有效長度只有 56 位元。
• 3-DES: 56*3 = 168 (or 56*2 = 112) (product cipher)3-DES: 56*3 = 168 (or 56*2 = 112) (product cipher)
◎ DES (Data Encryption Standard)
18
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 加解密架構
19
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 之回合金鑰產生運算過程
20
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
假設選定 [science] 作為秘密金鑰[science] 之 ASCII 編碼為: [ 73 63 69 65 6e 63 65]
一個字母需要 8 個位元來作編碼,所以 [science]其二進位表示法為:[(01110011) (01100011) (01101001) (01100101) (01101110) (01100011) (01100101)]共 56 個位元 (8-bits ㄧ組 )
[(0111001 )(1011000 )(1101101 )(0010110 )(0101011 )(0111001 ) (1000110 )(1100101 )] (7-bits ㄧ組 )
加入奇同位檢查碼後之結果如下 :[ (01110011) (10110000) (11011010) (00101100) (01010111) (01110011) (10001100) (11001011) ]共 64 個位元
DES回合金鑰的產生
21
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
再作初始金鑰排列 (KP) ,其結果如下:[(11000110) (10110101) (00101011) (00111011) (01010101) (10001100) (11000111)]
DES的金鑰排列表 -KP
DES回合金鑰的產生(續)(01110011) (10110000) (11011010) (00101100) (01010111) (01110011) (10001100) (11001011)
22
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 的左移位數表
接著,將排列後的結果分成兩半,分別為 KL0 及 KR0 ,它們的內容分別為:KL0=[11000110 10110101 00101011 0011]KR0=[10110101 01011000 11001100 0111]
向左循環一位元之後可分別得到:KL1=[10001101 01101010 01010110 0111]KR1=[01101010 10110001 10011000 1111]
[(11000110) (10110101) (00101011) (00111011) (01010101) (10001100) (11000111)]
23
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
再經過壓縮排列後 (CP)後,就可得到第一回合的回合金鑰 K1 :K1=[ 00101101 11011000 11001110 00110111 01111111 01000000]
其餘各回合的回合金鑰可依序用類似的方法求得
DES回合金鑰的產生(續)
24
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007© The McGraw-Hill Companies, Inc., 2005
25
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 的加密流程
26
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 加密法 - 例子假設要對 64位元的明文 [security]作加密
首先,明文 [security]的 ASCII編碼為: [73 65 63 75 72 69 74 79],轉換為二進位表示為:[01110011 01100101 01100011 01110101 01110010 01101001 01110100 01111001]
27
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
[01110011 01100101 01100011 01110101 01110010 01101001 01110100 01111001]
經過啟使排列 (IP)後的結果為:[11111111 11011001 01001010 10101111 L 00000000 11111111 10100000 00010101] R
DES 加密法 - 例子初始排列表( IP )
28
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
將重組後的結果分為 L 及 R 兩半L1 : 00000000 11111111 10100000 00010101 R1 : 10011010 00100110 00100111 00100100
DES DES 加密法加密法
作下列運算作下列運算
[11111111 11011001 01001010 10101111 L0 00000000 11111111 10100000 00010101] R0
29
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 之 f()函數運算過程
30
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 擴增排列表
31
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007© The McGraw-Hill Companies, Inc., 2005
DES 加密法 -S-BOX
EX. S-BOX5 (101011)
列索引 (11)=3
行索引 (0101)=5
查表對應值:
14(1110)
32
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007© The McGraw-Hill Companies, Inc., 2005
DES 加密法 -S-BOX (續)
EX. S-BOX5 (101011)
列索引 (11)=3
行索引 (0101)=5
查表對應值:
14(1110)
將做完互斥或運算的 48 位元資料分成八個區塊 (S-BOX) ,每個 (S-BOX) 內有 6 個位元
將做完互斥或運算的 48 位元資料分成八個區塊 (S-BOX) ,每個 (S-BOX) 內有 6 個位元
33
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007© The McGraw-Hill Companies, Inc., 2005© The McGraw-Hill Companies, Inc., 2005
DES 加密法 P-BOX 及最後排列表P-BOX
最後排列表
34
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 加密法 - 例子經過第一回合加密運算,所產生的密文為:[00000000 11111111 10100000 00010101 10011010 00100110 00100111 00100100]
接下來各回合所產生的密文如右邊之表格
35
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 解密法DES 解密過程與加密過程類似,僅將:
改成
36
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
DES 的解密過程
37
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
• ECB Mode (Electronic Code Book Mode) • CBC Mode (Cipher Block Chaining Mode) • CFB Mode (Cipher Feedback Mode) • OFB Mode (Output Feedback Mode)
• ECB Mode (Electronic Code Book Mode) • CBC Mode (Cipher Block Chaining Mode) • CFB Mode (Cipher Feedback Mode) • OFB Mode (Output Feedback Mode)
四種加密模式
5.7 秘密金鑰密碼系統加密模式
38
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
ECB Mode - Encryption
密文區塊 i = 加密 (明文區塊 i)密文區塊 i = 加密 (明文區塊 i)
坦克借了我坦克借了我 1010 萬元萬元我借了坦克我借了坦克 1010萬萬元元
優點優點 : : 可以平行處理可以平行處理缺點缺點 : : 相同明文產生相同密相同明文產生相同密文,內容可被剪貼替換文,內容可被剪貼替換
39
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
ECB Mode - Decryption
明文區塊 1明文區塊 1 明文區塊 i-1明文區塊 i-1 明文區塊 i明文區塊 i 明文區塊 n明文區塊 n
密文區塊 1密文區塊 1 密文區塊 i-1密文區塊 i-1 密文區塊 i密文區塊 i 密文區塊 n密文區塊 n
解密解密 解密解密 解密解密 解密解密……......
……......
……......
……......
……......
……......
明文區塊 i = 解密 (密文區塊 i)明文區塊 i = 解密 (密文區塊 i)
40
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
CBC Mode - Encryption
密文區塊 1 =加密 (明文區塊 1 ♁ IV)密文區塊 i =加密 (明文區塊 i ♁ 密文區塊 i-1 )密文區塊 1 =加密 (明文區塊 1 ♁ IV)密文區塊 i =加密 (明文區塊 i ♁ 密文區塊 i-1 )
41
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
CBCBCC Mode - Mode - DecryptionDecryption
優點 : 相同明文可以產生不相同密文,不會有剪貼替換問題缺點 : 不能平行處理;一個位元錯,之後全錯優點 : 相同明文可以產生不相同密文,不會有剪貼替換問題缺點 : 不能平行處理;一個位元錯,之後全錯
42
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
CFB Mode - Encryption
密文區塊 1 =明文區塊 1 ♁ 加密 (IV)密文區塊 i =加密 (密文區塊 i-1) ♁ 明文區塊 i
密文區塊 1 =明文區塊 1 ♁ 加密 (IV)密文區塊 i =加密 (密文區塊 i-1) ♁ 明文區塊 i
43
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
CFB Mode - Decryption
優點 : 一個密文區塊錯誤僅影響目前區塊及下一個區塊;加密區塊長度可變動
缺點 : 不能平行處理
優點 : 一個密文區塊錯誤僅影響目前區塊及下一個區塊;加密區塊長度可變動
缺點 : 不能平行處理
44
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
OFB Mode - Encryption
S0 =加密 ( IV ) Si =加密 ( Si-1 ) 密文區塊 i = Si ♁ 明文區塊 i
S0 =加密 ( IV ) Si =加密 ( Si-1 ) 密文區塊 i = Si ♁ 明文區塊 i
45
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
OFB Mode - Decryption
S0 =解密 ( IV ) Si =解密 ( Si-1 ) 明文區塊 i = Si ♁ 密文區塊 i
S0 =解密 ( IV ) Si =解密 ( Si-1 ) 明文區塊 i = Si ♁ 密文區塊 i
優點 : 與 CFB類似,不過一個密文區塊錯誤僅影響目前區塊並不會影響下一個區塊;加密區塊長度也可變動。缺點 : 不能平行處理
優點 : 與 CFB類似,不過一個密文區塊錯誤僅影響目前區塊並不會影響下一個區塊;加密區塊長度也可變動。缺點 : 不能平行處理
46
秘密金鑰密碼系統
© The McGraw-Hill Companies, Inc., 2007
5.8 三重 DES 密碼系統( Triple DES )
Triple DES 加密架構 Triple DES 加密架構
EEE3, EDE3, EEE2, EDE2, EEE3, EDE3, EEE2, EDE2,