46
© The McGraw-Hill Companies, Inc., 2007 秘秘秘秘秘秘秘秘 (Secret Key Cryptosyst ems)

© The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

  • View
    234

  • Download
    0

Embed Size (px)

Citation preview

Page 1: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

© The McGraw-Hill Companies, Inc., 2007

秘密金鑰密碼系統(Secret Key Cryptosystems)

Page 2: © 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 密碼系統

Page 3: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

3

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

5.1 前言

• 透過網路來傳遞機密資訊,很容易就被竊聽。因此,對於機密資料存入於磁碟、備援磁帶、或傳遞網路前,應先加密成密文,使一般未經授權人員不能得知其內容。

Page 4: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

4

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

5.2 密碼學基本概念

基本的加解密系統基本的加解密系統

Page 5: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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 古代密碼系統

Page 6: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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)

以其他文字取代明文中的每一個字

Page 7: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

7

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

M=COMPUTER ( 明文 )

C=DXIJSRAW ( 密文 )

Ex:Ex:

( 簡單替換法加密 )

M C 為一對一之對應關係 M C 為一對一之對應關係

簡單替代法

Page 8: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

8

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

編碼法隨機編碼本範例

『資訊管理系』:

1232 3661 4538

編碼本範例

『資訊管理系』:

14 02 26 63 45 28

Page 9: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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 ( 密文 )

( 同音異字法加密 )

同音異字替代法

Page 10: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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

多字母替代法

Page 11: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

11

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

http://www.math.ncu.edu.tw/~jovice/c++/93exams/a7.html

Page 12: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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 。

多圖替代法

Page 13: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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 ( 密文 )

( 多圖替代法加密 )

多圖替代法(續)

Page 14: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

14

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

5.4 古代密碼系統之破解法• 窮舉法 (Exhaustive Attack)

- 將所有可能的情況均嘗試一遍,直到找出正確的解密方式為止。

• 統計法 (Statistics Attack)- 利用一些統計資料來協助破解密碼,例如以字母出現的頻率。

- EX. 『 A 、 E 、 I 、 O 、 U 』出現頻率比『 Q 、 X 、 Z 』的出現頻率高出許多。

Page 15: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

15

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

• 傳統數據保密技術並不能保證系統的安全,而且應用上也受到相當大之限制,比如中文系統就很難用換位法以達到保密效果,試想將「今天我不回家」之明文換位置成「回不天家我今」之密文,該密文一看就可重組成明文而不需藉其他工具來破解,所以我們需要使用一些以「位元」為處理單位的加密系統。

5.5 近代密碼系統

Page 16: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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)

Page 17: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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)

Page 18: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

18

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

DES 加解密架構

Page 19: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

19

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

DES 之回合金鑰產生運算過程

Page 20: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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回合金鑰的產生

Page 21: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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)

Page 22: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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)]

Page 23: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

23

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

再經過壓縮排列後 (CP)後,就可得到第一回合的回合金鑰 K1 :K1=[ 00101101 11011000 11001110 00110111 01111111 01000000]

其餘各回合的回合金鑰可依序用類似的方法求得

DES回合金鑰的產生(續)

Page 24: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

24

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007© The McGraw-Hill Companies, Inc., 2005

Page 25: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

25

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

DES 的加密流程

Page 26: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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]

Page 27: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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 )

Page 28: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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

Page 29: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

29

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

DES 之 f()函數運算過程

Page 30: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

30

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

DES 擴增排列表

Page 31: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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)

Page 32: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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 個位元

Page 33: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

33

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007© The McGraw-Hill Companies, Inc., 2005© The McGraw-Hill Companies, Inc., 2005

DES 加密法 P-BOX 及最後排列表P-BOX

最後排列表

Page 34: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

34

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

DES 加密法 - 例子經過第一回合加密運算,所產生的密文為:[00000000 11111111 10100000 00010101 10011010 00100110 00100111 00100100]

接下來各回合所產生的密文如右邊之表格

Page 35: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

35

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

DES 解密法DES 解密過程與加密過程類似,僅將:

改成

Page 36: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

36

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

DES 的解密過程

Page 37: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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 秘密金鑰密碼系統加密模式

Page 38: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

38

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

ECB Mode - Encryption

密文區塊 i = 加密 (明文區塊 i)密文區塊 i = 加密 (明文區塊 i)

坦克借了我坦克借了我 1010 萬元萬元我借了坦克我借了坦克 1010萬萬元元

優點優點 : : 可以平行處理可以平行處理缺點缺點 : : 相同明文產生相同密相同明文產生相同密文,內容可被剪貼替換文,內容可被剪貼替換

Page 39: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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)

Page 40: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

40

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

CBC Mode - Encryption

密文區塊 1 =加密 (明文區塊 1 ♁ IV)密文區塊 i =加密 (明文區塊 i ♁ 密文區塊 i-1 )密文區塊 1 =加密 (明文區塊 1 ♁ IV)密文區塊 i =加密 (明文區塊 i ♁ 密文區塊 i-1 )

Page 41: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

41

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

CBCBCC Mode - Mode - DecryptionDecryption

優點 : 相同明文可以產生不相同密文,不會有剪貼替換問題缺點 : 不能平行處理;一個位元錯,之後全錯優點 : 相同明文可以產生不相同密文,不會有剪貼替換問題缺點 : 不能平行處理;一個位元錯,之後全錯

Page 42: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

42

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

CFB Mode - Encryption

密文區塊 1 =明文區塊 1 ♁ 加密 (IV)密文區塊 i =加密 (密文區塊 i-1) ♁ 明文區塊 i

密文區塊 1 =明文區塊 1 ♁ 加密 (IV)密文區塊 i =加密 (密文區塊 i-1) ♁ 明文區塊 i

Page 43: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

43

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

CFB Mode - Decryption

優點 : 一個密文區塊錯誤僅影響目前區塊及下一個區塊;加密區塊長度可變動

缺點 : 不能平行處理

優點 : 一個密文區塊錯誤僅影響目前區塊及下一個區塊;加密區塊長度可變動

缺點 : 不能平行處理

Page 44: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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

Page 45: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

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類似,不過一個密文區塊錯誤僅影響目前區塊並不會影響下一個區塊;加密區塊長度也可變動。缺點 : 不能平行處理

Page 46: © The McGraw-Hill Companies, Inc., 2007 秘密金鑰密碼系統 (Secret Key Cryptosystems)

46

秘密金鑰密碼系統

© The McGraw-Hill Companies, Inc., 2007

5.8 三重 DES 密碼系統( Triple DES )

Triple DES 加密架構 Triple DES 加密架構

EEE3, EDE3, EEE2, EDE2, EEE3, EDE3, EEE2, EDE2,