4. 進入主題前,先介紹歐拉函數
Φ 函數 歐拉函數 對 正整數 n , φ(n) 表示小於或等於 n 與 n 互質的數的個數。
Φ(5) = 4
Φ(8) = 1 3 5 7 = 4
5. RSA 建立公鑰私鑰流程
取兩相異質數 p 跟 q
計算 N=pq
取 r = Φ(N) = φ(p) φ(q) = (p-1)(q-1)
取 e , 1<e<r 且 e 跟 r 互質
(N, e) 為公鑰
取 d , 使得 de ≡ 1 (mod r) (模反元素)
(N, d)為私鑰
銷毀 p 跟 q
6. 加密過程
公鑰KU=(N, e),私鑰KR=(N, d)。
加密步驟,
Alice 做了一把公鑰 KU 跟私鑰 KR,Bob 要傳遞訊息 M 給 Alice,Bob 用Alice 的
公鑰KU 把 M 加密
C = M^e (mod N) , C 為 Bob 要傳遞給 Alice 的密文
解密步驟
Alice 收到 訊息 C 用KR 解密
M = c^d mod N
7. 實際範例
取 p = 3, q = 11, N = 33
取 r = Φ(33) = φ(3) φ(1) = (2)*(10) = 20
取 e = 3 (3跟20 互質)
公鑰為 (33, 3)
取 d = 7 , 使得 de ≡ 1 (mod r) (模反元素)
私鑰為 (33, 7)
9. 要傳送訊息 m: key (11, 05,25)
a b c d e f g h i j
01 02 03 04 05 06 07 08 09 10
k l m n o p q r s t
11 12 13 14 15 16 17 18 19 20
u v w x y z
21 22 23 24 25 26