森の中に木を隠す
http://articleimage.nicoblomaga.jp/image/54/2012/6/e/6e03898489fbae133306e3b5577a6daee8b33ffd1345172403.jpg
パソコンからWebの各種サービスを利用する場合、パスワード、クレジットカード番号、購買履歴など様々な秘密情報を扱うことになりますが、こういった情報を普通のファイルに書いておくと、何かの機会に他人にみつかってしまう可能性がありますから、なんらかの方法で隠しておく必要があります。
「秘密情報の管理」で説明したような、特殊な装置を使えば秘密状態を管理することができます。このような装置は鍵のような感覚で利用することができるので手軽ですが、鍵と同様の厳重な管理が必要ですし、データのバックアップなどに注意が必要です。秘密ファイルは普段は見えないわけですから、自動的にバックアップすることはできないでしょうし、間違って消してしまってもしばらく気付かないかもしれません。また、秘密データをネットワーク上に置くことができませんし、自分が使うあらゆるマシンで正しく動くようにするのは大変でしょう。特殊な装置を使わず、一般的な暗号化アルゴリズムを利用すれば、データをどこに置いてもかまいませんし、バックアップ関連の問題も減ると思われますが、暗号化されたデータの存在がバレてしまうと解読アタックを受ける可能性があります。 手軽に秘密情報を安全に扱うためには、以下のような要件を満たす必要がありそうです。
特殊なハードウェアを必要としない
他人にみつかりにくい
他人にみつかっても困らない
他人には解読できない
置き場所や存在そのものを忘れない
誤って消してしまうことがない
私の場合、忘れる技術が大得意なので、秘密情報を隠したことを忘れないようにすることは非常に大事です。 ステガノグラフィー
暗号化したことがわからないように秘密データを普通のデータの中に埋め込む手法をステガノグラフィーと呼びます。普通の暗号と異なり、データが隠されていること自体を隠してしまうため、解読の危険に晒される危険が少ないと考えられています。もとのデータに重畳する形で秘密データを書き込むため、秘密データのサイズをあまり大きくすることはできませんが、パスワードやクレジットカード番号のように秘密データのサイズが小さい場合は、写真データのような大きなファイルに埋め込んでしまえばうまく秘密データの存在を隠すことができます。秘密データを隠す対象としては動画・画像・音楽のような、複雑かつどこにでもあるデータを利用するとよさそうです。 デジカメなどで標準的に使われているJPEG画像ファイルにデータを隠すことができるJPSEEKおよびOutGuessというシステムを使って、私の写真に秘密情報を埋め込んでみました。 (1)がもとの画像です。
http://gyazo.com/a9241803acf7b4ff3767f17eecdd283d.png
(1)オリジナルのJPEGデータ(133×155ピクセル/5654バイト)
http://gyazo.com/4d50836ab4521523bab30c63ef71943d.png
(2)JPHIDEで円周率の先頭40桁("3.1415...")を埋め込んだもの(5322バイト)
http://gyazo.com/44fe1d499e99577df95eb5ff9ca32dd0.png
(3)JPHIDEで円周率の先頭200桁を埋め込んだもの(5326バイト)
http://gyazo.com/0868708c637260f690cf0e9ac7148936.png
(4)OutGuessで円周率の先頭200桁を埋め込んだもの(5408バイト)
(3)と(4)は同じデータを同じ画像に埋め込んだ結果ですが、JPHIDEの方が画像の劣化が小さいようです。パーソナルな写真や動画に秘密情報を埋め込んでおくことにすれば、前述の条件をうまく満たすことができます。デジカメ写真フォルダ内のデータは滅多に消すことはないでしょうし、注意してバックアップするのが普通です。また家族や他人に見られて困ることはありません。秘密情報を埋め込んだことを忘れてしまう可能性はありますが、それを忘れてしまうようならば大した秘密情報ではないでしょう。どの写真が秘密情報を含むものかを忘れた場合は、手持ちのすべての写真に対して復号を試みてみればよいでしょう。
ステガノグラフィーを使って秘密を隠す方法は現在あまりポピュラーではありませんが、潜在的なニーズは多いと思います。JPHIDEやOutGuessはあまり使いやすいとはいえないのですが、インタフェースを改良した使いやすいものがあれば、ちょっとした秘密の管理に便利でしょう。