一. 甲方隨機生成兩個質數a (61), b(53),實際上質數越大,就越難破解
二. 計算 a和b的乘積 n
n的長度就是秘鑰的長度,n = 61×53 = 3233, 寫成二進位制是110010100001,一共有12位,所以這個金鑰就是12位,實際應用中,rsa金鑰一般是1024位,重要場合則為2048位
三、計算n的尤拉函式φ(n) —φ(n) = (p-1)(q-1)
φ(3233)等於60×52,即3120
四、隨機選擇乙個整數e,條件是1< e < φ(n),且e與φ(n) 互質
甲 就在1到3120之間,隨機選擇了17。(實際應用中,常常選擇65537。)
五、計算e對於φ(n)的模反元素d
ed ≡ 1
(mod φ
(n))
*****=》 ed -1=
kφ(n)
17d - k3120 =1;
(d,k)=(
2753,-
15)
六、將n和e封裝成公鑰,n和d封裝成私鑰。n=
3233,e=
17,d=
2753
,所以公鑰就是
(3233,17
),私鑰就是(3233
,2753)
n和e 構成公鑰
n和d 構成私鑰
加密和解密
加密
m^e ≡ c
(mod n)
解密
c^d ≡ m
(mod n)
RSA演算法原理(二)
上一次,我介紹了一些數論知識。有了這些知識,我們就可以看懂rsa演算法。這是目前地球上最重要的加密演算法。六 金鑰生成的步驟 我們通過乙個例子,來理解rsa演算法。假設愛麗絲要與鮑勃進行加密通訊,她該怎麼生成公鑰和私鑰呢?第一步,隨機選擇兩個不相等的質數p和q。愛麗絲選擇了61和53。實際應用中,這...
RSA演算法原理(二)
有了這些知識,我們就可以看懂 rsa 演算法。這是目前地球上最重要的加密演算法。六 金鑰生成的步驟 我們通過乙個例子,來理解 rsa 演算法。假設愛麗絲要與鮑勃進行加密通訊,她該怎麼生成公鑰和私鑰呢?第一步,隨機選擇兩個不相等的質數p和q。愛麗絲選擇了 61 和 53。實際應用中,這兩個質數越大,就...
c 實現rsa演算法 RSA演算法實現過程
rsa演算法是實現非對稱加密的一種演算法,其用到很多有關數論的內容,在此我們不多討論。而將目光聚焦於演算法的實現過程。rsa過程 第二步 計算n a b 61 53 3233 第三步 計算 a 1 b 1 60 52 3120 第四步 選擇與3120互質的乙個數e 17,這個e也就是我們的公鑰,需要...