左を見ると、国領神社の素晴らしい藤が見えて、おおそんな季節か、と信号待ちに感謝する。フォーク、乗り換え現実世界では、1→2→3とハードルが上がる(覚悟や危険が増える)のに対し、ソフトウェアの世界では3→1→2とハードルが上がる。3が一番簡単であり、それがOSSであればフォークが容易という現実世界ではあり得ない選択が可能。4回目になるが、最初の30%くらいは通勤電車でぼつぼつ読んでいるのだが、結局、夜更かしして全部読むパターン。小説としてのうまさは抜群ではある。気に入らないのが思想の問題であるのは明らかだが、面倒くさぇな。言っても作者も21世紀も10年過ぎた時代の作品を書いているのだから単純化するつもりがないのは読んでいてわかる。今回のは憎悪と愛の2つについての鏡像を利用して警察的な薄っぺらな正義観に陥らないように工夫している。それがあまり効いていないようにも思う。機龍によるバトルものとしての側面に合わないからかも知れない。了衛)当然、読んでいる間は、こちらが知っている風景として、セルゲイボロドフのコーカサスの虜の風景(ボロドフの立ち位置からはロシア側になるわけだが)を眺め続けることになる。proguardなんか死ぬと思ったら、pause、resumeでやってるはずのシリアライズが全く呼ばれていなかった。readObject(java.io.ObjectInputStream);}を追加。須藤さんが作った知らない話を聞く会の第1回目として量子暗号について聞く会に参加。西新宿でひっそりと開催。(以下、ほとんど覚え書き。そもそも聞いた話は20%しか覚えていないということだし、そこからさらに1晩たっているのでさらに減衰しているはずだ。いうわけで、とんちんかんなことを書いているかも知れない)最初に量子とは何かについて。量子というのは、原子とか光子とかいったある特定のものの種類を示す言葉ではなく、それらの種類の中での単位となるものを示す用語だ、という説明を受ける。いう存在があるのだと思っていたので、まずそこでおもしろがるおれたち。最初にいわゆる暗号についての説明。普段使うAESやRSAを数理暗号と呼ぶ。数理暗号の問題点は、総当たりを有意な時間内に行うことができれば解けることにある。そのためには秘密キーの場合はビット数を長くすることが解決策となる。次の問題は通信のピア同士の鍵の交換となる。一方の公開鍵暗号化については2つの十分に長い素数についてのやはり計算量に頼った方法での秘匿を利用している。それに対して物理暗号がある。量子暗号は物理暗号のうち量子を利用したものだ。OSI7階層にマップすると、物理層とデータリンク層での暗号化を意味する。おもしろがるおれたち。現在、量子暗号には2種類ある。1つは日本の国家プロジェクトにもなっていてすでに予算もたくさん注ぎ込んでいるワンタイムパッドを実現するための量子鍵配送(QKD)に関するもので、ベネットとブラッサードが1984年に(原理を)考案したBB84。1つがユーエンが2000年に考案したY-00で、日本では玉川大学の広田先生が実用化をやっている。Y-00ってこの論文かな?。ユーエンというのは超天才のたぐいの変な人なので、何を言っているのかわからない。変な人なので敵も多い。こちらはUSではDARPAの支持を取り付けて実用化しつつあるらしい(DARPAがらみなのが理由なのか多少謎めきらしい)。世界に冠たる超天才として認められている人を、まったく知らない(業界が違うってことはそういうことだよな)ことをおもしろがるおれたち。それぞれの光子は「偏光」と呼ばれる向き(以下角度で示す)を持っている(案の定すっとんきょうなことを書いていたようでした。光子が持つ偏光は直交していれば識別できる。縦スリットを通り抜ける光子と横スリットを通り抜ける光子の違いは、偏光の違いだ。今0度と90度の2種類を想定し、それぞれビット0とビット1を示すことにする。それに対して別の直交関係の光子をおく。45度と135度で、それぞれビット0とビット1を示すことにする。ここで直交していなければ識別できないという性質に着目する。0度と135度の2つの光子が来た場合、その2つは識別できない。正しくは0-1というビット列だが、0-0、1-1、1-0と誤判定可能で、それぞれの確率は1/4となる。おもしろいと興奮するおれたち。おもしろいので、みんなBB84に飛びついたってことですが、と続く。アリスがボブに情報1001001を送ることを考える。このとき、すべての光子を直交させるのではなく、送信時に乱数発生器を利用して0-90ペアと45-135ペアをランダムに配置するとする。結果として以下の光子を送ったとする。90-0-45-135-0-0-135。ボブはこのビット列を受け取るためには、それがどの角度か見極めなければならない。乱数発生器を利用して読み取ることにする。すべての乱数発生器が0-90を選択したとすると受け取るのは90-0-?-?-0-0-?となる。?は0または90のいずれかと誤判定される。その後アリスは乱数発生器の選択について0/90-0/90-45/135-45/135-0/90-0/90-45/135だったと公開する。ボブは答え合わせをして1-0-?-?-0-0-?を得たことがわかる。わかった情報は秘匿したまま0/90-...0/90を選択したことを公開する。アリスとボブは送れなかった情報と送れた情報をお互いに知る。判定器の不一致の確立は1/2なので1024ビットのキーを配送するには2048ビット(ビット数=光子数)を送れば良い。お互いに乱数発生器の選択を知ったので一致したものを利用して秘密キー1000を得る。ここにイブが介入したことを想定する。イブはアリスとボブの通信の間に読み取り器を挿入する。イブも同じく判定器を使わないとビットを判定できない。判定しないとボブへ送ることはできない。そこで乱数発生器を利用する。乱数発生器がアリスと同じ選択をした場合は、イブは盗聴に成功する。その可能性は1/2をビット数分乗じたものとなりビット列が十分に長ければあり得ないことになる。逆にすべての乱数発生器がボブと同じ選択をした場合もイブは盗聴に成功する。ここではたまたまボブと逆にすべての乱数発生器が45-135判定器を選択したことを想定する。するとイブが送信するのは?-?-0-1-1-?-?-1となる。ボブが受信するのは?-?-?-?-?-?-?-?となる。イブの介在を知らないアリスとボブは秘密キーをそれぞれ求める。アリスは1000を利用する。ボブは????を利用する。キーが不一致となり、ボブはイブが盗聴していたことを検出する。あぶない!一方イブはアリスの公開情報から自分が得たビット列は0111とわかる。ボブの公開情報からアリスは秘密キーとして0111を利用しないことがわかる。結局、秘密キーを得ることはできないため、後にアリスが送った暗号文を解読することはできない。世の中は理論と物理では異なる。