2013-08-20 81 views
3

我產生私有/公共密鑰和一個小的文本文件,同RSA密鑰,同樣的信息,不同的加密

openssl genrsa -out priv.pem 
openssl rsa -out pub.pem -in priv.pem -pubout 
echo "A" > plain.txt 

在加密與公共密鑰文本文件的兩倍,像這樣,

openssl rsautl -encrypt -pubin -inkey pub.pem -in plain.txt -out cipher.txt 

你會看到兩個cipher.txt不同。這是我不明白的。

+2

你可能想看看我的答案[這裏](http://stackoverflow.com/questions/16325057/why-does-rsa-encrypted-text-give-me-different-results-for-the-same -text) – ChiaraHsieh

+0

這應該回答你的問題: http://security.stackexchange.com/questions/33752/will-encrypting-the-same-file-with-gpg-and-the-same-key-produce- the-same-ciphert – Gaston

+0

或者這個:http://stackoverflow.com/q/13389211/535741 – Jumbogram

回答

2

當您使用公鑰加密文本文件兩次時...您會看到兩個cipher.txt不同。這是我不明白的。

這被稱爲概率加密(與確定性加密相比)。它的設計方式使得兩次加密的消息不會產生相同的密文。它由於RSA使用的掩碼函數和填充函數。

如果加密產生相同的密文,那麼你的對手可以獲得信息。例如,如果你的對手看到一條他不明白的消息,但是觀察者第二天早上你的軍隊襲擊了他的軍隊,他可能會猜測這條消息是「黎明時的攻擊」。如果他再次看到同樣的加密消息,他可能準備在第二天黎明時進行攻擊。

如果您想了解MGF,OAEP等的詳細信息,加密堆棧交換中的人員可能會進一步幫助您。另外,Steve Bellovin博士對密碼學的介紹非常接近An Introduction to Cryptography