第35話 「TKT計算機」と暗号処理
磁気論理演算素子はコイルとコンデンサの共振回路の位相を利用した3入力論理演算と記憶回路を基本素子にした論理回路だ。集積化回路でなく昔(この時代から見たら未来だが)のミニコンのように中規模機能ごとに基板をまとめ、それを何十枚も使用して情報処理装置をつくる。おかげで大きさは部屋を占領するくらいになってしまう。ちなみに真空管で作ろうとするとビルをまるまる占領するくらいになる。
高橋氏は中嶋氏との交流を通して誘導現象のデジタル回路への応用に興味を持ち、史実でパラメトロンを発明する後藤氏と出会う前に同回路の発明に至っていた。しかしまだ、世の中に電子計算機というものが誕生しておらず、基礎的な計算機理論もない状態から、オレから言われたプログラムによる自立計算可能な機械の作成というテーマを文字通り手探り状態で進めていた。
もちろん、オレもチューリングマシン(なんとアラン・チューリングは1936年に論文でこれを提示している)やらオートマタ(自動人形でなく計算モデルの方)の話をしたり、コンピューターの五大要素だとかノイマン型コンピューターの心臓部となるシーケンス制御によるプログラムの読み取りと制御の動きなど、チート情報をどんどん伝えて何とか実現してもらえるよう強力に後押しした。
その甲斐あってか、論理演算と記憶回路といった基本素子については既に出来上がり、理論的に構築した計算機モデルを如何に、この基本素子で実現させるかという所まで来ている。最初はNible(4ビット)マシンだけど。
早速、我々はこのコンピューターをTKT I型計算機と名付けた。いや、新型兵器みたいなカッコいい名前は付けないよ……研究者の意向もあったけど(彼らはあまり厨二病には毒されていないようだ)。名前の由来はパラメトロンを作った高橋博士、フェライトを発見した加藤博士、武井博士の頭文字の組み合わせだ。
それと、フェライトコアを製造している会社がすごく頑張ってくれて、雄型・雌型という二つの基板に部品を固定しコイル用の電線を巻きつけた後、貼り合わせると論理回路基板が作れるという画期的方法を編み出してくれた(コイル用の電線とかは人手で巻かなければならないけど)。まるで手作り集積回路だ。おかげで集積度と信頼性が一気に高くなった。次に作るものは机くらいのサイズに出来るかもしれない。
計算機が出来るとなると、まず考えるのは暗号の改善だ……いや大砲の弾道計算とかもあるけど、暗号のほうが重要だから。この時代の暗号は機械暗号機を使った多表式だ。二次元の表から何かの条件にそって、行の位置を変えながら、実際の文字を列の位置にあるもので置き換えていく。条件は歯車の組み合わせだったり、複雑な条件を組み合わせて簡単に見つからないようにする。でもこのやり方は、何かキーになる情報があると類推できてしまう。特定の時期に頻繁にやり取りされる名前から作戦場所と対応付けたり、言語特有の性質――英語で最も多い3文字の単語は"the"だとかを利用したり。
幸いなことに日米開戦まで軍の暗号は解読されていなかったが、解読されるのは時間の問題だ……運用もそれほど厳密にされていなかったようだし。なのでコンピューターができたら日本軍の暗号を一新しようと思う。なにしろ我々には現代の暗号技術というチートがあるのだ(笑)具体的には公開鍵暗号という方式だ。機械式暗号機ではなくコンピュータを使う必要があるのがネックだけど。
公開鍵暗号方式は、暗号化と復号に別の鍵を使い暗号化の鍵を公開できるようにした方法だ。暗号化と復号の鍵を同一にしてしまうと鍵を渡す過程で手に入れられてしまうとバレバレになってしまうが、この問題が起こらない画期的な方法だ。
一方で、相手の暗号の解読には、近道はない。それでもコンピューターがあればいろいろな仮説を簡単に試してみることは出来る。プログラムさえできればコンピューターは万能機械なのだから。それに、この時代使われている暗号はさっきの多表式で、どういう条件を使用するかが変わるだけだ……本当は難しい話がいろいろ書かれているのだがオレの頭では理解できなかった(涙)後で暗号解読のプロを紹介してもらった時、詳しい話を渡そうと思う。
◇ ◇ ◇ ◇ ◇
そういえば計算機だけ出来てもプログラマーを養成しないとダメだった。やっぱりプログラマーは若い女の子だろう(セクハラ発言!)いや、あえて理由は書かないけど……というわけで大学の優秀な学生を集めてプログラマー養成コースを作ってもらう。これは先生が興味を持って優秀な生徒を推薦してくれた。
「えー、これから話すことは世界を大きく変える技術に関することです。ここ以外のところでは、むやみに話さないで下さい」
そう前置きして、電子計算機というものが、なぜ人間の代わりに計算を行えるのかという話から、プログラムが実行される様子を説明してみた。だいたいこれくらい話すと興味がある人とまったく理解できない人に分かれるのだが、さすが先生が紹介してくれた生徒たちは皆、興味津々という感じでついてくる。
「まだ実機がないので例題のプログラムを作ったら、隣の人が人間コンピューターになってうまく動くか確認して下さい」
そう言って生徒同士に課題の答え合わせをさせる。皆、熱心にやっている。いい感じだ……様子を見ながら一言、無駄知識を言う。
「私の先輩が教えてくれました、『良いプログラマーは、コンピューターの気持ちを理解できる人』だと。うまく動かないプログラムを実行させて悪かったと涙を流せるくらい共感できないと良いプログラマーにはなれません!」
「「「「……」」」」
あれ、ここ笑うところなんだけど……みんな真剣にこっちを見つめている。どうしようか。
「……まあ、冗談は置いておいて、それくらいコンピューターがどう動くかをしっかり理解していれば、プログラムのどこが悪いかも良くわかるようになります」
何とか一回目のプログラミング講座は切り抜けた。後は電子計算機開発チームと大学の先生に任せよう! こればっかりやっていたら他のことができなくなるし。
この大学のプログラミング講座が生徒の間で大人気授業になるのは、それほど時間はかからなかった。




