双線形写像について

エルガマル暗号は離散対数問題(DH問題)に基づいた暗号方式ですが、双線形写像を用いて離散対数問題を拡張した方式が考えられています。 双線形写像で二つの離散対数問題が結びつけられることにより、暗号方式に付加的な機能を実現することができる様になっています。 双線形写像としては楕円曲線上のペアリングと呼ばれる写像が用いられるのですが、この写像の実際の計算の仕方はとても難しく私の手には負えないので、実現されている双線形写像を道具として用いることについて考察して行きます。


G上の演算*
ある集合Gがあり、その集合上で演算*が定義されているとき、これを代数系と呼び、(G,*)、または、簡単にGと表すことにします。 代数系(G,*)では、a,b ∈ Gに対して、c=a*bとなるGの要素cが必ずあります(演算*は+や×に置き換えて考えた方が分かりやすいです)。
演算*が次の三つの性質を満たしているとします。
  1. 任意のa,b,c∈Gに対して、(a*b)*c=a*(b*c) :結合律
  2. 任意のa∈Gに対してa*e = e*a = a となるe∈Gが存在する。 :単位元の存在
  3. それぞれのa∈Gに対して、a*a’ = a’*a = e となるa’が存在する :逆元の存在
  4. 任意のa,b∈Gに対して、a*b = b*a :交換律
1〜3の性質を満たしている場合Gはであると言い、更に4を満たしている場合にGは可換群であると言います。 特に断りませんが、ここで扱う群はすべて可換群であるとします。


巡回群

Gのある要素gを用いて、Gの任意の要素aがgを何回か演算することによって得られるときGは巡回群であるといいます。 すなわち、任意の要素aをある要素gを用いて、

   a = g *g* … * g
と表すことができるとき、Gは巡回群であるといい、gを巡回群Gの生成元であるといいます。 以下ではGは巡回群であるとします。 巡回群は必ず可換群になりますのでGは可換群になります。
例:
Z3 = {0, 1, 2}とし、Z3上の演算として+を法3の足し算として定義します。 Z3と演算+の組(Z3,+)は可換群になり、以下のようになります。
0+1=1、2+1=0、2+2=4 
このとき、0が単位元となり、2+1=0より、2の逆元は1、1の逆元は2となります。
1=1、2=1+1、0=1+1+1
より、Z3は巡回群となり1が生成元になります。 このとき2も生成元になります。


加法群、乗法群

群Gにおける演算としてはいろいろなものが考えられますが、代表的なものは足し算+と掛け算×です。 足し算とみなせるような演算をもつ群を加法群、掛け算とみなせるような演算をもつ群を乗法群と呼びます。 ここでは、群を考える場合は足し算も掛け算も*で表すことにします。

加法群:
単位元は0と表し、aの逆元は−aと表すことにします。
a * 0 = a, a*(−a) = 0
などとなります。aをn回足すことn・aと表すことにします。n・a =a*…*aです(aはn個)
乗法群:
単位元は1と表し、aの逆元は1/aと表すことにします。
a * 1 = a, a*(1/a) = 1
などとなります。aをn回かけることanと表すことにします。an =a*…*aです(aはn個)。乗法群の場合はa*bをabと略記する場合があります。


離散対数問題の一般化

巡回群Gにおいて生成元をgとしたときに、Gのある要素a ∈ Gがgを何個演算するとaになるかを求める問題を群G上の離散対数問題ということができます。

Gが乗法群のとき:
gx = a となるxを求める問題。
Gが加法群のとき:
x・g = a となるxを求める問題。
となります。
正の整数pを素数とした時にZp={0,1,…,p-1}上の法pの掛け算による(乗法)群が通常の離散対数問題になります。 同様にZp上に法pの足し算による(加法)群上でも離散対数問題を考えることができますが、x・g = aという方程式(この計算は法pの掛け算に一致します)は簡単に解けてしまいますので、この場合の離散対数問題は易しい問題となります。 暗号理論で利用するのは離散対数問題が難しい問題となるような群です。


楕円曲線上の群

楕円曲線:
楕円曲線とは以下の式で表される曲線です。
y2 = x3+ax+b
点(x,y)が曲線上にあるならばy軸に関して対称となる点(x,−y)もこの曲線上の点になることがすぐに分かりますので、楕円曲線はx軸に関して対象であることが分かります。 直線 y=cx+dとの交点を考えるために、y=cx+dを代数曲線の式に代入するとxに関する3次式となることから、直線とは3点で交わることが分かります。
楕円曲線上の点の加算:
楕円曲線C上の点P1, P2に対して、P1, P2を通る直線fを考えると、fとCの交点は点P1, P2以外にもう一点あり、それをP’とします。P’のC上のx軸に対称点を点P3とし、点P3=P1+P2と定義します。 P1とP2がx軸に関して対象となる点の場合にはP1, P2を通る直線fはy軸と平行になってしまいます。 この場合には無限遠の点をOと定義して、O=P1+ P2とします。 P1+O=O+P1=Oとすると、楕円曲線上の点にOを加えた集合はこの加算により群になることが知られています。
楕円曲線上の群:
単位元はO、P1とP2がx軸に関して対象ならばP2 = −P1となります。 素数pに対してZp={0,1,…,p-1}上で法pの加算と乗算を考えると実数と同じ様に四則演算ができることが分かります。 実数の様に四則演算のできる代数系を体(たい)と呼びます。 Zp上で法pの加算と乗算を考える場合は有限集合上の体ということで有限体と呼ばれます。 楕円曲線上は有限体上でも同様に考えることができ、有限体上の楕円曲線上の群も同様に生成できます。
楕円曲線上の離散対数問題:
有限体上の楕円曲線上の点は有限個しかありません。 この有限個の点上に先の様に加算を定義した加法群についても離散対数問題を考えることができ、この離散対数問題は効率的に解くのが難しい問題と考えられています。 楕円曲線上の点P1,P2に対して、
x・P1 = P1+P1+…+P1 (P1をx個加算する) = P2
が成り立つxを求める問題が楕円曲線上の離散対数問題になります。 楕円曲線上の離散対数問題の難しさに基づいたエルガマル暗号を構成することができます。


双線形写像

線形写像:
ベクトル空間上の写像fが以下の性質を満たすとき線形写像といいます。
任意のベクトルx, yと任意のスカラーcに対して、
f(x+y) = f(x) + f(y), f(cx) = cf(x).
線形写像fはベクトルの和をとるとfの値も和となり、ベクトルをc倍するとfの値もc倍になるような写像です。 ベクトルでの演算がfの値の演算にそのまま反映する写像と見ることがでいます。
群上の線形写像:
群G1から群GTへの写像f: G1→GTについて線形写像というものを考えると以下の性質を満たすことが対応します。
任意のa,b∈G1に対して f(a*b) = f(a) * f(b)
この性質から、G1, GTが加法群のとき、
f(n・a) = f(a*…*a) = f(a)*…*f(a) = n・f(a),
となります。このとき、GTのみ乗法群であるとすると、
f(n・a) = f(a*…*a) = f(a)*…*f(a) = f(a)n
となります。更に、G1, GTが乗法群のとき、
f(an) = f(a*…*a) = f(a)*…*f(a) = f(a)n,
となります。 ここではGTが加法群の場合もありますが、GTが乗法群の場合しか扱いませんので省略します。
双線形写像:
2つのベクトルに対して一つの値を与える2変数の写像fについて、それぞれのベクトルについて線形性を考えると双線形写像になります。 任意のベクトルx1,x2, y1,y2と任意のスカラーcに対して、
f(x1+x2,y1) = f(x1,y1) + f(x2,y1), f(cx1,y1) = cf(x1,y1),
f(x1,y1+y2) = f(x1,y1) + f(x1,y2), f(x1,cy1) = cf(x1,y1).
この性質から例えば以下の等式が導けます。
任意のベクトルx1,x2, y1,y2に対して、
f(x1+x2,y1+y2) = f(x1+x2,y1) + f(x1+x2,y2)
f(x1+x2,y1+y2) = f(x1,y1) + f(x2,y1) +f(x1,y2) +f(x2,y2)


群上の双線形写像

群の二つの要素に対して別の群の要素を割当てる写像e: G1×G1→GTを考えます。 G1,GT共に素数位数qの巡回群であるとします。 GTは乗法群とします。

G1が加法群のとき:
任意の要素P1,P2,Q1,Q2 ∈ G1に対して、
e(P1+P2,Q1) = e(P1,Q1)e(P2,Q1), e(P1,Q1+Q2) = e(P1,Q1)e(P1,Q2)
となります。この性質から、
e(n・P1,Q1) = e(P1,Q1)n, e(P1,n・Q1) = e(P1,Q1)n
が導かれます。
G1が乗法群のとき:
任意の要素f1,f2,g1,g2 ∈ G1に対して、
e(f1*f2,g1) = e(f1,g1)e(f2,g1), e(f1,g1*g2) = e(f1,g1)e(f1,g2)
となります。この性質から、
e(f1n,g1) = e(f1,g1)n, e(f1,g1n) = e(f1,g1)n
が導かれます。


非退化性

双線形写像は非退化性と呼ばれる次の性質を満たしているものが使われます。 GTの単位元を1とします。

G1が加法群の場合:
G1の生成元をPとすると、 e(P,P) = 1とはならない。
G1が乗法群の場合:
G1の生成元をgとすると、 e(g,g) = 1とはならない。
この性質は例えば、「G1の要素Pでe(P,P)が1にならないものが存在する」というように記述される場合もあります。


双線形群

G1,GT共に素数位数qの巡回群であるとし、群G1の二つの要素に対して群GTの要素を割当てる非退化な双線形写像
e: G1×G1→GTが定義されているような群をここでは双線形群(G1,GT,e)と呼ぶことにします。