[go: up one dir, main page]

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 PDF

Info

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
Application number
JP2000145992A
Other languages
Japanese (ja)
Other versions
JP2001217824A (en
Inventor
正幸 阿部
文学 星野
美也子 大久保
淳 藤岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2000145992A priority Critical patent/JP3540718B2/en
Publication of JP2001217824A publication Critical patent/JP2001217824A/en
Application granted granted Critical
Publication of JP3540718B2 publication Critical patent/JP3540718B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、電気通信システムで無記名投票を実現する場合等に利用される検証可能な匿名通信路システム、特に効率的に実現可能な匿名通信路、それを実施する方法及びその方法を記録した記録媒体に関する。
【0002】
【従来の技術】
まず、匿名通信路について説明する。一般に各サーバはそのサーバに接続した利用者を識別することができるのでどの利用者がどの情報を送信しているかを知ることができ、利用者とサーバ間の通信路には匿名性はない。匿名通信路を物理的な構成に因らず、電気通信システムにより実現する手段として、MIX−NET が提唱されている。MIX−NET ではL個のサーバU,…,Uが直列的に記名通信路で接続されたシステムである。
【0003】
RSA関数を用いてこれを実装する場合は、i番目のサーバは、大きな素数p,qに対し、n=p・q及びe・d=1(mod LCM(p−1, q−1))を満たす(d,n),(e,n) をそれぞれ復号鍵、暗号化鍵とする。RSAによるメッセージmの暗号化は、まず、乱数rを選び、mとrを結合してm‖rとする。次に、M:=(m‖r)dimod nとして暗号化メッセージMを得る。以下では、サーバUの暗号化鍵(e,n) を使ったこの暗号化手順をE(m,r)と書く。
【0004】
j番目の利用者は、送信すべきメッセージm
:=E(E(…(E(m, rjL), …), rj2), rj1
のように、全サーバの暗号化鍵(e,n),i=1,2,…,LとL個の乱数rj1,rj2,…,rjLを用いて多重に暗号化し、サーバUへ送付する。
サーバUは、複数の利用者から暗号化されたメッセージM,M,... が集まった後、これらを鍵(d,n) で復号し、各メッセージmに対応するE(…(E(m,rjL),…),rj2) 及びrj1を得る。サーバUはそれぞれの暗号化メッセージから得られたE(…(E(m,rjL),…),rj2), j=1,2,...の順序をランダムに置換し、サーバUへ送付する。この際、サーバUは各メッセージmに付けられた乱数rj1を秘密とすることで、サーバUへ送付された各E(…(E(m, rjL),…),rj2)がサーバUへ入力された暗号化メッセージM,M,... のどれに関する復号結果であるかを判別できないようにすることができる。
【0005】
以下、サーバU,…,Uも同様の処理を繰り返す。最後にサーバUは、各メッセージmを公開する。少なくとも一つのサーバUが乱数rji 及び置換の順序を秘密に保つことにより、各利用者からサーバUに入力された暗号文と、サーバUが出力したメッセージとの関連は隠蔽され、匿名通信路として機能する。
上記従来法によれば、各サーバが与えられた動作を行わず、不正に計算された、あるいは本来のものと置き換えた結果を出力してもその出力が不正であることを誰も検証することができない。
【0006】
検証を可能とする第一の方法として、例えばMasayuki Abeによる”UniversallyVerifiable Mix−net with Verification Work Independent of the Number of Mix−servers”, EUROCRYPT98, 5月31日、で提案されている方法がある。即ち、サーバ群はまず置換処理を実行し、各サーバの出力が正しいことを互いに証明、検証する。その後に、復号処理を実行し、各サーバの復号処理の出力が正しいことを互いに証明、検証する。この方法の問題点は、各サーバが行う証明、検証に多くの計算コストがかかる点にある。例えば、置換処理において、入力I,…,Iをランダム化し、更にランダムに置換した結果をO,…,Oとすると、この出力が正しい手順で処理されたものであることを、処理中のランダムな要素を見せることなく証明するには、以下のようにする。I,…,Iを同様の手順で撹乱し、ランダムに置換し、その結果をO’,…,O’とする。このとき、同型性が成り立つようなランダム化手順を用いると、O’,…,O’は、O,…,Oに対するランダム化の結果であると見なすこともできる。ここで、検証者はランダムに0/1 のチャレンジを選択して証明者に渡す。証明者はチャレンジが0のとき、{I,…,I}→{O’,…,O’}の置換・ランダム化処理に用いたランダム要素を全て公開する。また、チャレンジが1の時には、{O,…,O}→{O’,…,O’}のランダム化処理に相当するランダム要素を公開する。ランダム要素を入手すれば、全ての処理手順は確定的に再現することができるので、検証者はその入出力関係が正しいことを検証することができる。上記手順で証明者による不正を検出できない確率は、証明者がチャレンジを推測して当てる確率と等しく、1/2 であるので、証明者と検証者は上記手順を任意のk回数繰り返して、(1/2)の誤り確率で処理の正しさを証明、検証する。従って、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入力の置換に対する証明は、N の計算コストで行うことができる。以下にその概略を示す。まず、Iをランダム化した結果がO であるとすると、零知識対話証明を用いてIとO の関係をそのランダム化に用いたランダム要素を明かすことなく証明することが可能である。このような零知識対話証明では、
1.証明者は検証者にコミットメントと呼ばれるランダムなメッセージTを送付する、
2.検証者は、証明者にチャレンジと呼ばれるランダムな値Cを送る、
3.証明者はコミットメントTとチャレンジCに基づいて、ある検証式を満たす値Zを検証者に送る、
という手順を実行し、検証者は、(T, C, Z, I, O)が所定の検証式を満たすか否かを検査することによって、IとO の関係の正当性を検証する。このような証明系において、証明者がTを作る前にCの値を知らなければ、検証式を満たすようなZの値を返すことは、IとO の関係が正当なものである場合にしかできない。しかし一方で、証明者が事前にCの値を知っていれば、IとO の関係が正当なものでなくても、検証式を満たすようなT,Zの値を求めることができる。この事実を利用すると、IがO,…,Oのいずれか1つ以上に対して正当な関係であることを示すことができる。まず、証明者は、C,…,C及び対応するZ,…,Zをランダムに選択する。次に、i=2,…,Nに対して、(T,C,Z,I,O) が所定の検証式を満たすようにTの値を決める。さらに、Tをランダムに選ぶ。この準備の後、
1.証明者は検証者にT,…,Tを送る、
2.検証者は、証明者にランダムに選んだCを送る、
3.証明者はC=C(+)C(+)…(+)CのようにC を計算し、(T,C,Z,I,O) が検証式を満たすような値Zを計算し、Z,…,Z及び、C,…,Cを検証者に送る、
という手順を実行する。ここで、(+) はビット毎の排他的論理和を意味する。検証者は全てのi=1,…,Nについて(T,C,Z,I,O) が所定の検証式を満たすことを検証し、更に、C=C(+)…(+)Cが成り立つことを検査すればよい。証明者は、事前にCの値を知らないので、少なくとも一つのCについては、証明者が操作できない値とならざるを得ないため、Iは少なくとも一つのOと正当な関係であることが確認できる。
【0008】
【発明が解決しようとする課題】
この方法に因れば、I→Oor…orOを示すために、I→O の関係を示す為の証明のN倍の計算、通信コストが掛かることになり、結局、{O,…,O}→{O’,…,O’}を示す効率は、Nに比例する。従って、入力数Nが増大するとデータ処理量が膨大になる問題がある。
このように、上記従来法によれば、各サーバが行う証明、検証にはNkあるいはN に比例する計算量及び通信量が掛かるため、効率が悪い。
【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出力の切換スイッチ(入力の順序を入れ換えて出力するか、又はそのままの順序で出力するかを切り替えることができるスイッチ)を格子状に配置し、それぞれの段の出力と次段の入力を規則に従って接続することにより、2個の入力に対する全ての置換を網羅することができるような置換網を構成する事ができることが知られている(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入力に対し、4=16通りの全ての置換を実現することが可能である。このような置換網を完全置換網と呼ぶことにする。一般的に、N個の入力に対してNlogN−N+1個の切換スイッチを用いることによって完全置換網を構成できることが知られている。
【0013】
そこで、この発明では、この各置換スイッチSW1 〜SW5 に対し、入力のランダム化とランダム置換の証明を行う機能を付加して単位の切り換え装置を構成し、それぞれの切り換え装置においてランダム置換の正当性の証明を行うことで、全体の置換に対する正当性を証明する。各切り換え装置が行う証明には前述の第二の方法を用いる。よって、例えば各切り換え装置への入力が2つの場合には、2=4 の計算コストで証明、検証が実行でき、全体の効率を4(NlogN−N+1) 程度に抑制することが可能である。
第1実施例
この発明による検証可能な匿名通信路は、図2に示すように個の暗号文E,…,Eが入力され、それらの復号結果を入力との対応関係がわからないようにランダム置換して出力する匿名通信路100 と、そのランダム置換の正当性と復号の正当性を検証する検証端末200 とから構成されている。この実施例では、匿名通信路100 は入力暗号文E,…,Eを受付け、置換及び復号化して平文のリストTpを得、その置換及び復号化に対する検証に必要な情報Proofを生成し、平文リストTpと共に検証端末200 へ送付する。
【0014】
匿名通信路100 は完全置換網を形成するよう切換装置SW1〜SW5が接続されており、この発明によれば、各切換装置SWがランダム置換を行ない、その置換の正当性を零知識証明で証明する証明Proof〜Proofを出力する。この実施例では、切換装置は復号を行なわず、入力暗号を変形し、置換網10による処理後に、復号装置20により復号を行なう場合を示しているが、後述の第4実施例のように、各切換装置SWにおいて復号処理を行なってもよい。しかしながら、後者の場合、各切換装置SWは秘密鍵を使用した復号についての零知識証明を行なう必要があるのに対し、前者の場合(第1実施例の場合)では、復号装置20における復号に対して一括して零知識証明をするので、全体として処理量は少なくてすむ利点がある。
【0015】
2つの予め決めた大きな素数をp,qとし、qはpを割り切るものとする。Zp中の位数qの部分群をGqとし、gをGqのある要素とする。以下の説明中では、特に断りのない限り、全ての算術演算はmodpで行うものとする。El Gamal暗号の復号鍵をx∈Zqとし、暗号化鍵をy:=gとする。暗号化鍵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)=(my, g
となる。システムへの入力数Nを4とした場合のEl Gamal暗号で暗号化された4つの暗号文をE,E,E,Eとする。
図3に、4入力における匿名通信路100 及び、検証端末200 のブロック図を示す。また、各切換装置SW1〜SW5の構成を図4に示す。各切換装置SW内の切換部12、置換証明部14の構成をそれぞれ図5及び6に示す。匿名通信路100 は置換網10と復号装置20から成り置換網10では暗号文E, Eが切換装置SW1 に入力され、暗号文E, Eが切換装置SW2 に入力され、切換装置SW1 の2つの出力はそれぞれ切換装置SW3, SW4に入力され、同様に切換装置SW2 の2つの出力はそれぞれ切換装置SW3, SW4に入力され、切換装置SW3, SW4の各2つの出力の一方は切換装置SW5 に入力され、他方の出力R, Rは復号装置20に入力され、切換装置SW5 の2つの出力R, Rは復号装置20に入力される。
【0017】
入力暗号文E〜E、切換装置SW1〜SW5の各2つの出力はそれぞれ分岐されて検証端末200 の置換検証部30に入力され、この置換検証部30には各切換装置SW1〜SW5の置換証明出力Proof〜Proofも入力されている。復号装置20の4つの入力R〜Rも分岐されて復号検証部40に入力され、復号装置20の復号証明出力ProofD及び平文Tpを構成する復号メッセージm,…,mも復号検証部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, ∈Zq を生成し、切換部12へ入力する。
Step3:切換部12は以下のように動作する(図5参照)。
Step3−1: べき乗演算器12Aを駆動し、
【0020】
【数1】

Figure 0003540718
を計算する。
Step3−2: べき乗演算器12Aの出力T,T及び、入力I=(M, G),I=(M, G)を剰余乗算器12Bへ入力し、
【0021】
【数2】
Figure 0003540718
を計算する。このべき乗演算と剰余乗算とにより秘密情報t,tで入力メッセージI=(M,G),I=(M,G)がランダム化される。
Step3−3: 剰余乗算器12Bの出力R,R及び乱数bを順序入換器12Cへ入力する。順序入換器12Cは、b=1 のとき、O:=R及びO:=Rを、b=2 のとき、出力O:=R及びO:=Rを出力する。この出力を、O=(N,H),O=(N,H)とおく。このようにランダム化された入力メッセージはその順序がbによりランダム化され、即ち、ランダム置換される。
【0022】
Step4:図4中の乱数生成器13を駆動し、乱数w, w, eb’, z1b’, z2b’∈Zqを生成し、b,t,tとともに置換証明部14へ入力する。ここで、b’はb=1 のときb’=2とし、b=2 のときb’=1のように値を取るものとする。また、p, q, g, yをメモリ11から置換証明部14へ入力する。
Step5:置換証明部14は以下のように動作する(図6参照)。
置換証明部14には切換部12の2つの入力I, Iと2つの出力O, Oとがそれぞれ分岐入力されている。
Step5−1:べき乗乗算器14Aを駆動し、
【0023】
【数3】
Figure 0003540718
を計算する。
【0024】
Step5−2:ハッシュ演算器14BへI,I,O,O,S11,S12,S21,S22を入力し、その出力をcとする。
Step5−3:c及びq,eb’ を剰余減算器14Cへ入力し、出力
:=c−eb’modq
を得る。
Step5−4:e及びw,w,q,b,t,tを剰余乗減算器14Dへ入力し、
1b:=w−e・tmodq
2b:=w−e・tmodq
を計算する。
【0025】
Step5−5:置換が正当であることをゼロ知識証明を使って証明するため
Proof:=(e,e,z11,z12,z21,z22
を出力する。
置換網10の終端で得られる出力をR,R,R,Rとする。このとき、各RをR=(M’,G’)とおくと、以下の関係が成り立つ。
M’=mF(i)yt’
G’=gt’
ここで、F(*)は{1,2,3,4}→{1,2,3,4}なる置換関数の一つである。即ち、Rはメッセージ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は、R〜Rを順次以下のように処理する。
Step1:制御部24は入力Rを順次受信し、復号部21へ入力する。また、メモリ23からx,pを復号部21へ入力する。
Step2:復号部21では、図8に示すようにべき乗演算器21AへG’及びx,pを入力し、
:=G’ modp
を計算する。
【0028】
Step3:M’,p及び、べき乗演算器21Aの出力を剰余除算器21Bへ入力し、
:=M’/Kmodp
を計算し、復号結果として出力する。
続いて、復号装置20は正しく復号が行われたことを証明するProofDを、復号証明部22により以下のように作成する。
【0029】
Step1:復号証明部22は図9に示すように乱数生成器22Aにより乱数w∈Zqを生成し、べき乗演算器22Bへ入力する。
Step2:べき乗演算器22Bは、まずT:=gmodpを計算し、次に、各G’に対してT:=G’ modpを計算し、T,…,Tをハッシュ演算器22Cへ入力する。この例ではN=4 である。
Step3:ハッシュ演算器22Cは、c:=Hash(y,T,K,T,…,K,T)を計算し、cを剰余乗減算器22Dへ入力する。
【0030】
Step4:剰余乗減算器22Dはz:=w−cx(modq)を計算し、c, z, K,…, Kと共に出力する。
このとき、ProofD:=(c,z,K,…,K)とする。
検証端末200 は、まず、置換が正しく実行されたことを確認するため、置換検証部30を駆動する。置換検証部30は図10に示すようにべき乗乗算器31と、ハッシュ演算器32と、比較器33と、加算器34とから構成されている。置換検証部30は、i番目の切換装置SWi によるProofを以下のように検証する。
Step1:べき乗乗算器31を駆動し、
【0031】
【数4】
Figure 0003540718
を計算する。
【0032】
Step2:S11,S12,S21,S22及びI,I,O,Oをハッシュ演算器32へ入力し、その出力cを比較器33へ入力する。
Step3:e,eを加算器34へ入力し、e+eを計算する。その結果を、比較器33へ入力する。
Step4:比較器33へqを入力し、e+e=c(modq)が成り立つか否かを検査する。成り立つ場合はOKを、成り立たない場合はNGを出力する。このようにして置換が正しく行われたことは、その置換を生じさせた乱数bを示すことなく零知識証明により検証される。
【0033】
上記の検証を全ての切換装置の入出力に対して行い、NGとなるような証明を出力した切換装置が存在した場合はその切換装置は故障しているものと見なす。上記検証が全てOKの場合、次に、復号が正しく行われたこと検証するため、復号検証部40へR, …, R, m, …, m及びProofDを入力する。図11に復号検証部40のブロック図を示す。復号検証部220 は、剰余除算器41と、比較器42と、べき乗乗算器43と、ハッシュ演算器44と、比較器45とから構成され、以下のように復号化の検証を行う。
【0034】
Step1:剰余除算器41へM’とKを入力してM’/Kを計算し、その結果をmと共に比較器42へ入力して比較する。両者が等しくない場合には、比較器42はNGを出力し、検証結果をNGとする。全てのi=1, …, Nに対して比較結果がOKならば、次のステップへ進む。
Step2:べき乗乗算器43を駆動し、g及び、G’ ,…,G’ を計算し、ハッシュ演算器44へ入力する。
【0035】
Step3:ハッシュ演算器44を駆動し、
e:=Hash(y,g,K,G’ , …,K, G’
を計算する。
Step4:c及び、ハッシュ演算器44が出力したeを比較器45へ入力し、両者が等しければOKを、等しくなければNGを出力する。
復号が正しく行われた場合には、
=gw−cx=g=T
及び、
G’ =G’ w−cx =G’ =T
が成り立つので、ハッシュ演算器44の出力はcと等しくなる。
【0036】
この実施例では、各切換装置で用いたランダムな要素、即ち、b, t, t, w,wが全て秘密に保たれる場合には、E→mの対応はどのようなi, jについても秘匿される。この様に、この第1実施例においては、それぞれの切り換え装置におけるランダム置換の正当性をそれぞれの切り換え装置で証明するよう構成しているため、特に匿名通信路の全入力の数Nが増大すると前述したR.Cramer等の方法でランダム置換の正当性を証明する場合に比べ、必要なデータ処理量が著しく少なくてすむ。
第2実施例
この実施例ではいくつかの切換装置におけるランダム要素が漏洩した場合についても全体として各入出力の対応が秘匿されるような構成について説明する。
【0037】
この実施例では、図12に示すようにいくつかの切換装置の仕事を順次実行する「置換サーバ」を用い、V個の置換サーバPS,...,PSによって置換網10を構成する。また、復号を実行する復号サーバ20Sを用いる。以下では、V=4 個の置換サーバを用い、入力が4メッセージである場合について説明する。各置換サーバPS〜PS及び検証端末200 は掲示板400 に接続されているものとする。掲示板400 は、認証された利用者からの書き込みE, E, ...,Eを受け付け、一旦書き込んだ情報は消すことができないという機能を有する。また、書き込まれた情報は誰もが読み出すことができるものとする。この実施例も、第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つの置換サーバPS,...,PSによって、4入力の完全置換網を2つ構成した場合である。この場合のデータの流れを図15に示す。図中には示してないが、置換サーバ間のデータの転送は全て図12に示したように掲示板400 を介して行われる。即ち、各置換サーバPS は、置換出力を掲示板400 に書き込み、次段の置換サーバPSj+1 はそのデータを掲示板400 から読み込んで置換処理を行う。置換サーバPSは、第1実施例における切換装置SW1 とSW2 の仕事を実行し、掲示板400 を介して処理結果を置換サーバPSへ送出する。以下同様に、置換サーバPSは切換装置SW3,SW4,SW5、置換サーバPSは切換装置SW6,SW7、置換サーバPSは切換装置SW8,SW9,SW10の仕事を実行する。図13に示すように、実際に各置換サーバPS内に設置される切換装置SWの数は1つであり、適切な入力を制御部15が与えることによって図15のデータの流れを実現する。あるいは、実際に複数の切換装置SWを1つの置換サーバに設置しても良い。
【0040】
図12、15に示すように、縦続接続された置換サーバPS〜PSは少なくとも2つの縦続接続された完全置換網を形成している。各置換サーバPSの出力は、掲示板400 に接続された置換検証部30Sを持つ復号サーバ20Sによって第1実施例の場合と同様に置換Proof が検証され、不正な入出力関係が検出された場合はその置換サーバを故障しているものと見なす。その場合、故障とみなした置換サーバを排除して別の置換サーバで処理を代行するか、あるいは、故障した置換サーバが1つだけならば、その置換サーバによる処理を省略してしまっても良い。
【0041】
復号サーバ20Sは、全ての置換が正しいことを検証した後、復号部21Sで置換網10の出力(最終段置換サーバPS の出力)を復号すると共に、復号証明部22Sで、復号証明ProofDを生成し、掲示板400 に書き込む。検証端末200 は各置換サーバにより掲示板400 に書き込まれている各置換Proof〜Proolからを検証し、更に復号サーバにより書き込まれた復号結果(メッセージm,...,m)と復号証明ProofDを第1実施例と同様の手順で検証する。
【0042】
上記の構成によれば、ある置換サーバが攻撃されるなどして、ランダム要素が漏洩してしまい、その置換サーバにおける置換が第三者に明らかになってしまった場合に於いても、残りの置換サーバにおけるランダム要素の秘匿性が保たれる限りは、全体の置換関係は秘密に保たれる。例えば、置換サーバPSの実行した置換関係が明らかになっても、置換サーバPS、置換サーバPSで完全な置換網を構成しているので、入出力のどのような置換関係も実現し得る。同様に、どの1つの置換サーバの置換関係が漏洩しても、必ず他の2つの置換サーバによって完全な置換網が構成されており、それによって、秘匿性を保つことが可能である。
第3実施例
図16に示す第3実施例では、第2実施例における復号サーバ20S を複数の復号サーバ20S,…,20Sに分割して、複数の復号サーバ全体で単一の復号サーバを用いた場合と同一の機能を実現する。この実施例によれば、あるt<Lなるtに対して、少なくともt+1 個の復号サーバ20S が正常に動作すれば正しい結果を得ることができるため、耐故障性が向上する。又、図12の復号サーバ20S が1つの場合には、復号サーバ20S が復号を開始すればいつでも復号結果を得ることができるので、例えば投票の集計を予め決めた時間に公表する前にその投票結果の内容を不正に洩らしてしまうことが起こりえる。これに対し、図16の実施例では、前復号サーバ20S〜20Sが処理を終了しないと復号結果が得られないので、これらのサーバのうち少なくともt+1 個の復号サーバが協力して不正を行なわない限りどの復号サーバからも復号結果が公表前に洩れてしまうことはない。
【0043】
復号サーバを除くシステム構成は第2実施例と同様である。各復号サーバDには復号鍵xをt次の多項式で秘密分散した値xが格納されているものとする。即ち、F(0)=x(modq)を満たす、t<Lなるあるt次のランダム多項式F(X)∈Zq[X] があり、各xはx=F(i)modq を満たす値である。各復号サーバ20Sの構成は、図14に示した復号サーバ20Sにおいてxの代わりにxをメモリ23Sに格納すること及び、復号部21Sの内部構成を除き、図14と同様である。この実施例の復号サーバにおける復号部21Sは図17に示すように、べき乗乗算器21SAと有し、これは図8に示したべき乗乗算器21Aと同様の処理を行なう。
【0044】
置換サーバPS,...,PSの構成、動作は図12に示した第2実施例と同様である。各復号サーバ20Sは、全ての置換サーバPS,...,PSの入出力関係を第2実施例と同様に検証する。最終段の置換サーバPS から正しい置換出力R〜Rが得られ、置換検証が完了した後、各復号サーバは復号を実行する。j番目の復号サーバ20SjはR〜Rを順次以下のように処理する。
Step1:制御部は入力Rを順次受信し、復号部21S(図14参照)へ入力する。また、メモリ23Sからx,pを復号部21Sへ入力する。
【0045】
Step2:復号部21S(図17参照)では、べき乗演算器21SAへG’及びx, pを入力し、Kj,i:=G’ xjを計算する。
続いて、復号証明部22S(図14参照)は正しく復号が行われたことを証明するProofDを、復号証明部を駆動して作成する。実際の動作は、第1実施例の復号証明動作においてxをxに、yをyに入れ換えた場合と同様である。この証明部の出力を
ProofD:=(c, z, Kj,1,…,Kj,n
とする。
【0046】
検証端末200 の構成は図2と同様である。但し、復号検証部40は図18に示す構成となる。この復号検証部の動作は、第1実施例における復号検証部の動作のStep2〜4と同様である。t+1 以上の復号サーバに対する検証がOKとなるならば、検証端末はOKを出力する。
この実施例では、復号サーバ20Sの出力はKi,jであり、実際に各復号結果mを得るには以下の手順を実行する。まず、A⊆{1,…,L}を、|A|t+1となるように定める。ただし、j∈Aなるjに対して、復号サーバ20Sの出力は、復号検証に合格していなければならない。今、λ,Aを次式
【0047】
【数5】
Figure 0003540718
で定義される補間係数とする。すると、メッセージmは次式
【0048】
【数6】
Figure 0003540718
で得ることができる。これは、x=Σλj,AAxmodq(Σはj∈Aについて)が成り立つため、
【0049】
【数7】
Figure 0003540718
となり、第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に対応する出力文をf(I) とする。
各置換サーバで行われる部分復号処理fを次のような処理に限定する。
・交換可能
任意の秘密鍵A,Bに対してf(f(I))=f(f(I)) なる関係が成り立つ。
・一括復号化可能
任意で既知の秘密鍵A,Bに対してf(f(I))=fg(A,B)(I)なる関数g(A, B)が存在し、f(f(I))の計算に対してfg(A,B)(I)の計算が高速に実行可能である。
【0053】
このような前提においてこの実施例では、ある置換サーバの出力が信頼できない場合、その置換サーバより上流で最も近くにある、不正処理がないと判定された置換サーバの信頼できる情報のみを用いてランダム置換・撹乱・部分復号処理を行ない、不正処理に対する補償動作を行わずに次の処理を進める。
各置換サーバの秘密鍵は、予め他の全ての置換サーバに検証可能に秘密分散されており、信頼できない置換サーバが検出された場合、残りの各置換サーバはそれより上流の信頼できる置換サーバの情報を使ってランダム置換・撹乱・部分復号処理を行ない、全ての信頼できる置換サーバによる処理が完了した段階で、信頼できない置換サーバの分散秘密鍵の全てを信頼できる置換サーバが集めて共同で復元する。信頼できない置換サーバが部分復号処理することになっていた情報部分についての部分復号処理(補償動作)を、信頼できない置換サーバの復元秘密鍵の全てを用いて、一括して行う。この一括処理によって、複数の置換サーバの出力が信頼できない場合でもたった1回の補償動作を行うだけで不正回復を行う事が可能である。
【0054】
この第4実施例においては、置換サーバが用いる交換可能でかつ一括化可能な部分復号処理の一例として以下の説明ではEl Gamal分散復号系を挙げる。一般化されたEl Gamal暗号系においても、上記性質が満たされれば適用可能である(例えば楕円El Gamal暗号)。
この第4実施例ではいくつかの置換サーバにおけるランダム要素が漏洩した場合についても全体として各入出力の対応が秘匿されるような構成について説明する。
【0055】
この実施例では、いくつかの証明付きランダム置換・撹乱・部分復号の仕事を順次実行する置換ーバを用い、V個の置換サーバによって匿名通信路を構成する。
図19はこの第4実施例のシステム構成例であり、図12及び16の実施例と同様に置換サーバPS〜PSは掲示板400 に接続されている。この実施例では各置換サーバに他の置換サーバの処理に対する検証機能と入力暗号文に対する部分復号機能を持たせているため、図12及び16の実施例のような検証サーバ及び復号サーバは設けられてない。各置換サーバは、第2及び第3実施例における各置換サーバ内の複数の切換装置SWにより構成された置換部に対応する置換部P50 に加えて、他の置換サーバの処理に不正がないかを判定する判定部P60 と、ランダム置換・部分復号の証明を行なう検証部P70 を有している。置換サーバPS〜PSの置換部P50〜P50は掲示板400 を介して図19に示すように縦続接続される。各置換部P50〜P50は置換・撹乱部分復号を行う複数の切換装置SWを有している。検証端末200 は独立して設けるのではなく、それぞれの置換サーバに設けられている。
【0056】
図20は図1のシステムにおける置換サーバ間の掲示板400 を介したデータの流れを、掲示板を省略して示すため、図19における置換サーバPS〜PS内の置換部P50〜P50のみを示している。これら5つの置換部P50〜P50はこの例では縦続接続された2つの置換部P50とP50で1つの8入力完全置換網を形成し、縦続接続された2つの置換部P50とP50で同様に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つの置換サーバPS〜PSを用い、5つのうち2つの置換サーバの処理に不正である場合でも正しい置換・撹乱・部分復号を実行出来るものである。各置換サーバPS〜PSの構成要素の証明付きPR部分復号器SWは図21または図28に示すように構成され、証明付き固定部分復号器SWFは図27に示すように構成される。これらについては後で詳述する。各置換サーバPS〜PSはそれぞれ検証器P70 を備える。各検証器P70 はPR証明検証器P70Aと、部分復号証明検証器P70Bと、及びPR部分復号証明検証器P70Cをもって構成される。
【0060】
掲示板400 は、認証された利用者からの暗号文の書き込みを受け付け、一旦書き込んだ情報は消すことができないという機能を有する。書き込まれた情報は誰もが読み出すことができるものとする。
このシステムは、5つの置換サーバPS〜PSによって、それぞれ8入力の縦続接続された3つの完全置換網10A〜10Cからなる匿名通信路100 を構成している。3つの完全置換網10A〜10Cのうち2つの完全置換網のランダム要素が漏洩しても残った完全置換網によって入出力の対応関係を完全に秘匿することが出来る。
【0061】
置換サーバPS〜PSは予め決めた順番でデータの処理を行ない、各置換サーバは自段より前段の置換サーバの入出力データと証明情報を掲示板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 は乱数情報内の各種情報を用いて入力の(M,G),(M, G)を置換撹乱処理した結果の(M , G ),(M , G )及びその正当性の証明である証明情報0を出力する。
Step2:証明付き置換撹乱部分復号器SWは(M , G ),(M , G )を証明情報の一部として出力する。
Step3:証明付き固定部分復号器140 は乱数情報内の各種情報を用いて入力の(M , G ),(M , G )を部分復号した(M’, G’),(M’, G’)及びその正当性の証明である証明情報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= g,G= g,M=mY
が成り立っている。入力暗号文(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暗号文(M, G)及び(M,G)を撹乱置換する置換撹乱器121 の構成の一例を表している。El Gamal暗号文(M, G) を乱数rで撹乱して出来たEl Gamal暗号文をD(M, G, r)と記述する事にする。置換撹乱処理を行う者以外には秘密の置換パラメータB∈{0, 1}に従って、
B=0 のとき
(M’, G’) ← D(M, G, r
(M’, G’) ← D(M, G, r
B=1 のとき
(M’, G’) ← D(M, G, r
(M’, G’) ← D(M, G, r
なる出力メッセージ(M’, G’)及び(M’, G’)を出力する。
【0067】
置換撹乱器121 は置換器121Aと、撹乱器121B, 121Cとからなる。撹乱器121B及び撹乱器121Cは図23に示したように2つの乗算器121B, 121B2から構成される。この置換撹乱器121 では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
【0068】
Step1:置換器121Aはもし置換パラメータBがB=0 ならば、
(L, L) ← (M, G
(L, L) ← (M, G
とし、B=1 ならば、
(L, L) ← (M, G
(L, L) ← (M, G
とする。
【0069】
Step2:撹乱器121Bは撹乱パラメータ(Y−r0 , g−r0)を用いて、入力の(L, L)を撹乱して(M’, G’)を出力する。
Step3:撹乱器121Cは撹乱パラメータ(Y−r1 , g−r1 )を用いて、入力の(L, L)を撹乱して(M’, G’)を出力する。
つまり、GとG’の対応B=i(+)j, ただしi, j∈{0, 1}、を隠蔽するために出力を撹乱処理している。従ってr,rの値だけでなく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}に関して
log(M/M’)= log(G/G’
またはb=1なる全てのi, j∈{0, 1}に関して
log(M/M’)= log(G/G’) ・・・(命題1)
を示さなくてはならない。そのためにこの置換撹乱証明生成器3Aから以下に述べる証明情報Tij,Wij,zij,eを演算して出力する。
【0070】
入力のBは置換撹乱器121 中の置換器121Aに入力された置換パラメータである。入力のr, (j∈{0, 1})は置換撹乱器121 中の撹乱器121B,121Cに入力された撹乱用の乱数である。入力のe, Rij(i, j∈{0, 1})は証明用の乱数である。入力のYRij,gRij (i, j∈{0, 1})は入力のM,G,M’,G’(i, j∈{0,1})が入力されるより前に計算された証明用のパラメータである。これら情報{B, r, e, Rij, YRij, gRij}を乱数情報RDMと呼ぶことにする。
【0071】
出力のe,Tij,Wij,zij,((b, i, j∈{0, 1})はb=i(+)jとして(M,G)と(M’,G’)の対応を証明するか、または対応を装って証明する為の情報である。
この置換撹乱証明器122 では、図のように演算が実行される。つまりi, j∈{
0,1}に関して
i(+)j=Bならば
ij ← YRij , Wij ← gRij
i(+)j=B’(B’はBの反転を表す)ならば
ij ← (M/M’Rij ,Wij ← (G/G’Rij
B=0ならば
← −e+h(T00,T01,T10,T11,W00,W01,W10,W11
← e
B=1ならば
← −e+h(T00,T01,T10,T11,W00,W01,W10,W11
← e
任意のi, j∈{0, 1}に関して、
i(+)j=Bならば zij ← Rij−e
i(+)j=B’ならば zij ← Rij
この演算により証明者(置換撹乱証明生成器121 )は証明情報VRF={e, T ij,Wij,zij}を出力する。
【0072】
なおこの演算において、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行
しても良い。
PR証明検証器P70A
図19の各置換サーバに設けられた検証器P70 内のPR証明検証器P70A は 図21に示した置換撹乱器121 が正しく動作している事を検証するため、PR 証明生成器122 の出力、つまり証明情報VRF={e,Tij,Wij,zij}を検 証する。
【0073】
入力のe,Tij,Wij,Zij,(b, i, j∈{0, 1})は置換撹乱証明生成 器122 の出力であり、b=i(+)jとして(M,G)と(M’,G’)の対応 を証明するか、または対応を装って証明する為の情報である。
この検証器P70AにはTij,Wij,zij,eの他にM,G,M,G ,M’,G’,M’,G’が入力されて、次式
+e= h(T00,T01,T10,T11,W00,W01,W10,W11
が成立するかを確かめ、これが成立しなければ偽を出力して終了する。関数h
は一方向性関数を表わす。
【0074】
その後、全てのi, j∈{0, 1}に関してb=i(+)jであるとして、
ij= (M/M’ebzij かつ
ij= (G/G’ebzij
が成立するかを確かめ、これが成立しなければ偽を出力して終了する。前記両
確認が共に成立すれば真を出力する。
不正な証明者が何らかの手段で事前に用意したe,zijを使って、
ij ← (M/M’ebzij
ij ← (G/G’ebzij
を計算し出力しようとしてもh(x, x, …)の非予測性により、e, e のどちらか一方は事前に計算することが困難なので命題1の証明となる。
【0075】
出力は置換撹乱器が正しく動作したかどうかの推定であり、真理値である。
この置換撹乱証明検証器P70Aでは、上述のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数
の演算は、装置を一元化して、順次演算を実行しても良い。
【0076】
証明付き置換撹乱器120
証明付置換撹乱器120 は2入力のEl Gamal暗号文(M, G),(M, G )を置換撹乱処理した(M’, G’),(M’, G’)及び、正しい処理が行 われた事の証明を秘密情報を明かさずに出力する(零知識証明)。この証明付 き置換撹乱器120 は置換撹乱器121 と置換撹乱証明生成器122 とから構成され る。
この証明付き置換撹乱器120 では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数
の演算は、装置を一元化して、順次演算を実行しても良い。
【0077】
Step1:置換撹乱器121 は入力の(M, G),(M, G)を入力のBと 撹乱パラメータg−r0, Y−r0, g−r1, Y−r1で置換撹乱処理し、(M’, G’),(M’, G’)を出力する。
Step2:PR証明生成器122 は入力(M, G), (M, G)及び出力(M ’, G’), (M’, G’)及び乱数情報RDM={B, r, e, Rij, YRij, g Rij}を使って証明情報VRF={e, 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=mY,G=g
が成り立っている。
いまY=y×y’及びy=gなる秘密鍵の部分情報xの値を部分復号者が知って いるとする。部分復号者は入力の(M,G)に対してM’ ← M×G−xを計算して(M ’,
G)を出力する。出力は
M’= my’,G=g
を満たすので、平文m及び公開鍵(y’, g)及び乱数wに関するEl Gamal暗号文
となる。
【0080】
部分復号器141Aは冪乗器141A1 と乗算器141A2 からなる。この装置では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算
を実行しても良い。
Step1:冪乗器141A1 は入力の−x及びGを用いてL← G−x を計算してL を出力する。
【0081】
Step2:乗算器141A2 は入力のM及びLを用いてM’ ← M×Lを計算し てM’を出力する。
Step3:部分復号器141Aは入力のGをそのまま出力する。
部分復号証明生成器141B
図26は図25に示した部分復号器141Aが正しく動作している事を秘密情報を明かさずに証明する部分復号証明生成器141Bの構成の一例を表している。こ
の証明をするためにはy=gなる秘密鍵xの値を明かさずに、
xの値を知っており、かつM/M’=Gが成立する(命題2)
を零知識証明で示す。証明は二つの離散対数 logy及び log(M/M’)が等し
い事を、Chaum−Pedersenのプロトコルで示す。
【0082】
入力のRは証明者以外には秘密の乱数であり、gはGが入力される前に計 算されているものとする。この部分復号証明生成器141Bは冪乗器141B1 と、ハ ッシュ器141B2 と、レジスタ141B3 と、乗算器141B4 と、減算器141B5 とから なる。
ハッシュ演算器141B2 は一方向性ハッシュ関数hを計算する為の装置で、ハッシュ関数の仕様は公開されているものとする。この装置では、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行して
も良い。
【0083】
Step1:冪乗器141B1 は入力のR及びGを用いてT←Gを計算してTを出 力する。
Step2:ハッシュ器141B2 は入力のT及びレジスタ141B3 に保持されている
V=gを用いてe←h(T, V)を計算してeを出力する。
Step3:乗算器141B4 は入力のe及びxを用いてL←e×xを計算してL を出力する。
【0084】
Step4:減算器141B5 は入力のR及びLを用いてs←R−Lを計算して sを出力する。
Step5:T,V,e,sを証明情報VRF として図19の部分復号証明検証器 P70Bへ出力する。
部分復号証明検証器P70B
図21中に示した部分復号証明生成器141B(142B)の出力を検証する部分復号証明検証器P70Bは部分復号器141A(142A)が正しく動作していることを検証するものであって、「部分復号器141Aがxの値を知っており、かつM/M’=Gが成
立する(命題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’)
でなければ偽を出力して終了する。このことはM’=MG−x,s=R−exの関係を代入してみれば、正しければ等号が成立つことから理解される。
【0087】
Step3:部分復号証明検証器P70Bは入力のV, e, s に対してV=yでなければ偽を出力して終了する。このことはV=g,y=g,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及び(M, G)及び乱数情報0を用いて(M, G)を部分復号した結果の(M’, G)及びその正当性の証明である証明情報0を出力する。
Step2:証明付き部分復号器142Fは入力の−x及び(M, G)及び乱数情報1を用いて(M, G)を部分復号した結果の(M’, G)及びその正当性の証明である証明情報1を出力する。
証明付きPR部分復号器SW
図20における証明付きPR部分復号器SWとして、前述の図21に示したものとは異なる構成例を図28に示す。
【0090】
図28は2入力のEl Gamal暗号文(M, G),(M, G)を置換撹乱部分復号処理した(M’, G’),(M’, G’)及び、正しい処理が行われた事の証明を秘密情報を明かさずに出力する証明付きPR部分復号器SWの構成の図21とは異なる例を示す。図21の例では、置換かく乱に対する証明と部分複合に対する証明を別々に行ったが、図28では置換撹乱部分復号した結果に対し証明を行っている点が異なる。
【0091】
この署名付PR部分復号器SWはPR部分復号器124 とPR部分復号証明生成器125 からなる。PR部分復号器124 は置換撹乱器124Aと2つの部分復号器124B, 124Cとから構成されている。
このPR部分復号器SWでは、以下のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
【0092】
Step1:PR部分復号器124 は入力の(M, G),(M, G)を入力のB及び撹乱パラメータ、秘密鍵の部分情報で置換撹乱部分復号処理した(M’, G’),(M’, G’)を出力する。
Step2:PR部分復号証明生成器125 は入力の(M, G),(M, G)及び(M’,G’)、(M’, G’)及び乱数情報を使って証明情報を出力する。
この証明付き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 を用いて入力の(M, G),(M, G)を置換撹乱処理した結果を示す2対の情報を出力する。
Step2:部分復号器124Bは置換撹乱処理した結果の一方の対情報を秘密鍵の部分情報−xを用いて部分復号し(M’, G’)として出力する。
Step3:部分復号器124Cは置換撹乱処理した結果の他方の対情報を秘密鍵の部分情報−xを用いて部分復号し(M’, G’)として出力する。
PR部分復号証明生成器125
図28におけるPR部分復号証明生成器125 はPR部分復号器124Aが正しく動作している事を秘密情報を明かさずに証明する構成の一例を示している。
【0095】
入力のBは置換撹乱器124A中の置換器(図22参照)に入力された置換パラメータであり、入力のr(j∈{0, 1})は置換撹乱器124A中の撹乱器(図22参照)に入力された撹乱用の乱数であり、入力のxは復号鍵の部分情報であり、入力のe, K, K, Rij(i, j∈{0, 1})は証明情報生成用の乱数であり、入力のgK0, gK1+ex y’Rij,gRij (i, j∈{0, 1})は入力のM, G , M’, G’(i, j∈{0, 1})が入力されるより前に計算された証明情報生成用のパラメータである。
【0096】
出力のV, e, s, Tij, Wij, zij, (b, i, j∈{0, 1})はb=i(+)jとして(M, G)と(M’, G’)の対応を証明するか、または装う為の情報である。
置換撹乱部分復号器124 が正しく動作していることを直接証明するためには、置換用の乱数B∈{0, 1}及び撹乱や復号用の秘密のパラメータの値を明かさずに、b=i(+)jであるとして、
b=0なる全ての i, j∈{0, 1}に関してM/M’=yrj かつG/G’=grj
b=1なる全ての i, j∈{0, 1}に関してM/M’=yrj かつG/G’=grj
・・・(命題3)
を示さなくてはならない。このために以下に示すようにして証明情報V,e,s(b∈{0, 1}),Tij,Wij,zij(i, j∈{0, 1})を生成する。
【0097】
全ての i, j∈{0, 1}に関して、
i(+)j=Bならば
ij ← y’Rij K0,Wij ← gRij
i(+)j=B’ならば(B’はBの反転)
ij ← (M/M’y’Rij K1 ,Wij ← (G/G’Rij
を演算する。
【0098】
更に
← gK0,VB’← gK1+ex
としB=0ならば
← −e+h(T00,T01,T10,T11,W00,W01,W10,W11
を演算し、またe←eとし、
B=1ならば
← −e+h(T00,T01,T10,T11,W00,W01,W10,W11
を演算し、かつe←eとし
更にi(+)j=Bなら
ij ← Rij− e
を演算し、i(+)j=B’ならzij ← Rijとし
B=0ならば
← K−e
を演算し、s← Kとし、
B=1ならば
← K−e
を演算し、s← Kとする。
【0099】
この置換撹乱部分復号証明生成器125 は上述のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また、同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
PR部分復号証明検証器P70C
図19におけるPR部分復号証明検証器P70Cは図28に示したPR部分復号器124 が正しく動作している事を検証する。この検証器P70Cは図28中のPR部分復号証明生成器125 の出力を検証する。
【0100】
PR部分復号証明検証器P70Cの入力はe, Tij,Wij,Zij,(b, i, j∈{0, 1})であり、これは図28のPR部分復号証明生成器125 の出力であり、b=i(+)jとして(M, G)と(M’, G’)の対応を証明するか、または装う為の情報である。この検証器P70Cは先ず
+e=h(T00,T01,T10,T11,W00,W01,W10,W11
が成立するかを演算して確め成立しなければ偽を出力して終了し、成立すれば、全てのb∈{0, 1}に関してV=gsbeb が成立するかを演算して確め、成立しなければ偽を出力して終了し、成立すれば、全てのi, j∈{0, 1}に関してb=i(+)jであるとして、
ij=(M/M’eby’zij sb ,Wij=(G/G’ebzij
が成立するかを演算して確め、成立しなければ偽を出して終了し、成立すれば真を出力する。このようにして命題3の真偽が判定される。
【0101】
この検証器P70Cでは、上述のように演算が実行されるが、同時実行可能なステップは、並列に実行しても良い。また実行順序が交換可能なステップは実行順序を交換して良い。また同じ機能を持つ複数の装置による複数の演算は、装置を一元化して、順次演算を実行しても良い。
完全置換網10
図29A及び図29Bはそれぞれ4入力及び8入力の完全置換網10A及び10Bの構成の一例を表している。
【0102】
完全置換網とは証明付きPR部分復号器SW及び証明付き固定部分復号器SWFの複数個が行列に配され、縦続的に接続され、各証明付きPR部分復号器SWの秘密の置換パラメータBの値の組合せによって入力に対するあらゆる置換を実現できる網のことである。入力は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通りであるが、Bの数は5あれば2=32通りの配列が可能となり、入力配列に対し、置換可能な全ての配列の何れにも設定可能である。つまり4入力の配列の場合は、証明付きPR部分復号器、換言すれば置換パラメータBを設定できる処理器は5個あれば完全置換網を構成できる。一方証明付きPR部分復号器と比較して証明付き固定部分復号器は構成が可成り簡単であり、つまり計算量が少なくて済むので、1行3列目の処理器は証明付き固定部分復号器としている。これをも証明付きPR部分復号器としてもよい。
【0104】
図29Bは証明付きPR部分復号器SW又は証明付き固定部分復号器SWFが4行5列に配され、内側の3列間で同一行で出力が入力されるものと行が入れ替えられて出力が入力されるものとがある。この構成は図中に破線で示すように図29Aの4入力4出力の完全置換網を二つ組合せたものである。
秘密の置換パラメータの第i列のBの値が分からなければどのような置換が行われたのか推定する事は出来ない。つまりM’,…,M’はBの値の組み合わせを知らなければ誰が入力した文かは判らない。図29A、図29Bの何れにおいても正しく復号するために、同じ列(第i列)の各部分復号器は同じ復号鍵xを持つ。
完全置換網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入力、…、2入力の完全置換網を構成する事が出来る。図ではN入力完全置換網を2つ設け、その入力段にN個の2入力2出力の証明付き置換撹乱部分復号器を設け、出力段に(N−1) 個の2入力2出力の証明付きPR部分復号器SWと、1個の証明付き固定部分復号器SWFを設けている。図29Bの構成は図30の構成でN入力完全置換網として4入力完全置換網が用いられた場合となる。
【0106】
従って、証明付き置換撹乱部分復号器及び証明付き固定部分復号器のみを用いて部分復号処理を行う機能をもった2入力の完全置換網を構成する事が出来る。
N(=2)入力の完全置換網に必要な部品は、証明付き置換撹乱部分復号器NlogN−N+1個及び証明付き固定部分復号器 (N−1)個であり、全体の段数(列の数)は2N logN−1段である。
一括不正回復付き検証可能匿名通信路100
前述の図20は8入力2秘密漏洩耐性2故障耐性一括不正回復付き検証可能匿名通信路の構成の一例を表している。一括不正回復付き検証可能匿名通信路100 は置換サーバPS〜PSと、置換サーバ18Cと、置換サーバ18Dと、置換サーバ18Eと、置換サーバ18Fとが縦続的に接続されて構成されている。t秘密漏洩耐性とは全部でV(>2t)個の置換サーバのうち最大t個の装置の置換秘密情報Bが攻撃などにより漏洩しても入出力の対応が完全に隠蔽されることを意味する。
【0107】
一括不正回復付き検証可能匿名通信路100 は3つの完全置換網10A,10B,10Cを含んでおり、完全置換網を跨る置換サーバを持っていないので、どの2つの置換サーバの置換秘密情報Bが漏洩してもその2つの置換サーバを含まない完全置換網が必ず一つは存在し、その完全置換網の秘密情報が全て隠蔽されているのでこの完全置換網により入出力の対応が隠蔽され、この匿名通信路100 の入出力の対応も隠蔽される。従って図20に示した匿名通信路では5つの置換サーバPS〜PSよりなるから一括不正回復付き検証可能匿名通信路100 は2秘密漏洩耐性を持っている。
【0108】
一般に一括不正回復付き検証可能匿名通信路100 が完全置換網をt+1 個直列に接続した形状の網を持ち、この網をV個に分割し、分割された各々の部分を置換サーバとする場合、どの置換サーバも2つの完全置換網に跨ることが無いように網の分割が行われていれば、その一括不正回復付き検証可能匿名通信路はt秘密漏洩耐性を持つ。
t故障耐性とは全部でV(>2t)個の置換サーバのうち最大t個の動作が正しくない時でも不正回復により最終的には正しく出力ができる一括不正回復付き検証可能匿名通信路であることを意味する。
【0109】
各置換サーバは自分の秘密鍵を他の置換サーバに検証可能な秘密分散法で、t+1個以上の置換サーバが集まれば秘密鍵を復元出来るように秘密分散する。例えば、0次の係数を隠蔽すべき秘密鍵xとし秘密の乱数により他の係数が決定されるzに関するt次多項式f(z)のz=jの値xij=f(j)をj番目の置換サーバに対して分配するとすれば、一つのiに対してt+1 個以上のxij及び対応するjが集まれば、その中の任意のt+1 個の互いに異なるjの集合Jに関するLagrange補間公式
【0110】
【数8】
Figure 0003540718
を用いて、x=f(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 への入力リストをLとし、i番目の置換サーバPS の出力リストをLとする時、j番目の置換サーバPS の入力リストLを求めるには例えば図31に示すように行えばよい。j番目の置換サーバPS の、正しい処理を行なった直前の置換サーバの位置をtで表すと、まずt=0、i=1と初期化し(S1)、i<jかを調べ(S2)、iがjより小さければi番目の置換サーバPS の証明情報VRFは入力リストLと出力リストLの1対1の対応を証明しているかを調べ(S3)、証明している場合はt=iとし(S4)、更にiを+1してステップS2に戻り(S5)、ステップS3で1対1の対応を証明していない場合はステップS5に移り、iがjと等しいかそれより大きくなれば処理を終了し、その時のtの値から置換サーバPS の出力リストLが求める入力リストになる。
【0115】
図31に示した入力リストの探索は次のようにして処理を削減することができる。図31において、各置換サーバが決定した入力リストがどの置換サーバからのものであるかその番号tを掲示板に登録し、ステップS2とS3との間において図32に示すように置換サーバPS は信頼できる置換サーバの出力リストLを入力としているかを調べる(S6)。もし検証対象の置換サーバPS が信頼できる置換サーバの出力リストLを入力としていなかった場合は、ステップS3の検証を行なわないでも、その置換サーバPS が不正な処理を行なったと判断できる。そこで、図32に示すように、置換サーバPS がリストLを入力としていない場合は、その置換サーバPS の入力リストLと出力リストLの対応を検証することなく、ステップS5に移り、リストLを入力としている場合は、その置換サーバPS についてステップS3を実行する。これにより、図31に示した場合より処理量を減少することができる。置換サーバPS〜PSj−1についての検証が終了すれば(i≧jとなれば)、ステップS6でtの値を掲示板に登録し、処理を終了する。
【0116】
更に他の例を示す。この例では、各置換サーバPS , i=1, …,Vはそれより上の前置換サーバについて、それぞれ信頼できるか否かの判定結果を掲示板に例えば図33Aに示すように登録するものとする。又、各置換サーバPSは、自分より上の各置換サーバPS(1k<j)に対する信頼性の判定結果を信頼度情報R=真又は偽、として記録するレジスタを有しているものとする。図33Bは置換サーバPS のレジスタに記録された信頼度情報の例を示している。図33Aでは、すでにj−1番目の置換サーバまでそれぞれそれらより上の全ての置換サーバに対する判定結果を○印は信頼性あり、×印は信頼性なしで示している。
【0117】
各置換サーバは自分より上の最も近い信頼できる置換サーバの出力を入力とすることが要求されているので、j番目の置換サーバPS は1番目の置換サーバPS から順に検査し、例えば2番目の置換サーバは信頼性がないと判定したにもかかわらず、図33Aに示すように掲示板を参照するとi番目の置換サーバは2番目の置換サーバを信頼性ありと判定している。従って、j番目の置換サーバはi番目の置換サーバを信頼性がないと判定することができる。このような場合、j番目の置換サーバはi番目の置換サーバについての入出力の対応関係の検証を省略することができる。同様に、j番目の置換サーバが例えば3番目の置換サーバを信頼性ありと判定したにもかかわらず、もしi番目の置換サーバが3番目の置換サーバを信頼性なしと判定していたら(図33Aでは信頼性ありとなっている)、その場合も、j番目の置換サーバはi番目の置換サーバを信頼性がないと判定でき、この場合も、j番目の置換サーバはi番目の置換サーバに対する入出力の対応の検証を省略することができる。この方法を使ったj番目の置換サーバによる入力リストの探索処理を図34を参照して説明する。
【0118】
図34に示す置換サーバPS の入力リストの検索処理において、まずt=0, i=0とし、置換サーバPS のレジスタの k= 1, …, j−1 に対する値Rを全て真とする初期化を行い(S1)、iがjより小さければ(S2)、図33Bに示したレジスタを参照し、k=i 番目の置換サーバの信頼度情報Rが真であるかを調べ(S3)、Rが真であれば(Rの初期値は真に設定されている)、置換サーバPS の証明情報VRFがリストLとリストLの1対1対応を証明しているかを調べ(S4)、正しく証明するものであればtをiに更新する(S5)。この場合、k= i+1, …, j−1 の置換サーバPS はそれぞれ置換サーバPS の出力リストLを正しい、即ち置換サーバPSi は信頼性がある、と判断すべきであるから、図33Aの掲示板を参照し、もしこの置換サーバPS を信頼性がないと判断した置換サーバPS があれば、図33Bに示すように、その置換サーバに対する信頼度情報Rを偽に変更する(S7)、その後、iを+1してステップS2に戻る(S7)。
【0119】
ステップS4でリストLとリストLが1対1で対応することを証明できない場合は、ステップS8に移り、掲示板を参照し、もしk=1, , j−1の置換サーバPS でサーバPS を信頼できると判定している置換サーバがあれば、その置換サーバについての信頼度情報Rを偽に変更し、ステップS7でiを歩進してステップS2に戻る。従って、以降のループ処理で、ステップS2でiが、先にステップS4又はS8でレジスタの信頼度情報Rが偽とされた置換サーバの番号i=k となった時には、ステップS3でレジスタにあるそのサーバの信頼度情報Rが偽となっているので、ステップS4の検証を行なわず、ステップS8に移る。
【0120】
ステップS2でiがjを超えると、その時のリストLを求める入力とし、また全ての置換サーバPS についての信頼度情報Rを公開(掲示板に登録)して終了する。
このように各検査結果である信頼度情報Rを利用することにより、入力すべき出力リストの検索にかかる処理量が少なくて済む。
図20では各置換サーバPS〜PSの処理器として証明付き置換撹乱部分復号器のみ又はこれと証明付き固定部分復号器とを用いた。しかし、各置換サーバPS〜PSを証明付き置換撹乱器と証明付き固定部分復号器とを用いて構成することもできる。例えば図35に示すように、図20中の証明付き置換撹乱部分復号器を証明付き置換撹乱器に置きかえ、図20中の証明付き固定部分復号器の部分はその入力をそのまま出力させ、各置換サーバの最後の段(列)の後段に各行ごとに証明付き固定部分復号器をそれぞれ設けてもよい。
【0121】
また図20中の例えば置換サーバPS の初段(第1列)の各行の処理器を全て証明付き置換撹乱器に変更してもよい。要は置換サーバは、全体として証明付き置換撹乱処理と、少なくとも1段(1列)の処理器による証明付き部分復号処理とを行うものであればよい。なおt故障耐性が問題とならず、t秘密漏洩耐性のみを必要とする場合は置換サーバを重複することなく構成された完全置換網がt+1個あればよく、V>2tなる条件は必要としない。
【0122】
前述したこの発明の各実施例において、この発明による匿名通信路を形成している置換網は2入力2出力の単位切換装置SW(SWF)を規則に従って接続して構成してもよいが、例えばN=2入力の場合、単位切換装置SW(SWF)が入力側から2k−1個ずつ(2k−1)段に配列された置換網において、各段で1つのデータ処理装置が前段からの処理結果を取り込み、単位切換装置SWの2k−1個分の処理を実行し、処理結果を順次出力するようにしてもよいし、更に、これら(2k−1)段の(2k−1)個のデータ処理装置が行なうべき処理を1つの処理装置が順次実行してもよい。
【0123】
例えば、(2k−1)段のそれぞれにデータ処理装置が1つずつ設けられている場合、J段目の処理装置には前段から2個の処理結果であるEl Gamal 暗号(M, G)を順次取り込み、前述したような置換、撹乱及び部分復号を行なって得た暗号(M’,G’)を予め決めた規則に従って順に出力する。この処理手順を図36から39を参照して説明する。
図36はJ段目の処理装置が1〜k−1段のグループ、k〜2k−2段のグループ、及び最後の2k−1段のどの段に属するかを判定し、処理1、処理2及び処理3のどれを実行すべきかを決定する。各段の処理装置は、N=2個の出力端子位置に対応して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は =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 permutation network 10 for four inputs. In FIG. 1, the changeover switch SW1 is connected to the (O11, O12) = (I11, I12) As input or output (O11, O12) = (I12, I11) And output the result. Similar processing is performed for the other switches SW2 to SW5. As shown in FIG. 1, by using a combination of five changeover switches, four inputs can be used.2= 16 possible permutations can be realized. Such a permutation network will be referred to as a complete permutation network. In general, Nlog for N inputs2It is known that a complete replacement network can be configured by using NN + 1 changeover switches.
[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 anonymous communication channel 100 that outputs the decrypted results by random replacement so that the correspondence relationship with the input is not known, and a verification terminal 200 that verifies the validity of the random replacement and the validity of the decryption. Have been. In this embodiment, the anonymous communication path 100 uses the input ciphertext E1, ..., ENIs received, replaced and decrypted to obtain a plaintext list Tp, information Proof necessary for verification of the replacement and decryption is generated, and sent to the verification terminal 200 together with the plaintext list Tp.
[0014]
The switching devices SW1 to SW5 are connected to the anonymous communication path 100 so as to form a complete replacement network. According to the present invention, each switching device SW performs random replacement and proves the validity of the replacement by zero knowledge proof. Proof to be done1~ Proof5Is output. In this embodiment, a case is shown in which the switching device does not perform decryption, transforms the input cipher, and performs the decryption by the decryption device 20 after processing by the permutation network 10. However, as in a fourth embodiment described later, The decoding process may be performed in each switching device SW. However, in the latter case, each switching device SW needs to perform zero-knowledge proof for decryption using the secret key, whereas in the former case (in the case of the first embodiment), the decryption by the decryption device 20 is performed. On the other hand, since zero-knowledge proof is performed collectively, there is an advantage that the processing amount can be reduced as a whole.
[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 replacement network 10 in FIG. 3 described later, the memory 23 (FIG. 7) in the decryption device 20, and the verification terminal. 200 as common parameters. It is assumed that the decryption key x is stored only in the decryption device 20.
[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 anonymous communication path 100 and the verification terminal 200 for four inputs. FIG. 4 shows the configuration of each of the switching devices SW1 to SW5. 5 and 6 show the configurations of the switching unit 12 and the replacement proving unit 14 in each switching device SW. The anonymous communication path 100 includes a replacement network 10 and a decryption device 20, and the replacement network 101, E2Is input to the switching device SW1, and the ciphertext E3, E4Is input to the switching device SW2, the two outputs of the switching device SW1 are input to the switching devices SW3 and SW4, and similarly, the two outputs of the switching device SW2 are input to the switching devices SW3 and SW4, respectively. One of the two outputs of SW4 is input to the switching device SW5, and the other output R1, R2Is input to the decoding device 20, and two outputs R of the switching device SW53, R4Is input to the decoding device 20.
[0017]
Input ciphertext E1~ E4, Each of the two outputs of the switching devices SW1 to SW5 is branched and input to the replacement verification unit 30 of the verification terminal 200. The replacement verification unit 30 outputs the replacement certification output Proof of each of the switching devices SW1 to SW5.1~ Proof5Is also entered. Four inputs R of the decoding device 201~ R4Is also branched and input to the decryption verification unit 40, and the decryption message m constituting the decryption proof output ProofD and the plaintext Tp of the decryption device 201, ..., m4Are also input to the decryption verification unit 40. The verification terminal 200 includes a control unit 210 and a memory 220.
[0018]
The switching device SW includes, as shown in FIG. 4, a memory 11 holding p, q, g, and y, a switching unit 12 for simply replacing two inputs and two outputs, a random number generation unit 13, and a And a control unit 15 that controls the operation of each of the units 11 to 14. As shown in FIG. 5, the switching unit 12 includes a power multiplier 12A, a remainder multiplier 12B, and an order permuter 12C. The replacement proving unit 14 includes a power multiplier 14A, a hash calculator 14B, a remainder subtractor 14C, and a remainder multiplier subtracter 14D as shown in FIG.
[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 memory 11 to the switching unit 12.
Step 2: driving the random number generator 13 to generate random numbers b {1, 2} and t1,t2∈Zq is generated and input to the switching unit 12.
Step 3: The switching unit 12 operates as follows (see FIG. 5).
Step 3-1: Drive the exponentiation operation unit 12A,
[0020]
(Equation 1)
Figure 0003540718
Is calculated.
Step 3-2: Output T of exponentiation operation unit 12A1, T2And input I1= (M1, G1), I2= (M2, G2) Is input to the remainder multiplier 12B,
[0021]
(Equation 2)
Figure 0003540718
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 random number generator 13 in FIG.1, W2, Eb ', Z1b ', Z2b 'Generate ∈Zq, b, t1, T2Is input to the replacement certification unit 14. Here, it is assumed that b 'takes a value such as b' = 2 when b = 1 and b '= 1 when b = 2. Also, p, q, g, and y are input from the memory 11 to the replacement proving unit 14.
Step 5: The replacement certification unit 14 operates as follows (see FIG. 6).
The replacement proof unit 14 has two inputs I of the switching unit 12.1, I2And two outputs O1, O2And are respectively branched and input.
Step 5-1: Drive the power multiplier 14A,
[0023]
(Equation 3)
Figure 0003540718
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 permutation network 10 is R1, R2, R3, R4And At this time, each RiTo Ri= (M 'i, G 'i), The following relationship holds.
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 decryption device 20 includes a decryption unit 21, a decryption proof unit 22, a memory 23, and a control unit 24 that controls these operations. As shown in FIG. 8, the decoding unit 21 includes a power calculator 21A and a remainder divider 21B. As shown in FIG. 9, the decryption proof unit 22 includes a random number generation unit 22A, a power operation unit 22B, a hash operation unit 22C, and a modular exponentiation subtractor 22D.
[0027]
The decoding device 20 calculates1~ R4Are sequentially processed as follows.
Step 1: The control unit 24 receives the input RiAre sequentially received and input to the decoding unit 21. Also, x and p are input from the memory 23 to the decoding unit 21.
Step 2: The decoding unit 21 sends G 'to the exponentiation unit 21A as shown in FIG.iAnd x, p,
Ki: = G 'i xmodp
Is calculated.
[0028]
Step3: M 'i, P and the output of the exponentiation unit 21A are input to the remainder divider 21B,
mi: = M 'i/ Kimodp
Is calculated and output as a decoding result.
Subsequently, the decryption device 20 creates a ProofD certifying that the decryption has been correctly performed by the decryption proof unit 22 as follows.
[0029]
Step 1: The decryption proof unit 22 generates a random number w∈Zq by the random number generator 22A as shown in FIG. 9 and inputs the generated random number w∈Zq to the exponentiation calculator 22B.
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 hash calculator 22C. In this example, N = 4.
Step 3: The hash calculator 22C sets c: = Hash (y, T0, K1, T1, ..., KN, TN) Is calculated, and c is input to the modular exponentiation subtractor 22D.
[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 verification terminal 200 first drives the replacement verification unit 30 to confirm that the replacement has been correctly performed. As shown in FIG. 10, the replacement verification unit 30 includes a power multiplier 31, a hash calculator 32, a comparator 33, and an adder 34. The replacement verification unit 30 performs the Proof by the i-th switching device SWi.iIs verified as follows.
Step 1: driving the power multiplier 31;
[0031]
(Equation 4)
Figure 0003540718
Is calculated.
[0032]
Step2: S11, S12, S21, S22And I1, I2, O1, O2Is input to the hash calculator 32, and the output c is input to the comparator 33.
Step3: e1, E2Is input to the adder 34, and e1+ E2Is calculated. The result is input to the comparator 33.
Step 4: q is input to the comparator 33 and e1+ E2= C (modq) is checked. If the condition is satisfied, OK is output; otherwise, NG is output. The fact that the permutation has been performed correctly is verified by the zero knowledge proof without indicating the random number b that caused the permutation.
[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 decryption verification unit 40. The decryption verification unit 220 includes a remainder divider 41, a comparator 42, a power multiplier 43, a hash calculator 44, and a comparator 45, and verifies the decryption as follows.
[0034]
Step 1: M ′ to the remainder divider 41iAnd KiAnd enter M 'i/ KiAnd calculate the result as miAnd input to the comparator 42 for comparison. If they are not equal, the comparator 42 outputs NG and the verification result is NG. If the comparison result is OK for all i = 1,..., N, the process proceeds to the next step.
Step 2: driving the power multiplier 43 and gzycAnd G '1 zK1 c, ..., G 'N zKN cIs calculated and input to the hash calculator 44.
[0035]
Step 3: driving the hash calculator 44,
e: = Hash (y, gzyc, K1, G '1 zK1 c,…, KN, G '1 zK1 c)
Is calculated.
Step 4: c and e output from the hash calculator 44 are input to the comparator 45, and if both are equal, OK is output, and if they are not equal, NG is output.
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 hash calculator 44 becomes equal to c.
[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 replacement network 10. In addition, a decryption server 20S that performs decryption is used. Hereinafter, a case will be described where V = 4 replacement servers are used and the input is 4 messages. Each replacement server PS1~ PS4And the verification terminal 200 is connected to the bulletin board 400. The bulletin board 400 contains a message E from an authenticated user.1, E2,. . . , ENAnd the information once written cannot be erased. Also, it is assumed that anyone can read the written information. In this embodiment, as in the first embodiment, each switching device SW (FIG. 13) of each replacement server PS in the replacement network 10 does not perform decryption, but performs randomization (conversion of encryption) of input encryption and random replacement. And finally the decryption server performs decryption.
[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 control unit 15 and the memory 11 are outside the switching device.
FIG. 14 shows a block diagram of the decryption server 20S. The decryption server 20S has a replacement verification unit 30S, a decryption unit 21S, and a decryption proof unit 22S, which are the same as the replacement verification unit 30, the decryption unit 21, and the decryption proof unit 22 shown in FIGS. It is. The decryption server further has a memory 23S and a control unit 24S.
[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 bulletin board 400 as shown in FIG. That is, each replacement server PSj  Writes the replacement output on the bulletin board 400 and replaces the replacement server PS in the next stage.j + 1  Reads the data from the bulletin board 400 and performs a replacement process. Substitution server PS1Executes the work of the switching devices SW1 and SW2 in the first embodiment, and updates the processing result via the bulletin board 400 to the replacement server PS.2Send to Similarly, the replacement server PS2Are switching devices SW3, SW4, SW5, replacement server PS3Are switching devices SW6, SW7, replacement server PS4Performs the work of the switching devices SW8, SW9, SW10. As shown in FIG. 13, the number of switching devices SW actually installed in each replacement server PS is one, and the control unit 15 provides an appropriate input to realize the data flow of FIG. Alternatively, a plurality of switching devices SW may be actually installed in one replacement server.
[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 decryption server 20S having the replacement verification unit 30S connected to the bulletin board 400 in the same manner as in the first embodiment, when the replacement Proof is verified, and when an incorrect input / output relationship is detected. It regards the replacement server as broken. In that case, the replacement server deemed to have failed is excluded and another replacement server performs the processing, or if only one replacement server has failed, the processing by the replacement server may be omitted. .
[0041]
After verifying that all the permutations are correct, the decoding server 20S outputs the output of the permutation network 10 (the last stage permutation server PS) by the decoding unit 21S.V  Is output, and the decryption proof unit 22S generates a decryption proof ProofD and writes it on the bulletin board 400. The verification terminal 200 transmits each replacement Proof written in the bulletin board 400 by each replacement server.1~ Proool4From the decryption result (message m)1,. . . , MN) And the decryption proof ProofD are verified in the same procedure as in the first embodiment.
[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 decryption server 20S in the second embodiment is replaced with a plurality of decryption servers 20S.1, ..., 20SLAnd the same function as in the case where a single decryption server is used among a plurality of decryption servers is realized. According to this embodiment, a correct result can be obtained if at least t + 1 decoding servers 20S operate normally for a certain t <L, so that fault tolerance is improved. Further, in the case where there is one decryption server 20S 1 in FIG. 12, the decryption result can be obtained at any time when the decryption server 20S 1 starts decryption. It is possible that the contents of the result are illegally leaked. On the other hand, in the embodiment of FIG.1~ 20SLSince the decryption result cannot be obtained unless the processing is completed, the decryption result cannot be leaked from any of the decryption servers before publication unless at least t + 1 decryption servers cooperate with each other to perform an illegal operation. Absent.
[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 decryption server 20SjIs configured in the decoding server 20S shown in FIG.iIs stored in the memory 23S, and is the same as FIG. 14 except for the internal configuration of the decoding unit 21S. As shown in FIG. 17, the decoding unit 21S in the decoding server of this embodiment has a power multiplier 21SA, which performs the same processing as the power multiplier 21A shown in FIG.
[0044]
Substitution server PS1,. . . , PSVThe configuration and operation are the same as in the second embodiment shown in FIG. Each decryption server 20StMeans all replacement servers PS1,. . . , PSVWill be verified in the same manner as in the second embodiment. Last stage replacement server PSV  From the correct replacement output R1~ RNAre obtained, and after the replacement verification is completed, each decryption server performs decryption. The j-th decryption server 20Sj is R1~ RNAre sequentially processed as follows.
Step 1: The control unit inputs RiAre sequentially received and input to the decoding unit 21S (see FIG. 14). Also, x from the memory 23Si, P are input to the decoding unit 21S.
[0045]
Step 2: In the decoding unit 21S (see FIG. 17), G ′ is supplied to the exponentiation unit 21SA.iAnd xj, P and Kj, i: = G 'i xjIs calculated.
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 verification terminal 200 is the same as that of FIG. However, the decryption verification unit 40 has the configuration shown in FIG. The operation of the decryption verification unit is the same as Steps 2 to 4 of the operation of the decryption verification unit in the first embodiment. If the verification for the decryption server of t + 1 or more is OK, the verification terminal outputs OK.
In this embodiment, the decryption server 20SjOutput is Ki, jAnd each decryption result miPerform the following steps to obtain First, let A {1, ..., L} be | A |>It is determined to be t + 1. However, for j = j∈A, the decryption server 20SjMust have passed the decryption verification. Now, λj, A is
[0047]
(Equation 5)
Figure 0003540718
The interpolation coefficient is defined as Then the message miIs
[0048]
(Equation 6)
Figure 0003540718
Can be obtained at This means that x = Σλj, AAxjSince modq (Σ is about j∈A) holds,
[0049]
(Equation 7)
Figure 0003540718
, 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 bulletin board 400. In this embodiment, since each replacement server is provided with a verification function for the processing of another replacement server and a partial decryption function for the input ciphertext, the verification server and the decryption server as in the embodiments of FIGS. 12 and 16 are provided. Not. Each of the replacement servers, in addition to the replacement unit P50 corresponding to the replacement unit constituted by the plurality of switching devices SW in each of the replacement servers in the second and third embodiments, checks whether the processing of the other replacement servers is correct. And a verification unit P70 for certifying random permutation and partial decryption. Substitution server PS1~ PS5Replacement part P501~ P505Are cascaded through the bulletin board 400 as shown in FIG. Each replacement part P501~ P505Has a plurality of switching devices SW for performing replacement / disturbance partial decoding. The verification terminal 200 is not provided independently, but is provided in each replacement server.
[0056]
FIG. 20 shows the flow of data via the bulletin board 400 between the replacement servers in the system of FIG.1~ PS5Replacement part P50 in1~ P505Only shows. These five replacement parts P501~ P505Is the two cascaded replacement parts P50 in this example.1And P502To form one 8-input complete permutation network, and two cascade-connected permutation units P503And P504, Similarly forms one 8-input complete permutation network, and the substitution unit P505 forms an 8-input complete permutation network alone. Therefore, these three 8-input perfect permutation networks connected in cascade as a whole are formed.
[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 bulletin board 400 has a function of accepting the writing of ciphertext from an authenticated user, and the information once written cannot be erased. It is assumed that anyone can read the written information.
This system has five replacement servers PS1~ PS5Thus, an anonymous communication path 100 composed of three cascaded complete replacement networks 10A to 10C each having eight inputs is formed. Even if the random elements of two complete permutation networks out of the three complete permutation networks 10A to 10C are leaked, the input / output correspondence can be completely concealed by the remaining complete permutation network.
[0061]
Substitution server PS1~ PS5Performs data processing in a predetermined order, and each replacement server reads from the bulletin board 400 the input / output data and the certification information of the replacement server in the preceding stage. At the time of the input, the own server verifier P70 verifies the reliability of the preceding replacement server based on the input / output data and the proof information, and when an incorrect input / output relationship is detected, that is, the reliability of the output. If there is no replacement server, it is assumed that the replacement server has failed. In that case, the order is traced back until a non-illegal replacement server is found, and processing is performed using the output of the closest replacement server determined to be non-illegal.
[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 perturbation unit 120 with proof and a partial decoder 140 with proof are included, and the permutation perturbation unit 120 with proof is composed of, for example, a permutation disturber 121 and a perturbation proof generator 122. It consists of two certified partial decryptors 141 and 142.
[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 proof 120 uses the various information in the random number information to input (M0, G0), (M1, G1) Was subjected to a perturbation-disturbing process,0 +, G0 +), (M1 +, G1 +) And proof information 0 as proof of its validity.
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 partial decryptor 140 with proof uses the various information in the random number information to input (M0 +, G0 +), (M1 +, G1 +) Is partially decrypted (M ′0, G '0), (M '1, G '1) And proof information 1 which is proof of its validity.
[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 replacement disturber 121 includes, for example, a displacer 121A and disturbers 121B and 121C as shown in FIG. The disturbers 121B and 121C have the same structure, and have two multipliers 121B1 and 121B2 as shown in FIG. Hereinafter, the functional configurations of these units will be sequentially described.
Disturber 121B (121C)
FIG. 23 shows an example of the configuration of a disturber 121B (121C) that disturbs the input El Gamal ciphertext in order to conceal the correspondence between input and output in the disturbance replacement unit 121 shown in FIG. Assuming that the input El Gamal cipher text is (M, G), the following expression is used for the plain text m, the public key (Y, g), the secret key X, and the random number w.
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 disturber 121B, but may be executed in parallel if simultaneous execution is possible. If the execution order can be exchanged, the execution order may be exchanged. 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.
Displacement disruptor 121
FIG. 22 shows a two-input El Gamal ciphertext (M0, G0) And (M1, G13) shows an example of the configuration of a perturbation disturber 121 for perturbing and displacing. The El Gamal cipher text (M, G, r) obtained by disturbing the El Gamal cipher text (M, G) with a random number r will be described as D (M, G, r). According to the secret substitution parameter B {0, 1},
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 displacement disturber 121 includes a displacer 121A and disturbers 121B and 121C. The disturber 121B and the disturber 121C are configured by two multipliers 121B and 121B2 as shown in FIG. In the replacement disturber 121, operations are performed as follows, 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 calculations performed by a plurality of devices having the same function, the devices may be unified and the calculations may be sequentially performed.
[0068]
Step 1: If the replacement parameter B is B = 0, the replacement unit 121A performs
(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 disturber 121B outputs the disturbance parameter (Y-R0, G-R0), The input (L)0, L1) To disturb (M '0, G '0) Is output.
Step 3: The disturber 121C receives the disturbance parameter (Y-R1, G-R1), The input (L)2, L3) To disturb (M '1, G '1) Is output.
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 disturbance proof generator 122
The permutation disturbance proof generator 122 in FIG. 21 proves that the perturbation perturbation 121 is operating correctly without revealing the secret information (B {0, 1} and the value of the perturbation parameter). To prove this, let b = i (+) j,
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 replacement unit 121A in the replacement disturbance unit 121. Input rj, (J {0, 1}) are random numbers for disturbance inputted to the disturbers 121B and 121C in the displacement disturber 121. Input e, Rij(I, j {0, 1}) is a random number for proof. Input YRij, GRij(I, j {0, 1}) is the input Mi, Gi, M 'j, G 'j(I, j {0, 1}) are proof parameters calculated before being input. These information {B, rj, E, Rij, YRij, GRij呼 ぶ is called random number information RDM.
[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 disturbance proving device 122 performs an operation as shown in the figure. That is, i, j∈ {
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 replacement disturber 121 shown in FIG. 21 is operating correctly. That is, the proof information VRF = {eb, Tij, Wij, ZijVerify}.
[0073]
Input eb, Tij, Wij, Zij, (B, i, j {0, 1}) are the outputs of the perturbation proof generator 122, and b = i (+) j as (Mi, Gi) And (M 'j, G 'jThis is information to prove the response in ()) or to disguise it as a response.
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 Proposition 1.
[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]
Certified Perturbation Disturber 120
The permutation disturber with proof 120 is a two-input El Gamal ciphertext (M0, G0), (M1, G1  ) Was subjected to a displacement disturbance treatment (M ′0, G '0), (M '1, G '1) And a proof that the correct processing has been performed is output without revealing the secret information (zero-knowledge proof). The permutation perturbation unit 120 with proof includes a perturbation perturbation unit 121 and a perturbation perturbation proof generator 122.
In the permuted perturber 120 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. Multiple devices with the same function
The calculation of (1) may be performed by unifying the apparatus and sequentially executing the calculation.
[0077]
Step 1: The displacement disturber 121 receives the input (M0, G0), (M1, G1) Is the input B and the disturbance parameter g-R0, Y-R0, G-R1, Y-R1, And is subjected to a displacement disturbance treatment,0, G '0), (M '1, G '1) Is output.
Step 2: The PR proof generator 122 receives the input (M0, G0), (M1, G1) And output (M ')0, G '0), (M '1, G '1) And random number information RDM = {B, rj, E, Rij, YRij, GRijUsing}, proof information VRF =} eb, Tij, Wij, ZijOutput}.
[0078]
Certified partial decryptor 141
21 will be described with reference to FIGS. 24, 25, and 26. FIG. The partial decoder with proof 141 includes a partial decoder 141A and a partial decryption proof generator 141B as shown in FIG. Partial decryptor 141A and partial decryption certificate generator 141B are shown in more detail in FIGS. Since the proof-provided partial decoder 142 has the same configuration as the proof-provided partial decoder 142, the description of the proof-provided partial decoder 142 is omitted.
[0079]
FIG. 25 illustrates an example of a configuration of a partial decoder 141A that partially decrypts an El Gamal ciphertext using partial information of a secret key. If the input El Gamal cipher text is (M, G),
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 partial decoder 141A includes a power multiplier 141A1 and a multiplier 141A2. 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, multiple operations performed by multiple devices with the same function can be performed by integrating
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 decoder 141A outputs the input G as it is.
Partial decryption proof generator 141B
FIG. 26 shows an example of the configuration of a partial decryption proof generator 141B for certifying that the partial decoder 141A shown in FIG. 25 is operating correctly without revealing secret information. This
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 decryption proof generator 141B includes a power multiplier 141B1, a hasher 141B2, a register 141B3, a multiplier 141B4, and a subtractor 141B5.
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 decryption proof generator 141B (142B) shown in FIG. 21 verifies that the partial decryptor 141A (142A) is operating correctly. The partial decoder 141A knows the value of x and M / M '= GxIs formed
(Proposition 2) "is determined and output.
[0085]
The output of the partial decryption proof generator 141B shown in FIG. 26 is verified according to the Chaum-Pedersen protocol. Let h be a published one-way hash function of the specification.
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 proof 141F and a partial decoder with proof 142F as shown in FIG. The proof-provided partial decoders 141F and 142F have the same configuration as the proof-provided partial decoder shown in FIG.
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 proof 141F receives -x and (M0, G0) And random number information 0 (M0, G0) Is partially decoded (M ′0, G0) And proof information 0 as proof of its validity.
Step 2: The proof-provided partial decoder 142F receives the -x and (M1, G1) And random number information 1 (M1, G1) Is partially decoded (M ′1, G1) And proof information 1 which is proof of its validity.
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 decryption proof generator 125. The PR partial decoder 124 includes a perturbation disturber 124A and two partial decoders 124B and 124C.
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 decryption proof generator 125 receives (M0, G0), (M1, G1) And (M '0, G '0), (M '1, G '1) And random number information to output proof information.
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 perturbation disturber 121 shown in FIG. 22, and the partial decoders 124B and 124C are each configured in the same manner as the partial decoder 141A (141B) shown in FIG.
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 partial decryptor 124B partially decrypts one pair of information resulting from the perturbation perturbation processing using the partial information -x of the secret key (M '0, G '0).
Step 3: The partial decryptor 124C partially decrypts the other paired information of the result of the perturbation permutation process using the partial information -x of the secret key (M '1, G '1).
PR partial decryption proof generator 125
The PR partial decryption proof generator 125 in FIG. 28 shows an example of a configuration for certifying that the PR partial decryptor 124A is operating correctly without revealing secret information.
[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 decryption proof generator 125 performs the operation 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.
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 decryption proof generator 125 in FIG.
[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 decryption proof generator 125 of FIG.i, Gi) And (M 'j, G 'j) Is information to prove or disguise the response. This verifier P70C first
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 Proposition 3 is determined.
[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.
Complete replacement network 10
FIGS. 29A and 29B show an example of the configuration of the 4-input and 8-input complete replacement networks 10A and 10B, respectively.
[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.
Complete replacement network 10C
FIG. 30 shows an example of the configuration of a 2N-input complete permutation network 10C. The principle is A. Waksman. A permutation network. Journal of the ACM, 15 (1): 159-163, 1968. by.
[0105]
Since the permutation network 10C is composed of only the N-input perfect permutation networks 10C1 and 10C2 and the two-input perfect permutation network (PR partial decoder with certification) SW, four inputs and eight inputs are obtained by using the two-input perfect permutation network. , ... 2nA complete permutation network of the input can be constructed. In the figure, two N-input perfect permutation networks are provided, and N permutation partial decoders with N 2-input / 2-output proofs are provided at the input stage, and (N-1) 2-input 2-output proofs are provided at the output stage. And a fixed partial decryptor SWF with proof. The configuration of FIG. 29B is a case where a four-input complete permutation network is used as the N-input complete permutation network in the configuration of FIG.
[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 anonymous communication channel 100 with batch fraud recovery
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 anonymous communication path 100 with collective fraud recovery is replaced server PS1~ PS5, A replacement server 18C, a replacement server 18D, a replacement server 18E, and a replacement server 18F, which are connected in cascade. The t secret leak tolerance is the replacement secret information B of at most t devices among V (> 2t) replacement servers in total.iThis means that even if is leaked due to an attack or the like, the correspondence between input and output is completely hidden.
[0107]
The verifiable anonymous communication path 100 with the collective unauthorized recovery includes three completely replaced networks 10A, 10B, and 10C, and does not have a replacement server across the completely replaced networks.iLeaks, there is always one complete replacement network that does not include the two replacement servers, and all the secret information of the complete replacement network is concealed. The correspondence of input / output of the anonymous communication channel 100 is also hidden. Therefore, in the anonymous communication path shown in FIG.1~ PS5Therefore, the verifiable anonymous communication path 100 with collective unauthorized recovery has two secret leakage resistance.
[0108]
In general, when the verifiable anonymous communication path 100 with collective fraud recovery has a network in which t + 1 complete replacement networks are connected in series, and this network is divided into V, and each of the divided parts is used as a replacement server, If the network is divided so that none of the replacement servers straddle the two completely replaced networks, the verifiable anonymous communication path with collective unauthorized recovery has t-secret leakage resistance.
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 order 0iAnd a t-order polynomial f relating to z for which another coefficient is determined by a secret random numberiThe value x of z = j in (z)ij= FiIf (j) is distributed to the j-th replacement server, t + 1 or more xs for one iijAnd the corresponding j are collected, a Lagrange interpolation formula for any t + 1 different j sets J in it
[0110]
(Equation 8)
Figure 0003540718
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 verifier 21 for verifying the validity of input / output of another device. Each time a permutation server PS outputs a ciphertext, it checks its validity and publishes the result on a bulletin board.
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 anonymous communication path 100 is L0And the i-th replacement server PSi  Output list of LiAnd j-th replacement server PSj  Input list LjCan be obtained, for example, as shown in FIG. j-th replacement server PSj  If the position of the replacement server immediately before performing the correct processing is represented by t, first, t = 0 and i = 1 are initialized (S1), and it is checked whether i <j (S2). If i is smaller than j, i-th replacement server PSi  Certificate information VRFiIs the input list LtAnd output list LiIt is checked whether the one-to-one correspondence has been proved (S3). If it has been proved, t = i is set (S4), i is incremented by 1, and the process returns to step S2 (S5). If the correspondence of 1 has not been proved, the process proceeds to step S5. If i is equal to or greater than j, the process is terminated, and the replacement server PS is determined from the value of t at that time.t  Output list LtBecomes the required input list.
[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 process 3 is to be executed. N = 2kIt is assumed that there are N output registers that hold N processing results corresponding to the output terminal positions.
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 processing 1, the processing 2, and the processing 3, respectively. Here, (LJ-1[2i], LJ-1[2i + 1]) are ciphertexts (M) of two output positions [2i] and [2i + 1] to be subjected to random replacement in the (J-1) th stage.2i, G2i), (M2i + 1, G2i + 1). lrot (u, v) means that the data u is converted by giving 1 bit left rotation to the v bit data from the LSB side in the binary data u. For example, if u = 10110 in a binary representation and v = 3, lrot (u, v) rotates u the right three bits 110 of 10110 by one bit to the left to become 101, so that u becomes 10101 Convert to Similarly, rot (u, v) converts data u by rotating v-bit data to the right by one bit from the LSB side of binary-expressed data u.
[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.
Processing 1 shown in FIG. 37 is processing in the permutation stage of J = 1,..., K−1. In these stages, all pairs of input ciphers (LJ-1[2i], LJ-1[2i + 1]) is subjected to random permutation, disturbance and partial decoding.
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]
Processing 2 shown in FIG.J = K, , 2k-2  Of the input stage (LJ-1[2i], LJ-1[2i + 1]) is processed as follows.
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]
Processing 3 shown in FIG. 39 is processing in the last stage J = 2k−1, and the pair of input ciphers (LJ-1[2i], LJ-1[2i + 1]) is executed as follows.
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 computer 80 includes a CPU 81, a RAM 82, a ROM 83, an input / output interface 84, and a hard disk 85 connected to each other via a bus 88. A basic program for operating the computer 80 is written in the ROM 83, and a program for executing, for example, the above-described substitutive perturbation partial decryption method with proof by one substitution server according to the present invention is stored in the hard disk 85 in advance. For example, at the time of encoding, the CPU 81 loads the encoding program from the hard disk 85 into the RAM 82, processes the encrypted voting sentence fetched from the bulletin board 400 via the interface 84 according to the program, and decrypts the encrypted voting via an anonymous communication path. 84 to the bulletin board 400.
[0130]
As a program for executing the permutation-perturbed partial decryption method with certification according to the present invention, a program recorded on an external disk device 87 connected to an internal bus 88 via a drive device 86 may be used. The recording medium on which the program for executing the method according to the present invention is recorded may be any form of recording medium such as a magnetic recording medium, an IC memory, and a compact disk.
[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 switching unit 12 in FIG. 4;
FIG. 6 is a block diagram showing a configuration of a replacement proving unit 14 in FIG. 4;
FIG. 7 is a block diagram showing a configuration of a decoding device 20 in FIG. 3;
8 is a block diagram showing a configuration of a decoding unit 21 in FIG.
FIG. 9 is a block diagram showing a configuration of a decryption certifying unit 22 in FIG. 7;
FIG. 10 is a block diagram showing a configuration of a replacement verification unit 30 in FIG. 3;
FIG. 11 is a block diagram showing a configuration of a decryption verification unit 40 in FIG. 3;
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 decryption server 20S in FIG. 12;
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 decoding server 20S according to the third embodiment.
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 processing 1 in FIG. 36;
FIG. 38 is a flowchart showing the procedure of processing 2 in FIG. 36;
FIG. 39 is a flowchart showing the procedure of Process 3 in FIG. 36;
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は2より大の整数、の暗号化された入力メッセージを置換撹乱してN個の出力メッセージを出力し、上記出力メッセージと上記入力メッセージが一対一に対応することを、任意の検証に証明する検証可能匿名通信路システムであって、
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.
請求項1の検証可能匿名通信路システムにおいて、上記処理段の少なくとも1つは複数の上記単位置換処理手段から成ることを特徴とする検証可能匿名通信路システム。2. The verifiable anonymous communication channel system according to claim 1, wherein at least one of said processing stages comprises a plurality of said unit replacement processing means. 請求項1又は2の検証可能匿名通信路システムにおいて、上記単位置換処理手段は少なくとも1つの完全置換網を含む置換網を形成していることを特徴とする検証可能匿名通信路システム。3. The verifiable anonymous communication channel system according to claim 1, wherein the unit replacement processing unit forms a replacement network including at least one complete replacement network. 請求項1の検証可能匿名通信路システムにおいて、n=2であり、上記各単位置換処理手段は2つの値のいずれか一方の値をランダムにとる切換乱数を発生する切換乱数発生手段と、上記切換乱数に従って2つの出力をそれらの位置を入れ換えて出力するかそのままの位置で出力するかを制御する切換制御手段を含むことを特徴とする検証可能匿名通信路システム。2. The verifiable anonymous communication channel system according to claim 1, wherein n = 2, and each of said unit replacement processing means generates a switching random number which randomly takes one of two values; A verifiable anonymous communication path system, comprising: switching control means for controlling whether to output two outputs in accordance with a switching random number, with their positions interchanged or output at the same position. 請求項1〜4のいずれかの検証可能匿名通信路システムにおいて、上記単位置換処理手段は、部分復号鍵を使って上記n個の置換撹乱結果をそれぞれ部分復号して上記N個の出力とする部分復号手段と、上記部分復号に上記部分復号鍵を使用したことを、上記部分復号鍵を明らかにすることなく零知識証明で証明する証明情報を出力する部分復号証明生成手段とを含むことを特徴とする検証可能匿名通信路システム。5. The verifiable anonymous communication channel system according to claim 1, wherein said unit replacement processing means partially decrypts each of said n replacement disturbance results using a partial decryption key to obtain said N outputs. Including partial decryption means and partial decryption proof generation means for outputting proof information for certifying the use of the partial decryption key for the partial decryption with a zero-knowledge proof without revealing the partial decryption key. A verifiable anonymous communication channel system that features. 請求項5の検証可能匿名通信路システムにおいて、上記縦続接続は少なくとも上記処理段を少なくとも1つ含むV個、Vは2以上の整数、の置換サーバの縦続接続であり、上記部分復号鍵は予め他の置換サーバの全てに検証可能に秘密分散されてあり、上記検証可能匿名通信路システムは更に、t個、t<V/2、の置換サーバの出力が信頼
できなくなった状態で、出力が信頼できる置換サーバの分散鍵で各部分復号鍵を回復する手段と、その回復した全ての部分復号鍵を用いて出力が信頼できる置換サーバの出力を一括復号して平文を得る手段とを含むことを特徴とする検証可能匿名通信路システム。
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.
請求項の検証可能匿名通信路システムにおいて、上記縦続接続は少なくとも上記処理段を少なくとも1つ含むV個、Vは2以上の整数、の置換サーバの縦続接続であり、最大t個の上記置換サーバの置換の漏洩を許容するとき、上記N個の入力メッセージに対するあらゆる置換を出力できる完全置換網が、縦続接続された上記V個の置換サーバ中の連続す t+1個により構成されていることを特徴とする検証可能匿名通信路システム。6. The verifiable anonymous 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, and a maximum of t replacements are performed. when allowing server substitution leakage, complete replacement network can output any substitution on the N input message, is composed of t + 1 pieces you successive cascaded in the V-number of substituted server A verifiable anonymous communication channel system characterized by the following. 請求項6又は7の検証可能匿名通信路システムにおいて、各上記置換サーバは、他の置換サーバの出力の信頼性を、その置換サーバの入力、出力及び証明情報を用いて検証する検証手段と、信頼性がない置換サーバを排除してどの置換サーバの出力を入力すればよいかの判定を行う判定手段とをそれぞれ含むことを特徴とする検証可能匿名通信路システム。8. The verifiable anonymous communication path system according to claim 6, wherein each of the replacement servers verifies the reliability of the output of the other replacement server using the input, output, and certification information of the replacement server. A verifiable anonymous communication path system, comprising: a determination unit for determining which replacement server should input an output while excluding the unreliable replacement server. 請求項8の検証可能匿名通信路システムにおいて、各上記置換サーバの上記検証手段は、その置換サーバより上流の上記置換サーバについて順次その出力を検証し、上記判定手段はその検証結果に基づいて信頼性があるかないかを判定し、最も近い信頼できると判定された置換サーバの出力を上記置換サーバの入力とすることを特徴とする検証可能匿名通信路システム。9. The verifiable anonymous communication channel system according to claim 8, wherein said verification means of each of said replacement servers sequentially verifies the output of said replacement server upstream from said replacement server, and said determination means trusts based on the verification result. A verifiable anonymous communication path system, which determines whether or not there is a possibility, and uses the output of the closest replacement server determined to be reliable as the input of the replacement server. 請求項の検証可能匿名通信路システムにおいて、上記各判定手段による上記置換サーバについての信頼性の判定結果を公開する掲示板手段が設けられており、上記判定手段はその置換サーバの入力判定に、上記掲示板に公開された判定結果を参照する手段であることを特徴とする検証可能匿名通信路システム。10. The verifiable anonymous communication path system according to claim 9 , further comprising: a bulletin board means for publishing a result of the determination on the reliability of the replacement server by each of the determination means. A verifiable anonymous communication path system, which is means for referring to a judgment result published on the bulletin board. 請求項10の検証可能匿名通信路システムにおいて、上記公開する判定結果は各置換サーバが信頼できると判定した入力データを出力した置換サーバを表す情報であり、各置換サーバの上記判定手段は、検証すべき置換サーバが上記掲示板に公開した信頼できる置換サーバの出力データを入力データとするものでない場合は、上記検証すべき置換サーバの入出力の検証をスキップすることを特徴とする検証可能匿名通信路システム。11. The verifiable anonymous communication channel system according to claim 10, wherein the judgment result to be disclosed is information indicating a replacement server that has output input data determined to be reliable by each replacement server, and the determination unit of each replacement server performs a verification. If the replacement server to be replaced does not use the output data of the reliable replacement server disclosed on the bulletin board as input data, the verification of the input and output of the replacement server to be verified is skipped. Road system. 請求項10の検証可能匿名通信路システムにおいて、各置換サーバが公開する判定結果は置換サーバより上流の各置換サーバに対する信頼性の判定結果であり、上記各置換サーバはそれより上流の置換サーバに対する信頼度情報を記録するレジスタを有し、他の置換サーバが上記上流の各置換サーバに対し公開している信頼性の判定結果が自置換サーバにより判定した信頼性判定結果と異なる場合、その異なる判定結果を公開した置換サーバは信頼性がないと判定して上記レジスタに記録し、その置換サーバについての入出力の検証をスキップすることを特徴とする検証可能匿名通信路システム。11. The verifiable anonymous communication path system according to claim 10, wherein the judgment result published by each replacement server is a judgment result of the reliability of each replacement server upstream from the self- replacement server, and each of said replacement servers is an upstream replacement server. Has a register for recording the reliability information for, if the reliability determination result published by the other replacement server to each upstream replacement server is different from the reliability determination result determined by the own replacement server, A verifiable anonymous communication path system characterized in that a replacement server that has published a different determination result determines that the replacement server is unreliable, records the result in the register, and skips input / output verification of the replacement server. 請求項1〜4のいずれかの検証可能匿名通信路システムにおいて、上記縦続接続は少なくとも上記処理段を少なくとも1つ含むV個、Vは2以上の整数、の置換サーバの縦続接続であり、上記n個の入力が書き込まれ、各上記置換サーバと接続された書き換え不可の掲示板手段が設けられ、上記置換サーバは入力データを上記掲示板手段から読み込み、処理結果を上記掲示板手段に書き込むことを特徴とする検証可能匿名通信路システム。 5. The verifiable anonymous communication path system according to claim 1, wherein the cascade connection is a cascade connection of replacement servers of V units including at least one of the processing stages, and V is an integer of 2 or more. 5. Non-rewritable bulletin board means in which n inputs are written and connected to each of the replacement servers are provided, and the replacement server reads input data from the bulletin board means and writes a processing result to the bulletin board means. Verifiable anonymous communication system. 請求項13の検証可能匿名通信路システムにおいて、各上記置換サーバの置換結果を検証し、置換網の最終段から出力されたデータを復号すると共に、復号証明を生成して上記掲示板手段に書き込む復号サーバ手段と、上記置換サーバの置換証明及び上記復号サーバの復号証明を検証する検証サーバが上記掲示板手段に接続されていることを特徴とする検証可能匿名通信路システム。14. The decryptable anonymous communication path system according to claim 13, wherein the replacement result of each replacement server is verified, data output from the last stage of the replacement network is decrypted, and a decryption certificate is generated and written to the bulletin board means. A verifiable anonymous communication path system, wherein server means and a verification server for verifying the replacement certificate of the replacement server and the decryption certificate of the decryption server are connected to the bulletin board means. 請求項14の検証可能匿名通信路システムにおいて、上記復号サーバ手段はそれぞれ掲示板手段に接続され、部分復号を行う複数の復号サーバを含むことを特徴とする検証可能匿名通信路システム。15. The verifiable anonymous communication channel system according to claim 14, wherein the decryption server means includes a plurality of decryption servers connected to the bulletin board means and performing partial decryption. 請求項1〜15のいずれかの検証可能匿名通信路システムにおいて、上記暗号化されたメッセージはEl Gamal 暗号によるものであることを特徴とする検証
可能匿名通信路システム。
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より大の整数、の暗号化された入力メッセージを、縦続接続された2以上の整数V個の置換サーバに通して置換撹乱してN個の出力メッセージを出力し、上記出力メッセージと上記入力メッセージが一対一に対応することを、任意の検証者に証明する検証可能匿名通信方法であって、
上記各置換サーバは入力された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.
請求項17の検証可能匿名通信方法において、上記単位処理ごとにそのn個のメッセージを、部分復号鍵を使って部分復号し、上記部分復号に上記部分復号鍵を使用したことを、上記部分復号鍵を明らかにすることなく零知識証明で証明する部分復号証明を生成出力することを特徴とする検証可能匿名通信方法。18. The verifiable anonymous communication method according to claim 17, wherein the n messages are partially decrypted for each unit process using a partial decryption key, and the partial decryption is performed using the partial decryption key. A verifiable anonymous communication method characterized by generating and outputting a partial decryption proof that is proved by a zero-knowledge proof without revealing a key. 請求項17の検証可能匿名通信方法において、予め上記部分復号鍵をそれぞれ他の置換サーバの全てに検証可能に秘密分散しておき、
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.
請求項17の検証可能匿名通信方法において、最大t個の上記置換サーバの置換の漏洩を許容するとき、上記N個の入力メッセージに対するあらゆる置換を出力できる完全置換網が、縦続接続された上記V個の置換サーバ中の連続する t+1個を構成することを特徴とする検証可能匿名通信方法。18. The verifiable anonymous communication method according to claim 17, wherein the permutation network capable of outputting any permutation of the N input messages when the permutation leakage of up to t permutation servers is allowed, comprises the V cascade-connected. A verifiable anonymous communication method, comprising composing t + 1 consecutive replacement servers. 請求項19又は20の検証可能匿名通信方法において、各上記置換サーバは、他の置換サーバの出力の信頼性を、その置換サーバの入力、出力及び証明情報を用いて検証し、信頼性がない置換サーバを排除して置換サーバの処理を実行することを特徴とする検証可能匿名通信方法。21. The verifiable anonymous communication method according to claim 19, wherein each of the replacement servers verifies the reliability of the output of the other replacement server using the input, output, and certification information of the replacement server, and there is no reliability. A verifiable anonymous communication method, characterized in that the process of the replacement server is executed without the replacement server. 請求項21の検証可能匿名通信方法において、各上記置換サーバは、当該置換サーバより上流の上記置換サーバについて順次その出力が正しいか否かを検証し、最も近い信頼できると判定された置換サーバの出力を当該置換サーバの入力とすることを特徴とする検証可能匿名通信方法。22. The verifiable anonymous communication method according to claim 21, wherein each of the replacement servers sequentially verifies whether or not the output of the replacement server upstream from the replacement server is correct. A verifiable anonymous communication method, wherein an output is an input of the replacement server. 請求項22の検証可能匿名通信方法において、各置換サーバは上記検証した各置換サーバについての信頼性の判定結果を掲示板に公開し、各置換サーバは他の置換サーバの入力の判定に、上記掲示板に公開された判定結果を参照することを特徴とする検証可能匿名通信方法。23. The verifiable anonymous communication method according to claim 22, wherein each replacement server publishes a reliability determination result of each verified replacement server on a bulletin board, and each replacement server uses the bulletin board to determine an input of another replacement server. A verifiable anonymous communication method, characterized by referring to a judgment result published in a public domain. 請求項23の検証可能匿名通信方法において、上記公開する判定結果は各置換サーバが信頼できると判定した入力データを出力した置換サーバを表す情報であり、各置換サーバは、検証すべき置換サーバが上記掲示板に公開した信頼できる置換サーバの出力データを入力データとするものでない場合は、上記検証すべき置換サーバの入出力の検証をスキップすることを特徴とする検証可能匿名通信方法。24. The verifiable anonymous communication method according to claim 23, wherein the determination result to be disclosed is information indicating a replacement server that has output the input data that each replacement server has determined to be reliable, and each replacement server has a replacement server to be verified. A verifiable anonymous communication method characterized by skipping input / output verification of the replacement server to be verified, when the output data of the reliable replacement server disclosed on the bulletin board is not input data. 請求項23の検証可能匿名通信方法において、各置換サーバが公開する判定結果は自置換サーバより上流の各置換サーバに対する信頼性の判定結果であり、上記各置換サーバはそれより上流の置換サーバに対する信頼度情報を記録しておき、他の置換サーバが上記上流の各置換サーバに対し公開している信頼性の判定結果が自置換サーバにより判定した信頼性判定結果と異なる場合、その異なる判定結果を公開した置換サーバは信頼性がないと判定して記録しておき、その置換サーバについての入出力の検証をスキップすることを特徴とする検証可能匿名通信方法。24. The verifiable anonymous communication method according to claim 23, wherein the determination result published by each replacement server is a determination result of reliability of each replacement server upstream from the self-replacement server, and each of said replacement servers communicates with a replacement server upstream therefrom. If the reliability information is recorded and the reliability judgment result published by the other replacement server to each upstream replacement server is different from the reliability judgment result determined by the own replacement server, the different judgment result A verifiable anonymous communication method, characterized in that a replacement server that has published the information is determined to be unreliable and recorded, and input / output verification of the replacement server is skipped. 請求項17の検証可能匿名通信方法において、上記n個の入力を書き換え不可の掲示板に書き込み、上記各置換サーバは順次、入力データを上記掲示板から読み込み、処理結果を上記掲示板に書き込むことを特徴とする検証可能匿名通信方法。18. The verifiable anonymous communication method according to claim 17, wherein said n inputs are written to a non-rewritable bulletin board, and each of said replacement servers sequentially reads input data from said bulletin board and writes a processing result to said bulletin board. Verifiable anonymous communication method. 請求項26の検証可能匿名通信方法において、上記掲示板に接続された復号サーバ手段と検証サーバを設け、上記復号サーバ手段は各上記置換サーバの置換結果を検証し、最終段の置換サーバから出力されたデータを復号すると共に、復号証明情報を生成して上記掲示板に書き込み、上記検証サーバは上記置換サーバの証明情報及び上記復号サーバ手段の復号証明情報を検証することを特徴とする検証可能匿名通信方法。27. The verifiable anonymous communication method according to claim 26, further comprising: a decryption server unit and a verification server connected to the bulletin board, wherein the decryption server unit verifies the replacement result of each of the replacement servers, and outputs the replacement result from the last replacement server. Verifying anonymous communication, characterized in that the decrypted data is decrypted, decryption proof information is generated and written in the bulletin board, and the verification server verifies the proof information of the replacement server and the decryption proof information of the decryption server means. Method. 請求項27の検証可能匿名通信方法において、上記復号サーバ手段をそれぞれ掲示板に接続された複数の復号サーバで構成し、それぞれの復号サーバは予め決められた置換サーバの出力データを部分復号を行うと共に復号証明情報を生成してこれらを上記掲示板に書き込み、各初段の置換サーバ以外は前段の置換サーバの出力データに対する部分データを入力することを特徴とする検証可能匿名通信方法。28. The verifiable anonymous communication method according to claim 27, wherein said decryption server means comprises a plurality of decryption servers each connected to a bulletin board, wherein each decryption server partially decrypts output data of a predetermined replacement server. A verifiable anonymous communication method characterized by generating decryption proof information and writing these on the bulletin board, and inputting partial data corresponding to output data of the previous replacement server except for the first replacement server. 2以上の整数N個の暗号化されたメッセージが入力され、これらメッセージに対しNより小さい2以上の整数n個ずつ、単位置換処理手段により処理を実行してN個の出力を得る処理段が複数個縦続接続され、その終段の処理段よりN個のメッセージが出力され、
上記単位置換処理手段は、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.
請求項29のサーバにおいて、
上記単位置換処理手段は、その撹乱された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.
2以上の整数個のメッセージが入力され、これらをランダム置換し、かつ秘密情報を用いて撹乱して個のメッセージを出力する置換撹乱器と、
その置換撹乱器の個の入力メッセージと個の出力メッセージとが入力され、これら入力メッセージに対し、出力メッセージが正しく置換撹乱処理されたものであることを上記ランダム置換及び上記秘密情報を明かすことなく、零知識証明による検証を可能とする撹乱証明情報を出力する撹乱証明生成器と、
上記置換撹乱器から出力された個のメッセージが入力され、これらを部分復号鍵を用いて部分復号して個の出力メッセージとして出力する部分復号器と、
その部分復号器の入力メッセージを入力して、その部分復号器が正しく動作している事を上記部分復号鍵を明かすことなく零知識証明で証明する復号証明情報を出力する復号証明生成器とを備える切替装置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 .
2以上の整数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 .
請求項30又は32のサーバにおいて、
上記処理段の中の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.
請求項30〜33の何れかのサーバにおいて、
他の置換サーバの入出力メッセージと証明情報を入力し、これらを用いて上記他の置換サーバの出力メッセージの信頼性を検証する検証器を備えることを特徴とする置換サーバ。
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.
請求項34のサーバにおいて、
当該置換サーバより上流の置換サーバについて順次、上記検証器による検証を実行させ、信頼性があると判定された最も近い置換サーバの出力メッセージを当該置換サーバの入力メッセージとする判定器を備えることを特徴とする置換サーバ。
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.
請求項29〜35のいずれかに記載した置換サーバとしてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。A computer-readable recording medium storing a program for causing a computer to function as the replacement server according to any one of claims 29 to 35.
JP2000145992A 1999-05-19 2000-05-18 Verifiable anonymous communication path system, method for implementing the same, and recording medium recording the method Expired - Lifetime JP3540718B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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