题
我明天有高级开发考试,但我被加密主题困住了。我已经读过它了 http://support.microsoft.com/kb/246071. 。然而我还是很困惑。
如果消息使用非对称加密和公钥进行加密,解密者如何知道用来解密的私钥?当然,做到这一点的唯一方法是公开私钥,但这违背了非对称加密的目的。
有人可以用非技术人员能够理解的方式解释一下吗?它只是我不明白的非对称加密,而不是对称加密。提前致谢。
问候,
理查德
编辑:总结一下网络应用程序的所有答案(我需要了解这一点的具体用途):
- 用户访问网站;
- 要求用户提供公钥;
- 用户创建公钥和私钥对,将私钥保密,并将公钥发送回服务器;
- 服务器使用公钥对需要发送给用户的任何内容进行加密,并将信息发送给用户;
- 用户使用他/她的私钥解密服务器的响应;
- 用户执行他们需要的操作并向服务器发回响应,并使用私钥对其进行加密;
- 服务器使用公钥解密。步骤 4 - 7 可能会持续多次,也可能仅发生一次,或者仅发生 4 和 5。
这一切都正确吗?如果是这样,那么这应该就是我考试时需要知道的全部内容。如果出现有关此主题的问题,我认为我不需要了解更多信息即可获得最大 40% - 不过我会提到证书和签名的存在。
感谢您的所有帮助。
问候,
理查德
编辑:嗯,我刚刚考试回来,我认为一切顺利。但没有出现有关密码学的问题,但是......无论如何,我们非常感谢您的帮助。谢谢大家。
问候,
理查德
解决方案
Alice 创建了她的私钥 + 公钥。她将私钥保密。她公开了她的公钥。
鲍勃获取爱丽丝的公钥(他应该首先验证,这确实是爱丽丝的公钥!),并使用它来加密发送给爱丽丝的消息。
Alice 可以使用她的私钥解密该消息。
其他提示
其他人提供了“通用”描述,我将更深入地了解现实生活的一面。
大多数现代非对称加密标准不使用原始公钥和私钥,而是使用更复杂的包装器,例如 X.509 证书或 OpenPGP 密钥(这是当今两种最流行的非对称加密基础设施)。证书和 OpenPGP 密钥都包含额外的信息,可以轻松识别、搜索和管理它们。
现在,加密的数据块通常包括公共部分(即用于加密的证书或公共 OpenPGP 密钥),或者至少是 ID(此公共部分的哈希值)。数据的接收者通常拥有(或应该拥有)公共和私有部分(私钥通常与证书或公共 openpgp 密钥保存在一起)。因此,当接收者收到加密数据时,他知道他需要在其私钥存储中查找具有给定 ID 的公共部分(或者当它包含在加密数据中时查找给定公共部分)。
存在不包含任何内容的情况。然后接收者无需做任何事,只能尝试所有可用的私钥进行解密。但这种情况很少见,因为默认情况下,证书或密钥 ID 存在于加密数据块中。
公钥由“解密者”提供给“加密者”,因此,根据定义,“解密者”知道私钥(因为它是“解密者”创建的密钥对的一部分。
假设“解密器”= D,“加密器”= E。
D 之前将其公钥发送给 E,因此 E 可以加密该消息。因为只有 D 知道自己的私钥,所以只有 D 才会知道如何解密 E 刚刚发送给他的消息(记住:一个密钥用于加密,另一个用于解密)。通过这种方式,您可以获得隐私。