Puzzles for Hackers: スクリプトキディから大人のハッカーへ

おもしろい本を見つけた。暗号解読やリバースエンジニアリングの問題などが実際に挑戦できる形で紹介されている。
Webページのパスワード破りとかが実際に挑戦できる形で収録されているのだが、良いのだろうか(笑)

早速挑戦してみた。

1.1.1 CoolCrypto

creature_creature_creature => ]VTYJQC]aGC]_PDJ[{RJ[EEMLA
のように文字列を暗号化するプログラムがある。アルゴリズムを調べよ。
Puzzles for Hackers:スクリプトキディから大人のハッカーへ (IT Architects' Archive 知の連環) p4

という問題。
とりあえず、16進ダンプと2進ダンプを見てみることにした

%echo "creature_creature_creature" | xxd -g1
0000000: 63 72 65 61 71 75 72 65 5f 63 72 65 61 74 75 72
0000001: 65 5f 63 72 65 61 74 75 72 65 0a
%echo "]VTYJQC]aGC]_PDJ[{RJ[EEMLA" | xxd -g1
0000000: 5d 56 54 59 4a 51 43 5d 61 47 43 5d 5f 50 44 4a
0000001: 5b 7b 52 4a 5b 45 45 4d 4c 41 0a
%echo "creature_creature_creature" | xxd -b -g1
0000000: 01100011 01110010 01100101 01100001 01110100 01110101  creatu
0000006: 01110010 01100101 01011111 01100011 01110010 01100101  re_cre
000000c: 01100001 01110100 01110101 01110010 01100101 01011111  ature_
0000012: 01100011 01110010 01100101 01100001 01110100 01110101  creatu
0000018: 01110010 01100101 00001010                             re.
%echo "]VTYJQC]aGC]_PDJ[{RJ[EEMLA" | xxd -b -g1
0000000: 01011101 01010110 01010100 01011001 01001010 01010001  ]VTYJQ
0000006: 01000011 01011101 01100001 01000111 01000011 01011101  C]aGC]
000000c: 01011111 01010000 01000100 01001010 01011011 01111011  _PDJ[{
0000012: 01010010 01001010 01011011 01000101 01000101 01001101  RJ[EEM
0000018: 01001100 01000001 00001010                             LA.

16進の方はよくわからないが2進の方は規則性が見える。上から3ビット目はすべて反転しているとか下位2ビットの処理は偶数番目の文字では必ず一致とか。
さすがにぱっと見ただけではわからないな〜。時間が無いので後でまた考えてみよう。
暗号技術についてはほとんど知識がないのだが、これはその分野では当たり前に使う暗号化なのかな??
何か本でも読んでみようかな。

本物のハッカーは最初の文字列のみで分かってしまうのだろうか(^^;

Puzzles for Hackers:スクリプトキディから大人のハッカーへ (IT Architects' Archive 知の連環)