curve25519とは、
のことであり、
ed25519とは、
のことである。
これは単純な変数の置き換えで同等性が示せる。
ただし、ed25519の方が加法定義で場合分けをする必要がなく、扱いやすい。
とし、 とする。
を代入して計算すると、
となる。
xをで置き換えると。
が得られる。
curve25519とは、
のことであり、
ed25519とは、
のことである。
これは単純な変数の置き換えで同等性が示せる。
ただし、ed25519の方が加法定義で場合分けをする必要がなく、扱いやすい。
とし、 とする。
を代入して計算すると、
となる。
xをで置き換えると。
が得られる。
RSA暗号に関する文章を読んでいてもその数学的な原理がさっぱり理解できなかったのですが、
色々読んでいるうちになんとなく分かってきましたので、メモしておきます。
まずモジュラー演算記号(mod)を覚えましょう。
これは整数aを整数nで割った余りとbを整数nで割った余りが等しいことを表します。
例:
モジュラー演算には以下の性質があります。
のとき、
である。
で gcd(e, n) = 1 ならば
である。
ここで gcd(a, b) は整数a,bの最大公約数(Greatest Common Divisor)を表します。
nが正の整数で、gcd(a, n) = 1 のとき、
である。
は1からnまでの自然数のうちgcd(b, n)=1となる数bの個数を意味する関数とする。
nが素数の場合は、bは1, 2, 3, … , n-1となり、 となる。
また、p, qが素数の場合、2つをかけた合成数 pq に対してが成り立つ。
中国人剰余定理によりgcd(p, q) = 1のとき、
であれば
である。
Edward曲線
において、曲線上の2つの点 の加算後の点を次のように定義する。
この点は代数計算によって、エドワード曲線上の点になることを確かめることができる。
が、計算は長く厄介なので、計算方法を記しておく。
を計算し、に等しくなることを示す方針で行く。
代入すると
ここで、
と置く。
B + C + Dを全て展開し、の順番で並べると、7つほどペアが消える。
ここではx,yの個数を表すが、それぞれ別々に計算してゆくと、には、
, が2つ以上出てくるので、
に置き換える。
ここで、 を計算すると、5つほどペアが消え、 が残る。 あとは自明である。
2007年のエドワードさんの論文(http://www.ams.org/journals/bull/2007-44-03/S0273-0979-07-01153-6/S0273-0979-07-01153-6.pdf)
から、エドワード曲線と名付けられた
がどのような形をしているのか見てみましょう。
まずはa=1.0
2本の直線になってしまいました。。
次にa=1.1
次にa=0.9
おっと丸くなりました。
次に、ツイストエドワード曲線(http://eprint.iacr.org/2008/013.pdf)
をみてみましょう。
a=1, d= -50
a=-1, d=-50
a=-1, d=5
楕円曲線の一般的な形は以下のように表せます。
暗号理論に用いる楕円曲線は特異でない形のものだけを扱います。
特異でない形のものは2つのパターンに分けられます。
1) yが0の時のxの値が3つある場合
2) yが0の時のxの値が1つだけしかない場合
それぞれの例を挙げます。
1)
これは、左の曲線が閉じているパターンです。
2)
これは開いているパターン。
このグラフのイメージを掴んでおくと、楕円曲線の理論がとても理解しやすくなります。
a) この曲線上の2つの点を結ぶ直線を引くと、曲線と交わる3番目の点は必ず存在します。
b) xをプラスの無限大に持っていくと、yがプラスの無限大とマイナスの無限大に近づきます。