我需要实现客户端-服务器通信的安全性。我已经实施了以下混合密码系统
为了在混合密码系统中加密发送给 Alice 的消息,Bob 执行以下操作:
- 获取Alice的公钥。
- 为数据封装方案生成新的对称密钥。
- 使用刚刚生成的对称密钥在数据封装方案下加密消息。
- 使用 Alice 的公钥,在密钥封装方案下加密对称密钥。
- 将这两个加密发送给 Alice。
为了解密这个混合密文,Alice 执行以下操作:
- 使用她的私钥解密密钥封装段中包含的对称密钥。
- 使用该对称密钥来解密数据封装段中包含的消息。
我使用 RSA 作为公钥加密系统,使用 AES 作为对称密钥加密系统。一切正常,但我不确定如何处理 AES 初始化向量。目前,我正在连接 AES 密钥和初始化向量,用公钥对其进行加密并将其发送到服务器。
我只是想得到一些关于这种方法的意见。其他通信协议SSL等如何解决这个问题
Thanks.
您不加密 IV。将其与加密密钥捆绑在一起并将其(以明文形式)发送给收件人。
这方面的标准确实存在。这种方案在 CMS(S/MIME 的基础)中称为“KeyTransRecipientInfo”,PGP 也提供类似的模式。 TLS 还包括初始化向量作为密钥加密算法标识符中的参数,使用与 CMS 相同的 ASN.1 语法。执行此操作的强大开源库可用于许多平台。
至少,研究 CMS 规范可能有助于避免自制实现中的一些陷阱。看RFC 3369 的第 6.1 条和第 6.2.1 条。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)