web-dev-qa-db-ja.com

機密性のない認証または暗号化のない認証があるとはどういう意味ですか?

出会った これらの機能 m+EeA(H(m)) (機密性のない認証の場合)および m+H(m+k) (暗号化なしの認証の場合)そして、私はそれらを理解するのに少し苦労しています。これらの関数の適切な使用例は何ですか?

私は情報セキュリティのコースを受講しています。これらの機能は他の機能と一緒にスライドに含まれており、それらを調べたところ、それがわかりました。それらの使用法と、ユーザーにセキュリティを提供する方法については、まだはっきりしていません。

3
Django

最初に、この情報を取得していたスライドは、質の高いスライドであるとは言えません。


プレゼンテーションでm+H(m+k)と呼ばれるものは、対称メッセージ認証を提供するための貧弱な試みとして実際に解析できます。これを解析する方法がわからない場合、2番目の部分は次のとおりです。基本的に何が記述されているか Cryptoのここにあります。 良いハッシュを使用すれば、かなり安全です。 Hとして機能します。これは、メッセージ認証を実際に行う方法の良い例ではありません。これは、単独で認証するのではなく(GCMなどを使用するのではなく)、この構成よりもはるかに強力なセキュリティプロパティを持つHMACを使用することです。オーバーヘッド。

アプリケーションに関しては、基本的にこれを行うTLS暗号スイートがあります。メッセージを暗号化するのではなく、対称的に認証します。潜在的な使用例は非常にまれであるため、実際には何も考えることができません(ただし、暗号スイートがいくつかあるか、そうでない場合はありません)。厄介な例として、政府が暗号化を禁止している(つまり、すべての暗号化アルゴリズムを禁止している)場合、これは取得できる最高のセキュリティレベルであり、メッセージを非表示にせず、メッセージが隠されていないことを想像できます。輸送中に改ざんされました。

その他の関数m+E_{eA}(H(m))エクスプロイト 一般的な誤解秘密鍵による暗号化はデジタルメッセージへの署名と同等 。 「秘密鍵eAを使用してメッセージのハッシュを暗号化」して、メッセージにmを署名することを提案します。

これには実際に多くの実用的な用途があります。 1つ目は契約に署名することです。つまり、署名を本物にしたいが、メッセージの内容を非表示にしたくない場合があります(契約の場合もそうです)。もう1つは、銀行取引を承認することです。つまり、多額の支払いを承認します。これは通常、企業レベルの支払いでのみ発生します。最後の本当に重要なユースケースは証明書です。信頼できる当事者が署名した場合m=your_name+your_public_key、このキーをあなたにバインドし、他の人がこのキーを使用してあなたに連絡したり、あなたの署名を検証したりできるようにします。

2
SEJPM

質問の最初の方程式はデジタル署名を表しています。送信者の秘密鍵で暗号化されたメッセージのハッシュがあります。受信者(または他の誰でも)は送信者の公開鍵を使用して復号化でき、ハッシュを再計算することにより、メッセージが変更されていないことを判別できます。

2つ目は、キー付きのメッセージ認証コードです。ハッシュは、メッセージとキーkで計算され、送信者と受信者の間で共有されます。受信者はkのコピーとメッセージを使用してハッシュを再計算し、再計算されたハッシュをメッセージに添付されたハッシュと比較します。

1
Bob Brown