例を挙げましょう。プレーンテキスト:HJOU UT
暗号文:IKPV VU
上記の1つは、単純な置換手法です。データはランダムなテキストです。攻撃者が-1を代入すると、GINT TS
。それ以外の場合、攻撃者が+1すると、HJOU UT
は実際のデータです。
では、実際のデータをどのように決定するのでしょうか。ほんの一例です。実生活では、ブルートフォースを使用してデータをどのように抽出していますか?
適切に復号化されたファイルのエントロピーは、不適切にデコードされたファイルのエントロピーよりも低くなっています。
たとえば、適切にデコードされたJPGファイルには、低エントロピーである文字列ABCDEFを含むヘッダー情報が含まれています。また、デコードされた電子メールには文字列のヘッダーが含まれます(7ビットデータも低エントロピーです)。
エントロピーは、結果を圧縮することで測定できます。ヘッダーのみで十分です。したがって、圧縮されたヘッダーは結果よりも小さくする必要があります。つまり、ブルートフォースが成功したことを意味します。それ以外の場合は、圧縮された結果が元のサイズより大きくなり、ブルートフォースが失敗したことを意味します。
不適切に復号化されたファイルは、完全にランダムなバイトストリームです。圧縮すると大きくなりますが、正しく復号化されている場合は小さくする必要があります。
ブルートフォースを高速化するために、エントロピーレベルのチェックを工夫することができますが、現時点では実現できません。現在、最小の暗号化規格はブルートフォース可能ではないAES-128であり、AES-256が主流になりつつあります。それよりも少し小さいが、非常に近い。
では、実際のデータをどのように決定するのでしょうか。
攻撃者の期待に一致するもの。たとえば、攻撃者が結果としてテキストメッセージを期待している場合、ゴミは捨てられ、読み取り可能なテキストのように見える結果のみが保持されます。また、攻撃者がオフィスのドキュメント、画像、ビデオを期待している場合、これらのファイル形式は典型的な構造であるため、同様のチェックを行うことができます。