0
会員になると、いいね!でマイページに保存できます。
これまで日本は、先進的な技術を生み出しても、国際標準を取ることは必ずしも得意でないと言われてきた。しかし20年以上前、ある1人の研究者の好奇心から始まった暗号解読の試みが、後に国際標準暗号として、第3世代携帯電話で採用されることになったことをご存知だろうか。その人こそが、当時最強といわれた暗号「DES」を解読し、さらに強力な暗号アルゴリズム「MISTY」を開発した三菱電機 情報技術総合研究所の松井 充氏だ。いかにして日本が世界標準を勝ち取ることができたのか。同氏に当時を振り返っていただいた。
自由闊達な風土で、何でも好きなことを研究できた
(アクト・コンサルティング 野間 彰氏)──まず、松井さんが暗号と関り始めたきっかけから教えていただけますか?
松井氏:三菱電機に入社したのが1987年です。もともと京大の数学のマスターを出たのですが、数学者には正直なれないなと思って、メーカーに入りました。最初は暗号の「あ」の字も知らなかったのです。
入社後、情報電子研究所(現在の情報技術総合研究所)に配属になって、暗号ではなくて、「誤り訂正技術」を担当することになりました。CDやDVDのデータの後にチェックデータを入れて、ノイズが乗ってデータの一部が読めなくなっても、そのチェックのデータを見れば、虫食い算式に誤りを直すことができる原理です。
当時、暗号は別チームが数名で担当していて、ちょっとお手伝いするとか、そんなところから関わり始めました。1980年代の終わりは、良く言えばおおらか、悪くいえば野放しという、みんなが本当に好き勝手やっていた時代です。ですから、自分が興味を持ったことに思う存分に打ち込める環境でした。
当時の上司も優しく、明るく、人気があって、研究者肌で、私は大好きだったのですが、マネージャ級の会議に「座ってるだけでいいから代わりに出てくれ」と平社員の私を行かせたり……まあ、管理職としては向いていない人でした(笑)。
自由にやるから失敗もあった。すると、失敗しないように物事の裏にある本質を知る癖がつきました。今でも、手続き書類は自分でやったりします。そうすると、なぜその書類が必要なのか、理由や背景が理解できるようになる。この癖は、その後の研究開発にとって重要だったと思います。
洗練された暗号解読に感銘を受け、趣味で研究を開始
──なるほど。そういう自由な風土で研究され、自分で何でもやるようになったと。では暗号技術に興味が移った理由は何だったのでしょうか?
松井氏:1990年にイスラエルの研究者のアディ・シャミア(Adi Shamir)氏らが「差分解読法」という、何かすごい暗号解読法を考え付いたと、センセーショナルに日本で報道されたのです。「そんなに騒がれているなら、どんなものか?」と興味を持って論文を読んだら、非常にエレガントで感動してしまい、研究にのめり込むキッカケになりました。
──具体的にどういうところに感動されたのですか?
松井氏:すごい解読法だから、論文を読んでも理解できないかなと思ったら、自分にも意外とスラスラと読めました。大発明はシンプルに語れるのだと気づきました。当たり前と思われることをトコトン突き詰めたら、あの解読法になったと。そこに非常に感銘を受けました。
それならば、私にも真似事ができるんじゃないのかと思って、趣味で新しい暗号解読方法を考えてみようと研究を始めたのです。何本か論文も書きました。そろそろ、もともとやっていた誤り訂正技術に戻ろうと思い始めたのが1993年頃ですが、独身寮で寝転がっているときにふと思いついたのが、運命を変える「線形解読法」という理論でした。
「差分解読法」と「線形解読法」の違いとは?
──シャミア氏の差分解読法と、松井さんが考えた線形解読法の違いは、どんなところにあったのでしょうか?
松井氏:秘匿を目的とする暗号は、送り手と受け手が同一の秘密鍵を共有して、第三者に内容が漏れない通信を行います。そのため暗号を解読するには、その暗号アルゴリズムを知った上で、唯一の秘密情報である鍵データを推定するというアプローチを取ります。
従来は暗号を解読するには、考えられるすべての鍵の組み合わせを試して正しい鍵を求める「全数探索法」が使われましたが、この手法だと鍵の長さが56ビットの米国標準暗号DESでは、2の56乗個=約7京の組み合わせを探索する必要があり、当時のスパコンでも2000年以上かかる計算量でした。
ところがシャミアの差分解読法では、鍵データを求める必要な計算量を大幅に下げられました。少しずつ内容を変えた平文を大量に用意し、それを暗号化したデータと見比べることで、暗号アルゴリズムの偏りを求めて、鍵データを推定します。DESの場合だと、2の47乗の組ほどの平文と暗号文のデータを調べれば解読できることになります。
それで私が考えた線形解読法ですが、発想は単純です。
暗号というのは、複雑なロジックが組み合わさっています。その一部のコンポーネントを「ある簡単な関数に置き換えたらどうなるか?」と考えたわけです。 データを暗号化する変換処理の一部を、簡単な線形関数で近似するという手法です。
もちろん、簡単な線形関数に置き換えると元の暗号とは違う結果になります。それを解読しても意味はないのですが、線形解読法はそういう差を直接見るのではなく、入力と出力がどれだけ違っているかを数式化する方法でした。
ですから「データがたくさん集まれば、正解に一致する確率も増えるはず」と考えて、簡単なモデルを作って実験すると、計算通りの結果が得られて、DESも当時のコンピュータで解読できたのです。
実際に手を使ってプログラミングすることの重要性
──線形解読法にたどり着くまでの秘訣みたいなものはありましたか。
松井氏:そうですね。私は凝り性で、解読方法をしつこく考え、諦めなかったことは背景にありました。そして、それを許す自由闊達な会社の風土と上長の下支えがあったことです。それと私は、冒頭で申し上げたとおり、何でも手を動かしてやってみる癖が付いていました。当時の暗号研究というのは、理論を考える研究者とモノ作りの研究者がバラバラに動いていたのですが、自分の場合は理論だけでなく、実際にプログラミングで実装し、実験をやっていました。すると、いろいろなことが見えてきたのです。
──プログラミングができると、いろいろなことが見えてくるというのは?
松井氏:今となって言えることですが、やはりプログラミングはすごく大事です。というのも、論文に書いてあることをプログラミングしてみると、よく違う結果が起きるのです。なぜなら、自分のプログラムや論文の解釈が違っていたり、論文そのものが間違っている可能性もあるからです。
ですから、論文を読んでプログラムに実装すると、新しい発見につながります。例えば論文とプログラムの結果が合わないのは、論文にわざわざ書いていない近似のせいで、こういう近似方法があるのだなどと気づけます。論文と自分がやっていることが合わなければ、ある意味で新しいアイデアがそこに内在しているかもしれない。だから、合わないことは本当は素晴らしいことなのです。
差分解析法を考えたシャミア氏は、RSA暗号を考えた3人の1人ですが、実は彼も線形解析法に近い一部分の発想はあったようです。本人から直接手紙がきましたから。「でも彼がそこまでたどりつかなかったのは、プログラミングで実装できなかったからだ」と同僚に言われました。
【次ページ】DESよりも強い暗号化アルゴリズム「MISTY」の開発と事業化の挑戦
関連タグ