暗号理論の研究動向

暗号技術調査室では、最先端の暗号基礎技術研究の動向を調査してきた。 暗号は、もはや軍事目的のみでなく、日常生活に欠かすことの出来ない基礎技術として、 一般消費者が意識するしないに関わらず頻繁に用いられている。 よって、その基礎となる暗号理論の研究動向を調査し適切な援助をすることは、 IPAセキュリティセンターの重要な任務の一つである。


共通鍵暗号

共通鍵暗号の現状

共通鍵暗号系は、歴史も古く、官民の隔てなく使用されており、 その安全性は現代社会においてこの上なく重要である。 現在最も使用されている共通鍵暗号は米国の標準暗号である DES(Data Encryption Standard)であり、 これは64ビットブロック暗号で56ビットの鍵を用いる。 しかし、指数函数的なコンピュータ性能の向上により、 DESの安全性に陰りが出てきた。

米国のNISTでは、DESに取って代わる新規共通鍵暗号 AES(Advanced Encryption Standard)を決定するために、 1997年に広く世界中から候補を募集した。 その結果15件の応募があり、現在候補の研究調査の段階である。 (1999年3月現在。) 共通鍵暗号研究の話題はもっぱらAESが支配的であり、 これは2000年に最終アルゴリズムが決定されるまで続く。

AES(Advanced Encryption Standard)

前述の通り、AESはDESに代わる標準共通鍵暗号として、 現在選定作業中である。 AESの主な仕様項目は、

であり、8ビットプロセッサ上から64ビットプロセッサ上までサポートするのが前提になっている。 公募の結果、次の15提案が受理された。

アルゴリズム名 提案会社又は個人(国)
CAST-256 Entrust Technologies (Canada)
CRYPTON Future Systems (Korea)
DEAL (Data Encryption Algorithm with Larger Blocks) Richard Outerbridge (USA) and Lars Knudsen (Norway)
DFC (Decorrelated Fast Cipher) CNRS (France)
E2 (Efficient Encryption Algorithm) NTT (Japan)
FROG TecApro International (Costa Rica)
Hasty Padding Cipher Richard Schroeppel (USA)
LOKI97 Lawrie Brown, Josef Pieprzyk, and Jennifer Seberry (Australia)
Magenta (Multifunctional Algorithm for General-purpose Encryption and Network Telecommunication Applications) Deutsche Telekom (Germany)
MARS IBM Corp (USA)
RC6 RSA Laboratory (USA)
Rijndael Joan Daemen and Vincent Rijmen (Belgium)
SAFER+ Cylink Corp (USA)
Serpent Ross Anderson (UK), Eli Beham (Israel), and Lars Knudsen (Norway)
Twofish Counterpane (USA)

かなりの提案が128ビットブロックを32ビットづつに分解して内部処理していて、 用いられている手法はFeistelネットワークまたはその変形が多い。 また、AESの作業スケジュールは以下の通り。

日付 予定
1997年1月2日 AES制定の意向表明、コメントの募集開始
1997年4月15日 要求仕様、プロセス、及びコメントに関するワークショップ開催
1997年6月16日 要求仕様とプロセスのドラフト完成
1997年9月12日 候補の募集開始
1998年4月15日 提案のプレレビューの締切
1998年5月15日 提案のプレレビュー終了
1998年6月15日 提案の締切
1998年8月20日−22日 第1回AES候補コンファレンス開催、候補に対するコメント募集開始
1999年3月22日−23日 第2回AES候補コンファレンス開催
1999年4月15日 候補に対するコメント締切
1999年8月 5つ程度の最終候補発表、最終候補に対するコメント募集開始
2000年4月10日−14日 第3回AES候補コンファレンス開催
2000年8月 AES発表
その後 FIPS及びISO標準化手続き

上記15候補の内LOKI97は、第1回AES候補コンファレンスの前に既に破られてしまった。 また、FROGとMagentaはコンファレンスで内容を発表した段階で攻撃された。 さらにDEALも攻撃されて、1999年3月現在では残りの11候補が暗号研究者の攻撃にさらされている。

生き残りが11あっても、おのずから5つ程度の最終候補に残る可能性のある物は絞られている。 Rijndael、MARS、RC6、およびTwofishが有力候補であることは誰もが認めている。 これに続くのは、E2、Serpent、CAST−256、それにCRYPTONである。 DFC、HPC、SAFER+は、遅かったり、デザインポリシーが不明確であり遅れをとっている。 実装したときに度の程度の速度が得られるかは、共通鍵暗号において非常に重要であるが、 すべての実装で抜き出て速いものはない。

その他の新規暗号開発

その他に、新規の共通鍵暗号方式の提案は時々ある。 特に、日本からはISOに登録する共通鍵暗号がときどき出てくるが、 現在の所インパクトは強くない。

解読法

暗号研究において新規の提案も重要ではあるが、 解読法の研究は更に必要であると考える。 解読法の研究は、単に暗号を破るためだけではなく、 暗号の弱点を知ることにより、その点を補強しより強いアルゴリズムを開発することが出来る。

しかしながら、新しい解読法はめったに登場しない。 現時点で、BihamとShamirによる差分解読法(differential cryptanalysis)と、 松井による線形解読法(linear cryptanalysis)が強力であり、 その他の解読法、たとえば高階差分解読法(higher differential cryptanalysis)や 差分線形解読法(differential linear cryptanalysis)、は差分解読法と線形解読法の改良版でしかない。 また、新しく提案される共通鍵暗号(AES候補など)は、 当然これらの攻撃方法に耐えるように設計されている(はずである)。 現在の解読法研究は、アルゴリズムのラウンド数を減らした場合を考慮したり、 アルゴリズム固有の特徴点を探してそこを攻撃するのがほとんどである。

一方、共通鍵暗号の解読法研究で見逃されがちなのが、 キースケジューリング(key scheduling)とか鍵拡大と呼ばれる部分である。 共通鍵暗号の鍵は64ビットであったり128ビットであったりするが、 これらの鍵を暗号化にそのまま用いることはなく、 鍵から各ラウンドで本当に用いる拡大鍵を生成する。 このプロセスを鍵拡大と呼ぶが、 鍵拡大を下手にやってしまうと、どんなに暗号化アルゴリズムが優れていても、 すぐに解読されてしまう。 この典型的な例がAES候補のMagentaで、 全く単純な鍵拡大をしていたために第1回AES候補コンファレンスで発表と同時に破られてしまった。 しかしながら、鍵拡大に関する系統的な研究は残念ながら存在しない。


公開鍵暗号

公開鍵暗号は共通鍵暗号と比べると歴史が浅い。 それゆえに、高度な数学を用いたアルゴリズムが提案される一方、 その浮き沈みも激しい。 例えば、一時注目されたナップザック暗号は、その弱点が明らかになるにつれ研究者が減り続け、 いまやほとんど無視されてしまった状態になっている。 一方、老舗のRSA暗号は鍵長が長くなってきてはいるが、未だに健在である。

以下に、個々の公開鍵暗号について述べる。

RSA暗号

公開鍵暗号の老舗であり、現在もその地位は揺るぎがない。 最近は1024ビットの鍵を用いるようになり、計算が重くなってきてはいるが、 最も使用されている公開鍵暗号であることに変わりはない。 1998年始めに、RSA暗号が破られたと報道されたことがあったが、 実際にはPKCS#1という、RSA暗号を使用する際の推奨フォーマットの欠陥であって、 RSA暗号自身が破られたわけではない。 (PKCS#1は即座に改められた。)

RSA暗号を破る最も手っ取り早い方法は、法nを素因数分解することである。 素因数分解のアルゴリズムとして現在最も強力なのは一般数体ふるい法(GNFS、general number field sieve)である。 これは、

    x^2 = y^2 (mod n)

となるxとyを探すアルゴリズムであり、そのためには事前計算でばく大なデータを蓄える必要がある。 一般数体ふるい法の実装上の問題点は、この蓄えるデータの量が桁違いである点で、 1998年現在で、400ビット位の数を素因数分解するのがやっとである。 nが1024ビットの場合に、一般数体ふるい法を用いてnを素因数分解するのは、 現在のコンピュータでは不可能である。 これは計算速度の問題ではなく、要求されるメモリーとディスク量の問題で、 現在のRSA暗号の強度に関する議論には、この点の考慮が全く欠けている。

なお、RSA暗号の安全性と素因数分解の困難性が等価であるか否かは、未だに証明されていない。

楕円曲線暗号

楕円曲線暗号に関する研究は3つに大別できる。すなわち、

である。

楕円曲線暗号は、一般に楕円曲線上での演算が遅いと言われている。 特に、定数倍する演算を高速化することは、楕円曲線暗号を普及させる上で欠かせない。 そこで、演算を高速化する手法が数多く研究されている。 広く一般に行われている手法は、

などである。 それぞれ、わずかながらではあるが日々進歩している。

楕円曲線暗号はグループ内で同じ曲線を用いるので、必ずしも安全な楕円曲線を高速に生成する必要はない。 しかし、安全な楕円曲線が必要なときいつでも生成できるようにしておく必要はある。 ここで用いられる手法は主に、(1)虚数乗法を持つ超楕円曲線を利用する、 (2)モンゴメリー型の楕円曲線を用いる、の2つである。 各々成果が生まれている。

ここで問題になるのが、安全な楕円曲線とは何か、ということである。 一般に楕円曲線の位数が大きな素因子を持つことが重要であるが、 これを確かめるには楕円曲線の位数を素早く計算しなければならない。 現在もちいられているのはSEA法と呼ばれ、 SchoofのアルゴリズムをElkiesが改良したアルゴリズムとAtkinが改良したアルゴリズムを 組み合わせて用いるものである。 これ以外の計算方法で効率の良いアルゴリズムは今のところ見当たらない。

楕円曲線暗号への攻撃の主流は、特定の群への埋め込み写像を生成し、 その群の中での離散対数問題に帰着させるものである。 典型的なものはMOVリダクションで、似たものではFR法がある。 これらは楕円曲線のトレースが0と2の場合に有力である。 群の離散対数問題に帰着させる方法は、計算量が準指数時間になるだけであるが、 1997年に東工大の荒木、埼玉大の佐藤らにより、 トレース1の楕円曲線暗号が多項式時間で解くことが出来ることが示された。

このほか、一般の代数曲線のJacobianを用いた暗号も研究されているが、 主流ではない。

新規提案暗号

公開鍵暗号の新アルゴリズムはかなり頻繁に提案されているが、 注目に値するものは多くはない。 しかし、少ないものの中には光っているものもある。 特に、アルゴリズム自身の強度に関してどの程度であるか証明付きで発表される場合、 研究者を納得させることが多い。 その中でも、Crypto98で発表されたCramerとShoupによる公開鍵暗号が注目されている。

Cramer−Shoup暗号

この暗号は離散対数問題の困難性に基づくもので、 汎用一方向性ハッシュ函数(universal one-way hash function)の存在を仮定して、 選択暗号文攻撃(chosen-ciphertext attack)に対し強秘匿(indistiuguishable)であることが証明できる。 これ以前の暗号では、ランダムオラクルの存在を仮定して 選択暗号文攻撃に対し強秘匿であることが証明されているアルゴリズムがあったが(NTTのEPOC等)、 ランダムオラクルの存在ではなくより緩い汎用一方向性ハッシュ函数の存在を仮定しているところに意味がある。 さらに、この暗号は構造が複雑ではないので、十分に実用化可能である。

日本国内の状況

日本国内の公開鍵暗号研究は、最近特に楕円曲線暗号の研究に傾いてきた。 理由のひとつは、中央大学の辻井重男教授を中心とするグループが 超楕円曲線暗号に関して成果をあげていることがあるが、 各企業も楕円曲線暗号を自社製品に取り入れることに積極的になっている。