AES,密钥是如何分配的?

AES, how are keys distributed?

我一直在努力理解 AES 加密,我对这个过程及其工作原理有基本的了解,但我找不到的一件事是,如果密钥是秘密的,它是如何安全分发的?

我看到一个 post 上面写着“使用 SSL”,但看了一下似乎仍然需要双方都可以访问密钥。

我想我可能会使用 RSA?但正在寻找它在现实世界中的表现。

这是最简单的版本,但它并不是真正的工作方式。服务器必须具有客户端可以确认属于服务器的 RSA 密钥。通常,这是通过受信任的机构签署的证书完成的。

  1. 客户端生成随机 AES 密钥。
  2. 客户端使用服务器的 RSA public 密钥加密随机 AES 密钥。
  3. 客户端将加密的AES密钥发送给服务器。
  4. 服务器使用其 RSA 私钥解密 AES 密钥。
  5. 服务器和客户端现在有一个共享的 AES 密钥。

密钥是使用 'key exchange algorithm' 分发的。一些常用的密钥交换算法是 Diffie-Hellman 和 RSA。 Diffie-Hellman 算法可以在不实际交换密钥本身的情况下生成公共密钥。

在 SSL 期间,客户端和服务器协商要使用的密码。密码包含密钥交换算法。客户端和服务器交换部分密钥并得出将用于批量加密的公共密钥。