在RSA加密算法中,當c
和d
是大數時,如何計算c^d mod n
?RSA計算c^d模
回答
GMP是C/C++軟件庫,這是否對你:mpz_powm,mpz_powm_ui的文件中。使用的方法(在很大程度上)在the wikipedia page中進行了解釋,您可以嘗試閱讀GMP的源代碼,如果您覺得這樣做...
「powMod」操作可以分解爲更小的步驟。
例如5^3 % 6
等於((5 * 5) % 6) * 5 % 6
而5^4 % 6
等於(((5 * 5) % 6) * 5 % 6) * 5 % 6)
。正如你所看到的,你可以在指數的子結果中應用模運算來始終使用較小的數值,因此即使在c和d爲高值時也可以更容易計算c^d % n
。
欲瞭解更多信息: http://en.wikipedia.org/wiki/Modular_exponentiation
嘿,謝謝你的信息。假設我想計算60889^69301 mod 87984。有沒有更簡單的過程? – 2011-03-02 17:44:41
@Santosh你想用手還是編程來計算? – HoLyVieR 2011-03-02 17:55:06
我想這不可能手動。必須編寫一個程序。 – 2011-03-02 18:11:31
簡單的答案是:使用實現算法的語言和/關於「大整數」,幷包含適合模冪運算的功能。在Java中,這意味着使用java.lang.BigInteger
,特別是方法modPow()
。由於底層計算機不能真正處理「整數」,但是其中的有限仿真(例如「32位整數」,除了超過32位的高位被丟棄以外,其行爲與整數相似),所以必須應用這種「大整數」實現一些特定的算法,在Handbook of Applied Cryptography(第14章)中有詳細描述。
- 1. RSA計算d
- 2. RSA的計算時間?
- 3. 在matlab中計算大數的模運算(RSA)
- 4. bash中的RSA算法(私鑰計算)
- 5. 如何計算rsa私鑰的係數?
- 6. 加密:RSA算法
- 7. 審計計算機登錄與RSA密鑰vs密碼
- 8. 計算模式
- 9. dotLiquid:模計算
- 10. 如何計算給定公共和私人指數的RSA模量?
- 11. 計算機重寫CD的自動運行行爲?
- 12. 計算.3DS模型
- 13. 按位模計算
- 14. RSA算法實施例
- 15. 用java實現RSA算法
- 16. 在openmp中的rsa算法
- 17. RSA算法密鑰生成
- 18. 植入RSA算法在c + +
- 19. C#RSA加密算法
- 20. 如何在VSS verifone中生成RSA密鑰並計算public/CA?
- 21. 快速計算PHP中的RSA私鑰的方法
- 22. 從Android中讀取計算機的RSA密鑰指紋
- 23. 如何使用OpenSSL計算RSA-SHA1(sha1WithRSAEncryption)值
- 24. CSR算法/大小不正確。預計RSA 2048
- 25. 如何計算RSA私鑰(D)的公鑰(E)?
- 26. 具有模數和指數的iPhone RSA算法
- 27. 模塊化算法計算錯誤
- 28. 計算攤鋪模式的算法
- 29. Cuda計算模式和'CUBLAS_STATUS_ALLOC_FAILED'
- 30. 計算在Django模型
你能更具體嗎? – NT3RP 2011-03-02 17:19:41
有一個完整的[維基百科文章](http://en.wikipedia.org/wiki/RSA)致力於這個話題。 – 2011-03-02 17:22:00
更好的維基百科文章:http://en.wikipedia.org/wiki/Modular_exponentiation – 2011-03-02 17:26:31