RSA算法的流程主要包括密鑰生成、加密和解密三個部分。
一、密鑰生成
選擇兩個不同的大素數p和q。
計算它們的乘積n=p×q。
計算n的歐拉函式值φ(n)=(p-1)×(q-1)。
選擇一個整數e,滿足1 計算整數d,滿足d×e≡1(mod φ(n)),即d是e在模φ(n)下的乘法逆元。 公開密鑰為{e,n},私有密鑰為{d,n}。 二、加密過程 將明文M視為比特串,並將其劃分成長度為k的塊,其中2×k 對每個數據塊P,計算密文C=P^e mod n。 三、解密過程 對每個密文塊C,計算M=C^d mod n。 從而恢復出明文M。 總的來說,RSA算法的安全性基於大數分解問題的困難性,即直接分解兩個大素數的乘積是非常困難的。