我生成私钥/公钥和一个小文本文件,
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 不同。这是我不明白的。
当您使用公钥加密文本文件两次时...您将看到两个 cipher.txt 不同。这是我不明白的。
这称为概率加密(相对于确定性加密)。正是这样设计的,以便同一条消息加密两次不会产生相同的密文。这是由于 RSA 使用的掩码函数和填充函数造成的。
如果加密产生相同的密文,那么你的对手就可以获得信息。例如,如果你的对手看到一条他不理解的消息,但观察到你的军队第二天早上攻击他的军队,他可能会猜测该消息是“黎明攻击”。如果他再次看到相同的加密消息,他可能会在第二天黎明时准备好发动攻击。
如果您想了解 MGF、OAEP 等的详细信息,加密堆栈交换中的人员可能能够为您提供进一步帮助。此外,Steve Bellovin 博士在以下网站上对密码学进行了非常平易近人的介绍:密码学简介 http://www.cs.columbia.edu/~smb/talks/crypto-tut.pdf.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)