modによる楕円曲線上の点の離散化
楕円曲線上の連続した実数値では暗号にできないので、図6で説明し たmodにより、自然数の世界にこれを引き込みます。ある素数pを法 にするのです。実際には極めて大きな値を使うのですが、ここではpを 11とし、図15で描いたy**2 = x**3 - 2*x + 3を用います。11を法 としてこの方程式を満たす自然数の組合せを考えるのです。
左の図は11を法とした乗算表です。x=0とすると右辺は3ですね。 二乗して3になる(11を法として)数には、5と6とがあることが表か らわかります。つまり、(0,5)と(0,6)が、11を法として楕円曲線方程式 を満たすわけです。
x=1や3だと右辺は2。しかし二乗して2になる数はありません。 x=2とすると右辺は7。二乗して2になる数もありません。x=4と すると右辺は4。表から二乗して4になる数は2と9があります。つま り、(4,2)と(4,9)が、方程式を満たします。以下同様に、(6,3)と(6,8) と(8,2)と(8,9)と(10,2)と(10,9)とを得ます。
次に、(0,5)の「2倍の点」を求めましょう。まずそのためのsの値を 求めます。前項でs=(3*x1**2 + a)/(2*y1)と述べましたが、11を法と する自然数の中では、普通の割り算はできません。そこで右辺の分母を 移項して、s*(2*y1)=(3*x1**2 + a)とします。aは-2ですが、11を法と する世界なので、これは9ということです。また、x1は0でy1は5です。 つまり、s*10=9となるsを求めればよいわけです。乗算表からこれは 2とわかります。
そのsやx1やy1を元に2倍点(s**2-2*x1,-y1+s*(3*x1-s**2))を求める と、(4,9)という値を得ます。同じようにすべての2倍点が計算できます。 その結果を右の表に記します。もちろん一般にn倍点も求まります。
sponsored link
このページ
のTOPへ


