7

公開鍵暗号方式では、秘密鍵と公開鍵のペアが生成され、公開鍵は Github に置きます。

秘密鍵はデータを復号化し、公開鍵はデータを暗号化します。これは、データを github に送信したときに、秘密鍵のみがデータを復号化するため、このデータは暗号化されていないことを意味しますか?

アップデート:

みんなありがとう、私は今理解しています。

プッシュ/プルを送信すると、データが github でそのように暗号化されると考えていました。このケースは、ログイン/検証/署名に使用されます。これは、SSH 接続が私のデータを送信するために設定する暗号化された送信ストリームとはまったく異なります。

皆さん、ご回答ありがとうございます...

4

3 に答える 3

9

まったく間違っていませんが、間違っています。(a) 秘密鍵は公開鍵によって暗号化されたデータを復号化し、(b) 公開鍵は秘密鍵によって暗号化されたデータを復号化します。

(a): 誰でも何かを暗号化できますが、秘密鍵の所有者だけが復号化できます。

(b): 所有者が自分の秘密鍵で何かを「暗号化」すると、誰もがそれを復号化できます。つまり、データを暗号化するのは他の誰かではなく、実際には所有者であるということです。

git(hub) は 2 番目のシナリオを利用します。何かをプッシュすると、秘密鍵で署名されます。受信者は、あなたから知っている公開鍵に対して署名を検証します。一致する場合は、すべて問題ありません。

更新:何が起こるかについての(おそらくあまりにも)簡略化された説明(sshでgithubを使用する場合)

  • Github は、彼の_private_ キーで暗号化されたランダムなものを送信します (ランダムではないかもしれませんが、わかりませんが、ここでは問題ではありません)。
  • あなたはそれを受け取り、彼の_公開_鍵で解読します。これが可能であれば、あなたは本当に公式のgithubサーバーと話していると確信しています.
  • 次に、 _private_ キーで暗号化された同じランダムなものをgithub-server に送信します
  • 彼はあなたの公開鍵で暗号化しようとします。これが可能で、それが彼が以前にあなたに送ったランダムなものである場合、彼はあなたがあなたであることを確信しています.
  • 次に、彼の公開鍵で暗号化したものを送ります。これで、github サーバーのみが復号化できます。また、彼はあなたの_公開_キーで暗号化されたメッセージ/データで応答します。これは、あなただけが解読できるためです。

完全に正しくなくても、アイデアを説明する必要があります。

于 2011-05-05T14:02:29.083 に答える
2

全体的な単純化は、何かをプッシュしようとすると、GitHub が公開鍵でランダムなものを暗号化し、それを復号化できるかどうかを確認するチャレンジを送信します。これは、秘密鍵を持っている場合にのみ実行できます。鍵。

于 2011-05-05T14:06:04.023 に答える