AES加密,啥是公钥和私钥?

Posted

技术标签:

【中文标题】AES加密,啥是公钥和私钥?【英文标题】:AES encryption, what are public and private keys?AES加密,什么是公钥和私钥? 【发布时间】:2010-09-21 08:45:27 【问题描述】:

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

是不是把公钥和私钥组合成一个全密钥,然后算法用公钥+私钥对数据进行加密?

(下面使用的简化键用于示例目的)

例如 公钥 = 12345 私钥 = 67890

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

【问题讨论】:

【参考方案1】:

正如其他人所说,AES 是一种对称算法 (private-key cryptography)。这涉及到一个单个密钥,它是发送者和接收者之间的共享秘密。一个类比是一个锁定的邮箱没有一个邮箱。任何想留下或阅读信息的人都需要有邮箱的钥匙。

如果您真的想了解 AES 的血腥细节,有一个superb cartoon 可以指导您。

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

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

公钥加密的一个类比是一个锁定的邮箱带有一个邮箱。邮筒是公开的,可供公众使用。它的位置(街道地址)是公钥。任何知道街道地址的人都可以走到门口并通过插槽发送书面信息。但只有拥有私钥的人才能打开邮箱阅读邮件。

【讨论】:

哥们,这漫画太棒了。这很有趣,也很有教育意义。让我开心。【参考方案2】:

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

【讨论】:

【参考方案3】:

最简单的形式:

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

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

【讨论】:

【参考方案4】:

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

通常的公钥加密方式是

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

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

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

【讨论】:

-你能给我一个链接,只是为了在实践中参考这个过程吗?谢谢【参考方案5】:

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

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

真正的问题是保持私钥的私密性。大多数破解都是用social hacking完成的。勒索、记录器和中间人公钥转换是比暴力破解密码或密钥更有可能的其他方式。

在你对 Brawndo 的评论中你问过

公开的意义何在 和私钥然后如果两者都可以 解密别人?为什么两者都没有 同一把钥匙?

您所描述的是对称密钥算法,AES 就是其中之一。使用公钥-私钥的原因是,使用对称密钥算法,您如何通过不安全的网络、邮件、电话或其他任何不被拦截的密钥传递对称密钥。也许加密密钥,但是你如何传递那个密钥?使用公钥-私钥组合,这变得不那么重要了。

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

【讨论】:

以上是关于AES加密,啥是公钥和私钥?的主要内容,如果未能解决你的问题,请参考以下文章

aes加密安全吗

RSA+AES请求组合加密

理解两种加密方式中私钥和公钥的概念

15种加密与解密算法

AES128_CBC_NoPading加密、sha256withRSA签名

Android Okhttp/Retrofit网络请求加解密实现方案