web-dev-qa-db-ja.com

Macとデジタル署名の違いは何ですか

MACアルゴリズムがメッセージと秘密鍵を入力として受け取り、それらを値にハッシュすることを理解しています。送信者と受信者はしばしばMACを使用してメッセージを認証し、メッセージの整合性をチェックすることを理解しています。送信者/受信者が同じmacを正常に計算した場合、(1)受信者は送信者が秘密鍵を持っていることを保証します(2)受信者は送信中にメッセージが改ざんされていないことを保証します(それ以外の場合は新しいメッセージが生成されるため) Mac値)。また、デジタル署名がMACとはどういうわけか異なることも理解しています。しかし、メッセージの送信者と信頼性の両方を確認しているようです。 MACスキームが正常に設定されている場合、メッセージは(1)キーを持つユーザーから送信されたもの(認証を処理)であり、(2)は改ざんされていません(改ざんを処理)。では、デジタル署名はMACが何をしないのですか?違いは何ですか?

15
bernie2436

[〜#〜] mac [〜#〜]デジタル署名 の両方のスキームで、2つのアルゴリズムがあります。

  • Generation:メッセージmとキーK1、MAC値または署名を計算しますs
  • 検証:メッセージm、キーK2とMAC値または署名s、それらが互いに対応していることを確認します(MAC値または署名がメッセージに対して有効です) m、検証キーを使用K2

MACでは、キーK1およびK2は同一です(または互いに簡単に再計算できます)。署名付き、検証キーK2は数学的にKとリンクされています1しかし同一ではなく、再計算することは不可能ですK1からK2または、Kしか知らない場合に有効な署名を生成する2

このように、署名は生成と検証の力を分離します。 MACを使用すると、MAC値を検証できるエンティティは必ず、独自のMAC値を生成する権限を持ちます。署名を使用すると、生成キーを秘密にしたまま、検証キーを公開できます。署名は、第三者に何も委託することなく、第三者が検証できる証明を作成したい場合に使用します。

アプリケーション:CA(VerisignやThawteなど)がSSLサーバーに証明書を発行します。 Everybody、特にWebブラウザは、SSLサーバーに発行された証明書が実際にVerisign/Thawte/whateverによって署名されていることを確認できます。しかし、これでは証明書を自分で発行(署名)する権限がありません。証明書は、Verisign/Thawte /その他から発行されたように見えます。

20
Thomas Pornin

Thomas Porninの答えはいつものように優れていますが、私はポイントを追加したかったのです。それが、これらのそれぞれの検証が表すものの違いでした。つまり、MACはメッセージの整合性を検証するためだけに使用できるということです。署名は、メッセージの整合性だけでなく、送信者のIDも検証します。

違いは、アルゴリズムの対称構造と非対称構造に固有です。 Thomasの投稿に戻ると、MACは対称的です。 MACの生成と検証の両方に同じキー[〜#〜] k [〜#〜]を使用します。そのため、MACを含むメッセージが、相手がこの会話に最初に送信したメッセージであることを確認します。MACが一致するようにメッセージを改ざんすることは困難であると考えられているためです(そして「難しい暗号学における「実際には不可能」という口語的な定義があります。

ただし、対称アルゴリズムのキーは「共有シークレット」であるため、共有する必要があります。つまり、それは本当にシークレットではありません。このキーを他の特定の1人だけと共有する方法は知られていますが、この共有プロセスにより、キーを使用して他の人を明確に識別できます。アルゴリズム自体は、他の人が想定を持っている人であることをいずれかの当事者に示す方法はありません。

デジタル署名OTOHは非対称です。 2つの異なるキーが使用されます。1つは生成用、もう1つは検証用です。検証キーは「公開」です。あなたはそれをあなたの車にスプレーペイントし、それをDEF CON(ハッカー慣習)の真ん中に打ち込むことができ、それはこのスキームを弱めることはないでしょう。繰り返しになりますが、生成キーを知らなくても、メッセージやその署名を生成または改ざんし、一方を他方に一致させることは難しいと考えられています。

この生成キーは「プライベート」です。これは真の秘密であり、一方の当事者だけが知っています。物理的および電子的セキュリティのあらゆる種類の追加レイヤーを実装して、このデータを自分からも保護できます(多くのPKIは、ハードウェアセキュリティモジュールを使用して設定され、実際に秘密鍵を生成して実行しますそれを使用した暗号化;キーがそのHSMを離れることはありません)。したがって、公開鍵で検証できるメッセージに適切に署名する能力に基づいて、会話の相手を明確に特定することが理論的に可能です。これは、そうすることの祈りを持つ惑星が1つだけ存在するためです。 。

4
KeithS

Macとデジタル署名の主な違い[〜#〜] mac [〜#〜 ]は整合性と認証のみを提供し、整合性と認証に加えてデジタル署名も否認防止を提供します。

素人言語では、MACは受信した情報が破損しているかどうかをチェックします。デジタル署名は実際の送信者、メッセージの発信者をチェックします。私たちの日常生活と同様に、デジタル署名が付加されているときに送信者が送信したメッセージを拒否することと同様に、ドキュメントの署名を拒否することはできません。

もう1つの違いは、議論中の2つのアルゴリズムアプローチにあります。 Macは対称鍵を使用しますが、デジタル署名は非対称鍵を使用します。

0
Basirah Noor