JP6261493B2 - Zero knowledge proof system and method, certifier device, verifier device, and program - Google Patents

Zero knowledge proof system and method, certifier device, verifier device, and program Download PDF

Info

Publication number
JP6261493B2
JP6261493B2 JP2014243332A JP2014243332A JP6261493B2 JP 6261493 B2 JP6261493 B2 JP 6261493B2 JP 2014243332 A JP2014243332 A JP 2014243332A JP 2014243332 A JP2014243332 A JP 2014243332A JP 6261493 B2 JP6261493 B2 JP 6261493B2
Authority
JP
Japan
Prior art keywords
verifier
prover
knowledge proof
zero knowledge
com
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.)
Active
Application number
JP2014243332A
Other languages
Japanese (ja)
Other versions
JP2016105567A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014243332A priority Critical patent/JP6261493B2/en
Publication of JP2016105567A publication Critical patent/JP2016105567A/en
Application granted granted Critical
Publication of JP6261493B2 publication Critical patent/JP6261493B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号プロトコルに関するものであり、特に対話により証明を行う暗号プロトコル(対話証明)の一種であるゼロ知識証明に関するものである。   The present invention relates to a cryptographic protocol, and more particularly to zero knowledge proof, which is a kind of cryptographic protocol (dialogue proof) for performing proof by dialogue.

ゼロ知識証明では、証明者と呼ばれるプロトコル参加者が検証者と呼ばれるプロトコル参加者と複数回の通信を行うことにより証明を行う。特に、証明者と検証者はNP 言語L とインスタンスx を共通入力として持ち、証明者はx ∈ Lが成り立つことを検証者に証明する。証明者はx ∈ L であることのwitness w を秘密入力として持つ。ゼロ知識証明の安全性として、以下の(1)から(3)が知られている。
(1)完全性: x ∈ L ならば(命題が真であるならば)、証明が成功する。
(2)健全性: x ∈ L でないならば(命題が偽であるならば)、どのような証明者も証明に失敗する。
(3)ゼロ知識性: x ∈ L ならば、どのような検証者に対してもx ∈ L であること以外の情報(例えばw に関する情報)は漏れない。
In zero-knowledge proof, a protocol participant called a prover performs proof by communicating with a protocol participant called a verifier a plurality of times. In particular, the prover and verifier have the NP language L and instance x as common inputs, and the prover proves to the verifier that x ∈ L holds. The prover has witness w that x ∈ L as a secret input. The following (1) to (3) are known as the safety of zero knowledge proof.
(1) Completeness: If x ∈ L (if the proposition is true), the proof succeeds.
(2) Soundness: Any prover fails to prove if x ∈ L is not true (if the proposition is false).
(3) Zero knowledge: If x ∈ L, information other than x ∈ L (for example, information on w) is not leaked to any verifier.

ゼロ知識証明は、単独でも認証などにおいて有用であり,さらに他の暗号プロトコルの構成要素としても有用であることが知られている。   It is known that zero knowledge proof is useful for authentication alone, and is also useful as a component of other cryptographic protocols.

ゼロ知識証明に関しては複数の追加的な性質や安全性が提案されているが、その中で本発明に関連するのは以下に挙げる公開乱数と並行実行可能性である。   Several additional properties and security have been proposed for zero knowledge proof. Among them, the present invention relates to the following public random numbers and the possibility of parallel execution.

公開乱数は、ゼロ知識証明の構成に関する性質であり、検証者が送信するメッセージは全て乱数であるという性質である。つまり、ゼロ知識証明では実行時に証明者と検証者が様々な値を交互に送信するが、公開乱数型のゼロ知識証明では実行時に検証者が送信する値が全て互いに独立な乱数である。公開乱数型のゼロ知識証明は、その構成の単純さから様々な応用が可能という長所がある。例えば公開乱数型のゼロ知識証明を用いると従来よりも強い健全性(リセット可能健全性)を満たすゼロ知識証明を構築できることが知られている。   The public random number is a property related to the structure of the zero knowledge proof, and all messages sent by the verifier are random numbers. That is, in the zero knowledge proof, the prover and the verifier alternately transmit various values at the time of execution, but in the public random number type zero knowledge proof, all the values transmitted by the verifier at the time of execution are independent random numbers. The public random number type zero knowledge proof has the advantage that it can be applied in various ways due to its simple structure. For example, it is known that a zero-knowledge proof satisfying stronger soundness (resetable soundness) than before can be constructed by using a public random number type zero-knowledge proof.

並行実行可能性は、プロトコルを並行(concurrent)に実行しても安全性(特にゼロ知識性)が保たれるという性質である。ゼロ知識証明は、直列(sequential)実行においては常に安全性が保たれるが、一般に並行実行の場合は安全性が保たれるとは限らない。並行に実行するゼロ知識証明の数に制限は無く、また並行実行の順番にも制限が無い。並行実行可能ゼロ知識証明には,プロトコルが並行に実行される可能性がある状況でも安全に使用することができるという長所がある。例えばインターネットなどの非同期ネットワーク上では複数のゼロ知識証明を常に直列実行することは困難である。そのため、このようなネットワーク上でゼロ知識証明を利用するためには並行実行可能ゼロ知識証明が必要となる。   The parallel feasibility is a property that safety (especially zero knowledge) is maintained even if the protocol is executed concurrently. Zero knowledge proofs are always safe in sequential execution, but generally are not always safe in parallel execution. There is no limit to the number of zero knowledge proofs to be executed in parallel, and there is no limit to the order of parallel execution. The parallel executable zero knowledge proof has the advantage that it can be used safely even in situations where the protocol may be executed in parallel. For example, it is difficult to always execute a plurality of zero knowledge proofs in series on an asynchronous network such as the Internet. Therefore, in order to use zero knowledge proof on such a network, concurrent executable zero knowledge proof is required.

公開乱数型のゼロ知識証明と並行実行可能ゼロ知識証明に関する従来技術は多く存在するが、公開乱数と並行実行可能性の両者を同時に満たすことは困難であり従来技術は少ない。公開乱数型の並行実行可能ゼロ知識証明に関する従来技術について本発明に関連するのは以下に説明する非特許文献1,2に記載された技術である。   There are many prior arts related to public random number type zero knowledge proof and parallel executable zero knowledge proof, but it is difficult to satisfy both public random number and parallel feasibility simultaneously, and there are few prior arts. The prior art related to public random number type parallel executable zero knowledge proof is related to the present invention in the techniques described in Non-Patent Documents 1 and 2 described below.

標準的な暗号学的仮定からの安全性証明が可能であり信頼できる第三者も利用しないという条件をつけると、公開乱数型の並行実行可能ゼロ知識証明に関する従来技術は非特許文献1に記載された技術のみである。しかし、非特許文献1で示されたゼロ知識証明にはラウンド数が大きいという欠点がある。つまり、非特許文献1のゼロ知識証明を実行する際には証明者と検証者が多数回の通信を行わなければならないため、実行時間が長くなり効率が悪い。具体的には、非特許文献1のゼロ知識証明におけるラウンド数はO(nε)である。ここで、nはセキュリティパラメータ、εは定数である。 Non-Patent Document 1 discloses the prior art related to public-random-type parallel executable zero-knowledge proof under the condition that security proof from standard cryptographic assumptions is possible and a trusted third party is not used. Technology only. However, the zero knowledge proof shown in Non-Patent Document 1 has a drawback that the number of rounds is large. That is, when executing the zero-knowledge proof of Non-Patent Document 1, the prover and the verifier must perform communication many times, so that the execution time becomes long and the efficiency is low. Specifically, the number of rounds in the zero knowledge proof of Non-Patent Document 1 is O (n ε ). Here, n is a security parameter, and ε is a constant.

また、ある種の信頼できる第三者を利用すると、標準的な仮定からの安全性証明が可能であり効率も良い公開乱数型の並行実行可能ゼロ知識証明が構築できることが示されている。特に、非特許文献2では、ランダムなハッシュ関数を公開する第三者がいるモデル(Global hash function model)において公開乱数型の並行実行可能ゼロ知識証明が提案されている。しかし、これらのプロトコルは信頼できる第三者を利用するため、利用可能な状況が限られるという欠点がある。   In addition, it is shown that when a certain kind of trusted third party is used, it is possible to construct a public random number type parallel executable zero knowledge proof that is capable of performing safety proof from standard assumptions and is efficient. In particular, Non-Patent Document 2 proposes a public random number type parallel executable zero knowledge proof in a model (Global hash function model) in which there is a third party who discloses a random hash function. However, since these protocols use a reliable third party, there is a drawback that the available situations are limited.

従来技術に関しては、(1)信頼できる第三者を利用しないが効率が悪い技術と、(2)効率は良いが信頼できる第三者を利用する技術とのどちらか2種類しかないという問題があった。   Regarding the prior art, there are only two types of problems: (1) a technology that does not use a reliable third party but is inefficient, and (2) a technology that uses a reliable but reliable third party. there were.

Vipul Goyal, “Non-black-box simulation in the fully concurrent setting”, In STOC, pages 221-230, 2013.Vipul Goyal, “Non-black-box simulation in the fully concurrent setting”, In STOC, pages 221-230, 2013. Ran Canetti, Huijia Lin, and Omer Paneth, “Public-coin concurrent zero-knowledge in the global hash model”, In TCC, pages 80-99, 2013.Ran Canetti, Huijia Lin, and Omer Paneth, “Public-coin concurrent zero-knowledge in the global hash model”, In TCC, pages 80-99, 2013.

この発明は、従来よりも効率が良く、かつ、信頼できる第三者を利用しないゼロ知識証明システム及び方法、証明者装置、検証者装置並びにプログラムを提供することを目的とする。   An object of the present invention is to provide a zero-knowledge proof system and method, a prover device, a verifier device, and a program that are more efficient than conventional methods and do not use a reliable third party.

本発明の一態様によるゼロ知識証明システムは、証明者装置と検証者装置とを含むゼロ知識証明システムであって、Hをハッシュ関数族とし、H n = def {h s ∈H s.t. s∈{0,1} n }とし、各h∈H n の定義域を{0,1} * とし、各h∈H n の値域を{0,1} n として、検証者装置は、ハッシュ関数h∈H n を選択して証明者装置に送信し、i=1,…,N slot , j=1,…,nとし、Com(0 n )を0 n のコミットメントを出力する確率的アルゴリズムとして、証明者装置は、C i,j =Com(0 n )及びC’ i,j =Com(0 n )を計算して、C i =(C i,1 ,C’ i,1 ,…,C i,n ,C’ i,n )を検証者装置に送信し、i=1,…,N slot として、検証者装置は、文字列r i ∈{0,1} n^2 を生成して証明者装置に送信し、証明者装置の入力を(x,w)とし、wをxのwitnessとし、検証者装置の入力をxとし、Λ 1 を所定の言語として、証明者装置は、いわゆるwitness indistinguishability安全性を保証する対話証明方式であるWIPOKを用いて検証者装置と複数回の通信を上記の入力に基づいて行うことで「(x∈L)∨(<h,C 1,r 1 ,…,C Nslot ,r Nslot >∈Λ 1 )」を検証者に証明するA zero-knowledge proof system according to an aspect of the present invention is a zero-knowledge proof system including a prover device and a verifier device, where H is a hash function family, and H n = def (h s ∈ H st s ∈ { 0,1} n }, the domain of each h∈H n is {0,1} * , the range of each h∈H n is {0,1} n , and the verifier device has a hash function h∈ H n is selected and transmitted to the prover device, i = 1, ..., N slot , j = 1, ..., n, and Pro (0 n ) is proved as a probabilistic algorithm that outputs 0 n commitment The user apparatus calculates C i, j = Com (0 n ) and C ′ i, j = Com (0 n ), and C i = (C i, 1 , C ′ i, 1 ,..., C i, n , C ′ i, n ) to the verifier device, and i = 1,..., N slot , the verifier device generates a character string r i ∈ {0,1} n ^ 2 The prover device is transmitted to the prover device, the input of the prover device is (x, w), w is the witness of x, the input of the verifier device is x, and Λ 1 is a predetermined language. witness indistinguisha By using WIPOK, which is a dialogue proof method that guarantees bility safety, multiple communication with the verifier device is performed based on the above input, so that `` (x∈L) ∨ (<h, C 1, r 1 , ..., C Nslot , r Nslot > ∈Λ 1 ) ” .

従来よりも効率が良く、かつ、信頼できる第三者を利用しないでゼロ知識証明を行うことができる。   Efficient and more efficient than before, zero knowledge proof can be performed without using a reliable third party.

ゼロ知識証明システムの機能ブロック図。The functional block diagram of a zero knowledge proof system.

本発明は公開乱数型の並行実行可能ゼロ知識証明に関するものである。安全性は信頼できる第三者を利用せずに証明可能であり、かつ標準的な暗号学的からの安全性証明が可能である。同様の非特許文献1の技術と比べると、より小さいラウンド数(n^(ω(1/(log n)1/2))で実現している。ここで、ω(1/(log n)1/2)は、1/(log n)1/2より漸近的に大きい任意の関数である。 The present invention relates to a public random number type parallel executable zero knowledge proof. Security can be proved without using a trusted third party, and security certification from standard cryptography is possible. Compared with the technique of the same nonpatent literature 1, it implement | achieves by the smaller round number (n ^ ((omega) (1 / (log n) 1/2 )). Here, it is (omega) (1 / (log n)). 1/2 ) is an arbitrary function that is asymptotically larger than 1 / (log n) 1/2 .

本発明の実施形態では以下の従来技術を使用する。   In the embodiment of the present invention, the following conventional technique is used.

衝突困難ハッシュ関数族: 本発明では衝突困難ハッシュ関数族H = {hs}s∈{0,1}*を利用する。ここで、各n∈Nに対してHn=def{hs∈H s.t. s∈{0,1}n}と表記する。このとき,各h∈Hnにおいて、hの定義域は{0,1}*(つまり任意長の文字列)、値域は{0,1}nである。 Collision- resistant hash function family: In the present invention, a collision- resistant hash function family H = {h s } s∈ {0,1} * is used. Here, for each n∈N, H n = def {h s ∈H st s∈ {0,1} n }. At this time, in each h∈H n , the domain of h is {0,1} * (that is, an arbitrary length character string), and the range is {0,1} n .

非対話コミットメント方式: 非対話コミットメント方式は確率的アルゴリズムComであり、文字列v∈{0,1}nと乱数r∈{0,1}poly(n)を入力としてvのコミットメントc=Com(v;r)を出力する。以下では「c←Com(v)」によって「ランダムにr∈{0,1}poly(n)を選びc=Com(v;r)を計算する」という操作を表す。「c←Com(v)」のことを「c=Com(v)」とも表現する。ここでは、特に、任意のcに対してCom(v;r)=cを満たす(v,r)が一意に定まるという性質を持つ方式を用いる。そのようなコミットメント方式は一方向性置換から構築できることがよく知られている。poly(n)は、nについての所定の多項式である。poly(n)は、Comに依存して定まる。 Non-interactive commitment method: The non-interactive commitment method is a probabilistic algorithm Com, which uses the string v∈ {0,1} n and the random number r∈ {0,1} poly (n) as input, and the commitment c = Com ( v; r) is output. In the following, an operation “c ← Com (v; r) is selected by randomly selecting r∈ {0,1} poly (n )” by “c ← Com (v)” is represented. “C ← Com (v)” is also expressed as “c = Com (v)”. Here, in particular, a method having a property that (v, r) satisfying Com (v; r) = c is uniquely determined for an arbitrary c is used. It is well known that such commitment schemes can be constructed from unidirectional replacements. poly (n) is a predetermined polynomial for n. poly (n) is determined depending on Com.

Witness-indistinguishable proof of knowledge: Witness-indistinguishable proof of knowledge (WIPOK)もゼロ知識証明と同様に対話証明の一種である。したがって、WIPOK においても証明者が検証者と複数回の通信を行うことで命題の証明を行う。ただし、WIPOK はゼロ知識性は保証せず、代わりにwitness indistinguishability という安全性を保証する。これは、「(x1∈ L1)∨(x2∈L2)」という形の命題を証明した際に、証明者がx1∈ L1が成り立つことを使って証明したのかx2∈L2が成り立つことを使って証明したのかを検証者が識別できないことを保証する。 Witness-indistinguishable proof of knowledge: Witness-indistinguishable proof of knowledge (WIPOK) is a kind of dialogue proof as well as zero knowledge proof. Therefore, even in WIPOK, the prover proves the proposition by communicating with the verifier multiple times. However, WIPOK does not guarantee zero knowledge, but instead guarantees the safety of witness indistinguishability. This means that when proving a proposition of the form `` (x 1 ∈ L 1 ) ∨ (x 2 ∈ L 2 ) '', is it proved by using the fact that x 1 ∈ L 1 holds? X 2 ∈ Guarantee that the verifier cannot identify whether he proved using the fact that L 2 holds.

WIPOK は、公開乱数のものであれば任意のものを用いることができる。なお、一方向性関数を用いると定数ラウンドの公開乱数型WIPOK が構築できることがよく知られている。   WIPOK can be any public random number. It is well known that a constant round public random number type WIPOK can be constructed using a one-way function.

Universal argument: Universal argument(UA)もゼロ知識証明やWIPOK と同じく対話証明の1つである。ここでは、特に参考文献1のUA を用いる。
〔参考文献1〕Boaz Barak and Oded Goldreich, “Universal arguments and their applications”, SIAM J. Comput., 38(5):P.1661-1694, 2008.
Universal argument: Universal argument (UA) is one of the proofs of dialogue like zero knowledge proof and WIPOK. Here, the UA of Reference 1 is used in particular.
[Reference 1] Boaz Barak and Oded Goldreich, “Universal arguments and their applications”, SIAM J. Comput., 38 (5): P.1661-1694, 2008.

このUA のラウンド数は4であるため、証明者と検証者の間での通信系列を(UA1,UA2,UA3,UA4)と書くことができる。つまり、ある値UA1を検証者が最初に送り、次に証明者が別の値UA2を送り、更に検証者がUA3を送り、最後に証明者がUA4を送る。 Since the number of rounds of this UA is 4, the communication sequence between the prover and the verifier can be written as (UA 1 , UA 2 , UA 3 , UA 4 ). That is, the verifier sends a value UA 1 first, then the prover sends another value UA 2 , the verifier sends UA 3 , and finally the prover sends UA 4 .

UA4を受信したあと、検証者は通信系列(UA1,UA2,UA3,UA4)から証明者による証明が正しいかを判定する。ここで、参考文献1のUAは公開乱数型であるためUA1とUA3は適切な長さの乱数である。具体的には、UA1はランダムなハッシュ関数h∈Hnであり、UA3はランダムなn2ビット文字列である。 After receiving UA 4 , the verifier determines whether the proof by the prover is correct from the communication series (UA 1 , UA 2 , UA 3 , UA 4 ). Here, since UA in Reference Document 1 is a public random number type, UA 1 and UA 3 are random numbers with appropriate lengths. Specifically, UA 1 is a random hash function hεH n and UA 3 is a random n 2 bit string.

以下、本発明の実施形態の技術的背景について説明する。本発明の実施形態の方式は,ゼロ知識証明の研究において盛んに使われるFeige-Lapidot-Sahai (FLS) technique に基づいている。このFLS technique について説明するために、まずゼロ知識証明の安全性であるゼロ知識性の定義について説明する。ゼロ知識性の定義においては、どのような検証者もwitness に関する情報などを得ていないことを表現するために、どのような検証者に対してもシミュレータが存在することを求めている。ここで、シミュレータは検証者と同じ入力(言語Lとインスタンスx)を受け取り、証明者-検証者間の通信系列を出力する(シミュレートする)。もし、どのような検証者に対してもシミュレータが存在するならば、直感的には以下の理由から検証者がwitnessに関する情報などを証明から得ていないことが保証される。   The technical background of the embodiment of the present invention will be described below. The system of the embodiment of the present invention is based on the Feige-Lapidot-Sahai (FLS) technique that is actively used in the study of zero knowledge proof. In order to explain this FLS technique, first, the definition of zero knowledge, which is the security of zero knowledge proof, will be explained. In the definition of zero knowledge, in order to express that no verifier obtains information on witness, etc., it is required for any verifier to have a simulator. Here, the simulator receives the same input (language L and instance x) as the verifier, and outputs (simulates) a communication sequence between the prover and the verifier. If a simulator exists for any verifier, it is intuitively guaranteed that the verifier has not obtained information on witness from the proof for the following reasons.

1. もし検証者が証明者と通信することで何らかの情報を得ているならば,その情報は証明者-検証者間の通信系列から計算できるはずである。検証者が証明者から得た情報は通信系列のみだからである。
2. したがって、もし検証者と同じ入力から証明者-検証者間の通信系列を出力するシミュレータが存在したら、検証者が得た情報は検証者の入力のみから計算できることになる。
3. これは検証者が得た情報は全て証明者と通信をすることなく計算することができることを意味するため、検証者の入力からは計算できない情報(witness w に関するものなど)を検証者は得ていないことになる。
1. If the verifier obtains some information by communicating with the prover, the information should be calculated from the communication sequence between the prover and the verifier. This is because the information obtained from the prover by the verifier is only the communication series.
2. Therefore, if there is a simulator that outputs the communication sequence between the prover and the verifier from the same input as the verifier, the information obtained by the verifier can be calculated only from the input of the verifier.
3. This means that all the information obtained by the verifier can be calculated without communicating with the prover. Therefore, the verifier cannot obtain information (such as witness w) that cannot be calculated from the verifier's input. You wo n’t get it.

このとき、FLS technique を用いたゼロ知識証明は以下のような形になる。なお、証明者が検証者に証明する命題はx∈Lである。
1. トラップドア情報生成フェイズ:証明者と検証者はトラップドア情報生成プロトコルと呼ばれるプロトコルを実行する。このプロトコルにおける証明者-検証者間の通信系列をtransと書くと、このプロトコルはtransに関して何らかの言語L~を定義する。
2. 証明フェイズ:証明者はWIPOK を用いて「(x∈L)∨(trans∈L~)」を証明する。トラップドア情報生成プロトコルは¬(trans∈L~)となるよう設計されているため、証明フェイズでのWIPOKによる証明が成功したらWIPOKの健全性からx∈Lが成り立つ。ここで、¬(trans∈Λ1)とは、transがΛ1の元ではないことを表す。一方でトラップドア情報生成プロトコルは、trans∈L~とシミュレートできるよう設計されてもいるため、シミュレータはtrans∈L~が成り立つことを用いて通信系列をシミュレートすることができる。
At this time, zero knowledge proof using the FLS technique takes the following form. The proposition that the prover proves to the verifier is x∈L.
1. Trap door information generation phase: The prover and verifier execute a protocol called trap door information generation protocol. If the communication sequence between the prover and the verifier in this protocol is written as trans, this protocol defines some language L ~ with respect to trans.
2. Proof phase: The prover uses WIPOK to prove “(x∈L) ∨ (trans∈L ~)”. Since the trapdoor information generation protocol is designed to be ¬ (trans∈L ~), if the proof by WIPOK is successful in the proof phase, x∈L holds from the soundness of WIPOK. Here, ¬ (trans∈Λ 1 ) represents that trans is not an element of Λ 1 . On the other hand, the trapdoor information generation protocol is also designed so that it can be simulated as transεL˜, so the simulator can simulate a communication sequence using the fact that transεL˜ holds.

本発明の実施形態の方式は、前述のようにFLS techniqueに基づいているため、大まかな構成は上に示したものになる。   Since the system of the embodiment of the present invention is based on the FLS technique as described above, the rough configuration is as shown above.

従来技術の違いは、新たに設計したトラップドア情報生成プロトコルを利用していることである。   The difference in the prior art is that a newly designed trap door information generation protocol is used.

以下、本発明の一実施形態であるゼロ知識証明システムについて説明する。   Hereinafter, a zero knowledge proof system according to an embodiment of the present invention will be described.

ゼロ知識証明システムは、図1に示すように、証明者装置Pと検証者装置Vとを例えば備えている。
入力: 証明者装置Pの入力は(x,w)、検証者装置Vの入力はxである。ここでNP言語Lに対してx∈Lであり、wはx∈Lのwitnessである。証明者装置Pの目的はx∈Lを証明することである。
パラメータ: 整数Nslot=n^ω(1/(log n)1/2)。
Stage 1: 検証者装置Vはランダムにハッシュ関数h∈Hnを選び、選択されたハッシュ関数hを証明者装置Pに送信する。
Stage 2: 各i∈{1,…,Nslot}について順番に、証明者装置Pと検証者装置Vは以下を行う。
1. 各j∈{1,…,n}について、証明者装置Pは、Ci,j←Com(0n)とC’i,j←Com(0n)を計算する。そして、証明者装置PはC i=(Ci,1,C’i,1,…,Ci,n,C’i,n)を検証者Vに送信する。
2. 検証者装置Vはランダムな文字列ri∈{0,1}n^2を証明者装置Pに送信する。
このようにして、証明者装置Pは、i=1,…,Nslot, j=1,…,nとし、Ci,j=Com(0n)及びC’i,j=Com(0n)を計算して、C i=(Ci,1,C’i,1,…,Ci,n,C’i,n)を検証者装置Vに送信する。
また、検証者装置Vは、i=1,…,Nslotとして、文字列ri∈{0,1}n^2を生成して証明者装置Pに送信する。
Stage 3: 証明者装置PはWIPOKを用いて「(x∈L)∨(<h,C1,r1,…,C Nslot,rNslot>∈Λ1)」を証明する。
The zero knowledge proof system includes, for example, a prover device P and a verifier device V as shown in FIG.
Input: The input of the prover apparatus P is (x, w), and the input of the verifier apparatus V is x. Here, x∈L with respect to the NP language L, and w is the witness of x∈L. The purpose of the prover device P is to prove x∈L.
Parameters: Integer N slot = n ^ ω (1 / (log n) 1/2 ).
Stage 1: The verifier device V randomly selects a hash function hεH n and transmits the selected hash function h to the prover device P.
Stage 2: For each i∈ {1,..., N slot }, the prover apparatus P and the verifier apparatus V perform the following in order.
1. For each j∈ {1,..., N}, the prover apparatus P calculates C i, j ← Com (0 n ) and C ′ i, j ← Com (0 n ). Then, the prover apparatus P transmits C i = (C i, 1 , C ′ i, 1 ,..., C i, n , C ′ i, n ) to the verifier V.
2. The verifier device V transmits a random character string r i ∈ {0,1} n ^ 2 to the prover device P.
In this way, the prover device P sets i = 1,..., N slot , j = 1,..., N, and C i, j = Com (0 n ) and C ′ i, j = Com (0 n ) And C i = (C i, 1 , C ′ i, 1 ,..., C i, n , C ′ i, n ) is transmitted to the verifier device V.
Further, the verifier device V generates a character string r i ε {0,1} n ^ 2 with i = 1,..., N slot and transmits it to the prover device P.
Stage 3: The prover device P uses WIPOK to prove “(x∈L), (<h, C 1, r 1 ,..., C Nslot , r Nslot > ∈Λ 1 )”.

ここで、Λ1は、上記FLS techniqueで説明したL~に対応する所定の言語である。すなわち、Λ1は、証明者装置Pと検証者装置Vとの間の通信プロトコルの通信系列をtransとして、上記通信プロトコルが¬(trans∈Λ1)となるよう設計されているが、trans∈Λ1とシミュレートできるよう設計されているという関係を満たす。具体的には、Λ1は以下の性質を満たす言語である。 Here, Λ 1 is a predetermined language corresponding to L˜ described in the FLS technique. That is, Λ 1 is designed so that the communication protocol of the communication protocol between the prover apparatus P and the verifier apparatus V is trans, and the communication protocol is ¬ (trans∈Λ 1 ), but trans∈ It satisfies the relationship that it is designed to be simulated with Λ 1 . Specifically, Λ 1 is a language that satisfies the following properties.

言語Λ1:以下を満たすとき<h,C1,r1,…,C Nslot,rNslot>∈Λ1が成り立つ:
ある
i1,i2,i3∈{1,…,Nslot}およびj∈{1,…,n} s.t. i1<i2<i3,
UAの第2および第4 メッセージUA2∈{0,1}n,UA4∈{0,1}poly(n)
Comに用いる乱数R∈{0,1}poly(n)
が存在して、
Ci3,j=Com(UA2;R), かつ
(h,UA2,ri3,UA4)は<h,Ci1,j,ri1,Ci2,j,C’i1,j,ri2>∈Λ2の正しい証明。
を満たす。
言語Λ2:以下を満たすとき<h,C1,r1,C2,C’1,r2>∈Λ2が成り立つ。
ある
オラクルマシンΠ s.t. |Π|≦T(n),
UAの第2 および第4 メッセージUA2∈{0,1}n,UA4∈{0,1}poly(n)
文字列τ s.t. |τ|≦T(n),
Com に用いる乱数R1,R2,R’2∈{0,1}poly(n)
整数T~≦T(n)
が存在して、
C1=Com(h(Π);R1), C2=Com(UA2,R2), C’2=Com(h(τ||T~);R’2),かつ
r1はτの部分文字列,かつ
(h,UA2,r2,UA4)は<h,τ,T~>∈Λ3の正しい証明。
を満たす。
Language Λ 1 : <h, C 1, r 1 ,…, C Nslot , r Nslot > ∈Λ 1 holds if:
is there
i 1 , i 2 , i 3 ∈ {1,…, N slot } and j∈ {1,…, n} st i 1 <i 2 <i 3 ,
U The second and fourth message UA 2 ∈ {0, 1} of A n, UA 4 ∈ {0,1 } poly (n),
Random number R∈ {0,1} poly (n) used for Com
Exists,
C i3, j = Com (UA 2 ; R), and
(h, UA 2 , r i3 , UA 4 ) is a correct proof of <h, C i1, j , r i1 , C i2, j , C ′ i1, j , r i2 > ∈Λ 2 .
Meet.
Language Λ 2 : <h, C 1 , r 1 , C 2 , C ′ 1 , r 2 > ∈Λ 2 holds when
Oracle machine Π st | Π | ≦ T (n),
UA second and fourth messages UA 2 ∈ {0,1} n , UA 4 ∈ {0,1} poly (n) ,
String τ st | τ | ≦ T (n),
Random numbers R 1 , R 2 , R ' 2 ∈ {0,1} poly (n) , used for Com
Integer T ~ ≦ T (n)
Exists,
C 1 = Com (h (Π); R 1 ), C 2 = Com (UA 2 , R 2 ), C ' 2 = Com (h (τ || T ~); R' 2 ), and
r 1 is a substring of τ, and
(h, UA 2 , r 2 , UA 4 ) is a correct proof of <h, τ, T ~> ∈Λ 3 .
Meet.

UA2∈{0,1}n,UA4∈{0,1}poly(n)は、シミュレータが通信系列をシミュレートする際に生成するメッセージである。
T(n)は、多項式より大きい関数、例えばnlogn等である。
言語Λ3:以下を満たすとき<Π,τ,T~>∈Λ3が成り立つ:
ある
文字列y s.t. |y|≦T~
が存在して,以下を満たす。
UA 2 ∈ {0,1} n and UA 4 ∈ {0,1} poly (n) are messages generated when the simulator simulates a communication sequence.
T (n) is a function larger than a polynomial, such as n logn .
Language Λ 3 : <Π, τ, T ~> ∈Λ 3 holds if:
Yes String y st | y | ≦ T ~
Exists and satisfies the following.

ΠOはT~ステップ内にτを出力する。ここで、Oはオラクルで、Qを受け取ったときにQ=Com(v;r)を満たす(v,r)を返す。Comの性質から、(v,r)は一意に定まる。 Π O outputs τ within T ~ step. Here, O is an Oracle, and when it receives Q, it returns (v, r) that satisfies Q = Com (v; r). Due to the nature of Com, (v, r) is uniquely determined.

ΠOの実行時にΠがOにクエリする全てのQに対して、(Q,v,r)∈yが存在してQ=Com(v;r)を満たす。 For every Q that Π queries O when O executes, there is (Q, v, r) ∈y and satisfies Q = Com (v; r).

以下、従来技術との比較について説明する。従来技術との違いはトラップドア生成プロトコル(Stage 1とStage 2)である。上記トラップドア情報生成プロトコルは非特許文献2のゼロ知識証明のトラップドア情報生成プロトコルに基づいている。しかし、非特許文献2のトラップドア情報生成プロトコルは信頼できる第三者を利用するため、上記の実施形態では主にトラップドア生成プロトコルによって定義する言語を上記したものへ変更することによって信頼できる第三者を不要にしている。特に、非特許文献2と比較すると言語を2種類から3種類に増やしている。   Hereinafter, a comparison with the prior art will be described. The difference from the prior art is the trapdoor generation protocol (Stage 1 and Stage 2). The trapdoor information generation protocol is based on the zero knowledge proof trapdoor information generation protocol of Non-Patent Document 2. However, since the trap door information generation protocol of Non-Patent Document 2 uses a reliable third party, in the above embodiment, the trap door information generation protocol can be trusted by changing the language defined mainly by the trap door generation protocol to the one described above. The three parties are unnecessary. In particular, compared with Non-Patent Document 2, the number of languages is increased from two to three.

上記実施形態は、非特許文献1の方式と比較すると、ラウンド数をO(nε)からn^(ω(1/(log n)1/2)に削減しているため、効率が改善されている。また、非特許文献2の方式と比較すると、信頼できる第三者を利用しないため多様な状況で利用することができる。 In the above embodiment, the number of rounds is reduced from O (n ε ) to n ^ (ω (1 / (log n) 1/2 ), compared with the method of Non-Patent Document 1, thereby improving the efficiency. Moreover, compared with the method of Non-Patent Document 2, since a reliable third party is not used, it can be used in various situations.

[変形例等]
上記説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[Modifications, etc.]
The processes described above are not only executed in chronological order according to the order of description, but may be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes.

また、各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、各装置における各種の処理機能がコンピュータ上で実現される。   Various processing functions in each device may be realized by a computer. In that case, the processing contents of the functions that each device should have are described by a program. By executing this program on a computer, various processing functions in each device are realized on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。   The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Further, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its storage unit. When executing the process, this computer reads the program stored in its own storage unit and executes the process according to the read program. As another embodiment of this program, a computer may read a program directly from a portable recording medium and execute processing according to the program. Further, each time a program is transferred from the server computer to the computer, processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program includes information provided for processing by the electronic computer and equivalent to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In addition, although each device is configured by executing a predetermined program on a computer, at least a part of these processing contents may be realized by hardware.

Claims (6)

証明者装置と検証者装置とを含むゼロ知識証明システムであって、
Hをハッシュ関数族とし、H n = def {h s ∈H s.t. s∈{0,1} n }とし、各h∈H n の定義域を{0,1} * とし、各h∈H n の値域を{0,1} n として、上記検証者装置は、ハッシュ関数h∈Hnを選択して上記証明者装置に送信し、
i=1,…,N slot , j=1,…,nとし、Com(0 n )を0 n のコミットメントを出力する確率的アルゴリズムとして、上記証明者装置は、C i,j=Com(0n)及びC’i,j=Com(0n)を計算して、C i=(Ci,1,C’i,1,…,Ci,n,C’i,n)を上記検証者装置に送信し、
i=1,…,N slot として、上記検証者装置は、文字列ri∈{0,1}n^2を生成して上記証明者装置に送信し、
上記証明者装置の入力を(x,w)とし、wをxのwitnessとし、上記検証者装置の入力をxとし、Λ 1 を所定の言語として、上記証明者装置は、いわゆるwitness indistinguishability安全性を保証する対話証明方式であるWIPOKを用いて上記検証者装置と複数回の通信を上記の入力に基づいて行うことで「(x∈L)∨(<h,C1,r1,…,C Nslot,rNslot>∈Λ1)」を検証者に証明する、
ゼロ知識証明システム。
A zero knowledge proof system including a certifier device and a verifier device,
H is a hash function family, H n = def {h s ∈ H st s ∈ {0,1} n }, each h∈ H n domain is {0, 1} *, and each h ∈ H n as the range of {0, 1} n, the verifier device selects the hash function H∈H n is transmitted to the prover device,
As a probabilistic algorithm for outputting i = 1, ..., N slot , j = 1, ..., n and Com (0 n ) outputs a commitment of 0 n , the above prover device uses C i, j = Com (0 n ) and C ′ i, j = Com (0 n ) and C i = (C i, 1 , C ′ i, 1 ,..., C i, n , C ′ i, n ) To the verifier device,
i = 1, ..., a N slot, the verifier unit generates string r i ∈ {0,1} n ^ 2 sends to the prover device,
The input of the prover device a (x, w), the w a witness of x, the input of the verifier apparatus and x, the lambda 1 as the predetermined language, the prover device, the so-called witness Indistinguishability By using WIPOK, which is a dialogue proof method that guarantees security, to perform communication with the verifier device multiple times based on the above input, `` (x∈L) ∨ (<h, C 1, r 1 ,…, C Nslot , r Nslot > ∈Λ 1 ) ”to the verifier ,
Zero knowledge proof system.
証明者装置と検証者装置との間でゼロ知識証明を行うゼロ知識証明方法であって、
Hをハッシュ関数族とし、H n = def {h s ∈H s.t. s∈{0,1} n }とし、各h∈H n の定義域を{0,1} * とし、各h∈H n の値域を{0,1} n として、上記検証者装置が、ハッシュ関数h∈Hnを選択して上記証明者装置に送信するステップと、
i=1,…,N slot , j=1,…,nとし、Com(0 n )を0 n のコミットメントを出力する確率的アルゴリズムとして、上記証明者装置が、C i,j=Com(0n)及びC’i,j=Com(0n)を計算して、C i=(Ci,1,C’i,1,…,Ci,n,C’i,n)を上記検証者装置に送信するステップと、
i=1,…,N slot として、上記検証者装置が、文字列ri∈{0,1}n^2を生成して上記証明者装置に送信するステップと、
上記証明者装置の入力を(x,w)とし、wをxのwitnessとし、上記検証者装置の入力をxとし、Λ 1 を所定の言語として、上記証明者装置が、いわゆるwitness indistinguishability安全性を保証する対話証明方式であるWIPOKを用いて上記検証者装置と複数回の通信を上記の入力に基づいて行うことで「(x∈L)∨(<h,C1,r1,…,C Nslot,rNslot>∈Λ1)」を検証者に証明するステップと、
を含むゼロ知識証明方法。
A zero knowledge proof method for performing zero knowledge proof between a prover device and a verifier device,
H is a hash function family, H n = def {h s ∈ H st s ∈ {0,1} n }, each h∈ H n domain is {0, 1} *, and each h ∈ H n the value range as {0, 1} n, a step of the verifier apparatus, select a hash function H∈H n is transmitted to the prover device,
As a probabilistic algorithm for outputting i = 1,..., N slot , j = 1,..., and Com (0 n ) as a commitment of 0 n , the above prover device uses C i, j = Com (0 n ) and C ′ i, j = Com (0 n ) and C i = (C i, 1 , C ′ i, 1 ,..., C i, n , C ′ i, n ) Transmitting to the verifier device;
i = 1, ..., a N slot, the method comprising the verifier device sends to the prover device to generate a string r i ∈ {0,1} n ^ 2,
The input of the prover device a (x, w), the w a witness of x, the input of the verifier apparatus and x, the lambda 1 as the predetermined language, the prover device, the so-called witness Indistinguishability By using WIPOK, which is a dialogue proof method that guarantees security, to perform communication with the verifier device multiple times based on the above input, `` (x∈L) ∨ (<h, C 1, r 1 ,…, C Nslot , r Nslot > ∈Λ 1 ) ”to the verifier ,
Zero-knowledge proof method including
請求項1のゼロ知識証明システムの証明者装置。   The prover apparatus of the zero knowledge proof system according to claim 1. 請求項1のゼロ知識証明システムの検証者装置。   The verifier apparatus of the zero knowledge proof system according to claim 1. 請求項3の証明者装置としてコンピュータを機能させるためのプログラム。 Program for causing a computer to function as the prover equipment of claim 3. 請求項4の検証者装置としてコンピュータを機能させるためのプログラム。A program for causing a computer to function as the verifier device according to claim 4.
JP2014243332A 2014-12-01 2014-12-01 Zero knowledge proof system and method, certifier device, verifier device, and program Active JP6261493B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014243332A JP6261493B2 (en) 2014-12-01 2014-12-01 Zero knowledge proof system and method, certifier device, verifier device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014243332A JP6261493B2 (en) 2014-12-01 2014-12-01 Zero knowledge proof system and method, certifier device, verifier device, and program

Publications (2)

Publication Number Publication Date
JP2016105567A JP2016105567A (en) 2016-06-09
JP6261493B2 true JP6261493B2 (en) 2018-01-17

Family

ID=56102001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014243332A Active JP6261493B2 (en) 2014-12-01 2014-12-01 Zero knowledge proof system and method, certifier device, verifier device, and program

Country Status (1)

Country Link
JP (1) JP6261493B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220239489A1 (en) * 2019-06-05 2022-07-28 Sony Group Corporation Identity verification program, identity verification method, user terminal, and user authentication program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4820303B2 (en) * 2007-01-15 2011-11-24 日本電信電話株式会社 Dialog proof batch execution method, system thereof, certifier device, verifier device, and program thereof
JP2010118796A (en) * 2008-11-11 2010-05-27 Univ Of Electro-Communications Identity verification system

Also Published As

Publication number Publication date
JP2016105567A (en) 2016-06-09

Similar Documents

Publication Publication Date Title
US11388152B2 (en) Manicoding for communication verification
US10277395B2 (en) Cryptographic key-generation with application to data deduplication
Tauman Kalai et al. Delegation for bounded space
Kosba et al. C $\emptyset $ C $\emptyset $: A Framework for Building Composable Zero-Knowledge Proofs
Schröder et al. Verifiable data streaming
JP5488596B2 (en) Signature device, signature verification device, anonymous authentication system, signature method, signature authentication method, and programs thereof
Tahir et al. A new secure and lightweight searchable encryption scheme over encrypted cloud data
JP5790319B2 (en) Signature verification apparatus, signature verification method, program, and recording medium
JP6069852B2 (en) Information processing apparatus, information processing method, and program
Hubácek et al. The journey from NP to TFNP hardness
Chung et al. Constant-round concurrent zero-knowledge from indistinguishability obfuscation
JP7312293B2 (en) Digital signature method, signature information verification method, related device and electronic device
JP2014158265A (en) Cryptographic devices and methods for generating and verifying commitments from linearly homomorphic signatures
Mahmoody et al. Limits of random oracles in secure computation
JP6261493B2 (en) Zero knowledge proof system and method, certifier device, verifier device, and program
Kiyoshima Round-optimal black-box commit-and-prove with succinct communication
JP5512601B2 (en) Information sharing system, method, apparatus and program
Magri et al. Everlasting UC commitments from fully malicious PUFs
Wang et al. New construction of blind signatures from braid groups
Freitag et al. Non-uniformly sound certificates with applications to concurrent zero-knowledge
Paterson et al. Security against related randomness attacks via reconstructive extractors
JP2010186003A (en) Electronic signature-verifying system, electronic signature device, verification device, electronic signature-verifying method, electronic signature method, verification method, electronic signature program, and verification program
Ye et al. Linkable ring signature scheme from NTRU lattice
Bernhard et al. Adaptive proofs of knowledge in the random oracle model
Kassem et al. Lattice-based direct anonymous attestation (LDAA)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171010

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171127

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: 20171212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171212

R150 Certificate of patent or registration of utility model

Ref document number: 6261493

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150