説明

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

【課題】El Gamal暗号で暗号化された数値に対して、当該数値を明かすこと無く、当該数値の二進数表記の桁ごとに暗号化すること。
【解決手段】本発明は、1または2個の暗号化数値二進変換装置を用いて、El Gamal暗号の暗号化関数をE(・)とし、a≦z≦bとなる整数zの暗号文をE(z)としたとき、E(z)を入力として、zをt桁の二進数表記とした桁ごとの暗号文を求める暗号化数値二進変換システムに適用される。本発明の暗号化数値二進変換システム20は、先ず、関数F及び置換関数πを用いて、(π(i):F(i))(i=0,1,・・・,2t−1)を生成する。次に、F(z)とF(i)との対応関係を基にπ(i)を求める。次に、π(i)をt桁の二進数表記とした桁ごとに暗号化してE(wj)(j=0,1,・・・,t−1)を求める。最後に、E(wj)に対してπ-1を作用させてE(zj)を求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号応用技術に関し、特に、ある数値の暗号文を入力として、当該数値を復元する事無く、当該数値を二進数表記した桁ごとに暗号化した暗号文を生成する技術に関する。
【背景技術】
【0002】
非特許文献1では、Paillier暗号によって暗号化された数値に対して、当該数値を明かす事無く、当該数値を二進数表記した桁ごとに暗号化した暗号文を生成する方法が開示されている。
【0003】
また、二進数表記した数値を桁ごとに暗号化することで、当該数値の任意の論理演算を、当該数値を明かすこと無く実行可能とする方法も知られている(例えば、非特許文献2)。このような論理演算は、秘匿回路計算と称されている。
【0004】
従って、非特許文献1に開示された方法を用いれば、数値の暗号文を入力として秘匿回路計算が実行できるようになる。これにより、秘匿回路計算の入力を提供する装置(入力提供装置)は、数値の暗号文のみを計算、保存すれば良く、当該数値を二進数表記した桁ごとの暗号文を計算、保存する必要が無くなる。
【0005】
そのため、非特許文献1に開示された方法は、入力提供装置が計算資源やメモリ資源に乏しい場合に特に有効な方法となる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】B. Schoenmakers and P. Tuyls, Efficient binary conversion for Paillier encrypted values, Advances in Cryptology - EUROCRYPT 2006, Lecture Notes in Computer Science 4004, pp. 522-537, Springer-Verlag, 2006.
【非特許文献2】G. Yamamoto, K. Chida, A. Nasciment, K. Suzuki, and S. Uchiyama, Efficient, non-optimistic secure circuit evaluation based on the ElGamal encryption, WISA 2005, Lecture Notes in Computer Science, pp. 328-343, Springer-Verlag, 2005.
【発明の概要】
【発明が解決しようとする課題】
【0007】
非特許文献2に開示された方法は、El Gamal暗号によって数値を二進数表記の桁ごとに暗号化したものに対して秘匿回路計算を実現している。
【0008】
一方、非特許文献1に開示された方法は、Paillier暗号によって暗号化された暗号文を対象としている。
【0009】
そのため、非特許文献1に開示された方法を用いることで実現されるのは、Paillier暗号によって数値を二進数表記の桁ごとに暗号化したものに対する秘匿回路計算となる。
【0010】
しかし、Paillier暗号は、El Gamal暗号と比べて、暗号文のサイズや復号処理、ゼロ知識証明等に要する計算量が多いため、秘匿回路計算におけるデータサイズや計算量が増大してしまうという課題がある。
【0011】
そこで、本発明の目的は、El Gamal暗号で暗号化された数値に対して、当該数値を明かすこと無く、当該数値の二進数表記の桁ごとに暗号化することができる暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラムを提供することである。
【課題を解決するための手段】
【0012】
本発明の第1の暗号化数値二進変換システムは、
1または2個の暗号化数値二進変換装置を用いて、El Gamal暗号の暗号化関数をE(・)とし、a≦z≦bとなる整数zの暗号文をE(z)としたとき、E(z)を入力として、zをt桁の二進数表記とした桁ごとの暗号文を求める暗号化数値二進変換システムであって、
関数F及び置換関数πを用いて、(π(i):F(i))(i=0,1,・・・,2t−1)を生成し、
F(z)とF(i)との対応関係を基にπ(i)を求め、
π(i)をt桁の二進数表記とした桁ごとに暗号化してE(wj)(j=0,1,・・・,t−1)を求め、
E(wj)に対してπ-1を作用させてE(zj)を求めることを特徴とする。
【0013】
本発明の第2の暗号化数値二進変換システムは、
N(Nは3以上の整数)個の暗号化数値二進変換装置を用いて、El Gamal暗号の暗号化関数をE(・)とし、a≦z≦bとなる整数zの暗号文をE(z)としたとき、E(z)を入力として、zをt桁の二進数表記とした桁ごとの暗号文を求める暗号化数値二進変換システムであって、
関数Fn及び置換関数πn(n=1,・・・,N)を用いて、(πN(πN-1(・・・(π1(i)))):FN(FN-1(・・・(F1(E(i))))))(i=0,1,・・・,2t−1)を生成し、
N(FN-1(・・・(F1(E(i)))))に対応するiとE(z)に対応するzとの対応関係を基にπN(πN-1(・・・(π1(i))))を求め、
πN(πN-1(・・・(π1(i))))をt桁の二進数表記とした桁ごとに暗号化してE(wj)(j=0,1,・・・,t−1)を求め、
E(wj)に対してπn-1を作用させてE(zj)を求めることを特徴とする。
【発明の効果】
【0014】
本発明は、楕円曲線の有理点群を利用したEl Gamal暗号で暗号化された数値に対して、当該数値を明かすこと無く、当該数値の二進数表記の桁ごとに暗号化を行う。El Gamal暗号は、Paillier暗号と比べて、暗号文のサイズや復号処理、ゼロ知識証明等に要する計算量が小さくすむことが期待できる。
【0015】
そのため、本発明は、非特許文献1に開示された方法と比べて、秘匿回路計算におけるデータサイズ削減や計算量削減が見込めるという効果が得られる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施例1,2の暗号化数値二進変換システムの構成を説明する図である。
【図2】本発明の実施例1の暗号化数値二進変換システムによる暗号化数値二進変換方法を説明するフローチャートである。
【図3】本発明の実施例2の暗号化数値二進変換システムによる暗号化数値二進変換方法を説明するフローチャートである。
【図4】本発明の実施例3の暗号化数値二進変換システムの構成を説明する図である。
【図5】本発明の実施例3の暗号化数値二進変換システムによる暗号化数値二進変換方法を説明するフローチャートである。
【発明を実施するための形態】
【実施例1】
【0017】
図1に示すように、本実施例の暗号化数値二進変換システム20は、暗号化数値二進変換装置21A,21Bを有し、ある数値の暗号文を入力として秘匿回路計算を実行するための当該数値の二進数表記の桁ごとの暗号文を生成する。
【0018】
なお、図1において、1以上の入力提供装置10は、秘匿回路計算の入力となる、ある数値の暗号文を暗号化数値二進変換システム20に提供する。また、1以上の秘匿回路計算装置30は、暗号化数値二進変換システム20にて生成された二進数表記の桁ごとの暗号文を基に秘匿回路計算を実行する。
【0019】
以下、暗号化数値二進変換装置21A,21Bにおいて、El Gamal暗号で暗号化された数値に対して、当該数値を明かすこと無く、当該数値を二進数表記の桁ごとに暗号化した暗号文を生成するための処理手順について説明する。
【0020】
最初に、El Gamal暗号の構成例について説明しておく。
【0021】
El Gamal暗号の場合、gを素数位数qの乗法群Gの生成元とし、g,q,Gを公開情報としたとき、先ず、鍵ペア(x,y=gx)を生成する。ここで、xは0以上q未満の整数からなる秘密鍵であり、yは公開鍵である。ここでは、暗号化数値二進変換装置21Bが当該鍵ペアを生成し、秘密鍵xは暗号化数値二進変換装置21Bが所持するものとする。
【0022】
次に、E(・)をEl Gamal暗号の暗号化関数としたとき、Gの元zの暗号文をE(z)=(A,B)=(gr,z×yr)とする。ここで、rは0以上q未満の乱数である。復号に秘密鍵xを用いることで、復号処理の結果z=B/Axを得ることができる。なお、zを0以上q未満の整数としたいときは、E(z)=(gr,yr+z)としても良い。非特許文献2に開示された方法では、この形式のE(z)を用いている。ただし、この形式の場合、上記の復号処理の結果はyzとなり、yzからzを求める必要がある。zの候補数が多くなるとyzからzを求めることは一般に困難となるため、zの候補数は予め少なく設定することが望ましい。
【0023】
本発明では、非特許文献2に開示された方法とE(z)の形式が同様であることを前提とし、以降説明の簡略化のため、入力提供装置10は単一とし、当該入力提供装置10がE(z)を生成し、暗号化数値二進変換装置21Aに送信するものとする。なお、zは0(=a)以上2t−1(=b)以下の整数とする(tは適当な自然数)。
【0024】
すなわち、本発明が解決しようとする課題は、zを二進数表記したときの下位j+1桁目をzjと表記したとき、zを復元すること無く、E(z)から、E(zt-1),・・・,E(z0)を生成することである。
【0025】
以下、暗号化数値二進変換装置21A,21Bの処理手順の概略を、図2を用いて説明する。
【0026】
先ず、暗号化数値二進変換装置21Aは、ステップA1において、E(z)を受信すると、ステップA2において、ある関数Fによって0から2t−1までの各整数iに対応するデータF(i)、及び、E(F(z))を生成し、iに対してある置換関数πを作用させることで得られる2t個のデータ(π(i):F(i))(i=0,1,・・・,2t−1)を、E(F(z))とともに暗号化数値二進変換装置21Bに送信する。
【0027】
次に、(π(i):F(i))及びE(F(z))を受信した暗号化数値二進変換装置21Bは、ステップA3において、E(F(z))を復号してF(z)を取得し、(π(i):F(i))からF(z)と一致するF(i)を探索し、対応するπ(i)を取得し、ステップA4において、π(i)をt桁の二進数表記としたときの下位j+1桁目をwjと表記したとき、j=0,1,・・・,t−1についてE(wj)を生成し、E(wj)を暗号化数値二進変換装置21Aに送信する。
【0028】
最後に、E(wj)(j=0,1,・・・,t−1)を受信した暗号化数値二進変換装置21Aは、ステップA5において、E(wj)に対してπ-1を作用させ、E(zj)(j=0,1,・・・,t−1)を得る。
【0029】
上記の各処理について具体例を与える。
【0030】
先ず、Fとして、例えば、0以上q未満の整数uを用いて、F(i)=y(i+1)uとする。この場合、暗号化数値二進変換装置21Aは、E(z)から、E(F(z))=((gru,(yr+zu×yu)が計算可能となる。また、Fは、暗号化数値二進変換装置21A以外はF(i)からiを求めることが困難となるようにする必要がある。そして、πとして、例えば、二進数表記でt桁の数値vを用いて
【0031】
【数1】

【0032】
とする。ここで、
【0033】
【数2】

【0034】
はiを二進数表記し、iとvを各桁ごとにXOR演算した結果を並べたものとする。
【0035】
すると、暗号化数値二進変換装置21Bは、E(F(z))を復号してF(z)=y(z+1)uを得ることができ、(π(i):F(i))のF(i)の中からF(z)と一致するものを探索し、対応する
【0036】
【数3】

【0037】
を得ることができる。したがって、
【0038】
【数4】

【0039】
となり(vjはvの二進数表記の下位j+1桁目)、vjを所持している暗号化数値二進変換装置21Aは、E(wj)に対してπ-1を作用させた結果となる、
【0040】
【数5】

【0041】
(j=0,1,・・・,t−1)を得ることができる。ここで、E(1−wj)は、E(wj)から生成できることが知られており、例えば、非特許文献2にも開示されていることから、ここでは生成方法は省略する。
【0042】
以上により、暗号化数値二進変換装置21Aは、E(zj)を得ることができ、得られたE(zj)を秘匿回路計算装置30に送信する。1以上からなる秘匿回路計算装置30は、例えば、非特許文献2に開示された方法により秘匿回路計算を実行する。なお、非特許文献2に開示された方法によれば秘匿回路計算装置30は2以上を必要とする。
【0043】
以上、本実施例では、Fやπについて具体例を与えたが、勿論これに限るものではない。例えば、本実施例では、(π(i):F(i))を(π(i):Hash(F(i)))とし(Hash(・)は適当なハッシュ関数)、暗号化数値二進変換装置21Bは、F(z)をHash(F(z))に変換してからHash(F(i))との一致探索を行うとしても良い。また、πとしてπ(i)=z+v等としても良い。この場合、E(wj)からE(zj)を求めるためには、非特許文献1にしたがえば、暗号化数値二進変換装置21A,21Bが協力する必要がある。
【0044】
また、本実施例では、秘密鍵xは暗号化数値二進変換装置21Bが所持するものとしたが、非特許文献2に開示された方法のように、xを暗号化数値二進変換装置21A,21Bが分散所持するものとしても良い。この場合、いま、暗号化数値二進変換装置21A,21Bがそれぞれ分散された秘密鍵xA,xBを所持するものとすると、暗号化数値二進変換装置21AはE(F(z))に対してxAを用いて部分的に復号したものを暗号化数値二進変換装置21Bに送信し、それを受信した暗号化数値二進変換装置21Bは、xBを用いてE(F(z))を完全に復号することができる。
【0045】
また、本実施例では、秘匿回路計算装置30を2つとし、それぞれ暗号化数値二進変換装置21A,21Bと同一の装置として構成しても良い。この場合、上述の秘密鍵の分散所持は、非特許文献2の秘匿回路計算で必要となるため、このようにすることが望ましい。
【0046】
更に、本実施例では、暗号化数値二進変換システム20を2つの暗号化数値二進変換装置21A,21Bで構成したが、1つの暗号化数値二進変換装置で構成しても良い。
【実施例2】
【0047】
本実施例の暗号化数値二進変換システム20は、実施例1と比べて、構成自体は同様であるが、暗号化数値二進変換装置21A,21Bにおいて、E(zj)が正しくzの二進数表記における桁ごとの暗号文となっているかどうか検証を行う点が異なる。
【0048】
なお、ここでは、実施例1の処理手順に基づき、
【0049】
【数6】

【0050】
とし(u,u′は適当な乱数)、入力提供装置10の処理は同様とし、秘匿回路計算装置30は非特許文献2に開示された方法により秘匿回路計算を実行するものとする。
【0051】
以下、暗号化数値二進変換装置21A,21Bの処理手順を、図3を用いて説明する。
説明する。
【0052】
先ず、暗号化数値二進変換装置21Aは、ステップB1において、E(z)を受信すると、ステップB2において、0から2t−1までの各整数iに対応するデータF(i)=yiu+u′、及びE(F(z))を生成し、2t個のデータ
【0053】
【数7】

【0054】
(i=0,1,・・・,2t−1)を、E(F(z))とともに暗号化数値二進変換装置Bに送信する。
【0055】
次に、
【0056】
【数8】

【0057】
及びE(F(z))を受信した暗号化数値二進変換装置21Bは、ステップB3において、E(F(z))を復号してF(z)を取得し、
【0058】
【数9】

【0059】
からF(z)と一致するF(i)を探索し、対応する
【0060】
【数10】

【0061】
を取得し、ステップB4において、
【0062】
【数11】

【0063】
をt桁の二進数表記としたときの下位j+1桁目をwjと表記したとき、j=0,1,・・・,t−1についてE(wj)を生成する。また、ステップB4においては、更に、暗号化数値二進変換装置21Bは、E(wj)の復号結果wjが0または1のどちらかであることを示すためにゼロ知識証明による証明情報を生成し、E(wj)及び当該証明情報を暗号化数値二進変換装置21Aに送信する。
【0064】
次に、E(wj)(j=0,1,・・・,t−1)及び当該証明情報を受信した暗号化数値二進変換装置21Aは、ステップB5において、当該証明情報を検証し、正しいと判断した場合は、E(wj)からE(zj)(j=0,1,・・・,t−1)を得る。一方、当該証明情報が不正と判断した場合は、暗号化数値二進変換装置21Aは、以降の処理を行わない等、例外的措置をとる。なお、暗号化数値二進変換装置21Aは、E(zj)を正しく生成したとは限らないため、E(zj)をE(z′j)と表記する。
【0065】
最後に、暗号化数値二進変換装置21A,21Bは、ステップB6において、E(z′j)から
【0066】
【数12】

【0067】
を計算し、
【0068】
【数13】

【0069】
の復号結果とE(z)の復号結果とが等しいかどうか、それぞれの暗号文を復号すること無く検証する。等しければE(z′j)は正しく生成されていることになる。
【0070】
当該検証方法として、例えば、暗号化数値二進変換装置21Aは、1以上q未満の乱数aを生成し、
【0071】
【数14】

【0072】
から
【0073】
【数15】

【0074】
を計算し、同様に暗号化数値二進変換装置21Bは、1以上q未満の乱数bを生成し、
【0075】
【数16】

【0076】
から
【0077】
【数17】

【0078】
を計算する。
【0079】
次に、暗号化数値二進変換装置21A,21Bは、
【0080】
【数18】

【0081】
から
【0082】
【数19】

【0083】
を計算し、
【0084】
【数20】

【0085】
を復号し、復号結果が0であれば
【0086】
【数21】

【0087】
の復号結果とE(z)の復号結果が等しいと判断する。その理由は、zと
【0088】
【数22】

【0089】
が等しければ、
【0090】
【数23】

【0091】
の復号結果はa,bにかかわらず0となり、異なれば当該復号結果が0になることは、a,bが乱数であることからその確率が低くなるためである。なお、例えば、
【0092】
【数24】

【0093】
から
【0094】
【数25】

【0095】
を計算することはE(・)の準同型性により可能であることが非特許文献2等で開示されている。具体的には、E(z)=(A,B),E(z′)=(A′,B′)としたとき、(AA′,BB′)=E(z+z′)となり、また、整数cに対して(Ac,Bc)=E(cz)となることが知られているため、このような処理を実行すれば良い。
【実施例3】
【0096】
図4に示すように、本実施例の暗号化数値二進変換システム20は、実施例1,2と比べて、3つの暗号化数値二進変換装置21A,21B,21Cを有する点が異なる。
【0097】
なお、図3では、暗号化数値二進変換装置の数を3と固定しているが、本実施例は、4つ以上であっても同様の処理が可能である。
【0098】
ここでは、入力提供装置10の処理は実施例1と同様とし、秘匿回路計算装置30は非特許文献2に開示された方法により秘匿回路計算を実行するものとする。
【0099】
以下、暗号化数値二進変換装置21A,21B,21Cの処理手順の概略を、図5を用いて説明する。
【0100】
ここでは、暗号化数値二進変換装置21A,21B,21Cは、秘密鍵xを分散所持し、暗号化数値二進変換装置21A,21B,21Cの全装置が処理した場合に限り、E(・)によって暗号化された暗号文を復号できるものとし、また、0から2t−1までの各整数iの暗号文E(i)を生成する。
【0101】
先ず、暗号化数値二進変換装置21Aは、ステップC1において、E(z)を受信する。
【0102】
すると、暗号化数値二進変換装置21Aは、ステップC2において、ある関数FAによってE(i)を変換したFA(E(i))を生成し、iにある置換関数πAを作用させることで得られる2t個のデータ(πA(i):FA(E(i)))(i=0,1,・・・,2t−1)を暗号化数値二進変換装置21Bに送信する。
【0103】
次に、(πA(i):FA(E(i)))(i=0,1,・・・,2t−1)を受信した暗号化数値二進変換装置21Bは、ある関数FBによってFA(E(i))を変換したFB(FA(E(i)))を生成し、πA(i)にある置換関数πBを作用させることで得られる2t個のデータ(πB(πA(i)):FB(FA(E(i))))(i=0,1,・・・,2t−1)を暗号化数値二進変換装置21Cに送信する。
【0104】
次に、(πB(πA(i)):FB(FA(E(i))))(i=0,1,・・・,2t−1)を受信した暗号化数値二進変換装置21Cは、ある関数FCによってFB(FA(E(i)))を変換したFC(FB(FA(E(i))))を生成し、πB(πA(i))にある置換関数πCを作用させることで得られる2t個のデータ(πC(πB(πA(i))):FC(FB(FA(E(i)))))(i=0,1,・・・,2t−1)を暗号化数値二進変換装置21A,21Bに送信する。
【0105】
次に、暗号化数値二進変換装置21A,21B,21Cは、ステップC3において、当該FC(FB(FA(E(i))))に対応するiとE(z)に対応するzとの一致探索を行い、対応するπC(πB(πA(i)))を得る。そして、暗号化数値二進変換装置21A,21B,21Cは、ステップC4において、πC(πB(πA(i)))をt桁の二進数表記としたときの下位j+1桁目をwjと表記したとき、j=0,1,・・・,t−1についてE(wj)を生成する。
【0106】
最後に、ステップC5において、E(wj)に対して暗号化数値二進変換装置21C,21B,21Aの順に、それぞれが
【0107】
【数26】

【0108】
を作用させ、E(zj)(j=0,1,・・・,t−1)を得る。
【0109】
上記の各処理について具体例を与える。
【0110】
先ず、FA,FB,FCとして、例えば、非特許文献2に開示されたような再暗号化手法がある。すなわち、ある数値zの暗号文E(z)=(gr,yr+z)に対し、0以上q未満の乱数sを用いて、(gr+s,yr+s+z)=(grs,yr+zs)を計算し、これをE(z)に置き換える。数値zを変えること無く暗号文が変化するため、置換関数を作用させることで(gr,yr+z)と(gr+s,yr+s+z)との対応関係を秘匿することが可能となる。FC(FB(FA(E(i))))に対応するiと、E(z)に対応するzとの一致探索は、FA,FB,FCを上述の再暗号化手法とすることで、E(πC(πB(πA(i))))とE(z)の復号結果との一致探索となるため、実施例2で示したような方法を用いれば良い。なお、πA,πB,πC
【0111】
【数27】

【0112】
の作用は実施例1と同様で良く、その説明は省略する。
【0113】
以上により、暗号化数値二進変換システム20を3つ以上の暗号化数値二進変換装置で構成した場合でも、El Gamal暗号で暗号化された数値に対して、当該数値を明かすこと無く、当該数値を二進数表記の桁ごとに暗号化した暗号文を生成することが可能となる。
【0114】
以上、本発明を実施例を参照して説明したが、本発明は上記実施例に限定されものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解し得る様々な変更をすることができる。
【0115】
例えば、実施例3に、実施例2で示されたE(zj)の検証方法を適用しても良い。
【0116】
また、実施例1,2,3では、暗号化数値二進変換システム20を複数の暗号化数値二進変換装置で構成したが、1つの暗号化数値二進変換装置で構成しても良い。更に、この場合、その暗号化数値二進変換装置にて行われる暗号化数値二進変換方法を、コンピュータに実行させるためのプログラムに適用しても良い。また、そのプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。
【符号の説明】
【0117】
10 入力提供装置
20 暗号化数値二進変換システム
21A,21B,21C 暗号化数値二進変換装置
30 秘匿回路計算装置

【特許請求の範囲】
【請求項1】
1または2個の暗号化数値二進変換装置を用いて、El Gamal暗号の暗号化関数をE(・)とし、a≦z≦bとなる整数zの暗号文をE(z)としたとき、E(z)を入力として、zをt桁の二進数表記とした桁ごとの暗号文を求める暗号化数値二進変換システムであって、
関数F及び置換関数πを用いて、(π(i):F(i))(i=0,1,・・・,2t−1)を生成し、
F(z)とF(i)との対応関係を基にπ(i)を求め、
π(i)をt桁の二進数表記とした桁ごとに暗号化してE(wj)(j=0,1,・・・,t−1)を求め、
E(wj)に対してπ-1を作用させてE(zj)を求める、暗号化数値二進変換システム。
【請求項2】
N(Nは3以上の整数)個の暗号化数値二進変換装置を用いて、El Gamal暗号の暗号化関数をE(・)とし、a≦z≦bとなる整数zの暗号文をE(z)としたとき、E(z)を入力として、zをt桁の二進数表記とした桁ごとの暗号文を求める暗号化数値二進変換システムであって、
関数Fn及び置換関数πn(n=1,・・・,N)を用いて、(πN(πN-1(・・・(π1(i)))):FN(FN-1(・・・(F1(E(i))))))(i=0,1,・・・,2t−1)を生成し、
N(FN-1(・・・(F1(E(i)))))に対応するiとE(z)に対応するzとの対応関係を基にπN(πN-1(・・・(π1(i))))を求め、
πN(πN-1(・・・(π1(i))))をt桁の二進数表記とした桁ごとに暗号化してE(wj)(j=0,1,・・・,t−1)を求め、
E(wj)に対してπn-1を作用させてE(zj)を求める、暗号化数値二進変換システム。
【請求項3】
E(wj)の復号結果wjについてのゼロ知識証明による証明情報を生成し、
証明情報が正しい場合にE(zj)を求め、更に、E(zj)から
【数1】

を計算し復号した復号結果とE(z)の復号結果とが等しいかどうかを検証する、請求項1または2に記載の暗号化数値二進変換システム。
【請求項4】
1または2個の暗号化数値二進変換手段を用いて、El Gamal暗号の暗号化関数をE(・)とし、a≦z≦bとなる整数zの暗号文をE(z)としたとき、E(z)を入力として、zをt桁の二進数表記とした桁ごとの暗号文を求める暗号化数値二進変換方法であって、
関数F及び置換関数πを用いて、(π(i):F(i))(i=0,1,・・・,2t−1)を生成する第1ステップと、
F(z)とF(i)との対応関係を基にπ(i)を求める第2ステップと、
π(i)をt桁の二進数表記とした桁ごとに暗号化してE(wj)(j=0,1,・・・,t−1)を求める第3ステップと、
E(wj)に対してπ-1を作用させてE(zj)を求める第4ステップと、を有する暗号化数値二進変換方法。
【請求項5】
N(Nは3以上の整数)個の暗号化数値二進変換手段を用いて、El Gamal暗号の暗号化関数をE(・)とし、a≦z≦bとなる整数zの暗号文をE(z)としたとき、E(z)を入力として、zをt桁の二進数表記とした桁ごとの暗号文を求める暗号化数値二進変換方法であって、
関数Fn及び置換関数πn(n=1,・・・,N)を用いて、(πN(πN-1(・・・(π1(i)))):FN(FN-1(・・・(F1(E(i))))))(i=0,1,・・・,2t−1)を生成する第1ステップと、
N(FN-1(・・・(F1(E(i)))))に対応するiとE(z)に対応するzとの対応関係を基にπN(πN-1(・・・(π1(i))))を求める第2ステップと、
πN(πN-1(・・・(π1(i))))をt桁の二進数表記とした桁ごとに暗号化してE(wj)(j=0,1,・・・,t−1)を求める第3ステップと、
E(wj)に対してπn-1を作用させてE(zj)を求める第4ステップと、を有する暗号化数値二進変換方法。
【請求項6】
前記第3ステップでは、更に、E(wj)の復号結果wjについてのゼロ知識証明による証明情報を生成し、
前記第4ステップでは、証明情報が正しい場合にE(zj)を求め、
更に、E(zj)から
【数2】

を計算し復号した復号結果とE(z)の復号結果とが等しいかどうかを検証する第5ステップを有する、請求項4または5に記載の暗号化数値二進変換方法。
【請求項7】
請求項4から6のいずれか1項に記載の暗号化数値二進変換方法をコンピュータに実行させるための暗号化数値二進変換プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate