(前回から続く)

暗号の世界では後発の三菱電機の研究員,松井充は1993年の夏,米国標準暗号「DESデス」の解読に成功する。15年もの間,一度も破られたことのない暗号の解読は暗号の世界で大きな反響を呼ぶことになった。最難関の暗号を解読した松井の興味は,次第に暗号アルゴリズムを作ることに移る。DESよりも安全で,性能が優れた暗号を作りたい――。理想の暗号アルゴリズムの開発に向け,松井は新たな一歩を踏み出した。



「ここまでやって,もしも無駄足だったら」――。

 あれから2カ月。大船の街を包んだ蝉時雨はいつしか鳴りを潜め,辺りにはすっかり秋の気配が漂っていた。1993年夏の熱気はどこかに消え去り,心地よい夢から覚めたように,世間は落ち着きを取り戻していた。

 その中で松井充は,期待と不安が入り交じった,宙ぶらりんの気持ちに支配されていた。米国標準暗号「DESデス」の解読は,ようやく終わりに近づきつつある。ところが待望の結果を前に,松井の心は揺れた。もしここで予想に反する結果が出たら,これまでの努力は水泡に帰してしまう。理論上は,自ら考案した線形解読法で,DESを解読できるはず。しかし本当に理論が有効かどうかは,実際にコンピュータを使って解読を試みなくては分からない。解読に万一失敗した場合は,理論自体が見直しを迫られる。

手作業で12台を動かして

 松井が作成したプログラムはまず,乱数を用いて243個の平文データを生成する。そしてダミーの秘密鍵となる56ビットのビット列を使って243個の暗号文を作り出す。解読プログラムは,その243組の平文データと暗号文データを使って秘密鍵を推定するわけだ。最初にダミーとして用意した秘密鍵のビット列を導き出せれば,解読に成功したことになる。

 長かった夏を通して,松井は鍵の算出につながる材料を1つ1つ積み上げてきた。線形解読法による解読実験は,並列処理によって効率的に進めることができる。松井は,知り合いに頼み込んで借りた12台のワークステーションを使って,できるだけ短期間に解読実験を終わらせようとした。

 ただし12台のワークステーションは,利用できる時刻や期間がまちまちである。それらを連携させるプログラムを書いて,自動的に処理を進めるわけにもいかなかった。松井は,手作業で12台のワークステーションに処理を割り振った。それぞれに解読プログラムの一部を実行させて,途中結果を算出する。その結果を別のワークステーションに入力し,さらに次の中間解を求める。

 業務の合間を見計らって,松井は12台に頻繁にアクセスした。プログラムの進捗状況や,エラーの有無などを事細かに確認し,その詳細を1冊の実験ノートに記した。気が付けば用意したノートには,わずかなページしか残っていなかった。

 そして,その日は来た。すべての計算は終了し,DESの解読プログラムは推定した鍵データの結果を導き出した。実験を始めてから,延べ50日もの時間がたっていた。