應用加密技術 A0943327譚惠心 指導教授:梁明章教授
加密的基本原理 僅使用演算法 演算法+金鑰 任何加密法都必須具備可逆性 取代加密法:對應表 置換加密法:置換規則 對稱金鑰系統 非對稱金鑰系統 任何加密法都必須具備可逆性
對稱金鑰系統 加密與解密都使用同一金鑰 DES 3DES IDEA RC2/RC4/RC5/RC6 AES
DES(Data Encryption Standard) 資料加密標準 其替代方案有3DES、RC2及RC4
RC2/RC4 RC2與RC4則是美國RSA公司提出的對稱加密技術,RC2是用64位元的區塊加密,RC4將密鑰長度變成一個變數,可以隨需要增長密鑰位元,用串流式加密方法,一次計算一個位元組 (bite ) 。
3DES(Data Encryption Standard )三重加密標準 使用三階段DES所改良的加密方式,較DES更為安全 是國內金融IC提款卡採用的安全機制
AES AES是一種比DES碼還要先進的加密標準 AES的數字碼長達128位元 (bit ) 、192位元以及256位元,而DES碼只有56位元,因此在嚴謹度上自然比DES要高出許多 已成為對稱金鑰加密方法中最流行的演算法之一
非對稱金鑰系統 1976年被提出概念,1978年第一個實作「RSA」誕生 三位美國麻省理工學院學者李瓦士(Rivest)、夏米爾(Shamir) 、以及艾道曼(Adleman)率先公開RSA加密 演算法並取得專利權 這個專利2000年9月21日失效。由於該演算法在申請專利前就已經被發表了,在世界上大多數其它地區這個專利權不被承認。
非對稱金鑰系統 金鑰必須是一對,分成公鑰與私鑰,金鑰之產生不能太困難 即使獲取其中一鑰,也無法推算出另外一鑰 使用公鑰加密的資料只能用私鑰解密,使用私鑰加密的資料只能用公鑰解密
RSA原理 選擇相異大質數 p & q 隨機選擇e,e須與Φ(n) 互質 根據金鑰e,計算出解密金鑰d 於是獲得一對金鑰 n= p x q ( e x d ) mod Φ(n) = 1 於是獲得一對金鑰 公鑰 ( e , n ) 私鑰 ( d , n )
RSA加解密 把需加密的資訊視為連續的2進位stream「M」 將 M 以長度 k 切成 M1 , M2 , Mi …… 2 ^ k <= n ( k 需盡量大) 加密文 Ci = ( Mi ^ e ) mod ( n ) 解密文 Mi = ( Ci ^ d ) mod ( n )
Example p = 3, q =11 n = 3 x 11 = 33 Φ(n) = ( 3 – 1 )x( 11 – 1 ) = 20 選一與20互質的 e,e = 3 根據( e x d ) mod Φ(n) = 1 求出 d ( 3 * d ) mod ( 20 ) = 1,故d = 7 公鑰( 3, 33 ) 私鑰( 7, 33 )
Example 設 Mi = 19 密文 Ci = Me mod n = 193 mod 33 = 6859 mod 33 = 28 密文Mi = Cd mod n = 287 mod 33 = 19
安全性 計算兩個質數乘積在快速運算電腦的協助下,就算質數很巨大,也不會是很困難的事 但是要將一個巨大的數分解成兩個質數的成積,儘管用最快速的電腦來算,也需要很長久的時間 所以 RSA 密碼法在目前雖然稱不上絕對安全,但算是夠安全了
檢測 為了檢測 RSA 技術的安全性,一家專門研究RSA 技術的公司 RSA Security 提出了 8 個巨大合成數讓數學家作質數分解。這些合成數都是由兩個巨大的質數相乘積,要分解它們並不一件簡易的事 RSA-576 是 8 個合成數中最小的一個,其餘 7 個合成數的位數分別有 193 ~617 個 RSA-576 是指這個合成數寫成二進位時有 576 個位。其他七個巨大的合成數分別是RSA-640、RSA-704、RSA-768、RSA-896、RSA-1024、RSA-1536、RSA-2048
檢測 RSA-576=1881 9881292060 7963838697 2394616504 3980716356 3379417382 7007633564 2298885971 5234665485 3190606065 0474304531 7388011303 3967161996 9232120573 4031879550 6569962213 0516875930 7650257059,它總共有174位數。
檢測 在2003年12月3日,一個德國機構成功的將它分解成3980750 8642406493 7397125500 5503864911 9906436234 2526708406 3851895759 4638895726 1768583317 和 4727721 4610743530 2536223071 9730482246 3291469530 2097116459 8521711305 2071125636 3590397527,並獲得RSA Security 所提供的獎金10000美金
未來 到2008年為止,世界上還沒有任何可靠的攻擊RSA演算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息實際上是不能被解破的