JP3540718B2 - Verifiable anonymous communication path system, method for implementing the same, and recording medium recording the method - Google Patents
Verifiable anonymous communication path system, method for implementing the same, and recording medium recording the method Download PDFInfo
- Publication number
- JP3540718B2 JP3540718B2 JP2000145992A JP2000145992A JP3540718B2 JP 3540718 B2 JP3540718 B2 JP 3540718B2 JP 2000145992 A JP2000145992 A JP 2000145992A JP 2000145992 A JP2000145992 A JP 2000145992A JP 3540718 B2 JP3540718 B2 JP 3540718B2
- Authority
- JP
- Japan
- Prior art keywords
- replacement
- server
- output
- input
- proof
- 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 - Lifetime
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、電気通信システムで無記名投票を実現する場合等に利用される検証可能な匿名通信路システム、特に効率的に実現可能な匿名通信路、それを実施する方法及びその方法を記録した記録媒体に関する。
【0002】
【従来の技術】
まず、匿名通信路について説明する。一般に各サーバはそのサーバに接続した利用者を識別することができるのでどの利用者がどの情報を送信しているかを知ることができ、利用者とサーバ間の通信路には匿名性はない。匿名通信路を物理的な構成に因らず、電気通信システムにより実現する手段として、MIX−NET が提唱されている。MIX−NET ではL個のサーバU1,…,ULが直列的に記名通信路で接続されたシステムである。
【0003】
RSA関数を用いてこれを実装する場合は、i番目のサーバは、大きな素数pi,qiに対し、ni=pi・qi及びei・di=1(mod LCM(pi−1, qi−1))を満たす(di,ni),(ei,ni) をそれぞれ復号鍵、暗号化鍵とする。RSAによるメッセージmの暗号化は、まず、乱数rを選び、mとrを結合してm‖rとする。次に、M:=(m‖r)dimod niとして暗号化メッセージMを得る。以下では、サーバUiの暗号化鍵(ei,ni) を使ったこの暗号化手順をEi(m,r)と書く。
【0004】
j番目の利用者は、送信すべきメッセージmjを
M1:=E1(E2(…(EL(mj, rjL), …), rj2), rj1)
のように、全サーバの暗号化鍵(ei,ni),i=1,2,…,LとL個の乱数rj1,rj2,…,rjLを用いて多重に暗号化し、サーバU1へ送付する。
サーバU1は、複数の利用者から暗号化されたメッセージM1,M2,... が集まった後、これらを鍵(d1,n1) で復号し、各メッセージmjに対応するE2(…(EL(mj,rjL),…),rj2) 及びrj1を得る。サーバU1はそれぞれの暗号化メッセージから得られたE2(…(EL(mj,rjL),…),rj2), j=1,2,...の順序をランダムに置換し、サーバU2へ送付する。この際、サーバU1は各メッセージmjに付けられた乱数rj1を秘密とすることで、サーバU2へ送付された各E2(…(EL(mj, rjL),…),rj2)がサーバU1へ入力された暗号化メッセージM1,M2,... のどれに関する復号結果であるかを判別できないようにすることができる。
【0005】
以下、サーバU2,…,ULも同様の処理を繰り返す。最後にサーバULは、各メッセージmjを公開する。少なくとも一つのサーバUiが乱数rji 及び置換の順序を秘密に保つことにより、各利用者からサーバU1に入力された暗号文と、サーバULが出力したメッセージとの関連は隠蔽され、匿名通信路として機能する。
上記従来法によれば、各サーバが与えられた動作を行わず、不正に計算された、あるいは本来のものと置き換えた結果を出力してもその出力が不正であることを誰も検証することができない。
【0006】
検証を可能とする第一の方法として、例えばMasayuki Abeによる”UniversallyVerifiable Mix−net with Verification Work Independent of the Number of Mix−servers”, EUROCRYPT98, 5月31日、で提案されている方法がある。即ち、サーバ群はまず置換処理を実行し、各サーバの出力が正しいことを互いに証明、検証する。その後に、復号処理を実行し、各サーバの復号処理の出力が正しいことを互いに証明、検証する。この方法の問題点は、各サーバが行う証明、検証に多くの計算コストがかかる点にある。例えば、置換処理において、入力I1,…,INをランダム化し、更にランダムに置換した結果をO1,…,ONとすると、この出力が正しい手順で処理されたものであることを、処理中のランダムな要素を見せることなく証明するには、以下のようにする。I1,…,INを同様の手順で撹乱し、ランダムに置換し、その結果をO’1,…,O’Nとする。このとき、同型性が成り立つようなランダム化手順を用いると、O’1,…,O’Nは、O1,…,ONに対するランダム化の結果であると見なすこともできる。ここで、検証者はランダムに0/1 のチャレンジを選択して証明者に渡す。証明者はチャレンジが0のとき、{I1,…,IN}→{O’1,…,O’N}の置換・ランダム化処理に用いたランダム要素を全て公開する。また、チャレンジが1の時には、{O1,…,ON}→{O’1,…,O’N}のランダム化処理に相当するランダム要素を公開する。ランダム要素を入手すれば、全ての処理手順は確定的に再現することができるので、検証者はその入出力関係が正しいことを検証することができる。上記手順で証明者による不正を検出できない確率は、証明者がチャレンジを推測して当てる確率と等しく、1/2 であるので、証明者と検証者は上記手順を任意のk回数繰り返して、(1/2)kの誤り確率で処理の正しさを証明、検証する。従って、N入力での全体の効率はNkに比例する。高度の信頼性を確保するには、k=80程度とするのが一般的である。
【0007】
検証を可能にする第2の方法として、例えば、匿名通信路に応用することは述べられてないが、R.Cramer,I.Damgard ,B.Schoenmakersによる文献,“Proofsof Partial Knowledge and Simplified Design of Witness Hiding Proofs”,Proc. of Crypto ’94 ,LNCS 839,pp.174−187,Springer−Verlagに示される方式によれば、N入力の置換に対する証明は、N2 の計算コストで行うことができる。以下にその概略を示す。まず、I1をランダム化した結果がO1 であるとすると、零知識対話証明を用いてI1とO1 の関係をそのランダム化に用いたランダム要素を明かすことなく証明することが可能である。このような零知識対話証明では、
1.証明者は検証者にコミットメントと呼ばれるランダムなメッセージTを送付する、
2.検証者は、証明者にチャレンジと呼ばれるランダムな値Cを送る、
3.証明者はコミットメントTとチャレンジCに基づいて、ある検証式を満たす値Zを検証者に送る、
という手順を実行し、検証者は、(T, C, Z, I1, O1)が所定の検証式を満たすか否かを検査することによって、I1とO1 の関係の正当性を検証する。このような証明系において、証明者がTを作る前にCの値を知らなければ、検証式を満たすようなZの値を返すことは、I1とO1 の関係が正当なものである場合にしかできない。しかし一方で、証明者が事前にCの値を知っていれば、I1とO1 の関係が正当なものでなくても、検証式を満たすようなT,Zの値を求めることができる。この事実を利用すると、I1がO1,…,ONのいずれか1つ以上に対して正当な関係であることを示すことができる。まず、証明者は、C2,…,CN及び対応するZ2,…,ZNをランダムに選択する。次に、i=2,…,Nに対して、(Ti,Ci,Zi,I1,Oi) が所定の検証式を満たすようにTiの値を決める。さらに、T1をランダムに選ぶ。この準備の後、
1.証明者は検証者にT1,…,TNを送る、
2.検証者は、証明者にランダムに選んだCを送る、
3.証明者はC1=C(+)C2(+)…(+)CNのようにC1 を計算し、(T1,C1,Z1,I1,O1) が検証式を満たすような値Z1を計算し、Z1,…,ZN及び、C1,…,CNを検証者に送る、
という手順を実行する。ここで、(+) はビット毎の排他的論理和を意味する。検証者は全てのi=1,…,Nについて(Ti,Ci,Zi,I1,Oi) が所定の検証式を満たすことを検証し、更に、C=C1(+)…(+)CN が成り立つことを検査すればよい。証明者は、事前にCの値を知らないので、少なくとも一つのCiについては、証明者が操作できない値とならざるを得ないため、I1は少なくとも一つのOi と正当な関係であることが確認できる。
【0008】
【発明が解決しようとする課題】
この方法に因れば、I1→O1or…orONを示すために、I1→O1 の関係を示す為の証明のN倍の計算、通信コストが掛かることになり、結局、{O1,…,ON}→{O’1,…,O’N}を示す効率は、N2に比例する。従って、入力数Nが増大するとデータ処理量が膨大になる問題がある。
このように、上記従来法によれば、各サーバが行う証明、検証にはNkあるいはN2 に比例する計算量及び通信量が掛かるため、効率が悪い。
【0009】
この発明の目的は、各サーバの出力が入力に対して適正な処理を行った後にその順序を置換したものであることをより少ない計算量、通信量で効率的に証明、検証する方法及び装置を提供することである。
【0010】
【課題を解決するための手段】
この発明による検証可能匿名通信路は、
Nより小さいn個、nは2以上の整数、の入力をランダム置換し、秘密情報を用いて撹乱することによりn個の出力を出力し、任意の検証者に対して上記n個の入力と上記n個の出力を対応付ける上記秘密情報及び上記ランダム置換が確かに存在することを、使用した上記秘密情報及び上記ランダム置換を明かすことなく零知識証明により証明する処理を行なう単位置換処理手段と、
N個の入力に対しn個ずつ上記単位置換処理手段による処理を実行してN個の出力を得る第1繰り返し手段と、
初期入力として上記N個のメッセージに対し上記第1繰り返し手段による処理を実行して上記N個の出力を得、上記N個の出力を上記N個の入力として上記第1繰り返し手段を予め決めた回数繰り返し実行することにより上記N個のメッセージに一対一に対応する置換撹乱されたN個の出力メッセージを得る第2繰り返し手段、
とを含む。
【0011】
この発明による検証可能匿名通信方法及びその方法を実施する記録媒体に記録されたプログラムは、以下のステップを含む:
(a) Nより小さいn個、nは2以上の整数、の入力をランダム置換し、秘密情報を用いて撹乱することによりn個の出力を出力し、任意の検証者に対して上記n個の入力と上記n個の出力を対応付ける上記秘密情報及び上記ランダム置換が確かに存在することを、使用した上記秘密情報及び上記ランダム置換を明かすことなく零知識証明により証明する処理を行ない、
(b) N個の入力に対しn個ずつ上記ステップ(a) による処理を実行してN個の出力を得て、
(c) 初期入力として上記N個のメッセージに対し上記ステップ(b) による処理を実行して上記N個の出力を得、上記N個の出力を上記N個の入力として上記第1繰り返し手段を予め決めた回数繰り返し実行することにより上記N個のメッセージに一対一に対応する置換撹乱されたN個の出力メッセージを得る。
【0012】
【発明の実施の形態】
この発明によれば、入力全体に対するランダム化及びランダム置換処理に対する証明、検証を行う代わりに、入力を少数に分割し、分割された各部分に対してその入出力関係の正当性を証明、検証するようにする。
例えば、複数の2入力2出力の切換スイッチ(入力の順序を入れ換えて出力するか、又はそのままの順序で出力するかを切り替えることができるスイッチ)を格子状に配置し、それぞれの段の出力と次段の入力を規則に従って接続することにより、2L個の入力に対する全ての置換を網羅することができるような置換網を構成する事ができることが知られている(A.Waksman,”A Permutation Network”, Journal of the ACM,Vol.15,No.1,January 1968,pp.159−163.を参照)。4入力に対する置換網10の構成を図1に示す。図1において、切換スイッチSW1 は、(O11,O12)=(I11,I12)のようにそのまま入力を出力とするか、あるいは(O11,O12)=(I12,I11)のように順序を入れ換えて出力する。他のスイッチSW2〜SW5でも同様の処理を行う。図1に示すように5つの切り換えスイッチを組み合わせて使うことにより、4入力に対し、42=16通りの全ての置換を実現することが可能である。このような置換網を完全置換網と呼ぶことにする。一般的に、N個の入力に対してNlog2N−N+1個の切換スイッチを用いることによって完全置換網を構成できることが知られている。
【0013】
そこで、この発明では、この各置換スイッチSW1 〜SW5 に対し、入力のランダム化とランダム置換の証明を行う機能を付加して単位の切り換え装置を構成し、それぞれの切り換え装置においてランダム置換の正当性の証明を行うことで、全体の置換に対する正当性を証明する。各切り換え装置が行う証明には前述の第二の方法を用いる。よって、例えば各切り換え装置への入力が2つの場合には、22=4 の計算コストで証明、検証が実行でき、全体の効率を4(Nlog2N−N+1) 程度に抑制することが可能である。
第1実施例
この発明による検証可能な匿名通信路は、図2に示すようにN個の暗号文E1,…,EN が入力され、それらの復号結果を入力との対応関係がわからないようにランダム置換して出力する匿名通信路100 と、そのランダム置換の正当性と復号の正当性を検証する検証端末200 とから構成されている。この実施例では、匿名通信路100 は入力暗号文E1,…,ENを受付け、置換及び復号化して平文のリストTpを得、その置換及び復号化に対する検証に必要な情報Proofを生成し、平文リストTpと共に検証端末200 へ送付する。
【0014】
匿名通信路100 は完全置換網を形成するよう切換装置SW1〜SW5が接続されており、この発明によれば、各切換装置SWがランダム置換を行ない、その置換の正当性を零知識証明で証明する証明Proof1〜Proof5を出力する。この実施例では、切換装置は復号を行なわず、入力暗号を変形し、置換網10による処理後に、復号装置20により復号を行なう場合を示しているが、後述の第4実施例のように、各切換装置SWにおいて復号処理を行なってもよい。しかしながら、後者の場合、各切換装置SWは秘密鍵を使用した復号についての零知識証明を行なう必要があるのに対し、前者の場合(第1実施例の場合)では、復号装置20における復号に対して一括して零知識証明をするので、全体として処理量は少なくてすむ利点がある。
【0015】
2つの予め決めた大きな素数をp,qとし、qはpを割り切るものとする。Zp中の位数qの部分群をGqとし、gをGqのある要素とする。以下の説明中では、特に断りのない限り、全ての算術演算はmodpで行うものとする。El Gamal暗号の復号鍵をx∈Zqとし、暗号化鍵をy:=gxとする。暗号化鍵yは予め定められたp,q,gと共に、後述する図3における置換網10を構成している全ての切換装置SWと、復号装置20内のメモリ23(図7)及び検証端末200 ないのメモリ220に共通パラメータとして格納されているものとする。復号鍵xは復号装置20にのみ格納されているものとする。
【0016】
メッセージm∈Gq* のEl Gamal暗号による暗号文をEとすると、Eはある乱数t∈Zpに対し、
E:=(M, G)=(myt, gt)
となる。システムへの入力数Nを4とした場合のEl Gamal暗号で暗号化された4つの暗号文をE1,E2,E3,E4とする。
図3に、4入力における匿名通信路100 及び、検証端末200 のブロック図を示す。また、各切換装置SW1〜SW5の構成を図4に示す。各切換装置SW内の切換部12、置換証明部14の構成をそれぞれ図5及び6に示す。匿名通信路100 は置換網10と復号装置20から成り置換網10では暗号文E1, E2が切換装置SW1 に入力され、暗号文E3, E4が切換装置SW2 に入力され、切換装置SW1 の2つの出力はそれぞれ切換装置SW3, SW4に入力され、同様に切換装置SW2 の2つの出力はそれぞれ切換装置SW3, SW4に入力され、切換装置SW3, SW4の各2つの出力の一方は切換装置SW5 に入力され、他方の出力R1, R2は復号装置20に入力され、切換装置SW5 の2つの出力R3, R4は復号装置20に入力される。
【0017】
入力暗号文E1〜E4、切換装置SW1〜SW5の各2つの出力はそれぞれ分岐されて検証端末200 の置換検証部30に入力され、この置換検証部30には各切換装置SW1〜SW5の置換証明出力Proof1〜Proof5も入力されている。復号装置20の4つの入力R1〜R4も分岐されて復号検証部40に入力され、復号装置20の復号証明出力ProofD及び平文Tpを構成する復号メッセージm1,…,m4も復号検証部40に入力されている。検証端末200 は制御部210 、メモリ220 を備えている。
【0018】
切換装置SWは、図4に示すようにp,q,g,yを保持しているメモリ11と、2入力2出力の単に置換を行なう切換部12と、乱数生成部13と、置換が正当であることを証明するための置換証明部14と、これら各部11〜14の動作を制御する制御部15とから構成されている。切換部12は図5に示すようにべき乗演算器12Aと、剰余乗算器12Bと、順序入換器12Cとから構成されている。又、置換証明部14は、図6に示すようにべき乗乗算器14Aと、ハッシュ演算器14Bと、剰余減算器14Cと、剰余乗減算器14Dとから構成されている。
【0019】
以下は、切換装置SW1 における動作のステップである(図4参照)。
Step1:p,g,yをメモリ11から切換部12へ入力する。
Step2:乱数生成器13を駆動して乱数b∈{1, 2}及びt1, t2∈Zq を生成し、切換部12へ入力する。
Step3:切換部12は以下のように動作する(図5参照)。
Step3−1: べき乗演算器12Aを駆動し、
【0020】
【数1】
を計算する。
Step3−2: べき乗演算器12Aの出力T1,T2及び、入力I1=(M1, G1),I2=(M2, G2)を剰余乗算器12Bへ入力し、
【0021】
【数2】
を計算する。このべき乗演算と剰余乗算とにより秘密情報t1,t2で入力メッセージI1=(M1,G1),I2=(M2,G2)がランダム化される。
Step3−3: 剰余乗算器12Bの出力R1,R2及び乱数bを順序入換器12Cへ入力する。順序入換器12Cは、b=1 のとき、O1:=R1及びO2:=R2を、b=2 のとき、出力O1:=R2及びO2:=R1を出力する。この出力を、O1=(N1,H1),O2=(N2,H2)とおく。このようにランダム化された入力メッセージはその順序がbによりランダム化され、即ち、ランダム置換される。
【0022】
Step4:図4中の乱数生成器13を駆動し、乱数w1, w2, eb’, z1b’, z2b’∈Zqを生成し、b,t1,t2とともに置換証明部14へ入力する。ここで、b’はb=1 のときb’=2とし、b=2 のときb’=1のように値を取るものとする。また、p, q, g, yをメモリ11から置換証明部14へ入力する。
Step5:置換証明部14は以下のように動作する(図6参照)。
置換証明部14には切換部12の2つの入力I1, I2と2つの出力O1, O2とがそれぞれ分岐入力されている。
Step5−1:べき乗乗算器14Aを駆動し、
【0023】
【数3】
を計算する。
【0024】
Step5−2:ハッシュ演算器14BへI1,I2,O1,O2,S11,S12,S21,S22を入力し、その出力をcとする。
Step5−3:c及びq,eb’ を剰余減算器14Cへ入力し、出力
eb:=c−eb’modq
を得る。
Step5−4:eb及びw1,w2,q,b,t1,t2を剰余乗減算器14Dへ入力し、
z1b:=w1−eb・t1modq
z2b:=w2−eb・t2modq
を計算する。
【0025】
Step5−5:置換が正当であることをゼロ知識証明を使って証明するため
Proof1:=(e1,e2,z11,z12,z21,z22)
を出力する。
置換網10の終端で得られる出力をR1,R2,R3,R4とする。このとき、各RiをRi=(M’i,G’i)とおくと、以下の関係が成り立つ。
M’i=mF(i)yt’
G’i=gt’
ここで、F(*)は{1,2,3,4}→{1,2,3,4}なる置換関数の一つである。即ち、RiはメッセージmF(i)に対する通常のEl Gamal暗号文であり、復号は通常のEl Gamal復号手順で行うことができる。
【0026】
復号装置20は図7に示すように復号部21と、復号証明部22と、メモリ23と、これらの動作を制御する制御部24とから構成されている。復号部21は図8に示すようにべき乗演算器21Aと、剰余除算器21Bとから構成されている。又、復号証明部22は図9に示すように、乱数生成部22Aと、べき乗演算器22Bと、ハッシュ演算器22Cと、剰余乗減算器22Dとから構成されている。
【0027】
復号装置20は、R1〜R4を順次以下のように処理する。
Step1:制御部24は入力Riを順次受信し、復号部21へ入力する。また、メモリ23からx,pを復号部21へ入力する。
Step2:復号部21では、図8に示すようにべき乗演算器21AへG’i 及びx,pを入力し、
Ki:=G’i xmodp
を計算する。
【0028】
Step3:M’i,p及び、べき乗演算器21Aの出力を剰余除算器21Bへ入力し、
mi:=M’i/Kimodp
を計算し、復号結果として出力する。
続いて、復号装置20は正しく復号が行われたことを証明するProofDを、復号証明部22により以下のように作成する。
【0029】
Step1:復号証明部22は図9に示すように乱数生成器22Aにより乱数w∈Zqを生成し、べき乗演算器22Bへ入力する。
Step2:べき乗演算器22Bは、まずT0:=gwmodpを計算し、次に、各G’i に対してTi:=G’i wmodpを計算し、T0,…,TNをハッシュ演算器22Cへ入力する。この例ではN=4 である。
Step3:ハッシュ演算器22Cは、c:=Hash(y,T0,K1,T1,…,KN,TN)を計算し、cを剰余乗減算器22Dへ入力する。
【0030】
Step4:剰余乗減算器22Dはz:=w−cx(modq)を計算し、c, z, K1,…, KNと共に出力する。
このとき、ProofD:=(c,z,K1,…,KN)とする。
検証端末200 は、まず、置換が正しく実行されたことを確認するため、置換検証部30を駆動する。置換検証部30は図10に示すようにべき乗乗算器31と、ハッシュ演算器32と、比較器33と、加算器34とから構成されている。置換検証部30は、i番目の切換装置SWi によるProofiを以下のように検証する。
Step1:べき乗乗算器31を駆動し、
【0031】
【数4】
を計算する。
【0032】
Step2:S11,S12,S21,S22及びI1,I2,O1,O2をハッシュ演算器32へ入力し、その出力cを比較器33へ入力する。
Step3:e1,e2を加算器34へ入力し、e1+e2を計算する。その結果を、比較器33へ入力する。
Step4:比較器33へqを入力し、e1+e2=c(modq)が成り立つか否かを検査する。成り立つ場合はOKを、成り立たない場合はNGを出力する。このようにして置換が正しく行われたことは、その置換を生じさせた乱数bを示すことなく零知識証明により検証される。
【0033】
上記の検証を全ての切換装置の入出力に対して行い、NGとなるような証明を出力した切換装置が存在した場合はその切換装置は故障しているものと見なす。上記検証が全てOKの場合、次に、復号が正しく行われたこと検証するため、復号検証部40へR1, …, R4, m1, …, m4及びProofDを入力する。図11に復号検証部40のブロック図を示す。復号検証部220 は、剰余除算器41と、比較器42と、べき乗乗算器43と、ハッシュ演算器44と、比較器45とから構成され、以下のように復号化の検証を行う。
【0034】
Step1:剰余除算器41へM’i とKiを入力してM’i/Kiを計算し、その結果をmiと共に比較器42へ入力して比較する。両者が等しくない場合には、比較器42はNGを出力し、検証結果をNGとする。全てのi=1, …, Nに対して比較結果がOKならば、次のステップへ進む。
Step2:べき乗乗算器43を駆動し、gzyc及び、G’1 zK1 c,…,G’N zKN cを計算し、ハッシュ演算器44へ入力する。
【0035】
Step3:ハッシュ演算器44を駆動し、
e:=Hash(y,gzyc,K1,G’1 zK1 c, …,KN, G’1 zK1 c)
を計算する。
Step4:c及び、ハッシュ演算器44が出力したeを比較器45へ入力し、両者が等しければOKを、等しくなければNGを出力する。
復号が正しく行われた場合には、
gzyc=gw−cxyc=gw=T0
及び、
G’i zKi c=G’i w−cxKi c=G’i w=Ti
が成り立つので、ハッシュ演算器44の出力はcと等しくなる。
【0036】
この実施例では、各切換装置で用いたランダムな要素、即ち、b, t1, t2, w1,w2が全て秘密に保たれる場合には、Ei→mjの対応はどのようなi, jについても秘匿される。この様に、この第1実施例においては、それぞれの切り換え装置におけるランダム置換の正当性をそれぞれの切り換え装置で証明するよう構成しているため、特に匿名通信路の全入力の数Nが増大すると前述したR.Cramer等の方法でランダム置換の正当性を証明する場合に比べ、必要なデータ処理量が著しく少なくてすむ。
第2実施例
この実施例ではいくつかの切換装置におけるランダム要素が漏洩した場合についても全体として各入出力の対応が秘匿されるような構成について説明する。
【0037】
この実施例では、図12に示すようにいくつかの切換装置の仕事を順次実行する「置換サーバ」を用い、V個の置換サーバPS1,...,PS4によって置換網10を構成する。また、復号を実行する復号サーバ20Sを用いる。以下では、V=4 個の置換サーバを用い、入力が4メッセージである場合について説明する。各置換サーバPS1〜PS4及び検証端末200 は掲示板400 に接続されているものとする。掲示板400 は、認証された利用者からの書き込みE1, E2, ...,ENを受け付け、一旦書き込んだ情報は消すことができないという機能を有する。また、書き込まれた情報は誰もが読み出すことができるものとする。この実施例も、第1実施例と同様に置換網10内の各置換サーバPSが有する各切換装置SW(図13)は復号を行なわず、入力暗号のランダム化(暗号の変換)とランダム置換を行ない、最後に復号サーバが復号を行なう。
【0038】
図13に各置換サーバPSのブロック図を示す。置換サーバPS中の切換装置SWの構成は制御部15とメモリ11が切換装置の外側にあることを除いて図4の切換装置SWと同様である。
図14に復号サーバ20Sのブロック図を示す。復号サーバ20Sは置換検証部30S、復号部21S、復号証明部22Sを有しており、これらはそれぞれ図10、8、9に示した置換検証部30、復号部21、復号証明部22と同様である。復号サーバは更にメモリ23Sと制御部24Sを有している。
【0039】
このシステムは、4つの置換サーバPS1,...,PS4によって、4入力の完全置換網を2つ構成した場合である。この場合のデータの流れを図15に示す。図中には示してないが、置換サーバ間のデータの転送は全て図12に示したように掲示板400 を介して行われる。即ち、各置換サーバPSj は、置換出力を掲示板400 に書き込み、次段の置換サーバPSj+1 はそのデータを掲示板400 から読み込んで置換処理を行う。置換サーバPS1は、第1実施例における切換装置SW1 とSW2 の仕事を実行し、掲示板400 を介して処理結果を置換サーバPS2へ送出する。以下同様に、置換サーバPS2は切換装置SW3,SW4,SW5、置換サーバPS3は切換装置SW6,SW7、置換サーバPS4は切換装置SW8,SW9,SW10の仕事を実行する。図13に示すように、実際に各置換サーバPS内に設置される切換装置SWの数は1つであり、適切な入力を制御部15が与えることによって図15のデータの流れを実現する。あるいは、実際に複数の切換装置SWを1つの置換サーバに設置しても良い。
【0040】
図12、15に示すように、縦続接続された置換サーバPS1〜PS4は少なくとも2つの縦続接続された完全置換網を形成している。各置換サーバPSの出力は、掲示板400 に接続された置換検証部30Sを持つ復号サーバ20Sによって第1実施例の場合と同様に置換Proof が検証され、不正な入出力関係が検出された場合はその置換サーバを故障しているものと見なす。その場合、故障とみなした置換サーバを排除して別の置換サーバで処理を代行するか、あるいは、故障した置換サーバが1つだけならば、その置換サーバによる処理を省略してしまっても良い。
【0041】
復号サーバ20Sは、全ての置換が正しいことを検証した後、復号部21Sで置換網10の出力(最終段置換サーバPSV の出力)を復号すると共に、復号証明部22Sで、復号証明ProofDを生成し、掲示板400 に書き込む。検証端末200 は各置換サーバにより掲示板400 に書き込まれている各置換Proof1〜Prool4からを検証し、更に復号サーバにより書き込まれた復号結果(メッセージm1,...,mN)と復号証明ProofDを第1実施例と同様の手順で検証する。
【0042】
上記の構成によれば、ある置換サーバが攻撃されるなどして、ランダム要素が漏洩してしまい、その置換サーバにおける置換が第三者に明らかになってしまった場合に於いても、残りの置換サーバにおけるランダム要素の秘匿性が保たれる限りは、全体の置換関係は秘密に保たれる。例えば、置換サーバPS1の実行した置換関係が明らかになっても、置換サーバPS3、置換サーバPS4で完全な置換網を構成しているので、入出力のどのような置換関係も実現し得る。同様に、どの1つの置換サーバの置換関係が漏洩しても、必ず他の2つの置換サーバによって完全な置換網が構成されており、それによって、秘匿性を保つことが可能である。
第3実施例
図16に示す第3実施例では、第2実施例における復号サーバ20S を複数の復号サーバ20S1,…,20SLに分割して、複数の復号サーバ全体で単一の復号サーバを用いた場合と同一の機能を実現する。この実施例によれば、あるt<Lなるtに対して、少なくともt+1 個の復号サーバ20S が正常に動作すれば正しい結果を得ることができるため、耐故障性が向上する。又、図12の復号サーバ20S が1つの場合には、復号サーバ20S が復号を開始すればいつでも復号結果を得ることができるので、例えば投票の集計を予め決めた時間に公表する前にその投票結果の内容を不正に洩らしてしまうことが起こりえる。これに対し、図16の実施例では、前復号サーバ20S1〜20SLが処理を終了しないと復号結果が得られないので、これらのサーバのうち少なくともt+1 個の復号サーバが協力して不正を行なわない限りどの復号サーバからも復号結果が公表前に洩れてしまうことはない。
【0043】
復号サーバを除くシステム構成は第2実施例と同様である。各復号サーバDiには復号鍵xをt次の多項式で秘密分散した値xiが格納されているものとする。即ち、F(0)=x(modq)を満たす、t<Lなるあるt次のランダム多項式F(X)∈Zq[X] があり、各xiはxi=F(i)modq を満たす値である。各復号サーバ20Sjの構成は、図14に示した復号サーバ20Sにおいてxの代わりにxiをメモリ23Sに格納すること及び、復号部21Sの内部構成を除き、図14と同様である。この実施例の復号サーバにおける復号部21Sは図17に示すように、べき乗乗算器21SAと有し、これは図8に示したべき乗乗算器21Aと同様の処理を行なう。
【0044】
置換サーバPS1,...,PSVの構成、動作は図12に示した第2実施例と同様である。各復号サーバ20Stは、全ての置換サーバPS1,...,PSVの入出力関係を第2実施例と同様に検証する。最終段の置換サーバPSV から正しい置換出力R1〜RNが得られ、置換検証が完了した後、各復号サーバは復号を実行する。j番目の復号サーバ20SjはR1〜RNを順次以下のように処理する。
Step1:制御部は入力Riを順次受信し、復号部21S(図14参照)へ入力する。また、メモリ23Sからxi,pを復号部21Sへ入力する。
【0045】
Step2:復号部21S(図17参照)では、べき乗演算器21SAへG’i 及びxj, pを入力し、Kj,i:=G’i xjを計算する。
続いて、復号証明部22S(図14参照)は正しく復号が行われたことを証明するProofDj を、復号証明部を駆動して作成する。実際の動作は、第1実施例の復号証明動作においてxをxjに、yをyjに入れ換えた場合と同様である。この証明部の出力を
ProofDj:=(cj, zj, Kj,1,…,Kj,n)
とする。
【0046】
検証端末200 の構成は図2と同様である。但し、復号検証部40は図18に示す構成となる。この復号検証部の動作は、第1実施例における復号検証部の動作のStep2〜4と同様である。t+1 以上の復号サーバに対する検証がOKとなるならば、検証端末はOKを出力する。
この実施例では、復号サーバ20Sjの出力はKi,jであり、実際に各復号結果miを得るには以下の手順を実行する。まず、A⊆{1,…,L}を、|A|>t+1となるように定める。ただし、j∈Aなるjに対して、復号サーバ20Sjの出力は、復号検証に合格していなければならない。今、λj ,Aを次式
【0047】
【数5】
で定義される補間係数とする。すると、メッセージmiは次式
【0048】
【数6】
で得ることができる。これは、x=Σλj,AAxjmodq(Σはj∈Aについて)が成り立つため、
【0049】
【数7】
となり、第1実施例における復号動作と等価になる為である。
上記計算手順を各復号サーバが実行することも可能である。その場合には、第1実施例と同様の検証手順で復号検証を行えばよい。
第4実施例
前述の第2及び第3実施例においては各置換サーバPSは入力された複数の暗号文を撹乱し、かつその入力の順番をランダムに入れ換えて次の置換サーバへ送ることを順次行ない、最終段の置換サーバが出力した暗号文を復号サーバが復号して平文を得る。得られた平文は誰れにより投票されたものであるかは不明であるが、正しく投票されたものであることを検証できる。
【0050】
この第2及び第3実施例では、不正な処理を行なった置換サーバが検出された場合、例えばV個の置換サーバのうちt個の出力が信頼できなかった場合、不正処理を回復する為には、t回の不正回復処理を行うことが考えられる。匿名通信路の信頼度が下がれば下がる程(即ち、tが大きくなる程)、不正回復処理に要する時間が大となり、匿名通信路としての処理能力が下がる事になる。
以下に説明する第4実施例は、匿名通信路の信頼度が、ある程度低くなっても、検証可能匿名通信路としての機能を保ちつつ、効率的に不正回復を行い、必要とされる帯域(通信速度)を確保する。
【0051】
第1、第2及び第3実施例では、各切換装置SW,あるいは置換サーバにおいては復号化処理を行なわず、復号化装置又は復号サーバにおいて一括して復号を行なう場合を示したが、この第4実施例では、各置換サーバにおいて部分復号化を行なう場合を示す。ただし、各置換サーバでは、それぞれの置換段で入力暗号文Iを変換し、部分復号化は置換の最終段においてまとめて行なうことにより、各置換段において部分復号化を行なうよりは処理速度を高めている。
【0052】
この実施例では以下、各置換サーバで行われる部分復号処理をfとし、任意の秘密鍵Xを持った置換サーバの任意の入力文Iに対応する出力文をfX(I) とする。
各置換サーバで行われる部分復号処理fを次のような処理に限定する。
・交換可能
任意の秘密鍵A,Bに対してfA(fB(I))=fB(fA(I)) なる関係が成り立つ。
・一括復号化可能
任意で既知の秘密鍵A,Bに対してfA(fB(I))=fg(A,B)(I)なる関数g(A, B)が存在し、fA (fB(I))の計算に対してfg(A,B)(I)の計算が高速に実行可能である。
【0053】
このような前提においてこの実施例では、ある置換サーバの出力が信頼できない場合、その置換サーバより上流で最も近くにある、不正処理がないと判定された置換サーバの信頼できる情報のみを用いてランダム置換・撹乱・部分復号処理を行ない、不正処理に対する補償動作を行わずに次の処理を進める。
各置換サーバの秘密鍵は、予め他の全ての置換サーバに検証可能に秘密分散されており、信頼できない置換サーバが検出された場合、残りの各置換サーバはそれより上流の信頼できる置換サーバの情報を使ってランダム置換・撹乱・部分復号処理を行ない、全ての信頼できる置換サーバによる処理が完了した段階で、信頼できない置換サーバの分散秘密鍵の全てを信頼できる置換サーバが集めて共同で復元する。信頼できない置換サーバが部分復号処理することになっていた情報部分についての部分復号処理(補償動作)を、信頼できない置換サーバの復元秘密鍵の全てを用いて、一括して行う。この一括処理によって、複数の置換サーバの出力が信頼できない場合でもたった1回の補償動作を行うだけで不正回復を行う事が可能である。
【0054】
この第4実施例においては、置換サーバが用いる交換可能でかつ一括化可能な部分復号処理の一例として以下の説明ではEl Gamal分散復号系を挙げる。一般化されたEl Gamal暗号系においても、上記性質が満たされれば適用可能である(例えば楕円El Gamal暗号)。
この第4実施例ではいくつかの置換サーバにおけるランダム要素が漏洩した場合についても全体として各入出力の対応が秘匿されるような構成について説明する。
【0055】
この実施例では、いくつかの証明付きランダム置換・撹乱・部分復号の仕事を順次実行する置換サーバを用い、V個の置換サーバによって匿名通信路を構成する。
図19はこの第4実施例のシステム構成例であり、図12及び16の実施例と同様に置換サーバPS1〜PSVは掲示板400 に接続されている。この実施例では各置換サーバに他の置換サーバの処理に対する検証機能と入力暗号文に対する部分復号機能を持たせているため、図12及び16の実施例のような検証サーバ及び復号サーバは設けられてない。各置換サーバは、第2及び第3実施例における各置換サーバ内の複数の切換装置SWにより構成された置換部に対応する置換部P50 に加えて、他の置換サーバの処理に不正がないかを判定する判定部P60 と、ランダム置換・部分復号の証明を行なう検証部P70 を有している。置換サーバPS1〜PS5の置換部P501〜P505は掲示板400 を介して図19に示すように縦続接続される。各置換部P501〜P505は置換・撹乱部分復号を行う複数の切換装置SWを有している。検証端末200 は独立して設けるのではなく、それぞれの置換サーバに設けられている。
【0056】
図20は図1のシステムにおける置換サーバ間の掲示板400 を介したデータの流れを、掲示板を省略して示すため、図19における置換サーバPS1〜PS5内の置換部P501〜P505のみを示している。これら5つの置換部P501〜P505はこの例では縦続接続された2つの置換部P501とP502で1つの8入力完全置換網を形成し、縦続接続された2つの置換部P503とP504で同様に1つの8入力完全置換網を形成し、置換部P505は単独で8入力完全置換網を形成している。従って、全体で縦続接続されたこれら3つの8入力完全置換網を形成している。
【0057】
各8入力完全置換網を形成するには4×5格子上に配列された全ての2入力2出力の単位切換装置SWが切換可能である必要はなく、破線ブロックで示す切換装置SWでは入出力位置関係を固定しても、残りの切換装置の切換の組み合わせて全ての組の置換が実現できる。そこで、置換サーバでの処理量を削減するため、このような入出力関係を固定してもよい切換装置では入力データに対する置換処理は行なわない。これらの固定接続切換装置をSWFで示してある。しかしながら、この発明の目的とする匿名通信路を構成する置換網を通して暗号文を復号する場合、入力データに対し選択された経路によって復号処理を受ける回数が異なると復号処理が複雑になり不都合である。
【0058】
この発明ではこのような固定接続切換装置SWFにおいても、入力データに対し置換処理以外の処理(撹乱、部分復号、証明生成など)は実施する。以下の説明では置換・撹乱・部分復号・証明生成などの全ての処理を実施する切換装置SWを証明付PR部分復号器と呼び、置換を行なわない切換装置SWFを証明付固定部分復号器と呼ぶ。また置換撹乱(permutation/randomization)を単にPRで表す。
【0059】
図19の実施例では、入力が8メッセージであり、5つの置換サーバPS1〜PS5を用い、5つのうち2つの置換サーバの処理に不正である場合でも正しい置換・撹乱・部分復号を実行出来るものである。各置換サーバPS1〜PS5の構成要素の証明付きPR部分復号器SWは図21または図28に示すように構成され、証明付き固定部分復号器SWFは図27に示すように構成される。これらについては後で詳述する。各置換サーバPS1〜PS5はそれぞれ検証器P70 を備える。各検証器P70 はPR証明検証器P70Aと、部分復号証明検証器P70Bと、及びPR部分復号証明検証器P70Cをもって構成される。
【0060】
掲示板400 は、認証された利用者からの暗号文の書き込みを受け付け、一旦書き込んだ情報は消すことができないという機能を有する。書き込まれた情報は誰もが読み出すことができるものとする。
このシステムは、5つの置換サーバPS1〜PS5によって、それぞれ8入力の縦続接続された3つの完全置換網10A〜10Cからなる匿名通信路100 を構成している。3つの完全置換網10A〜10Cのうち2つの完全置換網のランダム要素が漏洩しても残った完全置換網によって入出力の対応関係を完全に秘匿することが出来る。
【0061】
置換サーバPS1〜PS5は予め決めた順番でデータの処理を行ない、各置換サーバは自段より前段の置換サーバの入出力データと証明情報を掲示板400 から読み込む。その入力の際に自身が持つ検証器P70 によってその前段の置換サーバの信頼性をその入出力データと証明情報に基づいて検証し、不正な入出力関係が検出された場合、つまり出力の信頼性がない場合はその置換サーバは故障しているものと見なす。その場合、不正のない置換サーバが見つかるまで順番を遡り、不正でないと判断された最も近い置換サーバの出力を使って処理を行う。
【0062】
各置換サーバは他のどの置換サーバに対しても検証可能であり、不正な入出力関係が検出されない置換サーバ同士が協力して、不正な置換サーバが担当する復号処理に対する補償動作を行う。そのために、予め全ての置換サーバのもつ秘密鍵を全ての置換サーバが秘密分散によって共有しておく。
先にも述べたように、各置換サーバは複数の証明付きPR部分復号器の仕事を順次実行するものであり、置換サーバ内の各証明付PR部分復号器SWは、例えば図21に示すように、証明付き置換撹乱器120 と証明付き部分復号器140 とよりなり、証明付き置換撹乱器120 は例えば置換撹乱器121 と置換撹乱証明生成器122 とよりなり、証明付き部分復号器140 は例えば2つの証明付部分復号器141、142 よりなる。
【0063】
図21は、2入力のEl Gamal暗号文を置換撹乱処理し、秘密鍵の部分情報を用いて部分復号し、置換撹乱復号結果及びその正当性の証明を出力する証明付きPR部分復号器SWの構成の一例を表している。この証明付きPR部分復号器SWは図20中の一括不正回復付き検証可能匿名通信路等に用いられる。
この証明付きPR部分復号器SWでは、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
【0064】
Step1:証明付き置換撹乱器120 は乱数情報内の各種情報を用いて入力の(M0,G0),(M1, G1)を置換撹乱処理した結果の(M0 +, G0 +),(M1 +, G1 +)及びその正当性の証明である証明情報0を出力する。
Step2:証明付き置換撹乱部分復号器SWは(M0 +, G0 +),(M1 +, G1 +)を証明情報の一部として出力する。
Step3:証明付き固定部分復号器140 は乱数情報内の各種情報を用いて入力の(M0 +, G0 +),(M1 +, G1 +)を部分復号した(M’0, G’0 ),(M’1, G’1)及びその正当性の証明である証明情報1を出力する。
【0065】
なお、この証明付き置換撹乱部分復号器SWにおける置換と、撹乱と、部分復号との処理順は任意に選らべる。ただしその処理順に応じて証明情報の内容が異なるものとなる。
置換撹乱器121 は例えば図22に示すように置換器121Aと撹乱器121B,121Cとよりなる。撹乱器121B、121Cは同じ構造であり、図23に示すように2つの乗算器121B1と121B2を有している。以下これらの各部の機能構成を順次説明する。
撹乱器121B(121C)
図23は図22に示す撹乱置換器121 において入出力の対応を隠蔽する為に、入力のEl Gamal暗号文を撹乱する撹乱器121B(121C)の構成の一例を表している。入力のEl Gamal暗号文を(M, G)とすると、平文m及び公開鍵(Y, g) 及び秘密鍵X及び乱数wに関して次式
Y= gX ,G= gw ,M=mYw
が成り立っている。入力暗号文(M, G) を撹乱するとは、撹乱処理を行う者以外には秘密の乱数rによりM及びGの入力前に計算された秘密のパラメータg−r及びY−rを用いて乗算器12B1, 121B2で
M’ ← M×Y−r,
G’ ← G×g−r
をそれぞれ計算し(M’, G’) を出力することである。出力の(M’, G’) は
M’ = mYw−r ,G’ = gw−r
を満たすので、平文m及び公開鍵(Y, g) 及び秘密鍵X及び乱数w−r に関するEl Gamal暗号文である。
【0066】
この撹乱器121Bでは、以上の演算が実行されるが、同時実行可能な場合は、並列に実行しても良い。また実行順序が交換可能な場合は実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
置換撹乱器121
図22は2入力のEl Gamal暗号文(M0 , G0 )及び(M1 ,G1 )を撹乱置換する置換撹乱器121 の構成の一例を表している。El Gamal暗号文(M, G) を乱数rで撹乱して出来たEl Gamal暗号文をD(M, G, r)と記述する事にする。置換撹乱処理を行う者以外には秘密の置換パラメータB∈{0, 1}に従って、
B=0 のとき
(M’0 , G’0 ) ← D(M0 , G0 , r0 )
(M’1 , G’1 ) ← D(M1 , G1 , r1 )
B=1 のとき
(M’0 , G’0 ) ← D(M1 , G1 , r0 )
(M’1 , G’1 ) ← D(M0 , G0 , r1 )
なる出力メッセージ(M’0 , G’0 )及び(M’1 , G’1 )を出力する。
【0067】
置換撹乱器121 は置換器121Aと、撹乱器121B, 121Cとからなる。撹乱器121B及び撹乱器121Cは図23に示したように2つの乗算器121B, 121B2から構成される。この置換撹乱器121 では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
【0068】
Step1:置換器121Aはもし置換パラメータBがB=0 ならば、
(L0 , L1 ) ← (M0 , G0 )
(L2 , L3 ) ← (M1 , G1 )
とし、B=1 ならば、
(L0 , L1 ) ← (M1 , G1 )
(L2 , L3 ) ← (M0 , G0 )
とする。
【0069】
Step2:撹乱器121Bは撹乱パラメータ(Y−r0 , g−r0)を用いて、入力の(L0 , L1 )を撹乱して(M’0 , G’0 )を出力する。
Step3:撹乱器121Cは撹乱パラメータ(Y−r1 , g−r1 )を用いて、入力の(L2 , L3 )を撹乱して(M’1 , G’1 )を出力する。
つまり、Gi とG’j の対応B=i(+)j, ただしi, j∈{0, 1}、を隠蔽するために出力を撹乱処理している。従ってr0 ,r1 の値だけでなくg−r0,Y−r0 ,g−r1 ,Y−r1 の値も秘密にする必要がある。なお図22では置換した後に撹乱を行ったが撹乱した後に置換を行ってもよい。
置換撹乱証明生成器122
図21における置換撹乱証明生成器122 は置換撹乱器121 が正しく動作している事を秘密情報(B∈{0, 1}及び撹乱用パラメータの値)を明かさずに証明する。この証明をするためにはb=i(+)jであるとして、
b=0なる全てのi, j∈{0, 1}に関して
logY (Mi /M’j)= logg(Gi /G’j )
またはb=1なる全てのi, j∈{0, 1}に関して
logY (Mi /M’j )= logg (Gi /G’j ) ・・・(命題1)
を示さなくてはならない。そのためにこの置換撹乱証明生成器3Aから以下に述べる証明情報Tij,Wij,zij,eb を演算して出力する。
【0070】
入力のBは置換撹乱器121 中の置換器121Aに入力された置換パラメータである。入力のrj , (j∈{0, 1})は置換撹乱器121 中の撹乱器121B,121Cに入力された撹乱用の乱数である。入力のe, Rij(i, j∈{0, 1})は証明用の乱数である。入力のYRij,gRij (i, j∈{0, 1})は入力のMi ,Gi ,M’j ,G’j (i, j∈{0,1})が入力されるより前に計算された証明用のパラメータである。これら情報{B, rj, e, Rij, YRij, gRij}を乱数情報RDMと呼ぶことにする。
【0071】
出力のeb ,Tij,Wij,zij,((b, i, j∈{0, 1})はb=i(+)jとして(Mi ,Gi )と(M’j ,G’j )の対応を証明するか、または対応を装って証明する為の情報である。
この置換撹乱証明器122 では、図のように演算が実行される。つまりi, j∈{
0,1}に関して
i(+)j=Bならば
Tij ← YRij , Wij ← gRij
i(+)j=B’(B’はBの反転を表す)ならば
Tij ← (Mi /M’j )eYRij ,Wij ← (Gi /G’j )egRij
B=0ならば
e0 ← −e+h(T00,T01,T10,T11,W00,W01,W10,W11)
e1 ← e
B=1ならば
e1 ← −e+h(T00,T01,T10,T11,W00,W01,W10,W11)
e0 ← e
任意のi, j∈{0, 1}に関して、
i(+)j=Bならば zij ← Rij−eBrj
i(+)j=B’ならば zij ← Rij
この演算により証明者(置換撹乱証明生成器121 )は証明情報VRF={eb , T ij,Wij,zij}を出力する。
【0072】
なおこの演算において、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行
しても良い。
PR証明検証器P70A
図19の各置換サーバに設けられた検証器P70 内のPR証明検証器P70A は 図21に示した置換撹乱器121 が正しく動作している事を検証するため、PR 証明生成器122 の出力、つまり証明情報VRF={eb ,Tij,Wij,zij}を検 証する。
【0073】
入力のeb ,Tij,Wij,Zij,(b, i, j∈{0, 1})は置換撹乱証明生成 器122 の出力であり、b=i(+)jとして(Mi,Gi )と(M’j,G’j )の対応 を証明するか、または対応を装って証明する為の情報である。
この検証器P70AにはTij,Wij,zij,eb の他にM0 ,G0 ,M1 ,G1 ,M’0 ,G’0 ,M’1 ,G’1 が入力されて、次式
e0+e1 = h(T00,T01,T10,T11,W00,W01,W10,W11)
が成立するかを確かめ、これが成立しなければ偽を出力して終了する。関数h
は一方向性関数を表わす。
【0074】
その後、全てのi, j∈{0, 1}に関してb=i(+)jであるとして、
Tij= (Mi /M’j )ebYzij かつ
Wij= (Gi /G’j )ebgzij
が成立するかを確かめ、これが成立しなければ偽を出力して終了する。前記両
確認が共に成立すれば真を出力する。
不正な証明者が何らかの手段で事前に用意したeb ,zijを使って、
Tij ← (Mi /M’j )ebYzij ,
Wij ← (Gi /G’j )ebgzij
を計算し出力しようとしてもh(x0, x1, …)の非予測性により、e0, e 1 のどちらか一方は事前に計算することが困難なので命題1の証明となる。
【0075】
出力は置換撹乱器が正しく動作したかどうかの推定であり、真理値である。
この置換撹乱証明検証器P70Aでは、上述のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数
の演算は、装置を一元化して、順次演算を実行しても良い。
【0076】
証明付き置換撹乱器120
証明付置換撹乱器120 は2入力のEl Gamal暗号文(M0, G0),(M1, G1 )を置換撹乱処理した(M’0, G’0),(M’1, G’1)及び、正しい処理が行 われた事の証明を秘密情報を明かさずに出力する(零知識証明)。この証明付 き置換撹乱器120 は置換撹乱器121 と置換撹乱証明生成器122 とから構成され る。
この証明付き置換撹乱器120 では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数
の演算は、装置を一元化して、順次演算を実行しても良い。
【0077】
Step1:置換撹乱器121 は入力の(M0, G0 ),(M1, G1)を入力のBと 撹乱パラメータg−r0, Y−r0, g−r1, Y−r1で置換撹乱処理し、(M’0, G’0),(M’1, G’1)を出力する。
Step2:PR証明生成器122 は入力(M0, G0), (M1, G1)及び出力(M ’0, G’0), (M’1, G’1)及び乱数情報RDM={B, rj, e, Rij, YRij, g Rij}を使って証明情報VRF={eb, Tij, Wij, zij}を出力する。
【0078】
証明付部分復号器141
図24,25,26を参照して図21の証明付部分復号器141, 142を説明する。証明付部分復号器141 は図24に示すように部分復号器141Aと部分復号証明生成器141Bとから構成されている。部分復号器141Aと部分復号証明生成器141Bは図25及び26に更に詳細に示されている。証明付部分復号器142 も141 と同様の構成とされているので、証明付部分復号器142 の説明は省略する。
【0079】
図25はEl Gamal暗号文を秘密鍵の部分情報を用いて部分復号する部分復号器141Aの構成の一例を表している。入力のEl Gamal暗号文を(M,G)とすると、
平文m及び公開鍵(Y,g)及び乱数に関して
M=mYw ,G=gw
が成り立っている。
いまY=y×y’及びy=gx なる秘密鍵の部分情報xの値を部分復号者が知って いるとする。部分復号者は入力の(M,G)に対してM’ ← M×G−xを計算して(M ’,
G)を出力する。出力は
M’= my’w ,G=gw
を満たすので、平文m及び公開鍵(y’, g)及び乱数wに関するEl Gamal暗号文
となる。
【0080】
部分復号器141Aは冪乗器141A1 と乗算器141A2 からなる。この装置では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算
を実行しても良い。
Step1:冪乗器141A1 は入力の−x及びGを用いてL0 ← G−x を計算してL 0を出力する。
【0081】
Step2:乗算器141A2 は入力のM及びL0を用いてM’ ← M×L0を計算し てM’を出力する。
Step3:部分復号器141Aは入力のGをそのまま出力する。
部分復号証明生成器141B
図26は図25に示した部分復号器141Aが正しく動作している事を秘密情報を明かさずに証明する部分復号証明生成器141Bの構成の一例を表している。こ
の証明をするためにはy=gx なる秘密鍵xの値を明かさずに、
xの値を知っており、かつM/M’=Gx が成立する(命題2)
を零知識証明で示す。証明は二つの離散対数 logg y及び logG (M/M’)が等し
い事を、Chaum−Pedersenのプロトコルで示す。
【0082】
入力のRは証明者以外には秘密の乱数であり、gRはGが入力される前に計 算されているものとする。この部分復号証明生成器141Bは冪乗器141B1 と、ハ ッシュ器141B2 と、レジスタ141B3 と、乗算器141B4 と、減算器141B5 とから なる。
ハッシュ演算器141B2 は一方向性ハッシュ関数hを計算する為の装置で、ハッシュ関数の仕様は公開されているものとする。この装置では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行して
も良い。
【0083】
Step1:冪乗器141B1 は入力のR及びGを用いてT←GR を計算してTを出 力する。
Step2:ハッシュ器141B2 は入力のT及びレジスタ141B3 に保持されている
V=gRを用いてe←h(T, V)を計算してeを出力する。
Step3:乗算器141B4 は入力のe及びxを用いてL0 ←e×xを計算してL 0を出力する。
【0084】
Step4:減算器141B5 は入力のR及びL0を用いてs←R−L0 を計算して sを出力する。
Step5:T,V,e,sを証明情報VRF として図19の部分復号証明検証器 P70Bへ出力する。
部分復号証明検証器P70B
図21中に示した部分復号証明生成器141B(142B)の出力を検証する部分復号証明検証器P70Bは部分復号器141A(142A)が正しく動作していることを検証するものであって、「部分復号器141Aがxの値を知っており、かつM/M’=Gx が成
立する(命題2)」に対して、その真偽を判定して出力する。
【0085】
図26に示した部分復号証明生成器141Bの出力をChaum−Pedersenのプロトコルに従って検証する。hは仕様の公開された一方向性ハッシュ関数であるとす
る。g,yは先に述べたように公開されている。
この装置では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一
元化して、順次演算を実行しても良い。
【0086】
Step1:部分復号証明検証器P70B(図19)は入力のe, T, V に対して
e= h(T, V)
でなければ偽を出力して終了する。
Step2:部分復号証明検証器P70Bは入力のm, M’. G, e, s に対して
T=(M/M’)eGs
でなければ偽を出力して終了する。このことはM’=MG−x,s=R−exの関係を代入してみれば、正しければ等号が成立つことから理解される。
【0087】
Step3:部分復号証明検証器P70Bは入力のV, e, s に対してV=yegs でなければ偽を出力して終了する。このことはV=gR ,y=gx ,s=R−exなる関係から理解される。
Step4:部分復号証明検証器P70Bは全ての検証が成立すれば真を出力して終了する。
以上は図20で説明した各完全置換網における切換装置としての各証明付PR部分復号器SWの機能構成とそれに関連した検証器P70Bの説明であった。次に、図20に示した完全置換網における証明付固定部分復号器SWFについて説明する。
証明付き固定部分復号器SWF
図27は2入力のEl Gamal暗号文を秘密鍵の部分情報を用いて部分復号し、復号結果及び各々の復号結果の正当性の証明を出力する証明付き固定部分復号器SWFの構成の一例を表している。
【0088】
この証明付き固定部分復号器SWFは前述のように図20の置換網において固定した置換と証明付部分復号を行なうために用いられる。この証明付き固定部分復号器SWFは図27に示すように証明付き部分復号器141Fと証明付き部分復号器142Fとからなる。証明付き部分復号器141F, 142Fはそれぞれ図24に示した証明付き部分復号器と同様に構成される。
この証明付き固定部分復号器SWFでは、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
【0089】
Step1:証明付き部分復号器141Fは入力の−x及び(M0, G0)及び乱数情報0を用いて(M0, G0)を部分復号した結果の(M’0, G0)及びその正当性の証明である証明情報0を出力する。
Step2:証明付き部分復号器142Fは入力の−x及び(M1, G1)及び乱数情報1を用いて(M1, G1)を部分復号した結果の(M’1, G1)及びその正当性の証明である証明情報1を出力する。
証明付きPR部分復号器SW
図20における証明付きPR部分復号器SWとして、前述の図21に示したものとは異なる構成例を図28に示す。
【0090】
図28は2入力のEl Gamal暗号文(M0, G0),(M1, G1)を置換撹乱部分復号処理した(M’0, G’0),(M’1, G’1)及び、正しい処理が行われた事の証明を秘密情報を明かさずに出力する証明付きPR部分復号器SWの構成の図21とは異なる例を示す。図21の例では、置換かく乱に対する証明と部分複合に対する証明を別々に行ったが、図28では置換撹乱部分復号した結果に対し証明を行っている点が異なる。
【0091】
この署名付PR部分復号器SWはPR部分復号器124 とPR部分復号証明生成器125 からなる。PR部分復号器124 は置換撹乱器124Aと2つの部分復号器124B, 124Cとから構成されている。
このPR部分復号器SWでは、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
【0092】
Step1:PR部分復号器124 は入力の(M0, G0),(M1, G1)を入力のB及び撹乱パラメータ、秘密鍵の部分情報で置換撹乱部分復号処理した(M’0, G’0),(M’1, G’1)を出力する。
Step2:PR部分復号証明生成器125 は入力の(M0, G0),(M1, G1)及び(M’0,G’0)、(M’1, G’1)及び乱数情報を使って証明情報を出力する。
この証明付きPR部分復号器SWにおいても置換と、撹乱と、部分復号との順は任意に変更してもよい。
【0093】
図28における置換撹乱器124Aは図22に示した置換撹乱器121 と同様に構成され、部分復号器124B及び124Cはそれぞれ図25に示した部分復号器141A(141B)と同様に構成される。
この置換撹乱部分復号器124 では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
【0094】
Step1:置換撹乱器124Aは置換撹乱用のパラメータB, g−r0 , Y−r0, g−r1, Y−r1 を用いて入力の(M0, G0),(M1, G1)を置換撹乱処理した結果を示す2対の情報を出力する。
Step2:部分復号器124Bは置換撹乱処理した結果の一方の対情報を秘密鍵の部分情報−xを用いて部分復号し(M’0, G’0)として出力する。
Step3:部分復号器124Cは置換撹乱処理した結果の他方の対情報を秘密鍵の部分情報−xを用いて部分復号し(M’1, G’1)として出力する。
PR部分復号証明生成器125
図28におけるPR部分復号証明生成器125 はPR部分復号器124Aが正しく動作している事を秘密情報を明かさずに証明する構成の一例を示している。
【0095】
入力のBは置換撹乱器124A中の置換器(図22参照)に入力された置換パラメータであり、入力のrj (j∈{0, 1})は置換撹乱器124A中の撹乱器(図22参照)に入力された撹乱用の乱数であり、入力のxは復号鍵の部分情報であり、入力のe, K0, K1, Rij(i, j∈{0, 1})は証明情報生成用の乱数であり、入力のgK0, gK1+ex y’Rij,gRij (i, j∈{0, 1})は入力のMi, G i, M’j, G’j (i, j∈{0, 1})が入力されるより前に計算された証明情報生成用のパラメータである。
【0096】
出力のVb, eb, sb, Tij, Wij, zij, (b, i, j∈{0, 1})はb=i(+)jとして(Mi, Gi)と(M’j, G’j)の対応を証明するか、または装う為の情報である。
置換撹乱部分復号器124 が正しく動作していることを直接証明するためには、置換用の乱数B∈{0, 1}及び撹乱や復号用の秘密のパラメータの値を明かさずに、b=i(+)jであるとして、
b=0なる全ての i, j∈{0, 1}に関してM/M’j =yrjGi x かつGi /G’j =grj
b=1なる全ての i, j∈{0, 1}に関してM/M’j =yrjGi x かつGi /G’j =grj
・・・(命題3)
を示さなくてはならない。このために以下に示すようにして証明情報Vb ,eb ,sb (b∈{0, 1}),Tij,Wij,zij(i, j∈{0, 1})を生成する。
【0097】
全ての i, j∈{0, 1}に関して、
i(+)j=Bならば
Tij ← y’Rij Gi K0,Wij ← gRij
i(+)j=B’ならば(B’はBの反転)
Tij ← (Mi /M’j)e y’Rij Gj K1 ,Wij ← (Gi /G’j)e gRij
を演算する。
【0098】
更に
VB ← gK0,VB’← gK1+ex
としB=0ならば
e0 ← −e+h(T00,T01,T10,T11,W00,W01,W10,W11)
を演算し、またe1 ←eとし、
B=1ならば
e1 ← −e+h(T00,T01,T10,T11,W00,W01,W10,W11)
を演算し、かつe0 ←eとし
更にi(+)j=Bなら
zij ← Rij− eb rj
を演算し、i(+)j=B’ならzij ← Rijとし
B=0ならば
s0 ← K0 −e0 x
を演算し、s1 ← K1 とし、
B=1ならば
s1 ← K0 −e1x
を演算し、s0 ← K1 とする。
【0099】
この置換撹乱部分復号証明生成器125 は上述のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また、同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
PR部分復号証明検証器P70C
図19におけるPR部分復号証明検証器P70Cは図28に示したPR部分復号器124 が正しく動作している事を検証する。この検証器P70Cは図28中のPR部分復号証明生成器125 の出力を検証する。
【0100】
PR部分復号証明検証器P70Cの入力はeb, Tij,Wij,Zij,(b, i, j∈{0, 1})であり、これは図28のPR部分復号証明生成器125 の出力であり、b=i(+)jとして(Mi, Gi)と(M’j, G’j)の対応を証明するか、または装う為の情報である。この検証器P70Cは先ず
e0+e1 =h(T00,T01,T10,T11,W00,W01,W10,W11)
が成立するかを演算して確め成立しなければ偽を出力して終了し、成立すれば、全てのb∈{0, 1}に関してVb=gsbyeb が成立するかを演算して確め、成立しなければ偽を出力して終了し、成立すれば、全てのi, j∈{0, 1}に関してb=i(+)jであるとして、
Tij=(Mi /M’j)eby’zij Gi sb ,Wij=(Gi /G’j)ebgzij
が成立するかを演算して確め、成立しなければ偽を出して終了し、成立すれば真を出力する。このようにして命題3の真偽が判定される。
【0101】
この検証器P70Cでは、上述のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
完全置換網10
図29A及び図29Bはそれぞれ4入力及び8入力の完全置換網10A及び10Bの構成の一例を表している。
【0102】
完全置換網とは証明付きPR部分復号器SW及び証明付き固定部分復号器SWFの複数個が行列に配され、縦続的に接続され、各証明付きPR部分復号器SWの秘密の置換パラメータBi の値の組合せによって入力に対するあらゆる置換を実現できる網のことである。入力はN個のEl Gamal暗号文であり出力はN個のElGamal暗号文またはN個の平文である。また置換の正当性を証明する情報として各証明付きPR部分復号器及び各証明付き固定部分復号器の証明情報及び秘密鍵や置換撹乱パラメータや乱数情報以外の入出力情報が出力公開される。
【0103】
図29Aでは2個のEl Gamal暗号文が入力され、2個のEl Gamal暗号文を出力する処理器として前記証明付きPR部分復号器SWと証明付き固定部分復号器SWFが2行3列に配され、各行の部分復号器の出力が同一行の次の列の部分復号器へ供給されるものと、行が入れ替えられて次の列の部分復号器へ入力されるものとがあり、部分復号器中の実線ブロックで示しているものは証明付きPR部分復号器SWであって、2つのEl Gamal暗号文を置換撹乱処理し、秘密鍵の部分情報を用いて部分復号し、その置換撹乱結果と、その正当性を証明するための証明情報を出力し、部分復号器中の破線ブロックで示されているものは証明付き固定部分復号器SWFであって、このEl Gamal暗号文を秘密鍵の部分情報を用いて部分復号し、その復号結果と、その正当性を証明するための証明情報を出力する。この場合4入力の配列に対し置換可能な配列は4!=4×3×2=24通りであるが、Bi の数は5あれば25 =32通りの配列が可能となり、入力配列に対し、置換可能な全ての配列の何れにも設定可能である。つまり4入力の配列の場合は、証明付きPR部分復号器、換言すれば置換パラメータBi を設定できる処理器は5個あれば完全置換網を構成できる。一方証明付きPR部分復号器と比較して証明付き固定部分復号器は構成が可成り簡単であり、つまり計算量が少なくて済むので、1行3列目の処理器は証明付き固定部分復号器としている。これをも証明付きPR部分復号器としてもよい。
【0104】
図29Bは証明付きPR部分復号器SW又は証明付き固定部分復号器SWFが4行5列に配され、内側の3列間で同一行で出力が入力されるものと行が入れ替えられて出力が入力されるものとがある。この構成は図中に破線で示すように図29Aの4入力4出力の完全置換網を二つ組合せたものである。
秘密の置換パラメータの第i列のBi の値が分からなければどのような置換が行われたのか推定する事は出来ない。つまりM’0 ,…,M’3 はBi の値の組み合わせを知らなければ誰が入力した文かは判らない。図29A、図29Bの何れにおいても正しく復号するために、同じ列(第i列)の各部分復号器は同じ復号鍵xi を持つ。
完全置換網10C
図30は2N入力の完全置換網10Cの構成の一例を表している。原理は A.Waksman. A permutation network. Journal of the ACM,15(1):159−163, 1968.による。
【0105】
置換網10CはN入力の完全置換網10C1, 10C2及び2入力の完全置換網(証明付きPR部分復号器)SWのみから構成されているので2入力の完全置換網を用いて4入力、8入力、…、2n 入力の完全置換網を構成する事が出来る。図ではN入力完全置換網を2つ設け、その入力段にN個の2入力2出力の証明付き置換撹乱部分復号器を設け、出力段に(N−1) 個の2入力2出力の証明付きPR部分復号器SWと、1個の証明付き固定部分復号器SWFを設けている。図29Bの構成は図30の構成でN入力完全置換網として4入力完全置換網が用いられた場合となる。
【0106】
従って、証明付き置換撹乱部分復号器及び証明付き固定部分復号器のみを用いて部分復号処理を行う機能をもった2n 入力の完全置換網を構成する事が出来る。
N(=2n )入力の完全置換網に必要な部品は、証明付き置換撹乱部分復号器Nlog2 N−N+1個及び証明付き固定部分復号器 (N−1)個であり、全体の段数(列の数)は2N log2 N−1段である。
一括不正回復付き検証可能匿名通信路100
前述の図20は8入力2秘密漏洩耐性2故障耐性一括不正回復付き検証可能匿名通信路の構成の一例を表している。一括不正回復付き検証可能匿名通信路100 は置換サーバPS1〜PS5と、置換サーバ18Cと、置換サーバ18Dと、置換サーバ18Eと、置換サーバ18Fとが縦続的に接続されて構成されている。t秘密漏洩耐性とは全部でV(>2t)個の置換サーバのうち最大t個の装置の置換秘密情報Bi が攻撃などにより漏洩しても入出力の対応が完全に隠蔽されることを意味する。
【0107】
一括不正回復付き検証可能匿名通信路100 は3つの完全置換網10A,10B,10Cを含んでおり、完全置換網を跨る置換サーバを持っていないので、どの2つの置換サーバの置換秘密情報Bi が漏洩してもその2つの置換サーバを含まない完全置換網が必ず一つは存在し、その完全置換網の秘密情報が全て隠蔽されているのでこの完全置換網により入出力の対応が隠蔽され、この匿名通信路100 の入出力の対応も隠蔽される。従って図20に示した匿名通信路では5つの置換サーバPS1〜PS5よりなるから一括不正回復付き検証可能匿名通信路100 は2秘密漏洩耐性を持っている。
【0108】
一般に一括不正回復付き検証可能匿名通信路100 が完全置換網をt+1 個直列に接続した形状の網を持ち、この網をV個に分割し、分割された各々の部分を置換サーバとする場合、どの置換サーバも2つの完全置換網に跨ることが無いように網の分割が行われていれば、その一括不正回復付き検証可能匿名通信路はt秘密漏洩耐性を持つ。
t故障耐性とは全部でV(>2t)個の置換サーバのうち最大t個の動作が正しくない時でも不正回復により最終的には正しく出力ができる一括不正回復付き検証可能匿名通信路であることを意味する。
【0109】
各置換サーバは自分の秘密鍵を他の置換サーバに検証可能な秘密分散法で、t+1個以上の置換サーバが集まれば秘密鍵を復元出来るように秘密分散する。例えば、0次の係数を隠蔽すべき秘密鍵xi とし秘密の乱数により他の係数が決定されるzに関するt次多項式fi(z)のz=jの値xij=fi(j)をj番目の置換サーバに対して分配するとすれば、一つのiに対してt+1 個以上のxij及び対応するjが集まれば、その中の任意のt+1 個の互いに異なるjの集合Jに関するLagrange補間公式
【0110】
【数8】
を用いて、xi=fi(0)として秘密鍵を復元できる。このような鍵秘密分散復元の手法は例えば共立出版株式会社1995年12月20日発行、岡本龍明、太田和夫編「暗号・ゼロ知識証明・数論」62〜63頁に示されている。
【0111】
図19に示したように、各置換サーバPSは他の装置の入出力の正当性を検証するための検証器21を具備している。各置換サーバPSで暗号文の出力が行われる度にその正当性を検査し結果を掲示板に公開する。
各置換サーバは検査の結果、正しいと認められる最後の出力を自分の入力とし、その入力に対して未だ部分復号処理に用いられていない全ての公開鍵の積を求め、これを撹乱処理に必要なパラメータとして置換撹乱部分復号処理を行う。
【0112】
最終出力が終った後、全ての置換サーバが正しく動作した、つまり全装置が正しかったと全員が納得し、全ての置換サーバが出力した場合は、最終出力が求める平文の列(リスト)になる。
上記以外の場合、最終出力が終った後、最終的に互いに信頼できる入出力を行った置換サーバが3個(t+1個)以上集まった時は、正しく動作していないと判断された全ての置換サーバの秘密鍵を、鍵秘密分散復元の手法により復元し、その総和をx’として公開する。
【0113】
最終的に互いに信頼できる置換サーバが各々最終的に信頼できる出力を、秘密鍵x^を用いて復号し平文の列を求め公開する。この秘密鍵x’により復号可能なことは前記「一括化可能」条件にもとずく、最終的に互いに信頼できる入出力を行った置換サーバが3個(t+1個)以上集まらない時には不正回復は失敗する。
置換サーバが信頼できるものであるかはその入力と出力と証明情報を用いて、前述した証明付きPR部分復号器、証明付き置換撹乱器、証明付き固定部分復号器に対する検証により、その置換サーバが構成する処理器の全てについて、検証すればよい。また置換サーバに対する処理は、その縦続接続された順に行うが、その入力としては直前の信頼できる置換サーバの出力を用いる。以下にどの置換サーバの出力を入力とすればよいかの検索手法の例を示す。なおこの検索は各置換サーバ中の判定部P60 で行う。
【0114】
また匿名通信路100 への入力リストをL0とし、i番目の置換サーバPSi の出力リストをLiとする時、j番目の置換サーバPSj の入力リストLjを求めるには例えば図31に示すように行えばよい。j番目の置換サーバPSj の、正しい処理を行なった直前の置換サーバの位置をtで表すと、まずt=0、i=1と初期化し(S1)、i<jかを調べ(S2)、iがjより小さければi番目の置換サーバPSi の証明情報VRFiは入力リストLtと出力リストLiの1対1の対応を証明しているかを調べ(S3)、証明している場合はt=iとし(S4)、更にiを+1してステップS2に戻り(S5)、ステップS3で1対1の対応を証明していない場合はステップS5に移り、iがjと等しいかそれより大きくなれば処理を終了し、その時のtの値から置換サーバPSt の出力リストLtが求める入力リストになる。
【0115】
図31に示した入力リストの探索は次のようにして処理を削減することができる。図31において、各置換サーバが決定した入力リストがどの置換サーバからのものであるかその番号tを掲示板に登録し、ステップS2とS3との間において図32に示すように置換サーバPSi は信頼できる置換サーバの出力リストLtを入力としているかを調べる(S6)。もし検証対象の置換サーバPSi が信頼できる置換サーバの出力リストLtを入力としていなかった場合は、ステップS3の検証を行なわないでも、その置換サーバPSi が不正な処理を行なったと判断できる。そこで、図32に示すように、置換サーバPSi がリストLtを入力としていない場合は、その置換サーバPSi の入力リストLtと出力リストLiの対応を検証することなく、ステップS5に移り、リストLtを入力としている場合は、その置換サーバPSi についてステップS3を実行する。これにより、図31に示した場合より処理量を減少することができる。置換サーバPS1〜PSj−1についての検証が終了すれば(i≧jとなれば)、ステップS6でtの値を掲示板に登録し、処理を終了する。
【0116】
更に他の例を示す。この例では、各置換サーバPSi , i=1, …,Vはそれより上流の前置換サーバについて、それぞれ信頼できるか否かの判定結果を掲示板に例えば図33Aに示すように登録するものとする。又、各置換サーバPSj は、自分より上流の各置換サーバPSk (1<k<j)に対する信頼性の判定結果を信頼度情報Rk=真又は偽、として記録するレジスタを有しているものとする。図33Bは置換サーバPSj のレジスタに記録された信頼度情報の例を示している。図33Aでは、すでにj−1番目の置換サーバまでそれぞれそれらより上流の全ての置換サーバに対する判定結果を○印は信頼性あり、×印は信頼性なしで示している。
【0117】
各置換サーバは自分より上流の最も近い信頼できる置換サーバの出力を入力とすることが要求されているので、j番目の置換サーバPSj は1番目の置換サーバPS1 から順に検査し、例えば2番目の置換サーバは信頼性がないと判定したにもかかわらず、図33Aに示すように掲示板を参照するとi番目の置換サーバは2番目の置換サーバを信頼性ありと判定している。従って、j番目の置換サーバはi番目の置換サーバを信頼性がないと判定することができる。このような場合、j番目の置換サーバはi番目の置換サーバについての入出力の対応関係の検証を省略することができる。同様に、j番目の置換サーバが例えば3番目の置換サーバを信頼性ありと判定したにもかかわらず、もしi番目の置換サーバが3番目の置換サーバを信頼性なしと判定していたら(図33Aでは信頼性ありとなっている)、その場合も、j番目の置換サーバはi番目の置換サーバを信頼性がないと判定でき、この場合も、j番目の置換サーバはi番目の置換サーバに対する入出力の対応の検証を省略することができる。この方法を使ったj番目の置換サーバによる入力リストの探索処理を図34を参照して説明する。
【0118】
図34に示す置換サーバPSj の入力リストの検索処理において、まずt=0, i=0とし、置換サーバPSj のレジスタの k= 1, …, j−1 に対する値Rk を全て真とする初期化を行い(S1)、iがjより小さければ(S2)、図33Bに示したレジスタを参照し、k=i 番目の置換サーバの信頼度情報Ri が真であるかを調べ(S3)、Ri が真であれば(Riの初期値は真に設定されている)、置換サーバPSi の証明情報VRFiがリストLtとリストLiの1対1対応を証明しているかを調べ(S4)、正しく証明するものであればtをiに更新する(S5)。この場合、k= i+1, …, j−1 の置換サーバPSk はそれぞれ置換サーバPSi の出力リストLiを正しい、即ち置換サーバPSi は信頼性がある、と判断すべきであるから、図33Aの掲示板を参照し、もしこの置換サーバPSi を信頼性がないと判断した置換サーバPSk があれば、図33Bに示すように、その置換サーバに対する信頼度情報Rk を偽に変更する(S7)、その後、iを+1してステップS2に戻る(S7)。
【0119】
ステップS4でリストLtとリストLiが1対1で対応することを証明できない場合は、ステップS8に移り、掲示板を参照し、もしk=1, , j−1の置換サーバPSk でサーバPSi を信頼できると判定している置換サーバがあれば、その置換サーバについての信頼度情報Rkを偽に変更し、ステップS7でiを歩進してステップS2に戻る。従って、以降のループ処理で、ステップS2でiが、先にステップS4又はS8でレジスタの信頼度情報Rkが偽とされた置換サーバの番号i=k となった時には、ステップS3でレジスタにあるそのサーバの信頼度情報Rkが偽となっているので、ステップS4の検証を行なわず、ステップS8に移る。
【0120】
ステップS2でiがjを超えると、その時のリストLtを求める入力とし、また全ての置換サーバPSk についての信頼度情報Rk を公開(掲示板に登録)して終了する。
このように各検査結果である信頼度情報Rk を利用することにより、入力すべき出力リストの検索にかかる処理量が少なくて済む。
図20では各置換サーバPS1〜PS5の処理器として証明付き置換撹乱部分復号器のみ又はこれと証明付き固定部分復号器とを用いた。しかし、各置換サーバPS1〜PS5を証明付き置換撹乱器と証明付き固定部分復号器とを用いて構成することもできる。例えば図35に示すように、図20中の証明付き置換撹乱部分復号器を証明付き置換撹乱器に置きかえ、図20中の証明付き固定部分復号器の部分はその入力をそのまま出力させ、各置換サーバの最後の段(列)の後段に各行ごとに証明付き固定部分復号器をそれぞれ設けてもよい。
【0121】
また図20中の例えば置換サーバPS1 の初段(第1列)の各行の処理器を全て証明付き置換撹乱器に変更してもよい。要は置換サーバは、全体として証明付き置換撹乱処理と、少なくとも1段(1列)の処理器による証明付き部分復号処理とを行うものであればよい。なおt故障耐性が問題とならず、t秘密漏洩耐性のみを必要とする場合は置換サーバを重複することなく構成された完全置換網がt+1個あればよく、V>2tなる条件は必要としない。
【0122】
前述したこの発明の各実施例において、この発明による匿名通信路を形成している置換網は2入力2出力の単位切換装置SW(SWF)を規則に従って接続して構成してもよいが、例えばN=2k入力の場合、単位切換装置SW(SWF)が入力側から2k−1個ずつ(2k−1)段に配列された置換網において、各段で1つのデータ処理装置が前段からの処理結果を取り込み、単位切換装置SWの2k−1個分の処理を実行し、処理結果を順次出力するようにしてもよいし、更に、これら(2k−1)段の(2k−1)個のデータ処理装置が行なうべき処理を1つの処理装置が順次実行してもよい。
【0123】
例えば、(2k−1)段のそれぞれにデータ処理装置が1つずつ設けられている場合、J段目の処理装置には前段から2k個の処理結果であるEl Gamal 暗号(M, G)を順次取り込み、前述したような置換、撹乱及び部分復号を行なって得た暗号(M’,G’)を予め決めた規則に従って順に出力する。この処理手順を図36から39を参照して説明する。
図36はJ段目の処理装置が1〜k−1段のグループ、k〜2k−2段のグループ、及び最後の2k−1段のどの段に属するかを判定し、処理1、処理2及び処理3のどれを実行すべきかを決定する。各段の処理装置は、N=2k個の出力端子位置に対応してN個の処理結果を保持するN個の出力レジスタを有するものとする。
ステップS1:J=2k−1か否か、即ち最終段であるか否か判定し、最終段であれば処理3(図39)の実行に移る。そうでなければステップS2に移る。
ステップS2:J−k≧0 か否か、即ちJはk〜2k−2 の値か判定し、そうであれば処理2(図38)の実行に移る。そうでなければステップS3に移る。
ステップS3:Jは1〜k−1の値であり、処理1(図37)の実行に移る。
【0124】
図37,38,39はそれぞれ処理1、処理2、処理3を実行するフローを表す。ここで、(LJ−1[2i], LJ−1[2i+1])はJ−1段目のランダム置換の対象となる2つの出力位置[2i], [2i+1]の暗号文(M2i, G2i), (M2i+1, G2i+1)を表す。lrot(u, v)は2進表現のデータu中のLSB 側からvビットのデータに対し1ビット左回転を与えることによりデータuを変換することを意味する。例えば、2進表現でu=10110であり、v=3 とすると、lrot(u, v)は、10110の右側3ビット110を、左へ1ビット回転させて101とすることにより、uを10101に変換する。同様に、rot(u, v)は2進表現されたデータuのLSB 側からvビットのデータを右へ1ビット回転させることによりデータuを変換する。
【0125】
bit[x, y]は、2進表現されたxの下位yビットの値を表す。例えばx=10001でy=4の場合、bit[x, y]=1となる。
図37に示す処理1はJ=1, …, k−1 の置換段における処理であり、これらの段では以下のように全ての対の入力暗号(LJ−1[2i], LJ−1[2i+1])に対しランダム置換、撹乱、部分復号を行う。
ステップS11:i=0 に初期設定する。
ステップS12:J−1 段目からの2i番目と(2i+1)番目のランダム置換対象となる2つの暗号(LJ−1[2i], LJ−1[2i+1])に対し証明付置換撹乱部分復号処理を行い、処理結果をそれぞれ[rot(2i, k−J+1)]番目と、[rot(2i+1, k−J+1)]番目の出力レジスタに格納する。
ステップS13:iを1増加する。
ステップS14:i≦2k−1 であるか判定し、そうであればまだ未処理データがあるのでステップS11に戻る。そうでなければJ段でのデータ処理を終了する。
【0126】
図38に示す処理2はJ =k, … , 2k−2 の置換段における処理であり、対の入力暗号(LJ−1[2i], LJ−1[2i+1])に対し以下のように処理を行なう。
ステップS21:i=0 に初期設定する。
ステップS22:bit[i, J−k]=0 であるか判定し、YES であれば固定置換装置SWFでの処理であり、ステップS23に移り、NOであれば置換装置SWでの処理でありステップS24に移る。
ステップS23:前段(J−1 段目)からの2i番目と(2i+1)番目の対の暗号(LJ−1[2i], LJ−1[2i+1])をそのままそれぞれ[lrot(2i, J−k+2)]番目と、[lrot(2i+1, J−k+2)]番目の出力レジスタに格納する。
ステップS24:J−1 段目からの2i番目と(2i+1)番目の対の暗号(LJ−1[2i], LJ−1[2i+1])に対し証明付置換撹乱部分復号処理を行い、処理結果をそれぞれ[lrot(2i, J−k+2)]番目と、[lrot(2i+1, J−k+2)]番目の出力レジスタに格納する。ステップS25:iを1増加する。
ステップS26:i≦2k−1 であるか判定し、そうであればまだ未処理データがあるのでステップS22に戻る。そうでなければJ段でのデータ処理を終了する。
【0127】
図39に示す処理3は最終段J=2k−1 における処理であり、前段からの対の入力暗号(LJ−1[2i], LJ−1[2i+1])に対し以下のように処理を実行する。
ステップS31:i=0 に初期設定する。
ステップS32:bit[i, J−k]=0 であるか判定し、YES であれば固定置換装置SWFでの処理であり、ステップS33に移り、NOであれば置換装置SWでの処理でありステップS34に移る。
ステップS33:J−1 段目からの2i番目と(2i+1)番目の対の暗号(LJ−1[2i], LJ−1[2i+1])をそのままそれぞれ2i番目と、(2i+1)番目の出力レジスタに格納する。ステップS34:J−1 段目からの2i番目と(2i+1)番目の対の暗号(LJ−1[2i], LJ−1[2i+1])に対し証明付置換撹乱部分復号処理を行い、処理結果をそれぞれ2i番目と、(2i+1)番目の出力レジスタに格納する。
ステップS35:iを1増加する。
ステップS36:i≦2k−1 であるか判定し、そうであればまだ未処理データがあるのでステップS32に戻る。そうでなければJ段でのデータ処理を終了する。
【0128】
全(2k−1)段の処理を1つの処理装置で実行する場合は、図36〜39の処理手順を、J=1, 2, ..., 2k−1について順次繰り返せばよい。
以上説明したこの発明による置換撹乱復号処理は、コンピュータプログラムとして記録媒体に記録しておき、そのプログラムを読み出して実行することにより実施してもよい。
上述した符号化装置、復号化装置は共に、その各機能をコンピュータによりプログラムを解読実行させることにより行わせることもできる。
【0129】
図40はこの発明による匿名通信路を構成する置換網における証明付置換撹乱部分復号方法をコンピュータで実施する場合の構成を示す。コンピュータ80は、バス88を介して互いに接続されたCPU81、RAM82,ROM83,入出力インタフェース84、ハードディスク85を含んでいる。ROM83にはコンピュータ80を動作させる基本プログラムが書き込まれてあり、ハードディスク85には前述した例えば1つの置換サーバがこの発明による証明付置換撹乱部分復号処理方法を実行するプログラムが予め格納されている。例えば符号化時にはCPU81はハードディスク85から符号化プログラムをRAM82にロードし、掲示板400 からインタフェース84を介して取り込んだ暗号化投票文をプログラムに従って処理することにより匿名通信路を通して暗号投票を復号化し、インタフェース84から掲示板400 に出力する。
【0130】
この発明による証明付置換撹乱部分復号化方法を実行するプログラムは内部バス88に駆動装置86を介して接続された外部ディスク装置87に記録されたものを使用してもよい。この発明による方法を実行するプログラムが記録された記録媒体としては、磁気記録媒体や、ICメモリや、コンパクトディスクなどどのような形態の記録媒体であってもよい。
【0131】
【発明の効果】
この発明によれば、少数の入力に対する置換が比較的容易なことを利用して、少数の入力の置換を繰り返して全体の置換を構成することにより、全体の入力をN個としたとき、全体の置換に対する証明の為の計算量、通信量をNlog 2Nに比例する量にまで低減することが可能となり、効率的な検証可能匿名通信路を構築することができる。
【0132】
従来においては1つの置換サーバで不正(故障)が検出されるごとに、その補償処理を行っていた、従ってt個の装置で不正があればt回の補償処理を必要としたが、この発明によればV個の置換サーバのうちt個の出力が信頼できなくなった場合でも、その信頼できなくなった(不正、故障)装置を迂回して処理し最後に、鍵秘密分散回復法により回復した鍵を用いて平文を得ることができ、たった1回の不正回復処理を行えば不正回復が完了する。
【0133】
またこの発明により従来t回の不正回復を行っていたのに比べてt倍高速に不正を回復可能になり検証可能匿名通信路における帯域保証を効率的にすることが可能となった。
更に置換サーバを重複使用することなく、完全置換網をt+1個直列に構成することにより、t秘密漏洩耐性が得られる。
【図面の簡単な説明】
【図1】従来の4入力の置換網を示すブロック図。
【図2】この発明が適用される装置の全体を示すブロック図。
【図3】4入力に対する匿名通信路の構成と検証端末の構成を示すブロック図。
【図4】図3中の切換装置SWの構成を示すブロック図。
【図5】図4中の切換部12の構成を示すブロック図。
【図6】図4中の置換証明部14の構成を示すブロック図。
【図7】図3中の復号装置20の構成を示すブロック図。
【図8】図7中の復号部21の構成を示すブロック図。
【図9】図7中の復号証明部22の構成を示すブロック図。
【図10】図3中の置換検証部30の構成を示すブロック図。
【図11】図3中の復号検証部40の構成を示すブロック図。
【図12】第2実施例のシステム構成を示すブロック図。
【図13】図12中の置換サーバPSの構成を示すブロック図。
【図14】図12中の復号サーバ20Sの構成を示すブロック図。
【図15】第2実施例における各サーバ内のデータの流れを示す図。
【図16】第3実施例のシステム構成を示すブロック図。
【図17】第3実施例中の復号サーバ20Sにおける復号部の構成を示すブロック図。
【図18】第3実施例における復号検証部の構成を示すブロック図。
【図19】この発明の匿名通信路を用いたシステム構成例を示すブロック図。
【図20】図19の実施例において掲示板を介して縦続接続された置換サーバにより構成された複数の完全置換網を示すブロック図。
【図21】証明付き置換撹乱部分復号器の機能構成例を示すブロック図。
【図22】置換撹乱器の機能構成例を示すブロック図。
【図23】撹乱器の機能構成例を示すブロック図。
【図24】証明付き部分復号器の機能構成例を示すブロック図。
【図25】部分復号器の機能構成例を示すブロック図。
【図26】部分復号証明生成器の機能構成例を示すブロック図。
【図27】証明付き固定部分復号器の機能構成例を示すブロック図。
【図28】証明付き置換撹乱部分復号器の機能構成例を示すブロック図。
【図29】完全置換網の構成例を示すブロック図。
【図30】完全置換網を拡大させる手法の例を示すブロック図。
【図31】置換サーバの入力リストを検索する処理例を示す流れ図。
【図32】置換サーバの入力リストを検索する他の処理例を示す流れ図。
【図33】Aは更に他の検索処理方法において掲示板に公開される置換サーバの信頼性の判定結果を示す表、Bはその検索方法において各置換サーバがレジスタに保持する信頼度情報の例を示す図。
【図34】置換サーバの入力リストを検索する更に他の処理例を示す流れ図。
【図35】この発明による匿名通信路の他の実施例を示すブロック図。
【図36】置換網のJ段目における置換処理手順のJの値による処理の選択手順を示すフロー。
【図37】図36における処理1の手順を示すフロー。
【図38】図36における処理2の手順を示すフロー。
【図39】図36における処理3の手順を示すフロー。
【図40】記録媒体からこの発明による証明付置換撹乱部分復号方法のプログラムを読み出して証明付置換撹乱部分復号を実行するコンピュータシステムの概念図。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a verifiable anonymous communication path used for performing secret balloting in a telecommunications system.systemIn particular, the present invention relates to an anonymous communication path that can be efficiently realized, a method for implementing the same, and a recording medium on which the method is recorded.
[0002]
[Prior art]
First, the anonymous communication path will be described. Generally, each server can identify the user connected to the server, so that it can know which user is transmitting which information, and there is no anonymity in the communication path between the user and the server. MIX-NET has been proposed as a means for realizing an anonymous communication path by a telecommunication system irrespective of the physical configuration. In MIX-NET, L servers U1, ..., ULIs a system that is serially connected by a registered communication path.
[0003]
If this is implemented using the RSA function, the i-th server will have a large prime pi, QiFor ni= Pi・ QiAnd ei・ Di= 1 (mod LCM (pi-1, qi-1)) is satisfied (di, Ni), (Ei, Ni) Are the decryption key and the encryption key, respectively. In the encryption of the message m by the RSA, first, a random number r is selected, and m and r are combined to make m‖r. Next, M: = (m‖r)dimod niTo obtain an encrypted message M. In the following, the server UiEncryption key (ei, NiThis encryption procedure usingiWrite (m, r).
[0004]
j-th user is the message m to be sentjTo
M1: = E1(E2(… (EL(Mj, RjL),…), Rj2), Rj1)
, The encryption keys (ei, Ni), I = 1, 2,..., L and L random numbers rj1, Rj2, ..., rjLServer U1Send to
Server U1Is an encrypted message M from multiple users1, M2,. . . After gathering, these are keyed (d1, N1) To decrypt each message mjE corresponding to2(… (EL(Mj, RjL),…), Rj2) And rj1Get. Server U1Is the E obtained from each encrypted message2(… (EL(Mj, RjL),…), Rj2), J = 1, 2,. . . Are replaced at random, and the server U2Send to At this time, the server U1Is each message mjRandom number r attached toj1Server U2Each E sent to2(… (EL(Mj, RjL),…), Rj2) Is the server U1Encrypted message M input to1, M2,. . . It is possible to make it impossible to determine which of these is the decoding result.
[0005]
Hereinafter, server U2, ..., ULRepeats the same processing. Finally server ULIs each message mjPublish. At least one server UiIs a random number rjiAnd the order of replacement is kept secret so that each user can1And the server ULThe connection with the message output by is hidden and functions as an anonymous communication path.
According to the above conventional method, even if each server does not perform a given operation and outputs an incorrectly calculated result or a result that is replaced with an original one, anyone can verify that the output is incorrect. Can not.
[0006]
As a first method for enabling verification, for example, "Universally Verifiable Mix-net with Verification Work Independent of the Number of Number of Mix-servers" proposed by Masayuki Abe, and a method of "98-YR-YR" is proposed on May, 1998, and a method of "YYYYYYYYYYYYYYY", CR, YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYER | YYYYYYYYYYYYYYYYYYYYER | YYYYYYYYYYYYYYYYYYYYYA In the first method that enables the verification, for example, "Universally Verifiable Mix-net with Verification Work Independent of the Number of Number of Mix-servers" proposed by Masayuki Abe, and a method of "98-YYR", which is proposed in May, 1998, is a method of U-R. That is, the server group first executes the replacement process, and mutually proves and verifies that the output of each server is correct. After that, a decryption process is executed, and the output of the decryption process of each server is mutually proved and verified. The problem with this method is that proof and verification performed by each server require a lot of computational cost. For example, in the replacement process, the input I1, ..., INIs randomized, and the result of random replacement is1, ..., ONThen, to prove that this output was processed in the correct procedure without showing the random element being processed, do the following: I1, ..., INIs disturbed in the same manner, is replaced randomly, and the result is1, ..., O 'NAnd At this time, if a randomization procedure that makes the isomorphism hold is used, O '1, ..., O 'NIs O1, ..., ONCan be considered as the result of randomization for Here, the verifier randomly selects a challenge of 0/1 and passes it to the prover. When the challenger is 0,1, ..., IN} → {O ’1, ..., O 'NDisclose all the random elements used in the replacement / randomization process of}. Also, when the challenge is 1, $ O1, ..., ON} → {O ’1, ..., O 'NPublish a random element corresponding to the randomization process of}. If a random element is obtained, all processing procedures can be deterministically reproduced, so that the verifier can verify that the input / output relationship is correct. The probability that the prover cannot detect the fraud by the prover is equal to the probability that the prover guesses and applies the challenge, and is. 1/2)kThe correctness of the process is proved and verified with the error probability of. Thus, the overall efficiency at N inputs is proportional to Nk. In order to secure a high degree of reliability, k is generally set to about 80.
[0007]
As a second method for enabling verification, for example, although application to an anonymous communication channel is not described, R. Cramer, I .; Damgard, B .; Schoenmakers, Proofsof Knowledge and Simplified Designed of Witness Hiding Proofs, Proc. of Crypto '94, LNCS 839, pp. According to the method shown in 174-187, Springer-Verlag, the proof for the permutation of N inputs is N2 Calculation cost. The outline is shown below. First, I1The result of randomizing is O1 , Then, using the zero-knowledge dialog proof,1And O1 Can be proved without revealing the random element used for the randomization. In such a zero-knowledge dialog proof,
1. The prover sends a random message T called a commitment to the verifier,
2. The verifier sends a random value C called a challenge to the prover,
3. The prover sends a value Z satisfying a certain verification formula to the verifier based on the commitment T and the challenge C.
The verifier executes (T, C, Z, I1, O1) Satisfies a predetermined verification equation,1And O1 Verify the validity of the relationship. In such a proof system, if the prover does not know the value of C before creating T, returning a value of Z satisfying the verification equation is1And O1 Can only be done if the relationship is legitimate. However, on the other hand, if the prover knows the value of C in advance, then I1And O1 Can be obtained even if the relationship is not valid. Using this fact, I1Is O1, ..., ONCan be shown to be valid for any one or more of. First, the prover is C2, ..., CNAnd the corresponding Z2, ..., ZNIs randomly selected. Then, for i = 2,..., N, (Ti, Ci, Zi, I1, Oi) So that satisfies the given verification formulaiDetermine the value of Furthermore, T1Choose randomly. After this preparation,
1. The prover gives the verifier T1, ..., TNSend,
2. The verifier sends a randomly selected C to the prover,
3. Prover is C1= C (+) C2(+) ... (+) CNLike C1 , And (T1, C1, Z1, I1, O1) Is a value Z such that satisfies the validation equation1And calculate Z1, ..., ZNAnd C1, ..., CNTo the verifier,
Perform the following procedure. Here, (+) means exclusive OR for each bit. The verifier checks (Ti, Ci, Zi, I1, Oi) Satisfies a predetermined verification formula, and furthermore, C = C1(+) ... (+) CNIt suffices to check that Since the prover does not know the value of C in advance, at least one CiMust be a value that cannot be manipulated by the prover.1Is at least one OiCan be confirmed to be a legitimate relationship.
[0008]
[Problems to be solved by the invention]
According to this method, I1→ O1or… orONTo indicate1→ O1 N times as much proof and communication cost as the proof to show the relationship of1, ..., ON} → {O ’1, ..., O 'NThe efficiency indicating} is N2Is proportional to Therefore, there is a problem that the data processing amount becomes enormous when the number of inputs N increases.
As described above, according to the above conventional method, Nk or N2 Is inefficient because a calculation amount and a communication amount proportional to are required.
[0009]
SUMMARY OF THE INVENTION An object of the present invention is to provide a method and apparatus for efficiently proving and verifying that the output of each server is obtained by performing an appropriate process on an input and then replacing the order with a smaller amount of computation and communication amount. It is to provide.
[0010]
[Means for Solving the Problems]
The verifiable anonymous communication channel according to the present invention is:
The input of n smaller than N, n is an integer of 2 or more is randomly permuted, and n outputs are output by disturbing using secret information, and the n inputs are output to any verifier. A unit replacement processing means for performing a process of proving that the secret information and the random permutation corresponding to the n outputs do exist by using a zero-knowledge proof without revealing the used secret information and the random permutation;
First repetition means for executing processing by the unit replacement processing means for each of n inputs by n units to obtain N outputs;
The N messages are processed as the initial input by the first repetition means to obtain the N outputs, and the N outputs are used as the N inputs to determine the first repetition means in advance. A second repetition means for obtaining N permuted and disturbed output messages corresponding to the N messages on a one-to-one basis by repeatedly executing the number of times;
And
[0011]
A verifiable anonymous communication method according to the present invention and a program recorded on a recording medium for performing the method include the following steps:
(A) n less than N, n is an integer of 2 or more, random output is replaced, and n outputs are output by disturbing using secret information, and n outputs are given to any verifier. Performing a process of proving that the secret information and the random permutation that correspond to the input of the n outputs and the random permutation do exist by zero-knowledge proof without revealing the secret information and the random permutation used;
(B) performing the processing of step (a) on n inputs for n inputs to obtain N outputs,
(C) performing the processing of step (b) on the N messages as an initial input to obtain the N outputs, and using the N outputs as the N inputs to the first repetition means; By repeating the execution a predetermined number of times, N displaced and disturbed output messages corresponding to the N messages on a one-to-one basis are obtained.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
According to the present invention, instead of performing proof and verification for randomization and random permutation processing on the entire input, the input is divided into a small number, and the validity of the input / output relationship is verified and verified for each of the divided parts. To do.
For example, a plurality of two-input two-output selector switches (switches capable of switching between input and output or output in the same order) are arranged in a grid pattern, and the output of each stage is By connecting the input of the next stage according to the rules, 2LIt is known that a permutation network that can cover all permutations for a number of inputs can be configured (A. Waksman, “A Permutation Network”, Journal of the ACM, Vol. 15, No. 1, January 1968, pp. 159-163). FIG. 1 shows the configuration of a
[0013]
Therefore, according to the present invention, a function of randomizing the input and proving the random replacement is added to each of the replacement switches SW1 to SW5 to constitute a unit switching device. By proving, the justification for the entire replacement is proved. The proof performed by each switching device uses the above-described second method. Thus, for example, if there are two inputs to each switching device, 22= 4, the proof and verification can be executed, and the overall efficiency is 4 (Nlog2(N−N + 1).
First embodiment
The verifiable anonymous communication channel according to the present invention is as shown in FIG.NCiphertext E1, ..., ENAnd an
[0014]
The switching devices SW1 to SW5 are connected to the
[0015]
It is assumed that two predetermined large prime numbers are p and q, and q divides p. Let Gq be a subgroup of order q in Zp, and let g be an element of Gq. In the following description, unless otherwise specified, all arithmetic operations are performed by modp. Let the decryption key of El Gamal encryption be x∈Zq and the encryption key be y: = gxAnd The encryption key y, together with the predetermined p, q, and g, includes all the switching devices SW constituting the
[0016]
Message m @ Gq*Let E be a ciphertext of the El Gamal cryptography of E, E is a random number t∈Zp,
E: = (M, G) = (myt, Gt)
It becomes. When the number N of inputs to the system is 4, the four ciphertexts encrypted by El Gamal encryption are1, E2, E3, E4And
FIG. 3 shows a block diagram of the
[0017]
Input ciphertext E1~ E4, Each of the two outputs of the switching devices SW1 to SW5 is branched and input to the
[0018]
The switching device SW includes, as shown in FIG. 4, a
[0019]
The following are the steps of the operation in the switching device SW1 (see FIG. 4).
Step 1: p, g, y are input from the
Step 2: driving the
Step 3: The switching
Step 3-1: Drive the
[0020]
(Equation 1)
Is calculated.
Step 3-2: Output T of
[0021]
(Equation 2)
Is calculated. By this exponentiation operation and remainder multiplication, secret information t1, T2Input message I1= (M1, G1), I2= (M2, G2) Is randomized.
Step 3-3: Output R of remainder multiplier 12B1, R2And the random number b are input to the order permuter 12C. When b = 1, the order permuter 12C outputs O1: = R1And O2: = R2And when b = 2, the output O1: = R2And O2: = R1Is output. This output is1= (N1, H1), O2= (N2, H2)far. The order of the input messages thus randomized is randomized by b, that is, they are randomly replaced.
[0022]
Step 4: driving the
Step 5: The
The
Step 5-1: Drive the
[0023]
(Equation 3)
Is calculated.
[0024]
Step 5-2: I to the hash calculator 14B1, I2, O1, O2, S11, S12, S21, S22And the output is c.
Step5-3: c and q, eb ' Into the remainder subtractor 14C and output
eb: = Ceb 'modq
Get.
Step5-4: ebAnd w1, W2, Q, b, t1, T2Into the remainder power subtractor 14D,
z1b: = W1-Eb・ T1modq
z2b: = W2-Eb・ T2modq
Is calculated.
[0025]
Step 5-5: To prove that the replacement is valid using zero knowledge proof
Proof1: = (E1, E2, Z11, Z12, Z21, Z22)
Is output.
The output obtained at the end of the
M 'i= MF (i) yt '
G 'i= Gt '
Here, F (*) is one of the permutation functions of {1,2,3,4} → {1,2,3,4}. That is, RiIs a normal El Gamal ciphertext for the message mF (i), and the decryption can be performed by a normal El Gamal decryption procedure.
[0026]
As shown in FIG. 7, the
[0027]
The
Step 1: The
Step 2: The decoding
Ki: = G 'i xmodp
Is calculated.
[0028]
Step3: M 'i, P and the output of the
mi: = M 'i/ Kimodp
Is calculated and output as a decoding result.
Subsequently, the
[0029]
Step 1: The
Step 2: The exponentiation operation unit 22B first sets T0: = Gwmodp, then each G 'iFor Ti: = G 'i wmodp, and calculate T0, ..., TNIs input to the
Step 3: The
[0030]
Step 4: The modular exponentiation subtractor 22D calculates z: = w−cx (modq), and calculates c, z, K1, ..., KNOutput with
At this time, ProofD: = (c, z, K1, ..., KN).
The
Step 1: driving the
[0031]
(Equation 4)
Is calculated.
[0032]
Step2: S11, S12, S21, S22And I1, I2, O1, O2Is input to the
Step3: e1, E2Is input to the
Step 4: q is input to the
[0033]
The above-described verification is performed for all the inputs and outputs of the switching devices, and if there is a switching device that outputs a proof that it becomes NG, the switching device is regarded as having failed. If all of the above verifications are OK, then, to verify that the decryption was performed correctly,1,…, R4, M1,…, M4And ProofD. FIG. 11 shows a block diagram of the
[0034]
Step 1: M ′ to the
Step 2: driving the
[0035]
Step 3: driving the
e: = Hash (y, gzyc, K1, G '1 zK1 c,…, KN, G '1 zK1 c)
Is calculated.
Step 4: c and e output from the
If the decryption was successful,
gzyc= Gw-cxyc= Gw= T0
as well as,
G 'i zKi c= G 'i w-cxKi c= G 'i w= Ti
Holds, the output of the
[0036]
In this embodiment, the random elements used in each switching device, ie, b, t1, T2, W1, W2If all are kept secret, Ei→ mjIs kept secret for any i and j. As described above, in the first embodiment, since the validity of the random permutation in each switching device is proved by each switching device, especially when the number N of all inputs of the anonymous communication path increases. R. The required amount of data processing is remarkably reduced as compared with the case where the validity of random replacement is proved by the method of Cramer et al.
Second embodiment
In this embodiment, a configuration will be described in which the correspondence of each input / output is concealed as a whole even when random elements in some switching devices are leaked.
[0037]
In this embodiment, as shown in FIG. 12, "replacement servers" which sequentially execute the tasks of several switching devices are used, and V replacement servers PS are used.1,. . . , PS4This constitutes the
[0038]
FIG. 13 shows a block diagram of each replacement server PS. The configuration of the switching device SW in the replacement server PS is the same as that of the switching device SW in FIG. 4 except that the
FIG. 14 shows a block diagram of the
[0039]
This system has four replacement servers PS1,. . . , PS4This is a case where two 4-input complete permutation networks are configured. FIG. 15 shows the data flow in this case. Although not shown in the figure, all data transfer between the replacement servers is performed via the
[0040]
As shown in FIGS. 12 and 15, the replacement servers PS connected in cascade.1~ PS4Form at least two cascaded complete replacement networks. The output of each replacement server PS is verified by the
[0041]
After verifying that all the permutations are correct, the
[0042]
According to the above configuration, even if a certain replacement server is attacked and a random element is leaked, and the replacement in the replacement server becomes apparent to a third party, the remaining As long as the confidentiality of the random element in the replacement server is maintained, the entire replacement relationship is kept secret. For example, replacement server PS1Even if the replacement relationship executed by3, Replacement server PS4Form a complete replacement network, any replacement relationship between input and output can be realized. Similarly, even if the replacement relationship of any one of the replacement servers is leaked, a complete replacement network is always formed by the other two replacement servers, thereby keeping confidentiality.
Third embodiment
In the third embodiment shown in FIG. 16, the
[0043]
The system configuration excluding the decryption server is the same as that of the second embodiment. Each decryption server DiIs a value x obtained by secretly sharing the decryption key x by a polynomial of degree t.iIs stored. That is, there is a certain t-order random polynomial F (X) ∈Zq [X] that satisfies F (0) = x (modq) and t <L.iIs xi= F (i) is a value satisfying modq. Each
[0044]
Substitution server PS1,. . . , PSVThe configuration and operation are the same as in the second embodiment shown in FIG. Each
Step 1: The control unit inputs RiAre sequentially received and input to the
[0045]
Step 2: In the
Subsequently, the decryption certifying unit 22S (see FIG. 14) provides a ProofD for certifying that the decryption has been correctly performed.jIs created by driving the decryption proof unit. The actual operation is as follows. In the decryption proof operation of the first embodiment, x is xjAnd y for yjIs the same as the case where The output of this proof
ProofDj: = (Cj, Zj, Kj, 1, ..., Kj, n)
And
[0046]
The configuration of the
In this embodiment, the
[0047]
(Equation 5)
The interpolation coefficient is defined as Then the message miIs
[0048]
(Equation 6)
Can be obtained at This means that x = Σλj, AAxjSince modq (Σ is about j∈A) holds,
[0049]
(Equation 7)
, Which is equivalent to the decoding operation in the first embodiment.
Each of the decoding servers can execute the above calculation procedure. In that case, decryption verification may be performed in the same verification procedure as in the first embodiment.
Fourth embodiment
In the above-described second and third embodiments, each replacement server PS disturbs a plurality of input ciphertexts, and sequentially changes the order of the input and sends it to the next replacement server. The decryption server decrypts the ciphertext output by the replacement server of (1) to obtain a plaintext. It is unknown who obtained the plaintext, but it can be verified that it was correctly voted.
[0050]
In the second and third embodiments, if a replacement server that has performed an illegal process is detected, for example, if t outputs of V replacement servers are not reliable, it is necessary to recover the unauthorized process. Is considered to perform t times of unauthorized recovery processing. As the reliability of the anonymous communication channel decreases (i.e., as t increases), the time required for the unauthorized recovery processing increases, and the processing capability of the anonymous communication channel decreases.
In the fourth embodiment described below, even if the reliability of the anonymous communication path is reduced to some extent, the unauthorized recovery is efficiently performed while maintaining the function as the verifiable anonymous communication path, and the required band ( Communication speed).
[0051]
In the first, second, and third embodiments, the case where the decryption processing is not performed in each switching device SW or the replacement server and the decryption is performed collectively in the decryption device or the decryption server has been described. In the fourth embodiment, a case where partial decoding is performed in each replacement server will be described. However, in each replacement server, the input ciphertext I is converted in each replacement stage, and partial decryption is performed collectively in the final stage of replacement, thereby increasing the processing speed as compared with performing partial decryption in each replacement stage. ing.
[0052]
In this embodiment, a partial decryption process performed by each replacement server is hereinafter referred to as f, and an output sentence corresponding to an arbitrary input sentence I of the replacement server having an arbitrary secret key X is represented by f.X(I).
The partial decoding process f performed by each replacement server is limited to the following process.
・ Replaceable
F for any secret keys A and BA(FB(I)) = fB(FA(I)) holds.
-Batch decryption possible
F for any known secret keys A and BA(FB(I)) = fg (A, B)There exists a function g (A, B) of (I), and fA(FBF for the calculation of (I))g (A, B)The calculation of (I) can be executed at high speed.
[0053]
Under such a premise, in this embodiment, if the output of a certain replacement server is not reliable, randomization is performed using only the reliable information of the replacement server that is closest to the upstream and that has been determined to be free from unauthorized processing. The replacement / disturbance / partial decoding process is performed, and the next process proceeds without performing the compensation operation for the illegal process.
The secret key of each replacement server is secretly shared in a verifiable manner with all other replacement servers in advance, and if an untrusted replacement server is detected, each of the remaining replacement servers is replaced by the upstream trusted replacement server. Random permutation / disturbance / partial decryption processing is performed using the information, and when the processing by all the reliable permutation servers is completed, all the permuted secret keys of the unreliable permutation servers are collected and jointly restored by the permutation server. I do. A partial decryption process (compensation operation) for the information portion that is to be partially decrypted by the unreliable replacement server is performed collectively by using all the restored private keys of the unreliable replacement server. By this batch processing, even if the outputs of a plurality of replacement servers are unreliable, fraud recovery can be performed by performing only one compensation operation.
[0054]
In the fourth embodiment, in the following description, an El Gamal distributed decoding system will be described as an example of an exchangeable and collectible partial decoding process used by the replacement server. The generalized El Gamal cryptosystem is applicable as long as the above properties are satisfied (for example, elliptical El Gamal cryptosystem).
In the fourth embodiment, a description will be given of a configuration in which the correspondence of each input and output is concealed as a whole even when random elements in some replacement servers are leaked.
[0055]
In this embodiment, a permutation that performs several proved random permutations, perturbations and partial decryption tasks sequentiallySa, An anonymous communication path is configured by V replacement servers.
FIG. 19 shows an example of the system configuration of the fourth embodiment. As in the case of the embodiments of FIGS.1~ PSVIs connected to the
[0056]
FIG. 20 shows the flow of data via the
[0057]
It is not necessary that all 2-input 2-output unit switching devices SW arranged on a 4 × 5 grid be switchable in order to form each 8-input complete permutation network. Even if the positional relationship is fixed, replacement of all sets can be realized by a combination of switching of the remaining switching devices. Therefore, in order to reduce the processing amount in the replacement server, such a switching device that may fix the input / output relationship does not perform the replacement process on the input data. These fixed connection switching devices are denoted by SWF. However, when the ciphertext is decrypted through a replacement network constituting an anonymous communication path, which is the object of the present invention, if the number of times the input data is subjected to decryption processing differs depending on the selected path, the decryption processing becomes complicated and inconvenient. .
[0058]
In the present invention, even in such a fixed connection switching device SWF, processes other than the replacement process (such as disturbance, partial decryption, and proof generation) are performed on the input data. In the following description, the switching device SW that performs all processes such as replacement, disturbance, partial decryption, and proof generation is called a PR partial decoder with proof, and the switching device SWF that does not perform replacement is called a fixed partial decoder with proof. . Further, permutation / randomization is simply represented by PR.
[0059]
In the embodiment of FIG. 19, the input is 8 messages, and 5 replacement servers PS1~ PS5And correct permutation / disturbance / partial decoding can be executed even when the processing of two of the five permutation servers is illegal. Each replacement server PS1~ PS5The proof-provided PR partial decoder SW of the constituent elements is configured as shown in FIG. 21 or FIG. 28, and the proof-provided fixed partial decoder SWF is configured as shown in FIG. These will be described later in detail. Each replacement server PS1~ PS5Each have a verifier P70. Each verifier P70 includes a PR proof verifier P70A, a partial decryption proof verifier P70B, and a PR partial decryption proof verifier P70C.
[0060]
The
This system has five replacement servers PS1~ PS5Thus, an
[0061]
Substitution server PS1~ PS5Performs data processing in a predetermined order, and each replacement server reads from the
[0062]
Each replacement server can be verified against any other replacement server, and replacement servers in which an unauthorized input / output relationship is not detected cooperate with each other to perform a compensation operation for a decoding process assigned to the unauthorized replacement server. For this purpose, all the replacement servers share in advance the secret keys of all the replacement servers by secret sharing.
As described above, each replacement server sequentially executes the tasks of a plurality of PR partial decoders with certification, and each PR partial decoder SW with certification in the substitution server is configured as shown in FIG. In addition, a permuted
[0063]
FIG. 21 shows a PR partial decryptor SW with proof that performs perturbation / disturbance processing on a two-input El Gamal ciphertext, partially decrypts using the partial information of a secret key, and outputs a perturbation perturbation decryption result and a proof of its validity. 1 shows an example of a configuration. This PR partial decoder SW with proof is used for a verifiable anonymous communication path with collective unauthorized recovery in FIG.
The operation is performed as follows in the PR partial decoder SW with proof, but steps that can be executed simultaneously may be executed in parallel. Steps whose execution order can be exchanged may exchange the execution order. In addition, for a plurality of operations performed by a plurality of devices having the same function, the devices may be united and the operations may be sequentially performed.
[0064]
Step 1: The permuted disturber with
Step 2: The permutation-perturbed partial decoder SW with proof is (M0 +, G0 +), (M1 +, G1 +) Is output as part of the proof information.
Step 3: The fixed
[0065]
In addition, the processing order of the permutation, the disturbance, and the partial decryption in the proof-permuted perturbation partial decoder SW can be arbitrarily selected. However, the contents of the proof information differ according to the processing order.
The
FIG. 23 shows an example of the configuration of a
Y = gX, G = gw, M = mYw
Holds. Disturbing the input ciphertext (M, G) means that a secret parameter g calculated before input of M and G by a secret random number r besides a person who performs the disturbing process.-RAnd Y-RAnd the multipliers 12B1 and 121B2
M '← M × Y-R,
G '← G × g-R
Is calculated, and (M ′, G ′) is output. The output (M ', G') is
M '= mYwr, G ′ = gwr
Therefore, this is an El Gamal ciphertext relating to the plaintext m, the public key (Y, g), the secret key X, and the random number wr.
[0066]
The above operation is executed by the
FIG. 22 shows a two-input El Gamal ciphertext (M0, G0) And (M1, G13) shows an example of the configuration of a
When B = 0
(M '0, G '0) ← D (M0, G0, R0)
(M '1, G '1) ← D (M1, G1, R1)
When B = 1
(M '0, G '0) ← D (M1, G1, R0)
(M '1, G '1) ← D (M0, G0, R1)
Output message (M '0, G '0) And (M '1, G '1) Is output.
[0067]
The
[0068]
Step 1: If the replacement parameter B is B = 0, the
(L0, L1) ← (M0, G0)
(L2, L3) ← (M1, G1)
And if B = 1, then
(L0, L1) ← (M1, G1)
(L2, L3) ← (M0, G0)
And
[0069]
Step 2: The
Step 3: The
That is, GiAnd G 'jB = i (+) j, where i, j {0, 1}, is subjected to disturbance processing of the output. Therefore r0, R1G as well as the value of-R0, Y-R0, G-R1, Y-R1The value of must also be kept secret. In FIG. 22, the disturbance is performed after the replacement, but the replacement may be performed after the disturbance.
Permutation
The permutation
For all i, j {0, 1} where b = 0
logY(Mi/ M 'j) = Logg(Gi/ G 'j)
Or for all i, j {0, 1} where b = 1
logY(Mi/ M 'j) = Logg(Gi/ G 'j… (Proposition 1)
Must be indicated. For this purpose, the proof information T described below is generated from the replacement disturbance proof generator 3A.ij, Wij, Zij, EbIs calculated and output.
[0070]
The input B is a replacement parameter input to the
[0071]
Output eb, Tij, Wij, Zij, ((B, i, j {0, 1}) is (M) as b = i (+) ji, Gi) And (M 'j, G 'j) Is information for certifying the correspondence or masquerading as the correspondence.
The replacement
About 0,1}
If i (+) j = B
Tij← YRij, Wij← gRij
If i (+) j = B '(B' represents the inversion of B)
Tij← (Mi/ M 'j)eYRij, Wij← (Gi/ G 'j)egRij
If B = 0
e0← -e + h (T00, T01, T10, T11, W00, W01, W10, W11)
e1← e
If B = 1
e1← -e + h (T00, T01, T10, T11, W00, W01, W10, W11)
e0← e
For any i, j {0, 1},
If i (+) j = B then zij← Rij-EBrj
If i (+) j = B 'then zij← Rij
With this operation, the prover (the replacement disturbance proof generator 121) obtains the proof information VRF = Veb, Tij, Wij, ZijOutput}.
[0072]
In this calculation, steps that can be executed simultaneously may be executed in parallel. Steps whose execution order can be exchanged may exchange the execution order. In addition, for multiple operations by multiple devices with the same function, unify the devices and execute the operations sequentially
You may.
PR proof verifier P70A
The PR proof verifier P70A in the verifier P70 provided in each of the replacement servers in FIG. 19 verifies that the
[0073]
Input eb, Tij, Wij, Zij, (B, i, j {0, 1}) are the outputs of the
This verifier P70A has Tij, Wij, Zij, EbBesides M0, G0, M1, G1 , M '0, G '0, M '1, G '1Is entered and
e0+ E1= H (T00, T01, T10, T11, W00, W01, W10, W11)
Is established, and if this is not established, a false signal is output and the processing ends. Function h
Represents a one-way function.
[0074]
Then, assuming that b = i (+) j for all i, j {0, 1},
Tij= (Mi/ M 'j)ebYzijAnd
Wij= (Gi/ G 'j)ebgzij
Is established, and if this is not established, a false signal is output and the processing ends. Both
If both are satisfied, true is output.
E prepared in advance by an unauthorized certifier by some meansb, ZijUsing
Tij← (Mi/ M 'j)ebYzij ,
Wij← (Gi/ G 'j)ebgzij
H (x0, X1,…)), E0, E1Either one of these is difficult to calculate in advance, so it proves
[0075]
The output is an estimate of whether the perturbation perturber worked correctly and is a truth value.
In the permutation disturbance proof verifier P70A, the operations are executed as described above, but the steps that can be executed simultaneously may be executed in parallel. Steps whose execution order can be exchanged may exchange the execution order. Multiple devices with the same function
The calculation of (1) may be performed by unifying the apparatus and sequentially executing the calculation.
[0076]
The permutation disturber with
In the permuted
The calculation of (1) may be performed by unifying the apparatus and sequentially executing the calculation.
[0077]
Step 1: The
Step 2: The
[0078]
Certified
21 will be described with reference to FIGS. 24, 25, and 26. FIG. The partial decoder with
[0079]
FIG. 25 illustrates an example of a configuration of a
Plain text m, public key (Y, g) and random number
M = mYw, G = gw
Holds.
Now Y = y × y ′ and y = gxIt is assumed that the partial decryptor knows the value of partial information x of the secret key. The partial decryptor obtains M ′ ← M × G for the input (M, G).-XTo calculate (M ′,
G) is output. The output is
M '= my'w, G = gw
Therefore, the El Gamal cipher text relating to the plaintext m, the public key (y ′, g), and the random number w
It becomes.
[0080]
The
May be executed.
Step1: The power multiplier 141A1 uses the input -x and G to input L0← G-XAnd calculate L0Is output.
[0081]
Step 2: The multiplier 141A2 receives the input M and L0M ′ ← M × L0Is calculated and M ′ is output.
Step 3: The
Partial
FIG. 26 shows an example of the configuration of a partial
Y = g to provexWithout revealing the value of the secret key x
knows the value of x and M / M '= GxHolds (Proposition 2)
Is shown by the zero-knowledge proof. The proof is two discrete logarithms loggy and logG(M / M ') equal
This is indicated by the Chaum-Pedersen protocol.
[0082]
The input R is a random number secret to anyone other than the prover, and gRIs calculated before G is input. The partial
The hash calculator 141B2 is a device for calculating a one-way hash function h, and the specifications of the hash function are assumed to be public. In this apparatus, calculations are performed as follows, but steps that can be performed simultaneously may be performed in parallel. Steps whose execution order can be exchanged may exchange the execution order. In addition, for a plurality of operations performed by a plurality of devices having the same function, the devices are unified and the operations are sequentially executed.
Is also good.
[0083]
Step1: The power multiplier 141B1 uses the input R and G to make T ← GRIs calculated and T is output.
Step 2: Hasher 141B2 is held in input T and register 141B3
V = gRIs used to calculate e ← h (T, V), and e is output.
Step 3: The multiplier 141B4 uses the input e and x to perform L0← Calculate exx and L0Is output.
[0084]
Step 4: The subtractor 141B5 receives the input R and L0Using s ← RL0And outputs s.
Step 5: Output T, V, e, and s as proof information VRF to the partial decryption proof verifier P70B in FIG.
Partial decryption proof verifier P70B
The partial decryption proof verifier P70B that verifies the output of the partial
(Proposition 2) "is determined and output.
[0085]
The output of the partial
You. g and y are open to the public as described above.
In this device, calculations are performed as follows, but steps that can be performed simultaneously may be performed in parallel. Steps whose execution order can be exchanged may exchange the execution order. In addition, multiple operations performed by multiple devices having the same function
And may sequentially perform calculations.
[0086]
Step 1: The partial decryption proof verifier P70B (FIG. 19) outputs e, T, V
e = h (T, V)
Otherwise, output false and end.
Step 2: The partial decryption proof verifier P70B receives the input m, M '. For G, e, s
T = (M / M ')eGs
Otherwise, output false and end. This means that M '= MG-X, S = R-ex, it can be understood that, if correct, the equal sign holds.
[0087]
Step 3: The partial decryption proof verifier P70B obtains V = y for the input V, e, and s.egsOtherwise, output false and end. This means that V = gR, Y = gx, S = R-ex.
Step 4: The partial decryption proof verifier P70B outputs true if all verifications are established, and ends the processing.
The above is the description of the functional configuration of each PR partial decoder SW with certification as a switching device in each complete replacement network described in FIG. 20 and the verifier P70B associated therewith. Next, the fixed partial decryptor SWF with certification in the complete permutation network shown in FIG. 20 will be described.
Proof fixed partial decoder SWF
FIG. 27 shows an example of the configuration of a proof-fixed fixed partial decryptor SWF that partially decrypts a two-input El Gamal ciphertext using partial information of a secret key and outputs a decryption result and a proof of the validity of each decryption result. Represents.
[0088]
The fixed partial decryptor SWF with proof is used for performing fixed replacement and partial decryption with proof in the replacement network of FIG. 20 as described above. The fixed partial decoder SWF with proof includes a partial decoder with
In the fixed partial decoder SWF with proof, the operation is executed as follows, but the steps that can be executed simultaneously may be executed in parallel. Steps whose execution order can be exchanged may exchange the execution order. In addition, for a plurality of calculations performed by a plurality of devices having the same function, the devices may be unified and the calculations may be sequentially performed.
[0089]
Step1: The partial decryptor with
Step 2: The proof-provided
Certified partial decryptor SW
FIG. 28 shows a configuration example different from that shown in FIG. 21 described above as the certified PR partial decoder SW in FIG.
[0090]
FIG. 28 shows a two-input El Gamal ciphertext (M0, G0), (M1, G1) Was subjected to a perturbation partial decoding process (M ′0, G '0), (M '1, G '121) and an example different from FIG. 21 of the configuration of the certified PR partial decoder SW that outputs a proof that correct processing has been performed without revealing secret information. Figure21In the example of the above, the proof for the perturbation perturbation and the proof for the partial compound are performed separately, but the difference is that the proof is performed on the result of perturbation partial decoding in FIG.
[0091]
The signed PR partial decoder SW includes a PR partial decoder 124 and a PR partial
In the PR partial decoder SW, operations are performed as follows, but steps that can be performed simultaneously may be performed in parallel. Steps whose execution order can be exchanged may exchange the execution order. In addition, for a plurality of calculations performed by a plurality of devices having the same function, the devices may be unified and the calculations may be sequentially performed.
[0092]
Step 1: The PR partial decoder 124 receives (M0, G0), (M1, G1) Is subjected to a perturbation / disturbance partial decryption process using the input B, the disturbance parameter, and the partial information of the secret key (M ′0, G '0), (M '1, G '1) Is output.
Step 2: The PR partial
In the PR partial decoder SW with proof, the order of replacement, disturbance, and partial decryption may be arbitrarily changed.
[0093]
28 is configured in the same manner as the
The permutation-perturbed partial decoder 124 performs the operation as follows, but the steps that can be executed simultaneously may be executed in parallel. Steps whose execution order can be exchanged may exchange the execution order. In addition, for a plurality of calculations performed by a plurality of devices having the same function, the devices may be unified and the calculations may be sequentially performed.
[0094]
Step 1: The displacement disturber 124A has parameters B and g for displacement disturbance.-R0, Y-R0, G-R1, Y-R1(M)0, G0), (M1, G1) Is output.
Step 2: The
Step 3: The
PR partial
The PR partial
[0095]
The input B is a replacement parameter input to the replacement unit (see FIG. 22) in the replacement disturbance unit 124A.j(J {0, 1}) is a random number for disturbance inputted to the disturber (see FIG. 22) in the replacement disturber 124A, x of the input is partial information of the decryption key, and e, K0, K1, Rij(I, j {0, 1}) is a random number for generating proof information, and the input gK0, GK1 + ex y 'Rij, GRij(I, j {0, 1}) is the input Mi, Gi, M 'j, G 'j(I, j {0, 1}) are parameters for generating proof information calculated before input.
[0096]
Output Vb, Eb, Sb, Tij, Wij, Zij, (B, i, j {0, 1}) are given by b = i (+) j and (Mi, Gi) And (M 'j, G 'j) Is information to prove or disguise the response.
In order to directly prove that the perturbation-perturbation partial decoder 124 is operating correctly, b = 0, 1} and the value of the perturbation and decryption secret parameters are not disclosed. i (+) j
M / M 'for all i, j {0, 1} where b = 0j= YrjGi xAnd Gi/ G 'j= Grj
M / M 'for all i, j {0, 1} where b = 1j= YrjGi xAnd Gi/ G 'j= Grj
... (Proposition 3)
Must be indicated. For this purpose, the proof information Vb, Eb, Sb(B∈ {0, 1}), Tij, Wij, Zij(I, j∈ {0, 1}).
[0097]
For all i, j {0, 1},
If i (+) j = B
Tij← y 'RijGi K0, Wij← gRij
If i (+) j = B '(B' is the inverse of B)
Tij← (Mi/ M 'j)ey 'RijGj K1, Wij← (Gi/ G 'j)egRij
Is calculated.
[0098]
Further
VB← gK0, VB '← gK1 + ex
And B = 0
e0← -e + h (T00, T01, T10, T11, W00, W01, W10, W11)
And e1← e,
If B = 1
e1← -e + h (T00, T01, T10, T11, W00, W01, W10, W11)
And e0← e
Furthermore, if i (+) j = B
zij← Rij−ebrj
And if i (+) j = B ′, zij← Rijage
If B = 0
s0← K0-E0 x
And s1← K1age,
If B = 1
s1← K0-E1x
And s0← K1And
[0099]
The permutation-perturbed partial
PR partial decryption proof verifier P70C
The PR partial decryption proof verifier P70C in FIG. 19 verifies that the PR partial decryptor 124 shown in FIG. 28 is operating correctly. This verifier P70C verifies the output of the PR partial
[0100]
The input of the PR partial decryption proof verifier P70C is eb, Tij, Wij, Zij, (B, i, j {0, 1}), which is the output of the PR partial
e0+ E1= H (T00, T01, T10, T11, W00, W01, W10, W11)
Is calculated, and if it is not true, false is output and the process is terminated. If it is true, V is set for all b {0, 1}.b= GsbyebIs calculated and ascertained. If not, false is output and the process is terminated. If it is satisfied, it is assumed that b = i (+) j for all i, j {0, 1}.
Tij= (Mi/ M 'j)eby 'zijGi sb , Wij= (Gi/ G 'j)ebgzij
Is determined by calculating whether or not is true. If not, false is output and the process is terminated. If true, true is output. Thus, the truth of
[0101]
In the verifier P70C, the calculation is executed as described above, but the steps that can be executed simultaneously may be executed in parallel. Steps whose execution order can be exchanged may exchange the execution order. In addition, for a plurality of calculations performed by a plurality of devices having the same function, the devices may be unified and the calculations may be sequentially performed.
FIGS. 29A and 29B show an example of the configuration of the 4-input and 8-input
[0102]
A complete permutation network is a plurality of PR partial decoders SW with proofs and fixed partial decoders SWF with proofs arranged in a matrix, connected in cascade, and a secret substitution parameter B of each PR partial decoder SW with proofs.iIs a network that can realize any permutation to the input by the combination of the values of The input is N El Gamal ciphertexts and the output is N ElGamal ciphertexts or N plaintexts. Further, as information for proving the validity of the replacement, the proof information of each PR partial decoder with proof and the fixed partial decoder with proof, and input / output information other than the secret key, the substitution disturbance parameter, and the random number information are output and disclosed.
[0103]
In FIG. 29A, two El Gamal ciphertexts are input, and the PR partial decryptor SW with certification and the fixed partial decryptor SWF with certification are arranged in two rows and three columns as a processor for outputting two El Gamal ciphertexts. The output of the partial decoder in each row is supplied to the partial decoder of the next column in the same row, and the output of the partial decoder in the same row is input to the partial decoder in the next column. What is indicated by a solid line block in the apparatus is a PR partial decryptor SW with certification, which permutates and disturbs two El Gamal ciphertexts and partially decrypts using partial information of a secret key, and the result of the perturbation disturbance And proof information for proving its validity, and what is indicated by the broken line block in the partial decryptor is a fixed partial decryptor SWF with proof, and this El Gamal ciphertext is Partial information Using partially decoded, and outputs the decoding result, the credentials to prove its validity. In this case, there are 4! = 4 × 3 × 2 = 24, but BiIf the number is 5, then 25= 32 kinds of arrangements are possible, and the input arrangement can be set to any of all replaceable arrangements. In other words, in the case of a 4-input array, the PR partial decoder with proof, in other words, the replacement parameter BiCan be set if there are five processors that can set the total replacement network. On the other hand, compared to the PR partial decoder with proof, the fixed partial decoder with proof is considerably simple in configuration, that is, the amount of calculation is small, so the processor in the first row and the third column is a fixed partial decoder with proof. And This may also be a certified PR partial decoder.
[0104]
FIG. 29B shows a case where PR partial decoder SW with proof or fixed partial decoder SWF with proof is arranged in 4 rows and 5 columns, and the output is exchanged between the inner three columns where the output is input in the same row and the output is replaced. Some are entered. This configuration is a combination of two four-input, four-output complete permutation networks of FIG. 29A, as indicated by the broken lines in the figure.
B in column i of secret permutation parameteriWithout knowing the value of, it is not possible to estimate what kind of substitution was performed. That is, M '0, ..., M '3Is BiIf you do not know the combination of the values of, you cannot know who sent the sentence. In order to correctly decode in both of FIGS. 29A and 29B, each partial decoder in the same column (i-th column) has the same decryption key x.ihave.
FIG. 30 shows an example of the configuration of a 2N-input
[0105]
Since the
[0106]
Therefore, a function of performing a partial decryption process using only the permuted disturbance partial decoder with proof and the fixed partial decoder with proof is provided.nA complete permutation network of the input can be constructed.
N (= 2nThe components required for the complete permutation network of the input are the permutation-perturbed partial decoder Nlog with proof2N−N + 1 and fixed partial decoders with proof (N−1), and the total number of stages (the number of columns) is 2N log2N-1 stages.
Verifiable
FIG. 20 shows an example of the configuration of a verifiable anonymous communication path with 8 inputs, 2 secret leakage resistances, 2 failure resistances, and batch unauthorized recovery. Verifiable
[0107]
The verifiable
[0108]
In general, when the verifiable
The t failure tolerance is a verifiable anonymous communication path with a collective unauthorized recovery that can finally output correctly by unauthorized recovery even when the operation of at most t of V (> 2t) replacement servers is incorrect. Means that.
[0109]
Each replacement server performs secret sharing so that the secret key can be restored if t + 1 or more replacement servers are gathered by a secret sharing method that can verify its own secret key to other replacement servers. For example, a secret key x for hiding a coefficient of
[0110]
(Equation 8)
Using xi= FiThe secret key can be restored as (0). Such a key secret sharing and restoring method is described in, for example, "Cryptography, Zero Knowledge Proof and Number Theory", published by Kyoritsu Shuppan Co., Ltd. on December 20, 1995, edited by Tatsuaki Okamoto and Kazuo Ota, pp. 62-63.
[0111]
As shown in FIG. 19, each replacement server PS includes a
Each replacement server uses the last output that is found to be correct as a result of the inspection as its own input, calculates the product of all public keys not yet used for partial decryption processing for that input, and uses this for the disturbance processing A perturbation partial decoding process is performed as a parameter.
[0112]
After the final output is completed, all of the replacement servers operate correctly, that is, all the devices are convinced that all the devices are correct, and if all the replacement servers output, the final output is a plain text column (list).
In cases other than the above, when three (t + 1) or more replacement servers that have performed reliable input and output finally collect after the final output, all replacements determined to be not operating correctly are performed. The secret key of the server is restored by the key secret sharing restoration method, and the total sum is made public as x '.
[0113]
Finally, each of the mutually reliable replacement servers decrypts the finally reliable output by using the secret key x ^ to obtain a public text string and publish it. The fact that the secret key x 'can be used for decryption is based on the "grouping possible" condition. If three (t + 1) or more replacement servers that have finally performed reliable input and output do not collect, unauthorized recovery cannot be performed. Fail.
Whether the permutation server is reliable is verified by using the input, output, and proof information of the permutation server, by verifying the above-described PR partial decoder with proof, the permutation disturber with proof, and the fixed partial decoder with proof. It is sufficient to verify all the constituent processors. The processing for the replacement server is performed in the order of the cascade connection, and the input is the output of the immediately reliable replacement server. The following is an example of a search technique for determining which replacement server's output should be used as input. This search is performed by the determination unit P60 in each replacement server.
[0114]
In addition, the input list to the
[0115]
The search of the input list shown in FIG. 31 can reduce the processing as follows. In FIG. 31, the number t from which replacement server the input list determined by each replacement server is registered in the bulletin board, and between the steps S2 and S3, as shown in FIG.i Is the output list L of the trusted replacement servert(S6). If the replacement server PS to be verifiedi Output list L of the replacement server which is reliabletIs not input, the replacement server PS can be used without performing the verification in step S3.i Can be determined to have performed an illegal process. Therefore, as shown in FIG.i Is the list LtIs not entered, the replacement server PSi Input list LtAnd output list LiMove to step S5 without verifying the correspondencet, The replacement server PSi Step S3 is executed for. As a result, the processing amount can be reduced as compared with the case shown in FIG. Substitution server PS1~ PSj-1Is completed (if i ≧ j), the value of t is registered in the bulletin board in step S6, and the process ends.
[0116]
Another example will be described. In this example, each replacement server PSi , I = 1, ..., V is higher than thatFlowIt is assumed that, for each of the pre-replacement servers, the result of determination as to whether or not the server is reliable is registered in the bulletin board as shown in FIG. Also, each replacement server PSjIs above myselfFlowEach replacement server PSk(1<k <j) is used as the reliability information Rk= Register true or false. FIG. 33B shows the replacement server PS.j 2 shows an example of the reliability information recorded in the register No. 1. In FIG. 33A, the j-1st replacement server is already above each of them.FlowIn the judgment results for all the replacement servers, the mark ○ indicates reliability, and the mark × indicates no reliability.
[0117]
Each replacement server is above itselfFlow, The output of the nearest reliable replacement server is required as input, so the j-th replacement server PSj Is the first replacement server PS1 33A, the second replacement server is determined to be unreliable, but referring to the bulletin board as shown in FIG. 33A, the i-th replacement server determines that the second replacement server is reliable. Has been determined. Therefore, the j-th replacement server can determine that the i-th replacement server is not reliable. In such a case, the j-th replacement server can omit the verification of the input / output correspondence for the i-th replacement server. Similarly, if the j-th replacement server determines, for example, the third replacement server to be reliable, but the i-th replacement server determines that the third replacement server is unreliable (see FIG. 33A), the j-th replacement server can also determine that the i-th replacement server is unreliable, and also in this case, the j-th replacement server is the i-th replacement server. It is possible to omit the verification of the input / output correspondence to The search process of the input list by the j-th replacement server using this method will be described with reference to FIG.
[0118]
Replacement server PS shown in FIG.j In the search processing of the input list, the replacement server PS is first set to t = 0 and i = 0.j R for k = 1,..., J−1kAre true (S1). If i is smaller than j (S2), the register shown in FIG. 33B is referred to, and the reliability information R of the k = i-th replacement server is referred to.iIs checked (S3), and RiIs true, then (RiIs set to true), the replacement server PSi Certificate information VRFiIs the list LtAnd list LiIt is checked whether the one-to-one correspondence has been proved (S4), and if it is proved correctly, t is updated to i (S5). In this case, the replacement server PS of k = i + 1,..., J−1k Is the replacement server PSi Output list LiShould be determined to be correct, that is, the replacement server PS i is reliable.i Replacement server PS that has determined that is not reliablek If there is, as shown in FIG. 33B, the reliability information R for the replacement serverkIs changed to false (S7), then i is incremented by 1 and the process returns to step S2 (S7).
[0119]
List L in step S4tAnd list LiIf it is not possible to prove that there is a one-to-one correspondence, the process proceeds to step S8, where the bulletin board is referred to, and if k = 1,.k Server PSi If there is a replacement server that is determined to be reliable, the reliability information R for that replacement serverkIs changed to false, i is stepped in step S7, and the process returns to step S2. Accordingly, in the subsequent loop processing, i is determined in step S2, and the reliability information R of the register is determined in step S4 or S8.kIs replaced with the number i = k of the replacement server, the reliability information R of the server in the register is stored in step S3.kIs false, the process proceeds to step S8 without performing the verification in step S4.
[0120]
If i exceeds j in step S2, the list L at that timet, And all the replacement servers PSk Reliability information R aboutkIs published (registered on the bulletin board) and the process ends.
As described above, the reliability information R, which is each inspection result,kThe amount of processing required for searching for an output list to be input can be reduced by using.
In FIG. 20, each replacement server PS1~ PS5, A permutation-disturbed partial decoder with proof alone or a fixed partial decoder with proof is used. However, each replacement server PS1~ PS5Can be configured using a permuted perturber with proof and a fixed partial decoder with proof. For example, as shown in FIG. 35, the permutation-perturbed partial decoder with proof in FIG. 20 is replaced with a permuted perturber with proof, and the part of the fixed partial decoder with proof in FIG. After the last stage (column) of the server, a certified partial decoder may be provided for each row.
[0121]
Also, for example, the replacement server PS in FIG.1 , The processors in the first row (first column) of each row may all be changed to the certified permutation disturbers. In short, the replacement server only needs to perform the proof replacement perturbation processing as a whole and the proof partial decryption processing by at least one stage (one column) of processors. Note that if t fault tolerance does not matter and only t secret leakage tolerance is required, t + 1 complete replacement networks configured without duplicating replacement servers are sufficient, and the condition of V> 2t is not required. .
[0122]
In each of the embodiments of the present invention described above, the replacement network forming the anonymous communication channel according to the present invention may be configured by connecting two-input / two-output unit switching devices SW (SWF) according to rules. N = 2kIn the case of input, the unit switching device SW (SWF) is set to 2k-1In a permutation network arranged in (2k-1) stages one by one, one data processing device takes in the processing results from the preceding stage in each stage, executes processing for 2k-1 units of the unit switching device SW, and performs processing. The results may be sequentially output, or one processor may sequentially execute the processing to be performed by the (2k-1) data processors in the (2k-1) stages.
[0123]
For example, when one data processing device is provided for each of the (2k-1) stages, the J-th processing device has two data processing devices from the preceding stage.kEl Gamal ciphers (M, G), which are the processing results, are sequentially taken in, and the ciphers (M ′, G ′) obtained by performing the above-described replacement, disturbance, and partial decryption are sequentially output in accordance with a predetermined rule. . This processing procedure will be described with reference to FIGS.
FIG. 36 shows which one of the J-th stage processing apparatus belongs to the group of the 1st to k-1th stage, the group of the kth to 2k-2th stage, and the last 2k-1th stage. And which of
Step S1: It is determined whether or not J = 2k−1, that is, whether or not it is the last stage. If it is the last stage, the process proceeds to the execution of the process 3 (FIG. 39). If not, the process proceeds to step S2.
Step S2: It is determined whether or not J−k ≧ 0, that is, whether J is a value of k to 2k−2, and if so, the process proceeds to the execution of the process 2 (FIG. 38). If not, the process proceeds to step S3.
Step S3: J is a value of 1 to k-1, and the processing shifts to execution of processing 1 (FIG. 37).
[0124]
FIGS. 37, 38, and 39 show flows for executing the
[0125]
bit [x, y] represents the value of the lower y bits of x expressed in binary. For example, if x = 1001 and y = 4, bit [x, y] = 1.
Step S11: Initially set to i = 0.
Step S12: Two ciphers (L1) to be subjected to the 2i-th and (2i + 1) -th random replacement from the J-1st stageJ-1[2i], LJ-1[2i + 1]) is subjected to the permutation perturbation partial decryption processing with proof, and the processing results are stored in the [rot (2i, k-J + 1)] th and [rot (2i + 1, k-J + 1)] th output registers, respectively. .
Step S13: Increment i by one.
Step S14: i ≦ 2k-1 Is determined, and if so, there is still unprocessed data, and the process returns to step S11. If not, the data processing in the J stage ends.
[0126]
Step S21: Initially set to i = 0.
Step S22: It is determined whether or not bit [i, J−k] = 0, and if YES, the process is performed by the fixed replacement device SWF. If NO, the process is performed by the replacement device SW. Move to step S24.
Step S23: The 2i-th and (2i + 1) -th pair of ciphers (LJ-1[2i], LJ-1[2i + 1]) are stored in the [lrot (2i, J−k + 2)] and [lrot (2i + 1, J−k + 2)] th output registers, respectively.
Step S24: The 2i-th and (2i + 1) -th pairs of ciphers (LJ-1[2i], LJ-1[2i + 1]) is subjected to the permutation-perturbed partial decryption processing with proof, and the processing results are stored in the [lrot (2i, J−k + 2)]-th and [lrot (2i + 1, J−k + 2)]-th output registers, respectively. . Step S25: Increase i by one.
Step S26: i ≦ 2k-1 Is determined, and if so, there is still unprocessed data, and the process returns to step S22. If not, the data processing in the J stage ends.
[0127]
Step S31: Initially set to i = 0.
Step S32: It is determined whether or not bit [i, J−k] = 0, and if YES, the process is performed by the fixed replacement device SWF. If NO, the process is performed by the replacement device SW. Move to step S34.
Step S33: The 2i-th and (2i + 1) -th pairs of ciphers (LJ-1[2i], LJ-1[2i + 1]) are stored as they are in the 2i-th and (2i + 1) -th output registers, respectively. Step S34: The 2i-th and (2i + 1) -th pairs of ciphers (LJ-1[2i], LJ-1[2i + 1]) is subjected to the perturbation partial decryption processing with proof, and the processing results are stored in the 2i-th and (2i + 1) -th output registers, respectively.
Step S35: Increase i by one.
Step S36: i ≦ 2k-1 Is determined, and if so, there is still unprocessed data, and the process returns to step S32. If not, the data processing in the J stage ends.
[0128]
When the processing of all (2k-1) stages is executed by one processing device, the processing procedures of FIGS. . . , 2k-1.
The perturbation decoding process according to the present invention described above may be performed by recording the program on a recording medium as a computer program, and reading and executing the program.
Both of the above-described encoding device and decoding device can also perform their respective functions by causing a computer to decode and execute a program.
[0129]
FIG. 40 shows a configuration in a case where a computer performs a permutation-perturbed partial decryption method with certification in a permutation network forming an anonymous communication channel according to the present invention. The
[0130]
As a program for executing the permutation-perturbed partial decryption method with certification according to the present invention, a program recorded on an
[0131]
【The invention's effect】
According to the present invention, by taking advantage of the fact that the replacement of a small number of inputs is relatively easy, the replacement of a small number of inputs is repeated to form the entire replacement. , It is possible to reduce the amount of calculation and the amount of communication for the proof against the replacement to the amount proportional to Nlog 2N, and to construct an efficient verifiable anonymous communication channel.
[0132]
Conventionally, each time one fraudulent (failure) is detected by one replacement server, the compensation processing is performed. Therefore, if there is a fraud in t devices, the compensation processing must be performed t times. According to the above, even when t outputs out of V replacement servers become unreliable, processing is performed by bypassing the unreliable (illegal or faulty) device and finally recovered by the key secret sharing recovery method. Plaintext can be obtained using the key, and the fraud recovery is completed by performing the fraud recovery processing only once.
[0133]
Further, according to the present invention, it is possible to recover fraudulently t times faster than in the case where fraudulent recovery is conventionally performed t times, and it is possible to efficiently guarantee a band in a verifiable anonymous communication path.
Furthermore, by constructing t + 1 complete replacement networks in series without using replacement servers in duplicate, resistance to t secret leakage can be obtained.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a conventional 4-input permutation network.
FIG. 2 is a block diagram showing an entire apparatus to which the present invention is applied;
FIG. 3 is a block diagram showing a configuration of an anonymous communication path for four inputs and a configuration of a verification terminal.
FIG. 4 is a block diagram showing a configuration of a switching device SW in FIG. 3;
FIG. 5 is a block diagram showing a configuration of a
FIG. 6 is a block diagram showing a configuration of a
FIG. 7 is a block diagram showing a configuration of a
8 is a block diagram showing a configuration of a
FIG. 9 is a block diagram showing a configuration of a
FIG. 10 is a block diagram showing a configuration of a
FIG. 11 is a block diagram showing a configuration of a
FIG. 12 is a block diagram showing a system configuration of a second embodiment.
FIG. 13 is a block diagram showing a configuration of a replacement server PS in FIG. 12;
FIG. 14 is a block diagram showing a configuration of a
FIG. 15 is a diagram showing a data flow in each server in the second embodiment.
FIG. 16 is a block diagram showing a system configuration of a third embodiment.
FIG. 17 is a block diagram illustrating a configuration of a decoding unit in the
FIG. 18 is a block diagram illustrating a configuration of a decryption verification unit according to the third embodiment.
FIG. 19 is a block diagram showing an example of a system configuration using an anonymous communication channel according to the present invention.
FIG. 20 is a block diagram showing a plurality of complete replacement networks constituted by replacement servers cascade-connected via a bulletin board in the embodiment of FIG. 19;
FIG. 21 is a block diagram showing an example of a functional configuration of a permuted partial decoder with proof.
FIG. 22 is a block diagram showing an example of a functional configuration of a replacement disturbance device.
FIG. 23 is a block diagram illustrating a functional configuration example of a disrupter.
FIG. 24 is a block diagram showing an example of a functional configuration of a partial decoder with proof.
FIG. 25 is a block diagram showing a functional configuration example of a partial decoder.
FIG. 26 is a block diagram showing a functional configuration example of a partial decryption proof generator.
FIG. 27 is a block diagram showing an example of a functional configuration of a fixed partial decoder with proof.
FIG. 28 is a block diagram showing an example of a functional configuration of a permuted partial decoder with proof.
FIG. 29 is a block diagram showing a configuration example of a complete replacement network.
FIG. 30 is a block diagram showing an example of a technique for enlarging a complete replacement network.
FIG. 31 is a flowchart showing an example of processing for searching an input list of a replacement server.
FIG. 32 is a flowchart showing another processing example of searching the input list of the replacement server.
FIG. 33A is a table showing a result of determining the reliability of a replacement server disclosed on a bulletin board in another search processing method, and B is an example of reliability information held in a register by each replacement server in the search method; FIG.
FIG. 34 is a flowchart showing still another processing example of searching the input list of the replacement server.
FIG. 35 is a block diagram showing another embodiment of the anonymous communication path according to the present invention.
FIG. 36 is a flowchart showing a procedure for selecting a process based on the value of J in the replacement process procedure at the J-th stage of the replacement network.
FIG. 37 is a flowchart showing a procedure of
FIG. 38 is a flowchart showing the procedure of
FIG. 39 is a flowchart showing the procedure of
FIG. 40 is a conceptual diagram of a computer system that reads a program of a perturbation-perturbed partial decryption method with proof according to the present invention from a recording medium and executes the perturbation-perturbed partial decryption with proof.
Claims (36)
N個の入力に対し、Nより小さいn個、nは2以上の整数、ずつ、単位置換処理手段により処理を実行してN個の出力を得る処理段の複数個が縦続接続され、
上記単位置換処理手段はn個の入力をランダム置換し、秘密情報を用いて撹乱することによりn個の出力を出力し、任意の検証器に対して上記n個の入力と上記n個の出力を対応付ける上記秘密情報及び上記ランダム置換が確かに存在することを、使用した上記秘密情報及び上記ランダム置換を明かすことなく零知識証明で証明する証明情報を出力する手段であることを特徴とする検証可能匿名通信路システム。N, where N is an integer greater than 2, replaces and disturbs the encrypted input message and outputs N output messages, and it is optional that the output message and the input message correspond one-to-one. a verifiable anonymous channel system to prove to the verifier,
For N inputs, n is smaller than N, n is an integer of 2 or more, and a plurality of processing stages for performing processing by the unit replacement processing means to obtain N outputs are cascaded,
The unit replacement processing means randomly replaces the n inputs and outputs n outputs by disturbing using the secret information, and outputs the n inputs and the n outputs to an arbitrary verifier . A verification means for outputting proof information that proves that the secret information and the random permutation certainly exist by using a zero-knowledge proof without revealing the secret information and the random permutation used. Possible anonymous communication system.
できなくなった状態で、出力が信頼できる置換サーバの分散鍵で各部分復号鍵を回復する手段と、その回復した全ての部分復号鍵を用いて出力が信頼できる置換サーバの出力を一括復号して平文を得る手段とを含むことを特徴とする検証可能匿名通信路システム。6. The verifiable anonymous communication channel system according to claim 5, wherein the cascade connection is a cascade connection of V replacement servers including at least one of the processing stages, and V is an integer of 2 or more. All of the other replacement servers are verifiably secret-shared, and the above-mentioned verifiable anonymous channel system further outputs t, t <V / 2, outputs in a state where the outputs of the replacement servers become unreliable. Means for recovering each partial decryption key with the shared key of the reliable replacement server, and means for collectively decrypting the output of the replacement server whose output is reliable using all the recovered partial decryption keys to obtain plaintext A verifiable anonymous communication channel system characterized by the following.
可能匿名通信路システム。The verifiable anonymous communication channel system according to any one of claims 1 to 15, wherein the encrypted message is based on El Gamal encryption.
上記各置換サーバは入力されたN個のメッセージを、Nより小さい2以上の整数n個ずつランダム置換し、秘密情報を用いて撹乱してN個のメッセージを出力し、かつ上記各n個ずつの置換撹乱処理(以下、単位処理という)についてその処理の前後の各n個のメッセージを対応付ける上記秘密情報及び上記ランダム置換が確かに存在することを、使用した上記秘密情報及び上記ランダム置換を明かすことなく零知識証明で証明する証明情報をそれぞれ出力することを特徴とする検証可能匿名通信方法。N, where N is an integer greater than 2, the encrypted input message is passed through two or more integer V replacement servers connected in cascade to disturb and permutate to output N output messages. A verifiable anonymous communication method for proving to an arbitrary verifier that the output message and the input message correspond one-to-one,
Each of the permutation servers performs random permutation of the input N messages by an integer n of 2 or more smaller than N, disturbs using secret information, outputs N messages, and outputs each of the n messages. Of the perturbation perturbation process (hereinafter referred to as "unit process"), reveals that the secret information and the random permutation used for associating each of the n messages before and after the process exist. A verifiable anonymous communication method characterized by outputting proof information to be proved by a zero-knowledge proof without any need.
t個、t<V/2、の置換サーバの出力が信頼できなくなった状態で、信頼できる置換サーバの分散鍵で各部分復号鍵を回復し、その回復した全ての部分復号鍵を用いて信頼できる置換サーバの出力を一括復号して平文を得ることを特徴とする検証可能匿名通信方法。18. The verifiable anonymous communication method according to claim 17, wherein the partial decryption key is secretly distributed in a verifiable manner to all of the other replacement servers in advance,
In the state where the output of t replacement servers of t <V / 2 becomes unreliable, each partial decryption key is recovered with the shared key of the reliable replacement server, and the trust is recovered using all the recovered partial decryption keys. A verifiable anonymous communication method characterized by collectively decrypting the output of a possible replacement server to obtain plaintext.
上記単位置換処理手段は、n個の入力メッセージをランダム置換し、かつ秘密情報を用いて撹乱してn個の出力メッセージを出力する切換部と、上記置換と撹乱が正しく行われたことを、上記秘密情報及び上記ランダム置換を明かすことなく零知識証明で証明する撹乱証明情報を出力する置換証明生成部とを備えることを特徴とする置換サーバ。A processing stage in which two or more integers N encrypted messages are inputted, and these messages are processed by the unit replacement processing means for each of two or more integers n smaller than N to obtain N outputs. A plurality of cascade connections are performed, and N messages are output from the last processing stage,
The unit replacement processing means is a switching unit that randomly replaces n input messages, and outputs n output messages by disturbing using secret information, and that the replacement and disturbance are correctly performed. A replacement server, comprising: a replacement proof generating unit that outputs the confidential information and the disturbance proof information to be proved by a zero-knowledge proof without revealing the random replacement.
上記単位置換処理手段は、その撹乱されたn個のメッセージが入力され、これらを部分復号鍵を用いて部分復号してn個の上記出力メッセージとして出力する部分復号部と、
その部分復号部が正しく動作したことを上記部分復号鍵を明かすことなく零知識証明で証明する復号証明情報を出力する復号証明生成部とを備えることを特徴とする置換サーバ。30. The server of claim 29,
The unit replacement process hand stage, its disturbed n pieces of message is input, a partial decoding unit for outputting them as the n-number of the output message by partially decoded using the partial decryption key,
A decryption proof generation unit for outputting decryption proof information for certifying that the partial decryption unit has correctly operated by the zero-knowledge proof without revealing the partial decryption key.
その置換撹乱器のn個の入力メッセージとn個の出力メッセージとが入力され、これら入力メッセージに対し、出力メッセージが正しく置換撹乱処理されたものであることを上記ランダム置換及び上記秘密情報を明かすことなく、零知識証明による検証を可能とする撹乱証明情報を出力する撹乱証明生成器と、
上記置換撹乱器から出力されたn個のメッセージが入力され、これらを部分復号鍵を用いて部分復号してn個の出力メッセージとして出力する部分復号器と、
その部分復号器の入力メッセージを入力して、その部分復号器が正しく動作している事を上記部分復号鍵を明かすことなく零知識証明で証明する復号証明情報を出力する復号証明生成器とを備える切替装置SWが構成され、
nより大きい整数N個の暗号化されたメッセージが入力され、上記切替装置SWにより構成される処理段が複数個縦続接続され、その終段の処理のN個の出力メッセージと、上記各切替装置SWよりの撹乱証明情報及び復号証明情報とを出力することを特徴とする置換サーバ。A permutation disturber to which n or more integer n messages are input, which are randomly permuted, and disturbed using secret information to output n messages;
N input messages and n output messages of the perturbation disturber are inputted, and the random permutation and the confidential information are revealed to the effect that the output message is correctly permuted and perturbed for these input messages. A disturbance proof generator that outputs disturbance proof information that enables verification by zero-knowledge proof,
A partial decoder that receives the n messages output from the permutation disturber, partially decrypts them using a partial decryption key, and outputs them as n output messages;
A decryption proof generator that inputs an input message of the partial decryptor and outputs decryption proof information for certifying that the partial decryptor is operating correctly without revealing the partial decryption key by a zero-knowledge proof. A switching device SW comprising:
An N number of encrypted messages greater than n is input, a plurality of processing stages constituted by the switching device SW are cascaded, and N output messages of the final stage processing and each of the switching devices A replacement server for outputting disturbance proof information and decryption proof information from a SW .
その置換撹乱器よりのn個の出力メッセージが入力され、これら出力メッセージを部分復号鍵で復号してn個の出力メッセージを出力する部分復号器と、
上記置換撹乱器のn個の入力メッセージ及び上記部分復号器の上記n個の出力メッセージが入力され、上記置換と撹乱が正しく行われ、かつ上記部分復号器が正しく動作したことを、上記秘密情報、上記ランダム置換及び上記部分復号鍵を明かすことなく零知識証明で証明する証明情報を出力する証明生成器とを備える切替装置SWが構成され、
nより大きい整数N個の暗号化されたメッセージが入力され、上記切替装置SWにより構成される処理段が複数個縦続接続され、その終段の処理のN個の出力メッセージと、上記各切替装置SWよりの撹乱証明情報及び復号証明情報とを出力することを特徴とする置換サーバ。2 or more integer n number of messages are entered, a substituted randomizer to the n-number of message random permutation, and outputs the n number of messages disturbance by using the secret information,
A partial decoder that receives n output messages from the permutation disturber, decodes these output messages with a partial decryption key, and outputs n output messages;
The substitution randomizer of n input message and the partial decoder of the n output message is inputted, that the replacement and disturbance is performed correctly, and was the partial decoder operates correctly, the secret information A proof generator configured to output proof information for proving with the zero-knowledge proof without revealing the random permutation and the partial decryption key .
An N number of encrypted messages greater than n is input, a plurality of processing stages constituted by the switching device SW are cascaded, and N output messages of the final stage processing and each of the switching devices A replacement server for outputting disturbance proof information and decryption proof information from a SW .
上記処理段の中の1つには、n個のメッセージが入力され、これに対しランダム置換、撹乱することなく、部分復号鍵による部分復号を行って出力し、かつその復号が正しく行われたことを、その部分復号鍵を明かすことなく、零知識証明で証明する証明情報を出力する証明付き固定部分復号部が少なくとも1つ設けられていることを特徴とする置換サーバ。The server according to claim 30 or 32,
In one of the above processing stages, n messages are input, and the message is subjected to partial decryption with a partial decryption key and output without random replacement and disturbing, and the decryption was performed correctly. that, without revealing the partial decryption key, substituted server, wherein a certified fixing partial decoding unit for outputting a certification information certifying zero knowledge proof is provided one low Do Kutomo.
他の置換サーバの入出力メッセージと証明情報を入力し、これらを用いて上記他の置換サーバの出力メッセージの信頼性を検証する検証器を備えることを特徴とする置換サーバ。The server according to any one of claims 30 to 33,
A replacement server, comprising: a verifier that inputs an input / output message and proof information of another replacement server, and verifies the reliability of an output message of the other replacement server by using the input / output message and the proof information.
当該置換サーバより上流の置換サーバについて順次、上記検証器による検証を実行させ、信頼性があると判定された最も近い置換サーバの出力メッセージを当該置換サーバの入力メッセージとする判定器を備えることを特徴とする置換サーバ。The server of claim 34,
The replacement server upstream from the replacement server is sequentially subjected to verification by the above-described verifier, and a determination unit that sets an output message of the closest replacement server determined to be reliable as an input message of the replacement server is provided. Replacement server featuring.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000145992A JP3540718B2 (en) | 1999-05-19 | 2000-05-18 | Verifiable anonymous communication path system, method for implementing the same, and recording medium recording the method |
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13910299 | 1999-05-19 | ||
| JP11-331387 | 1999-11-22 | ||
| JP11-139102 | 1999-11-22 | ||
| JP33138799 | 1999-11-22 | ||
| JP2000145992A JP3540718B2 (en) | 1999-05-19 | 2000-05-18 | Verifiable anonymous communication path system, method for implementing the same, and recording medium recording the method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001217824A JP2001217824A (en) | 2001-08-10 |
| JP3540718B2 true JP3540718B2 (en) | 2004-07-07 |
Family
ID=27317801
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000145992A Expired - Lifetime JP3540718B2 (en) | 1999-05-19 | 2000-05-18 | Verifiable anonymous communication path system, method for implementing the same, and recording medium recording the method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3540718B2 (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1374188A2 (en) | 2001-03-24 | 2004-01-02 | Votehere Inc. | Verifiable secret shuffles and their application to electronic voting |
| JP3901471B2 (en) | 2001-05-18 | 2007-04-04 | 日本電気株式会社 | Proofed shuffle decryption system, proved shuffle decryption method, and shuffle decryption verification method |
| JP3890398B2 (en) * | 2004-02-19 | 2007-03-07 | 海 西田 | Verification and construction of highly secure anonymous communication path in peer-to-peer anonymous proxy |
| US12079867B2 (en) | 2018-03-29 | 2024-09-03 | Nec Corporation | Electronic transaction system, transaction server, verification server, method of transaction, and program |
| CN118694541B (en) * | 2024-08-27 | 2024-11-19 | 山东大学 | A distributed zero-knowledge identity authentication method and system based on verifiable credentials |
-
2000
- 2000-05-18 JP JP2000145992A patent/JP3540718B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001217824A (en) | 2001-08-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Joux | Algorithmic cryptanalysis | |
| Canetti et al. | Adaptively secure multi-party computation | |
| Gennaro et al. | Robust threshold DSS signatures | |
| US6587946B1 (en) | Method and system for quorum controlled asymmetric proxy encryption | |
| US9077540B2 (en) | Method for verification of decryption processes | |
| Barsoum et al. | On verifying dynamic multiple data copies over cloud servers | |
| Young et al. | Auto-recoverable auto-certifiable cryptosystems | |
| US6937728B1 (en) | Verifiable anonymous channel | |
| JPWO2005071881A1 (en) | Mix net system | |
| KR20240093465A (en) | Generation of shared key | |
| Costa et al. | Lattice-based proof of a shuffle | |
| CA2290952A1 (en) | Auto-recoverable auto-certifiable cryptosystems | |
| KR20240045231A (en) | Creation of digitally signed shares | |
| Gao et al. | Quantum election protocol based on quantum public key cryptosystem | |
| Baghery et al. | Pre-constructed publicly verifiable secret sharing and applications | |
| JP3540718B2 (en) | Verifiable anonymous communication path system, method for implementing the same, and recording medium recording the method | |
| Golle | Reputable mix networks | |
| CN118160275A (en) | Threshold Signature Scheme | |
| Awadallah et al. | Verifiable homomorphic encrypted computations for cloud computing | |
| JP3901471B2 (en) | Proofed shuffle decryption system, proved shuffle decryption method, and shuffle decryption verification method | |
| Abe | Universally verifiable mix-net with verification work independent of the number of mix-servers | |
| Dachman-Soled et al. | Local non-malleable codes in the bounded retrieval model | |
| JP3298826B2 (en) | Anonymous communication method and apparatus and program recording medium | |
| Diffie et al. | 6. New Directions in | |
| CN120528602B (en) | An anonymous public key encryption method and system suitable for edge computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040113 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040116 |
|
| 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: 20040323 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040325 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 3540718 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: 20090402 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100402 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110402 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120402 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140402 Year of fee payment: 10 |
|
| 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 |
|
| EXPY | Cancellation because of completion of term |
