青竹雑記帖(6代目)

テキスト処理をメインとしたIT解説をします。

文字だけで扱うコンピュータの世界(9.5):たぬきさんの暗号解読

本日は息抜き

こんばんは。今日は久々に丸一日空いたので部屋を浄化し、家から搬出する本や雑誌を選定していたら12時間が経っていました。そのため、本来の題材を休んで、息抜きでもやります。お題は「たぬきさんの暗号」です。

たぬきさんからの手紙

暗号がだいすきなたぬきさんからの手紙が届きました。いつもはAES 256bitで暗号化して送ってくる上に暗号鍵をくれないので、解読に無限の時間がかかって今も終わっていませんが、今日の手紙はなんか読めそうなものを送ってきてくれました。

こんたたばたんたたたたはた。きょたたたたたうたたのたごたはんたたたはたたらたーめたたんたたでたすた。たとたたたたてたたもおたたいたしたいでたす。ばたんたざたいたた!

ヒント:そう、わたしです!

そういえば昔から有名な謎かけがありました。たぬきさんからの手紙は「た」を抜いて読めばいいんだ! では紙に印刷して「た」以外の文字に丸をつけ……なんて面倒なことはいりません。上の暗号文をテキストエディタにコピーしてください。そして、以前説明した「置換」の機能で、「た」を消してしまいましょう。

サクラエディタの画面に暗号文を貼り付けました。
サクラエディタの画面に暗号文を貼り付けました。

「置換」コマンドを呼び出します。「編集」メニューをクリックし、次に「置換」サブメニューをクリックしてください。
「置換」コマンドを呼び出します。

置換前の欄に「た」を入れ、置換後の欄をカラッポにしておくと、「すべて置換」ボタンを押した瞬間に「た」が消えます。

置換画面です。置換前の欄に「た」を入れ、置換後の欄をカラッポにしましょう。
置換画面

「た」を全部消した結果です。
「た」を全部消した結果です。

こんばんは。きょうのごはんはらーめんです。とてもおいしいです。ばんざい!

おいしいラーメンを食べたみたいです。よかったですね。

たぬきさん(?)からの手紙

その直後、たぬきさんからの手紙がまた来ました。

こfa-upw3j4rんaf2qwtaば.[@/;/:kpoんは。:ikopあafし09opkjegたj:pのごはfasdんはうど"$#%&んhafwaですvawsd。あなwerq3wtygtた+IUJNがtefasrutagdすきeyzbbmrwgy150791345]{:[]なうafscwarnどんafwa sはうdasfzcえす46+44とでfaすか、す(')'%()&けafa3awqrさんうaaaどrq2wqrqんzxdvcでIHU0-7すか、まafseqきVXDのZSDう'()どzvcvzんですか。こfasewれZXDvふくfasdrfwqeおかあaeたfり16541385464のafsddasひddddとVzxcvにzxcvしかわaew1616131rd1634かzvdxりまzxvczせKL+*afんね。

ヒント:ひらがなをよんでください。

ヒントというかほぼ答えが来ましたけど、めっちゃ読みづらいです。どうにかなりませんかね。……できます。そう、テキストエディタならね。これまただいぶ前に説明した「正規表現」を利用して、ひらがなと句読点以外の文字を消しちゃいましょう。

今度は「正規表現」のチェックマークを入れ、呪文(正規表現)を入力しましょう。
今度は「正規表現」のチェックマークを入れ、呪文(正規表現)を入力しましょう。

なんと、ひらがなだけを取り出すことに成功しました!
なんと、ひらがなだけを取り出すことに成功しました!

こんばんは。あしたのごはんはうどんです。あなたがすきなうどんはうえすとですか、すけさんうどんですか、まきのうどんですか。これふくおかあたりのひとにしかわかりませんね。

ひょっとしてこのたぬきさん、福岡県在住なんですかね? ここで呪文を説明します。

[^あ-ん、。]*

記号を順に読んでいくと、「半角始め角カッコ、半角サーカムフレックス、あ、半角ハイフン、ん、読点、句点、半角終わり角カッコ、アスタリスク」になります。なんのこっちゃ。

  • 角カッコ:この中に書かれた文字、文字の範囲を表現する。
  • ハイフン:文字の範囲を結ぶ。「あ-ん」だとひらがな五十音の表現になる。
  • サーカムフレックス:範囲の指定を逆にする。この場合は「ひらがな五十音、読点、句点以外」を表現する。
  • アスタリスク:角カッコの中身で表される文字0文字以上に一致する。

こうすると、ひらがな五十音以外の文字がいろいろまぎれていても、ひとつひとつ指定せずに全部消すことができます。やったぜ。ちなみに、文がいくつもあって、改行を残したい場合は、角カッコの中、句点の後に「\r\n」(バックスラッシュ、小文字アール、バックスラッシュ、小文字エヌ)を加えるとうまくいきます。バックスラッシュは、たいていの日本語環境では円記号として表示されるかと思います。

たぬきさんからの手紙3

翌日、たぬきさんはまたAES 256bitで暗号化された手紙を暗号鍵なしで送ってきました。解読待ちの手紙がまたひとつ増えました。

次回予告

今度は小技の続きをやります。