このプロジェクトでは、画像を使用して事例を示しています。まず、画像のエンコーディング形式である ppm について説明しています:
- 最初の行は ppm ファイルの形式を示します
- 2 行目は幅と高さを示します
- 3 行目は色の範囲を示します
- その後は各ピクセルの RGB 値です
P3
2 2
255
29 83 36 45 64 57
188 229 201 123 162 184
彼は次のように説明しています:
私たちはメッセージを隠す方法を探求します。ほとんどの画像の各 RGB チャンネルは 8 ビットのデータを持っていますが、人間の目は後ろの 4 ビットの違いを簡単に見分けることができません。そのため、情報を画像の下位ビットに隠すことができます。各ピクセルの B 値の最下位ビットを変更することにより、情報を隠します。最後のビットが 0 の場合、ピクセル全体を黒色に変換します(255,255,255)、最後のビットが 1 の場合、白色に変換します(0,0,0)。
重要なのは:各 RGB チャンネルは 8 ビットのデータを持っていますが、人間の目は後ろの 4 ビットの違いを簡単に見分けることができないため、操作の余地が生まれるということです。