モンゴメリ曲線

提供: testwiki
ナビゲーションに移動 検索に移動

数学において、モンゴメリ曲線(モンゴメリきょくせん、Montgomery curve)は楕円曲線の一つの形式であり、通常のワイエルシュトラス形式[1]とは異なる形式である。1987年にピーターL.モンゴメリーによって導入された。特定の計算、特にさまざまな暗号化アプリケーションで使用される。

定義

方程式 14y2=x3+52x2+x に対するモンゴメリ曲線

テンプレート:Math上のモンゴメリ曲線は次の方程式で定義される。

MA,B:By2=x3+Ax2+x

ただし、 ABテンプレート:Mathおよびテンプレート:Mathを満たす。

一般に、この曲線は、標数が2以外の有限体K (たとえば、 要素テンプレート:Math個である有限体テンプレート:Math )上で定義される テンプレート:Math かつ テンプレート:Math であるような曲線と考えられる。しかし、テンプレート:Mathテンプレート:Mathの条件は同じである有理数上の曲線とも考えることもできる。

モンゴメリー演算

楕円曲線の点の間でいくつかの「演算」を行うことができる。2つの点 P,Q の「加算」は R=P+Q である3番目の点R を見つけることである。点の「2倍算」は、[2]P=P+P を計算することである。(演算の詳細については、下の説明や群構造を参照のこと。)

モンゴメリ形式 By2=x3+Ax2+x の楕円曲線上の点 P=(x,y)は、モンゴメリー座標 P=(X:Z) で表すことができる。ただし、P=(X:Z)射影座標であり、Z0 に対して x=X/Z である。

注意しなければならないことは、この種の点の表現は情報を失うことである。実際、この場合、アフィン空間内の点 (x,y)(x,y) は共に同じ点 (X:Z) で表現されるため、区別が無くなる。しかし、この表現においても、点の定数倍を得ることができる。つまり、与えられた点 P=(X:Z) から、 [n]P=(Xn:Zn)を計算できる。

今、2つの点 Pn=[n]P=(Xn:Zn)Pm=[m]P=(Xm:Zm) を考える。それらのは点Pm+n=Pm+Pn=(Xm+n:Zm+n) で表され、その座標は次のように与えられる。

Xm+n=Zmn((XmZm)(Xn+Zn)+(Xm+Zm)(XnZn))2
Zm+n=Xmn((XmZm)(Xn+Zn)(Xm+Zm)(XnZn))2

もし m=n ならば、演算は「2倍算」である。[2]Pn=Pn+Pn=P2n=(X2n:Z2n) の座標は次の式で与えられる。

4XnZn=(Xn+Zn)2(XnZn)2
X2n=(Xn+Zn)2(XnZn)2
Z2n=(4XnZn)((XnZn)2+((A+2)/4)(4XnZn))

楕円曲線を定義している体の要素の掛け算と二乗算の時間コストをそれぞれMSとすると、上記の一つ目の演算(加算)の時間コストは、3M+2Sである。

また、体の要素の定数倍の時間コストをDとすると、2つ目の演算(2倍算)の時間コストは2M+2S+1D である。定数倍の定数は (A+2)/4 であるため、D を小さくするために小さい A を選ぶことができる。

アルゴリズム例

次のアルゴリズムは、モンゴメリー形式の楕円曲線上の点P1=(X1:Z1)の2倍算を表す。

Z1=1 とする。この実装における計算コストは、1M + 2S + 1*A + 3add + 1*4である。ここで、Mは乗算、Sは二乗、"*a"は定数倍(定数aをかける)を表す。

XX1=X12
X2=(XX11)2
Z2=4X1(XX1+AX1+1)

計算例

P1=(2,3)を曲線 2y2=x3x2+x 上の点とする。 (X1:Z1)座標では、x1=X1/Z1 より、P1=(2:1) となる。

よって

XX1=X12=4
X2=(XX11)2=9
Z2=4X1(XX1+AX1+1)=24

これにより、P2=2P1である点はP2=(X2:Z2)=(9:24)である。

加算

モンゴメリ曲線 MA,B 上の与えられた2つの点 P1=(x1,y1)P2=(x2,y2) に対して、点 P3=P1+P2 は、幾何学的には、P1P2 を通る直線と曲線 MA,B の3番目の交点によって決定される。P3の座標 (x3,y3) は次のように計算できる。

1)アフィン平面における直線は一般にy=lx+m で表せるが、P1P2を通るという条件から、 l=y2y1x2x1m=y1(y2y1x2x1)x1 となる。

2)この直線と曲線 MA,B との交点を求めるために、曲線の方程式の yy=lx+m を代入する。すると次の3次方程式が得られる。

x3+(ABl2)x2+(12Blm)xBm2=0

この方程式には、3つの解があり、それらは P1P2P3x 座標に対応する。したがって、この方程式は次のように書き直すことができるはずである。

(xx1)(xx2)(xx3)=0

3)上記の2つの同じ方程式の係数、特に2次の項の係数を比較すると、次を得ることができる。

x1x2x3=ABl2

よって、x3 は、 x1, y1, x2, y2 によって

x3=B(y2y1x2x1)2Ax1x2

で書き表すことができる。

4)点 P3y 座標を見つけるためには、直線の式 y=lx+mx=x3 を代入すれば良い。ただし、これは点 P3 を直接与えないことに注意。この方法は、R+P1+P2=P を満たす点 R の座標を与える。R+P1+P2=PR=P1+P2 を意味することに注意すると、P1+P2 を得るためには、得られた点 R から点 R を見つける必要がある。ただ、これは Ry の座標の符号を逆にすることで、簡単に行うことができる。つまり、直線の式に x3 を代入して得られた y 座標の符号を反転させる必要がある。

これらをまとめると、P3=P1+P2 である点の座標 P3=(x3,y3) は、次のように書ける。

x3=B(y2y1)2(x2x1)2Ax1x2=B(x2y1x1y2)2x1x2(x2x1)2
y3=(2x1+x2+A)(y2y1)x2x1B(y2y1)3(x2x1)3y1

2倍算

モンゴメリ曲線MA,B上の与えられた点P1に対して、点P1において曲線と接する直線を考えたとき、2倍算の点[2]P1は、直線と曲線の3番目の交点で表される。よって、点P3=2P1の座標を見つけるには、加算で与えられたのと同じ方法に従えば十分である。ただし、この場合、直線y=lx+mは点P1で曲線に接している必要がある。もし曲線MA,B

f(x,y)=x3+Ax2+xBy2=0

であるならば、直線の傾きを表すl の値は、陰関数定理により、次の式で与えられます。

l=fx/fy


よって、l=3x12+2Ax1+12By1であり、P3=2P1の座標は

x3=Bl2Ax1x1=B(3x12+2Ax1+1)2(2By1)2Ax1x1=(x121)24By12=(x121)24x1(x12+Ax1+1)y3=(2x1+x1+A)lBl3y1=(2x1+x1+A)(3x12+2Ax1+1)2By1B(3x12+2Ax1+1)3(2By1)3y1.

で求められる。

ツイステッドエドワーズ曲線との同等性

Kを、標数が2ではない体とする。

MA,B

MA,B:Bv2=u3+Au2+u

で表されるモンゴメリ形式の楕円曲線とする。ただし、AK{2,2}BK{0}。また、Ea,d

Ea,d : ax2+y2=1+dx2y2,

で表されるエドワーズ形式の楕円曲線とする。ただし、a,dK{0},ad.

次の定理は、モンゴメリ曲線とツイステッドエドワーズ曲線との双有理同値性を示している [2]

定理(i)ツイステッドエドワーズ曲線は、K上のモンゴメリ曲線と双有理同値である。特に、ツイステッドエドワーズ曲線Ea,dは、A=2(a+d)adB=4ad を満たすモンゴメリ曲線MA,Bと双有理的同値である。

写像

ψ:Ea,dMA,B
(x,y)(u,v)=(1+y1y,1+y(1y)x)

は、Ea,dからMA,Bへの双有理同値であり、逆写像:

ψ1MA,BEa,d

(u,v)(x,y)=(uv,u1u+1),a=A+2B,d=A2B

で与えられる。

2つの曲線間のこの同値性は、任意の場所で有効であるわけではないないことに注意。例えば、写像ψは、v=0u+1=0であるMA,B 上の点では定義されていない。

ワイエルシュトラス曲線との等価性

楕円曲線はワイエルシュトラス形式で記述できる。特に、モンゴメリ形式の楕円曲線

MA,BBy2=x3+Ax2+x

は、次の方法で変換できる;MA,Bの方程式の各項をB3で除算し変数xとyをそれぞれ u=xBv=yB に置き換える。これにより、方程式

v2=u3+ABu2+1B2u

が得られる。ここから短いワイエルシュトラス形式を取得するには、uを変数 tA3B に置き換えるだけで十分で、

v2=(tA3B)3+AB(tA3B)2+1B2(tA3B);

最終的に、方程式

v2=t3+(3A23B2)t+(2A39A27B3).

が得られる。

したがって写像

ψMA,BEa,b

は次で与えられる。

(x,y)(t,v)=(xB+A3B,yB),a=3A23B2,b=2A39A27B3

一方、体𝔽をベースとするワイエルシュトラス形式の楕円曲線

Ea,bv2=t3+at+b

は、常にモンゴメリ形式に変換できるわけではない。Ea,bの位数が4で割り切れ、次の条件を満たすときに、またその時に限り変換できる[3]

  1. z3+az+b=0 が少なくとも1つの根α𝔽を持ち、
  2. 3α2+a𝔽において平方剰余である。

これらの条件が満たされるとき、s=(3α2+a)1と置くと、写像

ψ1Ea,bMA,B

(t,v)(x,y)=(s(tα),sv),A=3αs,B=s

で表せる。

関連項目

  • Curve25519
  • 楕円曲線上の演算のコスト – 特定の場合に必要な実行時間に関する情報

脚注

テンプレート:Reflist

参考文献

外部リンク