What's fun in EE 臺大電機系科普系列 密碼學與模算術 鄭振牟 國立臺灣大學電機工程學系教授 密碼學 密碼學是資訊安全的基石 在資訊網路技術日漸普及的現代社會中 密碼學在 維持社會順利運作上 扮演著極為重要的角色 沒有密碼學 我們就無法在網路上 安全地進行交易 銀行金融系統也無法正常運作 密碼學中一個重要的問題是如何達成祕密通信 這也是古典密碼學中最重要的 課題 在這個問題中 密碼學家喜歡用兩位同學作例子 通常是 Alic 跟 Bob 他 們想要利用公開的通信管道 交換一些私密的信息 密碼學家雖然不見得都憤世嫉 俗 但他們往往傾向為最壞的情況作打算 比如說在這個例子裡面 密碼學家就會 假設壞人 通常叫做 Ev 一定能夠偷看到所有 Alic 和 Bob 之間交換的信息 在這 樣的狀況下 Alic 和 Bob 必需使用一些 特殊的編碼方式 讓 Ev 就算看到中間 交換的信息 也無法推斷出 Alic 和 Bob 究竟想要告訴對方什麼消息 用密碼學的 而經過特 行話來說 Alic 和 Bob 真正想要傳達給對方的消息叫做明文 plaintxt 殊編碼之後 在公開通信管道上流通的那個信息就叫做密文 ciphrtxt 這個特殊 編碼的過程叫做加密 ncryption 之後還原明文的過程就叫做解密 cryption 整套特殊編碼的方法則叫做加密法 ciphr 大家可以想像 這樣的技術在傳遞軍事情報上 有著非常大的價值 而古典 密碼學的發展 的確至少可以追溯到古羅馬偉大的將領凱撒 Julius Casar 所使 用的凱撒加密法 Casar ciphr 在二次大戰時 盟軍也藉由破解了德軍所使用的 Enigma 加密機 以及日軍所使用的乙式暗號機 攔截到許多重要的軍事情報 例 如因此擊落了日本海軍聯合艦隊司令官山本五十六的座機 值得一提的是 當時參 與 Enigma 密碼機破解工作的主要人員 其中有後來被尊稱為電腦科學之父的圖靈 Alan Turing 後來人們為了紀念他對電腦科學的貢獻 遂將電腦科學界最重要的 獎項命名為圖靈獎 Turing awar 臺灣大學電機工程學系 1061 台北市 大安區 羅斯福路四段 一號 Email: pt@cc..ntu.u.tw http://www..ntu.u.tw/
Enigma Alic Bob Ev [cryptographic] ky public-ky cryptosystmalic Bob Alic Bob Ev Alic Bob Bob Alic Bob Alic Bob ( 2 ) 2 265 Diffi Hllman 196 [1]public ky privat ky Bob Alic Bob Bob Bob Ev Bob Alic Ev Bob Ev Ev Bob Alic Alic Bob PKI: public-ky infrastructur SA ivst Shamir Alman 198 SA [2] SA Alic Bob Bob Alic Alic Bob SA Ev
Alic 1ys 0no Bob Ev Alic Golwassr Micali 1982 smantic scurity [] Alic Bob Alic Bob 1ys 0 no Ev Alic Alic Alic Bob SA Bob SA = = Alic 4 m = 4 Bob Alic (1) c c m mo 4 mo 16 m c mo 16 mo 4 Bob c m mo 4 mo 16 = (2) ( ) x 1 mo, m c mo 16 mo 4 (2) ( ) ( ) y ( yx) y x 1 mo Bob, x (mo ) yy yy yy Alic SA ( ) y ( yx) 1y x (mo ) Alic y( Y) yy 1 yy Bob p p 1 ( ) T ( T 1 p mo ) ( ab) p (mo ) SA T ( T mo ) congrunc ( ab) (mo ) rlation a b a b a = b mo quivalnc rlation rflxivity symmtrytransitivity quivalnc classs a = b mo a b a b 0 1 (1) a 1 a 2 b 1 b 2 a 1 = a 2 mo b 1 = b 2 mo a 1 + b 1 = a 2 + b 2 mo a 1 b 1 = a 2 b 2 mo moular arithmtic A a 1 B b 1 A B A + B AB x y gc (x, ) = 1 gc (y, ) = 1xy gc (xy, ) x
xtn uclian algorithm a b ax + b = 1 ax = 1 mo a x 1 a b a x + b = 1a a x a x 1 = a mo x y f x (y) = xy mo bijction 1 1 1 x x φ () = 1 mo, φ() Eulr s totint functionφ() 1 x p 1 = 1 mo p 1 x Y Y Y f x Y y x f x Y = φ() Y = {y 1 y <, gc(y, ) = 1} xy = f x (Y ) = {xy mo c m mo 4 mo 16 1 y <, gc(y, ) = 1} m c mo 16 mo 4 ( ) x 1 mo (), ( ) y ( yx) y x (mo ) yy yy yy 1 ( ) 1 1 p p T ( T mo ) SA ( ab) (mo ) 1 SA (1) c(2) m mo 4 mo 16 = 1 mo φ() m m = m 1+nφ() = m(m n ) φ() m c mo = 16 m (mo ) 4 ( ) x 1 mo, + kφ() = 1 = 1 mo φ() ( ) y ( yx) y x (mo ) yy yy yy (4) φ() 1 ( ) 1 (4) p p T ( T mo ) SA ( ab) (mo ) SA SA SA SA 2048-bit SA 2 2048 p q p q 2 1024 SA 2009 22 SA 68 bits[5] ()
Alic Bob SA SA SA (1) (2) SA moular xponntiation Ptr Montgomry 1985 Montgomry ruction a b 0 1 2 x mo x a b a + b = (a + b) (mo ) a a(a)(b)= c m mo 4 mo 16 2 (ab) (ab) = (mo ) m c mo 16 mo 4 ( ) x 1 mo, ( ) T = (a mo )(b mo ) x y ( yx) y x (mo ) yy yy T + x yy x 0 < 1 < 0 < < 1 = 1 1 = 1 mo 1 = 1 mo T + x = 0 mo x = ( ) 1 1 p T = T (mo ) p T ( T mo ) ( ab) (mo ) (5) < T < 2 < 2 (5) 0 2 = 100 Bob Bob 1. Bob c = 16 = = 2. = 1 mo =. c mo = 1600 mo = 16 4. T 1 =(c mo ) 2 = 256 5. x 1 = T 1 mo = (T 1 mo ) mo = 56 mo 100 = 68 6. c 2 mo = 1 T 1 mo =(T 1 + x 1 )/ = (256 + 68 )/100 = 25. T 2 =(c 2 mo )(c mo ) = 400 8. x 2 = T 2 mo = 0
9. c mo = 1 T 2 mo =(T 2 + x 2 )/ = 4 10. x = (c mo ) mo = 12 11. m = c mo = 1 (c mo ) mo = ((c mo )+ x)/ = 4 12. 4 mo 2 = 0 Bob frncs 1. W. Diffi an M. E. Hllman, w irctions in cryptography, IEEE Transactions on Information Thory, Vol. IT- 22, 196, pp. 644 654. 2.. ivst, A. Shamir, an L. Alman, A mtho for obtaining igital signaturs an public-ky cryp-tosystms, Communications of th ACM, Vol. 21 (2), 198, pp. 120 126.. S. Golwassr an S. Micali, Probabilistic ncryption an how to play mntal pokr kping scrt all partial information, In Annual ACM Symposium on Thory of Computing (STOC), 1982. 4. P. L. Montgomry, Moular multiplication without trial ivision, Mathmatical Computation, Vol. 44, 1985, pp. 519 521. 5. T. Klinjung, K. Aoki, J. Frank, A. Lnstra, E. Thomé, J. Bos, P. Gaury, A. Kruppa, P. L. Montgomry, D. A. Osvik, H. t il, A. Timofv, an P. Zimmrmann, Factorization of a 68-bit SA moulus, Cryptology Print Archiv: port 2010/006, http://print.iacr.org/2010/006.