7

在公钥密码学中生成一对密钥,一个私有的和一个公共的,我放在 Github 中的公共。

私钥解密数据,公钥加密数据。这意味着当我将数据发送到 github 时,此数据未加密,因为只有私钥解密数据?

更新:

谢谢各位,我现在明白了。

当我发送推/拉时,我在想我的数据在 github 中是以这种方式加密的。此案例用于登录/验证/签名。这与 SSH 连接为发送我的数据而设置的加密传输流完全不同。

感谢大家的回应...

4

3 回答 3

9

一点都没有错,但是错了。(a) 私钥解密由公钥加密的数据,(b) 公钥解密由私钥加密的数据。

(a):每个人都可以加密某些东西,但只有私钥的所有者才能解密它。

(b):所有者用他的私钥“加密”某些东西,每个人都可以解密它,这确保了真正是所有者,而不是其他人加密数据。

git(hub) 使用第二种情况:如果你推送一些东西,它会用你的私钥签名。接收者现在根据它从您那里知道的公钥来验证签名。如果它匹配,一切都很好。

更新:关于发生的事情的(也许也是)简化描述(将 github 与 ssh 一起使用时)

  • Github 向您发送一些随机的东西,用他的_private_ 密钥加密(也许它不是那么随机,我不知道,但在这里没关系)
  • 你收到它并用他的_public_密钥解密它。如果这是可能的,你可以肯定,你真的在​​和官方的 github 服务器交谈
  • 然后您将使用您的_private_密钥加密的相同随机内容发送到github-server
  • 他试图用你的_public_ 密钥对其进行加密。如果这是可能的,而且是他之前给你发的随机东西,他肯定知道你就是你。
  • 然后你给你发送用他的_public_密钥加密的东西。现在只有 github 服务器可以解密。他还将回答使用您的_public_ 密钥加密的消息/数据,因为只有您可以解密它。

即使它不完全正确,它也应该描述这个想法。

于 2011-05-05T14:02:29.083 回答
2

一个粗略的简化是,当您尝试推送某些内容时,GitHub 将通过使用您的公钥加密一些随机内容并查看您是否可以解密它来向您发送挑战,只有在您拥有私钥的情况下您才能做到这一点钥匙。

于 2011-05-05T14:06:04.023 回答
0

使用私钥加密的数据可以使用公钥解密(反之亦然)

PKI 基于两个密钥(公钥和私钥) 数据可以使用公钥或私钥进行安全加密 只有使用与加密数据相反的密钥才能解密数据

注意:可以从私钥生成公钥(而不是相反)来源:https ://github.com/topics/public-private-key

于 2021-06-24T21:40:35.953 回答