RSA 加密算法 原

RSA 加密算法

RSA 加密算法是一種非對稱加密算法,是最早的公鑰密碼系統之一。

1978年,MIT 的 Ron Rivest,Adi Shamir 和 Leonard Adleman 三人一起提出 RSA 加密算法

原理

  1. 選擇 2 個質數 pq
  2. 計算 n = p * q
  3. 根據歐拉函數 φ(n) = (p - 1) * (q - 1) 計算出 φ(n)
  4. 確定公鑰(整數)e,要求:1 < e < φ(n)eφ(n) 互質
  5. 確定私鑰(整數)d,要求:(e * d) / φ(n) 的餘數爲 1
  6. 加密:原文 m,計算 me 次冪除以 n,求餘數 cc 就是加密後所得的密文
  7. 解密:密文 c,計算 cd 次冪除以 n,求餘數得到原文 m

示例(來自 wikipedia)

  1. p = 61q = 53
  2. n = 61 * 53 = 3233
  3. φ(n) = (61 - 1) * (53 - 1) = 60 * 52 = 3120
  4. e = 17
  5. d = 2753
  6. 公鑰 (3233,17),私鑰 (3233,2753)
  7. 原文 18,公鑰加密密文 2100,私鑰解密得到原文 18
  8. 原文 81,私鑰加密密文 2083,公鑰解密得到原文 81

安全性

  1. 加解需要 n 和公鑰 e 生成密文 c
  2. 解密需要 n 、密鑰 d 和密文 c
  3. 公開場合竊聽者只能獲取 n e c,但是獲取不到密鑰 d,需要通過 e 計算出 d
  4. 如果想通過 e 計算出 d 則必須知道 φ(n)
  5. 想知道 φ(n) 必須求出 pq
  6. 因爲 n = p * qn 已知,所以必須進行【質因數分解】,數學證明大數質因數分解十分困難,這也是 RSA 算法安全性的根本保證
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章