表題の通り。
今回も外部パッケージの力を借りてLSB置換法に基づくステガノグラフィを試してみた。
参考にしたのは以下のリポジトリである(Steganography/stego_lsb)。
リトルエンディアン環境で正常に動作するよう、バグを修正したPythonコードを以下に置いた。
https://gist.github.com/tam17aki/fa084a9e698ffd255791750b923cdc8c
下記の内容が書かれたテキストファイルをまるごと、waveデータに埋め込んでみた(utf-8)。
A01 あらゆる 現実を すべて 自分の ほうへ ねじ曲げたのだ。 A02 一週間ばかり ニューヨークを 取材した。 A03 テレビゲームや パソコンで ゲームを して 遊ぶ。 A04 物価の 変動を 考慮して 給付水準を 決める 必要がある。 A05 救急車が 十分に 動けず 救助作業が 遅れている。 A06 言論の 自由は 一歩 譲れば 百歩も 千歩も 攻めこまれる。 A07 会場の 周辺には 原宿駅や 代々木駅も あるし ちょっと 歩けば 新宿御苑駅も ある。 A08 老人ホームの 場合は 健康器具や ひざ掛けだ。 A09 ちょっと 遅い 昼食を とるため ファミリーレストランに 入ったのです。 A10 嬉しいはずが ゆっくり 寝ても いられない。 出典:http://research.nii.ac.jp/src/ATR503.html
結果は次の通り。元の音声(host.wav)とメッセージが埋め込まれた音声(stego_lsb.wav) (初回はロードが入り冒頭の音が欠けるので再生は2回目以降)。
メッセージが埋め込まれることによる音質の劣化は確認できないので、優れた手法のように思える。しかしながら、この手法は「攻撃」に弱いのが欠点である。