BLS署名とはペアリングという写像を用いた、ディジタル署名方式である。本記事ではペアリングとBLS署名について、それぞれまとめた。
ペアリングは次のように定義される。
(厳密な定義ではないが、本記事を読みすすめるには問題ない。)
$G_1, G_2, G_T$を素数位数 $q$ の巡回群とする。次の性質を持つ 写像 $e : G_1 \times G_2 \rightarrow G_T$を ペアリング という。$P$は $G_1$の、$Q$は$G_2$の生成元とする。
任意の $a\in \mathbb{Z}$ に対し、次の式が成り立つ。
$$e(aP,Q)= e(P, aQ) = e(P,Q)^{a}$$
次の式が成り立つ。$1 ^ {G_T}$は $G_T$の単位元である。
$$e(P, Q) \neq 1 ^ {G_T}$$
暗号学的ハッシュ関数 を$H:\{0,1\}^* \to G$とおく。署名対象$m$に対する署名$\sigma$を求める。
$$\sigma = sH(m)$$
次の式が成り立てば署名を受理する。
$$e(\sigma, Q) = e(H(m), y)$$
以下に署名の検証が成り立つこと示す。
ペアリングの双線形により、次の式が成り立つ。
$$ e(\sigma, Q) = e(sH(m), Q) = e(H(m), sQ) = e(H(m), y) $$
ペアリングを利用した署名である、BLS署名方式についてまとめた。
$s$:秘密鍵
$p$:法
$P, Q$:生成元
$H(x)$:ハッシュ関数
$e(x, y)$:ペアリング