何とか庵日誌

本名荒井が毒にも薬にもならないことを書きつづるところ

ささやかな暗号化の話

 無線LANの秘話通信、ネット上での個人情報送信法等々、今や暗号化技術は欠かせないものになっていますが、それはふた昔前の自作プログラムでも欠かせないものでありました。今回はそんなお話です。





 その昔、雑誌等に掲載されたプログラムで遊ぶためには、自分で入力するという作業が必要だったわけですが、それはプログラムを構成するコードをすっかり読むということでもありました。
 もちろん作中のテキストデータもいちいち自分で入力しなければなりませんでしたが、そのままでは入力しながらあらすじや結末、重要なヒント、謎の解き方等がわかってしまいまして、遊ぶときの楽しみを奪ってしまうという問題をはらむものでありました。つまりプログラムを入力するということは、究極のネタバレだったわけです。
 そこで必要となったのが、暗号化技術でした。もっとも、入力しながら元のテキストがわからなければよかったわけで、技術と呼ぶほどたいしたものではありません。重要なテキストをあらかじめ暗号化しておいて、入力中のネタバレを防ぐというものです。


 一番単純なのは、表示するテキストを逆さまにしておくというものですが、単純すぎてあっさり解読できてしまいます。そこでよく使われたのはIBM→HAL、ENIX→FOJYといった具合に、キャラクターコードを一つ二つずらしたテキストデータを作っておき、表示する際復号するという方法でした。
 暗号としては非常にかんたんで、セキュリティもへったくれもありませんが、限られた容量の中、手の込んだ復号処理を仕込むのは無駄でしたし、一見して元の文章がわからなくなっていればよかったので、これで十分事足りたのです。ただしこのコードスライド法*1にも問題がありまして、ずらしたキャラクターがキーボード上にない文字だったりすると、そのままでは入力できないばかりか、リストを掲載する際も、「○行×番目の空白はキャラクターコード○○番のキャラクターです」と表記するなど、特別な処置が必要となりました。


 こうした問題を解決する最も簡単な方法は、テキストを16進数のキャラクターコードに変換し、データとして持つことでしょう。冒頭で紹介しているのは、電波新聞社の「MSXMSX2プログラム大全集2」に掲載された、マーコンさん制作の「つぐ美のふくわらい大会」という作品です。ベーマガ編集部の紅一点、つぐ美さんをフィーチャーした福笑いゲームでして、結果に応じてつぐ美さんが様々にコメントしてくれるのですが、このコメントデータは16進数のキャラクターコードとして格納されています。ですからコード表片手に解読でもしない限り、入力しても内容まではわかりません。
 どんなコメントがもらえるかというのはこのゲームの一番面白い点ですから、こうすることで、遊ぶ前に興を削ぐのを防いでいるわけです。


 特にテキストがネタバレに直結する打ち込みAVGRPG等々では、暗号化は必須の技術となっていました。この手の作品できちんと暗号化していると、普段は厳しいDr.Dも「メッセージがわからなくなっているのもいいぞ」と褒めてくれました。





 ところが時代が下ると、テキストを暗号化しない作品が当たり前に見られるようになってきます。画像は「ポプコム」1988年7月号掲載、「勇者ねずみっくん伝説」という作品ですが、エンディングにどんでん返しがあるにもかかわらず、まったく暗号化されていません。ゲーム自体の出来は悪くないのですが、結末がわからない状態で遊んでいれば、もっと面白くなっていたのではという気もします*2
 本作はディスク必須なのですが、もしかすると制作者はディスクでの配布を前提として、誰かが入力して遊ぶということを考えていなかったのかもしれません*3
 この頃から打ち込みプログラムは下火になり、プログラム配布もリスト掲載ではなく、ぼちぼちメディアサービスやパソ通でのダウンロードに軸を移しつつありました。今となっては、プレイヤーが直接ソースコードを覗くことも少なくなり、こうした暗号化は、過去のものとなっています。


 暗号化はプログラムを入力することが当たり前だった時代ならではのものでしたが、それは入力者に対する礼儀の一つとなっていたのです。

*1:シーザー暗号やシフト暗号と呼ばれてるようです

*2:しかもそのどんでん返しがヒドいオチだったりする。

*3:その後たまたま作者さんに話を伺う機会がありました。容量的な余裕がなかったことと、採用されるとは思っていなかったため暗号化してなかったそうな。しかしまさかTwitterでやりとりしてる方が作者さんだったとは。