web-dev-qa-db-ja.com

機密性は整合性を提供しませんが、それを可能にしますか?

暗号化によってデータの整合性が提供されるのはよくある誤解であるとのことです。

このトピックに関して非常に投票された質問- 暗号化は整合性を保証しますか? -いくつかの非常に洞察に満ちた回答があります。たとえば、投票数の多い回答は次のとおりです。

いいえ。これは、シンプルな(理論的には)完全に安全なシステムであるワンタイムパッドを検討すると簡単にわかります。出力の一部を変更すると、クリアテキストの一部が変更され、受信者はこれを検出することができません。

それは完全に理にかなっているので、暗号化によって整合性が保証されるという答えが明らかにないことは明らかだと思いますが、攻撃者が機密性を破って変更を判断する必要があるため、暗号化によって他の整合性検証手段が有効になると述べるのは正しいことです。より高いレベルのデータの整合性チェックが適用されている場合、メッセージの1つが適用され、検出されないことがありますか

たとえば、メッセージに受信者が予期している定義済みの構造がすでにあり(つまり、可能なビット変更のサブセットのみが有効である場合)、そのメッセージの内容を非表示にする行為により、攻撃者が正しく選択することが非常に困難になります。それらの可能な変更の1つ(または、実際にそれらに情報がない場合、ランダムにビットを変更することができます)、その場合、暗号化は少なくとも整合性を有効にしますか?あるいは、別の見方をすると、暗号化により攻撃者はせいぜいランダムに暗号テキストのビットを変更することができるため、既存の情報が何らかのタイプの(おそらく効果的でない)整合性チェックとして機能する可能性がありますか?つまり、ビットが変更されると、送信者がこれらの特定の単語のスペルを間違えなかったか、またはコンパイルコードを送信したことを受信者が知っているにもかかわらず、ドキュメントでスペルミスが発生したり、暗号化コードファイルが正しくコンパイルされなくなったりする可能性があります。

1
krb686

説明を明確にするために更新されました

特定のメッセージが特定の構文に従うかどうかは、非常に弱い整合性チェックです。また、送信側のバグで、メッセージが特定の形式ではない可能性があります。

この回答で述べたように 、一般的な暗号の多くは自明です。つまり、暗号化テキストを変更して、有効なプレーンテキストを生成することが可能です。有効な平文のセットを小さくすることで、さらに一歩先を行おうとしています。もちろん、攻撃者にとってタスクは少し難しくなりますが、十分な時間とデータセットが与えられると、攻撃者は完全性チェックにも合格する可能性があります。

次のシナリオを検討してください。
アリスはボブと話し、イブは会話を聞いています。彼らは機密保持のためにブロック暗号を使用しています。しばらく会話を聞いた後、イブは使用しているブロック暗号で遊ぶのに十分な暗号文を持っています。アリスが送信した次のメッセージはイブによってインターセプトされ、他のいくつかの以前の暗号文とマージされ、ボブはそれを解読してフォーマットが正しいことを確認できます。このメッセージは、偽造であっても整合性チェックを通過します。

2
Limit