38
Cryptography and Network Security Third Edition by William Stallings Lecture slides by Lawrie Brown

Cryptography and Network Security

  • Upload
    nakia

  • View
    44

  • Download
    6

Embed Size (px)

DESCRIPTION

Cryptography and Network Security. Third Edition by William Stallings Lecture slides by Lawrie Brown. 第二章 – 古典加密技術. 現今很多人都將自己的名字視為很重要的一部份,並且會花很大的功夫來隱藏自己的姓名,唯恐心術不正之輩用它來傷害自己。 — The Golden Bough, Sir James George Frazer. 對稱式加密. 或 傳統 / 私密鑰匙 / 單一鑰匙 傳送者與接收者共享一把鑰匙 所有的傳統加密演算法都是私密鑰匙加密法 - PowerPoint PPT Presentation

Citation preview

Page 1: Cryptography and Network Security

Cryptography and Network Security

Third Edition

by William Stallings

Lecture slides by Lawrie Brown

Page 2: Cryptography and Network Security

第二章 –古典加密技術

現今很多人都將自己的名字視為很重要的一部份,並且會花很大的功夫來隱藏自己的姓名,唯恐心術不正之輩用它來傷害自己。—The Golden Bough, Sir James George Frazer

Page 3: Cryptography and Network Security

對稱式加密• 或 傳統 / 私密鑰匙 / 單一鑰匙• 傳送者與接收者共享一把鑰匙• 所有的傳統加密演算法都是私密鑰匙加密

法• 在 1970 年代的公開鑰匙加密法發明之前,

這是唯一的加密方式

Page 4: Cryptography and Network Security

基本專有名詞• 明文 plaintext – 原始訊息 • 密文 ciphertext – 編碼過的訊息 • 加密 cipher – 將明文轉換為密文的演算法 • 鑰匙 key – 只有傳送者與接受者才知道的加密用資訊• 加密 encipher (encrypt) – 將明文轉為密文 • 解密 decipher (decrypt) – 將密文解開成明文• 密碼學 cryptography – 研究加密的原理與方法• 密碼破解 cryptanalysis (codebreaking) – 在不知道鑰

匙的情況下,研究破解密文的原理與方法• 密碼技術 cryptology – 整合密碼學與密碼破解這兩個領

Page 5: Cryptography and Network Security

對稱式加密模型

Page 6: Cryptography and Network Security

必要條件• 使用對稱式加密的兩個必要條件 :

– 一個強固的加密演算法– 只有傳送者與接收者才知道的一把秘密鑰匙

Y = EK(X)

X = DK(Y)

• 假設加密演算法是已知的• 意味著,需要一個分送鑰匙的安全管道

Page 7: Cryptography and Network Security

密碼學• 可依下列觀點來分類:

– 加密的方法• 取代 / 置換 / 前兩者混用

– 鑰匙個數• 單一鑰匙或私密鑰匙 / 雙鑰匙或公開鑰匙

– 明文的處理方式• 區段 / 資料流

Page 8: Cryptography and Network Security

密碼破解的方式• 只知道密文

– 只知道演算法與密文,利用統計方法來求出明文• 已知明文

– 藉由已知或推測的明文 - 密文組合來破解• 自選明文

– 藉由自選的明文與對應的密文來破解• 自選密文

– 藉由自選的密文與對應明文的來破解• 自選文字

– 藉由加密自選的明文或解開自選的密文來破解

Page 9: Cryptography and Network Security

暴力搜尋法• 理論上可以嘗試所有的鑰匙 • 最基本的破解法,所需成本與鑰匙大小成正比• 前提是,可以看懂或辨識明文

Page 10: Cryptography and Network Security

更多的定義• 絕對安全

– 不論具備多少計算能力都無法破解,因為密文本身提供的資訊不足以唯一決定其密文

• 計算上的安全 – 在計算能力有限的情況下(例如,計算所需的

時間比宇宙生成的時間還久),無法破解此密文

Page 11: Cryptography and Network Security

古典取代加密法• 將明文中的字元用其他的字元、數字或符

號來取代• 如果我們將明文視為一連串的字元,那麼

取代就是將明文的字元樣式代換成密文的字元樣式。

Page 12: Cryptography and Network Security

Caesar 加密法• 我們所知道最早的取代加密法• 由 Julius Caesar 所發展出來的 • 最早用在軍事單位• 將每個字母用其後的第三個字母來取代• 範例 :

meet me after the toga party

PHHW PH DIWHU WKH WRJD SDUWB

Page 13: Cryptography and Network Security

Caesar 加密法• 可將轉換方式定義如下 :

a b c d e f g h i j k l m n o p q r s t u v w x y zD E F G H I J K L M N O P Q R S T U V W X Y Z A B C

• 指定一個數字給每個字元a b c d e f g h i j k l m0 1 2 3 4 5 6 7 8 9 10 11 12n o p q r s t u v w x y Z13 14 15 16 17 18 19 20 21 22 23 24 25

• 則可將 Caesar 加密法定義如下 :C = E(p) = (p + k) mod (26)p = D(C) = (C – k) mod (26)

Page 14: Cryptography and Network Security

Caesar 加密法的破解方式 • 只有 26 種可能的加密方式

– A 對應到 A,B,..Z

• 可以逐一地測試 • 採用 暴力搜尋法 • 給定密文之後,只需測試所有可能的移位

距離• 當明文出現時,必須可以辨識出來• 例如,請破解密文 “ GCUA VQ DTGCM”

Page 15: Cryptography and Network Security

Monoalphabetic 加密法• 不只是單純對字元移位• 可以任意地弄亂字元• 每個明文字元都會隨機地對應到另一個密文字元• 因此,鑰匙的長度就是 26 個字元

明文 : abcdefghijklmnopqrstuvwxyz

密文 : DKVQFIBJWPESCXHTMYAUOLRGZN

明文 : ifwewishtoreplaceletters

密文 : WIRFRWAJUHYFTSDVFSFUUFYA

Page 16: Cryptography and Network Security

Monoalphabetic 加密法的安全性

• 現在共有 26! = 4 x 1026 把鑰匙• 有那麼多把鑰匙,該應該算是安全了• 但是這樣想是 !!! 錯的 !!!

• 問題出在語言本身的特性

Page 17: Cryptography and Network Security

語言的贅詞與密碼破解的關係• 人類的語言是充滿贅詞的• 例如 “ th lrd s m shphrd shll nt wnt” • 字元的使用頻率並不均等• 在英文中, e 的使用次數最高• 其次是 T,R,N,I,O,A,S • 其他字元其實很少用到• 例如 Z,J,K,Q,X • 單字元、雙字元以及三字元的出現頻率都已經有

現成的統計表格

Page 18: Cryptography and Network Security

英文字元的出現頻率

Page 19: Cryptography and Network Security

應用在密碼破解上• 關鍵概念 - monoalphabetic 取代加密法並不會改變字元間的相對出現頻率

• 阿拉伯科學家在九世紀時就已經發現這個破解法• 計算密文的字元出現頻率• 將結果與已知的頻率數值互相比對• 如果針對 Caesar 加密法的統計圖形來找尋波峰

與波谷– 波峰出現在 A-E-I 三字元 , NO 雙字元 , RST 三字元– 波谷出現在 : JK, X-Z

• 如果是針對 monoalphabetic 加密法,就必須逐一辨識每個字元– 常用的雙字元與三字元統計表格可以幫助我們來破解

Page 20: Cryptography and Network Security

破解範例• 給定密文 :

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ

• 計算字元相對頻率 ( 請見書中內文 )• 猜測 P 與 Z 就是 e 與 t• 猜測 ZW 就是 th ,而 ZWP 就是 the• 邊試邊改的情況下,最後可得 :

it was disclosed yesterday that several informal butdirect contacts have been made with politicalrepresentatives of the vietcong in moscow

Page 21: Cryptography and Network Security

Playfair 加密法• 即使像 monoalphabetic 加密法中那麼多

的鑰匙,也無法確保安全性• 提升安全性的一個方法是:一次加密多個

字元• Playfair 加密法 就是一個例子• 此法是 Charles Wheatstone 在 1854 年

所提出,但是以其朋友 Baron Playfair 的名字來命名

Page 22: Cryptography and Network Security

Playfair 鑰匙矩陣• 根據一個關鍵字來產生一個 5X5 階的字元矩陣• 將關鍵字的字元填入矩陣中 (刪除重複字元 ) • 將剩餘字原填入矩陣中• 例如,使用關鍵字 MONARCHY

MONAR

CHYBD

EFGIK

LPQST

UVWXZ

Page 23: Cryptography and Network Security

加密與解密• 每次加密明文中的兩個字元 :

1. 如果這兩個字元一樣,則在其間插入一個 ‘ X’ ,例如 “ balloon” 變成 “ ba lx lo on”

2. 如果這兩個字元落在矩陣中的同一列,則用它們右邊的字元來取代它們 ( 把第一個字元當成是最後一個字元的右邊字元 ) 。例如 “ ar” 變成 “ RM”

3. 如果這兩個字元落在矩陣中的同一行,則用它們下方的字元來取代它們 ( 把第一個字元當成是最後一個字元的下方字元 ) 。例如 “mu” 變成 “ CM”

4. 在其他的情況下,每個字元都換成與它自己同一列,但是與另一個字元同一行的那個字元。例如, “ hs” 變成 “ BP” ,“ ea” 變成 “ IM” 或是 “ JM” ( 由加密者自行決定 ) 。

Page 24: Cryptography and Network Security

Playfair 加密法的安全性• 比 monoalphabetic 安全許多• 因為有 26 x 26 = 676 那麼多雙字元 • 表格中需要 676 個項目才足以分析

(monoalphabetic 的表格只需要 26 個項目 ) • 相對地產生更多的密文• 已經廣泛地使用許多年 ( 例如,第一次世界大戰

時,美軍與英軍都採用此法 ) • 在給定幾百個字元的密文的情況下,此法仍可破

解• 因為其中仍存有不少明文的結構

Page 25: Cryptography and Network Security

Polyalphabetic 加密法• 另一個提升安全性的方法就是採用多重取

代法則• 稱為 polyalphabetic 取代加密法 • 在具備多重取代法則與較一致的頻率分佈

的情況下,讓破解者更難得逞• 藉由一把鑰匙來決定:每個明文字元在轉

換時,該選用那個取代法則• 依序使用不同的取代法則 • 當遇到鑰匙結尾時,再重頭開始

Page 26: Cryptography and Network Security

Vigenère 加密法• 最簡單的 polyalphabetic 取代加密法就是

Vigenère 加密法 • 其實就是多重 caesar 加密法 • key 具備多個字元 K = k1 k2 ... kd • 第 i 個字元決定第 i 次所使用的取代法則• 逐一使用每個取代法則 • 在第 d 個字元之後,又從頭開始• 以相反方式運算就可以解密

Page 27: Cryptography and Network Security

範例• 寫下明文 • 在明文之上重複地寫下鑰匙• 將每個鑰匙字元當成 caesar 加密法的鑰匙 • 加密相對應的明文字元• 例如,使用關鍵字 deceptive

鑰匙 : deceptivedeceptivedeceptive

明文 : wearediscoveredsaveyourself

密文 : ZICVTWQNGRZGVTWAVZHCQYGLMGJ

Page 28: Cryptography and Network Security

Vigenère 加密法的安全性• 每個明文字元可以對應到好幾個密文字元• 因此字元頻率就被弭平了• 但並未完全消除• 從字元頻率著手

–察看是否為 monoalphabetic 的頻率分佈• 如果不是的話,就必須找出取代法的個數,

這樣就可以逐一求出

Page 29: Cryptography and Network Security

Kasiski 破解法• 此法是由 Babbage / Kasiski 所發展出來的 • 重複的密文透露了週期的訊息• 因此,找出距離間隔一樣的相同明文• 當然其產生的密文也相同• 當然,這可能是運氣好剛好一樣• 例如,前一個範例中的 “ VTW”• 告訴我們關鍵字長度可能為 3 或 9• 接下來,用先前提到的技巧來逐一破解

monoalphabetic 加密法

Page 30: Cryptography and Network Security

Autokey 加密法• 理論上,希望鑰匙跟訊息一樣長• Vigenère 提出了 autokey 加密法 • 將關鍵字接在訊息前端,藉此形成鑰匙• 如果知道關鍵字的話,就可以解開前幾個字元• 根據這些解開的字元,就可以解開後續的所有字

元• 但是仍舊殘存可供破解的頻率資訊• 例如,給定鑰匙 deceptive

鑰匙 : deceptivewearediscoveredsav明文 : wearediscoveredsaveyourself密文 : ZICVTWQNGKZEIIGASXSTSLVVWLA

Page 31: Cryptography and Network Security

One-Time Pad

• 如果隨機鑰匙的長度真的跟訊息一樣,那麼這個加密法就是安全的

• 此法稱為 One-Time pad• 無法破解的原因是:密文與明文間沒有任何統計

上的關係• 因為對 任意的明文 與 任意的密文之間, 都存在

一把對應彼此的鑰匙• 一把鑰匙只能使用一次• 但是如何安全地分送鑰匙,就是一個大問題

Page 32: Cryptography and Network Security

置換加密法• 現在我們來看古典的置換與重排加密法• 藉由重新安排字元的順序來隱藏訊息• 並未換掉實際使用的字元• 因為頻率分佈與原始文字一樣,所以仍可

破解

Page 33: Cryptography and Network Security

柵欄加密法• 將明文寫成一連串的對角形式 • 然後一列一列地讀出• 例如,將訊息寫成 :

m e m a t r h t g p r y

e t e f e t e o a a t

• 得到密文MEMATRHTGPRYETEFETEOAAT

Page 34: Cryptography and Network Security

列置換加密法• 一個較為複雜的機制• 在行數固定的情況下,將訊息一列一列地寫下• 然後在一列一列讀出之前,根據某把鑰匙來重排行的順序

鑰匙 : 3 4 2 1 5 6 7

明文 : a t t a c k p

o s t p o n e

d u n t i l t

w o a m x y z

密文 : TTNAAPTMTSUOAODWCOIXKNLYPETZ

Page 35: Cryptography and Network Security

混合式加密法• 因為語言特性的關係,採用取代或置換加

密法並不安全• 因此,我們可以採用一連串的加密法讓破

解更困難,但是 : – 取代兩次比取代一次複雜– 置換兩次比置換一次複雜–但是取代之後再置換會更加複雜

• 這就是古典與當代加密法的橋樑

Page 36: Cryptography and Network Security

旋轉機• 在當代加密法出現之前,旋轉機是最常用的混合式

加密法• 旋轉機在第二次世界大戰時被廣泛地使用

– German Enigma, Allied Hagelin, Japanese Purple

• 是一個非常複雜,變化多端的取代加密法• 使用一系列的轉軸,每個轉軸就是一個取代加密法。

每個字元加密後,這個轉軸都會旋轉一個刻度來改變

• 三個轉軸的旋轉機就提供了 263=17576 個取代法

Page 37: Cryptography and Network Security

資訊隱藏• 加密的另一種選擇• 將「訊息存在」這件事隱藏起來

– 利用某種方式將一個訊息中的部分字元標示起來

– 利用不可視的墨水– 利用影像或音效檔中的最低位元來隱藏訊息

• 缺點– 用極高的成本來隱藏極少量的資訊位元

Page 38: Cryptography and Network Security

總結• 我們已知道 :

– 古典加密技巧與專有名詞– monoalphabetic 取代加密法– 利用字元頻率來破解密碼– Playfair 加密法– polyalphabetic 加密法– 置換加密法– 混合式加密法與旋轉機– 資訊隱藏