AES加密,什么是公钥和私钥?

27 encryption aes

在AES加密(.net框架)中,公钥和私钥是如何使用的?

公钥和私钥是否组合在一起形成一个完整的密钥,然后算法使用公钥+私钥来加密数据?

(以下用于示例目的的简化密钥)

例如,公钥= 12345私钥= 67890

所以生成加密结果时使用的密钥是:1234567890

Roa*_*ior 89

正如其他人所说,AES是一种对称算法(私钥加密).这涉及单个密钥,它是发送者和接收者之间的共享秘密.类比是没有邮件槽的锁定邮箱.任何想要离开或阅读邮件的人都需要拥有邮箱的密钥.

如果您真的想知道AES的血腥细节,那么一路上会有一个极好的卡通片来指导您.

公钥加密涉及每个接收者所涉及的两个相关密钥 - 私钥是仅由接收者知道的秘密,以及所有发送者都知道的相关公钥.

发件人使用收件人的公钥加密邮件.该消息只能由具有与公钥匹配的私钥的收件人解密.

公钥加密的类比是带有邮件槽的锁定邮箱.邮件插槽暴露并可供公众访问.它的位置(街道地址)是公钥.任何知道街道地址的人都可以上门并通过插槽发送书面信息.但只有拥有私钥的人才能打开邮箱并阅读邮件.

  • 男人,那漫画太棒了.这很有趣,也很有教育意义.让我的一天. (9认同)

Mar*_*wis 23

AES是一种对称算法,因此它没有公钥和私钥 - 只有共享密钥.


MaH*_*uJa 5

我不知道 .net 框架具体是如何工作的(问题可能应该被标记为 .net),但根据你的问题,听起来它实现了公钥/私钥加密,只是使用 AES 作为其对称组件。

进行公钥加密的通常模式是

  • 生成对称密钥
  • 使用 AES 等对称算法,用此密钥加密数据。
  • 使用 RSA 等非对称算法,用公钥加密对称密钥。
  • 将加密的符号密钥与加密的数据捆绑在一起

数据本身首选对称算法的原因是非对称算法非常慢。

鉴于他们无法测试安全性(对于几位候选人来说,他们真正拥有的只是没有休息),选择 Rijndael 进行 AES 的原因(主要)与性能相关。


Shu*_*uyi 5

以最简单的形式:

AES 是一种对称算法,它使用相同的密钥进行加密和解密。因此,无论谁拥有密钥,都可以读取您的消息。

私钥和公钥用于RSA等非对称算法,通常人们使用公钥进行加密,私钥进行解密(只有HMAC或MAC会使用私钥进行加密,公钥进行解密)。公钥是每个人都知道的,私钥只有你自己知道,所以没有人可以读取发送给你的消息。