シューフのアルゴリズム

シューフのアルゴリズムは、有限体上の楕円曲線上の点を数える効率的なアルゴリズムです。このアルゴリズムは、楕円曲線上の点における離散対数問題を解く難易度を判断するために点の数を知ることが重要となる楕円曲線暗号に応用されています。

このアルゴリズムは1985年にルネ・シューフによって発表され、楕円曲線上の点を数える最初の決定論的多項式時間アルゴリズムとして理論上のブレークスルーとなりました。シューフのアルゴリズム以前は、楕円曲線上の点を数えるナイーブアルゴリズムやベイビーステップ・ジャイアントステップアルゴリズムといったアプローチは、ほとんどの場合、面倒で実行時間が指数関数的でした。

この記事では、アルゴリズムの構造の基礎となる数学的な考え方に重点を置いて、Schoof のアプローチについて説明します。

導入

を有限体 上で定義された楕円曲線とするここで、 は素数、 は整数である。特性体 上の楕円曲線は、(短縮)ワイエルシュトラス方程式で与えられる。

を満たす。上で定義される点の集合は、曲線方程式を満たす解と無限遠点から構成される。この集合に制限された楕円曲線上の群法則を用いると、この集合はアーベル群を形成し、 は零元として作用することがわかる。楕円曲線上の点を数えるには、 の濃度を計算する。Schoofによる濃度計算のアプローチでは、楕円曲線上のハッセの定理に加え、中国剰余定理除算多項式も利用している

ハッセの定理

ハッセの定理は、有限体 上の楕円曲線 が次の式を満たすこと を述べている。

1934年にハッセによって示されたこの強力な結果は、可能性の有限集合(ただし大規模)に絞り込むことで、我々の問題を単純化します。を と定義し、この結果を利用すると、 を法として の値を計算することで を決定でき、したがって を決定できることがわかります一般を直接計算する効率的な方法はありませんが、小さな素数計算することは比較的効率的に可能です。となる異なる素数の集合 を選びますすべての についてが与えられている場合中国剰余定理により を計算できます

素数 を計算するには、フロベニウス準同型性除法多項式の理論を利用します。素数を考慮することは、積が十分に大きくなるように、常により大きな素数を選ぶことができるため、何ら損失にはならないことに注意してください。いずれにせよ、小さな標数体にはより効率的な、いわゆる進アルゴリズムが存在するため、Schoofのアルゴリズムは、このようなケースに対処する際に最も頻繁に使用されます

フロベニウス準同型

上で定義された楕円曲線が与えられたとき、の点、すなわち代数閉包を考えます。つまり、 内の座標を持つ点を許します上のフロベニウス自己準同型は、 によって楕円曲線に拡張されます

この写像は 上の恒等写像であり、これを無限遠点 まで拡張して から自身へ群写像にすることができます

フロベニウス自己準同型は、次の定理によって の基数に関連付けられた二次多項式を満たします。

定理:によって与えられるフロベニウス準同型は、特性方程式を満たす。

どこ

したがって、 に対して が成り立ちます。ここで、 + は楕円曲線上の加算を表し、およびは によるのスカラー乗算、によるのスカラー乗算を表します

これらの点、を の座標環上の関数として記号的に計算し、方程式を満たす の値を探すという方法もあります。しかし、次数が非常に大きくなるため、この方法は現実的ではありません。

シューフのアイデアは、この計算を様々な小さな素数 の位数点に限定して実行するというものでした。奇数の素数を固定し、与えられた素数 に対して( と定義される)を決定する問題を解くことに移ります。点が-捩れ部分群に属する場合、がかつなる唯一の整数 は です 。また、任意の整数に対して が成り立つことに注意してください。したがって、は と同じ位数を持ちます。したがってに属するに対して が成り立つ場合も が成り立ちます。したがって、問題は次の方程式を解くことに帰着します。

ここで、 およびは整数値を持ちます

素数を法とする計算

l多項式は、その根がl位の点のx座標正確に一致するような式です。したがって、 の計算を l 次ねじれ点に限定すること、これらの式をEの座標環上の関数としてかつl次多項式を法として計算することを意味します。つまり、 において作業していることになります。これは特に、によって定義されるXYの次数が、yにおいて最大で 1 、 xにおいて最大で であることを意味します

スカラー乗算は、倍精度加算法またはth 除算多項式のいずれかで行うことができます。後者の方法では以下のようになります。

ここでn次除算多項式です。 はxのみの関数であり、 と表記されることに注意してください

問題を の場合と の場合 の2つのケースに分割する必要があります。これらの等式は を法として検証されることに注意してください

ケース1:

グループの加法式を使用すると次のようになります。

不等式の仮定が間違っていた場合、この計算は失敗することに注意してください。

x座標を用いて、選択肢を正の場合と負の場合の2つの可能性に絞り込むことができます。その後、 y座標を用いて、どちらの場合が成立するかを判断します。

まず、Xがx単独の関数であることを示します。 を考えてみましょう。は偶数なので、を に置き換えると、式は次のように書き直されます。

そしてそれを持っている

さてある に対して が成り立つ とすると、 は

すべてのlねじれ点Pについて

前述のように、Yと を用いることで、または)のどちらの値が機能するかを判断できます。これにより の値が得られます。Schoofのアルゴリズムは、対象となる素数lごとにの値を変数に格納します

ケース2:

まず、 という仮定から始めます。l は奇数の素数なのでにはなり得ず、したがって となります。特性方程式から が成り立ちます。したがって となります。これは、q がlを法とする平方数であることを意味します。 としますを計算し、 かどうかを確認します。 そうであれば、y 座標に依存します。

q がl を法とする平方数でない場合、またはwと のいずれに対しても式が成立しない場合、 という仮定は誤りとなり、 となります。特性方程式は となります

追加ケース

思い出していただければ、最初の考察では の場合を省略しました。q奇数であると仮定し、特に がの位数2の元を持つ場合のみ と仮定しているからです。群の加法の定義により、 の位数2の元はすべて の形式でなければなりません。したがって、多項式がに根を持つ場合のみ、 が の場合のみ となります

アルゴリズム

 入力: 1. 楕円曲線2.有限体に対する 整数q 出力:E の点の数pを含まない 奇数素数の集合Sを選び、もしならばそうでなければ とする除算多項式 を計算する        以下のループのすべての計算は、リング で実行されます。  doの場合 :  および となる 一意の整数 とします  計算し計算します次に、 の場合を計算します。doの場合:場合、場合、 ;それ以外場合: q が l を法とする平方数の場合w計算します。 の場合、 の場合、 の場合、 で w を計算します中国剰余定理使用方程式 から N法とするt を計算します。ここで、 です                                   出力.

複雑

計算の大部分は、各素数 について、およびを評価することで行われ、つまり各素数 について、、、を計算します。これには、環 での累乗が含まれ乗算が必要になります。 の次数はであるため、環 の各要素は次数の多項式です素数定理により、サイズ の素数は約 個あるため、 となりが得られます。したがって、環 の各乗算には、 の乗算が必要であり、その乗算にはビット演算が必要になります。合計で、各素数に対するビット演算の回数は です。この計算を各素数について実行する必要があることを考えると、Schoof のアルゴリズムの総計算量は になります。高速な多項式および整数演算を使用すると、この値は にまで軽減されます

Schoofのアルゴリズムの改良

1990 年代に、ノアム・エルキーズ、続いてAOL アトキンが、これまで検討してきた素数の集合を特定の種類の素数に制限することで、シューフの基本アルゴリズムを改良しました。これらはそれぞれ、エルキーズ素数、アトキン素数と呼ばれるようになりました。特性方程式 が で分解できる素数はエルキーズ素数と呼ばれ、エルキーズ素数ではない素数はアトキン素数と呼ばれます。アトキンは、アトキン素数から得られた情報とエルキーズ素数から得られた情報を組み合わせて、シューフ・エルキーズ・アトキン アルゴリズムと呼ばれる効率的なアルゴリズムを作成する方法を示しました。取り組むべき最初の問題は、与えられた素数がエルキーズ素数かアトキン素数かを判断することです。そのためには、モジュラー形式の研究と、複素数上の楕円曲線を格子として解釈することから生まれたモジュラー多項式を使用します。どちらのケースであるかが分かれば、除算多項式 の代わりに、対応する除算多項式よりも次数の低い多項式ではなくを操作できるようになります。効率的な実装のために、確率的な根探索アルゴリズムが使用され、これは決定論的アルゴリズムではなくラスベガス アルゴリズムになります。ある境界までの素数の約半分がエルキーズ素数であるという経験的仮定の下では、これはシューフのアルゴリズムよりも効率的で、単純な演算を使用した場合の予想実行時間、高速演算を使用した場合の予想実行時間を持つアルゴリズムになります。この経験的仮定はほとんどの楕円曲線に当てはまることが知られていますが、 GRHの場合でも、すべてのケースに当てはまるとは知られていません

実装

いくつかのアルゴリズムはMike ScottによってC++で実装されました。実装は無料(条件なし)で、AGPLv3で配布されているMIRACLライブラリを利用しています。

  • 素数に対する Schoof アルゴリズムの実装
  • Schoof のアルゴリズムの実装

参照

参考文献

  • R. Schoof: 有限体上の楕円曲線と平方根の計算 mod p. Math. Comp., 44(170):483–494, 1985. http://www.mat.uniroma2.it/~schoof/ctpts.pdf で入手可能
  • R. Schoof: 有限体上の楕円曲線上の点の数え上げ. J. Theor. Nombres Bordeaux 7:219–254, 1995. http://www.mat.uniroma2.it/~schoof/ctg.pdf で入手可能
  • G. Musiker: Schoof の点計算アルゴリズム。http://www.math.umn.edu/~musiker/schoof.pdf で入手可能。
  • V. ミュラー : Die Berechnung der Punktanzahl von elliptischen kurven über endlichen Primkörpern.修士論文。ザールランデス大学、ザールブリュッケン、1991 年。 http://lecturer.ukdw.ac.id/vmueller/publications.php で入手可能 2020 年 7 月 28 日にウェイバック マシンにアーカイブ
  • A. エンゲ:楕円曲線と暗号への応用:入門 Kluwer Academic Publishers、ドルドレヒト、1999年。
  • LCワシントン著『楕円曲線:数論と暗号』Chapman & Hall/CRC、ニューヨーク、2003年。
  • N. コブリッツ:数論と暗号学講座、大学院数学テキスト第114号、シュプリンガー・フェアラーク、1987年。第2版、1994年
Retrieved from "https://en.wikipedia.org/w/index.php?title=Schoof%27s_algorithm&oldid=1317872915"