2

(足りないものを見つけようとしているだけです...)

ジョンが平文のメッセージを持っていると仮定すると、ジョンは通常のメッセージ(md5 や sha256 など) を作成し、メッセージ暗号化できます。hash

John は Paul にメッセージとその (クリア テキスト) ハッシュを送信できるようになり、Paul はメッセージが変更されたかどうかを知ることができます。(復号化してからハッシュを比較します)。

攻撃者が暗号化されたデータを (復号化せずに) 変更できたとしても(ポールがメッセージを開いてハッシュを再計算した場合)、ジョンが送信したものと同じハッシュは生成されません。

では、なぜキーによるハッシュが必要なのでしょうか?

ここに画像の説明を入力

ここに画像の説明を入力

4

3 に答える 3

1

ハッシュにキーを含めることで、データが元のキーで実際に暗号化されていることが示されるため、それは良い考えである必要はないようです-ほぼ無期限に。上記の例は明らかに機能しますが、メッセージがインテリジェントに操作されていないこと、またはブルートフォースの試行錯誤が行われていないことを 100% 確信することはできないと思います。ハッシュ チェックの失敗をトリガーしません。

メッセージ送信者は HMAC 関数を使用して、秘密鍵とメッセージ入力を圧縮して形成される値 (MAC) を生成します。MAC は通常、メッセージとともにメッセージ受信者に送信されます。受信者は、送信者が使用したのと同じキーと HMAC 関数を使用して、受信したメッセージの MAC を計算し、計算した結果を受信した MAC と比較します。2 つの値が一致する場合、メッセージは正しく受信されており、受信者は、送信者がキーを共有するユーザーのコミュニティのメンバーであることが保証されます。

FIPS PUB 198
連邦情報処理基準発行
「キー付きハッシュ メッセージ認証コード (HMAC)」

上記の方法を使用すると、安全性をさらにチェックする必要があります。メッセージを復号化したら、元のキーをメッセージに追加し、ハッシュ関数を実行します。次に、新しいハッシュと送信されたハッシュを比較します。ハッシュ チェックに合格したものを生成するには、攻撃者がキーを知っている (または非常に幸運である) 必要があることがわかっているため、これはより適切なチェックです。これは基本的に、ハッシュ関数をよく知っている可能性のある攻撃者を回避しようとする試みであり、攻撃者が行うことができる変更を制限します。

于 2012-11-10T08:46:14.587 に答える
0

元の暗号化されていないテキストのハッシュを使用する理由は、セキュリティを強化するためです。ここでの問題は、誰かが暗号化されたデータを操作した場合ではなく、そのアクションが意味のあるものに復号化することはめったにありませんが、キーを持っている誰かがテキストを復号化し、変更し、同じキーで再暗号化するのを防ぎます。

したがって、基本的に、誰かがあなたのテキストを復号化する手段を持っている場合でも、誰かがあなたのテキストを解読し、あなたのテキストを変更し、再暗号化して暗号化されたデータを最終的な宛先に渡す場合、データが操作されたかどうかを確認できます。

例:「Samuel」というテキストが含まれるファイル#1があります。これは、組織内のスパイのほくろの名前です。テキスト「qwerty」を使用してファイル#2に暗号化するとします。私はファイル#2をAdamに配信するためにPeterに渡します。しかし、ピーターは悪意のある卑劣な人物であり、ソビエト連邦のスパイです。彼は以前に私の暗号化/復号化プロトコルを盗み、「Samuel」を「Justin」に変更して私たちを誤解させたいと思っています。そこで、彼は「qwerty」を復号化して「Samuel」に戻し、「Samuel」を「Justin」に変更し、同じルールで「asdfg」に暗号化して、このファイルをAdamに渡します。アダムはファイル#2を正常に復号化し、「ジャスティン」がソビエトのスパイであると想定します。彼が「ジャスティン」をハッシュせず、ハッシュが一致するかどうかを確認するために私に電話をかけた場合。サプライズ!彼らはしない!したがって、誰かがデータを操作したこと、および誰かが復号化/暗号化プロトコルを知っていることを私たちは知っています!データの整合性が保存されました!

于 2012-11-15T17:08:01.880 に答える
0

キーがハッシュされる理由を尋ねると、データベースまたはオペレーティング システムがパスワードをより安全な形式で保存できるようになります。システムは、キーのハッシュを格納されているキーのハッシュと比較することで、キーの有効性を確認できます。

さらに、安全なシステムはキーをハッシュするだけでなく、キー + 既知のランダム パターン (= ソルト) をハッシュするため、最も頻繁に使用されるパスワードのハッシュの辞書を人々が生成することを防ぎます。password = password を使用する場合でも、システムは最初にそれを「passwordAK(43mafk2;」に追加し、ハッシュを計算します。そのハッシュは、他のユーザーの事前に計算された辞書とは一致しなくなりますが、攻撃者は自分のパスワード辞書を「AK」に連結する必要があります。 (43mafk2;" そして、システム内のすべてのパスワードのハッシュをもう一度計算します。

于 2012-11-10T08:06:59.390 に答える