暗号
暗号(あんごう)とは、第三者が通信内容や記録内容を閲覧・傍聴(盗み聞き)してもすぐに解読できないようにする手法である。
かつての「媒体がフロッピーディスクであた時代のゲーム・ソフトウェア」では、ゲーム発売から一ヶ月解読されなければオッケーなので、懲り懲りの暗号があった。いわゆる 68 系の命令コードは文字領域と重なっていたため、「挑戦者へのメッセージが埋め込まれたジオ書換え型のルーチン」を装っていながら、じつはこっそり割込み型のタイマーをセットしているという芸術作品もあった。
現在では数論に基いた DES 暗号などが用いられている。トラップドア関数なども参照のこと。
概要[編集]
「解る奴には解る」けれども「分らん奴にはわからん」が、「結果だけ知れればいい」みたいな奴もいるために、エセ情報を撒くのには都合がよい。
本義としては、「秘匿しておきたいデータを、傍聴した第三者から守るためのもの」である。暗号の法則を理解している者同士なら復号することができるが、暗号の法則を分かっていない第三者は閲覧しても意味のない文字の羅列やでたらめな数字の羅列(「踊る人形」「黄金虫」)、あるいは全く別の意味の文章(「掘りだされた童話」)にしか見えない。
古典的な暗号として、「ある文字に別の文字を割り当てる」という「換字式暗号」のほか、文字の順番を並び替える「転置式」などがある。
換字式暗号は出現頻度によってある程度は推定可能で、“ETAOIN SHRDLU”はお約束である。
どちらも換字、転置の法則を見つけ出さない事には内容を解読することができない。より古典的な暗号としては少数民族の言語や方言など分かる人が少ない言葉を用いるものがある。
符牒も、意味を知らない第三者からすれば暗号のようなものである。
復号・解読[編集]
暗号は通信手段の一種であるため、相手が復号できなければ意味がない。それを横から「解読」するための努力があるわけで、有名なものとしては「エニグマ暗号」「紫暗号」がある。
アラン・チューリングが開発に携わった「ボンベ」は、エニグマ暗号を破るためのものであった。すなわち記号処理系のコンピューターの祖といえる。対してフォン・ノイマンの「ENIAC」は、高射砲の軌道計算のために開発されたものであり、数値計算系のコンピュータである。
「私のカードの暗証番号は、十三番めのタクシー数の mod(1000)だ」みたいな話になると、第三者は解読を諦める。昨今はネットsワーク社会なので、「このパスワードでログインした奴はシーフだ」ということになって、いわゆるハニートラップであったりもする。
参考文献[編集]
- コナン・ドイル『踊る人形』
- エドガー・アラン・ポォ『黄金虫』
- 江戸川乱歩『二銭銅貨』
- 泡坂妻夫「掘出された童話」
その他[編集]
ソフトウェア関連では、逆アセンブラによるバイトコード解析によって仮想マシンを「発掘」した例があり、外にも「FORTRAN のコードをC言語に変換するツール」によって「GOTO文の砂嵐」と化したコードから、「ペトリネットによる仮想機械」を発掘した実例がある。