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

时间:2008-11-07 19:46:25

标签: encryption aes

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

组合公钥和私钥是否构成完整密钥,然后算法使用公钥+私钥加密数据?

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

e.g。 公钥= 12345 私钥= 67890

因此生成加密结果时使用的密钥是:1234567890

5 个答案:

答案 0 :(得分:88)

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

如果你真的想知道AES的血腥细节,那么有superb cartoon指导你一路走来。

Public-key cryptography涉及每个收件人的两个相关密钥 - 私钥是收件人只知道的秘密,以及所有发件人都知道的相关公钥。

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

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

答案 1 :(得分:23)

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

答案 2 :(得分:3)

公钥链接到私钥。公钥(RSA)分发给'wild'和任何想要发送加密文件的人(一般来说这里),他们将请求公钥并对其进行编码。即使拥有公钥,任何获得该文件访问权限的人都无法读取该cypertext。

解码文件需要私钥。只要私钥保持私密,任何人都会猜测或破解密钥是绝对不可能的。不太可能,不是不可能的。

真正的问题是保密私钥。大多数裂缝都是用social hacking完成的。敲诈勒索,记录器和猴子中间公钥转换是比强制密码或密钥更可能的其他方式。

在您对Brawndo的评论中,您问过

  

公众有什么意义   和私钥然后如果两者都可以   解密别人?为什么不两者都有   同样的关键?

您所描述的是对称密钥算法,其中AES是一个。公钥 - 私钥的原因在于使用对称密钥算法如何通过不安全的网络,邮件,电话或者没有密钥被截获的情况下传递对称密钥。也许加密密钥,但是你如何传递密钥?使用公钥 - 私钥组合,它变​​得无关紧要。

  

“在大多数情况下,有更大的   太阳会燃尽的概率   在世界上所有的计算机之前   可以考虑所有信息   需要暴力破解256位密钥,“   他说,副总统乔恩汉森说   AccessData Corp的营销   林肯,犹他州,公司,建立了   为DNA提供动力的软件。

答案 3 :(得分:2)

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

通常的公钥加密模式是

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

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

鉴于他们无法测试安全性(所有他们真正拥有的是缺少休息时间,对于几个候选人而言),选择Rijndael用于AES的原因(大部分)与性能有关。

答案 4 :(得分:2)

以最简单的形式:

AES是一种对称算法,它使用相同的密钥进行加密和解密。所以有密钥的人都可以阅读你的信息。

私钥和公钥是针对像RSA这样的非对称算法,通常人们使用公钥加密和私钥解密(只有HMAC或MAC才会使用私钥加密,公钥解密)。公钥是众所周知,私钥只有你自己知道,所以没有人可以阅读发给你的信息。