あらすじ
サークルの同期が、以下のような暗号を出していました。
|
|
これを解いた過程を解説していきます。
思索
まず最初に目についたのは漢字の物量。見た目いかつすぎだろ・・・
字数を区切ると以下のような形になりました。
文字 | 登場回数 |
---|---|
烏 (からす) | 102 |
鳥 (とり) | 122 |
空白についてもカウントしようかと迷いましたが、空白の長さは必ず一文字であることからそれ単体での意味は構成しないだろうと踏んで数えませんでした。
思い付き:モールス信号
二種類の文字、一文字だけの空白・・・
絶対モールスでしょ(笑)と思いました。
それではモールス信号として処理して復号できるか試してみます。
二文字の漢字をトン「・」とツー「-」のどちらに当てはめるかで二通りあるので場合分けして進めます。
パターン① トン「・」:烏 ツー「-」:鳥
以下のようになり・・・
|
|
当てはめてみると・・・
|
|
[]でくくられている部分は判別不能なものです。これを見る限りこのパターンではなさそうですね。
パターン② トン「・」:鳥 ツー「-」:烏
それではペアを反転させてみましょう。すると、、
|
|
となり、
|
|
あれ、違くないか・・・?
結構自信あったんですが、意味をなしていないので別の方式なのかと考えてしばらく試行錯誤していました。
バイナリ文字列
二種類の文字といえば、モールス信号の他にもバイナリデータとしてとらえることもできそうと考えました。
しかし文字列の長さは2~5文字と一定ではないため、仮にASCIIコードであると仮定すると空白をトルツメして復号することになり、それはあまり美しいやり方ではないので出題者としても意図していないものでしょう。
実際に復号してみても割り当てがないコードが散見され、復号できませんでした。
点字
思いついた当初は天才かと思いました。
しかし実際に当てはめてみると全然意味が通らない、、、これもダメでした。
転換点:和文モールスを知る
LLMに暗号の方式を列挙してもらっていたところ、モールス信号には欧文の他に和文形式もあることを知りました。
和文形式として再度解読してみます。
パターン① トン「・」:烏 ツー「-」:鳥
|
|
最初に「゛」があるのでこれもだめそうですが、全部の単語が復号できているのは初めてです。 符号を逆にしたらうまくいくかもしれません。
パターン② トン「・」:鳥 ツー「-」:烏
|
|
!!!!
ヨク カイドク デキマシタネ タダシ コンナモ゛ヨヲ カイドク シイヤイルヒマガ アレバ リサーチヲ シナサイ カイギ ガンバテネ
途中ちょっと怪しいですがこれは文意が成り立ちます!!
出題者に提出したところ、こちらで正解となりました。
感想
分かってしまえば、こんなものか・・・と拍子抜けするような話ではありますが、試行錯誤した末に復号できた時のうれしさはひとしおです。
素敵な問題を提供し、walkthroughも許可してくれた出題者に感謝です。ありがとうございました。
おまけ:モールス信号の復号化サイト
欧文と和文のモールス信号を一度に分析できるサイトはなさそうだったので自作しました。
2種類の文字で構成されている文字列であれば、トンツーの符号でなくても当てはめで復号できるかを確かめることができます。
文字ペアもワンクリックで入れ替えることができたり、復号できた文字の割合を表示も可能です。同様の暗号を解く機会があれば活用できるときが来るかもしれません。
こういうサイトも一瞬でデプロイまでできるのが、今の生成AIやgithub pagesをはじめとしたサーバーレス型サービスの発展の賜物だなと実感してます。便利な世の中になったもんだ。