説明

暗号化数値二進変換システム及び方法とプログラム

【課題】第1及び第2の暗号化数値二進変換装置を備える暗号文を生成する暗号化数値二進変換システムで、ある数値の暗号文を二進表記した桁ごとに暗号化する際の計算量を抑える手段を提供する。
【解決手段】本発明は、置換関数π、π′、π′′、π′′′をそれぞれ用いて、ラベルつきハッシュ値を得、各ラベルつきハッシュ値から対応するラベルを求めて、それぞれの各ビットを暗号化し、これらにπ-1・π′′′-1,π′-1、π′′-1を作用させて、El Gamal暗号で暗号化された数値に対して、当該数値を明かすことなく、当該数値の二進数表記の桁ごとに暗号化を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号応用技術に関し、特に、ある数値の暗号文を入力として、当該数値を復元することなく、当該数値を二進表記した桁ごとに暗号化した暗号文を生成する技術に関する。
【背景技術】
【0002】
非特許文献1では、楕円曲線の有理点群を利用したEl Gamal暗号で暗号化された数値に対して、当該数値を明かすことなく、当該数値の二進数表記の桁ごとに暗号化を行う方法が提案されている。
【0003】
また、二進数表記した数値を桁ごとに暗号化することで、当該数値の任意の論理演算を当該数値を明かすことなく実行可能とする方法も知られている(例えば、非特許文献2)。このような論理演算は、秘匿回路計算と称されている。
【0004】
El Gamal暗号は、Paillier暗号と比べて、暗号文のサイズや復号処理、零知識証明などに要する計算量が小さく済むことが期待され、Paillier暗号を用いた従来の方法と比べるとデータサイズ削減や計算量削減が見込めるという効果が得られる。
【非特許文献1】千田、五十嵐、高橋、”エルガマル暗号に適したバイナリ変換マルチパーティプロトコル”、SCIS2009。
【非特許文献2】G. Yamamoto, K. Chida, A. Nasciment, K. Suzuki, and S. Uchiyama, ′′Efficient、 non-optimistic secure circuit evaluation based on the El Gamal encryption,′′ WISA2005, LNCS, pp. 328[343, Springer-Verlag, 2005.
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1の第4.3節の方法によれば、El Gamal暗号で暗号化された数値をtビットとすると、当該数値を明かすことなく、当該数値の二進数表記の桁ごとに暗号化を行うために2t回以上の群演算およびハッシュ演算が必要となる。非特許文献1ではその他の方法も記されているが、何れも第4.3節の方法より演算量が大きい。したがって、tが小さな場合には利用することができるが、tが大きな場合には実際に利用することが困難となるという問題がある。
【0006】
本発明は、非特許文献1の方法よりも計算量を抑える手段を提供する。
【課題を解決するための手段】
【0007】
E( )をEl Gamal暗号の暗号化関数とする。zを0以上2t−1以下の整数とする。tを偶数とする。G,q,yをEl Gamal 暗号のパラメータとする。F( )を群Gに写すハッシュ関数とする。
【0008】
このとき、先ず、暗号化数値二進変換装置Aは以下を実行する。
S1. E(z)を受信する。
S2. 0以上q未満の整数u,vAを選ぶ。
S3. E( )の加法準同型性を利用してE(z)からE(z−u)を計算する。
S4. E(z−u)の部分復号結果DAを計算する。
S5.
【0009】
【数1】

を生成する。特にCiはラベルiと対応付けておく。
S6. 置換関数πを選び、i→π(i)としてラベル付きハッシュ値<π(i):Ci>を得る。
S7. DA及び<π(i):Ci>を暗号化数値二進変換装置Bに送信する。
【0010】
次に、暗号化数値二進変換装置Bは以下を実行する。
S8. DAを復号し、DB=yz-uを得る。
S9. C′j=F(yu-z+jvB(j=0,・・・,2t/2−1)を生成する。特に、C′jはラベルjと対応付けておく。
S10. 置換関数π′を選び、j→π′(j)としてラベル付きハッシュ値<π′(j):C′j>を得る。
S11. <π′(j):C′j>を暗号化数値二進変換装置Aに送信する。
【0011】
次に、暗号化数値二進変換装置Aは以下を実行する。
S12. C′′j=C′jvA(j=0,・・・,2t/2−1)を生成する。特に、C′′jはラベルπ′(j)と対応付けておく。
S13. 置換関数π′′を選び、π′(j)→π′′(π′(j))としてラベル付きハッシュ値<π′′(π′(j)):C′′j>を得る。
S14. <π′′(π′(j)):C′′j>を暗号化数値二進変換装置Bに送信する。
【0012】
次に、暗号化数値二進変換装置Bは以下を実行する。
S15. C′′′i=CivB(i=0,・・・,2t/2−1)を生成する。特に、C′′′iはラベルπ(i)と対応付けておく。
S16. 置換関数π′′′を選び、π(i)→π′′′(π(i))としてラベル付きハッシュ値<π′′′(π(i)):C′′′i>を得る。
S17. <π′′′(π(i)):C′′′i>を暗号化数値二進変換装置Aに送信する。
【0013】
最後に、暗号化数値二進変換装置A、Bは以下を実行する。
S18. C′′′I=C′′JとなるC′′′I,C′′Jを探し、対応するラベル
【0014】
【数2】

を得る。
S19.
【数3】

を暗号化する。
S20.
【0015】
【数4】

を作用させてE(Ik),E(Jk)を得る。
【発明の効果】
【0016】
本発明によれば、群演算はおよそ2(t+4)/2回で済む。全体の計算量を大まかに比較すると、本発明はt≧18であれば非特許文献1の方法よりも計算量が少ない。
【図面の簡単な説明】
【0017】
【図1】本発明の実施例の構成を示すブロック図である。
【図2】本発明の実施例の動作を示すフローチャートである。
【図3】本発明の実施例の動作を示すフローチャートである。
【図4】本発明の実施例の動作を示すフローチャートである。
【実施例1】
【0018】
次に、本発明の実施例について説明する。
【0019】
図1は本発明による一実施例の構成を示すブロック図である。
【0020】
図1に示すように、本実施例の暗号化数値二進変換システム20は、暗号化数値二進変換装置21A、21Bを有し、ある数値の暗号文を入力として秘匿回路計算を実行するための当該数値の二進数表記の桁ごとの暗号文を生成する。なお、図1において、1以上の入力提供装置10は、秘匿回路計算装置30の入力となる、ある数値の暗号文を暗号化数値二進変換システム20に提供する。
【0021】
また、1以上の秘匿回路計算装置30は、暗号化数値二進変換システム20にて生成された二進数表記の桁ごとの暗号文を基に秘匿回路計算を実行する。
【0022】
以下、非特許文献1の第4.3節で記されている、暗号化数値二進変換装置21A、21Bにおいて、El Gamal暗号で暗号化された数値に対して、当該数値を明かすことなく、当該数値を二進数表記の桁ごとに暗号化した暗号文を生成するための処理手順について説明する。
【0023】
最初に、El Gamal暗号の構成例について説明しておく。
【0024】
El Gamal暗号の場合、gを素数位数qの乗法群Gの生成元とし、g、q、Gを公開情報としたとき、先ず、鍵ペア(x,y=gx)を生成する。ここで、xは0以上q未満の整数からなる秘密鍵であり、yは公開鍵である。ここでは、暗号化数値二進変換装置21Bが当該鍵ペアを生成し、秘密鍵xは暗号化数値二進変換装置21Bが所持するものとする。
【0025】
次に、E( )をEl Gamal暗号の暗号化関数としたとき、Gの元zの暗号文をE(z)=(A,B)=(gr,z×yr)とする。ここで、rは0以上q未満の乱数である。復号に秘密鍵xを用いることで、復号処理の結果z=B/Axを得ることができる。なお、zを0以上q未満の整数としたいときは、E(z)=(A,B)=(gr,yr+z)としても良い。非特許文献1および2に開示された方法では、この形式のE(z)を用いている。ただし、この形式の場合、上記の復号処理の結果はyzとなり、yzからzを求める必要がある。zの候補数が多くなるとyzからzを求めることは一般に困難となるため、zの候補数はあらかじめ少なく設定することが望ましい。
【0026】
本発明では、非特許文献1および2に開示された方法とE(z)の形式が同様であることを前提とし、以降説明の簡略化のため、入力提供装置10は単一とし、当該入力提供装置10がE(z)を生成し、暗号化数値二進変換装置21Aに送信するものとする。なお、Zは0(=a)以上2t−1(=b)以下の整数とする(tは2t<qを満たす適当な自然数)。
【0027】
すなわち、非特許文献1では、zを二進数表記したときの下位j+1桁目をzjと表記したとき、zを復元することなく、E(z)から、E(zt-1),・・・,E(z0)を生成している。
【0028】
以下、暗号化数値二進変換装置21A、21Bの処理手順について、図2を参照して説明する。
先ず、暗号化数値二進変換装置21Aは以下を実行する。
S101. E(z)を受信する。
S102. 0以上q未満の整数u,vを選ぶ。
S103. E( )の加法準同型性を利用してE(z)からE(uz+v)を計算する。
S104. E(uz+v)の部分復号結果DAを計算する。
S105. Ci=Hash(yui+v)(i=0,・・・,2t−1)を生成するHash( )はハッシュ関数)。特にCiはラベルiと対応付けておく。
S106. 置換関数πを選び、i→π(i)としてラベル付きハッシュ値<π(i):Ci>を得る。
S107. DA及び<π(i):Ci>を暗号化数値二進変換装置21Bに送信する。
【0029】
次に、暗号化数値二進変換装置Bは以下を実行する。
S108. DAを復号し、DB=yuz+vを得る。
S109. Ci==Hash(DB)となるCiを探索し、対応するラベルπ(I)=(π(z))を得る。
S110.
【0030】
【数5】

を暗号化する。
S111.
【0031】
【数6】

を暗号化数値二進変換装置21Bに送信する。
【0032】
最後に暗号化数値二進変換装置21Aは
S112.
【0033】
【数7】

にπ-1を作用させてE(zi)を得る。
【0034】
上記の手続きは、tが小さくない場合、S105の計算量が最も大きくなると考えられる。具体的には、S105では2t回の乗算およびハッシュ演算を実行する。
【0035】
次に、本発明の処理手順について、図3を参照して説明する。なお説明の簡略化のため、tは偶数とする。
【0036】
先ず、暗号化数値二進変換装置21Aは以下を実行する。
S201. E(z)を受信する。
S202. 0以上q未満の整数u,vAを選ぶ。
S203. E( )の加法準同型性を利用してE(z)からE(z−u)を計算する。
S204. E(z−u)の部分復号結果DAを計算する。
S205.
【0037】
【数8】

を生成する(F( )は群Gに写すハッシュ関数)。特にCiはラベルiと対応付けておく。
S206. 置換関数πを選び、i→π(i)としてラベル付きハッシュ値<π(i):Ci>を得る。
S207. DA及び<π(i):Ci>を暗号化数値二進変換装置21Bに送信する。
【0038】
次に暗号化数値二進変換装置Bは以下を実行する。
S208. DAを復号し、DB=yz-uを得る。
S209. C′j=F(yu-z+jvB(j=0,・・・,2t/2−1)を生成する。特に、C′jはラベルjと対応付けておく。
S210. 置換関数π′を選び、j→π′(j)としてラベル付きハッシュ値<π′(j):C′j>を得る。
S211. <π′(j):C′j>を暗号化数値二進変換装置21Aに送信する。
【0039】
次に、暗号化数値二進変換装置21Aは以下を実行する。
S212. C′′j=C′jvA(j=0,・・・,2t/2−1)を生成する。特に、C′′jはラベルπ′(j)と対応付けておく。
S213. 置換関数π′′を選び、π′(j)→π′′(π′(j))としてラベル付きハッシュ値<π′′(π′(j)):C′′j>を得る。
S214. <π′′(π′(j)):C′′j>を暗号化数値二進変換装置21Bに送信する。
【0040】
次に、暗号化数値二進変換装置21Bは以下を実行する。
S215. C′′′i=CivB(i=0,・・・,2t/2−1)を生成する。特に、C′′′iはラベルπ(i)と対応付けておく。
S216. 置換関数π′′′を選び、π(i)→π′′′(π(i))としてラベル付きハッシュ値<π′′′(π(i)):C′′′i>を得る。
S217. <π′′′(π(i)):C′′′i>を暗号化数値二進変換装置21Aに送信する。
【0041】
最後に暗号化数値二進変換装置21A、21Bは以下を実行する。
S218. C′′′I=C′′JとなるC′′′I,C′′Jを探し、対応するラベル
【0042】
【数9】

を得る。
S219.
【0043】
【数10】

を暗号化する。
S220.
【0044】
【数11】

を作用させてE(Ik),E(Jk)を得る。
【0045】
いまS220が手続き終了、即ち
【0046】
【数12】

が成り立つことを示す。S218からC′′′I=C′′Jであることが分かる。また、S215,S205からC′′′I=CIvB
【0047】
【数13】

,S212,S209からC′′J=C′JvA=F(yu-z+JvBvAであることがわかる。したがって、C′′′I=C′′J
【0048】
【数14】

=F(yu-z+J)がいえ、Fの衝突困難性を仮定すれば、u−I2t/2=u−z+J(mod q)
が成り立つ。すなわち、
【0049】
【数15】

となり、式(1)が示せた。
【0050】
最後に、本発明と非特許文献1の第4.3節の方法との大まかな計算量比較を行う。前にも述べたとおり、tが小さくない場合、S105の計算量が最も大きくなると考えられ、S105では2t回の乗算およびハッシュ演算を実行する。
【0051】
一方、本発明では、S205、S209、S212、S215の計算量が大きく、合わせて、2(t+4)/2+2回のべき乗演算、2(t+2)/2−2回の乗算、および、2(t+2)/2回のハッシュ演算を実行する。
【0052】
乗算とハッシュ演算の計算量を同程度とみなす。また、べき乗演算の計算量は、Binary Methodの利用を仮定するとして、1.5|q|回の乗算と同程度とみなす。ここで|q|はqのビット長を表すものとする。すると、|q|=160としたとき、本発明と非特許文献1の第4.3節の方法の計算量の比は大まかに240×(2(t+4)/2+2)+2(t+2)/2−2+2(t+2)/2:2t+1と見積もることができる。すなわち、t≧18であれば本発明の方が計算量が少なく済む。
【実施例2】
【0053】
実施例1では、暗号化数値二進変換装置21A、21Bのどちらか一方が誤った処理を実行しても、その事実を判別することが難しい場合がある。これは暗号文のランダム性により、出力された暗号文が正しい暗号文なのか誤った暗号文なのか判別することが一般に困難であるためである。本実施例では、非特許文献1の第4.4節の方法に倣い、実施例1における本発明を拡張し、当該判別を可能とする方法について図4を参照して説明する。
【0054】
先ず、暗号化数値二進変換装置21Aは以下を実行する。
S301. E(z)を受信する。
S302. 0以上q未満の整数u,vAを選ぶ。
S303. E( )の加法準同型性を利用してE(z)からE(z−u)を計算する。
S304. E(z−u)の部分復号結果DAを計算する。
S305.
【0055】
【数16】

を生成する。(F( )は群Gに写すハッシュ関数)。特にCiはラベルiと対応付けておく。
S306. 置換関数πを選び、i→π(i)としてラベル付きハッシュ値<π(i):Ci>を得る。
S307. DA及び<π(i):Ci>を暗号化数値二進変換装置21Bに送信する。
【0056】
次に、暗号化数値二進変換装置21Bは以下を実行する。
S308. DAを復号し、DB=yz-uを得る。
S309. C′j=F(yu-z+jvB(j=0,・・・,2t/2−1)を生成する。特に、C′jはラベルjと対応付けておく。
S310. 置換関数π′を選び、j→π′(j)としてラベル付きハッシュ値<π′(j):C′j>を得る。
S311. <π′(j):C′j>を暗号化数値二進変換装置21Aに送信する。
【0057】
次に、暗号化数値二進変換装置21Aは以下を実行する。
S312. C′′j=C′jvA(j=0,・・・,2t/2−1)を生成する。特に、C′′jはラベルπ′(j)と対応付けておく。
S313. 置換関数π′′を選び、π′(j)→π′′(π′(j))としてラベル付きハッシュ値<π′′(π′(j)):C′′j>を得る。
S314. <π′′(π′(j)):C′′j>を暗号化数値二進変換装置21Bに送信する。
【0058】
次に、暗号化数値二進変換装置21Bは以下を実行する。
S315. C′′′i=CivB(i=0,・・・,2t/2−1)を生成する。特に、C′′′iはラベルπ(i)と対応付けておく。
S316. 置換関数π′′′を選び、π(i)→π′′′(π(i))としてラベル付きハッシュ値<π′′′(π(i)):C′′′i>を得る。
S317. <π′′′(π(i)):C′′′i>を暗号化数値二進変換装置21Aに送信する。
【0059】
最後に、暗号化数値二進変換装置21A、21Bは以下を実行する。
S318. C′′′I=C′′JとなるC′′′I,C′′Jを探し、対応するラベル
【0060】
【数17】

を得る。
S319.
【0061】
【数18】

を暗号化する。
S320.
【0062】
【数19】

を作用させてE(Ik),E(Jk)を得る。
S321. 零知識証明を用いて、E(Ik),E(Jk)がそれぞれ正しくπ-1・π′′′-1,π′-1・π′′-1を作用させた結果であることを確認する。
S322. E(z)の復号結果と
【0063】
【数20】

の復号結果が等しいことを確認する。
【0064】
上記手続は、S301からS320は実施例1で説明したS201からS220の手続きと同一である。したがって、以降ではS321およびS322について詳しく説明する。
【0065】
例えば置換関数πとして
【0066】
【数21】

を考える。ここで,wはtビットの乱数とする。π′,π′′,π′′′も同様に、それぞれ
【0067】
【数22】

とする。すると例えば
【0068】
【数23】

が成り立つ。ここでw′k,w′′kはそれぞれ暗号化数値二進変換装置B、A が生成した乱数ビットであり、他の装置には知られない値である。即ち、例えばS320の処理は以下とみなすことができる。
【0069】
1.暗号化数値二進変換装置21Bは
【0070】
【数24】

を受信する。
【0071】
2.暗号化数値二進変換装置21Bはw′kを用いて
【0072】
【数25】

を計算し、暗号化数値二進変換装置21Aに送信する。
【0073】
3.暗号化数値二進変換装置21Aはw′′kを用いてE(zk)を計算し、暗号化数値二進変換装置21Bに送信する。
【0074】
上記の2、3の計算方法は、例えば非特許文献2に詳しく説明されている。また上記処理に応じて、例えばS321の処理は以下とみなすことができる。
【0075】
1.暗号化数値二進変換装置21BはS320の入出力
【0076】
【数26】

について、S310で生成したw′kを作用させた関係であることを零知識証明する。
2.暗号化数値二進変換装置21Aは当該暗号化数値二進変換装置21Bの零知識証明が正しいことを確認する。
3.暗号化数値二進変換装置21AはS320の入出力
【0077】
【数27】

について、S313で生成したw′′kを作用させた関係であることを零知識証明する。
4.暗号化数値二進変換装置21Bは当該暗号化数値二進変換装置21Aの零知識証明が正しいことを確認する。
【0078】
上記零知識証明もまた、例えば非特許文献2に詳しく説明されている。
【0079】
最後にS322の具体例を説明する。
【0080】
S322では、z=z′であることを確認できれば良い。しかし本来の目的である、zを明かすことなく、E(z)からzの二進数表記の桁ごとの暗号文を生成するためには、E(z)やE(z′)を単純に復号することはできない。そこで、E( )の加法準同型性を利用して、E(z)、E(z′)から、E(z−z′)を計算し、この復号結果が0であるかどうか確認することを考える。例えば、本技術分野で良く知られるテクニックとして以下の手続きが考えられる。
【0081】
1.暗号化数値二進変換装置21Aは0以上q未満の乱数sを生成し、E( )の加法準同型性を利用して、E(z−z′)からE(s′(z−z′))を計算し、これを暗号化数値二進変換装置21Bに送信する。
【0082】
2.暗号化数値二進変換装置21Bは同様に0以上q未満の乱数s′を生成し、E( )の加法準同型性を利用して、E(z−z′)からE(s′(z−z′))を計算し、これを暗号化数値二進変換装置21Aに送信する。
【0083】
3.暗号化数値二進変換装置21A、21BはE( )の加法準同型性を利用して、E(s(z−z′)),E(s′(z−z′))からE((s+s′)(z−z′))を計算し、これを復号して(s+s′)(z−z′)を得、当該復号結果が0であればz−z′と判断し、そうでなければz−z′≠0と判断する。
【0084】
上記手続において、実際(s+s′)(z−z′)mod q=0であれば、s+s′mod q=0となる場合を除いてz−z′mod q=0が成り立つ。いま、0≦z,z′<2t<qであるから、z−z′=0がいえる。qはEl Gamal暗号の安全性の理由から一般に十分大きくとり、s,s′は乱数であることから、s+s′mod q=0となる可能性は無視できる。また同様の議論により、(s+s′)(z−z′)mod q=0であればz−z′≠0がいえる。
【0085】
なお、暗号化数値二進変換システム20を構成する暗号化数値二進変換装置21A、21Bは、キーボード、マウス、受信装置等の入力装置、CPUなどの制御装置、ROM、RAM、HDDなどの記憶装置、ディスプレイ、プリンタ、送信装置などの出力装置からなる一般的なコンピュータシステムにより構成されるものである。
【0086】
入力提供装置10からの入力、秘匿回路計算装置30への出力、暗号化数値二進変換装置21A、21B間でのデータの送受信は入力装置、出力装置により行われる。また、各ステップを実行することは、ROM、RAM、HDDに格納されているプログラムに則って行われるものである。
【0087】
また、ROM、RAM、HDD内に格納されるプログラムは、CD-ROM、DVD-ROM、フロッピーディスク、USBメモリなどの読み取り可能な記録媒体からこれらの入力装置を介して移入される形態やインターネットなどのネットワークを介して受信装置より移入される形態がある。本発明によるシステムはこれらのプログラムにより一般的なコンピュータシステム上に構築されるものであり、本発明にはこれらのプログラムや該プログラムを格納した記録媒体が含まれる。
【符号の説明】
【0088】
10 入力提供装置
20 暗号化数値二進変換システム
21A、21B 暗号化数値二進変換装置
30 秘匿回路計算装置

【特許請求の範囲】
【請求項1】
第1及び第2の暗号化数値二進変換装置を備え、E( )をEl Gamal暗号の暗号化関数とし、zを0以上2t−1以下の整数とし、tを偶数とし、G,q,yをEl Gamal暗号のパラメータとし、F( )を群Gに写すハッシュ関数として、ある数値の暗号文を二進表記した桁ごとに暗号化した暗号文を生成する暗号化数値二進変換システムであって、
前記第1の暗号化数値二進変換装置は、
E(z)を受信し、
0以上q未満の整数u,vAを選び、
E( )の加法準同型性を利用してE(z)からE(z−u)を計算し、
E(z−u)の部分復号結果DAを計算し、
【数1】

を生成し、特にCiはラベルiと対応付けておき、
置換関数πを選び、i→π(i)としてラベル付きハッシュ値<π(i):Ci>を得、
A及び<π(i):Ci>を前記第2の暗号化数値二進変換装置Bに送信し、
前記第2の暗号化数値二進変換装置は、
Aを復号し、DB=yz-uを得、
C′j=F(yu-z+jvB(j=0,・・・,2t/2−1)を生成し、特に、C′jはラベルjと対応付けておき、
置換関数π′を選び、j→π′(j)としてラベル付きハッシュ値<π′(j):C′j>を得、
<π′(j):C′j>を前記第1の暗号化数値二進変換装置Aに送信し、
前記第1の暗号化数値二進変換装置は、
C′′j=C′jvA(j=0,・・・,2t/2−1)を生成し、特に、C′′jはラベルπ′(j)と対応付けておき、
置換関数π′′を選び、π′(j)→π′′(π′(j))としてラベル付きハッシュ値<π′′(π′(j)):C′′j>を得、
<π′′(π′(j)):C′′j>を前記第2の暗号化数値二進変換装置に送信し、
前記第2の暗号化数値二進変換装置は、
C′′′i=CivB(i=0,・・・,2t/2−1)を生成し、特に、C′′′iはラベルπ(i)と対応付けておき、
置換関数π′′′を選び、π(i)→π′′′(π(i))としてラベル付きハッシュ値<π′′′(π(i)):C′′′i>を得、
<π′′′(π(i)):C′′′i>を前記第1の暗号化数値二進変換装置に送信し、
前記第1及び第2の暗号化数値二進変換装置は、
C′′′I=C′′JとなるC′′′I,C′′Jを探し、対応するラベル
【数2】

を得、
【数3】

を暗号化し、
【数4】

を作用させてE(Ik),E(Jk)を得ることを特徴とする暗号化数値二進変換システム。
【請求項2】
請求項1記載の暗号化数値二進変換システムにおいて、
前記第1及び第2の暗号化数値二進変換装置は、さらに、零知識証明を用いて、E(Ik),E(Jk)がそれぞれ正しくπ-1・π′′′-1,π′-1・π′′-1を作用させた結果であることを確認し、
E(z)の復号結果と
【数5】

の復号結果が等しいことを確認する暗号化数値二進変換システム。
【請求項3】
第1及び第2の暗号化数値二進変換装置を備える暗号文を生成する暗号化数値二進変換システムで、ある数値の暗号文を二進表記した桁ごとに暗号化する暗号化数値二進変換方法であって、
E( )をEl Gamal暗号の暗号化関数とし、zを0以上2t−1以下の整数とし、tを偶数とし、G,q,yをEl Gamal暗号のパラメータとし、F( )を群Gに写すハッシュ関数として、
前記第1の暗号化数値二進変換装置が行う、
E(z)を受信するステップと、
0以上q未満の整数u,vAを選ぶステップと、
E( )の加法準同型性を利用してE(z)からE(z−u)を計算するステップと、
E(z−u)の部分復号結果DAを計算するステップと、
【数6】

を生成し、特にCiはラベルiと対応付けておくステップと、
置換関数πを選び、i→π(i)としてラベル付きハッシュ値<π(i):Ci>を得るステップと、
A及び<π(i):Ci>を前記第2の暗号化数値二進変換装置に送信するステップと、
前記第2の暗号化数値二進変換装置Bが行う、
Aを復号し、DB=yz-uを得るステップと、
C′j=F(yu-z+jvB(j=0,・・・,2t/2−1)を生成し、特に、C′jはラベルjと対応付けておくステップと、
置換関数π′を選び、j→π′(j)としてラベル付きハッシュ値<π′(j):C′j>を得るステップと、
<π′(j):C′j>を前記第1の暗号化数値二進変換装置に送信するステップと、
前記第1の暗号化数値二進変換装置が行う、
C′′j=C′jvA(j=0,・・・,2t/2−1)を生成し、特に、C′′jはラベルπ′(j)と対応付けておくステップと、
置換関数π′′を選び、π′(j)→π′′(π′(j))としてラベル付きハッシュ値<π′′(π′(j)):C′′j>を得るステップと、
<π′′(π′(j)):C′′j>を前記第2の暗号化数値二進変換装置に送信するステップと、
前記第2の暗号化数値二進変換装置が行う、
C′′′i=CivB(i=0,・・・,2t/2−1)を生成し、特に、C′′′iはラベルπ(i)と対応付けておくステップと、
置換関数π′′′を選び、π(i)→π′′′(π(i))としてラベル付きハッシュ値<π′′′(π(i)):C′′′i>を得るステップと、
<π′′′(π(i)):C′′′i>を前記第1の暗号化数値二進変換装置に送信するステップと、
前記第1及び第2の暗号化数値二進変換装置が行う、
C′′′I=C′′JとなるC′′′I,C′′Jを探し、対応するラベル
【数7】

を得るステップと、
【数8】

を暗号化するステップと、
【数9】

を作用させてE(Ik),E(Jk)を得るステップと、を有する暗号化数値二進変換方法。
【請求項4】
請求項3記載の暗号化数値二進変換方法において、前記第1及び第2の暗号化数値二進変換装置が行う、
零知識証明を用いて、E(Ik),E(Jk)がそれぞれ正しくπ-1・π′′′-1,π′-1・π′′-1を作用させた結果であることを確認するステップと、
E(z)の復号結果と
【数10】

の復号結果が等しいことを確認するステップと、をさらに有する暗号化数値二進変換方法。
【請求項5】
請求項3または請求項4記載の暗号化数値二進変換方法をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−13544(P2011−13544A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−158792(P2009−158792)
【出願日】平成21年7月3日(2009.7.3)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】