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算法的安全性基於大數分解問題的困難性,即直接分解兩個大素數的乘積是非常困難的。