私はデジタル署名検証のプロセスを理解しようとしていますが、私の本では説明がまったくわかりません。
Aがデジタル署名を使用してBにメッセージを送信する場合、プロセスは明らかに次のようになります。
まず、この説明は正しいですか?
次に、BはどのようにしてAの公開鍵を使用してハッシュを復号化できますか?公開鍵の目的は、データを暗号化できるようにすることです。
なぜAは秘密鍵で何かを暗号化するのですか? Bにメッセージを送信する場合、AはBの公開鍵を使用しませんか?
Aが最初にプライベートキーを使用して最初のハッシュを作成した場合(AのプライベートキーはBに知られていません)、元のメッセージに同じハッシュアルゴリズムを適用して同じハッシュを作成するにはどうすればよいですか?
この説明が正しくない場合、どこが間違っていますか?
暗号化と(デジタル)署名は異なる PKIのアプリケーションです。
最初に(唯一)最も関連する概念:
あなたの例では、問題の1つは、両方を組み合わせたことです。通常のデジタル署名プロセスには、
BがA-PubKeyでハッシュを復号化できたことは、否認防止の技術的側面を確立します。ハッシュが同じである場合(その場合)、ドキュメントの整合性が確立されます。
これらのイラストは、ウェブで無料で入手できる多数の記事/ビデオで見ることができるはずです。
ハッシュプロセスと暗号化プロセスは2つの異なるものです。
メッセージを暗号化する方法は2つあります。1)送信者の秘密鍵を使用して暗号化し、受信者が送信者の公開鍵を使用して復号化します。2)受信者の公開鍵を使用して暗号化し、受信者が秘密鍵を使用して復号化します。
ハッシュ部分...メッセージのハッシュは、送信者がメッセージをハッシュして結果を送信する別のプロセスです。受信者はまた、復号化されたメッセージをハッシュして、結果を比較します。一致がある場合、受信者は復号化されたメッセージが検証されたことを確認します。
この説明は正しいです。
編集:技術的な操作を明確にするためにこれを追加します署名付きメッセージを送信するときは、プレーンテキストと、プレーンテキストのハッシュ出力である暗号文のブロックを送信しています。ハッシュ出力は改ざんから保護する必要があるため、秘密鍵で暗号化されます。適切に復号化できるのは公開鍵だけです。次に、受信者は平文に対してハッシュ関数を実行し、メッセージに添付した復号化されたハッシュ出力と出力を比較できます。両方が一致する場合、メッセージは「本物」と見なすことができます。 編集の終了
あなたを混乱させているように思われる点は、秘密鍵と公開鍵の役割です。これらのキーは機能的に同じです。対称暗号化では、2つのキーを使用して平文を暗号化および復号化します。これは、あるキーから別のキーへの一方向の関数ですが、いずれかの方向です。
これは、暗号化の技術的で数学的な部分が、公開鍵インフラストラクチャの管理/ポリシー部分に物事を引き渡すところです。鍵ペアが生成されると、一方の鍵は「秘密」に指定され、もう一方は「公開」に指定されます。どのキーがどの用途に使用されるかは関係ありません。それらは交換可能です。アルゴリズムに関する限り(少なくとも、ある意味で機能的な部分は...私は技術的な数学の部分では大きくなく、理論だけです)。
理論的には自分だけがその鍵にアクセスできるため、秘密鍵で署名します。それはあなたがメッセージを送った「保証」です。公開鍵は理論的には誰でも誰でも利用できます。メッセージが署名/暗号化されていて、その公開鍵が偶然にそれを検証/復号化している場合、秘密鍵がメッセージに署名/暗号化したことはかなり確実です。
したがって、秘密鍵を使用して送信することは、暗号化の「メッセージを隠す」という観点からは実際には効果的ではありませんが、「メッセージの信頼性/発信元の保証」からは非常に効果的です。
これが、PKIと対称暗号化で双方向のプライベートな会話をしたい場合、bothの両当事者が独自の鍵ペアを必要とする理由です。