关于AES加密我无法解决的问题

时间:2015-11-08 13:52:35

标签: encryption aes

我在我正在使用的应用程序中使用RSA加密,它感觉非常安全......你有一个加密它的公钥和一个解密它的私钥。

现在我希望在不同的应用程序中使用AES,并且为客户端和服务器端使用相同密钥的想法困扰我......是不是服务器端密钥应该对客户端保密?否则,如果加密密钥不是秘密那么为什么还要加密加密呢?

也许我对加密知之甚少,看起来有点奇怪,我希望有人能为我澄清一下这个混乱......

非常感谢!

3 个答案:

答案 0 :(得分:2)

  

服务器端密钥是否应该对客户端保密?

取决于他们是否相互信任,然后不,它不应该是秘密的。此外,如果您想使用对称加密技术,它可能是秘密的,因为双方都需要共享密钥。

  

否则,如果加密密钥ain的秘密,为什么这么麻烦   无论如何用它加密?

的秘密,只有服务器和客户端应该知道它 - 没有其他人。

注意通常用法是一方生成会话密钥,例如AES的密钥,使用另一方的公钥来加密它 - 并将加密密钥发送给可以解密它的另一方。然后,此AES密钥可用于通信。

答案 1 :(得分:1)

AES是一种对称算法。两端必须具有相同的密钥。您 需要一种安全的方法来在两个端点之间共享该密钥。那是 公钥加密解决的问题。

答案 2 :(得分:1)

AES 相比,一个重要因素是 RSA 非常慢。比较慢的东西(取决于密钥长度,如果你有hw支持等)。

这就是 RSA 经常与 AES 等快速对称算法结合使用的原因。这被称为混合加密。使用此方法,您可以生成对称密钥(例如AES),用于加密消息有效负载。密钥本身然后使用非对称密钥(RSA)进行加密,并将其与加密消息一起传递。这为您提供了对称加密的速度,以及非对称算法的便利性。

如果加密和解密的人是同一个人,那么您希望快速 AES 而不是慢 RSA