3

我不明白算法如何能夠用公鑰加密明文,但無法用相同的密鑰對其進行解密。有人可以用最簡單的形式解釋這個過程,並定義數學術語嗎?非對稱密鑰加密算法如何保持單向解密和加密功能?

+0

[RSA](http://en.wikipedia.org/wiki/RSA)維基百科文章有你需要的信息 – momo

+0

你的直覺是好的,這的確令人吃驚。如果你真的想明白你將不得不爲自己嘗試一些例子。 –

+0

請參閱我們姊妹網站上關於密碼學的[非對稱加密如何工作?](http://crypto.stackexchange.com/questions/292/how-does-asymmetric-encryption-work)。 –

回答

4

想想這樣吧。一些數學運算是可逆的。例如,考慮「乘以非零實數」的操作。修復非實數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被認爲是非常困難的。

4

在非對稱密鑰的心臟總是有一些數學的身份是難以計算的。經典的例子是RSA算法。其數學基礎是有b,m,n這樣的數字(b^m)^n = b(模塊化算術)。也就是說,如果b是我的消息,並且如果mn是非對稱密鑰的兩個部分,則一個密鑰可以解密其他密鑰加密的內容。也就是說,b^m,還有b^n,作爲密文,可以通過將它們提高到相應的其他功率來解密。這些是安全密碼的原因在於,從b^m獲得b(即使您知道值m*n也需要公開)在計算上是不可行的。因此,對(m, mn)(n, mn)構成不對稱密鑰對。

由於不知道的私人祕密,但仍共享雙方之間的另一個祕密的另一個例子,考慮Diffie-Hellman密鑰交換:在這裏,Alice和Bob分別保守祕密號碼xy的是,人知道。然後,愛麗絲告訴鮑勃c^x,鮑勃告訴愛麗絲c^y,一些公共價值c。現在雙方可以計算出價值c^xy,但雙方都不知道對方的祕密,也沒有任何竊聽者知道c^xy的價值。這裏的數學基礎是從c^x獲得x在計算上是不可行的,即使你現在是c