JP4565628B2 - 秘密計算方法及びシステム、並びにプログラム - Google Patents
秘密計算方法及びシステム、並びにプログラム Download PDFInfo
- Publication number
- JP4565628B2 JP4565628B2 JP2004341766A JP2004341766A JP4565628B2 JP 4565628 B2 JP4565628 B2 JP 4565628B2 JP 2004341766 A JP2004341766 A JP 2004341766A JP 2004341766 A JP2004341766 A JP 2004341766A JP 4565628 B2 JP4565628 B2 JP 4565628B2
- Authority
- JP
- Japan
- Prior art keywords
- ciphertext
- discrete logarithm
- verification
- decryption
- verifier
- 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
このとき、平文a∈{0,1}を暗号化する暗号関数Eを次のように定義する。
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)。また、Gの元を一つ選び、これを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)を復号できる。すなわち、
先ず、制御装置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.以下の[数12]に従って暗号文(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を生成する。ここで、eは1もしくは0である。
(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)は(G,p,P,Q),(A′,B′)を入力とし、以下の処理を行う。
1.ランダムビットe2および1以上B以下の乱数t2を生成する(S206)。
2.以下の[数13]に従って暗号文(A″,B″)を求め、当該暗号文を復号装置40(1),(2)および検証装置50、さらに暗号文変換装置30(1)に送信する(S207)。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを復号装置40(1),(2)に伝える。これを受けて、復号装置40(1)は(A″,B″)を入力とし、x1A″を計算し、それを制御装置20に送信する(S211)。同様に、復号装置40(2)は(A″,B″)を入力とし、x2A″を計算し、それを制御装置20に送信する(S212)。
入力:(p,(U0,V0)=(P,xiP),(U1,V1)=(A″,xiA″))
証明者の秘密情報:xi
1.証明者は以下に従って、(R 0 ,R 1 ,s,z)を求め、(R 0 ,R 1 ,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.検証者はs′=H(U0‖V0‖U1‖V1‖R0‖R1)を計算後、zU0=R0+s′V0,zU1=R1+s′V1が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
1.1以上p以下の乱数u2を生成する(S228)。
2.以下の[数15]に従って暗号文(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+X,−D+u2Q+Y)」
であることを示さなければならない。これは
[証明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+X,−D+t2Q+Y)」
かつ
[証明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+X,−D′+u2Q+Y)」
であることを示すのと等しい。
((G,p,P,Q),(P0,Q0),(P1,Q1))←((G,p,P,Q),(A″−A′,B″−B′),(C+C′−X,D+D′−Y)),(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′−X,D+D′−Y)),(e,t)←(e 2 ,u 2 ),
と代入すれば良い。
1.1以上p以下の乱数u1を生成する(S233)。
2.以下の[数16]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置110および検証装置50に送信する(S234)。
これは、第1の実施の形態における課題について、第2の実施の形態とは別の方法(プロトコル)で解決するものである。
1.ランダムビットe1および1以上p以下の乱数t1を生成する。
2.以下の[数17]に従って暗号文(A′,B′)を求め、当該暗号文を暗号文変換装置30(2)および検証装置50に送信する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したことを暗号文変換装置30(2)に伝える。これを受けて暗号文変換装置30(2)は(G,p,P,Q),(A′,B′)を入力とし、第2の実施の形態同様、以下の処理を行う。
1.ランダムビットe2および1以上p以下の乱数t2を生成する。
2.以下の[数18]に従って暗号文(A″,B″)を求め、当該暗号文を復号装置40(1),(2)および検証装置50、さらに暗号文変換装置30(1)に送信する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを復号装置40(1),(2)に伝える。これを受けて復号装置40(i)(i=1,2)は(A″,B″)を入力とし、xiA′を計算し、それを制御装置20に送信する。また当該送信情報が正しい計算結果であることをゼロ知識非対話証明技術を用いて検証装置50に証明する。当該証明方法は、第2の実施の形態と同様であるため、説明を省略する。
制御装置50はxA″=x1A″+x2A″を計算し、xA″=xB″であれば(A″,B″)の復号結果cを“0”、それ以外(xA″=B″−Q)であれば“1”とする。その後、当該復号結果c∈{0,1}について、第2の実施の形態と同様に、以下の[数19]に従って暗号文(C,D)を求め、E(b,s)(=(X,Y)),(C,D)を暗号文変換装置30(2)に送信する。
1.1以上p以下の乱数u2を生成する。
2.以下の[数20]に従って暗号文(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+u2Q+Y)」
であることを示さなければならない。
1.Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、かつ、Pを底としたP0′の離敵対数とQを底としたQ0′の離散対数が等しい、
または、
2.Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しい、かつ、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を生成する。ここで、eは1もしくは0である。
(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-e P′ 1-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.以下の[数21]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置20および検証装置50に送信する。
ここで(C″,D″)が[数21]の関係を満たしていることを示す方法は、前述の暗号文変換装置30(2)での説明から明らかであるため省略する。
これは、第1の実施の形態における課題について、第2の実施の形態や第3の実施の形態とは更に別の方法(プロトコル)で解決するものである。
1.ランダムビットe1および1以上p以下の乱数t1を生成する。
2.以下の[数22]に従って暗号文(A′,B′)を求め、当該暗号文を暗号文変換装置30(2)および検証装置50に送信する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したことを暗号文変換装置30(2)に伝える。これを受けて暗号文変換装置30(2)は(G,p,P,Q),(A′,B′)を入力とし、第2の実施の形態同様、以下の処理を行う。
1.ランダムビットe2および1以上p以下の乱数t2を生成する。
2.以下の[数23]に従って暗号文(A″,B″)を求め、当該暗号文を復号装置40(1),(2)および検証装置50、さらに暗号文変換装置30(1)に送信する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを復号装置40(1),(2)に伝える。これを受けて復号装置40(i)(i=1,2)は(A″,B″)を入力とし、xiA′を計算し、それを制御装置20に送信する。また当該送信情報が正しい計算結果であることをゼロ知識非対話証明技術を用いて検証装置50に証明する。当該証明方法は、第2の実施の形態と同様であるため、説明を省略する。
制御装置50はxA″=x1A″+x2A″を計算し、xA″=xB″であれば(A″,B″)の復号結果cを“0”、それ以外(xA″=B″−Q)であれば“1”とする。その後、当該復号結果c∈{0,1}について、第2の実施の形態と同様に、以下の[数24]に従って暗号文(C,D)を求め、E(b,s)(=(X,Y)),(C,D)を暗号文変換装置30(2)に送信する。
1.1以上p以下の乱数u2を生成する。
2.以下の[数25]に従って暗号文(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+u2Q+Y)」
であることを示さなければならない。
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)c′=H(P0‖Q0‖P1‖Q1‖P0′‖Q0′‖P1′‖Q1′‖)を計算する。
(b)1以上p以下の乱数r,r′,c1-eを生成する。ここで、eは1もしくは0である。
(c)RP,e=rP,RQ,e=rQ,RP,1-e=r′P−c1-e(c′P1-e+P′1-e),RQ,1-e=r′Q−c1-e(c′Q1-e+Q′1-e),ce=H(RP,0‖RQ,0‖RP,1‖RQ,1)−c1-e,ze=r+ce(c′s+t),z1-e=r′を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はc′=H(P0‖Q0‖P1‖Q1‖P0′‖Q0′‖P1′‖Q1′)を計算し、c0+c1=H(z0P−c0(c′P0+P0′)‖z0Q−c0(c′Q0+Q0′)‖z1P−c1(c′P1+P1′)‖z1Q−c1(c′Q1+Q1′))が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
1.1以上p以下の乱数u1を生成する。
2.以下の[数26]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置20および検証装置50に送信する。
ここで(C″,D″)が[数26]の関係を満たしていることを示す方法は、前述の暗号文変換装置30(2)での説明から明らかであるため省略する。
第1の実施の形態では入力値を秘匿する秘密計算方法の例について示したが、単純な拡張により、当該方法を、関数を秘匿する方法とすることもできる。そこで、第5の実施の形態として、第1の実施の形態で示した方法の応用により関数を暗号化する方法、そして当該暗号化関数から当該関数の実行結果を得る方法について説明する。
1.実行可能
2.暗号化可能
3.どの関数が暗号化されているのか識別困難
という条件を全て満たすことができれば、どの論理ゲートが実行されているかを秘匿できるようになる。すなわちAND,OR,NAND,NORの組み合わせにより表現された関数の個々の処理を秘匿できるようになる。
関数暗号化装置60は、事前に保持している、基本論理ゲートAND,OR,NAND,NORの組み合わせにより表現された関数から、基本論理ゲートF(x,y)を一つ選び、先ず暗号文の組(E(a1,r1),E(a2,r2),E(a3,r3),E(a4,r4))を生成する。ここで
20 制御装置
30 暗号文変換装置
40 復号装置
50 検証装置
60 関数暗号化装置
100 ネットワーク
Claims (11)
- ある有限体上で定義された楕円曲線の有理点からなる群をGとし、PをGの元とし、Gの位数を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),E(b,s)(=(X,Y)),(C,D)を入力として、1以上p以下の乱数uを生成し、暗号文(C′,D′)を
制御装置は、(C′,D′)をa×bの暗号文として出力することを特徴とする秘密計算方法。 - ある有限体上で定義された楕円曲線の有理点からなる群をGとし、PをGの元とし、Gの位数を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),E(b,s)(=(X,Y)),(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を生成する。ここで、eは1もしくは0である。
(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.証明者は以下に従って、(R 0 ,R 1 ,s,z)を求め、(R 0 ,R 1 ,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.検証者はs′=H(U0‖V0‖U1‖V1‖R0‖R1)を計算後、zU0=R0+s′V0,zU1=R1+s′V1が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
ことを特徴とする秘密計算方法。 - 請求項2記載の秘密計算方法において、
検証装置は、第1あるいは第2の暗号文変換装置を証明者、当該検証装置を検証者として、下記プロトコル1を用いて、(A′,B′),(A″,B″)が[数4]、[数5]の関係を満たしていることをゼロ知識証明し、
[プロトコル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を生成する。ここで、eは1もしくは0である。
(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)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
さらに、検証装置は、第1あるいは第2の暗号文変換装置を証明者、当該検証装置を検証者として、下記プロトコル3を用いて、(C′,D′)(C″,D″)が[数7]、[数8]の関係を満たしていることをゼロ知識証明する、
[プロトコル3]
1.Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、かつ、Pを底としたP0′の離敵対数とQを底としたQ0′の離散対数が等しい、
または、
2.Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しい、かつ、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を生成する。ここで、eは1もしくは0である。
(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-e P′ 1-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]
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を生成する。ここで、eは1もしくは0である。
(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)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
さらに、検証装置は、第1あるいは第2の暗号文変換装置を証明者、当該検証装置を検証者として、下記プロトコル4を用いて、(C′,D′),(C″,D″)が[数7]、[数8]の関係をみたしていることをゼロ知識証明する。
[プロトコル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)c′=H(P0‖Q0‖P1‖Q1‖P0′‖Q0′‖P1′‖Q1′)を計算する。
(b)1以上p以下の乱数r,r′,c1-eを生成する。ここで、eは1もしくは0である。
(c)RP,e=rP,RQ,e=rQ,RP,1-e=r′P−c1-e(c′P1-e+P′1-e),RQ,1-e=r′Q−c1-e(c′Q1-e+Q′1-e),ce=H(RP,0‖RQ,0‖RP,1‖RQ,1)−c1-e,ze=r+ce(c′s+t),z1-e=r′を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
2.検証者はc′=H(P0‖Q0‖P1‖Q1‖P0′‖Q0′‖P1′‖Q1′)を計算し、c0+c1=H(z0P−c0(c′P0′+P0′)‖z0Q−c0(c′Q0′+Q0′)‖z1P−c1(c′P1+P1′)‖z1Q−c1(c′Q1+Q1′))が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
ことを特徴とする秘密計算方法。 - 請求項1乃至6のいずれか1項に記載の秘密計算方法において、複数組の(Ai,Bi),(Xi,Yi)(i=1,2,…,n)を順次入力して、複数組のai×biの暗号文をパイプライン形式に順次計算することを特徴とする秘密計算方法。
- ネットワークで結ばれた、一つあるいは複数の暗号文生成装置、制御装置、暗号文変換装置および複数の復号装置を具備し、請求項1もしくは7に記載の秘密計算方法を実施することを特徴とする秘密計算システム。
- ネットワークで結ばれた、一つあるいは複数の暗号文生成装置、制御装置、複数の暗号文変換装置、複数の復号装置および検証装置を具備し、請求項2乃至7のいずれか1項に記載の秘密計算方法を実施することを特徴とする秘密計算システム。
- 請求項1記載の秘密計算方法をコンピュータに実行させるためのプログラム。
- 請求項2乃至6に記載の秘密計算方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004341766A JP4565628B2 (ja) | 2004-11-26 | 2004-11-26 | 秘密計算方法及びシステム、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004341766A JP4565628B2 (ja) | 2004-11-26 | 2004-11-26 | 秘密計算方法及びシステム、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006154033A JP2006154033A (ja) | 2006-06-15 |
JP4565628B2 true JP4565628B2 (ja) | 2010-10-20 |
Family
ID=36632454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004341766A Expired - Fee Related JP4565628B2 (ja) | 2004-11-26 | 2004-11-26 | 秘密計算方法及びシステム、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4565628B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4565631B2 (ja) * | 2005-01-20 | 2010-10-20 | 日本電信電話株式会社 | 秘密計算方法及びシステム、並びにプログラム |
JP4748663B2 (ja) * | 2005-01-24 | 2011-08-17 | 日本電信電話株式会社 | 秘密計算方法及びシステム、並びにプログラム |
JP4565632B2 (ja) * | 2005-01-24 | 2010-10-20 | 日本電信電話株式会社 | 秘密計算方法及びシステム、並びにプログラム |
JP4650933B2 (ja) * | 2005-01-24 | 2011-03-16 | 日本電信電話株式会社 | 秘密計算方法及びシステム |
JP4845107B2 (ja) * | 2006-07-12 | 2011-12-28 | 日本電信電話株式会社 | 知識証明検証システム |
JP5400705B2 (ja) * | 2010-02-24 | 2014-01-29 | 日本電信電話株式会社 | 秘密計算システム、秘密計算方法、計算装置 |
EP2688008B1 (en) | 2011-03-17 | 2016-05-04 | Fujitsu Limited | Biological information acquisition device, biological information comparison device, and program |
JP6885325B2 (ja) * | 2017-12-26 | 2021-06-16 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006203829A (ja) * | 2005-01-24 | 2006-08-03 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
JP2006201468A (ja) * | 2005-01-20 | 2006-08-03 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
JP2006229929A (ja) * | 2005-01-24 | 2006-08-31 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
JP2006227563A (ja) * | 2005-01-24 | 2006-08-31 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
JP2007510947A (ja) * | 2003-11-03 | 2007-04-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 多数当事者の効率的な乗算のための方法及び装置 |
-
2004
- 2004-11-26 JP JP2004341766A patent/JP4565628B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007510947A (ja) * | 2003-11-03 | 2007-04-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 多数当事者の効率的な乗算のための方法及び装置 |
JP2006201468A (ja) * | 2005-01-20 | 2006-08-03 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
JP2006203829A (ja) * | 2005-01-24 | 2006-08-03 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
JP2006229929A (ja) * | 2005-01-24 | 2006-08-31 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
JP2006227563A (ja) * | 2005-01-24 | 2006-08-31 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算方法及びシステム、並びにプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2006154033A (ja) | 2006-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Buchanan et al. | Will quantum computers be the end of public key encryption? | |
Zhou et al. | ExpSOS: Secure and verifiable outsourcing of exponentiation operations for mobile cloud computing | |
Libert et al. | A lattice-based group signature scheme with message-dependent opening | |
Abe et al. | Adaptively secure Feldman VSS and applications to universally-composable threshold cryptography | |
JP2006171711A (ja) | カースルズ−テイトペアリングに基づくデータの暗号処理 | |
EP2792098B1 (en) | Group encryption methods and devices | |
JP4973193B2 (ja) | 制限付ブラインド署名システム | |
WO2011148902A1 (ja) | 匿名認証システム、ユーザ装置、検証装置、匿名認証方法および匿名認証プログラム | |
US20150043735A1 (en) | Re-encrypted data verification program, re-encryption apparatus and re-encryption system | |
EP2846492A1 (en) | Cryptographic group signature methods and devices | |
JP5099003B2 (ja) | グループ署名システムおよび情報処理方法 | |
JP4835831B2 (ja) | 多数の入力から関数を計算する方法および装置 | |
US20150200917A1 (en) | Cooperation service providing system and server apparatus | |
JP2012150378A (ja) | プロキシ再暗号化システム、鍵生成装置、再暗号化装置、プロキシ再暗号化方法、プログラム | |
Papakonstantinou et al. | How powerful are the DDH hard groups? | |
JP4565631B2 (ja) | 秘密計算方法及びシステム、並びにプログラム | |
JP2007036364A (ja) | タイム装置、暗号化装置、復号化装置、暗号化/復号化システム | |
JP4565628B2 (ja) | 秘密計算方法及びシステム、並びにプログラム | |
JP2007114494A (ja) | 秘匿計算方法及び装置 | |
WO2010013699A1 (ja) | 署名システム | |
JP4650933B2 (ja) | 秘密計算方法及びシステム | |
Akiyama et al. | A public-key encryption scheme based on non-linear indeterminate equations | |
JP4791828B2 (ja) | グループ署名システム、装置、プログラム及び方法 | |
CN101321059B (zh) | 一种用于编码和译码数字消息的方法和系统 | |
JP4565632B2 (ja) | 秘密計算方法及びシステム、並びにプログラム |
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: 20100526 |
|
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: 4565628 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 |