AES,密钥是如何分配的?
AES, how are keys distributed?
我一直在努力理解 AES 加密,我对这个过程及其工作原理有基本的了解,但我找不到的一件事是,如果密钥是秘密的,它是如何安全分发的?
我看到一个 post 上面写着“使用 SSL”,但看了一下似乎仍然需要双方都可以访问密钥。
我想我可能会使用 RSA?但正在寻找它在现实世界中的表现。
这是最简单的版本,但它并不是真正的工作方式。服务器必须具有客户端可以确认属于服务器的 RSA 密钥。通常,这是通过受信任的机构签署的证书完成的。
- 客户端生成随机 AES 密钥。
- 客户端使用服务器的 RSA public 密钥加密随机 AES 密钥。
- 客户端将加密的AES密钥发送给服务器。
- 服务器使用其 RSA 私钥解密 AES 密钥。
- 服务器和客户端现在有一个共享的 AES 密钥。
密钥是使用 'key exchange algorithm' 分发的。一些常用的密钥交换算法是 Diffie-Hellman 和 RSA。 Diffie-Hellman 算法可以在不实际交换密钥本身的情况下生成公共密钥。
在 SSL 期间,客户端和服务器协商要使用的密码。密码包含密钥交换算法。客户端和服务器交换部分密钥并得出将用于批量加密的公共密钥。
我一直在努力理解 AES 加密,我对这个过程及其工作原理有基本的了解,但我找不到的一件事是,如果密钥是秘密的,它是如何安全分发的?
我看到一个 post 上面写着“使用 SSL”,但看了一下似乎仍然需要双方都可以访问密钥。
我想我可能会使用 RSA?但正在寻找它在现实世界中的表现。
这是最简单的版本,但它并不是真正的工作方式。服务器必须具有客户端可以确认属于服务器的 RSA 密钥。通常,这是通过受信任的机构签署的证书完成的。
- 客户端生成随机 AES 密钥。
- 客户端使用服务器的 RSA public 密钥加密随机 AES 密钥。
- 客户端将加密的AES密钥发送给服务器。
- 服务器使用其 RSA 私钥解密 AES 密钥。
- 服务器和客户端现在有一个共享的 AES 密钥。
密钥是使用 'key exchange algorithm' 分发的。一些常用的密钥交换算法是 Diffie-Hellman 和 RSA。 Diffie-Hellman 算法可以在不实际交换密钥本身的情况下生成公共密钥。
在 SSL 期间,客户端和服务器协商要使用的密码。密码包含密钥交换算法。客户端和服务器交换部分密钥并得出将用于批量加密的公共密钥。