首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非对称加密

非对称加密
EN

Security用户
提问于 2018-09-06 20:59:38
回答 4查看 406关注 0票数 3

我理解非对称加密的工作原理是让您的计算机只知道私钥,而公钥则由您的计算机提供给任何希望安全地与其通信的计算机。要解码加密的消息,计算机必须使用原始计算机提供的公钥及其自己的私钥。

是什么阻止攻击者监听到你在数据旁边发送的密钥?如果它实际上不是与加密的数据一起发送的,那么服务器在什么时候接收到它需要解密的密钥?

我知道这可能是一个明显的答案,但密码是我在IT方面的弱点。在谷歌上搜索也无济于事,答案也太简单了,或者根本就没有覆盖到网络方面(当一个密钥被发送、接收以及由谁发送时)。

EN

回答 4

Security用户

发布于 2018-09-06 21:24:46

您对非对称密码系统工作原理的理解有一定的缺陷。通常,公钥不用于解密任何内容。它被用来加密。私钥用于解密。

有几种机制可以使秘密通信以服务器持有的公钥/私钥对开始。在大多数情况下,它们涉及客户端和服务器交换消息以建立共享对称密钥,这两者都用于后续通信。

在最简单但有点不受欢迎的方法中,客户端选择对称会话密钥,用服务器的公钥对其进行加密,并将其发送到服务器。由于会话密钥是用服务器的公钥加密的,因此任何观察者都无法确定它是什么。

建立会话密钥的更复杂的方法包括Diffie-Hellman密钥交换和椭圆曲线Diffie-Hellman密钥交换。这些方法避免通过网络发送任何密钥,并在服务器密钥将来受到损害时保持保密,但涉及一些数学问题,以允许服务器和客户端都可以导出相同的密钥。

在任何情况下都不可能是通过网络发送的公钥对的私有部分。

票数 4
EN

Security用户

发布于 2018-09-06 21:16:20

用于解密的不是公钥,而是私钥。

例如,Alice给Bob发了一条消息。这意味着Alice使用Bobs公钥加密消息,Bob使用他的私钥解密消息。

希望这有助于清洁,我不是一个安全专家。

下面是这样一个加密/解密过程的示例:wiki://wiki/RSA_(密码系统)

票数 1
EN

Security用户

发布于 2018-09-07 06:53:09

使用至少一些非对称加密算法,例如RSA,其中一个密钥可用于加密消息,而另一个密钥将解密结果。

如果我将私钥保密并公开我的公钥,那么有两种通信方式:

我可以用我的私钥加密一条信息并发送给你。你可以用我的公钥解密它。任何截取消息的人也可以用我的公钥解密它。那么我取得了什么成就呢?好吧,你和其他人都知道只有我有私钥,所以要使解密生效,我一定是消息的作者。此外,由于修改加密消息会导致解密失败,您也知道这条消息正是我所写的。

因此,这种方法提供了消息的完整性和认证,是数字签名的基础。

或者,您可以使用我的公钥加密消息并将其发送给我。我可以用我的私钥解密它。没有其他人有私钥,所以他们无法解密消息。因此,该方法提供了保密,但没有验证谁创建了消息,也没有消息完整性的保证,因为任何人都可以创建消息。

这两种方法都起作用,不管公钥有多出名,只要私钥是保密的。

它们都为克服其他问题的更复杂的算法提供了有用的构建块。例如,当你收到我的公钥,你怎么知道它实际上来自我?我不能用我的私钥进行数字签名,因为你还不信任我的公钥。鸡与蛋的问题,解决办法从亲自会面到证书颁发机构.

其他不对称算法可能只能用其中一个密钥加密,另一个密钥可以解密。例如,DSA只支持数字签名,而不支持保密。

甚至RSA也不是真正用于消息保密的。加密长消息太慢了。相反,它被用来协商一个短期的对称密钥,以提高加密速度.请参阅https://security.stackexchange.com/a/185544/30469,以获得更多解释这一点的好答案。

最后一个警告:在使用相同的私钥和公钥对进行身份验证和保密时存在缺陷。别干那事。

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

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

复制
相关文章

相似问题

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