我理解非对称加密的工作原理是让您的计算机只知道私钥,而公钥则由您的计算机提供给任何希望安全地与其通信的计算机。要解码加密的消息,计算机必须使用原始计算机提供的公钥及其自己的私钥。
是什么阻止攻击者监听到你在数据旁边发送的密钥?如果它实际上不是与加密的数据一起发送的,那么服务器在什么时候接收到它需要解密的密钥?
我知道这可能是一个明显的答案,但密码是我在IT方面的弱点。在谷歌上搜索也无济于事,答案也太简单了,或者根本就没有覆盖到网络方面(当一个密钥被发送、接收以及由谁发送时)。
发布于 2018-09-06 21:24:46
您对非对称密码系统工作原理的理解有一定的缺陷。通常,公钥不用于解密任何内容。它被用来加密。私钥用于解密。
有几种机制可以使秘密通信以服务器持有的公钥/私钥对开始。在大多数情况下,它们涉及客户端和服务器交换消息以建立共享对称密钥,这两者都用于后续通信。
在最简单但有点不受欢迎的方法中,客户端选择对称会话密钥,用服务器的公钥对其进行加密,并将其发送到服务器。由于会话密钥是用服务器的公钥加密的,因此任何观察者都无法确定它是什么。
建立会话密钥的更复杂的方法包括Diffie-Hellman密钥交换和椭圆曲线Diffie-Hellman密钥交换。这些方法避免通过网络发送任何密钥,并在服务器密钥将来受到损害时保持保密,但涉及一些数学问题,以允许服务器和客户端都可以导出相同的密钥。
在任何情况下都不可能是通过网络发送的公钥对的私有部分。
发布于 2018-09-06 21:16:20
用于解密的不是公钥,而是私钥。
例如,Alice给Bob发了一条消息。这意味着Alice使用Bobs公钥加密消息,Bob使用他的私钥解密消息。
希望这有助于清洁,我不是一个安全专家。
下面是这样一个加密/解密过程的示例:wiki://wiki/RSA_(密码系统)
发布于 2018-09-07 06:53:09
使用至少一些非对称加密算法,例如RSA,其中一个密钥可用于加密消息,而另一个密钥将解密结果。
如果我将私钥保密并公开我的公钥,那么有两种通信方式:
我可以用我的私钥加密一条信息并发送给你。你可以用我的公钥解密它。任何截取消息的人也可以用我的公钥解密它。那么我取得了什么成就呢?好吧,你和其他人都知道只有我有私钥,所以要使解密生效,我一定是消息的作者。此外,由于修改加密消息会导致解密失败,您也知道这条消息正是我所写的。
因此,这种方法提供了消息的完整性和认证,是数字签名的基础。
或者,您可以使用我的公钥加密消息并将其发送给我。我可以用我的私钥解密它。没有其他人有私钥,所以他们无法解密消息。因此,该方法提供了保密,但没有验证谁创建了消息,也没有消息完整性的保证,因为任何人都可以创建消息。
这两种方法都起作用,不管公钥有多出名,只要私钥是保密的。
它们都为克服其他问题的更复杂的算法提供了有用的构建块。例如,当你收到我的公钥,你怎么知道它实际上来自我?我不能用我的私钥进行数字签名,因为你还不信任我的公钥。鸡与蛋的问题,解决办法从亲自会面到证书颁发机构.
其他不对称算法可能只能用其中一个密钥加密,另一个密钥可以解密。例如,DSA只支持数字签名,而不支持保密。
甚至RSA也不是真正用于消息保密的。加密长消息太慢了。相反,它被用来协商一个短期的对称密钥,以提高加密速度.请参阅https://security.stackexchange.com/a/185544/30469,以获得更多解释这一点的好答案。
最后一个警告:在使用相同的私钥和公钥对进行身份验证和保密时存在缺陷。别干那事。
https://security.stackexchange.com/questions/193186
复制相似问题