Sim's blog

電子工作はじめてみました

ICFP2007 (25) Steganography

2007-09-30 02:13:19 | ICFPプログラミングコンテスト
ICFP2007 (24) 画像修復(3)の続きです。

修復ガイドのpage 3にはsteganographyのことが書かれていました。steganographyは、画像に秘密を埋め込む技術ということのようです。暗号と違うのは鍵に相当するデータがないので隠し方自体が鍵になっていることです。


二つの絵のうち左側が右側に隠されていると書かれています。左側の絵は右側の絵のLSBとして埋め込まれていました。

各RGB値についてLSBが1のとき0xff、0のとき0x00に変換した画像です。


なんか目がチカチカしますが、埋め込まれているのが分かると思います。

他にもないか探してみました。修復ガイドのpage 112です。


同じようにLSBだけ取り出してみました。


ETのいた辺りに何か文字があるのが見えます。拡大してみます。


cow-tailの暗号鍵の9546がこんなところに隠されていました。
ページ番号の112ですが、海外では緊急通報用の電話番号だそうです。日本の110番みたいなものでしょうか。

LSBではありませんが、黄色の文字を読んでいくとprefixになっているものもあります。過去10年間のICFPの紹介です。

[contest-1998] IIP


[contset-1999] IFFCPICPF


[contest-2000] FIICPIIC


[contest-2001] IPPPI


[contest-2002] CIIC


つなげるとhillsEnabled(0x03346a)をFからPに変えるprefixになっています。
IIPIFFCPICPFFIICPIICIPPPICIIC
(?IFPFCC)F; #0P;

prefixが埋め込まれているのは2003までですが、この紹介自体は2007年まであります。ついでなので載せておきます。
[contest-2003]


[contest-2004]


[contest-2005]


[contest-2006]


[contest-2007]


最多優勝はOCaml(1999, 2000, 2002)とHaskell(2001, 2004, 2005)の3回です。さすがにFunctional Programmingの学会ということでしょうか。