首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RSA密钥交换

RSA密钥交换
EN

Security用户
提问于 2020-08-18 18:07:17
回答 1查看 2.1K关注 0票数 3

我想创建一个消息交换程序。这些消息由AES密钥加密,此密钥使用RSA算法加密。当我从用户1发送消息到用户2时,我需要从用户2请求公钥,我只是获取密钥并使用它,还是需要像Diffie-Hellman之类的安全密钥交换?如果答案是肯定的,我如何能够使用Diffie-Hellman算法发送这个RSA公钥?我读到的是Diffie-Hellman算法生成自己的公钥和私钥,两者都依赖于它,那么如何传递RSA公钥呢?

第二个问题是我是否只使用AES算法加密,这里我必须将公钥从发送方发送到接收方,然后我当然需要一个安全的介质来传输密钥,比如Diffie-Hellman算法。但正如我前面提到的,该算法生成自己的公钥和私钥。但我已经有AES公钥了。有没有办法把AES的公钥传给Diffie-Hellman?请帮帮我,我对那件事真的很困惑

EN

回答 1

Security用户

发布于 2020-08-18 18:29:58

如果您想要完美的前向保密(PFS),那么一种选择是由发送方和接收方交换短暂的ECDHE密钥。然后,使用从ECDHE密钥交换得到的共享秘密作为密钥,使用AES对消息进行加密。TLS 1.3就是这样做的。但是,这需要在客户端和服务器之间为密钥交换进行额外的往返。

如果不需要PFE,则发送方只需创建一个随机的AES密钥,使用收件人的公钥加密密钥,然后使用AES密钥对消息进行加密,并将两者都发送给收件人。从本质上讲,这就是PGP的做法。它比上面的更简单,因为它不需要额外的一轮密钥交换,但是它缺少PFS。

票数 -1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/237263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档