小学生でもいつかはわかる暗号のはなし

もしかすると、ここに書いてある内容が来年のパソコン部の部誌になる、やもしれぬ。
ちなみに、ここで扱っている例の平文はすべてアルファベット二十六文字で成り立っていると仮定する。

単語とか

憶えておいたほうがよさそうな単語とか

平文

ひらぶん。「へいぶん」とも読むらしいが、どういうわけか「ひらぶん」のほうが主流派らしい。暗号化される前の文章。

暗号文

あんごうぶん。暗号化された文章のこと。

古典暗号の場合は暗号鍵のことを指す。暗号文から平文に戻す際に必要な情報。

古典的な暗号のはなし

単一換字*1式暗号

一つの文字を一つの文字へ変換するだけ。解読はすごく簡単。特に英語だと、アルファベットの出現頻度はかなりわかっているから*2、適当に当てはめていけばそのうちわかる。そういえばアルベド語って単一換字式暗号。

シーザー暗号

巷で噂のシーザーが使っていたらしい暗号。単一換字式暗号の一種。というより簡易版。単一換字式暗号はすべての文字をばらばらにするけれど、シーザー暗号は一定の個数ずらす。例えばAはBに、BはCに、という感じ。このほうが暗号化も復号化も楽。ちなみに、シーザー自身が使っていたのは三文字ずらすものなのだけど、それ以外の文字数ずらしたものもシーザー暗号と呼ぶことが多い。十三文字ずらしたものをROT13といって、もう一度暗号化すると元に戻って便利なのでたまに使われることもある、らしい*3

ブルートフォースアタック

Brute Force Attack。力づくな攻撃、の意。日本語で言うなら「しらみつぶし」が適当かな。コンピュータを使ったりして可能性のあるすべての鍵を試してくる。普通の単一換字式暗号ならまだマシ*4だが、シーザー暗号の場合手動でもできてしまう。実際にやってみると、簡単。

ワンタイムパッド

「原理的に解読不可能」な暗号。文書の上に後ろの文字が見えるくらいの穴があちこちにあいた紙を乗せ、あいているところに文字を書いていく。必要な文章を全部書けたら紙をとっぱらって、あいているところにデタラメな文字を書いていく。書くときに使った紙が鍵である。このタイプの暗号は他の暗号と違い「原理的に解読不可能」と証明されている*5
ならばなぜ利用されていないかというと、暗号を利用する意味がないからである。
暗号というのは、「機密性を圧縮する」技術だ。文書全体を隠すよりも鍵だけを隠すほうが楽だから利用されているのである。しかし、ワンタイムパッド暗号の鍵は必ず平文と同じ長さである必要がある(繰り返し使用すると、すぐバレる)。これでは意味がないどころか二度手間だ。鍵を送っている暇があったら文書そのものを送ればいいのである。
この問題は多かれ少なかれ古典暗号のすべてが抱えている「鍵配送問題」というものだ。これを完全に解決したのが公開鍵暗号であるが、まぁそれは後で。

*1:wikipedia:換字式暗号によると、音がややこしいので「かえじ」と読むらしい

*2:Eが多いのは有名。以下T,A,I,O,N,...

*3:もちろん、セキュリティのためではない。遊び。

*4:でもない。「比較的」。

*5:詳しくは知らないけれど、まぁ、元の文章なんてどうとでもこじつけられるわけだし

でも多分、平等にやるんだろうな

有名な問題。
小人が百人いた。いや、別に何人でもいいけど、百人である。
ところが、悪い王様かなにかに捕まって、殺されてしまうか食べられてしまうかすることになったらしい。いや、王様ならば食べたりはすまいから、あるいは何か違うのかもしれないが、とにかく死ぬことにかわりはない。
と、ここで王様、暇だったのか知らないが、「そこに縦に一列に並んで、前を向け。全員に三色で塗り分けられたぼうしをかぶせるから、自分のぼうしの色を見ないで言えたら生かしてやろう。先にしばらく相談してていいぞ*1」とのたもうた。さぁ、生還者をひとりでも多く出すには、どの順で、どういう戦略で色を言えばいいか。また、その場合の最低生還者数(確率に依存しない、という意味だ)は何人か。
ちなみに、どの小人も自分より前にいる小人のぼうしはすべて見えるし(視力いいね)、どの小人も自分以外の小人が言ったことは聞こえる(ただし、誰が言ったかは判断できない)。あと、色以外を口走ったり、自分以外のぼうしの色以外をすべて言おうとする*2と例外が発生し、強制終了し、最悪の場合ブルースクリーンに陥るので、自己責任でお願いします。

*1:このあたり、先に帽子をかぶせてしまうと何かとアレとの指摘をnaktさんから受けて修正。まったく。

*2:小人1「赤赤青黄黄青赤黄赤青青…うわやめろなにをすr

枡の合理性について

ここに、容積3[dl]と5[dl]の容器がある。この二つと、無限に水を汲みだせる井戸的な何かを仮定しよう。さて、これらを利用してできるだけ少ない操作で4[dl]の水を量るにはどうすればいいか。

まぁ、別にどこかから引用したでもないありがちな問題なのだけど、この「容器」というのが、西洋ではグラスだったりするが、東洋では枡なのである。四角四面なのだ。言い換えるなら、丸くないのである*1
四角いと何がすごいのか。傾けると簡単に1/2が量れるのである。どういう風に傾けるのか、ちょっと説明がしづらいが、まぁ、わかると思うけれど。グラスだとこうはいかない。東洋的にはこの問題の正解は「実は容器は枡になっていて、両方の容器に水を満たし、両方を傾ける」である。まさに東洋の神秘。イースタンマジックである。ところで私、実はこのような壷も販売しておりまして。
別にそんなこと、円筒形の容器なら何だってできるじゃないか*2、と思うだろうけれど、じゃあこれはどうだろう。3[dl]と9[dl]で5[dl]。枡なら一発でできるのである。枡はすごい。すごすぎるぜ。ところでこの壷、私自身も買ったのですが、なんだか不思議な力があるみたいなんですよ。
ちなみに、僕的最適解は、「何に使うか知ったこっちゃないが、万が一ということもあるし多めに持っていこうよ」。あっても困るものじゃないし、ね。

*1:言い換える必要がない例

*2:というか、上下対称ならできるのかな

表面積

高額紙幣は何かを購入することでさほど高額でない紙幣と小銭の集まりになる。こうなってしまうとすぐに使い果たしてしまう。きっと表面積が大きくなって溶けやすくなったのだな、と思ったのでした。

シュチエーション

`simulation'を「シュミレーション」と読む人は、`situation'を「シュチエーション」とか読むのでしょうか。もっとおかしいのは`emulation'で、「エュミレーション」だけど、こちらは僕が考えたのではない。誰だろう。

試験最終日に買わなければならないものが多い。マイリトルタイガー*1の一万円を持っていこう。

ひとりっ子 (ハヤカワ文庫SF)

ひとりっ子 (ハヤカワ文庫SF)

オフィシャルファンブック 涼宮ハルヒの公式

オフィシャルファンブック 涼宮ハルヒの公式

あと、パソコン部の買出しに(多分ひとりで)行く予定。三宮で書籍を購入する。

明日は試験だというのに、ずっと情報理論について調べつつぐうたらしていた。昨日印刷した資料が役に立つ。

*1:日本古来から伝わる言い回しで虎の子と表現される貯蓄である