我不明白算法如何能夠用公鑰加密明文,但無法用相同的密鑰對其進行解密。有人可以用最簡單的形式解釋這個過程,並定義數學術語嗎?非對稱密鑰加密算法如何保持單向解密和加密功能?
回答
想想這樣吧。一些數學運算是可逆的。例如,考慮「乘以非零實數」的操作。修復非實數s
並考慮由x -> x * s
定義的操作f(x)
。那麼這個操作是可逆的。實際上,如果您採用t = 1/s
,那麼由g(x) = x * t
定義的操作g(x)
的屬性爲g(f(x)) = x
,因此f
是可逆的。將x
作爲消息,s
作爲公鑰,f
作爲加密算法,t
作爲私鑰,g
作爲解密算法。當然,這是一個糟糕的算法,但是這就是非對稱加密:找到一個參數化的可逆數學運算。該參數提供公鑰,「反參數」提供私鑰。
當然,使用加密我們希望它很難找到相反的結果。事實上,最知名的非對稱密鑰算法the mathematics of RSA非常複雜。它依靠的事實是,一個certain mathematical problem被認爲是非常困難的。
你可以找到一個相當好的解釋公鑰密碼術here。對於涉及的數學沒有太多的細節,因爲它很複雜,不可能用簡單的術語來解釋。你可能也想看看答案此相關的問題:
在非對稱密鑰的心臟總是有一些數學的身份是難以計算的。經典的例子是RSA算法。其數學基礎是有b
,m
,n
這樣的數字(b^m)^n = b
(模塊化算術)。也就是說,如果b
是我的消息,並且如果m
和n
是非對稱密鑰的兩個部分,則一個密鑰可以解密其他密鑰加密的內容。也就是說,b^m
,還有b^n
,作爲密文,可以通過將它們提高到相應的其他功率來解密。這些是安全密碼的原因在於,從b^m
獲得b
(即使您知道值m*n
也需要公開)在計算上是不可行的。因此,對(m, mn)
和(n, mn)
構成不對稱密鑰對。
由於不知道的私人祕密,但仍共享雙方之間的另一個祕密的另一個例子,考慮Diffie-Hellman密鑰交換:在這裏,Alice和Bob分別保守祕密號碼x
和y
的是,人人知道。然後,愛麗絲告訴鮑勃c^x
,鮑勃告訴愛麗絲c^y
,一些公共價值c
。現在雙方可以計算出價值c^xy
,但雙方都不知道對方的祕密,也沒有任何竊聽者知道c^xy
的價值。這裏的數學基礎是從c^x
獲得x
在計算上是不可行的,即使你現在是c
。
- 1. 非對稱加密密鑰
- 2. 對稱密鑰加密算法
- 3. 對稱加密密鑰與非對稱密鑰-ssl
- 4. 加密 - 對稱密鑰
- 5. 加密(對稱密鑰)lib
- 6. 對稱加密算法功能
- 7. 無法解密RSA加密密鑰
- 8. iPhone:支持的加密/解密算法
- 9. 用密鑰加密和解密數據
- 10. 加密密鑰大小和算法
- 11. 如何爲加密算法創建加密密鑰?
- 12. 如何在Java非對稱加密中保存和重用密鑰對?
- 13. McEliece加密/解密算法
- 14. 對稱和公鑰加密
- 15. 單向密碼加密算法
- 16. 加密密鑰和加密字符串的解密
- 17. 非對稱加密
- 18. 非對稱加密
- 19. 使用對稱密鑰加密數組
- 20. 對稱加密密鑰交換
- 21. 對稱加密密鑰通過行爲
- 22. 如何選擇加密算法來加密/解密文件?
- 23. 加密和解密使用Base64算法
- 24. 保存加密/解密密鑰的最佳方法是什麼?
- 25. 加密和解密對象
- 26. 如何更改加密密鑰並仍能解密舊數據?
- 27. 自定義非對稱加密算法
- 28. 多個密鑰的加密/解密
- 29. RSA密鑰加密/解密問題
- 30. 使用解密密鑰加密文件
[RSA](http://en.wikipedia.org/wiki/RSA)維基百科文章有你需要的信息 – momo
你的直覺是好的,這的確令人吃驚。如果你真的想明白你將不得不爲自己嘗試一些例子。 –
請參閱我們姊妹網站上關於密碼學的[非對稱加密如何工作?](http://crypto.stackexchange.com/questions/292/how-does-asymmetric-encryption-work)。 –