論文翻訳: Short Signatures from the Weil Pairing
Dan Boneh*, Ben lynn, and Hovav Shacham
{dabo,blynn,hovav}@cs.stanford.edu
Abstract
特定の楕円曲線および超楕円曲線に関する Computational Diffie-Hellman 仮定に基づいた短い署名スキームを紹介する。同等のセキュリティレベルをもつ DSA 署名に比べて署名の長さは半分である。我々の短い署名スキームは、署名が人の手で入力されたり低帯域幅チャネルを介して送信されるシステム向けに設計されている
- * Supported by NSF and the Packard Foundation.
Table of Contents
- Abstract
- 1 導入
- 2 Gap Diffie-Hellman に基づく署名スキーム
- 3 小さな表現での Gap Diffie-Hellman 群の構築
- 4 定理のセキュリティ証明
- 5 実験結果
- 6 結論
- Acknowledgments
- References
- 翻訳抄
1 導入
人間が手動で署名を入力する必要がある環境では短いデジタル署名が必要である。例えば製品登録システムではしばしば CD ラベルに記載されている署名を入力するようユーザに求めている。より一般には低帯域幅の通信環境では短い署名を必要としている。例えば郵便切手に署名を印刷する場合は短い署名が必要である [21,19]。現在最も頻繁に使用されている署名スキームの RSA と DSA は提供するセキュリティに比べていささか長い署名を提供する。例えば 1024 ビットのモジュラスを使用する RSA 署名の長さは 1024 ビット長である。同様に 1024 ビットのモジュラスを使用する標準の DSA 署名は 320 ビット長である。ECDSA などの楕円曲線 DSA 変種も 320 ビット長である [1]。320 ビットの署名は人間が入力するには長すぎる。
我々は長さが約 160 ビットで 320 ビットの DSA 署名と同様のセキュリティを提供する署名スキームを提案する。我々の署名スキームは (ランダムオラクルモデルでの) 選択メッセージ攻撃 (chosen message attack) の下での実在的偽造 (existential forgery) に対してセキュアである。Computational Diffie-Hellman 問題 (CDH) が特性 3 の有限体上の特定の楕円曲線上で困難であると仮定している。署名の生成は曲線上での単純な乗算である。署名の検証は曲線上の双線形ペアリングを使用して行われる。我々の署名スキームは本質的に楕円曲線の特性を使用している。その結果 \(\mathbb{F}_p^*\) に我々のスキームに相当するものはない。
我々が使用する曲線の特性により、今のところ我々は以下に示す長さの署名のみを提供できる。これらの群の CDH 問題を解くためのもっともよく知られたアルゴリズムは特性 3 の有限体で離散対数を必要とする。フィールドのサイズは以下の表の右端の列に (ビットで) 与えられる。
Signature size (bit) |
EC group size (bit) |
Discrete-log Security (bit) |
---|---|---|
126 | 126 | 752 |
154 | 151 | 923 |
237 | 220 | 1417 |
259 | 256 | 1551 |
265 | 262 | 1589 |
2 行目は 154 ビット長の署名で 320 ビット DSA または 320 ビット ECDSA に匹敵するセキュリティを獲得できることを示している。154 ビット署名を偽造するためのもっとも知られたアルゴリズムでは 923 ビットサイズの有限体か 151 ビットサイズの楕円曲線群で CDH 問題を解く必要がある。セクション 3.5 では我々の手法を一般化し任意長の署名を構築するアプローチを概説する。
短い署名の作成は古くからある問題である。いくつかの提案はセキュリティレベルを維持しながら DSA 署名スキームを短縮する方法を表している。Naccache and Stern [19] は署名の長さが約 240 ビットとなる DSA の一種を提案している。Mironov [18] は同様の長さの DSA 変種を提案しその構造の具体的なセキュリティ解析を (ランダムオラクルモデルで) 与えている。DSA 署名長を削減するために提案された別の手法はメッセージ回復を伴う署名 [21] である。このようなシステムではメッセージの一部を署名にエンコードすることで、メッセージ-署名のペアの全長が短縮される。長いメッセージの場合は長さ 160 ビットの DSA 署名オーバーヘッドを達成することができる。しかし、非常に短いメッセージ (例えば 64 ビット) では全体の長さは依然として 320 ビットである。我々の署名スキームを使用することで、メッセージの長さに関係なく署名の長さは常に 160 ビットのオーダーとなる。メッセージを送信せず署名だけを送信する場合、メッセージ回復を伴う DSA 署名は標準の DSA 署名よりも短くならないことに注意。
我々の署名スキームは、CDH 問題は困難だが Decision Diffie-Hellman 問題 (DDH) は容易である群を使用している。このような群の最初の例は [12] で与えられ、以前には [11,4] で用いられた。このような群を Gap Diffie-Hellman 群、略して GDH 群と呼ぶ。Okamoto and Pointcheval [20] は Gap Diffie-Hellman 群が署名スキームを生み出すとコメントした。しかし、ほとんどの Gap Diffie-Hellman 群は比較的長く、短い署名にはつながらない。GDH 群から派生した署名スキームのセキュリティを証明し、それらが非常に短い署名をもたらす方法を示す。セクション 5 で提案した署名スキームを実験し実行時間を与える。
2 Gap Diffie-Hellman に基づく署名スキーム
我々は任意の Gap Diffie-Hellman 群で機能する署名スキームを提示する。前述のように、このスキームは Okamoto and Pointcheval [20] によって暗黙的に記述されている。このスキームは Chaum and Pederson [5] によって提案された否認不可署名スキームに似ている。次のセクションではこの署名スキームがどのように非常に短い署名を生成するかを示す。
2.1 Gap Diffie-Hellman 群 (GDH 群)
\(p=|G|\) が素数である (乗法) 巡回群 \(G=\langle g \rangle\) を考える。我々は \(G\) において 3 つの問題に興味がある。
Group Action (群作用). 与えられた \(u, v \in G\) に対して \(uv\) を求める。
Decision Diffie-Hellman. \(a,b,c \in \mathbb{Z}_p^*\) に対して \((g,g^a,g^b,g^c)\) が与えられた場合、\(c = ab\) であるかを決定する。
Computational Diffie-Hellman. \(a,b \in \mathbb{Z}_p^*\) に対して \((g,g^a,g^b)\) が与えられた場合、\(g^ab\) を計算する。
Gap Diffie-Hellman 群を段階的に定義する。
定義 1 . group action をある時間単位で計算でき、\(G\) 上の Decision Diffie-Hellman を最大 \(\tau\) 時間で計算できる場合、\(G\) は Diffie-Hellman の \(\tau\) 決定群である。
定義 2 . 群 \(G\) で Computational Diffie-Hellman 問題を解く際のアルゴリズム \(\mathcal{A}\) の優位性は \[ {\sf AdvCDH}_{\mathcal{A}} \overset{def}{=} {\rm Pr} \left[ \mathcal{A}(g,g^a,g^b) = g^{ab} : a,b \overset{R}{\leftarrow} \mathbb{Z}_p^* \right] \] ここで確率は \(a\), \(b\) の選択、そして \(\mathcal{A}\) のコイントスを超える。もし \(\mathcal{A}\) が最大 \(t\) で時間内に実行され \({\sf AdvCDH}_{\mathcal{A}} \ge \epsilon\) である場合、アルゴリズム \(\mathcal{A}\) は \(G\) の Computational Diffie-Hellman を \((t,\epsilon)\)-break するという。
定義 3 . 素数位数群 \(G\) が Diffie-Hellman に対して \(\tau\)-決定群であり、Computational Diffie-Hellman を \((t,\epsilon)\)-break するアルゴリズムが存在しない場合、\(G\) は \((\tau,t,\epsilon)\)-GDH 群である。
2.2 GDH 署名スキーム
GDH 署名スキームは任意のメッセージ \(m \in \{0,1\}^*\) 上での署名作成を可能にする。署名 \(\sigma\) は \(G\) の元である。ベースの群 \(G\) と生成元 \(g\) はシステムパラメータである。我々は \(G^*\) によって \(G^*=G \backslash \{1\}\) を表す。ここで \(1\) は \(G\) の恒等写像である。
署名アルゴリズムは KeyGen, Sign, Verify の 3 つのアルゴリズムで構成される。フルドメインハッシュ関数 \(h : \{0,1\}^* \to G^*\) を使用する。セキュリティ分析では \(h\) はランダムオラクル [3] とみなされる。セクション 3.3 ではフルドメインハッシュの要件を弱めている。
鍵生成. \(x \overset{R}{\leftarrow} \mathbb{Z}_p^*\) をランダムに選び、\(v \leftarrow g^x\) を計算する。公開鍵は \(v\) であり、秘密鍵は \(x\) である。
署名. 与えられた秘密鍵 \(x\) とメッセージ \(M \in \{0,1\}^*\) に対して \(h \leftarrow h(M)\) と \(\sigma \leftarrow h^x\) を計算する。署名は \(\sigma \in G^*\) である。
検証. 与えられた公開鍵 \(v\)、メッセージ \(M\)、署名 \(\sigma\) に対して \(h \leftarrow h(M)\) を計算し、\((g,v,h,\sigma)\) が有効な Diffie-Hellman タプルであることを検証する。
GDH 署名は \(G^*\) の単一元であることに注意。したがって短い署名を作成するには元が短い表現を持つ GDH 群を必要とする。セクション 3 ではそのような群を構築する。
2.3 セキュリティ
選択メッセージ攻撃の下で実在的偽造に対する GDH 署名スキームのセキュリティを示す。
定義 4. 署名オラクル \(S\) にアクセスが与えられると、偽造アルゴリズム \(\mathcal{F}\) の実在署名偽造の優位性は \[ {\sf AdvSig}_{\mathcal{F}} \overset{\rm def}{=} {\rm Pr} \left[ {\it Verify}(PK, M, \sigma) = {\tt valid} : \begin{array}{l} (PK, SK) \overset{R}{\leftarrow} {\it KeyGen}, \\ (M, \sigma) \overset{R}{\leftarrow} \mathcal{F}^S(PK) \end{array} \right] \] 確率は鍵生成アルゴリズムと偽造者のコイントスに引き継がれる。
ここで敵対者 \(\mathcal{F}\) は署名オラクルに適応的に問い合わせを行うことができる: その問い合わせのいずれかは以前の回答に依存するかもしれないが、以前にオラクルに問い合わせたメッセージの署名を発行しないかも知れない。また、敵対者はランダムオラクルとして扱われるフルドメインハッシュ関数にアクセスできる。
定義 5 . 偽造者 \(\mathcal{F}\) は、\(\mathcal{F}\) が最大 \(t\) 回実行され、ハッシュ関数に対して \(q_H\) 問い合わせを実行し、署名オラクル \(S\) に対して最大 \(q_S\) 回要求し、\({\sf AdvSig}_{\mathcal{F}} \ge \epsilon\) のとき、署名スキームを \((t,q_H,q_S,\epsilon)\)-break する。
定義 6 . 署名スキームは、偽造者が \((t,q_H,q_S,\epsilon)\)-break しない場合、適用型選択メッセージ攻撃の実在的偽造に対して \((t,q_H,q_S,\epsilon)\)-secure である。
次の定理は GDH 署名スキームがセキュアであることを表している。この定理の証明はセクション 4 で示す。
定理 . \(G\) を次数 \(p\) の Diffie-Hellman の \((\tau,t',\epsilon')\)-gap 群とする。このとき \(G\) 上の Gap 署名スキームは適用型選択メッセージ攻撃の実在的偽造に対して \((t,q_H,q_S,\epsilon)\)-secure である。ここで \[ t \le t' - 2 c_{\mathcal{A}}(\lg p)(q_H + q_S) \ \ \mbox{and} \ \ \epsilon \ge 2e\cdot q_S \epsilon' \] であり \(c_{\mathcal{A}}\) は小さな定数である。ここで \(e\) は自然対数の底である。
3 小さな表現での Gap Diffie-Hellman 群の構築
ヴェイユペアリング (Weil pairing) を使用すると特定の楕円曲線を GDH 群として使用することができる。楕円曲線に関するいくつかの事実を思い出し (例えば [14,22] 参照)、GDH 署名に特定の曲線を使用する方法を示す。特に、我々は \(\mathbb{F}_{3^l}\) 上の \(y^2=x^3+2x\pm 1\) を説明する。
3.1 楕円曲線とヴェイユペアリング
Computational Diffie-Hellmann が困難だが Decision Diffie-Hellman は容易であるような大きな素数位数を持つある群 \(G\) を構築するために使用できるのであれば楕円曲線は GDH 署名スキームの基礎として使用することができる。最初に \(E\) の部分群での CDH 困難性の必要条件を特徴づける。
定義 7 . \(p\) を素数、\(l\) を正の指数、\(E\) を \(m\) 点を持つ \(\mathbb{F}_{p^l}\) 上の楕円曲線とする。\(E\) 内の \(P\) を \(q^2 \nmid m\) となるような素数位数 \(q\) の点とする。\(\mathbb{F}_q^*\) の \(p^l\) の次数が \(\alpha\) の場合、部分群 \(\langle P \rangle\) はある整数 \(\alpha \gt 0\) に対してセキュリティ乗数 \(\alpha\) を持つという。言い換えると: \[ q \ | \ p^{l\alpha} - 1 \ \ \mbox{and} \ \ q \nmid p^{lk} - 1 \ \ \ \mbox{for all} \ \ k=1,2,\ldots,\alpha-1 \]
CDH が部分群 \(\langle P \rangle\) 上で困難であるためには、この部分群のセキュリティ乗数 \(\alpha\) が小さすぎないようにしなければならないことが (後述のとおり) よく知られている。一方で \(\langle P \rangle\) で効率的な Decision Diffie-Hellman アルゴリズムを得るためには \(\alpha\) を大きくしすぎない必要がある。従って短い署名の構築における問題は \(\alpha\) がセキュリティ面で充分に大きく効率面で充分に小さい曲線を見つけることである。現在のセキュリティパラメータを使用すると \(\alpha=6\) が短い署名を得るために充分である。\(\alpha=10\) のように少し高い \(\alpha\) を持つ楕円曲線を構築することは未解決問題である (セクション 3.5 参照)。
Discrete-log on elliptic curves: \(\langle P \rangle\) をセキュリティ乗数 \(\alpha\) を持つ次数 \(q\) の \(E/\mathbb{F}_{p^l}\) の部分群とする。\(\langle P \rangle\) で離散対数を算出するための標準的な 2 つの方法について簡単に説明する。
- MOV: Menezes-Okamoto-Vanstone 帰着 [15] のように、効率的に計算可能な準同型を使用して \(\langle P \rangle\) の離散対数問題を \(\mathbb{F}_{p^l}\) のある拡張、つまり \(\mathbb{F}_{p^{li}}\) の離散対数問題にマッピングする。この準同型写像の下での \(\langle P \rangle\) のイメージは次数 \(q\) の \(\mathbb{F}_{p^{li}}\) の部分群である。従って \(q \ | \ (p^{il}-1)\) であり、\(\alpha\) の定義により \(i \ge \alpha\) であることを意味する。従って MOV メソッドは最善で \(\langle P \rangle\) の離散対数問題を \(\mathbb{F}_{p^{l\alpha}}\) の部分群の離散対数問題に削減することができる。従って、\(\langle P \rangle\) において離散対数が困難であることを保証するために、我々は大きな \(\alpha\) を持つ曲線が必要である。
- Generic: Baby-Step-Giant-Step や Pollard's Rho メソッド [16] のような Generic 離散対数アルゴリズムは \(\sqrt{q}\) に比例する実行時間を持つ。従って \(q\) が十分に大きいことを保証しなければならない。
Decision Diffie-Hellman on Elliptic curves: \(P \in E / \mathbb{F}_{p^l}\) を素数位数 \(q\) の点とする。部分群 \(\langle P \rangle\) はセキュリティ乗数 \(\alpha\) を持つと想定する。\(q \nmid p^l-1\) と仮定する。Balasubramanian and Koblits [2] は \(E / \mathbb{F}_{p^{l\alpha}}\) が \(P\) から線形に独立した点 \(Q\) を含んでいることを示した。そのような点 \(Q \in E / \mathbb{F}_{p^{l\alpha}}\) は効率的に見つけることができる。\(P\) と \(Q\) の線形独立性は後述するヴェイユペアリングを介して検証できることに注意。
それぞれ次数 \(q\) の 2 つの線形独立点 \(P \in E / \mathbb{F}_{p^l}\) と \(Q \in E / \mathbb{F}_{p^{l\alpha}}\) で、我々は、DDH オラクル [12] を構築できる特定の質問に答えるためにヴェイユペアリングを使用することができる。\(E[q]\) を \(P\) と \(Q\) によって生成された \(E / \mathbb{F}_{p^{l\alpha}}\) の部分群を示すものとする。ヴェイユペアリングは以下の特性を持つマップ \(e : E[q] \times E[q] \to \mathbb{F}_{p^{l\alpha}}^*\) である:
- Identity: 全ての \(R \in E[q]\) に対して \(e(R,R) = 1\) である。
- Bilinear: 全ての \(R_1, R_2 \in E[q]\) と \(a, b \in \mathbb{Z}\) に対して \(e(aR_1, bR_2) = e(R_1,R_2)^{ab}\) となる。
- Non-degenerate: もし \(R \in E[q]\) に対して全ての \(R' \in E[q]\) で \(e(R,R')=1\) ならば、\(R = \mathcal{O}\) である。
- Computable: 全ての \(R_1, R_2 \in E[q]\) に対してペアリング \(e(R_1,R_2)\) 効率的に計算することができる [17]。
\(R_1\) と \(R_2\) が線形依存である場合にのみ \(e(R_1,R_2)\) であることに注意。
双方とも次数 \(q\) を持つ線形独立点 \(P\) と \(Q\) に対して、ヴェイユペアリングによりタプル \((P,aP,Q,bQ)\) が \(a=b \bmod q\) であるかを判断できる; 実際、\[ a = b \bmod q \ \ \Longleftrightarrow \ \ e(P, bQ) = e(aP, Q) \] である。\(\langle P \rangle\) から \(\langle Q \rangle\) の計算可能な同型 \(\phi\) も存在するとする。必然的に \(\phi\) はすべての \(a\) に対して \(\phi(aP) = axQ\) のようになる。ここで \(xQ = \phi(P)\) である。この場合、ヴェイユペアリングによりタプル \((P,aP,bP,cP)\) が \(ab=c \bmod q\) のようになるかを決定判別することができる: \[ ab = c \bmod q \ \Longleftrightarrow \ e(P, \phi(cP)) = e(aP, \phi(bP)) \] 同型 \(\phi\) によりヴェイユペアリングは Decision Diffie-Hellman のアルゴリズムを提供する。DDH のアルゴリズムでは \(\mathbb{F}_{p^{l\alpha}}\) 上の点のヴェイユペアリングの 2 つの評価が必要であることに注意。
3.2 特別な超特異曲線
セクション 3.1 の機構を使用して \(\mathbb{F}_{3^l}\) 上の \(y^2 = x^3 + 2x \pm 1\) で与えられる超特異楕円曲線 \(E\) から小さな表現の GDH 群を導き出す。のちに述べるように、これらはセキュリティ乗数 \(6\) を持ったユニークな超特異楕円曲線である。従って MOV 帰着は \(E / \mathbb{F}_{e^l}\) の離散対数問題を \(\mathbb{F}_{3^{6l}}\) にマップする。これは短い署名を得るために比較的小さな \(l\) の値を使用できることを意味するが、セキュリティは大きな有限体の離散対数問題に依存する。我々はこれらの曲線のふるまいを説明するために 2 つの単純な補題を使用する ([23,13] も参照)。
補題 1. \(\mathbb{F}_{3^l}\) 上で \(y^2 = x^3 + 2x + 1\) によって定義される曲線 \(E^+\) は \[ \# E^+ / \mathbb{F}^{3^l} = \left\{ \begin{array}{ll} 3^l + 1 + \sqrt{3 \cdot 3^l} \ \ & \mbox{when} \ \ l = \pm 1 \bmod 12, \ \ \mbox{and} \\ 3^l + 1 - \sqrt{3 \cdot 3^l} \ \ & \mbox{when} \ \ l = \pm 5 \bmod 12 \end{array} \right. \] を満たす。\(\mathbb{F}_{3^l}\) 上で \(y^2 = x^3 + 2x - 1\) によって定義される曲線 \(E^-\) は \[ \# E^- / \mathbb{F}^{3^l} = \left\{ \begin{array}{ll} 3^l + 1 - \sqrt{3 \cdot 3^l} \ \ & \mbox{when} \ \ l = \pm 1 \bmod 12, \ \ \mbox{and} \\ 3^l + 1 + \sqrt{3 \cdot 3^l} \ \ & \mbox{when} \ \ l = \pm 5 \bmod 12 \end{array} \right. \] を満たす。
Proof. [13, section2] 参照。∎
つまり、\(l \bmod 12\) が \(\pm 1\) か \(\pm 5\) に等しいなら、必要に応じて \(E^-\) と \(E^+\) の一つを単純に選択することで \(\mathbb{F}_{3^l}\) 上の \(3^l + 1 \pm \sqrt{3 \cdot 3^l}\) 点を持つ楕円曲線を構築する方法を示している。
補題 2. \(E\) を \(\mathbb{F}_{3^l}\) 上の \(y^2 = x^3 + 2x \pm 1\) によって定義される楕円曲線とする。ここで \(l \bmod 12\) は \(\pm 1\) か \(\pm 5\) に等しいとする。このとき \(\# (E/\mathbb{F}_{3^l})\) は \(3^{6l}-1\) を割り切る。
Proof. \(x^6 - 1 = (x^3 - 1)(x^3 + 1) = (x - 1)(x^2 + x + 1)(x + 1)(x^2 - x + 1)\) であるため、任意の整数 \(x\) に対して \((x^2 - x + 1) \ | \ (3^{6l}-1)\) に従う。特に \(x=3^l\) のとき \((3^{2l} - 3^l + 1) \ | \ (3^{6l} - 1)\) となる。ここで \(E\) が上記のような楕円曲線だった場合、\(\#(E/\mathbb{F}_{3^l})\) が \(3^l + 1 + \sqrt{3 \cdot 3^l}\) または \(3^l + 1 - \sqrt{3 \cdot 3^l}\) のいずれかであることが分かる。しかし \(((3^l + 1) + \sqrt{3 \cdot 3^l})((3^l + 1) - \sqrt{3 \cdot 3^l}) = 3^{2l} - 3^l + 1\) である。従って \(\#(E/\mathbb{F}_{3^l}) \ | \ (3^{6l} - 1)\) である。
補題 1 と 3 を併せると \(l\) に関連する値に対して曲線 \(E^+/\mathbb{F}_{3^l}\) と \(E^-/\mathbb{F}_{3^l}\) のセキュリティパラメータ \(\alpha\) は最大で 6 となるだろう (より具体的には \(\alpha \ | \ 6\))。曲線の特定の素数部分群に対して実際にセキュリティパラメータが 6 かどうかは計算によって決定されなければならない。
\(E^+\), \(E^-/\mathbb{F}_{3^{6l}}\) の自己同型: \(l \bmod 12\) が \(\pm 1\) か \(\pm 5\) と等しいような \(l\) に対して、\(\mathbb{F}_{3^{6l}}\) の 3 つの元 \(u\), \(r^+\), \(r^-\) は \(u^2=-1\), \((r^+)^3+2r^++2=0\), \((r^-)^3+2r^--2=0\) を満たす。ここで \(\mathbb{F}_{3^{6l}}\) 上の以下のマッピングを考える: \[ \phi^+(x,y) = (-x+r^+, uy) \ \ \ \mbox{and}\ \ \ \phi^-(x,y) = (-x + r^-,uy) \]
補題 3. \(l \bmod 12\) が \(\pm 1\) か \(\pm 5\) と等しいとする。\(\phi^+\) は \(E^+/\mathbb{F}_{3^{6l}}\) の自己同型であり、\(\phi^-\) は \(E^-/\mathbb{F}_{3^{6l}}\) と自己同型である。さらに、もし \(P\) が \(E^+/\mathbb{F}_{3^l}\) 上の (または \(E^-/\mathbb{F}_{3^l}\) 上の) 次数 \(q\) の点の場合、\(\phi^+(P)\) (または \(\phi^-(P)\) は \(P\) に線形独立な次数 \(q\) の点である。
Proof. Silverman [22, p.326] 参照。∎
前のセクションで示したように、これらの曲線のいずれかの次数 \(q\) の点 \(P\) に対して、適切な自己同型により Decision Diffie-Hellman 問題を解くことができる。
3.3 楕円曲線へのハッシュ化
GDH 署名スキームにはハッシュ関数 \(h : \{0,1\}^* \to G^*\) が必要である。ここで \(G\) は GDH 群である。我々は GDH 群として楕円曲線の部分群を使用することを提案している。楕円曲線の部分群で直接ハッシュ化するハッシュ関数を構築することは難しいため、ハッシュ要件をわずかに緩和する。
\(E/\mathbb{F}_{p^l}\) を \(y^2 = f(x)\) で定義される次数 \(m\) の楕円曲線とする。\(P \in E/\mathbb{F}_{p^l}\) を素数位数 \(q\) の点とする。ここで \(q^2 \nmid m\) とする。部分群 \(G=\langle P \rangle\) を GDH 署名スキームの GDH 群として使用したいと考えている。ハッシュ関数 \(h' : \{0,1\}^* \to \mathbb{F}_{p^l} \times \{0,1\}\) が与えられたとすると、そのようなハッシュ関数 \(h'\) は標準的な暗号論的ハッシュ関数から構築することができる。セキュリティ分析では \(h'\) をランダムオラクルとみなす。我々は MapTopGroup と呼ばれる次の決定的アルゴリズムを使用して \(\{0,1\}^*\) のメッセージを \(G^*\) 上にハッシュ化する。小さなパラメータ \(I = \lceil \log_2 \log_2 (1/\delta) \rceil\) を修正する。ここで \(\delta\) は失敗確率の望ましい限界である。
\({\bf MapToGroup}_{h'}\): \(h : \{0,1\}^* \to G^*\) を定義するアルゴリズムは以下の通り:
- \(M \in \{0,1\}^*\) として \(i \leftarrow 0\) を設定する;
- \((x,b) \leftarrow h'(i \ \parallel M) \in \mathbb{F}_{p^l} \times \{0,1\} \) を設定する;
- \(f\) が \(\mathbb{F}_{p^l}\) の二次剰余のとき、次を実行する:
- \(y_0,y_1 \in \mathbb{F}_{p^l}\) を \(f(x)\) の 2 つの平方根とする。これらの平方根を選ぶために \(b \in \{0,1\}\) を使用する。\(y_0\), \(y_1\) を \(\mathbb{F}_p\) 上の次数 \(l-1\) の多項式と見立てる。そして \([0,p]\) の整数として見立てるとき \(y_0\) の定数項が \(y_1\) の定数項より大きくないことを確認する (必要に応じて \(y_0\) と \(y_1\) は入れ替える)。\(\tilde{P}_M \in E/\mathbb{F}_{p^l}\) を点 \(\tilde{P}_M = (x,y_b\)\) に設定する
- \(P_M ~ (m/q)\tilde{P}_M\) を計算する。\(P_M\) は \(G\) 内である。もし \(P_M\) が \(G^*\) 内にあるなら、\({\it MapToGroup}_{h'}(M) = P_M\) を出力して停止する。
- それ以外の場合、\(i\) をインクリメントして Step 2 に行く; もし \(i\) が \(2^l\) に達したら失敗を報告する。
失敗確率は適度に大きい \(I\) を選択することで任意に小さくすることができる。各 \(i\) に対して \(h'(i \ \parallel \ M)\) が \(G^*\) 上の点に至る確率はおおむね \(1/2\) である (ここで確率はランダムオラクル \(h'\) の選択を超える)。従って \(h'\) 呼び出しの予想回数は約 2 であり、特定のメッセージ \(M\) がハッシュ不可能と検出される確率は \(1/2^{2^I} \le \delta\) である。
補題 4. ランダムハッシュ関数 \(h : \{0,1\}^* \to G^*\) を使用するとき、部分群 \(G\) で GDH 署名スキームが \((t,q_H,q_S,\epsilon)\)-secure であると仮定する。このとき、ハッシュ関数 \(h\) が \({\it MapToGroup}_{h'}\) で計算される場合 \((t-2^I q_H \lg m, q_H, q_S, \epsilon)\)-secure である。ここで \(h'\) はランダムハッシュ関数 \(h' : \{0,1\}^* \to \mathbb{F}_{p^l} \times \{0,1\}\) である。
Proof Sketch: ハッシュ関数 \(h\) が \({\it MapToGraph}_{h'}\) を使用して計算されるとき、偽造アルゴリズム \(\mathcal{F}'\) は部分群 \(G\) の Gap 署名スキームを \((t,q_H,q_S,\epsilon)\)-break すると仮定する。我々は \(h\) がランダムオラクル \(h : \{0,1\}^* \to G^*\) である場合にスキームを \((t+2^I q_H \lg m, q_H, q_S, \epsilon)\)-break するアルゴリズム \(\mathcal{F}\) を構築する。
我々の新しい偽造 \(\mathcal{F}\) はブラックボックスとして \(\mathcal{F}'\) を実行するだろう。\(\mathcal{F}\) は独自のハッシュオラクル \(h : \{0,1\}^* \to G^*\) を使用して \(\mathcal{F}'\) に対して \({\it MapToGroup}_{h'}\) の動作をシミュレートする。これは \(\mathcal{F}_{p^l} \times \{0,1\}\) の元の配列 \(s_{ij}\) を使用する。配列には \(q_H\) 行と \(2^I\) 列がある。初期化時に \(\mathcal{F}\) は \(\mathbb{F}_{p^l} \times \{0,1\}\) の均一に選択された元で \(s_{ij}\) を満たす。
そして \(\mathcal{F}\) は \(\mathcal{F}'\) を実行し、\(\mathcal{F}'\) が要求する \(h'\) ハッシュに対してすべてのユニークなメッセージ \(M_i\) を追跡 (およびインデックス化) する。\(\mathcal{F}'\) が、\(\mathcal{F}\) の見たことのない \(M_i\) のメッセージ (および \(w\) は任意の \(I\)-bit データ列) \(w \parallel M_i\) の \(h'\) ハッシュを問い合わせると、\(\mathcal{F}\) は行 \(s_{ij}\), \(0 \le j \lt 2^I\) をスキャンする。各 \((x,b)=s_{ij}\) について、\(\mathcal{F}\) は前述 \({\it MapToGroup}\) の Step 3 に従い \(G^*\) の点を探す。\(s_{ij}\) が \(G^*\) にマップされる最小の \(j\) について、\(\mathcal{F}\) は \(s_{ij}\) を次のように定義した別の点 \((x_i,b_i)\) に置き換える。\(Q_i=h(M_i) \in G^*\) とする。\(\mathcal{F}\) は \((m/q)\tilde{Q}_i=Q_i\) となるようにランダムな \(\tilde{Q}_i=(x_i,y_i)\in E/\mathbb{F}_{p^l}\) を構築する。\(s_{ij}=(x_i,b_i)\) を設定する。ここで \(b_i \in \{0,1\}\) は \({\it MapToGroup}\) Step 3a で \((x_i,b_i)\) が \(\tilde{Q}_i\) にマッピングされるように設定される。そして必要に応じて \({\it MapToGroup}_{h'}(M_i)=h(M_i)\) を設定する。
この事前準備パッチが完了すると \(\mathcal{F}\) は単に \(w_{iw'}\) を返すだけでデータ列 \(w' \parallel M_i\) に \(\mathcal{F}'\) による \(h'\) ハッシュクエリーに答えることができる。\(\mathcal{F}'\) から見えるシミュレートされた \(h'\) は実際の攻撃の場合と統計的に区別することができない。従って、\(\mathcal{F}'\) が \({\it MapToGroup}_{h'}\) を使用して署名スキームを破ることに成功した場合、\(\mathcal{F}\) は、\(h\) を参照しながら \(\mathcal{F}'\) を実行することで、同じ可能性で成功し、\({\it MapToGroup}\) の Step 3 で追加情報を維持して指数演算を実行することによる実行時間のペナルティのみを被る。∎
3.4 具体的な短い署名スキーム
ここまでを要約するために \(y^2 = x^3 + 2x \pm 1\) で定義された曲線 \(E/\mathbb{F}_{3^l}\) から導出された GDH 群を使って具体的な署名スキームを説明する。これらの曲線の有用なインスタンスを Table 1 に示す。これらのインスタンスは Weil-descent attacks [9,10] を回避するため \(l\) が素数となるものに限定していることに注意。セクション 3.3 で説明したように、我々は任意のデータ列から \(\mathbb{F}_{p^l}\) の元と追加のビットへ、ハッシュ関数 \(h'\) を使用して任意のビット列を \(E\) の次数 \(q\) の点にマップするために \({\it MapToGroup}_{h'}\) を使用する。
curve | \(l\) | Signature Size \([\lg_2 m]\) |
DLog Security \([\lg_2 q]\) |
Multipler \(\alpha\) |
MOV Security \([\lg_2 x]\) |
---|---|---|---|---|---|
\(E^-\) | 79 | 126 | 126 | 6 | 752 |
\(E^+\) | 97 | 154 | 151 | 6 | 923 |
\(E^+\) | 149 | 237 | 220 | 6 | 1417 |
\(E^+\) | 163 | 259 | 256 | 6 | 1551 |
\(E^-\) | 163 | 259 | 259 | 6 | 1551 |
\(E^+\) | 163 | 259 | 252 | 6 | 1589 |
具体的な署名スキーム:
- 鍵生成
- Table 1 の値 \(l\) のいずれかが与えられたとき、\(E/\mathbb{F}_{3^l}\) を対応する曲線とし、\(q\) を曲線の次数の最大素因数とする。\(P \in E/\mathbb{F}_{3^l}\) を次数 \(q\) の点とする。\(x \in \mathbb{Z}_q^*\) をランダムに選び \(R \leftarrow xP\) を設定する。ここで \((l,q,P,R)\) は公開鍵であり \(x\) は秘密鍵である。
- 署名
- メッセージ \(M \in \{0,1\}^*\) に署名するには、\(M\) を点 \(P_M \in \langle P \rangle\) にマップするためアルゴリズム \({\it MapToGroup}_{h'}\) を使用する。\(S_M \leftarrow xP_M\) を設定する。署名 \(\sigma\) は \(S_M\) の \(x\) 座標である。したがって \(\sigma \in \mathbb{F}_{3^l}\)。
- 検証
- 公開鍵 \((l,q,P,R)\)、メッセージ \(M\)、署名 \(\sigma\) が与えられたとき:
- ある \(y \in \mathbb{F}_{3^l}\) に対して \(x\) 座標が \(\sigma\)、\(y\) 座標が \(y\) の次数 \(q\) の点 \(S \in E/\mathbb{F}_{3^l}\) を見つける。もしそのような点が存在しなければ署名を無効として拒否する。
- \(u \leftarrow e(P,\phi(S))\) と \(v \leftarrow e(R,\phi(h(M)))\) を設定する。ここで \(e\) は曲線 \(E/\mathbb{F}_{3^{6l}}\) 上のヴェイユペアリング、\(\phi : E \to E\) は補題 3 で説明した曲線の自己同型である。
- もし \(u=v\) または \(u^{-1}\) = v\) のどちらかであれば署名を受け入れる。そうでなければ拒絶する。
\((\sigma,y)\) と \((\sigma,-y)\) は両方とも \(x\) 座標を \(\sigma\) として持つ \(E/\mathbb{F}_{3^l}\) 上の点であることに注意。これらの 2 点のいずれかは署名アルゴリズムで署名を生成するために使用する点 \(S_M\) とすることができる。実際、曲線上では \((\sigma,y) = -(\sigma,-y)\) であるため \(e(P,\phi(-S)) = e(P,\phi(S))^{-1}\) となる。したがって、\(u=v\) は \((P,R,h(M),S)\) が Diffie-Hellman タプルであることをテストし、\(u^{-1}=v\) は \((P,R,h(M),-S)\) が Diffie-Hellman タプルであることをテストする。
次の補題は (ランダムオラクルモデルでの) 選択メッセージ攻撃の下で、実在的偽造能力を持つ攻撃者が \(E/\mathbb{F}_{3l}\) の Diffie-Hellman 問題も解くことを示している。
補題 5. \(E/\mathbb{F}_{3l}\) を Table 1 に示されている曲線の一つとし、\(q\) を \(\#E\) を割り切る最大の素数とし、\(P\) が \(E\) 上の次数 \(q\) の点であり、\(G=\langle P \rangle\) 上で Computational Diffie-Hellman を \((t_0,\epsilon_0)\)-break するアルゴリズムが存在しないと想定する。\(h' : \{0,1\}^* \to \mathbb{F}_{3l} \times \{0,1\}\) をランダムオラクルとする。このとき、前述の具体的な署名スキームは (ランダムオラクルモデルの) 適応型選択メッセージ攻撃 (adaptive chosen-message attack) の実在的偽造に対して \((t,q_H,q_S,\epsilon)\)-secure である。ここで \[ t \le t_0 - 2c_{\mathcal{A}}(\lg q)(q_H + q_S) - 2^I q_H \lg m - 2 \tau \ \ \ \mbox{and}\ \ \ \epsilon \ge 2e \cdot q_S \epsilon_0 \] であり \(c_{\mathcal{A}}\) は小さな定数である。
Proof. 仮定より \(G\) は \((\tau,t_0,\epsilon_0)\)-GDH 群である。ここで \(\tau\) は \(G\) 上でヴェイユペアリングを計算する為に必要な時間の 2 倍である。任意のビット列から \(G^*\) へのランダムハッシュオラクル \(h\) の存在を仮定すると、(セクション 2.2 で指定している) \(G\) 上の一般的な GDH 署名スキームは、主定理 (セクション 4) による適応型選択メッセージ攻撃の実在的偽造に対して \((t_1,q_H,q_S,\epsilon_1)\)-secure である。ここで \[ \begin{equation} t_1 \le t_0 - 2c_{\mathcal{A}}(\lg q)(q_H + q_S) \ \ \ \mbox{and} \ \ \ \epsilon_1 \ge 2e\cdot q_s \epsilon_0 \label{t1} \end{equation} \] であり \(c_{\mathcal{A}}\) は小さな定数である。
セクション 3.3 より、我々はハッシュ関数 \(h'\) から \(G^*\) 上にハッシュ関数 \(h\) を構築できる。補題 4 より、アルゴリズム \({\it MapToGroup}_{h'}\) を使用する \(G\) 上の一般的な GDH 署名スキームは、主定理 (セクション 4) による適応型選択メッセージ攻撃の実在的偽造に対して \((t_2,q_H,q_S,\epsilon)\)-secure である。ここで \[ \begin{equation} t_2 = t_1 - 2^I q_H \lg m \ \ \ \mbox{and} \ \ \ \epsilon_2 = \epsilon_1 \label{t2} \end{equation} \] \(G\) 上の一般的な GDH 署名スキームと上記に説明する \(G\) 上の具体的なスキームの唯一の違いは、後者のスキームでの署名が \(G\) ではなく \(\mathbb{F}_{3^l}\) の元であるということである。具体的なスキームを破る敵対者 \(\mathcal{F}\) が与えられると、以下のように一般スキームを破るようなアルゴリズム \(\mathcal{A}\) を構築することができる。公開鍵は 2 つのスキームで同一であるため \(\mathcal{A}\) は単純に \(\mathcal{F}\) に \(R\) を与える。2 つのスキームでハッシュは同一であるため、\(\mathcal{A}\) は \(\mathcal{F}\) へのハッシュ要求を自身のハッシュオラクルに渡し \(\mathcal{F}\) に回答を提供する。\(\mathcal{F}\) がメッセージ \(m\) の署名を要求すると \(\mathcal{A}\) はその署名オラクルから署名 \(s \in E\) を取得し、\(\mathcal{F}\) に \(S\) の \(x\) 座標 \(\sigma\) を与える。最後に、\(\mathcal{F}\) がメッセージ \(M\) 上に (具体的なスキームに対する) 偽造署名 \(\sigma^*\) を出力したとき、\(\mathcal{A}\) は \(x\) 座標が \(\sigma^*\) となるような点 \(S^* \in E\) を見つける。前述の論議より、\(S^*\) が \(M^*\) 上の具体的なスキームの署名であるような \((P,R,h(M^*),S^*)\) が Diffie-Hellman タプルであるか、\(-S^*\) が \(M^*\) 上の具体的なスキームの署名であるような \((P,R,h(M^*),-S^*)\) が Diffie-Hellman タプルである。\(\mathcal{A}\) は適切な \(S^*\) と \(-S^*\) のどちらか一つとともに \(M^*\) を出力する。
このシミュレーションに必要な追加の時間は 2 つの追加の署名検証によって支配され、それぞれの時間には \(\tau\) 時間がかかる。したがってもし一般的な GDH スキームが \((t_2,q_H,q_S,\epsilon_2)\)-secure であれば具体的な GDH スキームは \((t_3,q_H,q_S,\epsilon_3)\)-secure である。ここで \[ \begin{equation} t_3 = t_2 - 2 \tau \ \ \mbox{and} \ \ \epsilon_3 = \epsilon_2 \label{t3} \end{equation} \] (\(\ref{t1}\)), (\(\ref{t2}\)), (\(\ref{t3}\)) を組み合わせると必要な削減量が得られる。∎
3.5 未解決問題:高セキュリティの短い署名
前のセクションでは \(\mathbb{F}_{3^{6l}}^*\) の離散対数と同様の安全性を持つ短い署名スキームを構築するために \(\mathbb{F}_{3^l}^*\) 上の超特異曲線を使用することを提案した。しかし、超特異曲線に固執する必要はない。他の楕円曲線または長楕円曲線を使用すると、さらに高いセキュリティ乗数を実現できる可能性がある。
セクション 3.2 では \(\mathbb{F}_{3^l}\) 上の曲線 \(E^+\) と \(E^-\) が最大 6 のセキュリティパラメータ \(\alpha\) を持っている事を示した。実際これは任意の超極意曲線に対する \(\alpha\) の最大値である [15,23]。\(\alpha\) の値がわずかに高い (必然的に非超特異) 楕円曲線での GDH 署名スキームのインスタンス化は署名検証に必要な作業を増加させるが、同等の署名ビット長での MOV-関連攻撃に対するセキュリティも向上させる。
\(m\) 個の点を持つ楕円曲線 \(E/\mathbb{F}_{p^l}\)、大きな素数 \(q \ | \ m\)、次数 \(q\) の部分群に対するセキュリティパラメータ \(\alpha\)、次数 \(q\) の 2 つの線形独立点 \(P\) と \(Q\) を考慮する。ここで \(P \in E/\mathbb{F}_{p^l}\)、\(Q \in E/\mathbb{F}_{p^{l\alpha}}\) である。\(P\) に線形独立な点 \(Q \in E/\mathbb{F}_{p^{l\alpha}}\) は \(q \ \nmid \ p^{l^1}\) を仮定する [2] によって存在しなければならないことに注意。そのような曲線の場合、\(\langle P \rangle\) と \(\langle Q \rangle\) の間をマッピングする自己同型者像は必ずしも存在しない。したがって 2 つの群を一緒にするために Gap 署名スキームをわずかに変更する。
ウェイルペアリングを使用してタプル \((P,aP,Q,bQ)\) が \(a=b\) かどうかを決定することはたやすい。これを co-Decision Diffie-Hellman 問題と呼び、あるタプル \((P,Q,aQ)\) が与えられると \(aP\) を計算するという明らかな計算上の変種を持つ。修正された (co-gap) 署名スキームは以下の通り。
- 鍵生成
- \(P \in E/\mathbb{F}_{p^l}\), \(Q \in E/\mathbb{F}_{p^{l\alpha}}\) を上記のような素数位数 \(q\) の 2 つの線形独立点とする。\(x \overset{R}{\leftarrow} \mathbb{Z}_q^*\) を選択し \(R \leftarrow xQ\) を計算する。公開鍵は \((E/\mathbb{F}_{p^l},q,Q,R)\)、秘密鍵は \(x\) である。
- 署名
- 秘密鍵 \(x\) とメッセージ \(M \in \{0,1\}^*\) が与えられると \(M\) を点 \(P_M \in \langle P \rangle\) にマップするため \({MapToGroup}_{h'}\) を使用する。\(S_M \leftarrow xP_M\) を設定する。署名 \(\sigma\) は \(\mathbb{F}_{p^l}\) の元である \(S_M\) の \(x\) 座標である。
- 検証
- 公開鍵 \((E/\mathbb{F}_{p^l},q,Q,R)\)、メッセージ \(M\)、想定される署名 \(\sigma\) が与えられ、\(S\) を \(x\) 座標が \(\sigma\)、\(y\) 座標がある \(y \in \mathbb{F}_{p^l}\) に対して \(y\) (もしそのような点が存在しなければ署名は無効として拒否する) を持つ、次数 \(q\) の \(E/\mathbb{F}_{p^l}\) 上の点とする。\(u \leftarrow e(Q,S)\)、\(v \leftarrow e(R,h(M))\) と設定する。もし \(u=v\) または \(u^{-1}=v\) であれば署名を受け入れ、そうでなければ拒否する。
セクション 3.4 での推論に類似した推論より、検証フェーズのテストは \((Q,R,h(M),S)\) または \((Q,R,h(M),-S)\) のいずれかが有効な co-Diffie-Hellman タプルであることを保証する。公開鍵 \(R\) は \(E/\mathbb{F}_{p^{l\alpha}}\) の元であり、したがって長く、署名 \(\sigma\) は \(E/\mathbb{F}_{p^l}\) の元であり、したがって相対的に短い。このスキームのセキュリティは敵対者が co-Computational Diffie-Hellman 問題を \((t,\epsilon)\)-break しないという仮定に基づいている。
したがって課題は \(\alpha=10\) などより大きな \(\alpha\) の値を持つ楕円曲線を構築することである。現在、セキュリティ乗数 \(\alpha=10\) の楕円曲線ファミリーを構築することは未解決の問題である。
Galbraith [8] は "大きな" セキュリティ乗数を持つより高い種数の超特異曲線を作成する。例えば超特異曲線 \(y^2 + y = x^5 + x^3\) は \(\mathbb{F}_{2^l}\) 上でセキュリティ乗数 12 を持つ。この種数 2 の曲線の Jacobian 上の点が \(\mathbb{F}_{2^l}\) の 2 つの値によって特徴づけられるため (削減された除数の 2 つの \(x\) 座標) 署名の長さは \(2l\) ビットとなる。したがって有限体 \(\mathbb{F}_{2^{12l}}\) の CDH を計算するセキュリティを備えた長さ \(2l\) の署名を得ることができる。署名の長さと有限体の次数の間のこの係数 6 は楕円曲線の場合と同じである。したがってこの種数 2 の曲線は署名のセキュリティを向上させないが、Table 1 で与えられたものより多くの署名長を提供する。個の曲線は特徴 2 の体上で定義されているため特徴 3 の体上で定義されている曲線より計算に適している。Galbraith は種数 2 超超特異曲線の Jacobian の最大セキュリティ乗数が 12 であることを示している。したがって種数 2 の超特異曲線はより高いセキュリティを持つ短い署名を与えないだろう。より高いセキュリティで短い署名を与える種数 3 の長楕円曲線ファミリーを構築できるかは未解決の問題である。
4 定理のセキュリティ証明
我々はランダムオラクルモデルにおいて GDH 群の GDH 署名は安全であることを証明する。証明は Coron [6] によるフルドメインハッシュ RSA 署名に対して与えられているものと似ているが表現が異なっている。この方法のポイントは署名スキームに対する破断確率 (break-probability) \(\epsilon\) は偽造者が行うハッシュクエリーの回数に依存するのではなく、敵対者が行う署名クエリーの回数のみに依存する。
定理 (Gap Signature Security). \(G\) が \((\tau,t',\epsilon')\)-GDH 群であるなら、\(G\) 上の Gap 署名スキームは適応型選択メッセージ攻撃の実在的偽造に対して \((t,q_H,q_S,\epsilon)\)-secure である。ここで \[ t \le t' - 2 \tau c_{\mathcal{A}} (q_H + q_S) \ \ \mbox{and} \ \ \epsilon \ge 2e\cdot q_S \epsilon' \] および \(c_{\mathcal{A}}\) は (実際には最大 2 の) 小さな定数である。
証明は段階的に行う。
4.1 概要
アルゴリズム \(\mathcal{A}\) が \(G\) 上の Gap 署名スキームを \((t,q_H,q_S,\epsilon)\)-break すると仮定する。\(\mathcal{F}\) を使用して \(G\) の Computational Diffie-Hellman を \((\tau,t',\epsilon')\) break するアルゴリズム \(\mathcal{A}\) を構築してみよう。ここで \(t'\) と \(\epsilon'\) は前述の通りである。
GDH 群 \(G\) に対する偽造者 \(\mathcal{F}\) が与えられた場合、\(\mathcal{F}\) を使用して \(G\) の CDH を解除するアルゴリズム \(\mathcal{A}\) を構築する。\(\mathcal{A}\) はチャレンジ \((g,g^a,g^b)\) を与えられる。このチャレンジを使用して \(\mathcal{F}\) に提供する公開鍵を構築する。そして \(\mathcal{F}\) の実行を許可する。時々、\(\mathcal{F}\) は 2 つのオラクルに対してクエリーを実行する。一つはメッセージのハッシュ化、もう一つはメッセージの署名である。これらのオラクルは \(\mathcal{A}\) の操り人形であり、建設的な方法で操作する。最後に、全てがうまく行けば \(\mathcal{F}\) が出力する偽造は \(\mathcal{A}\) によって CDH チャレンジの回答に変換される。
\(M\) の署名を要求する前に \(M\) のハッシュ化を要求し、その偽造として出力するメッセージ \(M^*\) のハッシュを常に要求するという意味で \(\mathcal{F}\) は良い振る舞いをする (well-behaved) と想定する。この特性を持つように任意の偽造アルゴリズム \(\mathcal{F}\) を変更するのは簡単である。
\(\mathcal{A}\) は一定量の記帳を行う必要がある。特に、\(\mathcal{F}\) がハッシュまたは署名を要求したメッセージのリストを維持する必要がある。\(\mathcal{F}\) から到着する各メッセージ \(M\) はインデックス \(i\) が割り当てられる; \(i\) は明らかに \(q_H\) によって制限される。メッセージは \(M_i\) に、署名は (可能であれば) \(\sigma_i\) に保存される。
4.2 \(\mathcal{A}\) の構築
\(\mathcal{A}\) の挙動を説明したり toto での有効性を証明するのでははなく、より洗練された \(\mathcal{A}\) 変種が \(\mathcal{F}\) を実行する一連の "ゲーム" で \(\mathcal{A}\) を構築する; 最後の \(\mathcal{A}_6\) は我々が求める \(\mathcal{A}\) である。
(各 \(\mathcal{A}\) 変種は可能な限り最良の削減を行うための確率定数 \(\zeta\) に依存する。この定数は後に最適化する。\(B_\zeta\) を \(\{0,1\}\) に対する確率分布として定義する。ここで 1 は確率 \(\zeta\) で、0 は確率 \(1-\zeta\) で描かれる。)
Game 1. \(\mathcal{A}_1\) にチャレンジ \((g,g^a,g^b)\) が与えられる。セットアップでは \(PK \leftarrow (g^a)\) を構築する。そして \(1 \le i \le q_H\) の各 \(i\) に対して \(\mathcal{A}_1\) はランダムビット \(s_i \overset{\rm R}{\leftarrow} B_\zeta\) と乱数 \(r_i \overset{\rm R}{\leftarrow} \mathbb{Z}_p^*\) を選択する。次に \(h_i \leftarrow g^{r_i}\) と \(\sigma_i \leftarrow (g^a)^{r_i}\) を設定する。\((g,g^a,h_i,\sigma_i)\) は有効な Diffie-Hellman タプルであるため \(\sigma_i\) はハッシュが \(h_i\) のメッセージの署名であることに注意。そして \(\mathcal{A}_1\) は公開鍵 \(PK\) で \(\mathcal{F}\) を実行する。
\(\mathcal{F}\) はメッセージ \(M\) のハッシュを要求すると \(\mathcal{A}_1\) は \(h_i\) で応答する; \(\mathcal{F}\) がメッセージ \(M\) の署名を要求すると \(\mathcal{A}_1\) は \(\sigma_i\) で応答する。
最後に \(\mathcal{F}\) は失敗を認めるか、偽造した署名 \((M^*,\sigma^*)\) を返すかして停止する。ここである (\(\mathcal{F}\) が署名を要求しなかった) \(i^*\) に対して \(M^* = M_{i^*}\) である。\(\mathcal{F}\) が偽造に成功すると \(\mathcal{A}_1\) は "\({\tt success}\)" を出力する; そうでなければ "\({\tt failure}\)" を出力する。
ハッシュ \(h_i\) は \(G\) に均等に分布しているため \(\mathcal{A}_1\) のハッシュオラクルはランダムオラクルである。さらに署名 \(\sigma_i\) は全て有効である。従って、ランダムオラクルモデルにおいて \(\mathcal{F}\) は \(\mathcal{A}_1\) に実行されたとき単独で実行したのと全く同じ挙動をする。したがって \[ \begin{eqnarray*} {\sf Adv}_{\mathcal{A}_1} & = & {\rm Pr} \left[ \mathcal{A}_1^\mathcal{F} (g, g^a, g^b) = {\tt success}: a, b \overset{R}{\leftarrow} \mathbb{Z}_p^* \right] \\ & = & {\rm Pr} \left[ {\it Verify}(PK, M^*, \sigma^*) = {\tt valid} : \begin{array}{l} (PK,SK) \overset{R}{\leftarrow} {\it KeyGen}, \\ (M^*,\sigma^*) \overset{R}{\leftarrow} \mathcal{F}(PK) \end{array} \right] = \epsilon \end{eqnarray*} \] ここで最初の確率は \(\mathcal{A}_1\) と \(\mathcal{F}\) のコイントスと \(a\) と \(b\) の選択に対して取得される。\(a\) は \(\mathbb{Z}_p^*\), \(g^a\) から均一に選択されるため、\(\mathcal{A}_1\) が \(\mathcal{F}\) に提供する公開鍵は \(G\) に均一に分散される。
Game 2. \(\mathcal{A}_2\) は一つの例外を除いて \(\mathcal{A}_1\) と同様に機能する。\(\mathcal{F}\) が失敗すると \(\mathcal{A}_2\) は "\({\tt failure}\)" を出力する; \(\mathcal{F}\) が成功すると偽造 \((M^*,\sigma^*)\) を出力する。ここで \(i^*\) は \(M^*\) のインデックスである。そして \(\mathcal{A}_2\) は \(s_{i^*}=1\) のとき "\({\tt success}\)" を出力し、\(s_{i^*}=0\) のとき "\({\tt failure}\)" を出力する。
明らかに \(\mathcal{F}\) は \(s_i\) に関するどのような情報も取得できないため、その挙動はそれらの値には依存できない。したがって \(\mathcal{A}_2\) が実行する最終的なラウンドトリップテストはその時点までゲームとは無関係である。したがって、各 \(s_i\) は \(B_\zeta\) から描画されるため \[ {\sf Adv}_{\mathcal{A}_2} = {\sf Adv}_{\mathcal{A}_1} \cdot {\rm Pr}[s_{i^*} = 1] = \zeta \epsilon \] となる。
Game 3. \(\mathcal{A}_3\) は \(\mathcal{A}_2\) と同様に機能するがここでも変更が加えられている。\(\mathcal{F}\) が偽造に失敗すると \(\mathcal{A}_3\) も失敗する。\(\mathcal{F}\) が \(M_{i^*}\) で偽造を発見することに成功すると \(\mathcal{A}\) は \(s_{i^*}=1\) のときのみ成功を主張し、\(\mathcal{F}\) は \(s_{i^*}=0\) のメッセージ \(M_i\) でのみ署名を要求する。
繰り返すが \(\mathcal{F}\) はどのような \(s_i\) からも情報を取得できない。各署名要求は確率 \(\zeta\) で \(\mathcal{A}\) のにゲーム終了時に失敗を宣言させることができるが、ゲーム中にそれらのいずれかが失敗したかを知ることはできない。\(s_i\) は独立しているため、\(s_i\) による失格に関する限り \(\mathcal{F}\) の各署名要求はそれぞれ独立した試行である。さらに \(s_{i^*}\) は \(\mathcal{F}\) が署名を要求するいずれの \(s_i\) からも独立しているため、\(s_{i^*}\) が 1 と等しいというテストは独立した試行であり、ゲーム 2 の分析には影響しない。
いずれの署名要求でも \(\mathcal{F}\) が失格とならない確率は \(1-\zeta\) である。\(\mathcal{F}\) が \(k\) 個の署名オラクルクエリーを作成し (\(k\) は多くて \(q_S\))、さらにインデックス \(i_1,\ldots,i_k\) を持つメッセージに対してクエリーを実行する場合、\[ {\sf Adv}_{\mathcal{A}_3} = {\sf Adv}_{\mathcal{A}_2} \cdot {\rm Pr} [s_{i_j} = 0, j=1,\ldots,k] = \zeta \epsilon \cdot (1 - \zeta)^k \ge (1 - \zeta)^{q_S} \zeta \epsilon \] となる。
Game 4. \(\mathcal{A}_4\) は \(\mathcal{A}_3\) と同様に機能する。ただし、\(\mathcal{F}\) が \(s_i=1\) に対するメッセージ \(M_i\) の署名を要求するとき \(\mathcal{A}\) は失敗を宣言し直ちに停止する。
チャレンジと \(\mathcal{A}\) のランダムビット、および \(\mathcal{F}\) のランダムビットを修正することで \(\mathcal{A}\) の実行を完全に記述することができる; これらは集合的に各 \(s_i\) の値と \(\mathcal{F}\) が署名を要求するインデックスを決定する。\(\mathcal{F}\) が \(s_i=1\) のある \(M_i\) に署名を要求する実行を unlucky と呼ぶことにする。\(\mathcal{F}\) が失敗を宣言した場合に \(\mathcal{A}_3\) もそうしたとき; \(\mathcal{F}\) が偽造を発見した場合に \(\mathcal{A}_3\) が unlucky な署名クエリーのために失敗したとき; \(\mathcal{A}_3\) はすでに unlucky な実行で失敗を宣言する。したがって \(\mathcal{A}_3\) と \(\mathcal{A}_4\) はすべての unlucky 実行で ("\({\tt failure}\)" の出力で) 一致する; また \(\mathcal{A}_3\) に対する \(\mathcal{A}_4\) の変更はこれらの実行時に呼び出されないため全ての lucky な実行でも一致する。したがって \[ {\sf Adv}_{\mathcal{A}_4} = {\sf Adv}_{\mathcal{A}_3} \ge (1 - \zeta)^{q_S} \zeta \epsilon \] となる。unlucky 実行の即時停止はショートカットであり、結果の分布には影響しない。
Game 5. \(\mathcal{A}_5\) は \(\mathcal{A}_4\) に基づいている。セットアップフェーズでは各 \(i\) に対して \(s_i=1\) の場合 \(\mathcal{A}_5\) は \(h_i \leftarrow g^b\cdot g^{r_i}\) と \(\sigma_i \leftarrow \star\) およびプレースホルダー値を設定する; \(s_i = 0\) の場合は前述のように \(h_i \leftarrow g^{r_i}\) と \(\sigma_i \leftarrow (g^b)^{r_i}\) を設定する。
\(G\) は素数次数の巡回群であるため、\(G\) の任意の元、特に \(g^b\) による乗算は \(G\) の順列を引き起こす。したがって \(r\) が \(\mathbb{Z}_p^*\) で一様に分布している場合 \(g^r\) と \(g^b \cdot g^r\) は \(G\) に同じような一様分布を持つ。\(\mathcal{F}\) は与えられた \(h_i\) を調べても \(s_i\) に関する情報を知り得ることができない。\(\mathcal{A}_5\) は \(s_i=1\) のメッセージの署名を提供できないが、\(\mathcal{F}\) がそのような署名を要求する実行は直ちに失敗するため重要ではない。したがって、\(\mathcal{F}\) は \(\mathcal{A}_4\) の下と全く同じように \(\mathcal{A}_5\) の下でも動作し \[ {\sf Adv}_{\mathcal{A}_5} = {\sf Adv}_{\mathcal{A}_4} \ge (1 - \zeta)^{q_S} \zeta \epsilon \] となる。
Game 6. \(\mathcal{A}_6\) は \(\mathcal{A}_5\) と同様に動作する。ただし、\(\mathcal{A}_5\) が "\({\tt success}\)" を出力するゲームでは \(\mathcal{A}_6\) は "\({\tt success}\)" に加えて \(\sigma^*/(g^a)^{r_{i^*}}\) を出力する。ここで \(i^*\) は \(\mathcal{F}\) が偽造署名 \(\sigma^*\) を出力したメッセージ \(M^*\) のインデックスである。(\(\mathcal{A}_6\) は前の \(\mathcal{A}\) と同様に \(\mathcal{F}\) が成功した倍にのみ成功する。)
明らかに \(\mathcal{A}_6\) は \(\mathcal{A}_5\) と全く同じ確率で成功するため \[ {\sf Adv}_{\mathcal{A}_6} = {\sf Adv}_{\mathcal{A}_5} \ge (1 - \zeta)^{q_S} \zeta \epsilon \] である。さらに \(\mathcal{A}_6\) は \(s_{i^*}=1\) の場合にのみ成功する。これは \(h_{i^*} = g^b \cdot g^{r_{i^*}}\) を意味する。もし \(\sigma^*\) が \(M^* = M_{i^*}\) の有効な署名であれば \((g,g^a,h_{i^*},\sigma^*)\) は有効な Diffie-Hellman タプルでなければならないため、\(\sigma^*\) は \(h_{i^*}^a = g^{ab} \cdot (g^{r_{i^*}})^a\) と等しくなければならない。したがって \(\mathcal{A}_6\) が成功すると主張する全てのインスタンスでは \(\sigma^*/(g^a)^{r_{i^*}}\) も出力しなければならない。これは実際に提示される Diffie-Hellman チャレンジに対する答えである。
4.3 最適化と結論
したがってアルゴリズム \(\mathcal{A}_6\) は GDH 署名偽造者 \(\mathcal{F}\) を使用して CDH チャレンジを解く。残っているのは成功の最大確率を達成するためにパラメータ \(\zeta\) を最適化することである。関数 \((1-\zeta)^{q_S} \zeta \epsilon\) は \(\zeta = 1/(q_S+1)\) で最大化され、以下の値を持つ \[ \frac{1}{q_S+1} \cdot \left( 1 - \frac{1}{q_S+1} \right)^{q_S} \cdot \epsilon = \frac{1}{q_S} \cdot \left( 1 - \frac{1}{q_S + 1} \right)^{q_S+1} \cdot \epsilon \] (後者の等号は部分的な関数を取ることから得られる)。ここで \(\mathcal{A}\) の成功確率 \(\epsilon'\) は少なくともこれと同程度である。大きな \(q_S\) に対して \((1-1/(q_S+1))^{q_S+1} \approx 1/e\) である。
\(\mathcal{A}\) の実行時間には \(\mathcal{F}\) の実行時間が含まれている。\(\mathcal{A}\) によって課される追加のオーバーヘッドは \(\mathcal{F}\) からの署名とハッシュのぞれぞれの要求に対する群のべき乗を評価する必要性によって支配される。このようなべき乗の一つは最大 \(2 \lg p\) group action、したがって \(G\) 上で最大 \(2 \lg p\) 時間単位を使用して計算できる ([16] 参照)。\(\mathcal{A}\) はこのような要求に \(q_H+q_S\) 回の回答を行う必要があるため、全体の実行時間は \(t' \le t+2c_{\mathcal{A}} (\lg p)(q_H+q_S)\) である。ここで \(c_{\mathcal{A}}\) は \(\mathcal{A}\) の管理オーバーヘッドの残りを占める小さな定数である; 実際 \(c_{\mathcal{A}}\) は多くとも 2 である。
要約すると: \(G\) 上で GDH 署名スキームを \((t,q_H,q_S,\epsilon)\)-break する偽造アルゴリズム \(\mathcal{F}\) が存在する場合、\(G\) 上に GDH を \((t',\epsilon')\)-break するアルゴリズム \(\mathcal{A}\) が存在する。ここで \[ t' = t + 2 c_{\mathcal{A}} (\lg p)(q_H + q_S) \ \ \mbox{and} \ \ \epsilon' = \frac{1}{q_S} \cdot \left( 1 - \frac{1}{q_S + 1} \right)^{q_S + 1} \cdot \epsilon \] 逆に \(G\) が \((\tau,t',\epsilon')\)-GDH 群なら GDH 署名スキームを \((t,q_H,q_S,\epsilon)\)-break するアルゴリズム \(\mathcal{F}\) は存在しない。ここで \[ t = t' - 2 c_{\mathcal{A}} (\lg p)(q_H + q_S) \ \ \mbox{and} \ \ \epsilon = \left. q_S \epsilon' \middle/ \left( 1 - \frac{1}{q_S + 1} \right)^{q_S + 1} \right. \] 全ての正の \(q_S\) に対して後者の方程式の基数は \(1/2e\) より大きいため、方程式は \(\epsilon \le q_S \epsilon' \cdot 2e\) に書き換えられる。これで証明は完了する。
5 実験結果
5.1 実装の詳細
我々はセクション 3.4 のスキームを試した。署名は \(\mathbb{F}_{3^l}\) 上の曲線 \(y^2 = x^3 + 2x \pm 1\) での単一の乗算であることを思い出そう。署名を検証するには \(\mathbb{F}_{3^{6l}}\) 上のヴェイユペアリング計算を必要とする。したがって検証は署名よりも時間がかかる。
効率のため、直接 \(\mathbb{F}_{3^{6l}}\) で (\(6l\) 次の多項式操作を伴う) 作業をするのではなく、\(l\) 次の \(\mathbb{F}_{3^{6}}\) の拡張を使用する。\(\mathbb{F}_{3^6}\) での演算を高速化するため、2 つの元を素早く乗算するための (\(3^6\) サイズの) ルックアップテーブルを構築する。\(\mathbb{F}_{3^6}\) の元は選択された生成元に対する指数で表されるため、乗算と除算は \(3^6-1\) を法とする加算に対応する。加算は恒等式 \(a+b=a(1+a^{-1}b)\) を介した乗算、除算およびテーブル検索を使用して行われる。自己同型 \(\phi\) で使用される定数 \(r^+\), \(r^-\), \(u\) も \(\mathbb{F}_{3^6}\) にあり、ブルートフォース検索で素早く見つけることができる。
我々は明らかな単射を使用して \(\mathbb{F}_{3^l}\) の元 \(a\) を \(\mathbb{F}_{3^{6l}}\) の元にマップする: \(a\) は \(\mathbb{F}_3\) 内の係数を持つ \(l\) 次の多項式で表され、我々は単純に \(\mathbb{F}_{3^{6l}}\) 内の係数を持つ多項式として見るだけである。
我々は、類似した特性を持ち計算が簡単であることから、ヴェイユペアリングの代わりに Tate ペアリング [7] を使用する: ヴェイユペアリングは Miller のアルゴリズム [17] のイテレーションを 2 回と除算を 1 回が必要だが、Tate ペアリングは Miller のアルゴリズムを 1 回と追加のべき乗のみを必要とする。
Miller のアルゴリズムには様々な商の計算が含まれることから、分子と分母を任意の定数でスケールできるためいくつかの除算を回避することができる。我々はべき乗のような演算事にスライディングウィンドウを使用している。つまり \(\mathbb{F}_{3^{6l}}\) のべき乗、Miller のアルゴリズム、曲線上の点の乗算である。符号付きスライディングウィンドウを使用し、重み付き射影座標変換に変換し (これは役に立たないかも知れない; 体の操作の実装に依存する)、いくつかの点がシステム全体で固定されているという事実を使用して、乗算をさらに高速化することができる。
Tate ペアリングの出力が \(\mathbb{F}_{3^{6l}}\) の剰余類 (coset) 表現であることを思い出そう。このとき署名検証は 2 つの Tate ペアリングの出力が同じ剰余類にあることの確認から成る。これは出力から商を見つけ、それを適切な指数に挙げる (そして単位元と比較する) ことによって行われる。ただし、我々は Tate ペアリングの双線形性を利用して除算を乗算に置き換えることができる: \(e(A,B)\) で割ることは \(e(A,-B) = 1/e(A,B)\) をかけることと等価である (\(-B\) は \(y\) 座標を反転することで \(B\) から簡単に計算できる)。
\(x\) 座標は \(\mathbb{F}_{3^l}\) の元であり \(\mathbb{F}_3\) の係数を持つ最大 \(l-1\) 次の多項式として表される。出力では基数 3 の数値として表示され Base-64 でエンコードされる。923-bit 離散対数セキュリティを持つ \(l=97\) では例示の署名は次のようになる: "KrpIcV0O9CJ8iyBS8MyVkNrMyE"
。これは標準の 320-bit DSS 署名 (1024-bit 離散セキュリティを持つ) サイズの半分未満である。
5.2 実行時間
次の表は署名の検証に必要な時間を表している。2 つのペアリング計算が必要なため署名の検証は署名の生成より遙かに高価であることを思い出そう。このプログラムは 1GHz Pentium III コンピュータで動作する GNU/Linux 上で実行した。
\(l\) | sig-length (bits) |
Dlog Security [\(\log_2 x\)] |
curve | Running Time (seconds) |
---|---|---|---|---|
79 | 126 | 752 | \(E^-\) | 1.6 |
97 | 154 | 923 | \(E^+\) | 2.9 |
149 | 237 | 1417 | \(E^+\) | 9.6 |
163 | 259 | 1551 | \(E^+\) | 13.3 |
163 | 259 | 1551 | \(E^-\) | 13.4 |
163 | 265 | 1589 | \(E^+\) | 14.0 |
楕円曲線を使用して短い GDH 署名を得る場合、特性 3 (characteristic three) の体上の曲線を使用する必要がある。これにより曲線の計算が遅くなる。セクション 3.5 の終わりで説明したように、上記の実行時間は特性 2 の体上のより高次の種数の曲線 (genus curves) を使用して改善することができる。同様に \(\mathbb{F}_{e^l}\) 上の曲線 \(E^+\) と \(E^-\) 上の計算に対する [13] の手法はこれらの数字をわずかに改善することがある。
6 結論
我々はヴェイユペアリングに基づいた短い署名を提示した。署名の長さは有限体の 1 つの元である。DSA のような離散対数に基づく標準的な署名は 2 つの元を必要とする。\(\mathbb{F}_{3^l}\) 上の曲線 \(y^2 = x^3 + 2x \pm 1\) を使用する場合、MOV 攻撃はこの曲線の CDH 問題を \(\mathbb{F}_{3^{6l}}\) の CDH 問題にマップする。したがって我々は 320-bit DSA のセキュリティに匹敵するセキュリティを持つ短い署名を小さな値の \(l\) を使用して得ることができる。例えば長さ 154-bit 長の署名を取得すれば、スキームの break はサイズが約 \(2^{923}\) の有限体内で Diffie-Hellman 問題を解くことになる。セクション 3.5 では同じ長さの署名を維持しながらより優れたセキュリティを実現できる未解決の問題について概説した。楕円曲線あるいはより高次の種数の曲線の構築に関する今後の研究がこの問題の解決に役立つことを期待する。
Acknowledgments
The authors thank Steven Galbraith, Alice Silverberg, and Moni Naor for helpful discussions about this work.
References
- ANSI X9.62 and FIPS 186-2. Elliptic Curve Digital Signature Algorithm, 1998.
- R. Balasubramanian and N. Koblitz. The Improbability That an Elliptic Curve Has Subexponential Discrete Log Problem under the Menezes-Okamoto-Vanstone Algorithm. Journal of Cryptology, 11(2):141–145, 1998.
- M. Bellare and P. Rogaway. The Exact Security of Digital Signatures: How to Sign with RSA and Rabin. In U. Maurer, editor, Proceedings of Eurocrypt ’96, volume 1070 of LNCS, pages 399–416. Springer-Verlag, 1996.
- D. Boneh and M. Franklin. Identity-Based Encryption from the Weil Pairing. In J. Kilian, editor, Proceedings of Crypto ’2001, volume 2139 of LNCS, pages 213–229. Springer-Verlag, 2001.
- D. Chaum and T. Pederson. Wallet Databases with Observers. In E. Brickell, editor, Proceedings of Crypto ’92, volume 740 of LNCS, pages 89–105. SpringerVerlag, 1992.
- J.-S. Coron. On the Exact Security of Full Domain Hash. In M. Bellare, editor, Proceedings of Crypto ’2000, volume 1880 of LNCS, pages 229–235. Springer-Verlag, 2000.
- G. Frey, M. Muller, and H. Ruck. The Tate Pairing and the Discrete Logarithm Applied to Elliptic Curve Cryptosystems. IEEE Tran. on Info. Th., 45(5):1717–1719, 1999.
- S. Galbraith. Supersingular curves in cryptography. In Proceedings of Asiacrypt ’2001, LNCS. Springer-Verlag, 2001.
- S. Galbraith and N. P. Smart. A Cryptographic Application of Weil Descent. In M. Walker, editor, Cryptology and Coding, volume 1746 of LNCS, pages 191–200. 532 D. Boneh, B. Lynn, and H. Shacham
- P. Gaudry, F. Hess, and N. P. Smart. Constructive and Destructive Facets of Weil Descent on Elliptic Curves. Technical Report CSTR-00-016, Department of Computer Science, University of Bristol, 2000.
- A. Joux. A One Round Protocol for Tripartite Diffie-Hellman. In W. Bosma, editor, Proceedings of ANTS IV, volume 1838 of LNCS, pages 385–394. Springer-Verlag, 2000.
- A. Joux and K. Nguyen. Separating Decision Diffie-Hellman from Diffie-Hellman in Cryptographic Groups. Cryptology ePrint Archive, Report 2001/003, 2001. http://eprint.iacr.org/.
- N. Koblitz. An Elliptic Curve Implementation of the Finite Field Digital Signature Algorithm. In H. Krawczyk, editor, Proceedings of Crypto ’98, volume 1462 of LNCS, pages 327–333. Springer-Verlag, 1998.
- S. Lang. Elliptic Functions. Addison-Wesley, Reading, MA, 1973.
- A. Menezes, T. Okamoto, and P. Vanstone. Reducing Elliptic Curve Logarithms to Logarithms in a Finite Field. IEEE Transactions on Information Theory, 39(5):1639–1646, 1993.
- A. J. Menezes, P. C. Van Oorschot, and S. A. Vanstone. Handbook of Applied Cryptography. CRC Press, 1997.
- V. Miller. Short Programs for Functions on Curves. unpublished manuscript, 1986.
- I. Mironov. A Short Signature as Secure as DSA. Preprint, 2001.
- D. Naccache and J. Stern. Signing on a Postcard. In Proceedings of Financial Cryptography ’00, 2000.
- T. Okamoto and D. Pointcheval. The Gap Problems: A New Class of Problems for the Security of Cryptographic Primitives. In K. Kim, editor, Public Key Cryptography, PKC 2001, volume 1992 of LNCS, pages 104–118. Springer-Verlag, 2001.
- L. Pintsov and S. Vanstone. Postal Revenue Collection in the Digital Age. In Proceedings of Financial Cryptography ’00, 2000.
- J. H. Silverman. The Arithmetic of Elliptic Curves, volume 106 of Graduate Texts in Mathematics. Springer-Verlag, 1986.
- W. C. Waterhouse. Abelian Varieties over Finite Fields. Ann. Sci. École Norm. Sup., 2:521–60, 1969.
翻訳抄
Gap Diffie-Hellman 群でのヴェイユペアリングを使用することで、一般的な RSA や DSA での署名と比べて同じ強度で短い署名を生成する方法を示す 2001 年の論文。
- Dan Boneh, Ben Lynn, and Havav Shacham (2004) "Short Signatures from the Weil Pairing"