JP4565631B2 - 秘密計算方法及びシステム、並びにプログラム - Google Patents
秘密計算方法及びシステム、並びにプログラム Download PDFInfo
- Publication number
- JP4565631B2 JP4565631B2 JP2005012884A JP2005012884A JP4565631B2 JP 4565631 B2 JP4565631 B2 JP 4565631B2 JP 2005012884 A JP2005012884 A JP 2005012884A JP 2005012884 A JP2005012884 A JP 2005012884A JP 4565631 B2 JP4565631 B2 JP 4565631B2
- Authority
- JP
- Japan
- Prior art keywords
- ciphertext
- discrete logarithm
- verification
- verifier
- prover
- 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.)
- Expired - Fee Related
Links
Images
Description
E(a,r)=(A,B)=(rP,(r+a)Q)
ここでrは1以上p以下の乱数である。
先ず、暗号文変換装置が制御装置より(G,p,P,Q),E(a,r)(=(A,B))を入力として以下の処理を行う。
1.ランダムビットeおよび1以上p以下の乱数tを生成する。
2.以下に従って(A′,B′)を求め、それを複数の復号装置に送信する。
1.1以上p以下の乱数wを生成する。
2.以下に従って(C,D)を求め、当該暗号文を暗号文変換装置に送信する。
1.1以上p以下の乱数uを生成する。
2.以下に従って(C′,D′)を求め、それを制御装置に送信する。
第1の実施の形態におけるシステム構成は、図1に示すように、同一のネットワーク100で結ばれた、10の暗号文生成装置1,…,N(Nは適当な自然数)、制御装置20、暗号文変換装置30、および40の復号装置1,2からなる。ここで復号装置を複数に設定しているのは、復号装置が単一であれば、当該復号装置は入力の数値の暗号文も復号できる権限を持つことになり、明らかに本発明が取り上げている課題を解決できないが、本実施の形態のように復号装置を複数に設定すれば、分散復号技術を用いて、それら復号装置が結託しない限りは入力の数値を知ることが困難とできるためである。なお、本実施の形態では、簡単に復号装置の数は2としたが、一般に2以上いくつでもよい。
制御装置20は、有限体および楕円曲線を生成するためのパラメータを与えることで有限体および楕円曲線をそれぞれ一つずつ決定し(S101)、更に当該有限体上で定義された当該楕円曲線の有理点からなる群Gを決定する(S102)。また、Gの元を一つ選び、これをPとする(S103)。次に、Pの位数pを計算する(S104)。そして、(G,p,P)の組を復号装置40(i)(i=1,2)に送信する。
平文a∈{0,1}を暗号化する暗号関数Eを
E(a,r)=(A,B)=(rP,(r+a)Q)
と定義する。ここでrは1以上p以下の乱数である。
いま、x=x1+x2とおくと、xAを計算すればE(a,r)を復号できる。すなわち、
各装置は(G,p,P,Q)を保持しているとする。また、a,b∈{0,1}の暗号文E(a,r)(=A,B),E(b,s)(=X,Y))は、暗号文生成装置10(i),(j)から制御装置20へ事前にあたえられているとする。
先ず、制御装置20は、E(a,r)(=(A,B))を暗号文変換装置30に送信する。なお、各装置では、あらかじめ(G,p,P,Q)を保持しているとする。
1.ランダムビットeおよび1以上p以下の乱数tを生成する(S111)。
2.以下に従って暗号文(A′,B′)を計算する(S112)。
1.1以上p以下の乱数wを生成する(S119)。
2.以下に従って暗号文(C,D)を計算する(S120)。
1.1以上p以下の乱数uを生成する(S121)。
2.以下に従って暗号文(C′,D′)を計算する(S122)。
第1の実施の形態では、暗号文変換装置または復号装置が不正な処理を行うことで容易に結果を改ざんすることができてしまう。また、制御装置と暗号文変換装置が不正結託すれば、当該装置はa,bを知り得てしまう(例えばc=a*eを知る制御装置とeを知る暗号文変換装置が結託すれば、容易にaが求まることが分かる)。第2の実施の形態は、上記の問題点を解決する方法の一例を提案するものである。
1.ランダムビットe1および1以上p以下の乱数t1を生成する(S201)。
2.以下の[数13]に従って暗号文(A′,B′)を求め、当該暗号文を暗号文変換装置30(2)および検証装置50に送信する(S202)。
入力:((G,p,P,Q),(P0,Q0),(P1,Q1))
証明者の秘密情報:(e,t)
1.証明者は以下に従って(z0,z1,c0,c1)を求め、それを検証者に送信する。
(a)1以上p以下の乱数r,r′,c1-eを生成する。
(b)RP,e=rP,RQ,e=rQ,RP,1-e=r′P−c1-eP1-e,RQ,1-e=r′Q−c1-eQ1-e,ce=H(RP,0‖RQ,0‖RP,1‖RQ,1)−c1-e,ze=r+cet,z1-e=r′を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はc0+c1=H(z0P−c0P0‖z0Q−c0Q0‖z1P−c1P1‖z1Q−c1Q1)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したことを暗号文変換装置30(2)に伝える。これを受けて暗号文変換装置30(2)は(A′,B′)を入力とし、以下の処理を行う。
1.ランダムビットe2および1以上p以下の乱数t2を生成する(S206)。
2.以下の[数14]に従って暗号文(A″,B″)を求め、当該暗号文を復号装置40(1),(2)および検証装置50、さらに暗号文変換装置30(1)に送信する(S207)。
入力:(p,(U0,V0)=(P,xiP),(U1,V1)=(A″,xiA″))
証明者の秘密情報:xi
1.証明者は以下に従って、s,zを計算し、それを検証者に送信する。
(a)1以上B以下の乱数rを生成する。
(b)R0=rU0,R1=rU1を計算する。
(c)s=H(U0‖V0‖U1‖V1‖R0‖R1)を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
(d)z=r−sxiを計算する。
2.検証者はR0′=zU0+sV0,R1′=zU1+sV1を計算後、s=H(U0‖V0‖U1‖V1‖R0′‖R1′)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
1.1以上p以下の乱数u2を生成する(S228)。
2.以下の[数17]に従って暗号文(C′,D′)を求め(S229)、当該暗号文を暗号文変換装置30(1)および検証装置50に送信する。
「(A″,B″)=(A′+t2P,B′+t2Q)かつ(C′,D′)=(C+u2P,D+u2Q)」
または
「(A″,B″)=(−A′+t2P,−B′+(t2+1)Q)かつ
(C′,D′)=(−C+u2P,−D+(u2+1)Q)」
であることを示さなければならない。これは
[証明1]
「(A″,B″)=(A′+t2P,B′+t2Q)または
(A″,B″)=(−A′+t2P,−B′+(t2+1)Q)
かつ
[証明2]
「(A″,B″)=(A′+t2P,B′+t2Q)または
(C′,D′)=(−C′+u2P,−D+(u2+1)Q)」
かつ
[証明3]
「(A″,B″)=(−A′+t2P,−B′+(t2+1)Q)または
(C′,D′)=(C+u2P,D+u2Q)」
かつ
[証明4]
「(C′,D′)=(C+u2P,D+u2Q)または
(C′,D′)=(−C′+u2P,−D′+(u2+1)Q)」
であることを示すのと等しい。
((G,p,P,Q),(P0,Q0),(P1,Q1))←((G,p,P,Q),(A″−A′,B″−B′),(C+C′,D+D′−Q)),(e,t)←(e2,t2 or u2),
((G,p,P,Q),(P0,Q0),(P1,Q1))←((G,p,P,Q),(C′−C,D′−D),(A′+A″,B′+B″−Q)),(e,t)←(e2,t2 or u2),
((G,p,P,Q),(P0,Q0),(P1,Q1))←((G,p,P,Q),(C′−C,D′−D),(C+C′,D+D′−Q)),(e,t)←(e 2 ,u 2 ),
と代入すれば良い。
1.1以上p以下の乱数u1を生成する(S233)。
2.以下の[数18]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置110および検証装置50に送信する(S234)。
これは、第1の実施の形態における課題について、第2の実施の形態とは別の方法(プロトコル)で解決するものである。
1.ランダムビットe1および1以上p以下の乱数t1を生成する。
2.以下の[数19]に従って暗号文(A′,B′)を求め、当該暗号文を暗号文変換装置30(2)および検証装置50に送信する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したことを暗号文変換装置30(2)に伝える。これを受けて暗号文変換装置30(2)は(A′,B′)を入力とし、第2の実施の形態同様、以下の処理を行う。
1.ランダムビットe2および1以上p以下の乱数t2を生成する。
2.以下の[数20]に従って暗号文(A″,B″)を求め、当該暗号文を復号装置40(1),(2)および検証装置50、さらに暗号文変換装置30(1)に送信する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを復号装置40(1),(2)に伝える。これを受けて復号装置40(1))は(A″,B″)を入力とし、x1A′を計算し、それを制御装置20に送信する。同様に、復号装置40(2)は(A″,B″)を入力とし、x2A″を計算し、それを制御装置20に送信する。また当該送信情報が正しい計算結果であることをゼロ知識非対話証明技術を用いて検証装置50に証明する。当該証明方法は、第2の実施の形態と同様であるため、説明を省略する。
制御装置50はxA″=x1A″+x2A″を計算し、xA″=xB″であれば(A″,B″)の復号結果cを“0”、それ以外(xA″=B″−Q)であれば“1”とする。その後、当該復号結果c∈{0,1}について、以下の[数21]に従って暗号文(C,D)を求め、(C,D)を暗号文変換装置30(2)に送信する。
1.1以上p以下の乱数u2を生成する。
2.以下の[数22]に従って暗号文(C′,D′)を求め、当該暗号文を暗号文変換装置30(1)および検証装置50に送信する。
「(A″,B″)=(A′+t2P,B′+t2Q)かつ
(C′,D′)=(C+u2P,D+u2Q)」
または
「(A″,B″)=(−A′+t2P,−B′+(t2+1)Q)かつ
(C′,D′)=(−C+u2P,−D+(u2+1)Q)」
であることを示さなければならない。
1.Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、かつ、Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しい、
または、
2.Pを底としたP0′の離散対数とQを底としたQ0′の離散対数が等しい、かつ、Pを底としたP1′の離散対数とQを底としたQ1′の離散対数が等しい、
ことをゼロ知識証明技術を用いて証明するプロトコルである。
入力:((G,p,P,Q),(P0,Q0),(P1,Q1),(P0′,Q0′),(P1′,Q1′)
証明者の秘密情報:(e,t,t′)
1.証明者は以下に従って(z0,z1,z0′,z1′,c0,c1)を求め、それを検証者に送信する。
(a)1以上p以下の乱数r,r′,r″,r″′,c1-eを生成する。
(b)Rp,e=rP,RQ,e=rQ,Rp,1-e=r′P−c1-eP1-e,RQ,1-e=r′Q−c1-eQ1-e,R′P,e=r″P,R′Q,e=r″Q,R′P,1-e=r″′P−c1-eP1-e,R′Q,1-e=r″′Q−c1-eQ′1-e,
ce=H(RP,0‖RQ,0‖RP,1‖RQ,1‖R′P,0‖R′Q,0‖R′P,1‖R′Q,1)−c1-e,ze=r+cet,z1-e=r′,z′e=r″+cet′,z′1-e=r″′
を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はc0+c1=H(z0P−c0P0‖z0Q−c0Q0‖z1P−c1P1‖z1Q−c1Q1‖z0′P−c0P0′‖z0′Q−c0Q0′‖z1′P−c1P1′‖z1′Q−c1Q′1)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
1.1以上p以下の乱数u1を生成する。
2.以下の[数23]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置20および検証装置50に送信する。
ここで(C″,D″)が[数23]の関係を満たしていることを示す方法は、前述の暗号文変換装置30(2)での説明から明らかであるため省略する。
これは、第1の実施の形態における課題について、第2の実施の形態や第3の実施の形態とは更に別の方法(プロトコル)で解決するものである。
1.ランダムビットe1および1以上p以下の乱数t1を生成する。
2.以下の[数24]に従って暗号文(A′,B′)を求め、当該暗号文を暗号文変換装置30(2)および検証装置50に送信する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したことを暗号文変換装置30(2)に伝える。これを受けて暗号文変換装置30(2)は(A′,B′)を入力とし、第2の実施の形態同様、以下の処理を行う。
1.ランダムビットe2および1以上p以下の乱数t2を生成する。
2.以下の[数25]に従って暗号文(A″,B″)を求め、当該暗号文を復号装置40(1),(2)および検証装置50、さらに暗号文変換装置30(1)に送信する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを復号装置40(1),(2)に伝える。これを受けて復号装置40(1)は(A″,B″)を入力とし、x1A′を計算し、それを制御装置20に送信する。同様に、復号装置40(2)は(A″,B″)を入力とし、x2A″を計算し、それを制御装置20に送信する。また当該送信情報が正しい計算結果であることをゼロ知識非対話証明技術を用いて検証装置50に証明する。当該証明方法は、第2の実施の形態と同様であるため、説明を省略する。
制御装置50はxA″=x1A″+x2A″を計算し、xA″=xB″であれば(A″,B″)の復号結果cを“0”、それ以外(xA″=B″−Q)であれば“1”とする。その後、当該復号結果c∈{0,1}について、以下の[数26]に従って暗号文(C,D)を求め、(C,D)を暗号文変換装置30(2)に送信する。
1.1以上p以下の乱数u2を生成する。
2.以下の[数27]に従って暗号文(C′,D′)を求め、当該暗号文を暗号文変換装置30(1)および検証装置50に送信する。
「(A″,B″)=(A′+t2P,B′+t2Q)かつ
(C′,D′)=(C+u2P,D+u2Q)」
または
「(A″,B″)=(−A′+t2P,−B′+(t2+1)Q)かつ
(C′,D′)=(−C+u2P+X,−D+(u2+1)Q)」
であることを示さなければならない。
1.Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、
あるいは、
2.Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しい、
ことが既にゼロ知識証明されているとき(該離散対数をsとする)、
1が真であるときに限り、Pを底としたP0′の離散対数とQを底としたQ0′の離散対数が等しい、
逆に2が真であるときに限り、Pを底としたP1′の離散対数とQを底としたQ1′の離散対数が等しい(ともに該離散対数をtとする)、
ことをゼロ知識証明技術を用いて証明可能なプロトコルである。
[プロトコル4]
入力:((G,p,P,Q),(P0,Q0),(P1,Q1),(P0′,Q0′),(P1′,Q1′))
証明者の秘密情報:(e,s,t)
1.証明者は以下に従って(z0,z1,c0,c1)を求め、それを検証者に送信する。
(a)ε=H(P0‖Q0‖P1‖Q1‖P0′‖Q0′‖P1′‖Q1′‖)を計算する。
(b)1以上p以下の乱数r,r′,c1-eを生成する。
(c)RP,e=rP,RQ,e=rQ,RP,1-e=r′P−c1-e(εP1-e+P′1-e),RQ,1-e=r′Q−c1-e(εQ1-e+Q′1-e),ce=H(RP,0‖RQ,0‖RP,1‖RQ,1)−c1-e,ze=r+ce(εs+t),z1-e=r′を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はε′=H(P0‖Q0‖P1‖Q1‖P0′‖Q0′‖P1′‖Q1′)を計算し、c0+c1=H(z0P−c0(ε′P0+P0′)‖z0Q−c0(ε′Q0+Q0′)‖z1P−c1(ε′P1+P1′)‖z1Q−c1(ε′Q1+Q1′))が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
と代入すればよい。
1.1以上p以下の乱数u1を生成する。
2.以下の[数28]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置20および検証装置50に送信する。
ここで(C″,D″)が[数28]の関係を満たしていることを示す方法は、前述の暗号文変換装置30(2)での説明から明らかであるため省略する。
20 制御装置
30 暗号文変換装置
40 復号装置
50 検証装置
100 ネットワーク
Claims (9)
- ある有限体上で定義された楕円曲線の有理点からなる群をGとし、PをGの元とし、Pの位数をpとし、秘密鍵x∈{1,…,p}に対してQ=xPとし、(G,p,P,Q)を公開鍵とし、
平文a∈{0,1}を暗号化する暗号関数Eが
E(a,r)=(A,B)=(rp,(r+a)Q)
と定義され(rは1以上p以下の乱数)、
a,b∈{0,1}の暗号文E(a,r)(=(A,B))、E(b,s)(=(X,Y))から、a,bを知ることなく、a*b(*は排他的論理和を意味するとする。以下、同様)の暗号文を計算する秘密計算方法であって、
ネットワークで結ばれた、一つあるいは複数の暗号文生成装置、制御装置、暗号文変換装置および複数の復号装置を備え、
制御装置は、a,b∈{0,1}の暗号文E(a,r)(=(A,B))、E(b,s)(=(X,Y))を暗号文生成装置から入力して、まず、E(a,r)(=(A,B))を暗号文変換装置に送信し、
暗号文変換装置は、(G,p,P,Q),E(a,r)(=(A,B))を入力として、ランダムビットeおよび1以上p以下の乱数tを生成し、暗号文(A′,B′)を
各復号装置i(i=1,2,…)は、(A′,B′)を入力とし、xiA′(xiは乱数)を計算して、それを制御装置に送信し、
制御装置は、xA′=x1A′+x2A′+…を計算し、xA′=B′であれば(A′,B′)の復号結果cを“0”、それ以外(xA′=B′−Q)であれば“1”として、該復号結果c∈{0,1}について、暗号文(C,D)を、
暗号文変換装置は、(G,p,P,Q),(C,D)を入力として、1以上p以下の乱数uを生成し、暗号文(C′,D′)を
制御装置は、(C′,D′)をa*bの暗号文として出力することを特徴とする秘密計算方法。 - ある有限体上で定義された楕円曲線の有理点からなる群をGとし、PをGの元とし、Pの位数をpとし、秘密鍵x∈{1,…,p}に対してQ=xPとし、(G,p,P,Q)を公開鍵とし、
平文a∈{0,1}を暗号化する暗号関数Eが
E(a,r)=(A,B)=(rp,(r+a)Q
と定義され(rは1以上p以下の乱数)、
a,b∈{0,1}の暗号文E(a,r)(=(A,B))、E(b,s)(=(X,Y))から、a,bを知ることなく、a*bの暗号文を計算する秘密計算方法であって、
ネットワークで結ばれた、一つあるいは複数の暗号文生成装置、制御装置、複数の暗号文変換装置、複数の復号装置および検証装置を備え、
制御装置は、a,b∈{0,1}の暗号文E(a,r)(=(A,B))、E(b,s)(=(X,Y))を暗号文生成装置から入力して、まず、E(a,r)(=(A,B))を第1の暗号文変換装置に送信し、
第1の暗号文変換装置は、(G,p,P,Q),E(a,r)(=(A,B))を入力として、ランダムビットe1および1以上p以下の乱数t1を生成し、暗号文(A′,B′)を
検証装置は、第1の暗号文変換装置の処理正当性を検証して、その結果を第2の暗号文変換装置に通知し、
第2の暗号文変換装置は、検証装置から第1の暗号文変換装置の処理正当の通知を受けると、ランダムビットe2および1以上p以下の乱数t2を生成し、暗号文(A″,B″)を、
検証装置は、第2の暗号文変換装置の処理正当性を検証して、その結果を各復号装置に通知し、
各復号装置i(i=1,2,…)は、検証装置から第2の暗号文変換装置の処理正当の通知を受けると、(A″,B″)を入力とし、xiA″(xiは乱数)を計算して、それを制御装置に送信し、
検証装置は、各復号装置の処理正当性を検証して、その結果を制御装置に通知し、
制御装置は、検証装置から全ての復号装置の処理正当の通知を受けると、xA″=x1A″+x2A″+…を計算し、xA″=B″であれば(A″,B″)の復号結果cを“0”、それ以外(xA″=B″−Q)であれば“1”として、該復号結果c∈{0,1}について、暗号文(C,D)を、
第1(あるいは第2)の暗号文変換装置は、(G,p,P,Q),(C,D)を入力として、1以上p以下の乱数u2を生成し、暗号文(C′,D′)を
検証装置は、第1(あるいは第2)の暗号文変換装置の処理正当性を検証して、その結果を第2(あるいは第1)の暗号文変換装置に通知し、
第2(あるいは第1)の暗号文変換装置は、検証装置から第1(あるいは第2)の暗号文変換装置の処理正当の通知を受けると、(G,p,P,Q),(C′,D′)を入力として、1以上p以下の乱数u1を生成し、暗号文(C″,D″)を
検証装置は、第2(あるいは第1)の暗号文変換装置の処理の正当性を検証して、その結果を制御装置に通知し、
制御装置は、検証装置から第2(あるいは第1)の暗号文変換装置の処理正当の通知を受けると、(C″,D″)をa*bの暗号文として認識することを特徴とする秘密計算方法。 - 請求項2記載の秘密計算方法において、
検証装置は、第1あるいは第2の暗号文変換装置を証明者、当該検証装置を検証者として、下記プロトコル1を用いて、(A′,B′),(A″,B″),(C′,D′),(C″,D″)が[数4]、[数5]、[数7]、[数8]の関係を満たしていることをゼロ知識証明する、
ことを特徴とする秘密計算方法。
[プロトコル1]
Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、あるいは、Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しいことを、ゼロ知識証明技術を用いて証明するプロトコル、
入力:((G,p,P,Q),(P0,Q0),(P1,Q1))
証明者の秘密情報:(e,t)
1.証明者は以下に従って(z0,z1,c0,c1)を求め、それを検証者に送信する。
(a)1以上p以下の乱数r,r′,c1-eを生成する。
(b)RP,e=rP,RQ,e=rQ,RP,1-e=r′P-c1-eP1-e,RQ,1-e=r′Q-c1-eQ1-e,ce=H(RP,0‖RQ,0‖RP,1‖RQ,1)−c1-e,ze=r+cet,z1-e=r′を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はc0+c1=H(z0P−c0P0‖z0Q−c0Q0‖z1P−c1P1‖z1Q−c1Q1)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。 - 請求項2記載の秘密計算方法において、
検証装置は、復号装置を証明者、当該検証装置を検証者として、下記プロトコル2を用いて、xiA″が正しい計算結果であることをゼロ知識証明する、
ことを特徴とする秘密計算方法。
[プロトコル2]
Pを底としたxiPの離散対数、およびA″を底としたxiA″の離散対数が等しい(すなわち、ともにxiとなる)ことを非対話で証明するプロトコル、
入力:(p,(U0,V0)=(P,xiP),(U1,V1)=(A″,xiA″))
証明者の秘密情報:xi
1.証明者は以下に従ってs,zを計算し、それを検証者に送信する。
(a)1以上p以下の乱数rを生成する。
(b)R0=rU0,R1=rU1を計算する。
(c)s=H(U0‖V0‖U1‖V1‖R0‖R1)を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
(d)z=r+sxiを計算する。
2.検証者はR0′=zU0+sV0,R1′=zU1+sV1を計算後、s=H(U0‖V0‖U1‖V1‖R0′‖R1′)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。 - 請求項2記載の秘密計算方法において、
検証装置は、第1あるいは第2の暗号文変換装置を証明者、当該検証装置を検証者として、下記プロトコル1を用いて、(A′,B′),(A″,B″)が[数4]、[数5]の関係を満たしていることをゼロ知識証明し、
さらに、検証装置は、第1あるいは第2の暗号文変換装置を証明者、当該検証装置を検証者として、下記プロトコル3を用いて、(C′,D′)(C″,D″)が[数7]、[数8]の関係を満たしていることをゼロ知識証明する、
ことを特徴とする秘密計算方法。
[プロトコル1]
Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、あるいは、Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しいことを、ゼロ知識証明技術を用いて証明するプロトコル、
入力:((G,p,P,Q),(P0,Q0),(P1,Q1))
証明者の秘密情報:(e,t)
1.証明者は以下に従って(z0,z1,c0,c1)を求め、それを検証者に送信する。
(a)1以上p以下の乱数r,r′,c1-eを生成する。
(b)RP,e=rP,RQ,e=rQ,RP,1-e=r′P−c1-eP1-e,RQ,1-e=r′Q−c1-eQ1-e,ce=H(RP,0‖RQ,0‖RP,1‖RQ,1)−c1-e,ze=r+cet,z1-e=r′を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はc0+c1=H(z0P−c0P0‖z0Q−c0Q0‖z1P−c1P1‖z1Q−c1Q1)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。
[プロトコル3]
1.Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、かつ、Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しい、
または、
2.Pを底としたP0′の離散対数とQを底としたQ0′の離散対数が等しい、かつ、Pを底としたP1′の離散対数とQを底としたQ1′の離散対数が等しい、
ことを、ゼロ知識証明技術を用いて証明するプロトコル、
入力:((G,p,P,Q),(P0,Q0),(P1,Q1),(P0′,Q0′),(P1′,Q1′)
証明者の秘密情報:(e,t,t′)
1.証明者は以下に従って(z0,z1,z0′,z1′,c0,c1)を求め、それを検証者に送信する。
(a)1以上p以下の乱数r,r′,r″,r″′,c1-eを生成する。
(b)Rp,e=rP,RQ,e=rQ,Rp,1-e=r′P−c1-eP1-e,RQ,1-e=r′Q−c1-eQ1-e,R′P,e=r″P,R′Q,e=r″Q,R′P,1-e=r″′P−c1-eP1-e,R′Q,1-e=r″′Q−c1-eQ1-e,
ce=H(RP,0‖RQ,0‖RP,1‖RQ,1‖R′P,0‖R′Q,0‖R′P,1‖R′Q,1)−c1-e,
ze=r+cet,z1-e=r′,z′e=r″+cet′,z′1-e=r″′
を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はc0+c1=H(z0P−c0P0‖z0Q−c0Q0‖z1P−c1P1‖z1Q−c1Q1‖z0′P−c0P0′‖z0′Q−c0Q0′‖z1′P−c1P1′‖z1′Q−c1Q1′)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。 - 請求項2記載の秘密計算方法において、
検証装置は、第1あるいは第2の暗号文変換装置を証明者、当該検証装置を検証者として、下記プロトコル1を用いて、(A′,B′),(A″,B″)が[数4]、[数5]満たしていることをゼロ知識証明し、
さらに、検証装置は、第1あるいは第2の暗号文変換装置を証明者、当該検証装置を検証者として、下記プロトコル4を用いて、(C′,D′),(C″,D″)が[数7]、[数8]の関係をみたしていることをゼロ知識証明する、
ことを特徴とする秘密計算方法。
[プロトコル1]
Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、あるいは、Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しいことを、ゼロ知識証明技術を用いて証明するプロトコル、
入力:((G,p,P,Q),(P0,Q0),(P1,Q1))
証明者の秘密情報:(e,t)
1.証明者は以下に従って(z0,z1,c0,c1)を求め、それを検証者に送信する。
(a)1以上p以下の乱数r,r′,c1-eを生成する。
(b)RP,e=rP,RQ,e=rQ,RP,1-e=r′P−c1-eP1-e,RQ,1-e=r′Q−c1-eQ1-e,ce=H(RP,0‖RQ,0‖RP,1‖RQ,1)−c1-e,ze=r+cet,z1-e=r′を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はc0+c1=H(z0P−c0P0‖z0Q−c0Q0‖z1P−c1P1‖z1Q−c1Q1)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。
[プロトコル4]
1.Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、
あるいは、
2.Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しい、
ことが既にゼロ知識証明されているとき(該離散対数をsとする)、
1が真であるときに限り、Pを底としたP0′の離散対数とQを底としたQ0′の離散対数が等しいことを証明し、
逆に2が真であるときに限り、Pを底としたP1′の離散対数とQを底としたQ1′の離散対数が等しい(ともに該離散対数をtとする)、ことが可能なゼロ知識証明技術を用いて証明するプロトコル、
入力:((G,p,P,Q),(P0,Q0),(P1,Q1),(P0′,Q0′),(P1′,Q1′))
証明者の秘密情報:(e,s,t)
1.証明者は以下に従って(z0,z1,c0,c1)を求め、それを検証者に送信する。
(a)ε=H(P0‖Q0‖P1‖Q1‖P0′‖Q0′‖P1′‖Q1′)を計算する。
(b)1以上p以下の乱数r,r′,c1-eを生成する。
(c)RP,e=rP,RQ,e=rQ,RP,1-e=r′P−c1-e(εP1-e+P′1-e),RQ,1-e=r′Q−c1-e(εQ1-e+Q′1-e),ce=H(RP,0‖RQ,0‖RP,1‖RQ,1)−c1-e,ze=r+ce(εs+t),z1-e=r′を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はε′=H(P0‖Q0‖P1‖Q1‖P0′‖Q0′‖P1′‖Q1′)を計算し、c0+c1=H(z0P−c0(ε′P0′+P0′)‖z0Q−c0(ε′Q0′+Q0′)‖z1P−c1(ε′P1+P1′)‖z1Q−c1(ε′Q1+Q1′))が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。 - 請求項1乃至6のいずれか1項に記載の秘密計算方法において、複数組の(Ai,Bi),(Xi,Yi)(i=1,2,…,n)を順次入力して、複数組のai*biの暗号文をパイプライン形式に順次計算することを特徴とする秘密計算方法。
- ネットワークで結ばれた、一つあるいは複数の暗号文生成装置、制御装置、複数の暗号文変換装置、複数の復号装置および検証装置を具備し、請求項1乃至7のいずれか1項に記載の秘密計算方法を実施することを特徴とする秘密計算システム。
- 請求項1乃至7に記載の秘密計算方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005012884A JP4565631B2 (ja) | 2005-01-20 | 2005-01-20 | 秘密計算方法及びシステム、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005012884A JP4565631B2 (ja) | 2005-01-20 | 2005-01-20 | 秘密計算方法及びシステム、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006201468A JP2006201468A (ja) | 2006-08-03 |
JP4565631B2 true JP4565631B2 (ja) | 2010-10-20 |
Family
ID=36959519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005012884A Expired - Fee Related JP4565631B2 (ja) | 2005-01-20 | 2005-01-20 | 秘密計算方法及びシステム、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4565631B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050279949A1 (en) | 1999-05-17 | 2005-12-22 | Applera Corporation | Temperature control for light-emitting diode stabilization |
JP4565628B2 (ja) * | 2004-11-26 | 2010-10-20 | 日本電信電話株式会社 | 秘密計算方法及びシステム、並びにプログラム |
JP4565632B2 (ja) * | 2005-01-24 | 2010-10-20 | 日本電信電話株式会社 | 秘密計算方法及びシステム、並びにプログラム |
JP4748663B2 (ja) * | 2005-01-24 | 2011-08-17 | 日本電信電話株式会社 | 秘密計算方法及びシステム、並びにプログラム |
JP4650933B2 (ja) * | 2005-01-24 | 2011-03-16 | 日本電信電話株式会社 | 秘密計算方法及びシステム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006154033A (ja) * | 2004-11-26 | 2006-06-15 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
-
2005
- 2005-01-20 JP JP2005012884A patent/JP4565631B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006154033A (ja) * | 2004-11-26 | 2006-06-15 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2006201468A (ja) | 2006-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8744077B2 (en) | Cryptographic encoding and decoding of secret data | |
JP6244728B2 (ja) | 情報処理方法及びプログラム | |
JP6349841B2 (ja) | 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置 | |
JPWO2006077701A1 (ja) | 署名装置、検証装置、証明装置、暗号化装置、及び復号化装置 | |
EP2846492A1 (en) | Cryptographic group signature methods and devices | |
JP4835831B2 (ja) | 多数の入力から関数を計算する方法および装置 | |
JP4565631B2 (ja) | 秘密計算方法及びシステム、並びにプログラム | |
WO2007105749A1 (ja) | グループ署名システムおよび情報処理方法 | |
Grote et al. | A review of post-quantum cryptography and crypto-agility strategies | |
JP2007036364A (ja) | タイム装置、暗号化装置、復号化装置、暗号化/復号化システム | |
JP2010049213A (ja) | 暗号化装置、復号装置、暗号通信システム、方法及びプログラム | |
JP4565628B2 (ja) | 秘密計算方法及びシステム、並びにプログラム | |
JP4650933B2 (ja) | 秘密計算方法及びシステム | |
JP2008176192A (ja) | 暗号変換方法および装置、並びにプログラム | |
Akiyama et al. | A public-key encryption scheme based on non-linear indeterminate equations | |
JP4087719B2 (ja) | 署名暗号方法、その装置およびそのプログラム | |
JP4565632B2 (ja) | 秘密計算方法及びシステム、並びにプログラム | |
JP4748663B2 (ja) | 秘密計算方法及びシステム、並びにプログラム | |
CN101321059B (zh) | 一种用于编码和译码数字消息的方法和系统 | |
JP5300373B2 (ja) | 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム | |
Zhigang et al. | Review of how to construct a fully homomorphic encryption scheme | |
WO2010024312A1 (ja) | 演算装置、復号装置、暗号化装置、情報共有システム、2dnf演算システム、署名生成装置、署名検証装置、署名処理システム、署名検証システム、演算方法及び演算プログラム | |
Sharma et al. | A new variant of subset-sum cryptosystem over RSA | |
CN114026586A (zh) | 用于授予对加密资产的访问权的零知识或有支付协议 | |
CN111885056A (zh) | 基于区块链的零知识证明方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100512 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100706 |
|
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: 20100728 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100802 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4565631 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130813 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |