RSA(Rivest-Shamir-Adleman)運作原理:
RSA 是一種非對稱加密方法,使用一對密鑰:公鑰(public key)和私鑰(private key)。主要步驟如下:
-
密鑰生成:
- 選擇兩個大質數 ?p 和 ?q。
- 計算 ?=?×?n=p×q 和 ?(?)=(?−1)×(?−1)ϕ(n)=(p−1)×(q−1)。
- 選擇一個介於 1 和 ?(?)ϕ(n) 之間的整數 ?e,使 ?e 與 ?(?)ϕ(n) 互質。
- 計算 ?d,使得 ?×?≡1mod ?(?)d×e≡1modϕ(n)。
-
加密:
- 公鑰 (?,?)(n,e) 公開。
- 將明文 ?M 轉換為數字 ?m,要求 0≤?<?0≤m<n。
- 密文 ?=??mod ?c=memodn。
-
解密:
- 私鑰 (?,?)(n,d) 保密。
- 解密得到明文 ?=??mod ?m=cdmodn。
公鑰和私鑰設定條件:
- 質數選擇:?p 和 ?q 必須是大質數,以確保 ?n 的大小足夠大,增加破解難度。
- 公鑰指數 ?e:通常選擇一個小的常數(例如 65537),因為這樣可以提高加密效率,但必須滿足 1<?<?(?)1<e<ϕ(n) 且與 ?(?)ϕ(n) 互質。
- 私鑰指數 ?d:必須能夠通過 ?×?≡1mod ?(?)d×e≡1modϕ(n) 計算得出,確保其能夠成功解密密文。
通過這些條件和步驟,RSA 保證了通信的安全性,公鑰用於加密,私鑰用於解密。