JP4565631B2 - 秘密計算方法及びシステム、並びにプログラム - Google Patents

秘密計算方法及びシステム、並びにプログラム Download PDF

Info

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
Application number
JP2005012884A
Other languages
English (en)
Other versions
JP2006201468A (ja
Inventor
浩司 千田
剛 山本
幸太郎 鈴木
成憲 内山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005012884A priority Critical patent/JP4565631B2/ja
Publication of JP2006201468A publication Critical patent/JP2006201468A/ja
Application granted granted Critical
Publication of JP4565631B2 publication Critical patent/JP4565631B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報セキュリテイの技術分野に関し、特に暗号技術を応用し、関数への入力値を知ることなく、当該関数の計算および出力結果の取得を可能とする技術に関する。
従来、関数への入力値を知ることなく、当該関数の計算および出力結果の取得を可能とする手段としては、例えば、非特許文献1で提案されている技術(以降これをST04と略記する)がある。STO4を用いれば、ある(複数の)数値に対して、ある暗号アルゴリズムを用いて変換することで当該数値を秘匿し、当該変換された数値を入力として、ある複数の装置が計算に協力することで、入力の(元の)数値を漏らすことなく関数の出力結果を得ることができる。更に出力結果の正当性、すなわち各装置が正しい処理を行ったかどうかを検証することもできる。以降、関数への入力値を知ることなく、当該関数の計算および出力結果の取得が可能な方法を便宜上、秘密計算方法と呼ぶことにする。
STO4では、非特許文献1の中で明記している暗号アルゴリズムEに対して、a,b(a,bは0または1のどちらかであるとする)の暗号文E(a),E(b)が与えられれば、ある複数の装置が計算に協力することで、a,bを知らなくともa+bの暗号文E(a+b)、および暗号文E(a*b)を求めることができる。便宜上、ここで「*」は排他的論理和を意味するとする。「+」は論理和である。また、例えば非特許文献2で提案されている分散復号技術を用いることで、一定数以上の装置が復号計算に協力した暗号文(例えばE(a+b)やE(a*b))に限り復号できる。
B.Schoenmakers and P.Tuyls,"Practical Two‐Party Computation based on the Conditional Gates,"ASIACRYPT 2004,Dec.2004. T.R.Pedersen,"A threshold cryptosystem without a trusted party,"Advances in Crytology−EUROCRYPT ’91,LNCS 547,pp.522−526,Springer−Verlag,1991.
0または1からなる入力の数値が暗号化された状態のまま、当該数値の加算および排他的論理和の結果(の暗号文)を求めることができれば、当該数値の論理和(OR)および論理積(AND)の結果(の暗号文)を求めることができる。すなわち、理論的には、入力の数値が暗号化された状態のまま多くの関数を計算できることになる。しかし、ST04では、E(a),E(b)からE(a*b)を計算するために、一旦E(a)をある変換規則に基づいてE(a′)に変換する必要がある。ここでa′=2a−1となる。
本発明が解決しようとする一番目の課題は、上記変換を行うことなくE(a*b)を計算できるようにし、これにより計算量を削減しようとするものである。
そして、本発明が解決しようとする二番目の課題は、並列計算処理を従来よりも効率化することで、全体の処理時間を削減しようとするものである。ST04では、各装置が順序的に処理を行う箇所があり、これによりある装置が待ち状態になる場合があると考えられる。本発明では、当該待ち状態が少なくするような方法を新たに与えることで、全体の処理時間の削減効果を狙っている。
また、一番目の課題に対する解決方法に付随した話として、ST04では、各装置が正しく処理を行ったことを証明する技術を用いているが、当該技術はその安全性が計算量的仮定に基づいており、新しい攻撃アルゴリズムが発見されることで、各装置が持つ秘密情報のゼロ知識性や健全性(正しくない処理を行った場合は処理正当性を証明できないような性質)が失われてしまう可能性がある。したがって、各装置が正しく処理を行ったことを証明する別技術を見つけることは、安全性の観点から、とても意義深いといえる。
そこで本発明が解決しようとする三番目の課題は、一番目の課題に対する解決方法に対して、各装置が正しく処理を行ったことを証明するために、ST04で提案されている技術とは別の技術を提案することである。
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以下の乱数である。
復号処理はxAを計算すれば良く、これにより
Figure 0004565631
が成り立つことから、秘密鍵xを用いることで容易にE(a,r)を復号できる。するとa,b∈{0,1}の暗号文E(a,r),E(b,s)からa+bの暗号文を求めることは容易である。すなわち、E(a,r)+E(b,s)=((r+s)P,(r+a+s+b)Q)が成り立つことから、この操作によりa+bの暗号文E(a+b,r+s)=E(a,r)+E(b,s)が得られる。
次に、E(a,r),E(b,s)からa*bの暗号文を求める方法の概略を説明する。これが本発明の主要部分となる。ここで、b,b∈{0,1}の暗号文E(a,r)(=(A,B),E(b,s)(=(X,Y)は制御装置へ事前に与えられているとする。
先ず、暗号文変換装置が制御装置より(G,p,P,Q),E(a,r)(=(A,B))を入力として以下の処理を行う。
1.ランダムビットeおよび1以上p以下の乱数tを生成する。
2.以下に従って(A′,B′)を求め、それを複数の復号装置に送信する。
Figure 0004565631
次に、複数の復号装置が(A′,B′)入力として分散復号を行い、制御装置に送信することで、制御装置は(A′,B′)の復号結果cを得る(このときc=a*e(排他的論理和)が成り立つ)。
制御装置は、当該復号結果c∈{0,1}について以下の処理を行う。
1.1以上p以下の乱数wを生成する。
2.以下に従って(C,D)を求め、当該暗号文を暗号文変換装置に送信する。
Figure 0004565631
このとき(C,D)の復号結果はa*b*eとなる。
暗号文変換装置は(G,p,P,Q),(C,D)を入力として、以下の処理を行う。
1.1以上p以下の乱数uを生成する。
2.以下に従って(C′,D′)を求め、それを制御装置に送信する。
Figure 0004565631
(C′,D′)の復号結果c′は、c′=a*bが成り立つことから、上記の操作により制御装置はa*bの暗号文、すなわち(C′,D′)を得ることができる。
本発明の秘密計算方法によれば、従来技術のように、E(a*b)を計算するためにE(a)をE(a′)(a′=2a−1)に変換する必要はないため、計算時間の削減が期待できる。また、従来技術では、本発明で(A,B)から(A′,B′)を計算する処理(これを[処理1]とする)、および(C,D)から(C′,D′)を計算する処理(これを[処理2]とする)に相当する、同程度の計算量の処理部分(これらをそれぞれ[処理3]、[処理4]とする)が存在するが、それを従来技術では同時期に計算する必要がある。しかし本発明では当該処理が同時期ではないため、例えば装置Aが[処理1]を終えれば、直ちに当該計算結果を装置Bに送信し、装置Bはその後直ちに当該計算結果を入力とした処理を行うことができる。また装置Aは[処理1]を終えれば、別の入力に対して直ちに処理を行うこともできる。一方従来技術では、[処理3]、[処理4]を終えてから当該計算結果を装置Bに送信することになるため、装置Bの待ち時間が本発明よりも長くなる場合がある。これにより本発明は並列処理の効率化が期待でき、全体の処理時間の削減効果が期待できる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
[第1の実施の形態]
第1の実施の形態におけるシステム構成は、図1に示すように、同一のネットワーク100で結ばれた、10の暗号文生成装置1,…,N(Nは適当な自然数)、制御装置20、暗号文変換装置30、および40の復号装置1,2からなる。ここで復号装置を複数に設定しているのは、復号装置が単一であれば、当該復号装置は入力の数値の暗号文も復号できる権限を持つことになり、明らかに本発明が取り上げている課題を解決できないが、本実施の形態のように復号装置を複数に設定すれば、分散復号技術を用いて、それら復号装置が結託しない限りは入力の数値を知ることが困難とできるためである。なお、本実施の形態では、簡単に復号装置の数は2としたが、一般に2以上いくつでもよい。
はじめに本発明で用いる暗号方式について、図2の処理シーケンス図を参照して説明する。
制御装置20は、有限体および楕円曲線を生成するためのパラメータを与えることで有限体および楕円曲線をそれぞれ一つずつ決定し(S101)、更に当該有限体上で定義された当該楕円曲線の有理点からなる群Gを決定する(S102)。また、Gの元を一つ選び、これをPとする(S103)。次に、Pの位数pを計算する(S104)。そして、(G,p,P)の組を復号装置40(i)(i=1,2)に送信する。
復号装置40(i)は、(G,p,P)を入力として、1以上p以下の乱数xiを生成後、Qi=xiPを計算し、Qiを制御装置20に送信する(S105〜S108)。ここでは、復号装置40(1)は乱数x1を生成し(S105)、Q1=x1Pを計算して(S106)、当該Q1を制御装置20に送信し、また、復号装置40(2)は乱数x2を生成し(S107)、Q2=x2Pを計算して(S108)、Qを制御装置20に送信する。
制御装置20は、Q=Q1+Q2を計算し(S109)、(G,p,P,Q)を公開する(S110)。
以上の準備の下、先ず本発明で用いる暗号化処理について説明する。
平文a∈{0,1}を暗号化する暗号関数Eを
E(a,r)=(A,B)=(rP,(r+a)Q)
と定義する。ここでrは1以上p以下の乱数である。
次に復号処理について説明する。
いま、x=x1+x2とおくと、xAを計算すればE(a,r)を復号できる。すなわち、
Figure 0004565631
が成り立つことから、xA=Bであれば復号結果を“0”とし、xA=B−Qであれば“1”とする。なお当該計算に関わる装置が全て正しい処理を行えばxA=BまたはxA=B−Qの何れかが成り立つことは明らかである。したがって秘密鍵xを用いることで容易にE(a,r)を復号できる。ただし実際の復号手順としては、復号装置i(i=1,2)がxiAを計算、公開し、その後、制御装置20がxA=x1A+x2Aを求め、復号結果を得ることになる。
次に具体的な秘密計算方法として、基本論理ゲート(NOT,AND,OR,NAND,NOR)に対する秘密計算方法の手順について説明する。ここで基本論理ゲートヘの入力となるa,b∈{0,1}の暗号文E(a,r),E(b,s)は、上記の暗号化処理方法を用いて暗号文生成装置10(1),…,(N)の何れかによって生成されたものであり、当該暗号文は制御装置20へ事前に与えられていると仮定する。なおここではどの暗号文生成装置10がE(a,r),E(b,s)を生成したかについては言及しないが、実際、当該二つの暗号文は同一の装置によって生成される必要はなく、一般に用途によって異なると考えられる。
基本論理ゲート(NOT、AND,OR、NAND,NOR)を表す論理関数は、排他的論理和(*)、加減算、および定数倍を用いてそれぞれ以下とできる。
Figure 0004565631
先ずNOTの処理について説明する。この処理は単純で、制御装置20は,E(a,r)(=(A,B))を入力とし、1−aの暗号文(A′,B′)=(−A,−B+Q)を計算し、当該暗号文を取得すれば良い。ここで、
Figure 0004565631
であるから、(A′,B′)=E(1−a,−r)が成り立ち、(A′,B′)は1−aの暗号文、すなわちFNOT(a)の暗号文となることが分かる。したがって制御装置は、aの暗号文E(a,r)から、aを知ることなくFNOT(a)の暗号文を計算することができ、更には当該暗号文を取得することができる。
次に定数倍について説明する。この処理も単純で、制御装置20は、定数kおよびE(a,r)(=(A,B))を入力とし、kaの暗号文(A′,B′)=(kA,kB)を計算し、当該暗号文を取得すれば良い。ここで、
Figure 0004565631
であるから、(A′,B′)=E(ka,kr)が成り立ち、(A′,B′)はkaの暗号文となることが分かる。したがって制御装置20は、定数k、およびaの暗号文E(a,r)から、aを知ることなくkaの暗号文を計算することができ、更には当該暗号文を取得することができる。
次に排他的論理和の処理について、図3の処理シーケンス図を参照して説明する。これが本実施の形態の主要部分となる。
各装置は(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)を保持しているとする。
暗号文変換装置30は(E(a,r)(=(A,B))を入力とし、以下の処理を行う。
1.ランダムビットeおよび1以上p以下の乱数tを生成する(S111)。
2.以下に従って暗号文(A′,B′)を計算する(S112)。
Figure 0004565631
暗号文変換装置30は、暗号文(A′,B′)を復号装置40(1)、復号装置40(2)に送信する。
復号装置40(1)は(A′,B′)を入力とし、x1A′を計算し、それを制御装置20に送信する(S113)。同様に、復号装置40(2)は(A′,B′)を入力とし、x2A′を計算し、それを制御装置20に送信する(S114)。
制御装置20はxA′=x1A′+x2A′を計算する(S115)。そして、xA′=B′であれば(A′,B′)の復号結果cを“0”、それ以外(xA′=B′−Q)であれば“1”とする(S116〜S118)。その後、当該復号結果c∈{0,1}について以下の処理を行う。
1.1以上p以下の乱数wを生成する(S119)。
2.以下に従って暗号文(C,D)を計算する(S120)。
Figure 0004565631
そして、制御装置20は、(C,D)を暗号文変換置装置30に送信する。
なお、上記の(A′,B′)から復号結果cを求める処理は分散復号とよばれる処理であるが、先の[非特許文献2]によれば、k(>2)台の復号装置が復号処理に協力した場合に限り復号が可能であり、また、より一般的にn台中、任意のk台の復号装置が復号処理に協力した場合に限り復号が可能とすることもできる(ここでn,kは任意数の設定が可能な値)。しかしここでは、その処理手順については[非特許文献2]からも明らかであるため説明を省略する。
ここで当該復号結果cについて、c=a*e(排他的論理和)が成り立つことを確認しておく。e=0であれば、(A′,B′)=((r+t)P,(r+a+t)Q)であるから、(A′,B′)=E(a,r+t)が成り立つ。すなわちc=a=a*0が成り立つ。一方e=1であれば、(A′,B′)=((−r+t)P,(−r−a+t+1)Q)=((t−r)P,((t−r)+(1−a))Q)であるから、(A′,B′)=E(1−a,t−r)が成り立つ。すなわちc=1−a=a*1が成り立つ。したがって、c=a*eが成り立つことが分かる。
そして同様の説明により、(C,D)はb*cの暗号文となることも分かる。すなわち、c=0であればb*c=bであり、かつ(C,D)=(X,Y)+(wP,wQ)=E(b,s+w)が成り立つ。一方、c=1であればb*c=1−bであり、かつ(C,D)=(−X,−Y)+(wP,(w+1)Q)=E(−b,−s+w)が成り立つ。したがって、(C,D)はb*cの暗号文である。
次に暗号文変換装置30は(C,D)を入力として、以下の処理を行う。
1.1以上p以下の乱数uを生成する(S121)。
2.以下に従って暗号文(C′,D′)を計算する(S122)。
Figure 0004565631
暗号文変換装置30は、当該暗号文(C′,D′)を制御装置20に送信する。
ここで、(C′,D′)の復号結果c′は、c′=b*c*e=a*bが成り立つことから、上記の処理により、制御装置20はa,bを知ることなく、a*bの暗号文、すなわち(C′,D′)を得ることができる。制御装置20は、必要に応じ(C′,D′)を出力する(S123)。
ここで当該復号結果c′について、c′=a*bが成り立つことを確認しておく。e=0であれば、(C′,D′)=(C+uP,D+uQ)であるから、(C′,D′)の復号結果と(C,D)の復号結果は明らかに等しい。すなわちc′=b*c=b*(a*e)b=a*bが成り立つ。一方e=1であれば、(C′,D′)=(−C+uP,−D+(u+1)Q)であるから、c=0であれば、(C′,D′)=((−s−w+u)P,(−s−b−w+u+1)Q)となり、c′=1−b=b*1を得る。これに対して、いまc=0,e=1であるから、a=1となり、c′=b=abが成り立つ。また、c=1であれば(C′,D′)=((−s−w+u)P,(s+b−w+u)Q)となり、c′=bを得る。これに対して、いまc=e=1であるから、a=0となり、c′=a*bが成り立つ。したがって(C′,D′)はa*bの暗号文となることが分かる。
以上より、制御装置20は、暗号文変換装置30および復号装置40(1),(2)の協力により、aの暗号文E(a,r)およびbの暗号文E(b,s)から、a,bを知ることなくa*bの暗号文を計算することができ、更には当該暗号文を取得することができる。
最後にAND,OR,NAND,NORの処理についてまとめて説明する。これらの処理は排他的論理和の処理を用いれば後は単純で、制御装置20はE(a,r)(=(A,B)),E(b,s)(=(X,Y)),(C′,D′)を入力とし(ここで(C′,D′)はabの暗号文)、それぞれ
Figure 0004565631
を計算し、当該暗号文を取得すれば良い。ここで今までの説明からEAND,EOR,ENAND,ENORはそれぞれFAND(a,b),FOR(a,b),FNAND(a,b),FNOR(a,b)の暗号文となることは明らかである。したがって制御装置20は、暗号文変換装置30および復号装置40(1),(2)の協力により、aの暗号文E(a,r)およびbの暗号文E(b,s)から、a,bを知ることなく、FAND(a,b),FOR(a,b),FNAND(a,b),FNOR(a,b)の暗号文を計算することができ、更には当該暗号文を取得することができる。
以上、基本論理ゲートに対する秘密計算方法の手順について説明したが、各装置が、E(a,r),E(b,s)からa,bを求めることが困難であれば、いずれかの装置の結託が無い限りは、基本論理ゲートに対する秘密計算方法を実行した場合においてもa,bは保護できる。
[第2の実施の形態]
第1の実施の形態では、暗号文変換装置または復号装置が不正な処理を行うことで容易に結果を改ざんすることができてしまう。また、制御装置と暗号文変換装置が不正結託すれば、当該装置はa,bを知り得てしまう(例えばc=a*eを知る制御装置とeを知る暗号文変換装置が結託すれば、容易にaが求まることが分かる)。第2の実施の形態は、上記の問題点を解決する方法の一例を提案するものである。
第2の実施の形態におけるシステム構成は、図4に示すように、同一のネットワーク100で結ばれた、10の暗号文生成装置(1),…,(N)、制御装置20、30の暗号文変換装置(1),(2)、40の復号装置(1),(2)、および検証装置50からなる。このように、第2の実施形態では不正結託による耐性を高めるために暗号文変換装置30を複数に設定しており、更に暗号文変換装置30および復号装置40が不正処理をした場合にそれが検出できるように検証装置50を必要とする。なお、暗号文変換装置は、その数を増加すればするほど、不正結託による耐性を高めることができるが、ここでは説明の簡単化のために2とする。
第1の実施の形態における基本論理ゲートに対する秘密計算方法では、排他的論理和を計算する処理以外、すなわちa,bの暗号文E(a,r)、E(b,s)からa*bの暗号文(C′,D′)を求める処理以外は、秘密鍵や乱数などの秘密情報を必要とせず一意に結果が求まる。言い換えれば、排他的論理和を計算する処理以外は任意の装置が同じ処理を再現することが可能であり、これにより特別な検証処理は不要となる。したがって、ここでは、第1の実施の形態で示した、排他的論理和を計算する処理における、暗号文変換装置および復号装置の処理正当性を検証することが可能な秘密計算方法を説明する。
図5(A)〜(D)に第2の実施の形態における処理シーケンス図を示す。ここでも、各装置は(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(1)へ送信する。
暗号文変換装置30(1)はE(a,r)(=(A,B))を入力とし、以下の処理を行う。
1.ランダムビットe1および1以上p以下の乱数t1を生成する(S201)。
2.以下の[数13]に従って暗号文(A′,B′)を求め、当該暗号文を暗号文変換装置30(2)および検証装置50に送信する(S202)。
Figure 0004565631
3.(A′,B′)が[数13]の関係を満たしていることを検証装置50にゼロ知識証明する(S203〜S205)。
ゼロ知識証明は、文献「R.Cramer,I.Damgard and B.Schoenmakers,“Proofs of partialknowledge and Simplified design of withss hiding protocols,”Acvances in Cryptology−CRYPTO ′94」LNCS 839,pp.174−187,Springer−Verlag,1994.」(以下、非特許文献3と称す)および文献「D.L.Chaum and T.P.Pedersen“Wallet databases with observers,”Acvances in Cryptology−CRYPTO ’92,LNCS 740,pp.80−105,Springer−Verlag,1993」(以下、非特許文献4と称す)の方法を組み合わせて行うとする。
(A′,B′)が[数13]の関係を満たすことを示すためには、実際には(A′,B′)=(A+t1P,B+t1Q)または(A′,B′)=(−A+t1P,−B+(t1+1)Q)が成り立つことを示せば良い。ここではその方法、すなわち[非特許文献3]および[非特許文献4]の方法を組み合わせたゼロ知識証明について、以下で与える[プロトコル1]を用いて具体的に説明する。なお[プロトコル1]は、Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、あるいは、Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しいことを、ゼロ知識証明技術を用いて証明するプロトコルである。
[プロトコル1]
入力:((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-e1-e,RQ,1-e=r′Q−c1-e1-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−c00‖z0Q−c00‖z1P−c11‖z1Q−c11)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
すると、暗号文変換装置30(1)は、[数13]に(A,B)を入力した結果が(A′,B′)であることを[プロトコル1]を用いて証明することができる。すなわち[プロトコル1]において、((G,p,P,Q),(P0,Q0),(P1,Q1))←((G,p,P,Q),(A′−A,B′−B),(A′+A,B′+B−Q)),(e,t)←(e1,t1)と代入すれば良い。
ここでは、上記[プロトコル1]内の証明者、検証者はそれぞれ暗号文変換装置30(1)、検証装置50となる。暗号文変換装置30(1)は処理S203、S204により(z0,z1,c0,c1)を求めて、それを検証装置50に送信する。検証装置50はc0+c1=H(z0P−c00‖z0Q−c00‖z1P−c11‖z1Q−c11)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する(S205)。
ここでは、検証装置50は暗号文変換装置30(1)の当該証明事項を受理したとして話を進める。
検証装置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)。
Figure 0004565631
3.(A″,B″)が[数14]の関係を満たしていることを検証装置50にゼロ知識証明する(S208〜S210)。
ここで、当該ゼロ知識証明は、先の[プロトコル1]において、((G,p,P,Q),(P0,Q0),(P1,Q1))←((G,p,P,Q),(A″−A′,B″−B′),(A′+A″,B′+B″−Q)),(e,t)←(e2,t2)と代入すれば良い。
ここでは、検証装置50は暗号文変換装置30(2)の当該証明事項を受理したとして話を進める。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを復号装置40(1),(2)に伝える。これを受けて、復号装置40(1)は(A″,B″)を入力とし、x1A″を計算し、それを制御装置20に送信する(S211)。同様に、復号装置40(2)は(A″,B″)を入力とし、x2A″を計算し、それを制御装置20に送信する(S212)。
その後、復号装置40(1),(2)を証明者、検証装置50を検証者として、当該送信情報x1A″,x2A″が正しい計算結果であることをゼロ知識非対話証明技術を用いて証明する(S213〜S222)。
当該証明方法は、具体的にはPを底としたxiPの離散対数、およびA″を底としたxiA″の離散対数が等しい(すなわち、ともにxiとなる)ことを非対話で証明する方法であり、先のゼロ知識証明の基本的な技術により実現可能である。以下にプロトコル例(プトロコル2とする)を示す。
[プロトコル2]
入力:(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,1′=zU1+sV1を計算後、s=H(U0‖V0‖U1‖V1‖R0′‖R1′)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
ここでは、復号装置40(1)は処理S213〜S216により(s,z)を求め、これを検証装置50に送信し、検証装置50が検証する(S217)。同様に、復号装置40(2)は処理S218〜S221により(s,z)を求め、これを検証装置50に送信し、検証装置50が検証する(S222)。
検証装置50は復号装置40(1),(2)の当該証明事項を受理したとして話を進める。検証装置50は、送信情報x1A″,x2A″が正しいことを制御装置20に伝える。
制御装置20は、x1A″,x2A″が共に正しい計算結果である場合、xA″=x1A″+x2A″を計算し(S223)、xA″=B″であれば(A″,B″)の復号結果cを“0”、それ以外(xA″=B″−Q)であれば“1”とする(S224〜S226)。その後、当該復号結果c∈{0,1}について、[数15]に従って暗号文(C,D)を求め(S227)、(C,D)を暗号文変換装置30(2)と検証装置50に送信する。
Figure 0004565631
ここで当該復号結果cについて、c=a*e1*e2(排他的論理和)が成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。なお、処理が冗長になるが、第1の実施の形態と同様に、1以上p以下の乱数wを生成し、
Figure 0004565631
となるように(C,D)を計算してもよい。
暗号文変換装置30(2)は(C,D),(A′,B′),(A″,B″),t2,e2を入力として、先ず以下の処理を行う。
1.1以上p以下の乱数uを生成する(S228)。
2.以下の[数17]に従って暗号文(C′,D′)を求め(S229)、当該暗号文を暗号文変換装置30(1)および検証装置50に送信する。
Figure 0004565631
3.(C′,D′)が[数17]を満たしていることを検証装置50にゼロ知識証明する(S230〜S232)。
ここで、上記ゼロ知識証明の具体的な方法を説明する。いま(C′,D′)が[数17]の関係を満たしていることを示すためには、(C′,D′)=(C+u2P,D+u2Q)または(C′,D′)=(−C+u2P,−D+(u2+1)Q)が成り立つことを示すだけでは不十分であり、
「(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)」
であることを示すのと等しい。
ここで、[証明1]は既に証明済みであるため、残りの[証明2]、[証明3]、[証明4]を証明すれば良い。これは[プロトコル1]を3回実行することで実現可能であり、具体的には、[証明2]、[証明3]、[証明4]を証明するためにそれぞれ
((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 ),
と代入すれば良い。
暗号文変換装置30(2)および検証装置50は、処理S230〜S232を3回(i=1,2,3)実行して上記[証明2]、[証明3]、[証明4]を証明する。
ここでは、検証装置50は暗号文変換装置30(2)の当該証明事項を受理したとして話を進める。すると(C′,D′)の復号結果c′について、c′=a*e1*bが成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを暗号文変換装置30(1)に伝える。これを受けて暗号文変換装置30(1)は(C′,D′),(A′,B′),(A″,B″),t1,e1を入力とし、先ず以下の処理を行う。
1.1以上p以下の乱数u1を生成する(S233)。
2.以下の[数18]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置110および検証装置50に送信する(S234)。
Figure 0004565631
3.(C″,D″)が[数18]の関係を満たしていることを検証装置50にゼロ知識証明する(S235〜S237)。
ここで(C″,D″)が[数18]の関係を満たしていることを示す方法は、前述の暗号文変換装置30(2)での説明から明らかであるため省略する。
ここでは、検証装置50は暗号文変換装置30(1)の当該証明事項を受理したとして話を進める。すると(C″,D″)の復号結果c″について、c″=a*bが成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したことを制御装置20に伝える。これを受けて制御装置20は、暗号文変換装置30(1)より先に受信した(C″,D″)をa*bの暗号文として認め、必要に応じて出力する(S238)。
以上より、制御装置20は、暗号文変換装置30(1),(2)、復号装置40(1),(2)、および検証装置50の協力により、aの暗号文E(a,r)およびbの暗号文E(b,s)から、a,bを知ることなくa*bの暗号文を計算することができ、更には当該暗号文を取得することができる。ここでa,bの秘匿性は、暗号文変換装置30(1),(2)の生成したランダムビットe1,e2の秘匿性に依存する。すなわち本実施の形態で示したプロトコルからe1およびe2を知ることが困難であれば、少なくとも暗号文変換装置30(1),(2)の不正結託がない限りはa,bを知ることが困難となる。
なお、図1に示した第1の実施の形態のシステム構成に検証装置50を追加すれば、本第2の実施の形態同様に、暗号文変換装置30や復号装置40(1),(2)の処理正当性を検出することが可能である。
また、本実施の形態では暗号文変換装置が2台の例を挙げたが、本プロトコルでは暗号文変換装置を3台以上に拡張することも容易である(ただしその方法は明らかであるため省略する)。そして当該拡張により暗号文変換装置の結託に対する耐性が高まる。これは言い換えればa,bの秘匿性を効果的に高めることができる。
なお、上記説明では、暗号文変換装置30(2)が(C′,D′)を計算し、暗号文変換装置30(1)が(C″,D″)を計算するとしたが、(C′,D′)を暗号文変換装置30(1)が計算し、(C″,D″)を暗号文変換装置30(2)が計算しても結果は同等である。
[第3の実施の形態]
これは、第1の実施の形態における課題について、第2の実施の形態とは別の方法(プロトコル)で解決するものである。
第3の実施の形態におけるシステム構成は、第2の実施の形態と同様となる。すなわち、図4に示すように同一のネットワーク100で結ばれた、暗号文生成装置10(1),…,(N)、制御装置20、暗号文変換装置30(1),(2)、復号装置40(1),(2)、および検証装置50からなる。
ここでは第2の実施の形態同様、排他的論理和を計算する処理における、暗号文変換装置および復号装置の処理正当性を検証することが可能な方法を説明する。
まず、制御装置は、E(a,r)(=(A,B))を暗号分変換装置30(1)へ送信する。暗号文変換装置30(1)は、(G,p,P,Q),E(a,r)(=(A,B))を入力とし、第2の実施の形態同様、以下の処理を行う。
1.ランダムビットe1および1以上p以下の乱数t1を生成する。
2.以下の[数19]に従って暗号文(A′,B′)を求め、当該暗号文を暗号文変換装置30(2)および検証装置50に送信する。
Figure 0004565631
3.(A′,B′)が[数19]の関係を満たしていることを検証装置にゼロ知識証明する。
当該ゼロ知識証明の方法は、第2の実施の形態と同様であるため、説明を省略する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したとして話を進める。
検証装置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)に送信する。
Figure 0004565631
3.(A″,B″)が[数20]の関係を満たしていることを検証装置50にゼロ知識証明する。
当該ゼロ知識証明の方法は、第2の実施の形態と同様であるため、説明を省略する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したとして話を進める。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを復号装置40(1),(2)に伝える。これを受けて復号装置40(1))は(A″,B″)を入力とし、x1A′を計算し、それを制御装置20に送信する。同様に、復号装置40(2)は(A″,B″)を入力とし、x2A″を計算し、それを制御装置20に送信する。また当該送信情報が正しい計算結果であることをゼロ知識非対話証明技術を用いて検証装置50に証明する。当該証明方法は、第2の実施の形態と同様であるため、説明を省略する。
検証装置50は復号装置40(1),(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)に送信する。
Figure 0004565631
ここで、当該復号結果cについて、c=a*e1*e2(排他的論理和)が成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。
暗号文変換装置30(2)は(C,D)(A′,B′),(A″,B″),t2,e2を入力として、先ず第2の実施の形態同様、以下の処理を行う。
1.1以上p以下の乱数u2を生成する。
2.以下の[数22]に従って暗号文(C′,D′)を求め、当該暗号文を暗号文変換装置30(1)および検証装置50に送信する。
Figure 0004565631
3.(C′,D′)が[数22]を満たしていることを検証装置50にゼロ知識証明する。
第2の実施の形態で説明したように、いま(C′,D′)が[数22]の関係を満たしていることを示すためには、(C′,D′)=(C+u2P,D+u2Q)または(C′,D′)=(−C+u2P,−D+(u2+1)Q)が成り立つことを示すだけでは不十分であり、
「(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)」
であることを示さなければならない。
これを示すために、本実施の形態では、第2の実施の形態で示した方法とは異なる方法を用いる。これについて、以下で与える[プロトコル3]を用いて具体的に説明する。なお、[プロトコル3]は、
1.Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、かつ、Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しい、
または、
2.Pを底としたP0′の離散対数とQを底としたQ0′の離散対数が等しい、かつ、Pを底としたP1′の離散対数とQを底としたQ1′の離散対数が等しい、
ことをゼロ知識証明技術を用いて証明するプロトコルである。
[プロトコル3]
入力:((G,p,P,Q),(P0,0),(P1,1),(P0,0′),(P1,1′)
証明者の秘密情報:(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-e1-e,RQ,1-e=r′Q−c1-e1-e,R′P,e=r″P,R′Q,e=r″Q,R′P,1-e=r″′P−c1-e1-e,R′Q,1-e=r″′Q−c1-eQ′1-e,
e=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−c00‖z0Q−c00‖z1P−c11‖z1Q−c11‖z0′P−c00′‖z0′Q−c00′‖z1′P−c11′‖z1′Q−c1Q′1)が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
すると、暗号文変換装置30(2)は、[数22]に(C,D)を入力した結果が(C′,D′)であることを[プロトコル3]を用いて証明することができる。すなわち、[プロトコル3]において、((G,p,P,Q),(P0,Q0),(P1,Q1),(P0′,Q0′),(P1′,Q1′),(e,t,t′))←((G,p,P,Q),(A″−A′,B″−B′),(A′+A″,B′+B″−Q),(C′−C,D′−D),(C+C′,D+D′−Q))(e2,2,2))と代入すればよい。
検証装置50(検証者)は暗号文変換装置30(2)(証明者)の当該証明事項を受理したとして話を進める。すると(C′,D′)の復号結果c′について、c′=a*e1*bが成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを暗号文変換装置30(1)に伝える。これを受けて暗号文変換装置1は、暗号分変換装置30(2)より先に受信した(C′,D′)(A′,B′),(A″,B″),t1,e1を入力とし、まず第2の実施の形態同様、以下の処理を行う。
1.1以上p以下の乱数u1を生成する。
2.以下の[数23]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置20および検証装置50に送信する。
Figure 0004565631
3.(C″,D″)が[数23]の関係を満たしていることを検証装置にゼロ知識証明する。
ここで(C″,D″)が[数23]の関係を満たしていることを示す方法は、前述の暗号文変換装置30(2)での説明から明らかであるため省略する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したとして話を進める。すると(C″,D″)の復号結果c″について、c″=a*bが成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したことを制御装置20に伝える。これを受けて制御装置20は、暗号文変換装置30(1)より先に受信した(C″,D″)をa*bの暗号文として認める。
以上より、制御装置20は、暗号文変換装置30(1),(2)、復号装置40(1),(2)、および検証装置50の協力により、aの暗号文E(a.r)およびbの暗号文E(b,s)から、a,bを知ることなくa*bの暗号文を計算することができ、更には当該暗号文を取得することができた。ここでa,bの秘匿性は、暗号文変換装置30(1),(2)の生成したランダムビットe1,2の秘匿性に依存する。すなわち本実施の形態で示したプロトコルからe1およびe2を知ることが困難であれば、少なくとも暗号文変換装置30(1),(2)の不正結託がない限りはa,bを知ることが困難となる。また、本実施の形態では暗号文変換装置が2台の例を挙げたが、本プロトコルでは暗号文変換装置を3台以上に拡張することも容易である(ただしその方法は明らかであるため省略する)。そして当該拡張により暗号文変換装置の結託に対する耐性が高まる。これは言い換えればa,bの秘匿性を効果的に高めることができる。
なお、図1に示した第1の実施の形態のシステム構成に検証装置50を追加すれば、本第3の実施の形態同様に、暗号文変換装置30や復号装置40(1),(2)の処理正当性を検出することが可能である。
[第4の実施の形態]
これは、第1の実施の形態における課題について、第2の実施の形態や第3の実施の形態とは更に別の方法(プロトコル)で解決するものである。
第4の実施の形態におけるシステム構成は、第2の実施の形態と同様となる。すなわち、図4に示すように同一のネットワーク100で結ばれた、暗号文生成装置10(1),…,(N)、制御装置20、暗号文変換装置30(1),(2)、復号装置40(1),(2)、および検証装置50からなる。
ここでは第2の実施の形態や第3の実施の形態同様、排他的論理和を計算する処理における、暗号文変換装置および復号装置の処理正当性を検証することが可能な方法を説明する。
まず、制御装置20は、E(a,r)1=(A,B)を暗号文変換装置30(1)へ送信する。暗号文変換装置30(1)は、E(a,r)(=(A,B))を入力とし、第2の実施の形態同様、以下の処理を行う。
1.ランダムビットe1および1以上p以下の乱数t1を生成する。
2.以下の[数24]に従って暗号文(A′,B′)を求め、当該暗号文を暗号文変換装置30(2)および検証装置50に送信する。
Figure 0004565631
3.(A′,B′)が[数24]の関係を満たしていることを検証装置50にゼロ知識証明する。
当該ゼロ知識証明の方法は、第2の実施の形態と同様であるため、説明を省略する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したとして話を進める。
検証装置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)に送信する。
Figure 0004565631
3.(A″,B″)が[数25]の関係を満たしていることを検証装置50にゼロ知識証する。
当該ゼロ知識証明の方法は、第2の実施の形態と同様であるため、説明を省略する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したとして話を進める。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを復号装置40(1),(2)に伝える。これを受けて復号装置40(1)は(A″,B″)を入力とし、x1A′を計算し、それを制御装置20に送信する。同様に、復号装置40(2)は(A″,B″)を入力とし、x2A″を計算し、それを制御装置20に送信する。また当該送信情報が正しい計算結果であることをゼロ知識非対話証明技術を用いて検証装置50に証明する。当該証明方法は、第2の実施の形態と同様であるため、説明を省略する。
検証装置50は復号装置40(1),(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)に送信する。
Figure 0004565631
ここで、当該復号結果cについて、c=a*e1*e2(排他的論理和)が成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。
暗号文変換装置30(2)はE(b,s)(=(X,Y)),(C,D),(A′,B′),(A″,B″),t2,e2を入力として、まず、第2の実施の形態同様、以下の処理を行う。
1.1以上p以下の乱数u2を生成する。
2.以下の[数27]に従って暗号文(C′,D′)を求め、当該暗号文を暗号文変換装置30(1)および検証装置50に送信する。
Figure 0004565631
3.(C′,D′)が[数27]を満たしていることを検証装置50にゼロ知識証明する。
第2の実施の形態で説明したように、いま(C′,D′)が[数27]の関係を満たしていることを示すためには、(C′,D′)=(C+u2P,D+u2Q)または(C′,D′)=(−C+u2P,−D+(u2+1)Q)が成り立つことを示すだけでは不十分であり、
「(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)」
であることを示さなければならない。
これを示すために、本実施の形態では、第2の実施の形態や第3の実施の形態で示した方法とは異なる方法を用いる。これについて、以下で与える[プロトコル4]を用いて具体的に説明する。なお、[プロトコル4]は、
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′))が成り立つかどうか検証し、成り立つときのみ当該証明事項を受理する。
すると、暗号文変換装置30(2)は、[数27]を(C,D)を入力した結果が(C′,D′)であることを[プロトコル4]を用いて証明することができる。すなわち、[プロトコル4]において、((G,p,P,Q),(P0,Q0),(P1,Q1),(P0′,Q0′),(P1′,Q1′),(e,s,t))←((G,p,P,Q),(A″−A′,B″−B′),(A′+A″,B′+B″−Q)),(C′−C,D′−D),(C+C′,D+D′−Q)),(e2,t2,u2))
と代入すればよい。
検証装置50(検証者)は暗号文変換装置30(2)(証明者)の当該証明事項を受理したとして話を進める。すると(C′,D′)の復号結果c′について、c′=a*e1*bが成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。
検証装置50は暗号文変換装置30(2)の当該証明事項を受理したことを暗号文変換装置30(1)に伝える。これを受けて暗号文変換装置30(1)は、暗号文変換装置30(2)より先に受信した(C′,D′)(A′,B′)(A″,B″),t1,e1を入力とし、先ず、第2の実施の形態同様、以下の処理を行う。
1.1以上p以下の乱数u1を生成する。
2.以下の[数28]に従って暗号文(C″,D″)を求め、当該暗号文を制御装置20および検証装置50に送信する。
Figure 0004565631
3.(C″,D″)が[数28]の関係を満たしていることを検証装置50にゼロ知識証明する。
ここで(C″,D″)が[数28]の関係を満たしていることを示す方法は、前述の暗号文変換装置30(2)での説明から明らかであるため省略する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したとして話を進める。すると(C″,D″)の復号結果c″について、c″=a*bが成り立つ。このことは第1の実施の形態から明らかであり、ここではその説明を省略する。
検証装置50は暗号文変換装置30(1)の当該証明事項を受理したことを制御装置20に伝える。これを受けて制御装置20は、暗号文変換装置30(1)より先に受信した(C″,D″)をa*bの暗号文として認める。
以上より、制御装置20は、暗号文変換装置30(1),(2)、復号装置40(1),(2)、および検証装置50の協力により、aの暗号文E(a.r)およびbの暗号文E(b,s)から、a,bを知ることなくa*bの暗号文を計算することができ、更には当該暗号文を取得することができる。ここでa,bの秘匿性は、暗号文変換装置30(1),(2)の生成したランダムビットe1,2の秘匿性に依存する。すなわち本実施の形態で示したプロトコルからe1およびe2を知ることが困難であれば、少なくとも暗号文変換装置30(1),(2)の不正結託がない限りはa,bを知ることが困難となる。また、本実施の形態では暗号文変換装置が2台の例を挙げたが、本プロトコルでは暗号文変換装置を3台以上に拡張することも容易である(ただしその方法は明らかであるため省略する)。そして当該拡張により暗号文変換装置の結託に対する耐性が高まる。これは言い換えればa,bの秘匿性を効果的に高めることができる。
なお、図1に示した第1の実施の形態のシステム構成に検証装置50を追加すれば、本第4の実施の形態同様に、暗号文変換装置30や復号装置40(1),(2)の処理正当性を検出することが可能である。
また、第1、第2、第3あるいは第4の実施の形態において、ai,bi∈{0,1}(i=1,2,…,n)の暗号文(Ai,Bi),(Xi,Yi)を時間をずらして順次入力し、順次、各装置で所定の処理を実行することで、複数組のai*biの暗号文をパイプライン形式に計算することが可能である。
なお、図1、図4などで示したシステムにおける各部の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図2、図3、図5などで示した処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、FD、MO、ROM、メモリカード、CD、DVD、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。
本発明の第1の実施の形態のシステム構成例を示す図。 第1の実施の形態において公開鍵(G,p,P,Q)を生成する処理シーケンス例を示す図。 第1の実施の形態においてa,bの暗号文からa*bの暗号文を求める処理シーケンス例を示す図。 本発明の第2の実施の形態、第3の実施の形態および第4の実施の形態のシステム構成例を示す図。 第2の実施の形態においてa,bの暗号文からa*bの暗号文を求める処理シーケンス例を示す図。 同じく第2の実施の形態においてa,bの暗号文からa*bの暗号文を求める処理シーケンス例を示す図。 同じく第2の実施の形態においてa,bの暗号文からa*bの暗号文を求める処理シーケンス例を示す図。 同じく第2の実施の形態においてa,bの暗号文からa*bの暗号文を求める処理シーケンス例を示す図。
符号の説明
10 暗号文生成装置
20 制御装置
30 暗号文変換装置
40 復号装置
50 検証装置
100 ネットワーク

Claims (9)

  1. ある有限体上で定義された楕円曲線の有理点からなる群を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′)を
    Figure 0004565631
    により計算して、該暗号文(A′,B′)を各復号装置i(i=1,2,…)に送信し、
    各復号装置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)を、
    Figure 0004565631
    により計算して(wは1以上p以下の乱数)、該暗号文(C,D)を暗号文変換装置に送信し、
    暗号文変換装置は、(G,p,P,Q),(C,D)を入力として、1以上p以下の乱数uを生成し、暗号文(C′,D′)を
    Figure 0004565631
    により計算して、該暗号文(C′,D′)を制御装置に送信し、
    制御装置は、(C′,D′)をa*bの暗号文として出力することを特徴とする秘密計算方法。
  2. ある有限体上で定義された楕円曲線の有理点からなる群を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′)を
    Figure 0004565631
    により計算して、該暗号文(A′,B′)を第2の暗号文変換装置および検証装置に送信し、
    検証装置は、第1の暗号文変換装置の処理正当性を検証して、その結果を第2の暗号文変換装置に通知し、
    第2の暗号文変換装置は、検証装置から第1の暗号文変換装置の処理正当の通知を受けると、ランダムビットe2および1以上p以下の乱数t2を生成し、暗号文(A″,B″)を、
    Figure 0004565631
    により計算して、該暗号文(A″,B″)を各復号装置i(i=1,2,…)および検証装置に送信し、
    検証装置は、第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)を、
    Figure 0004565631
    により計算して、該暗号文(C,D)を第1(あるいは第2の暗号文変換装置に送信し、
    第1(あるいは第2)の暗号文変換装置は、(G,p,P,Q),(C,D)を入力として、1以上p以下の乱数u2を生成し、暗号文(C′,D′)を
    Figure 0004565631
    により計算して(第1の暗号文変換装置であれは添え字は1となる)、該暗号文(C′,D′)を第2(あるいは第1)の暗号文変換装置および検証装置に送信し、
    検証装置は、第1(あるいは第2)の暗号文変換装置の処理正当性を検証して、その結果を第2(あるいは第1)の暗号文変換装置に通知し、
    第2(あるいは第1)の暗号文変換装置は、検証装置から第1(あるいは第2)の暗号文変換装置の処理正当の通知を受けると、(G,p,P,Q),(C′,D′)を入力として、1以上p以下の乱数uを生成し、暗号文(C″,D″)を
    Figure 0004565631
    により計算して(第2の暗号文変換装置であれは添え字は2となる)、該暗号文(C″,D″)を制御装置および検証装置に送信し、
    検証装置は、第2(あるいは第1)の暗号文変換装置の処理の正当性を検証して、その結果を制御装置に通知し、
    制御装置は、検証装置から第2(あるいは第1)の暗号文変換装置の処理正当の通知を受けると、(C″,D″)をa*bの暗号文として認識することを特徴とする秘密計算方法。
  3. 請求項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-e1-e,RQ,1-e=r′Q-c1-e1-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−c00‖z0Q−c00‖z1P−c11‖z1Q−c11)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。
  4. 請求項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′)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。
  5. 請求項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を底としたPの離散対数と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-e1-e,RQ,1-e=r′Q−c1-e1-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−c00‖z0Q−c00‖z1P−c11‖z1Q−c11)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。
    [プロトコル3]
    1.Pを底としたP0の離散対数とQを底としたQ0の離散対数が等しい、かつ、Pを底としたP1の離散対数とQを底としたQ1の離散対数が等しい、
    または、
    2.Pを底としたP0′の離散対数とQを底としたQ0′の離散対数が等しい、かつ、Pを底としたP1′の離散対数とQを底としたQ1′の離散対数が等しい、
    ことを、ゼロ知識証明技術を用いて証明するプロトコル、
    入力:((G,p,P,Q),(P0,0),(P1,1),(P0,0′),(P1,1′)
    証明者の秘密情報:(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-e1-e,RQ,1-e=r′Q−c1-e1-e,R′P,e=r″P,R′Q,e=r″Q,R′P,1-e=r″′P−c1-e1-e,R′Q,1-e=r″′Q−c1-e1-e,
    e=H(RP,0‖RQ,0‖RP,1‖RQ,1‖R′P,0‖R′Q,0‖R′P,1‖R′Q,1)−c1-e,
    e=r+cet,z1-e=r′,z′e=r″+cet′,z′1-e=r″′
    を計算する。ここでHは汎用一方向性ハッシュ関数とし、“‖”はデータの連結を意味する。
    2.検証者はc0+c1=H(z0P−c00‖z0Q−c00‖z1P−c11‖z1Q−c11‖z0′P−c00′‖z0′Q−c00′‖z1′P−c11′‖z1′Q−c11′)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。
  6. 請求項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を底としたPの離散対数と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-e1-e,RQ,1-e=r′Q−c1-e1-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−c00‖z0Q−c00‖z1P−c11‖z1Q−c11)が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。
    [プロトコル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′))が成り立つかどうか検証し、成り立つときのみ当該証明書事項を受理する。
  7. 請求項1乃至6のいずれか1項に記載の秘密計算方法において、複数組の(Ai,Bi),(Xi,Yi)(i=1,2,…,n)を順次入力して、複数組のai*biの暗号文をパイプライン形式に順次計算することを特徴とする秘密計算方法。
  8. ネットワークで結ばれた、一つあるいは複数の暗号文生成装置、制御装置、複数の暗号文変換装置、複数の復号装置および検証装置を具備し、請求項1乃至7のいずれか1項に記載の秘密計算方法を実施することを特徴とする秘密計算システム。
  9. 請求項1乃至7に記載の秘密計算方法をコンピュータに実行させるためのプログラム。
JP2005012884A 2005-01-20 2005-01-20 秘密計算方法及びシステム、並びにプログラム Expired - Fee Related JP4565631B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 日本電信電話株式会社 秘密計算方法及びシステム、並びにプログラム
JP4650933B2 (ja) * 2005-01-24 2011-03-16 日本電信電話株式会社 秘密計算方法及びシステム
JP4748663B2 (ja) * 2005-01-24 2011-08-17 日本電信電話株式会社 秘密計算方法及びシステム、並びにプログラム
JP4565632B2 (ja) * 2005-01-24 2010-10-20 日本電信電話株式会社 秘密計算方法及びシステム、並びにプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006154033A (ja) * 2004-11-26 2006-06-15 Nippon Telegr & Teleph Corp <Ntt> 秘密計算方法及びシステム、並びにプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
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) グループ署名システムおよび情報処理方法
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) 署名暗号方法、その装置およびそのプログラム
JP4748663B2 (ja) 秘密計算方法及びシステム、並びにプログラム
CN101321059B (zh) 一种用于编码和译码数字消息的方法和系统
JP5300373B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
Zhigang et al. Review of how to construct a fully homomorphic encryption scheme
WO2010024312A1 (ja) 演算装置、復号装置、暗号化装置、情報共有システム、2dnf演算システム、署名生成装置、署名検証装置、署名処理システム、署名検証システム、演算方法及び演算プログラム
JP4565632B2 (ja) 秘密計算方法及びシステム、並びにプログラム
Sharma et al. A new variant of subset-sum cryptosystem over RSA
CN114026586A (zh) 用于授予对加密资产的访问权的零知识或有支付协议
JP2009290698A (ja) ブラインド署名装置、部分ブラインド署名装置、受信装置、システム、方法、及びプログラム
Doegar et al. On-demand digital signature schemes using Multivariate Polynomial systems

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