【揺花草子。】[#4460] 希望を未来に託す運命。
Bさん「『ROT13』って知ってるかな?」
Aさん「え、あの暗号の?」
Cさん「あら知ってるのね。じゃあ詳しく。」
Aさん「えっと・・・あれですよね、アルファベットの羅列の文章について、
その1文字1文字ごとにアルファベットで13文字分ずらして
難読化を図るアルゴリズムと言うか・・・。」
Bさん「うん、概ねその通り。
例えば『ABE』と言う文字列は ROT13 を掛けると
『NOR』になるって具合だね。」
Aさん「うん。」
Cさん「阿部さんの裏返しが否定論理和って言うのは
実に阿部さんらしいと思うわ。」
Aさん「なんか嫌な言い方ですねそれ?
全国の阿部さんにもケンカを吹っ掛けるつもりですか?」
Bさん「アルファベットは全部で26文字で、
ROT13 はさっきも言った通り26文字のちょうど半分である
13文字分シフトするアルゴリズム。
なのである文字列を ROT13 したあと、
その文字列にもう一度 ROT13 すれば元の文字列に
復元できると言う特徴があります。」
Aさん「そうだね。」
Cさん「こう言う文字列シフトのアルゴリズムを総じて
なんて言うか知ってる?」
Aさん「あれですよね、シーザー暗号。」
Bさん「おぉ。一発正解。やるねえ。」
Aさん「いやこの程度の事は。」
Cさん「シーザー暗号は元の文字列に対してあるきまった数の文字数分
シフトする事で暗号とする方式ね。
つまり ROT13 はシフト量13のシーザー暗号と言う事になるわ。」
Aさん「ですね。」
Bさん「この暗号の名前の由来となったのは
ご存知ユリウス・カエサルなわけだけど、
彼が用いたのはシフト量3の暗号だったと言うよ。
暗号を取り交わす相手との間で『シフト量は3ね』と
事前に取り決めておけば実際の通信にはシフト量を
載せずに済むと言うわけだね。」
Aさん「ふむ。」
Cさん「と言っても、シーザー暗号はただ文字数をずらしただけだから
現代においては暗号の強度としては皆無に等しいわ。
シーザー暗号に依る文字列だと言う事がわかってしまいさえすれば
何なら最大25パターンシフトを繰り返すだけで
簡単に元の文字列を復元できるんだもの。
その程度のプログラムを書くのはちょっと勉強すれば造作もない事よね。
それに何なら今日なら
『これはシフト量は不明ですがシーザー暗号により暗号化された文章です。
元の文章が何だったか推察してください。』
って生成 AI さんに投げたらサクッと答えを返してくれそうだし。」
Aさん「それは確かにそうですね。」
Bさん「もちろんシフト量が正確には分からない以上、出てきた文字列は
『それがちゃんと文意を持っているか』で以て正解かどうかを
蓋然的に判断すると言う事はなるだろうけどね。
逆に言えば違うシフト量で違う意味のある文字列が生成されるような
そんな平文を作れたら解読の難易度は上がるでしょう。」
Aさん「それはそうだけど、それはさすがに相当難しくない?」
Cさん「Wikipedia の当該ページでも解説されているけど、
例えば『ALIIP』は右に3文字シフトで『DOLLS』になるし、
左に4文字シフトで『WHEEL』になるわ。
どちらもちゃんと意味のある英単語だから、
暗号文『ALIIP』だけではどちらを意図しているのかは
判断できないわよね。
こう言うのを集めて文章化できれば良いんじゃないかしら。」
Aさん「いやー・・・難しそうですね。」
Bさん「でもまあそうやって人々は情報を必死に伝達し合ったわけですよね。
何とかして相手に伝えたくて、いろいろ頑張ったわけだ。」
Aさん「ん、そうだね。」
Bさん「『俺の最期の情報だぜー! 受け取ってくれーッ!!』
って感じだね。」
Aさん「シーザーの暗号!!???」
シャボン玉のように華麗ではかなき男よ。




