日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[crypto]-02-非对称加解密RSA原理概念详解

發布時間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [crypto]-02-非对称加解密RSA原理概念详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明:本文使用的數據來自網絡,重復的太多了,也不知道哪篇是原創.

算法原理介紹

step說明描述備注
1找出質數P 、Q-
2計算公共模數N = P * Q-
3歐拉函數φ(N) = (P-1)(Q-1)-
4計算公鑰E1 < E < φ(N)E的取值必須是整數
E 和 φ(N) 必須是互質數
5計算私鑰DE * D % φ(N) = 1-
6加密C = ME mod NC:密文 M:明文
7解密M =CD mod NC:密文 M:明文
stepdecriptionequationnote
1Find the prime pairsP 、Q-
2Calculate the common moduleN = P * Q-
3euler functionφ(N) = (P-1)(Q-1)-
4Calculate the public key - E1 < E < φ(N)E must be an integer
E and φ(N) are prime numbers
5Calculate the private key - DE * D % φ(N) = 1-
6encryptionC = ME mod NC:ciphertext ,M:plaintext
7decryptionM =CD mod NC:ciphertext ,M:plaintext

算法舉例

  • 隨機選擇兩個不相等的質數 : p=61、q=53
  • 計算 n = p × q = 61×53 = 3233
  • 計算n的歐拉函數 : φ(n) = (p-1)(q-1) = 3120
  • 隨機選擇一個整數e,條件是1< e < φ(n),且e與φ(n) 互質, 我們選擇一個 e=17
  • 計算e對于φ(n)的模反元素d : d*e%φ(n)=1

支持 n e d都算出來了,n=3233,e=17,d=2753,所以公鑰就是 (3233,17),私鑰就是(3233, 2753)

公鑰能否推導出私鑰,也就是n和e的情況下,推導出d

  • (1)ed%φ(n)=1, 推導d, 需要知道e和φ(n)
  • (2)φ(n)=(p-1)(q-1)。計算φ(n), 需要知道p和q
  • (3)n=pq。只有將n因數分解,才能算出p和q.

私鑰能否推導出公鑰,也就是n和d的情況下,推導出e

  • (1)ed%φ(n)=1, 推導e, 需要知道d和φ(n)
  • (2)φ(n)=(p-1)(q-1)。計算φ(n), 需要知道p和q
  • (3)n=pq。只有將n因數分解,才能算出p和q.

對于3233您可以進行因數分解(3233=61×53),那么對于下面一個這樣很大的數字呢?

12301866845301177551304949
  58384962720772853569595334
  79219732245215172640050726
  36575187452021997864693899
  56474942774063845925192557
  32630345373154826850791702
  61221429134616704292143116
  02221240479274737794080665
  351419597459856902143413

它等價于:

33478071698956898786044169
  84821269081770479498371376
  85689124313889828837938780
  02287614711652531743087737
  814467999489
    ×
  36746043666799590428244633
  79962795263227915816434308
  76426760322838157396665112
  79233373417143396810270092
  798736308917

公鑰(e,n)對明文m進行加密 : c = m^e % n
私鑰(d,n)對密文c進行解密 : m = c^d % n

其中e和d是對等的,一樣的地位,可以互換的. 所以,公鑰推出私鑰比較困難,那么私鑰推出公鑰也是比較困難.
另外,在密碼學中,我們一般不說通過公鑰并不是完全不能推算出私鑰, 而是表述為:通過公鑰推算私鑰在計算上是困難的。

那么為什么我們在平時使用時,感覺的是公鑰不能推導私鑰,但私鑰可以推導公鑰呢?
因為在PEM或DER的編碼格式中,公鑰包含了N和E,私鑰包含了N E D P Q等信息,也就是私鑰已經包含了公鑰,故私鑰是能推出公鑰的。
另外在通常使用中,e一般就等于65535,所以無需推導.


相關推薦:
?????????[crypto]-01-對稱加解密AES原理概念詳解
?????????[crypto]-02-非對稱加解密RSA原理概念詳解
?????????[crypto]-03-數字摘要HASH原理概念詳解
?????????[crypto]-04-國產密碼算法(國密算法sm2/sm3/sm4)介紹
?????????[crypto]-05-轉載:PKCS #1 RSA Encryption Version 1.5介紹
?????????[crypto]-05.1-PKCS PKCS#1 PKCS#7 PKCS#11的介紹
?????????[crypto]-06-CA證書介紹和使用方法


?????????[crypto]-30-The Armv8 Cryptographic Extension在linux中的應用
?????????[crypto]-31-crypto engion的學習和總結


?????????[crypto]-50-base64_encode和base64_decode的C語言實現
?????????[crypto]-51-RSA私鑰pem轉換成der, 在將der解析出n e d p q dp dq qp
?????????[crypto]-52-python3中rsa(簽名驗簽加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest測試用
?????????[crypto]-53-openssl命令行的使用(aes/rsa簽名校驗/rsa加密解密/hmac)


?????????[crypto]-90-crypto的一些術語和思考

總結

以上是生活随笔為你收集整理的[crypto]-02-非对称加解密RSA原理概念详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。