Transcript 對稱式密碼系統
Description of Symmetric and Asymmetric Encryption Speaker: Johnny Date: 2012-11-07 Outline • • • • • • • 安全性程度 Symmetric Cryptosystem Asymmetric Cryptosystem Digital signature DES RSA Reference 資訊安全服務 • 為了達到資訊安全目標和避免安全攻擊的安全服務標準已 經被制定,有五種常見的安全服務:資料機密性(data confidentiality)、資料完整性(data integrity)、認證 (authentication)、不可否認性(nonrepudiation)及存取 控制(access control)。 密碼系統之安全性程度 • 無條件安全(Unconditionally Secure): 非法使用者不管擷取多少個密文,還是沒有足夠 資訊可以導出明文。 • 計算安全(Computationally Secure): 以目前或未來預測之技術,要破解密碼系統需要 一段相當長的時間。 Symmetric Cryptosystem • 對稱式密碼系統: 在對稱金鑰密碼學中,加 密和解密使用相同的金鑰。 由於每對通訊方都必須使 用異於他組的金鑰,當成 員的數量增加時,金鑰數 量增加,將面臨金鑰管理 的難題。 Asymmetric Cryptosystem • 非對稱式密碼系統: 加密與解密所使用的金鑰 不同,一把公開給所有人 知道,稱為公開金鑰 (Public Key) 。另一把則 自己隱密保管,稱為私密 金鑰(Secret Key)金鑰。 • 訊息傳送者必須使用接收 者對外開放之公開金鑰對 訊息進行加密。 • 接收者取得訊息後,使用 不對外公開之私密金鑰進 行解密 Digital signature • 公開金鑰密碼系統除了可以 用來加密,以確保訊息的機 密性以外,更可以用來做數 位簽章 • 一般數位簽章具有下列功能: – 鑑別性(Authentication): 可鑑別文件來源的合法性, 而非經他人偽造 – 完整性(Integrity):可確 保文件內容不會被新增或 篡改 – 不可否認性(Nonrepudiation):簽章者事 後無法否認曾簽署過此文 件 對稱式加密 非對稱式加密 key保管問題 如果與N個人交換訊息, 需保管好N把加解密鑰匙 無論與多少人交換訊息, 只需保管自己的私密鑰匙 加解密速度 快 慢 演算法 DES、 AES RSA 其他名稱 祕密金鑰密碼系統 (Symmetric Encryption) 或稱為 單金鑰密碼系統 公開金鑰密碼系統 雙金鑰密碼系統 優點 較快速 沒有金鑰管理的問題 高安全性 有數位簽章功能 缺點 有金鑰管理的問題 傳送者與接收者雙方必須 找到一個安全交換秘密金 鑰的方法 加解密速度慢 DES(Data Encryption Standard) 回合金鑰產生運算過程 • • 假設選定[science]作為秘密金鑰 [science]之ASCII編碼為:[ 73 63 69 65 6e 63 65] • 一個字母需要8個位元來作編碼, 所以[science] 其二進位表示法為: [(01110011) (01100011) (01101001) (01100101) (01101110) (01100011) (01100101)]共56個位元 • • • • 加入奇同位檢查碼後之結果如下: [ (01110011) (10110000) (11011010) (00101100) (01010111) (01110011) (10001100) (11001011) ]共64個位元 DES的金鑰排列表-KP 56 (01110011) (10110000) (11011010) (00101100) (01010111) 1 9 17 25 33 (01110011) (10001100) (11001011) 41 49 57 作初始金鑰排列(KP),其結果如下: [(11000110) (10110101) (00101011) (00111011) (01010101) (10001100) (11000111)] (11000110) (10110101) (00101011) 0011 1011 (01010101) (10001100) (11000111) 接著,將排列後的結果分成兩半,分別為KL0及KR0,它們的內容分別為: KL0=[11000110 10110101 00101011 0011] KR0=[10110101 01011000 11001100 0111] 向左循環一位元之後可分別得到: KL1=[10001101 01101010 01010110 0111] KR1=[01101010 10110001 10011000 1111] 縮減排列表-CP 48 經過壓縮排列後(CP)後,就可得 到第一回合的回合金鑰K1: K1=[ 00101101 11011000 11001110 00110111 01111111 01000000] DES加密流程 • • • 將輸入的64位元訊息以初始排列表 (IP)規則排列重組 重組後將結果分成L及R,各為32位 元 執行16次後,將R16及L16合併成64 位元,依照最後排列表(FP,IP¯¹)排列 重組,所得結果就是密文。 DES解密流程 改成 RSA密碼系統 • RSA為目前最著名的公開金鑰密碼系統,是由三位MIT的學 者Rivest、Shamir與Adleman於1978年提出。 • RSA密碼系統可作為加解密、數位簽章等用途,其安全性 是建立於因數分解(factorization)的困難度。 • 因數分解(FAC)問題是指給定一合成數n為兩個大質數p與q 的乘積,欲分解n為計算上不可行,此問題是一個NPcomplete問題。 RSA加解密機制 • • • • • 1. 選兩個大質數 p 和 q (至少100位數),令 N = p • q 2. 再計算Ø(N)=(p-1)(q-1),並選一個與Ø(N)互質數 e Ø(N)為Euler’s Totient函數,其意為與N互質之個數 3. (e,N) 即為公開金鑰 加密法為 C = Me mod N • • • 4. 選一個數 d,滿足 e • d mod Ø(N) = 1 5. d 即為解密金鑰(亦稱私有金鑰或祕密金鑰) 解密法為 M = Cd mod N RSA演算法例子 • • • • • 例子:(明文為688) p=47, q=71 n 47 71 3337 1 1 e=79 d e mod( p 1)(q 1) 79 mod 3220 1019 79 加密: c 688 mod 3337 1570 1019 mod 3337 688 解密: m 1570 i 1 2 3 4 5 qi ri bi ai 3 6 3 1 40 3220 1019 163 41 40 1 0 1 0 1 -6 19 -25 0 1 -3 19 - 60 79 擴展歐幾理德演算法 (Extended Euclidean Algorithm) 計算反元素 x = a-1 mod b 的前提是 a 與 b 互質 而根據擴展歐幾理德演算法,若 a 與 b 兩數互質,一定可以找到 兩個整數 s 與 t,讓gcd(a, b) = sa + tb = 1,而其中的 s 就是我 們想要求的反元素 x 1 = (sa + tb) mod b = sa mod b s = a-1 mod b = (1, 0) – 3 (0, 1) = (0, 1) – 6 (1, -3) = (1, -3) – 3 (-6, 19) = (-6, 19) – 1 (19, -60) RSA Digital signature Reference • • • • http://david50.pixnet.net/blog/post/28798505-%5B%E7%AD%86%E8%A8%98%5Ddigitalsignature-%E6%95%B8%E4%BD%8D%E7%B0%BD%E7%AB%A0 http://avp.toko.edu.tw/docs/class/3/%E5%AF%86%E7%A2%BC%E5%AD%B8%E5%8E%9F%E 7%90%86%E8%88%87%E6%8A%80%E8%A1%93.pdf http://chi-yuan.itstudy.tw/Web_Site_Page/Teaching_Resources/Course_Data_Information%20Network/Teachi ng_Resources/Kingsinfo_Internet%20Introduction_N8034/N8034_PDF/%E7%AC%AC15%E7% AB%A0%20%E7%B6%B2%E8%B7%AF%E5%AE%89%E5%85%A8.pdf 資訊與網路安全概論(第三版) 黃明祥 林詠章 著