@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

エントロピー値の算出ツール

SANS SIFT のツール一覧を眺めていたところ、エントロピーを計算するツールとして ent なるコマンドが含まれているんですね。
Windows版のバイナリとかないかものかと検索してみたところ、オリジナルのサイトには Windows 版のバイナリがあったので、早速ダウンロードして簡単にテストしてみました。

ENT:A Pseudorandom Number Sequence Test Program
http://www.fourmilab.ch/random/

近似ファイルの検出に使いたいので、とりあえずパワーポイントのファイルを題材に、test001.ppt がオリジナルで、ここからスライドを2枚削除した test002.ppt を作成してエントロピーを計算。

C:\case\ent\random>ent -b test001.ppt
Entropy = 0.998876 bits per bit.

C:\case\ent\random>ent -b test002.ppt
Entropy = 0.998918 bits per bit.

C:\case\ent\random>ent test001.ppt
Entropy = 7.771158 bits per byte.

C:\case\ent\random>ent test002.ppt
Entropy = 7.764736 bits per byte.

オプション -b を指定した場合にはビットで、何も指定してない場合はバイト単位で計算ってことなんでしょうかね。
中身が同じファイルでは同じ結果数値が得られますが、ハッシュ値と違って、ファイルの中身が単に 1 文字違いとかだと似た数値か同じ数値が表示されてきます。

echo forensics > a.txt
echo Forensics > b.txt

C:\case\ent\random>ent -b a.txt
Entropy = 0.999687 bits per bit.

C:\case\ent\random>ent -b b.txt
Entropy = 0.998747 bits per bit.

C:\case\ent\random>ent a.txt
Entropy = 3.418296 bits per byte.

C:\case\ent\random>ent b.txt
Entropy = 3.418296 bits per byte.

確かにこれが EnCase から使えると便利かも。最近の EnCase はエントロピーを使えるらしいので、後は @cci_forensics な人にお任せということで。