RSA算法是一種非對稱加密算法,由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)共同提出,他們的姓氏首字母縮寫即為RSA。RSA算法的安全性基於兩個重要的數學難題:分解大數和計算離散對數。
RSA算法的密鑰生成原理:
選擇兩個大的質數p和q。
計算N=p×q。
計算r=φ(N)=(p-1)×(q-1),其中φ是歐拉函式。
選擇一個整數e,1 找到e關於r的模逆元d,即滿足ed≡1(mod r)的d。 公鑰和私鑰: 公鑰:由e和N組成,表示為(e,N)。 私鑰:由d和N組成,表示為(d,N)。 RSA加密原理: 使用公鑰(e,N)對明文M進行加密,得到密文C。這可以通過計算Me≡C(mod N)來實現。 RSA解密原理: 使用私鑰(d,N)對密文C進行解密,恢復明文M。這可以通過計算Cd≡M(mod N)來實現。 安全性: RSA算法的安全性依賴於大數分解和計算離散對數的難度。 攻擊者必須分解N才能有效地破解RSA系統,這需要巨大的計算資源。 套用: RSA算法廣泛套用於數據加密、數字簽名等領域。 它與其他加密技術如AES結合使用,可以提供更高級別的安全性。