RSA演算法是如何計算的?
RSA 是一種用於公鑰加密的密碼系統,廣泛用於保護敏感資訊,尤其是在透過不安全的網路(包括網際網路)傳送時。
RSA演算法是最流行的非對稱金鑰加密演算法,它依賴於一個數學事實:發現和乘以大素數很容易,但分解它們的乘積卻很複雜。它需要公鑰和私鑰。
RSA演算法示例
讓我們舉一個這個過程的例子來學習這些概念。為了便於閱讀,可以將示例值與演算法步驟一起編寫。
選擇兩個大的素數 P 和 Q
設 P = 47,Q = 17
計算 N = P x Q
我們有,N = 7 x 17 = 119。
選擇公鑰(即加密金鑰)E,使其不屬於 (P -1) x (Q – 1)
讓我們找到 (7 - 1) x (17 -1) = 6 x 16 = 96
96 的因子是 2、2、2、2、2 和 3(因為 96 = 2 x 2 x 2 x 2 x 2 x 3)。
因此,可以選擇 E 使得 E 的任何因子都不是 2 和 3。我們不能選擇 E 為 4(因為它有因子 2),15(因為它有因子 3)和 6(因為它同時有因子 2 和 3)。
讓我們選擇 E 為 5(它可以是任何其他數字,其因子不是 2 和 3)。
選擇私鑰(即解密金鑰)D,包括以下等式為真
(D x E) mod (P – 1) x (Q – 1) = 1
讓我們將 E、P 和 Q 的值代入方程。
我們有 (D x 5) mod (7 – 1) x (17 – 1) = 1。
也就是說,(D x 5) mod (6) x (16) = 1。
也就是說,(D x 5) mod (96) = 1
經過一些計算,讓我們取 D = 77。然後以下為真:(77 x 5) mod (96) = 385 mod 96 = 1,這就是我們想要的。
對於加密,根據以下公式計算密文 (CT) 從明文 (PT):
CT = PTE mod N
假設我們要加密明文 10。那麼,我們有
CT = 105 mod 119 = 100000 mod 119 = 40。
將 CT 作為密文傳送給接收者。
將 40 作為密文傳送給接收者。
對於解密,根據以下公式計算明文 (PT) 從密文 (CT):
PT = CTD mod N
執行以下操作
PT = CTDmod N
也就是說,
PT = 4077mod 119 = 10,這是步驟 5 中的原始明文。