密碼學概論 電機四 b90901041 吳秉寰
OUTLINE 何謂密碼學,為何需要它 密碼學基礎定義理論 對稱及非對稱式密碼系統的簡介與分析 常見的密碼系統 網路安全實例 (SSL加密) 結論
何謂密碼學 ?
密碼學(Cryptography) !~$@#%???
破密學(Cryptanalysis) F**K YOU F**K YOU
密碼學的應用 機密通訊 軍事國防等重要機密文件 電子商務 私密訊息等等 登入服務的帳號密碼 總而言之,就是讓訊息只能讓特定的人取得,而他人無法輕易的得知。
密碼系統提供之功能 秘密性 (Secret of Privacy) 鑑定性 (Authenticity) 完整性 (Integrity) 不可否認性 (Nonrepudiation)
密碼學基礎簡介 流程
明文(M)--實際資料 密文(C)—加密後的消息 M C M = D(E(M)) E是一把加密的鑰匙 D是一把解密的鑰匙 任何類型的未加密資料。 密文(C)—加密後的消息 'C = E(M)' 加密 M C 解密'M = D(C)' M = D(E(M)) E是一把加密的鑰匙 D是一把解密的鑰匙
以函數例子說明 對稱 (反運算容易) y = x + 3 → x = y – 3 y = e^x → x = ln y 非對稱 (反運算不易) y = anx^n + an-1x^(n-1) + …+ a0 → x = ? 1.051103774764883380737596422798e+1000 * 1.0763302653592405818752987369452e+1003 = bla (兩個大質數乘積) → bla = which two prime’s product ?
對稱式 VS 非對稱式密碼系統 對稱式 (秘密金鑰) DES、IDEA、RC2 、RC4…… 非對稱式 (公開金鑰) 對稱式 (秘密金鑰) DES、IDEA、RC2 、RC4…… 非對稱式 (公開金鑰) RSA、DSA、Diffie-Hallman……
對稱式密碼系統 加密以及解密鑰匙可以互相推得(若加密鑰匙不幸外漏,則解密鑰匙等於一併外漏) ,故鑰匙分配需透過安全管道,又稱秘密金鑰。
對稱加密常見方法(傳統式) 換位 (Transposition) ex : strike out while the iron is hot 相反順序 : tohsinoriehtelihwtuoekirts 先奇再偶 : srkothlternsotieuwiehioiht
對稱加密常見方法(Con’t) 路遊 編碼後:csOisMenilCLVfprPioS 編碼前 : Principles of CMOS VLSI 編碼後:csOisMenilCLVfprPioS P r i n c p l e s o f C M O S V L I
對稱加密常見方法(Con’t) 替換 (Substitution) Shift right 3 : bohn is strong → erkq lv vwurqj Using Key : (π=3.1415 ) 314153141531.. bohn is strong → eplo nv txstqh 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 Z
DES 對稱加密系統美國數據加密標準DES(Data Encryption Standard)。1977年美國國家標準局正式公布實施了美國的數據加密標準DES,公開它的加密算法,並批準用非機密單位和商業上的保密通信。隨DES成為全世界使用最廣泛的加密標準。加密與解密的密鑰和流程是完全相同的,區別僅僅是加密與解密使用的子密鑰序列的施加順序剛好相反。但是,經過20多年的使用,已經發現DES很多不足之處,對DES的破解方法也日趨有效,但仍然無法完全徹底地破解DES,故DES仍堪稱為安全的系統。
優缺點比較 (對稱式) 優點 : 保護資訊機密 鑑定發送方身分 確保資訊完整性 缺點 : 金鑰傳輸問題 鑰匙的數目太大 無法達到不可否認性
非對稱式密碼系統 相對於對稱式系統,又稱為公開金鑰密碼系統。鑰匙分有公開金鑰 (public key) 以及私有金鑰 (private key),這兩把鑰匙無法 (輕易地) 互相推得,其中private key 只有自己知道,public key 是公開的。任何人都可以利用public key 加密,而自己便可利用 private key 解密。
可驗證 : 私鑰加密 (簽章),公鑰解開(驗證) 秘密性 : 公鑰加鎖,私鑰解開 可驗證 : 私鑰加密 (簽章),公鑰解開(驗證) B Private key B Public key A Private key A Public key B A
RSA 金鑰產生 : 強質數因數分解對 任意選擇兩個大質數 p、q,求出其乘積pq。任意選擇一 e,使得 e 與 (p-1)(q-1)互質,再找到一 d,能使 (ed-1) 被 (p-1)(q-1)整除。則可以令 (n,e) 為公開金鑰,(n,d) 為私密金鑰。
混合式密碼系統 B Public key A Private key A B Private key A Public key B
同時達到秘密通訊與數位簽署 A 欲傳送資訊給 B 數位簽署 A 以自己的 private key 加密,若 B 能以 A 的 public key 解開,則可驗證為 A 所發。 秘密通訊 A 以 B 的 public key 加密,B 以自己的 private key 解開(同前)。
優缺點比較 (非對稱) 優點 資訊機密性高 (加密機制較嚴密) 鑰匙方便管理 (一公一私) 不可否認性 (數位簽署認證) 缺點 運算複雜耗時長,速度慢
網路安全應用實例 : SSL
SSL(Secure Socket Layer)是Netscape所提出來的資料保密協定,採用了RC4、MD5,以及RSA等加密演算法。如果您想登入的網站具有SSL功能,而且您是使用較新版的瀏覽器,那麼您與網站之間所傳的資料都可以使用SSL協定來保密,除非能破解傳輸密碼,否則其他任何人都無法得到這些機密資料。 那SSL的密碼會被破解嗎?答案是『非常非常不容易』,而且保密鑰匙的長度(key-length)越長,安全度越高!由於美國的軟體出口限制,美加地區的瀏覽軟體是128-bit,而其他地區只有40-bit;而40-bit的key應該已經足以保障網路信用卡交易安全了。
SSL (Con’t) 使用SSL 安全方法時,使用者產生一把對稱金鑰(session key),將待傳送的資料「加密」成亂碼,網站接收資料後再使用同一把對稱金鑰「解密」出原來的資料。為了將使用者產生的這一把加解密用的對稱金鑰安全地傳給伺服器,SSL 於使用者傳送這一把對稱金鑰前,先使用伺服器的公開金鑰(publickey)將對稱金鑰「加密」成亂碼,網站接收資料後再使用伺服器的私密金鑰(private key)「解密」出原來的對稱金鑰。
結論 加密過程越複雜,安全性更高,但相對的速度也越慢 (trade off) 安全性 → 即使破祕者知道加密演算法,也無法輕易破解密文 沒有絕對破解不了的演算法 (假如有無限時間),只要相對安全即可 (10^16 年 ……) 小心駛得萬年船 (不要輕易透露密碼……) (使用完畢記得登出……)