BLS署名における双線形性(ペアリング)について
ブロックチェーン系プロジェクトで着目される暗号技術のP.21-22を理解するために双線形性(ペアリング)について調べた。自分が理解するに至った軌跡をメモベースで残す。
余談だが、調べる過程で双線形写像(Bilinear maps)とペアリングの違いが気になった。個人的な印象としては、ペアリングは暗号分野寄りに使われる用語だと思ったが、Intro to Bilinear Mapsにも以下のように書いてあるので、本記事では大体同じものとして扱う。
Bilinear maps are called pairings because they associate pairs of elements from G1 and G2 with elements in Gt.
(拙訳) 双線形写像はペアリングとも呼ばれる。 G1とG2からの要素をGtでペアとして関連付けるからだ。
以下、調べた内容。1
双線形とは何なのか
本節は、ブロックチェーン系プロジェクトで着目される暗号技術がベースとなっている。
双線形を定義するにあたり、まず2種類の楕円曲線の生成元をとする。このとき、素数位数の加法巡回群は、以下のように表現できる。
また、有限体と、位数の乗法巡回群(の乗根の集合)としてを定める。
このとき、なるに対して、写像が以下を満たすことを双線形という。
個人的に本記事を書く要因となったのが、ブロックチェーン系プロジェクトで着目される暗号技術P.22「正当性」における以下の数式。上記定義と表記が違ったので疑問に思って調べ始めた。なので本記事では下記数式が成立するところまでを追う。
ベクトル空間における線形性(その1)
本節は、双線形関数 物理のかぎしっぽがベースになっている。
まず、復習として一変数関数に対する線形性を考える。 これはベクトル空間のなる元に対して、写像が以下を満たすことだった。
では、二変数ではどうなるか。 ベクトル空間の直積集合の元に対して、写像が以下を満たすことを双線形という。
双線形関数 物理のかぎしっぽ本文には、以下のように記載されているが、理解が及ばず腹落ちしなかった。
双線形関数は 個々の変数に対して別々に線形性を持っている と言えそうです.これが双線形という名前の由来でもあります なるほど。確かにそう見える。
ベクトル空間における線形性(その2)
本節は、岸本研究室 - 双線形写像についてがベースとなっている。
上記議論では、理解が及ばなかったので、もう少しシンプルに考える。 「ベクトル空間における線形性(その1)」の定義に比べて、式の数は多いが、以下で双線形を定義したほうがシンプルで、学習にあたっては、理解しやすかった。
双線形を定義する。ベクトル空間を考え、なる元を考える。このベクトル空間に対して、なる写像を定義する。また、とする。 このとき双線形は以下の性質を満たすことをいう。
こちらのほうが「ベクトル空間における線形性(その1)」で引用した個々の変数に対して別々に線形性を持っている
というのが理解しやすいと思う。
双線形の例
「例示は理解の試金石」ということで双線形を満たす写像の具体例を考えてみる。
双線形な例
「ベクトル空間における線形性(その2)」で定義した4式を一つずつ確かめていく。
となり、すべて満たすので双線形。
双線形じゃない例2
実は最初にこれを念頭に考えていた。パッと見、線形性持ってそうだし。でも双線形じゃない。 4式中の一番上の式で双線形を満たさないことを確認する。
となり、左辺と右辺が一致しない。
BLS署名における双線形
話をベクトル空間から乗法巡回群で考えているBLS署名の話に戻す。それにあたり「ベクトル空間における線形性(その2)」で登場した双線形性の定義を再掲する。
これらはベクトル空間と実数で考えていたので、乗法巡回群と有限体で考え直す。Intro to Bilinear Mapsより双線形性の定義を引用すると、双線形性とはなる写像について、に対して、
が成り立つことである。ただし、このときは非退化である。また本式の表現方法にはIntro to Bilinear Mapsの7ページ目に書いてある以下の表記もある。
に対して、
いきなり上式が出てくると、ベクトル空間から乗法巡回群への議論で少し飛んでしまっているように感じられるので補足する。
4式のうち、上2式について対応を示す。3
式(2)から示す。において、とすると
と表現できる。ここででが乗法巡回群であることを考えると自然な表記であろう。
次に式(1)を示す。でが加法巡回群であることを考えると
となることを示せればよい。ここではの元であることから生成元を用いて、
と表現できる。ここでである。これらを用いると
が得られる。
ここまでの議論は整数上のものだったが、有限体上でも成り立つとして、
に対して、
である。ここからが可換であることがわかるが、もう少し詳細に書いておく。
に対して、とすると
である。同様にとすると
である。これらを合わせると
が得られる。これを使うとブロックチェーン系プロジェクトで着目される暗号技術のP.22では、以下の変形が成り立つことがわかる。