JP6023728B2 - マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム - Google Patents
マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム Download PDFInfo
- Publication number
- JP6023728B2 JP6023728B2 JP2014007517A JP2014007517A JP6023728B2 JP 6023728 B2 JP6023728 B2 JP 6023728B2 JP 2014007517 A JP2014007517 A JP 2014007517A JP 2014007517 A JP2014007517 A JP 2014007517A JP 6023728 B2 JP6023728 B2 JP 6023728B2
- Authority
- JP
- Japan
- Prior art keywords
- pairing
- expression evaluation
- expression
- multiplication
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
ペアリング演算には、点Tj1と点Tj2と点Pjに対して、点加算/2倍算と式評価の計算が含まれる。次に、具体的な座標系の例を示しながら説明する。
p=36z4+36z3+24z2+6z+1
r=36z4+36z3+18z2+6z+1
である。BN曲線では、rで割り切れる(pk−1)となる最小のkは12である。
F(p2)=F(p)[u]/(u2−β)
F(p6)=F(p2)[v]/(v3−ξ)
F(p12)=F(p6)[w]/(w2−v)
ただし、βは平方非剰余、ξは平方非剰余かつ立方非剰余
のように構成する。そして、F(p12)上の元Aを
A=a0+a1v+a2v2+a3w+a4vw+a5v2w (式1)
と表現する。なお、6次のツイスト曲線E’は、y2=x3+b/ξ である。このとき、点(x,y)に対してE’,Eの同型写像(x,y)→(xw2,yw3)となる
Φ:E’(F(p2))→E(F(p12))
が存在する。
Tj1=(x1,y1)、Tj2=(x2,y2)、Pj=(xP,yP)とする。λ=(y2−y1)/(x2−x1)に対して、点加算と式評価(点Tj1と点Tj2とが異なる場合)は、
x3=λ2−x1−x2
y3=λ(x1−x3)−y1
Lj=yP−λxpw+(λx1−y1)vw (式2)
となる。また、点2倍算と式評価(点Tj1と点Tj2とが同じ場合)は、λ=3x1 2/2y1に対して
x3=λ2−2x1
y3=λ(x1−x3)−y1
Lj=yP−λxpw+(λx1−y1)vw (式3)
となる。ここで、式1に示したF(p12)上の元Aはa0,a1,a2,a3,a4,a5の6つの係数が存在するが、式2、式3に示した式評価ではその中の3つの係数がゼロであることが分かる。
式2、式3を
yP’・Lj=1−λxp’w+yP’(λx1−y1)vw (式4)
ただし、xp’=xp/yP, yP’=1/yP
のように変換して式評価としてもよい。このように変形しても、yP’の部分は最終べきの計算(図1のアルゴリズムのステップ21)で除去されるため、ペアリング演算の結果には影響しない。式4のように変形すると、3つの係数がゼロであり1つの係数が小整数の「1」であることが分かる。
この座標系での楕円曲線Eは、Y2Z=X3+b’Z3となる。点の表現をTj1=(X1,Y1,Z1)∈G2とし、(x1,y1)=(X1/Z1,Y1/Z1)、Tj2=(x2,y2)、Pj=(xP,yP)とする。また点加算/2倍算と式評価は、Homogeneous Projective座標系の点とAffine座標系の点の混合座標で計算する。t0=Y1−y2Z1,t1=X1−x2Z1に対して、点加算と式評価は、
X3=t1(t1 3+Z1t0 2−2X1t1 2)
Y3=t0(3X1t1 2−t1 3−Z1t0 2)−Y1t1 3
Z3=Z1t1 3
Lj=−t1yP−t0xpw+(t0X2−t1Y2)vw (式5)
となる。また、点2倍算と式評価は、
X3=X1Y1(Y1 2−9b’Z1 2)/2
Y3=[(Y1 2+9b’Z1 2)/2]2−27b’2Z1 4
Z3=2Y1 3Z1
Lj=−2Y1Z1yP+3X1 2xpw+(3b’Z1 2−Y1 2)vw (式6)
となる。元は式1で表現されるので、式5、式6に示した式評価では3つの係数がゼロであることが分かる。
L”←h0×h1×…×hδ−1
を計算する(S120)。式評価乗算部120は、h0,h1,…,hδ−1をゼロまたは小整数の係数を含む元同士の演算がより多くなるように工夫して乗算すればよい。例えば、h0,h1,…,hδ−1の中の2つからなる組を複数組作るように分けて組ごとに乗算する処理を含むように構成する方法がある。このように計算すれば、ゼロまたは小整数の係数を含む元同士の演算がより多くなる。「h0,h1,…,hδ−1の中の2つからなる組を複数組作るように分けて組ごとに乗算する」具体例としては以下のような例がある。δ=4のときには、
L0’←h0×h1, L1’←h2×h3
L”←L0’×L1’
のようにL”を計算すればよい。このときは、(h0,h1)の組と(h2,h3)の組を作るように分けられ、まず組ごとに乗算している。δ=6のときには、
L0’←h0×h1, L1’←h2×h3, L2’←h5×h6
L”←L0’×L1’×L2’
のようにL”を求めてもよい。このときは、(h0,h1)の組と(h2,h3)の組と(h4,h5)の組を作るように分けられ、まず組ごとに乗算している。また、このような求め方を、
L”←((h0×h1)×(h2×h3)×(h5×h6))
と表現する。また、δ=6のときに、
L0’←h0×h1, L1’←h3×h4
L0’←L0’×h2, L1’←L1’×h5
L”←L0’×L1’
のようにL”を求めてもよい。このときは、(h0,h1)の組と(h3,h4)の組を作るように分けられ、まず組ごとに乗算している。h2とh5のように、組に含まれないものがあってもよい。このような求め方を、
L”←(((h0×h1)×h2)×((h3×h5)×h6))
と表現する。δ=6の場合にどちらの計算手順を選ぶかは、式評価の特徴を考慮して決めればよい。特に、δ=2tの場合であれば、
L”←(…((h0×h1)×(h2×h3))×((h5×h6)×(h2×h3))×…)
のように、2つずつに分けて乗算する処理を繰り返せばよい。上記のようにδが4以上の場合であれば、h0,h1,…,hδ−1の中の2つからなる組を複数組作るように分けて組ごとに乗算する処理を含むように構成できる。また、δ=3のときには、
L0’←h0×h1
L”←L0’×h2
のようにL”を計算すればよい。
f←f×L”
を計算し、fを更新する(S130)。演算制御部140は、L0,L1,…,Lm−1の中で、式評価選択部110で選択されていない式評価の数がδより少なくなるまで、式評価選択部110と式評価乗算部120と元乗算部130の処理(S110,S120,S130)を繰り返す(S140)。未選択乗算部150は、L0,L1,…,Lm−1の中で、式評価選択部110で選択されていない式評価がある場合は、選択されていない式評価のすべてをfに乗算し、乗算結果にfを更新する(S150)。式評価演算部100は、L0,L1,…,Lm−1のすべてを乗算されたfを演算結果として出力する。
図4に、Optimal Ateペアリングにおけるマルチペアリングのアルゴリズムの例(Algorithm 2)を示す。図4のアルゴリズムは、図1に示した従来のアルゴリズムを、本発明の式評価の乗算を適用できるように変更したものである。式評価演算部100の処理は、図4のアルゴリズムのステップ6,9,18,20に適用される。以下では、これらのステップに適用するアルゴリズムの例を示す。
図5は、図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの1つ目の例(Algorithm 3)である。このアルゴリズムは、式3,5で表現できる式評価(3つの係数がゼロの式評価)の乗算に適用できる。図5のステップ3では、h0,h1,h2,h3として
L0’←h0×h1, L1’←h2×h3
の計算が行われる。そして、ステップ4で
L”←L0’×L1’
のようにL”が求められている。つまり、ステップ3の式評価の選択部分がS110に相当し、ステップ3のL0’とL1’の計算の部分と、ステップ4がS120に相当する。また、ステップ5がS130に相当し、ステップ1,2,6がS140に相当し、ステップ7〜10がS150に相当する。
図9は、図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの2つ目の例(Algorithm 7)である。このアルゴリズムは、式4で表現できる式評価(3つの係数がゼロ、1つの係数が「1」の式評価)の乗算に適用できる。図9のステップ3,4では、h0,h1,h2として
L’←h0×h1,
L”←L’×h2’
のようにL”が求められている。つまり、ステップ3,4の式評価の選択部分がS110に相当し、ステップ3,4のL’とL”の計算の部分がS120に相当する。また、ステップ5がS130に相当し、ステップ1,2,6がS140に相当し、ステップ7〜10がS150に相当する。
図13は、図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの3つ目の例(Algorithm 11)である。このアルゴリズムは、式4で表現できる式評価(3つの係数がゼロ、1つの係数が「1」の式評価)の乗算に適用できる。図13のステップ3では、h0,h1,h2,h3として
L0’←h0×h1, L1’←h2×h3
の計算が行われる。そして、ステップ4で
L”←L0’×L1’
のようにL”が求められている。つまり、ステップ3の式評価の選択部分がS110に相当し、ステップ3のL0’とL1’の計算の部分と、ステップ4がS120に相当する。また、ステップ5がS130に相当し、ステップ1,2,6がS140に相当し、ステップ7〜10がS150に相当する。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
100 式評価演算部 110 式評価選択部
120 式評価乗算部 130 元乗算部
140 演算制御部 150 未選択乗算部
Claims (9)
- m個の群G1の元P0,…,Pm−1と群G2の元Q0,…,Qm−1とのマルチペアリングe(P0,Q0)×e(P1,Q1)×…×e(Pm−1,Qm−1)を求めるマルチペアリング演算装置であって、
mを2以上の整数、jを0以上m−1以下の整数、pを素数または素数のべき乗、kを正の整数、F(p)とF(pk)を有限体、Pjを有限体F(p)上の楕円曲線の点、Qjを有限体F(pk)上の楕円曲線の点、Tj1とTj2をQjに対応する有限体F(pk)上の楕円曲線の点、eを点Pjと点Qjとを入力とし有限体F(pk)上の元を出力するペアリング演算を示す記号、fを有限体F(pk)上の元、Ljを点Tj1と点Tj2を通る直線をPjで評価した式評価であって係数にゼロまたは小整数を含む有限体F(pk)上の元、ΔをL0×…×LΔ−1の計算過程のすべての乗算を係数にゼロまたは小整数を含む元同士の乗算にできる最大の正整数とし、
f,L0,L1,…,Lm−1を入力とし、マルチペアリング演算の処理に含まれるf×L0×…×Lm−1の演算結果を出力とする式評価演算部を有し、
前記式評価演算部は、
あらかじめ2以上Δ以下の整数δを定めており、
選択されていない式評価L0,L1,…,Lm−1の中からδ個を選択し、h0,h1,…,hδ−1とする式評価選択部と、
L”←h0×h1×…×hδ−1 を計算する式評価乗算部と、
f←f×L” を計算し、fを更新する元乗算部と、
L0,L1,…,Lm−1の中で、前記式評価選択部で選択されていない式評価の数がδより少なくなるまで、前記式評価選択部と前記式評価乗算部と前記元乗算部の処理を繰り返す演算制御部と、
L0,L1,…,Lm−1の中で、前記式評価選択部で選択されていない式評価がある場合は、選択されていない式評価のすべてをfに乗算し、乗算結果にfを更新する未選択乗算部と、
を備え、fを演算結果として出力する
ことを特徴とするマルチペアリング演算装置。 - 請求項1記載のマルチペアリング演算装置であって、
前記式評価乗算部は、h0,h1,…,hδ−1の中の2つからなる組を複数組作るように分けて組ごとに乗算する処理を含む
ことを特徴とするマルチペアリング演算装置。 - 請求項1記載のマルチペアリング演算装置であって、
δ=4であって、
前記式評価乗算部は、
L0’←h0×h1, L1’←h2×h3
を計算し、
L”←L0’×L1’
のようにL”を計算する
ことを特徴とするマルチペアリング演算装置。 - 請求項1記載のマルチペアリング演算装置であって、
δ=3であって、
前記式評価乗算部は、
L0’←h0×h1
を計算し、
L”←L0’×h2
のようにL”を計算する
ことを特徴とするマルチペアリング演算装置。 - m個の群G1の元P0,…,Pm−1と群G2の元Q0,…,Qm−1とのマルチペアリングe(P0,Q0)×e(P1,Q1)×…×e(Pm−1,Qm−1)を求めるマルチペアリング演算方法であって、
mを2以上の整数、jを0以上m−1以下の整数、pを素数または素数のべき乗、kを正の整数、F(p)とF(pk)を有限体、Pjを有限体F(p)上の楕円曲線の点、Qjを有限体F(pk)上の楕円曲線の点、Tj1とTj2をQjに対応する有限体F(pk)上の楕円曲線の点、eを点Pjと点Qjとを入力とし有限体F(pk)上の元を出力するペアリング演算を示す記号、fを有限体F(pk)上の元、Ljを点Tj1と点Tj2を通る直線をPjで評価した式評価であって係数にゼロまたは小整数を含む有限体F(pk)上の元、ΔをL0×…×LΔ−1の計算過程のすべての乗算を係数にゼロまたは小整数を含む元同士の乗算にできる最大の正整数とし、
f,L0,L1,…,Lm−1を入力とし、マルチペアリング演算の処理に含まれるf×L0×…×Lm−1の演算結果を出力とする式評価演算過程を有し、
前記式評価演算過程は、
あらかじめ2以上Δ以下の整数δを定めており、
式評価選択部が、選択されていない式評価L0,L1,…,Lm−1の中からδ個を選択し、h0,h1,…,hδ−1とする式評価選択ステップと、
式評価乗算部が、L”←h0×h1×…×hδ−1 を計算する式評価乗算ステップと、
元乗算部が、f←f×L” を計算し、fを更新する元乗算ステップと、
演算制御部が、L0,L1,…,Lm−1の中で、前記式評価選択ステップで選択されていない式評価の数がδより少なくなるまで、前記式評価選択ステップと前記式評価乗算ステップと前記元乗算ステップの処理を繰り返す繰り返しステップと、
未選択乗算部が、L0,L1,…,Lm−1の中で、前記式評価選択部で選択されていない式評価がある場合は、選択されていない式評価のすべてをfに乗算し、乗算結果にfを更新する未選択乗算ステップと、
を有し、fを演算結果として出力する
ことを特徴とするマルチペアリング演算方法。 - 請求項5記載のマルチペアリング演算方法であって、
前記式評価乗算ステップは、h0,h1,…,hδ−1を2つずつに分けて乗算し、その乗算結果同士を乗算する処理を含む
ことを特徴とするマルチペアリング演算方法。 - 請求項5記載のマルチペアリング演算方法であって、
δ=4であって、
前記式評価乗算ステップは、
L0’←h0×h1, L1’←h2×h3
を計算し、
L”←L0’×L1’
のようにL”を計算する
ことを特徴とするマルチペアリング演算方法。 - 請求項5記載のマルチペアリング演算方法であって、
δ=3であって、
前記式評価乗算ステップは、
L0’←h0×h1
を計算し、
L”←L0’×h2
のようにL”を計算する
ことを特徴とするマルチペアリング演算方法。 - 請求項1〜4のいずれかに記載されたマルチペアリング演算装置としてコンピュータを機能させるためのマルチペアリング演算プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014007517A JP6023728B2 (ja) | 2014-01-20 | 2014-01-20 | マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014007517A JP6023728B2 (ja) | 2014-01-20 | 2014-01-20 | マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015135451A JP2015135451A (ja) | 2015-07-27 |
JP6023728B2 true JP6023728B2 (ja) | 2016-11-09 |
Family
ID=53767306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014007517A Active JP6023728B2 (ja) | 2014-01-20 | 2014-01-20 | マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6023728B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101301139B1 (ko) * | 2009-04-24 | 2013-09-03 | 니뽄 덴신 덴와 가부시키가이샤 | 유한체 연산장치, 유한체 연산방법, 프로그램 및 기록매체 |
-
2014
- 2014-01-20 JP JP2014007517A patent/JP6023728B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015135451A (ja) | 2015-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Galbraith et al. | Computational problems in supersingular elliptic curve isogenies | |
Koziel et al. | Post-quantum cryptography on FPGA based on isogenies on elliptic curves | |
US20220147873A1 (en) | Processing device, accelerator, and method for federated learning | |
US11374735B2 (en) | Processing apparatus, processing method, storage medium, and encryption processing system | |
JP2017515195A (ja) | 断熱量子計算を介してデジタル論理制約問題を解く | |
JP2006227562A (ja) | 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム | |
Cao et al. | High-speed fully homomorphic encryption over the integers | |
Kepley et al. | Quantum circuits for F _ 2^ n F 2 n-multiplication with subquadratic gate count | |
Karmakar et al. | Efficient finite field multiplication for isogeny based post quantum cryptography | |
JP2001526416A (ja) | 楕円曲線暗号化演算の最適化用変換方法 | |
CN101371285A (zh) | 加密处理装置、加密处理方法及计算机程序 | |
CN106464484A (zh) | 预定函数的混淆执行 | |
JP6067596B2 (ja) | ペアリング演算装置、マルチペアリング演算装置、プログラム | |
US20190163933A1 (en) | Secure computation system, secure computation device, secure computation method, and program | |
KR101925614B1 (ko) | 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법 및 타원곡선 암호화 시스템 | |
Baktır et al. | A state-of-the-art elliptic curve cryptographic processor operating in the frequency domain | |
Gayoso Martínez et al. | Secure elliptic curves in cryptography | |
JP6023728B2 (ja) | マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム | |
CN114817954A (zh) | 图像的处理方法、系统和装置 | |
JP5840086B2 (ja) | 縮約装置、縮約方法、およびプログラム | |
CN114868175A (zh) | 最终幂计算装置、配对运算装置、加密处理装置、最终幂计算方法和最终幂计算程序 | |
Aranha et al. | Efficient software implementation of laddering algorithms over binary elliptic curves | |
JP6040052B2 (ja) | ペアリング演算装置、ペアリング演算方法、およびプログラム | |
EP4258591A1 (en) | Apparatus and method with homomorphic encryption operation | |
KR101423947B1 (ko) | 확장된 nist 소수를 이용한 모듈러 곱셈 및 모듈러 지수승 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160928 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161007 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6023728 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |