東京工業大学大岡山キャンパスは,東急目蒲線/大井町線 大岡山駅下車徒歩1分です. 会場の西7号館までは正門横の学内地図を参考にお越し ください. 西7号館入口までお越しいただければ,会場の204号室 までは簡単に到達できます.詳しくは 東京工業大学のページを御覧下さい.
公開鍵暗号系の基本演算は、多倍長modular整数乗算とべ き乗である。これらの演算を高速に行う方式として、前処理や後処理に より数の表現システムを変換するMontogomeryのものが知ら れているが、もっと単純で直接的な方式が同程度に高速であることを示 す。また、Montogomeryの方式の高速インプリメンテーショ ンとして知られている方式も、実はあまり早くないことも示す。
駅周辺で食事ができます.会場に持ち込む場合は,駅前の マクドナルドかパン屋で調達することになるでしょう.
ある種の大きな数(数百〜数千ビット)のmodに関する乗算や冪乗演算は、 公開鍵暗号系の基礎であるが、冪乗演算は普通にやると桁数(以下Nビットとす る)の三乗に比例する時間がかかるため、その演算の高速化は極めて重要である。発表者である太田は、前野年紀(東工大総合情報処理センター)と共同で、多 倍長整数乗算をレジスタブロッキングという手法で高速に行う方式を発見してい た。レジスタブロッキングは、行列の乗算の高速化では比較的よく知られた手法 である。計算中に二重ループがあるとき、それぞれK回の繰り返しのループと残 りの部分に分割して4重ループとし、ループの順序を入れ替えることにより、内 側をK*K回の二重ループとし、それをインライン展開すると、いちどキャッシ ュからレジスタに読んだデータをK回再利用でき、書き込みの回数も1/Kにな る場合がある。この手法が多倍長乗算の場合にも適用でき、演算回数はO(N* *2)とかわらないが、メモリの読みだし/書き込みの回数はO(N**2/K) となるため、RISC CPUのように多数のレジスタがある場合、CPUの演 算性能をほとんどすべて引き出すことができる。
数千ビット程度では、Karatsubaの方法やFFTによる方法などのよ り計算量のオーダが少ない方式と比べても、この方式のほうが勝れていることも わかっている。
ここで、A*B(mod M)という計算を単純に行うことを考えると(「X」 で、floor演算(を超えない最大の整数)を表すとする:
A*B−「A*B/M」*M
という計算をしなければいけないが、これには乗算2回と除算1回が必要である。 Mによる除算には、かなり時間がかかる。ここで、従来知られているMontgomeryの方法[1]というのは、R EDC()という同型変換とその逆変換を導入し、単純な方法のかわりに変換し た形での乗算結果にREDCを一度施せばいいというものである。REDCは、 2回の乗算と最後に結果を1程度補整する操作が必要だが、除算は2の冪乗によ るものであり、単純にシフト操作となる。
しかし、十分大きな2の冪T(T>=M**2)を用いれば、「A*B*「T /M」」/Tは、「A*B/M」と同じか高々1しか異ならないし、「T/M] は最初に一度だけ計算しておけばいいので、REDCなどというややこしい変換 は実は不用だということが、今回の発表の中核である。
Montgomeryの方式には、さらに結果のある個所が0になる等の性質 を使って演算回数をへらす工夫がしられているが、実はループアンローリングを 使ったほうがより速くなる。しかも、今回発表した方式も、T>=K*M**2 (K>1)とすれば、定数ファクターも含めて同程度に効率的となるので、結局 Montgomeryの方式にはとくにメリットはない。
参考文献:
[1]喬木直史、「算術演算回路のアルゴリズム 4.初等関数計算回路のアル ゴリズム −専用回路の実現に向けて−」、情報処理、Vol.37、No.4、 1996。
質疑応答:
いくつかでましたが、覚えているのは、
問:ニュートン法による除算は速いのでは?
答:もちろんニュートン法は使うであろうが、定数ファクターが大きい ので、遅い。公開鍵暗号の処理には、2倍の差でも大きい。 問:インプリメントして速度比較するのか?
答:Montgomeryなんて、できたらインプリメントしたくない。
問:十分大きな2の冪T(T>=M**2)を用いれば、「A*B*「 T/M」」/Tは、「A*B/M」と同じか高々1しか異ならない、を 証明して欲しい。
答:黒板で証明しました。