JP4845107B2 - Knowledge proof verification system - Google Patents

Knowledge proof verification system Download PDF

Info

Publication number
JP4845107B2
JP4845107B2 JP2006191300A JP2006191300A JP4845107B2 JP 4845107 B2 JP4845107 B2 JP 4845107B2 JP 2006191300 A JP2006191300 A JP 2006191300A JP 2006191300 A JP2006191300 A JP 2006191300A JP 4845107 B2 JP4845107 B2 JP 4845107B2
Authority
JP
Japan
Prior art keywords
knowledge
proof
calculating
modq
knowledge 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 - Fee Related
Application number
JP2006191300A
Other languages
Japanese (ja)
Other versions
JP2008022212A (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 JP2006191300A priority Critical patent/JP4845107B2/en
Publication of JP2008022212A publication Critical patent/JP2008022212A/en
Application granted granted Critical
Publication of JP4845107B2 publication Critical patent/JP4845107B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報セキュリティの技術分野に関し、特に暗号技術を用いた知識の証明及びその検証技術に関する。   The present invention relates to the technical field of information security, and more particularly to knowledge proofing using a cryptographic technique and its verification technique.

暗号技術を用いた知識の証明及びその検証方法として、従来、非特許文献1の“部分知識証明”が一般的に知られている。
本技術を用いて、ある位数qの有限群gの元P,G=sP,G=sPに対して(s,sはq未満の自然数)、少なくともs,sのどちらかを知っていることをその知識を漏らすことなく他者に証明することができる。以下でその処理手順を説明する。
Conventionally, “partial knowledge proof” of Non-Patent Document 1 is generally known as a proof of knowledge using a cryptographic technique and a verification method thereof.
Using this technique, for an element P, G 0 = s 0 P, G 1 = s 1 P of a finite group g of some order q (s 0 , s 1 is a natural number less than q), at least s 0 , S 1 can be proved to others without leaking that knowledge. The processing procedure will be described below.

(b∈{0,1})を知っている証明側は以下の手続きを行う。
[入力](P,G,G,b,s
1.q未満の自然数r,v,c1-bを生成する。
2.R=rP,R1-b=vP+c1-b1-bを計算する。
3.c=H(G‖G‖R‖R)を計算する。ここでHはq未満の自然数に写す一方向性ハッシュ関数、“‖”はデータ連結記号。
4.c=c−c1-b modq,z=r−c modq,z1-b=vを計算する。
5.(z,z,c,c)を証明情報とする。
The prover who knows s b (bε {0,1}) performs the following procedure.
[Input] (P, G 0 , G 1 , b, s b )
1. A natural number r, v, c 1-b less than q is generated.
2. Rb = rP, R1 -b = vP + c1 -b G1 -b is calculated.
3. c = H (G 0 ‖G 1 ‖R 0 ‖R 1 ) is calculated. Here, H is a one-way hash function copied to a natural number less than q, and “‖” is a data connection symbol.
4). c b = c−c 1−b modq, z b = r−c b s b modq, z 1−b = v is calculated.
5). Let (z 0 , z 1 , c 0 , c) be proof information.

検証側は以下の手続きを行う。
[入力](P,G,G,z,z,c,c)
1.R′=zP+c,R′=zP+(c−c)Gを計算する。
2.c′=H(G‖G‖R′‖R′)を計算する。
3.c=c′であれば検証成功とする。
The verification side performs the following procedure.
[Input] (P, G 0 , G 1 , z 0 , z 1 , c 0 , c)
1. R 0 '= z 0 P + c 0 G 0, R 1' = z 1 P + (c-c 0) to compute the G 1.
2. c ′ = H (G 0 ‖G 1 ‖R 0 ′ ‖R 1 ′) is calculated.
3. If c = c ′, the verification is successful.

本技術の適用例として、例えば、非特許文献2の“Verifiable Mix-net”がある。これは匿名性と投票結果の正当性を保証する電子投票に有効な技術として知られ、部分知識証明を繰り返し実行する(投票数をnとすると、ある定数tに対してtn[log n]回実行する)。   As an application example of the present technology, for example, there is “Verifiable Mix-net” of Non-Patent Document 2. This is known as an effective technique for electronic voting that guarantees anonymity and the validity of voting results, and executes partial knowledge proof repeatedly (assuming the number of votes is n, tn [log n] times for a certain constant t). Execute).

R.Cramer,I.Damgard,B.Schoenmakers,“Proofs of Partial Knowledge and Simplified Design of Witness Hiding Protocols,”CRYPTO’94,pp.174−187,1994.R. Cramer, I.D. Damgard, B.M. Schoenmakers, “Proofs of Partial Knowledge and Simplified Design of Witness Hiding Protocols,” CRYPTO '94, pp. 174-187, 1994. M.Abe,“Mix−Networks on Permutation Networks,”ASIACRYPT’99,pp.258−273,1999.M.M. Abe, “Mix-Networks on Permutation Networks,” ASIACRYPT'99, pp. 258-273, 1999.

部分知識証明を利用した暗号アプリケーションはいくつか知られており、その中では非特許文献2のVerifiable Mix-netのように多数のデータセットについて部分知識証明を実行するものが存在する。非特許文献1の部分知識証明は、少数のデータセット(例えば、(P,G,G,b,s)が1組のデータセットに該当する。)に対して実行するのであれば汎用パソコンなどで実行しても十分実用的といえるが、大規模投票のように多数のデータセットについて部分知識証明を実行する場合は、処理時間が掛かることや通信データサイズが膨大になることが課題といえる。 Several cryptographic applications using partial knowledge proof are known, and among them, there are those that execute partial knowledge proof on a large number of data sets, such as Verifiable Mix-net in Non-Patent Document 2. If the partial knowledge proof of Non-Patent Document 1 is executed for a small number of data sets (for example, (P, G 0 , G 1 , b, s b ) corresponds to one data set). Although it can be said that it is practical enough even if it is executed on a general-purpose personal computer etc., if partial knowledge proof is executed for a large number of data sets such as large-scale voting, processing time may be required and the communication data size may become enormous. It can be said that it is a problem.

本発明が解決しようとする課題は、多数(n組)のデータセットについて部分知識証明を実行する暗号アプリケーションの実用性を高めることであり、具体的には、従来のように単純に部分知識証明をn回繰り返し実行するよりも計算コスト、通信コストを削減することが可能となる知識証明検証システムを提供することにある。 The problem to be solved by the present invention is to improve the practicality of a cryptographic application that performs partial knowledge proof on a large number (n sets) of data sets. Is to provide a knowledge proof verification system that can reduce the calculation cost and the communication cost rather than repeatedly executing n.

以下に、本発明による知識証明及びその検証の基本的な処理手続きを説明する。
ある位数qの有限群gの元P,Gi,0=si,0P,Gi,1=si,1Pに対して(si,0,si,1はq未満の自然数,i=1,…,n)、証明側はs=si,biを知っているとする(b∈{0,1})。このとき、証明側は以下の手続きを行う。
Hereinafter, a basic processing procedure of knowledge certification and its verification according to the present invention will be described.
For an element P, G i, 0 = s i, 0 P, G i, 1 = s i, 1 P of a finite group g of order q, (s i, 0 , s i, 1 is less than q It is assumed that the natural number, i = 1,..., N), and the proof side knows s i = s i, bi (b i ε {0, 1}). At this time, the proof side performs the following procedure.

[入力](P,G1,0,…,Gn,0,G1,1,…,Gn,1,b,…,b,s,…,s,)
1.q未満の自然数(乱数)r,v,ci,1-biを生成する。
2.R=rP+Σ{i|bi=1}i,0i,0,=vP+Σ{i|bi=0}i,1i,1を計算する。ここで{i|b=1}はi=1,…,nについてb=1となるiの集合を意味するものとする。同様に、{i|b=0}はb=0となるiの集合を意味するものとする。
3.c=H(G1,0‖…‖Gn,0‖G1,1‖…‖Gn,1‖R‖R),c1,bi=c−c1,1-bi modq,i=2,…,nについてc=H(ci-1‖ci-1,0),ci,bi=ci,1-bi modqを計算する。
4.z=r−Σ{i|bi=0}i,0,z=v−Σ{i|bi=1}i,1を計算する。
5.(c,z,z,c1,0,…,cn,0)を証明情報とする。
[Input] (P, G 1,0, ... , G n, 0, G 1,1, ..., G n, 1, b 1, ..., b n, s 1, ..., s n,)
1. Generates natural numbers (random numbers) r, v, ci , 1-bi less than q.
2. R 0 = rP + Σ {i | bi = 1} c i, 0 G i, 0, R 1 = vP + Σ {i | bi = 0} c i, 1 G i, 1 is calculated. Here, {i | b i = 1} means a set of i where b i = 1 for i = 1,..., N. Similarly, {i | b i = 0} means a set of i where b i = 0.
3. c 1 = H (G 1,0 ‖ ... ‖ G n, 0 ‖G 1,1 ‖ ... ‖ G n, 1 ‖R 0 ‖R 1 ), c 1, bi = c 1 -c 1,1-bi For modq, i = 2,..., n, c i = H (c i−1 ‖c i−1,0 ), c i, bi = c i, 1−bi modq is calculated.
4). z 0 = r−Σ {i | bi = 0} c i, 0 s i , z 1 = v−Σ {i | bi = 1} c i, 1 s i are calculated.
5). Let (c 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) be proof information.

検証側は以下の手続きを行う。
[入力](P,G1,0,…,Gn,0,G1,1,…,Gn,1,c,z,z,c1,0,…,cn,0
1.c′=c,c1,0′=c1,0とし、c1,1′=c′−c1,0 modq,i=2,…,nについてc′=H(ci-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する。
2.R′=zP+Σi=1 n i,0i,0,′=zP+Σi=1 n i,1′Gi,1を計算する。
3.c″=H(G1,0‖…‖Gn,0‖G1,1‖…‖Gn,1‖R′‖R′)を計算する。
4.c=c″であれば検証成功とする。
The verification side performs the following procedure.
[Input] (P, G 1,0 ,..., G n, 0 , G 1,1 ,..., G n, 1 , c 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 )
1. and c 1 '= c 1, c 1,0' = c 1,0, c 1,1 '= c 1' -c 1,0 modq, i = 2, ..., n for c i '= H (c i− 1′‖c i−1,0 ), c i, 1 ′ = c i ′ −c i, 0 modq.
2. R 0 '= z 0 P + Σ i = 1 n, c i, 0 G i, 0, R 1' = z 1 P + Σ i = 1 n, calculates the c i, 1 'G i, 1.
3. c 1 ″ = H (G 1,0 ‖ ... ‖G n, 0 ‖G 1,1 ‖ ... ‖ G n, 1 ‖R 0 ′ ‖R 1 ′) is calculated.
4). If c 1 = c 1 ″, the verification is successful.

証明側、検証側の支配的な計算箇所はrPやzPといったスカラー倍演算となることが予想される。そこで計算コストをスカラー倍演算の処理回数で評価すると、従来技術では証明者が3n回、検証者が4n回のスカラー倍演算を行うのに対し、本発明では証明側がn+2回、検証側が2n+2回のスカラー倍演算で済む。また証明側が提示する証明情報のビット長は、従来方法では4n|q|であるのに対し、本発明では(n+3)|q|となる。 It is expected that the dominant calculation part on the proof side and the verification side is a scalar multiplication operation such as rP or z 0 P. Thus, when the calculation cost is evaluated by the number of times of scalar multiplication, the prover performs the scalar multiplication 3n times and the verifier performs 4n times the scalar multiplication in the conventional technique, whereas in the present invention, the proof side n + 2 times and the verification side 2n + 2 times. The scalar multiplication is sufficient. Further, the bit length of the certification information presented by the certification side is 4n | q | in the conventional method, but is (n + 3) | q | in the present invention.

以下、本発明の実施の形態について図面を用いて詳細に説明する。
[システム構成]
図1に本発明の実施の形態のシステム構成を示す。図1において、知識証明装置10及び知識検証装置20はネットワーク30等で接続されている。知識証明装置10は入力部11、乱数生成部12、群加算演算部13、スカラー倍演算部14、ハッシュ演算部15、四則演算部16、及び出力部17から構成されている。知識検証装置20は入力部21、群加算演算部22、スカラー倍演算部23、ハッシュ演算部24、四則演算部25、比較部26、及び出力部27から構成される。これら知識証明装置10及び知識検証装置20は、他に各部の動作を制御する制御部、入出力データや処理途中のデータなどを記憶する記憶部等を具備しているが、図1では省略してある。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[System configuration]
FIG. 1 shows a system configuration according to an embodiment of the present invention. In FIG. 1, a knowledge proof device 10 and a knowledge verification device 20 are connected by a network 30 or the like. The knowledge proof device 10 includes an input unit 11, a random number generation unit 12, a group addition operation unit 13, a scalar multiplication operation unit 14, a hash operation unit 15, an arithmetic operation unit 16, and an output unit 17. The knowledge verification device 20 includes an input unit 21, a group addition operation unit 22, a scalar multiplication operation unit 23, a hash operation unit 24, an arithmetic operation unit 25, a comparison unit 26, and an output unit 27. The knowledge proof device 10 and the knowledge verification device 20 further include a control unit that controls the operation of each unit, a storage unit that stores input / output data, data in the middle of processing, and the like, which are omitted in FIG. It is.

以下に、図1のシステム構成を用いて本発明の各実施の形態について説明する。
[第1の実施の形態]
本実施例では、ある位数qの有限群gの元P,Gi,0=si,0P,Gi,1=si,1Pに対して(si,0,si,1∈Z/qZ;i=1,…,n),少なくともsi,0,si,1のどちらかを知っている(以降、知っている値を単にsとする)ことをその知識を漏らすことなく他者に証明する場合について、非特許文献1の方法よりも計算コスト、通信コストに優れた方法を示す。図2は本実施例における知識証明装置10の処理手順、図5は知識検証装置20の処理手順を示す。
Each embodiment of the present invention will be described below using the system configuration of FIG.
[First Embodiment]
In the present embodiment, the elements P, G i, 0 = s i, 0 P, G i, 1 = s i, 1 P of a finite group g of order q are (s i, 0 , s i, 1 ∈ Z / qZ; i = 1,..., N), knowing at least one of s i, 0 , s i, 1 (hereinafter, the known value is simply referred to as s i ) A method superior in calculation cost and communication cost as compared with the method of Non-Patent Document 1 is shown in the case of proving to others without leaking. FIG. 2 shows a processing procedure of the knowledge proof device 10 in this embodiment, and FIG. 5 shows a processing procedure of the knowledge verification device 20.

知識証明装置10は、入力部11より(P,Gi,0,Gi,1,b,s)(i=1,…,n)を入力し(ステップ101),(b,s)(i=1,…,n)の知識を証明するために以下を実行する。
1.乱数生成部12により乱数r,v,ci,1-bi∈Z/qZを生成する(ステップ102)。
2.群加算演算部13及びスカラー倍演算部14によりR=rP+Σ{i|bi=1}i,0i,0,=vP+Σ{i|bi=0}i,1i,1を計算する(ステップ103)。ここで{i|b=1}はi=1,…,nについてb=1となるiの集合を意味する。{i|b=0}についても同様である。図3にこの処理の様子を示す。これは、他の実施例でも基本的に同様である。
3.ハッシュ演算部15及び四則演算部16により
=H(G1,0‖…‖Gn,0‖G1,1‖…‖Gn,1‖R‖R),c1,bi=c−c1,1-bi modq,i=2,…,nについてc=H(ci-1‖ci-1,0),ci,bi=c−ci,1-bi modqを計算する(ステップ104)。ここで、Hは一方向性ハッシュ関数、“‖”はデータ連結記号を意味する。
4.四則演算部15によりz=r−Σ{i|bi=0}i,0,z=v−Σ{i|bi=1}i,1を計算する(ステップ105)。図4にこの処理の様子を示す。これは、他の実施例でも基本的に同様である。
5.出力部17より(c,z,z,c1,0,…,cn,0)を証明情報として出力する(ステップ106)。
The knowledge proof device 10 inputs (P, G i, 0 , G i, 1 , b i , s i ) (i = 1,..., N) from the input unit 11 (step 101), (b i , To prove the knowledge of s i ) (i = 1,..., n):
1. The random number generator 12 generates random numbers r, v, c i, 1−bi εZ / qZ (step 102).
2. R 0 = rP + Σ {i | bi = 1} c i, 0 G i, 0, R 1 = vP + Σ {i | bi = 0} c i, 1 G i, 1 is calculated (step 103). Here, {i | b i = 1} means a set of i where b i = 1 for i = 1,. The same applies to {i | b i = 0}. FIG. 3 shows this process. This is basically the same in other embodiments.
3. C 1 = H (G 1,0 ‖ ... cG n, 0 ‖G 1,1 ‖ ... ‖ G n, 1 ‖R 0 ‖R 1 ), c 1, bi by the hash calculator 15 and the four arithmetic operators 16 = C 1 −c 1,1-bi modq, i = 2,..., N c i = H (c i−1 ‖c i−1,0 ), c i, bi = c i −c i, 1 -bi modq is calculated (step 104). Here, H means a one-way hash function, and “‖” means a data connection symbol.
4). The arithmetic operation unit 15 calculates z 0 = r−Σ {i | bi = 0} c i, 0 s i , z 1 = v−Σ {i | bi = 1} c i, 1 s i (step 105). ). FIG. 4 shows the state of this process. This is basically the same in other embodiments.
5). (C 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) is output from the output unit 17 as proof information (step 106).

次に証明情報を検証する手続きについて説明する。知識検証装置20は、入力部21より(P,Gi,0,Gi,1,c,z,z,ci,0)(i=1,…,n)を入力し(ステップ111)、知識証明装置10がGi,bi=sPを満たす(b,s)(i=1,…,n)を知っている(保持している)かどうか検証するために以下を実行する。
1.c′=cとし、四則演算部25及びハッシュ演算部24によりc1,1′=c′−c1,0 modq,i=2,…,nについてc′=H(ci-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する(ステップ112)。
2.群加算演算部22及びスカラー倍演算部23によりR′=zP+Σi=1 n i,0i,0,′=zP+Σi=1 ni,1′Gi,1を計算する(ステップ113)。
3.ハッシュ演算部24によりc″=H(G1,0‖…‖Gn,0‖G1,1‖…‖Gn,1‖R′‖R′)を計算する(ステップ114)。
4.比較部26によりc=c″が成り立つかどうか検証する(ステップ115)。そして、出力部27より、成り立てば検証成功として1を出力し、成り立たなければ検証失敗として0を出力する。
Next, a procedure for verifying certification information will be described. The knowledge verification device 20 inputs (P, G i, 0 , G i, 1 , c 1 , z 0 , z 1 , c i, 0 ) (i = 1,..., N) from the input unit 21 ( Step 111), for verifying whether the knowledge proof device 10 knows (holds) (b i , s i ) (i = 1,..., N) satisfying G i, bi = s i P Do the following:
1. c 1 ′ = c 1 and the four arithmetic operation unit 25 and the hash operation unit 24 perform c i ′ = H (c i for c 1,1 ′ = c 1 ′ −c 1,0 modq, i = 2,. -1 '‖c i-1,0), c i, 1' = c i '-c i, 0 modq calculates the (step 112).
2. R 0 ′ = z 0 P + Σ i = 1 n , c i, 0 G i, 0, R 1 ′ = z 1 P + Σ i = 1 n c i, 1 ′ G by the group addition operation unit 22 and the scalar multiplication operation unit 23. i, 1 is calculated (step 113).
3. The hash calculator 24 calculates c 1 ″ = H (G 1,0 ‖... G n, 0 1G 1,1 ‖... G n, 1 ‖R 0 ′ ‖R 1 ′) (step 114). .
4). Whether or not c 1 = c 1 ″ is satisfied is verified by the comparison unit 26 (step 115). If it is satisfied, 1 is output as a verification success, and if not, 0 is output as a verification failure.

いま計算コストをスカラー倍演算の処理回数で評価すると、非特許文献1の方法では知識証明装置が3n回、知識検証装置が4n回のスカラー倍演算を行うのに対し、本実施例では知識証明装置がn+2回、知識検証装置が2n+2回のスカラー倍演算で済む。また、証明情報となる知識証明装置の出力ビット長は、非特許文献1の方法では4n|q|であるのに対し、本実施例では(n+3)|q|となる。   If the calculation cost is evaluated by the number of times of scalar multiplication, the knowledge proof device performs 3n times and the knowledge verification device performs 4n times of scalar multiplication in the method of Non-Patent Document 1, whereas in this embodiment, knowledge proof A scalar multiplication operation is required for the device n + 2 times and the knowledge verification device 2n + 2 times. Further, the output bit length of the knowledge proof device as proof information is 4n | q | in the method of Non-Patent Document 1, whereas it is (n + 3) | q | in this embodiment.

[第2の実施の形態]
本実施例では、知識証明装置10は、実施例1の処理を実行するが、証明情報として(R,R,z,z,c1,0,…,cn,0)を出力する。
[Second Embodiment]
In the present embodiment, the knowledge proof device 10 executes the processing of the first embodiment, but uses (R 0 , R 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) as proof information. Output.

以下に本実施例の証明情報を検証する手続きについて説明する。図6は、本実施例における知識検証装置20の処理手順を示す。
知識検証装置20は、入力部21より(P,Gi,0,Gi,1,R,R,z,z i,0 )(i=1,…,n)を入力し(ステップ211)、知識証明装置10がGi,bi=sPを満たす(b,s)(i=1,…,n)を知っている(保持している)かどうか検証するために以下を実行する。
1.ハッシュ演算部24及び四則演算部25により
′=H(G1,0‖…‖Gn,0‖G1,1‖…‖Gn,1‖R‖R),c1,1′=c′−c1,0 modq,i=2,…,nについてc′=H(ci-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する(ステップ212)。
2.群加算演算部22及びスカラー倍演算部23によりR′=zP+Σi=1 ni,0i,0,R′=zP+Σi=1 ni,1′Gi,1を計算する(ステップ213)。
3.比較部26によりR=R′かつR=R′が成り立つかどうか検証する(ステップ214)。そして、出力部27より、成り立てば検証成功として1を出力し、成り立たなければ検証失敗として0を出力する。
A procedure for verifying the certification information of this embodiment will be described below. FIG. 6 shows a processing procedure of the knowledge verification device 20 in the present embodiment.
The knowledge verification device 20 receives (P, G i, 0 , G i, 1 , R 0 , R 1 , z 0 , z 1 , c i, 0 ) (i = 1,..., N) from the input unit 21. Whether or not the knowledge proof device 10 knows (holds) (b i , s i ) (i = 1,..., N) satisfying G i, bi = s i P To verify, do the following:
1. The hash calculation unit 24 and the four arithmetic operation units 25 make c 1 ′ = H (G 1,0 ‖ ... ‖G n, 0 ‖G 1,1 ‖ ... ‖ G n, 1 ‖R 0 ‖R 1 ), c 1, 1 ′ = c 1 ′ −c 1,0 modq, i = 2,..., N, c i ′ = H (c i−1 ′ ‖c i−1,0 ), c i, 1 ′ = c i ′ -Ci , 0 modq is calculated (step 212).
2. R 0 ′ = z 0 P + Σ i = 1 n c i, 0 G i, 0 , R 1 ′ = z 1 P + Σ i = 1 n c i, 1 ′ G i by the group addition operation unit 22 and the scalar multiplication operation unit 23. , 1 is calculated (step 213).
3. The comparison unit 26 verifies whether R 0 = R 0 ′ and R 1 = R 1 ′ are satisfied (step 214). Then, the output unit 27 outputs 1 as verification success if it is satisfied, and outputs 0 as verification failure if it does not hold.

本実施例は実施例1と目的は同じだが、知識証明装置10の出力情報や知識検証装置20の演算が異なる。即ち、出力情報のデータサイズや演算コスト等に応じて都合の良い方法を選択することが出来る。   This embodiment has the same purpose as that of the first embodiment, but the output information of the knowledge proof device 10 and the calculation of the knowledge verification device 20 are different. That is, a convenient method can be selected according to the data size of the output information, the calculation cost, and the like.

[第3の実施の形態]
本実施例では、ある位数qの有限群gの元P(j=1,…,n′),Gi,j,0=si,0,Gi,j,1=si,1に対して(si,0 i,1 ∈Z/qZ;i=1,…,n;j=1,…,n′),少なくともsi,0,si,1のどちらかを知っている(以降、知っている値を単にsとする)ことをその知識を漏らすことなく他者に証明する方法を示す。なお、先の実施例1は、本実施例においてn′=1に限定したケースである。即ち、本実施例は実施例1を拡張した例であり、具体的には、iを固定したとき、j=1,…,n′について(Pj,i,j,0,i,j,1)が同一の秘密情報(s,b)によって生成されていることを証明する場合に有効な方法である。
[Third Embodiment]
In this embodiment, an element P j (j = 1,..., N ′), G i, j, 0 = s i, 0 P j , G i, j, 1 = s of a finite group g of order q. For i, 1 P j (s i, 0 , s i, 1 ∈Z / qZ; i = 1,..., n; j = 1,..., n ′), at least s i, 0 , s i, I know either 1 (hereinafter, knowing only the s i values are) that shows a way to prove to others without leaking the knowledge. The first embodiment is a case where n ′ = 1 in the present embodiment. That is, the present embodiment is an example in which the first embodiment is expanded. Specifically, when i is fixed, j = 1,..., N ′ (P j, G i, j, 0, G i, This is an effective method for proving that j, 1 ) is generated by the same secret information (s i , b i ).

以下に本実施例の処理手順を説明する。図7は本実施例による知識証明装置10の処理手順、図8は知識検証装置20の処理手順を示す。
知識証明装置10は、入力部11より(P,Gi,j,0,Gi,j,1,b,s)(i=1,…,n;j=1,…,n′)を入力し(ステップ301)、(b,s)(i=1,…,n)の知識を証明するために以下を実行する。
1.乱数生成部12により乱数r,v,ci,1-bi∈Z/qZを生成する(ステップ302)。
2.群加算演算部13及びスカラー倍演算部14によりR0,j=rP+Σ{i|bi=1}i,0i,j,0,R1,j=vP+Σ{i|bi=0}=ci,1i,j,1を計算する(j=1,…,n′)(ステップ303)。
3.ハッシュ演算部15及び四則演算部16により
=H((G1,1,0‖…‖G1,n’,0)‖…‖(Gn,1,0‖…‖Gn,n’,0)‖(G1,1,1‖…‖G1,n’,1)‖…‖(Gn,1,1‖…‖Gn,n’,1)‖R0,1‖…‖R0,n’‖R1,1‖…‖R1,n’‖),c1,bi=c−c1,1-bi modq,i=2,…,nについてc=H(ci-1‖ci-1,0),ci,bi=c−ci,1-bi modqを計算する(ステップ304)。
4.四則演算部16によりz=r−Σ{i|bi=0}i,0,z=v−Σ{i|bi=1}=ci,1を計算する(ステップ305)。
5.出力部17より(c,z,z,c1,0,…,cn,0)を証明情報として出力する(ステップ306)。
The processing procedure of this embodiment will be described below. FIG. 7 shows a processing procedure of the knowledge proof device 10 according to the present embodiment, and FIG. 8 shows a processing procedure of the knowledge verification device 20.
The knowledge proof device 10 receives (P j , G i, j, 0 , G i, j, 1 , b i , s i ) (i = 1,..., N; j = 1,..., N from the input unit 11. ′) Is input (step 301) and the following is performed to prove the knowledge of (b i , s i ) (i = 1,..., N).
1. The random number generator 12 generates random numbers r, v, ci , 1-bi εZ / qZ (step 302).
2. R 0, j = rP j + Σ {i | bi = 1} c i, 0 G i, j, 0 , R 1, j = vP j + Σ {i | bi = 0} = ci , 1 Gi , j, 1 is calculated (j = 1,..., N ′) (step 303).
3. The hash calculation unit 15 and the four arithmetic operation units 16 make c 1 = H ((G 1,1,0 ‖ ... ‖G 1, n ', 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ', 0) || (G 1,1,1 || ... ‖G 1, n', 1 ) || ... ‖ (G n, 1,1 || ... ‖G n, n ', 1 ) ‖R 0,1 || ... ‖R 0, n '‖R 1,1 || ... ‖R 1, n' ||), c 1, bi = c 1 -c 1,1-bi modq, i = 2, ..., n for c i = H (c i-1 ‖c i-1,0 ), c i, bi = c i -c i, 1-bi modq is calculated (step 304).
4). The arithmetic operation unit 16 calculates z 0 = r−Σ {i | bi = 0} c i, 0 s i , z 1 = v−Σ {i | bi = 1} = c i, 1 s i (step 305).
5). The output unit 17 outputs (c 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) as proof information (step 306).

次に証明情報を検証する手続きについて説明する。知識検証装置20は、入力部21より(P,Gi,j,0,Gi,j,1,c,z,z,ci,0)(i=1,…,n;j=1,…,n′)を入力し(ステップ311)、知識証明装置10がGi,j,bi=s(i=1,…,n;j=1,…,n′)を満たす(b,s)(i=1,…,n)を知っている(保持している)かどうか検証するために以下を実行する。
1.c′=cとし、四則演算部25及びハッシュ演算部24によりc1,1′=c′−c1,0 modq,i=2,…,nについてc′=H(ci-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する(ステップ312)。
2.群加算演算部22及びスカラー倍演算部23によりR0,j′=z+Σi=1 ni,0i,j,0,R1,j′=z+Σi=1 ni,1′Gi,j,1を計算する(j=1,…,n′)(ステップ313)。
3.ハッシュ演算部24により
″=H((G1,1,0‖…‖G1,n’,0)‖…‖(Gn,1,0‖…‖Gn,n’,0)‖(G1,1,1‖…‖G1,n’,1)‖…‖(Gn,1,1‖…‖Gn,n’,1)‖R0,1′‖…‖R0,n’′‖R1,1′‖…‖R1,n’′‖)を計算する(ステップ314)。
4.比較部26によりc=c″が成り立つかどうか検証する(ステップ315)。そして、出力部27より、成り立てば検証成功として1を出力し、成り立たなければ検証失敗として0を出力する。
Next, a procedure for verifying certification information will be described. The knowledge verification device 20 receives (P j , G i, j, 0 , G i, j, 1 , c 1 , z 0 , z 1 , c i, 0 ) (i = 1,..., N) from the input unit 21. J = 1,..., N ′) (step 311), and the knowledge proving apparatus 10 gives G i, j, bi = s i P j (i = 1,..., N; j = 1,. In order to verify whether (b i , s i ) (i = 1,..., N) satisfying (′) is satisfied (held), the following is executed.
1. c 1 ′ = c 1 and the four arithmetic operation unit 25 and the hash operation unit 24 perform c i ′ = H (c i for c 1,1 ′ = c 1 ′ −c 1,0 modq, i = 2,. -1 '‖c i-1,0), c i, 1' = c i '-c i, 0 modq calculates the (step 312).
2. R 0, j ′ = z 0 P j + Σi = 1 n c i, 0 G i, j, 0 , R 1, j ′ = z 1 P j + Σ i by the group addition operation unit 22 and the scalar multiplication operation unit 23. = 1 n c i, 1 ′ G i, j, 1 is calculated (j = 1,..., N ′) (step 313).
3. The hash calculation unit 24 uses c 1 ″ = H ((G 1,1,0 ‖ ... ‖G 1, n ′, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ′, 0 ) ‖ (G 1,1,1 ‖ ... ‖G 1, n ', 1 ) ‖ ... ‖ (G n, 1,1 ‖ ... ‖ G n, n', 1 ) ‖R 0,1 ′ ‖… ‖R 0, n '' ‖R 1,1 '|| ... ‖R 1, n''||) is calculated (step 314).
4). The comparator 26 verifies whether c 1 = c 1 ″ is satisfied (step 315). Then, the output unit 27 outputs 1 as a verification success if it is satisfied, and outputs 0 as a verification failure if it does not hold.

以上の手続きより、実施例1の拡張として、i=1,…,nについて(P,Gi,j,0,Gi,j,1)(j=1,…,n′)が同一の秘密情報(s,b)によって生成されている場合に、その事実を証明することが出来る。 From the above procedure, as an extension of the first embodiment, (P j , G i, j, 0 , G i, j, 1 ) (j = 1,..., N ′) is the same for i = 1,. If the secret information (s i , b i ) is generated, the fact can be proved.

[第4の実施の形態]
本実施例では、知識証明装置10は、実施例3の処理を実行するが、証明情報として(R0,1,…,R0,n’,R1,1,…,R1,n’,z,z,c1,0,…,cn,0)を出力する。
[Fourth Embodiment]
In the present embodiment, the knowledge proof device 10 executes the processing of the third embodiment, but as proof information (R 0,1 ,..., R 0, n ′ , R 1,1 ,..., R 1, n ′ , Z 0 , z 1 , c 1,0 ,..., C n, 0 ) are output.

以下に、本実施例の証明情報を検証する手続きについて説明する。図9は本実施例における知識検証装置20の処理手順を示す。
知識証明装置20は、入力部11より(P,Gi,j,0,Gi,j,1,R0,j,R1,j,z,z,ci,0)(i=1,…,n;j=1,…,n′)を入力し(ステップ411)、知識証明装置10がGi,j,bi=s(i=1,…,n;j=1,…,n′)を満たす(b,s)(i=1,…,n)を知っている(保持している)かどうか検証するために以下を実行する。
1.ハッシュ演算部24及び四則演算部25により
′=H((G1,1,0‖…‖G1,n’,0)‖…‖(Gn,1,0‖…‖Gn,n’,0)‖(G1,1,1‖…‖G1,n’,1)‖…‖(Gn,1,1‖…‖Gn,n’,1)‖ 0,1 ‖…‖R 0,n’ ‖R 1,1 ‖…‖R 1,n’ ),c1,1′=c′−c1,0 modq,i=2,…,nについてc′=H(c1-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する(ステップ412)。
2.群加算演算部22及びスカラー倍演算部23によりR0,j′=z+Σi=1 ni,0i,j,0,R1,j′=z+Σi=1 ni,1′Gi,j,1を計算する(j=1,…,n′)(ステップ413)。
3.比較部26により、すべてのjについてR0,j=R0,j′かつR1,j=R1,j′が成り立つかどうか検証する(ステップ414)。そして、出力部27より、成り立てば検証成功として1を出力し、成り立たなければ検証失敗として0を出力する。
Hereinafter, a procedure for verifying the certification information of this embodiment will be described. FIG. 9 shows a processing procedure of the knowledge verification device 20 in this embodiment.
The knowledge proof device 20 is input from the input unit 11 (P j , G i, j, 0 , G i, j, 1 , R 0, j , R 1, j , z 0 , z 1 , c i, 0 ) ( i = 1,..., n; j = 1,..., n ′) are input (step 411), and the knowledge proving apparatus 10 gives G i, j, bi = s i P j (i = 1,..., n; In order to verify whether (b i , s i ) (i = 1,..., n) satisfying (holding) satisfying j = 1,.
1. The hash calculation unit 24 and the four arithmetic operation units 25 make c 1 ′ = H ((G 1,1,0 ‖ ... ‖G 1, n ′, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ', 0) || (G 1, 1, 1 || ... ‖G 1, n', 1 ) || ... || (G n, 1, 1 || ... ‖G n, n ', 1 ) ‖ R 0, 1 ‖ ... ‖R 0, n ' ‖R 1,1 ‖ ... ‖R 1, n' ), c 1,1 '= c 1 ' -c 1,0 modq, i = 2, ..., n c 1 ' = H (c 1-1 '‖c i -1,0), c i, 1' = c i '-c i, 0 modq calculates the (step 412).
2. R 0, j ′ = z 0 P j + Σi = 1 n c i, 0 G i, j, 0 , R 1, j ′ = z 1 P j + Σ i by the group addition operation unit 22 and the scalar multiplication operation unit 23. = 1 n c i, 1 ′ G i, j, 1 is calculated (j = 1,..., N ′) (step 413).
3. The comparison unit 26 verifies whether R 0, j = R 0, j ′ and R 1, j = R 1, j ′ hold for all j (step 414). Then, the output unit 27 outputs 1 as verification success if it is satisfied, and outputs 0 as verification failure if it does not hold.

本実施例は実施例3と目的は同じだが、知識証明装置10の出力情報や知識検証装置26の演算が異なる。即ち、出力情報のデータサイズや演算コスト等に応じて都合の良い方法を選択することが出来る。   The purpose of the present embodiment is the same as that of the third embodiment, but the output information of the knowledge proof device 10 and the operation of the knowledge verification device 26 are different. That is, a convenient method can be selected according to the data size of the output information, the calculation cost, and the like.

[第5の実施の形態]
本実施例では、ある位数qの有限群gの元P,Gi,j,0=si,j,0P,Gi,j,1=si,j,1Pに対して(si,j,0,si,j,1∈Z/qZ;i=1,…,n;j=1,…,n″),各jについて少なくともsi,j,0,si,j,1のどちらかを知っている(以降、知っている値を単にsi,jとする)ことをその知識を漏らすことなく他者に証明する方法を示す。なお実施例1は、本実施例においてn″=1に限定したケースである。即ち、本実施例も実施例1を拡張した例であり、具体的には、iを固定したとき、j=1,…,n″について(Gi,j,0,Gi,j,1)が同一の秘密情報bによって生成されていることを証明する場合に有効な方法である。実施例3と異なる点は、基底がPでなく共通のPを用いていること、及び各jについてsi,jは等しい必要がないことである。
[Fifth Embodiment]
In this embodiment, for an element P, G i, j, 0 = s i, j, 0 P, G i, j, 1 = s i, j, 1 P of a finite group g of order q ( s i, j, 0 , s i, j, 1 ∈Z / qZ; i = 1,..., n; j = 1,..., n ″), at least s i, j, 0 , s i, A method for proving to others that the user knows either j, 1 (hereinafter, the known value is simply referred to as s i, j ) without leaking that knowledge is shown in Example 1. This is a case where n ″ = 1 in the embodiment. That is, this embodiment is also an example in which the first embodiment is expanded. Specifically, when i is fixed, j = 1,..., N ″ (G i, j, 0 , G i, j, 1 ) Is an effective method for proving that it is generated by the same secret information b i . The difference from the third embodiment is that the basis is not P j but a common P, and For j, s i, j need not be equal.

以下に、本実施例の処理手順を説明する。図10は本実施例における知識証明装置10の処理手順、図11は知識検証装置20の処理手順を示す。
知識証明装置10は、入力部11より(P,Gi,j,0,Gi,j,1,b,si,j)(i=1,…,n;j=1,…,n″)を入力し(ステップ501)、(b,si,j)(i=1,…,n;j=1,…,n″)の知識を証明するために以下を実行する。
1.ハッシュ演算部15によりe=H((G1,1,0‖…‖G1,n”,0)‖…‖(Gn,1,0‖…‖Gn,n”,0)‖(G1,1,1‖…‖G1,n”,1)‖…‖(Gn,1,1‖Gn,n”,1‖j)を計算する(ステップ502)。
2.乱数生成部12により乱数r,v, i,1-bi ∈Z/qZを生成する(ステップ503)。
3.群加算演算部13及びスカラー倍演算部14によりR=rP+Σ{i|bi=1}i,0Σj=1 n″ei,j,0,R=vP+Σ{i|bi=0}i,1Σj=1 n″ei,j,1を計算する(ステップ504)。
4.ハッシュ演算部15及び四則演算部16により
=H((G1,1,0‖…‖G1,n”,0)‖…‖(Gn,1,0‖…‖Gn,n”,0)‖(G1,1,1‖…‖G1,n”,1)‖…‖(Gn,1,1‖…‖Gn,n”,1)‖R‖R),ci,bi=c−c1,1-bi modq,i=2についてc=H(ci-1‖ci-1,0),ci,bi=c−ci,1-bi modqを計算する(ステップ505)。
5.四則演算部16によりz=r−Σ{i|bi=0}i,0Σj=1 n″ei,j,z=v−Σ{i|bi=1}i,1Σj=1 n″ei,jを計算する(ステップ506)。
6.出力部17より(c,z,z,c1,0,…,cn,0)を証明情報として出力する(ステップ507)。
Below, the processing procedure of a present Example is demonstrated. FIG. 10 shows the processing procedure of the knowledge proof device 10 in this embodiment, and FIG. 11 shows the processing procedure of the knowledge verification device 20.
The knowledge proof device 10 receives (P, G i, j, 0 , G i, j, 1 , b i , s i, j ) (i = 1,..., N; j = 1,. n ″) (step 501), and to prove the knowledge of (b i , s i, j ) (i = 1,..., n; j = 1,..., n ″), the following is performed.
1. The hash calculator 15 makes e j = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖… ‖ (G n, 1,0 ‖ ... ‖G n, n ″, 0 ) ‖ (G 1, 1, 1 || ... ‖G 1, n ", 1 ) || ... || (G n, 1,1 ‖G n, n", 1 ‖j) calculating a (step 502).
2. The random number generator 12 generates random numbers r, v, ci , 1-bi ∈ Z / qZ (step 503).
3. R 0 = rP + Σ {i | bi = 1} c i, 0 Σj = 1 n ″ e j G i, j, 0 , R 1 = vP + Σ {i | bi = 0} c i, 1 Σj = 1 n ″ e j G i, j, 1 is calculated (step 504).
4). The hash calculation unit 15 and the four arithmetic operation units 16 make c 1 = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ”, 0 ) ‖ (G 1,1,1 ‖… ‖G 1, n”, 1 ) ‖… ‖ (G n, 1,1 ‖… ‖G n, n ”, 1 ) ‖R 0 ‖R 1 ), C i, bi = c 1 −c 1,1-bi modq, for i = 2, c i = H (c i−1 ‖c i−1,0 ), c i, bi = c i −c i , 1-bi modq is calculated (step 505).
5). The four arithmetic units 16 make z 0 = r−Σ {i | bi = 0} c i, 0 Σj = 1 n ″ e j si , j , z 1 = v−Σ {i | bi = 1} c i , 1Σj = 1n ″ e j s i, j is calculated (step 506).
6). (C 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) are output from the output unit 17 as proof information (step 507).

次に、本実施例の証明情報を検証する手続きについて説明する。知識検証装置20は,入力部21より(P,Gi,j,0,Gi,j,1,c1,z0,1,i,0)(i=1,…,n;j=1,…,n″)を入力し(ステップ511)、知識証明装置10がGi,j,bi=si,jP(i=1,…,n;j=1,…,n″)を満たす(b,si,j)(i=1,…,n;j=1,…,n″)を知っている(保持している)かどうか検証するために以下を実行する。
1.ハッシュ演算部24により
′=H((G1,1,0‖…‖G1,n”,0)‖…‖(Gn,1,0‖…‖Gn,n”,0)‖(G1,1,1‖…‖G1,n”,1)‖…‖(Gn,1,1‖…‖Gn,n”,1)‖j)を計算する(i=1,…,n)(ステップ512)。
2.c′=cとし、四則演算部25及びハッシュ演算部24によりc1,1′=c′−c1,0 modq,i=2,…,nについてc′=H(ci-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する(ステップ513)。
3.群加算演算部22及びスカラー倍演算部23によりR′=zP+Σi=1 ni,0Σj=1 n”′Gi,j,0,R′=zP+Σi=1 ni,1′Σj=1 n”′Gi,j,1を計算する(ステップ514)。
4.ハッシュ演算部24により
″=H((G1,1,0‖…‖G1,n”,0)‖…‖(Gn,1,0‖…‖Gn,n”,0)‖(G1,1,1‖…‖G1,n”,1)‖…‖(Gn,1,1‖…‖Gn,n”,1)‖R′‖R′)を計算する(ステップ515)。
5.比較部26によりc=c″が成り立つかどうか検証する(ステップ516)。そして、出力部27より、成り立てば検証成功として1を出力し、成り立たなければ検証失敗として0を出力する。
Next, a procedure for verifying the certification information of this embodiment will be described. Knowledge verification device 20, the input unit 21 (P, G i, j , 0, G i, j, 1, c 1, z 0, z 1, c i, 0) (i = 1, ..., n; j = 1,..., n ″) (step 511), and the knowledge proving apparatus 10 gives G i, j, bi = s i, j P (i = 1,..., n; j = 1,. To verify whether (b i , s i, j ) (i = 1,..., N; j = 1,..., N ″) is satisfied (held) To do.
1. The hash calculator 24 makes e j ′ = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ″, 0 ) ‖ (G 1,1,1 ‖ ... ‖G 1, n ″, 1 ) ‖ ... ‖ (G n, 1,1 ‖ ... ‖G n, n ″, 1 ) ‖j) is calculated (i = 1) ,..., N) (step 512).
2. c 1 ′ = c 1 and the four arithmetic operation unit 25 and the hash operation unit 24 perform c i ′ = H (c i for c 1,1 ′ = c 1 ′ −c 1,0 modq, i = 2,. -1 '‖c i-1,0), c i, 1' = c i '-c i, 0 modq calculates the (step 513).
3. The group addition operation unit 22 and the scalar multiplication operation unit 23 make R 0 ′ = z 0 P + Σ i = 1 n c i, 0 Σ j = 1 n ” e j ′ G i, j, 0 , R 1 ′ = z 1 P + Σ i = 1 n c i, 1′Σj = 1 n ″ e j ′ G i, j, 1 is calculated (step 514).
4). The hash calculator 24 makes c 1 ″ = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ″, 0 ) ‖ (G 1,1,1 ‖… ‖ G 1 , n ″, 1 ) ‖… ‖ (G n, 1,1 ‖… ‖ G n, n ″, 1 ) ‖R 0 ′ ‖R 1 ′) Calculate (step 515).
5). The comparator 26 verifies whether or not c 1 = c 1 ″ is satisfied (step 516). Then, the output unit 27 outputs 1 as a verification success, and outputs 0 as a verification failure when it does not hold.

以上の手続きより、実施例1の拡張として、i=1,…,nについて(Gi,j,0,Gi,j,1)(j=1,…,n″)が同一の秘密情報bによって生成されている場合に、その事実を証明することが出来る。 From the above procedure, as an extension of the first embodiment, confidential information with the same (G i, j, 0 , G i, j, 1 ) (j = 1,..., N ″) is the same for i = 1,. If it is generated by b i , the fact can be proved.

[第6の実施の形態]
本実施例では、知識証明装置10は、実施例5の処理を実行するが、証明情報として(R,R,z,z,c1,0,…,cn,0)を出力する。
[Sixth Embodiment]
In the present embodiment, the knowledge proof device 10 executes the processing of the fifth embodiment, but uses (R 0 , R 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) as proof information. Output.

以下に、本実施例の証明情報を検証する手続きについて説明する。図12は本実施例における知識検証装置20の処理手順を示す。
知識検証装置20は、入力部21より(P,Gi,j,0,Gi,j,1,R,R,z,z i,0 )(i=1,…,n;j=1,…,n″)を入力し(ステップ611)、知識証明装置10が i,j,bi =si,jP(i=1,…,n;j=1,…,n″を満たす(b,si,j)(i=1,…,n;j=1,…,n″)を知っている(保持している)かどうか検証するために以下を実行する。
1.ハッシュ演算部24により
′=H((G1,1,0‖…‖G1,n”,0)‖…‖(Gn,1,0‖…‖Gn,n”,0)‖(G1,1,1‖…‖G1,n”,1)‖…‖(Gn,1,1‖…‖Gn,n”,1‖j)を計算する(j=1,…,n″)(ステップ612)。
2.ハッシュ演算部24及び四則演算部25により
′=H((G1,1,0‖…‖G1,n”,0)‖…‖(Gn,1,0‖…‖Gn,n”,0)‖(G1,1,1‖…‖G1,n”,1)‖…‖(Gn,1,1‖…‖Gn,n”,1)‖R‖R),c1,1′=c′−c1,0 modq,i=2,…,nについてc′=H(ci-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する(ステップ613)。
3.群加算演算部22及びスカラー倍演算部24により、R′=zP+Σi=1 ni,0Σj=1 n”′Gi,j,0,R′=zP+Σi=1 ni,1′Σj=1 n”′Gi,j,1を計算する(ステップ614)。
4.比較部26により、R=R′かつR=R′が成り立つかどうか検証する(ステップ615)。そして、出力部27より、成り立てば検証成功として1を出力し、成り立たなければ検証失敗として0を出力する。
Hereinafter, a procedure for verifying the certification information of this embodiment will be described. FIG. 12 shows a processing procedure of the knowledge verification apparatus 20 in this embodiment.
The knowledge verification device 20 receives (P, G i, j, 0 , G i, j, 1 , R 0 , R 1 , z 0 , z 1 , c i, 0 ) (i = 1,...) From the input unit 21. , N; j = 1,..., N ″) (step 611), and the knowledge proving apparatus 10 gives G i, j, bi = s i, j P (i = 1,..., N; j = 1, .., N ″ satisfy (b i , s i, j ) (i = 1,..., N; j = 1,..., N ″) to verify whether they know (hold) Execute.
1. The hash calculator 24 makes e j ′ = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ″, 0 ) ‖ (G 1,1,1 ‖ ... ‖G 1, n ″, 1 ) ‖ ... ‖ (G n, 1,1 ‖ ... ‖G n, n ″, 1 ) ‖j) is calculated (j = 1) ,..., N ″) (step 612).
2. The hash calculation unit 24 and the four arithmetic operation units 25 make c 1 ′ = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ", 0) || (G 1,1,1 || ... ‖G 1, n", 1 ) || ... ‖ (G n, 1,1 || ... ‖G n, n ", 1 ) ‖R 0 ‖R 1 ), c 1,1 ′ = c 1 ′ −c 1,0 modq, i = 2,..., N c 1 ′ = H (c i−1 ′ ‖c i−1,0 ), c i, 1 '= c i' -c i , 0 modq calculates the (step 613).
3. R 0 ′ = z 0 P + Σ i = 1 n c i, 0 Σ j = 1 n ” e j ′ G i, j, 0 , R 1 ′ = z 1 P + Σ i = 1 n c i, 1 'Σ j = 1 n "e j' G i, j, 1 to calculate the (step 614).
4). The comparison unit 26 verifies whether R 0 = R 0 ′ and R 1 = R 1 ′ are satisfied (step 615). Then, the output unit 27 outputs 1 as verification success if it is satisfied, and outputs 0 as verification failure if it does not hold.

本実施例は実施例5と目的は同じだが、知識証明装置10の出力情報や知識検証装置20の演算が異なる。即ち、出力情報のデータサイズや演算コスト等に応じて都合の良い方法を選択することが出来る。   The purpose of the present embodiment is the same as that of the fifth embodiment, but the output information of the knowledge proof device 10 and the calculation of the knowledge verification device 20 are different. That is, a convenient method can be selected according to the data size of the output information, the calculation cost, and the like.

[第7の実施の形態]
本実施例では、ある位数qの有限群gの元P,Q,Gi,0=si,0P,Gi,1=si,1P,Hi,0=si,0Q,Hi,1=si,1Q,Xi,0=ti,0P,Xi,1=ti,1P,Yi,0=ti,0Q,Yi,1=ti,1Qに対して(si,0,si,1,ti,0,ti,1∈Z/qZ;i=1,…,n),少なくとも(si,0,ti,0),(si,1,ti,1)のどちらかを知っている(以降、知っている値を単に(s,t)とする)ことをその知識を漏らすことなく他者に証明することを考える。
[Seventh Embodiment]
In this embodiment, elements P, Q, G i, 0 = s i, 0 P, G i, 1 = s i, 1 P, H i, 0 = s i, 0 of a finite group g of order q. Q, H i, 1 = s i, 1 Q, X i, 0 = t i, 0 P, X i, 1 = t i, 1 P, Y i, 0 = t i, 0 Q, Y i, 1 = T i, 1 Q (s i, 0 , s i, 1 , t i, 0 , t i, 1 ∈Z / qZ; i = 1,..., N), at least (s i, 0 , leaking that knowledge of either (t i, 0 ) or (s i, 1 , t i, 1 ) (hereinafter, the known value is simply referred to as (s i , t i )) Think to prove to others.

これは、実施例3においてn′=2とし(すなわち、P=P,Q=P)、実施例5においてn″=2として(すなわち、si,o=si,1,0,si,1=si,1,1,ti,o=si,2,0,ti,1=si,2,1)、これらを組み合わせた場合に相当する。 This is because n ′ = 2 in Example 3 (ie, P = P 1 , Q = P 2 ) and n ″ = 2 in Example 5 (ie, s i, o = s i, 1,0 , s i, 1 = s i, 1,1 , t i, o = s i, 2,0 , t i, 1 = s i, 2,1 ), which corresponds to a combination of these.

また、n=1とすれば、次の非特許文献3と同様の問題である。ここでは、非特許文献3の方法をi=1,…,nとn(>1)回繰り返して実行する方法よりも計算コスト、通信コストに優れた方法を示す。
非特許文献3:G.Yamamoto,K.Chida,A.Nascimento,K.Suzuki,and S.Uchiyama,“Efficient,Non−optimistic Secure Circuit Evaluation Based on the ElGamal Encryption,”WISA 2005,pp.328−342,2000.
If n = 1, the problem is the same as in Non-Patent Document 3 below. Here, a method superior in calculation cost and communication cost is shown as compared with a method of repeatedly executing the method of Non-Patent Document 3 i = 1,..., N and n (> 1) times.
Non-Patent Document 3: G.A. Yamamoto, K .; Chida, A .; Nascimento, K.M. Suzuki, and S.R. Uchiyama, “Efficient, Non-optimistic Security Circuit Evaluation on the ElGamal Encryption,” WISA 2005, pp. 328-342, 2000.

以下に、本実施例の処理手順を説明する。図13は本実施例における知識証明装置10の処理手順、図14は知識検証装置20の処理手順を示す。なお、以下でR,S,R,Sは実施例3で云えばR0,1,R0,2,R1,1,R1,2に対応する。
知識証明装置10は、入力部11より(P,Q,Gi,0,Gi,1,Hi,0,Hi,1,Xi,0,Xi,1,Yi,0,Yi,1,b,s,t)(i=1,…,n)を入力し(ステップ701),(b,s,t)(i=1,…,n)の知識を証明するために以下を実行する。
1.ハッシュ演算部15により
e=H((G1,0‖…‖Gn,0)‖(G1,1‖…‖Gn,1)‖(H1,0‖…‖Hn,0)‖(H1,1‖…‖Hn,1)‖(X1,0‖…‖Xn,0)‖(X1,1‖…‖Xn,1)‖(Y1,0‖…‖Yn,0)‖(Y1,1‖…‖Yn,1))を計算する(ステップ702)。
2.乱数生成部12により乱数r,v,ci,1-bi∈Z/qZを生成する(ステップ703)。
3.群加算演算部13及びスカラー倍演算部14により、R=rP+Σ{i|bi=1}i,1-bi(Gi,1-bi+eXi,1-bi),S=rQ+Σ{i|bi=1}i,1-bi(Hi,1-bi+eYi,1-bi),R=vP+Σ{i|bi=0}i,1-bi(Gi,1-bi+eXi,1-bi),S=vQ+Σ{i|bi=0}i,1-bi(Hi,1-bi+eYi,1-bi)を計算する(ステップ704)。
4.ハッシュ演算部15及び四則演算部16により
=H((G1,0‖…‖Gn,0)‖(G1,1‖…‖Gn,1)‖(H1,0‖…‖Hn,0)‖(H1,1‖…‖Hn,1)‖(X1,0‖…‖Xn,0)‖(X1,1‖…‖Xn,1)‖(Y1,0‖…‖Yn,0)‖(Y1,1‖…‖Yn,1)‖R‖S‖R‖S),c1,bi=c−c1,1-bi modq,i=2,…,nについてc=H(ci-1‖ci-1,0),ci,bi=c−ci,1-bi modqを計算する(ステップ705)。
5.四則演算部16により、z=r−Σ{i|bi=0}i,0(s+eti),z=v−Σ{i|bi=1}i,1(s+eti)を計算する(ステップ706)。
6.出力部17より(c,z,z,c1,0,…,cn,0)を証明情報として出力する(ステップ707)。
Below, the processing procedure of a present Example is demonstrated. FIG. 13 shows a processing procedure of the knowledge proof device 10 in this embodiment, and FIG. 14 shows a processing procedure of the knowledge verification device 20. In the following description, R 0 , S 0 , R 1 and S 1 correspond to R 0,1 , R 0,2 , R 1,1 and R 1,2 in the third embodiment.
The knowledge proof device 10 is input from the input unit 11 (P, Q, G i, 0 , G i, 1 , H i, 0 , H i, 1 , X i, 0 , X i, 1 , Y i, 0 , Y i, 1 , b i , s i , t i ) (i = 1,..., N) are input (step 701), (b i , s i , t i ) (i = 1,..., N) To prove your knowledge, do the following:
1. The hash calculation unit 15 makes e = H ((G 1,0 ‖... G n, 0 ) ‖ (G 1,1 ‖... G n, 1 ) ‖ (H 1,0 ‖... ‖ H n, 0 ) ‖ (H 1,1 ‖ ... ‖H n, 1 ) ‖ (X 1,0 ‖ ... ‖X n, 0 ) ‖ (X 1,1 ‖ ... ‖X n, 1 ) ‖ (Y 1,0 ‖ ... ‖Y n, 0 ) ‖ (Y 1,1 ‖... ‖Y n, 1 )) is calculated (step 702).
2. The random number generator 12 generates random numbers r, v, ci , 1-bi ∈ Z / qZ (step 703).
3. R 0 = rP + Σ {i | bi = 1} ci , 1-bi (G i, 1-bi + eX i, 1-bi ), S 0 = rQ + Σ { i | bi = 1} c i, 1-bi (H i, 1-bi + eY i, 1-bi ), R 1 = vP + Σ {i | bi = 0} c i, 1-bi (G i, 1- bi + eX i, 1-bi ), S 1 = vQ + Σ {i | bi = 0} c i, 1-bi (H i, 1-bi + eY i, 1-bi) calculating a (step 704).
4). The hash calculation unit 15 and the four arithmetic operation units 16 make c 1 = H ((G 1,0 ‖ ... ‖G n, 0 ) ‖ (G 1,1 ‖ ... ‖G n, 1 ) ‖ (H 1,0 ‖ ... ‖H n, 0 ) ‖ (H 1,1 ‖… ‖H n, 1 ) ‖ (X 1,0 ‖… ‖X n, 0 ) ‖ (X 1,1 ‖… ‖ X n, 1 ) ‖ ( Y 1,0 ‖ ... ‖Y n, 0 ) ‖ (Y 1,1 ‖ ... ‖ Y n, 1 ) ‖ R 0 ‖S 0 ‖R 1 = S 1 ), c 1, bi = c 1 −c 1 , 1−bi modq, i = 2,..., N, c i = H (c i−1 ‖c i−1,0 ), c i, bi = c i −c i, 1−bi modq (Step 705).
5). The four arithmetic units 16 make z 0 = r−Σ {i | bi = 0} c i, 0 (s i + et i ), z 1 = v−Σ {i | bi = 1} c i, 1 (s i + Et i ) is calculated (step 706).
6). (C 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) are output from the output unit 17 as proof information (step 707).

次に、証明情報を検証する手続きについて説明する。知識検証装置20は、入力部21より(P,Q,Gi,0,Gi,1,Hi,0,Hi,1,Xi,0,Xi,1,Yi,0,Yi,1,c,z,z,c1,0,…,cn,0)(i=1,…,n)を入力し(ステップ711)、知識証明装置10が、Gi,bi=sP,Hi,bi=sQ,Xi,bi=tP,Yi,bi=tQ(i=1,…,n)を満たす(b,s,t)(i=1,…,n)を知っている(保持している)かどうか検証するために以下を実行する。
1.ハッシュ演算部24により
e′=H((G1,0‖…‖Gn,0)‖(G1,1‖…‖Gn,1)‖(H1,0‖…‖Hn,0)‖(H1,1‖…‖Hn,1)‖(X1,0‖…‖Xn,0)‖(X1,1‖…‖Xn,1)‖(Y1,0‖…‖Yn,0)‖(Y1,1‖…‖Yn,1))を計算する(ステップ712)。
2.c′=cとし、四則演算部25及びハッシュ演算部24によりc1,1′=c′−c1,0 modq,i=2,…,nについてc′=H(ci-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する(ステップ713)。
3.群加算演算部22及びスカラー倍演算部23により
′=zP+Σi=1 ni,0(Gi,0+e′Xi,0),S′=zQ+Σi=1 ni,0(Hi,0+e′Yi,0),R′=zP+Σi=1 ni,1′(Gi,1+e′Xi,1),S′=zQ+Σi=1 ni,1(Hi,1+e′Yi,1)を計算する(ステップ714)。
4.ハッシュ演算部24により
″=H((G1,0‖…‖Gn,0)‖(G1,1‖…‖Gn,1)‖(H1,0‖…‖Hn,0)‖(H1,1‖…‖Hn,1)‖(X1,0‖…‖Xn,0)‖(X1,1‖…‖Xn,1)‖(Y1,0‖…‖Yn,0)‖(Y1,1‖…‖Yn,1)‖R′‖S′‖R′‖S′)を計算する(ステップ715)。
5.比較部26によりc=c″が成り立つかどうか検証する(ステップ716)。そして、出力部27より、成り立てば検証成功として1を出力し、成り立たなければ検証失敗として0を出力する。
Next, a procedure for verifying certification information will be described. The knowledge verification device 20 receives input from the input unit 21 (P, Q, Gi , 0 , Gi , 1 , Hi, 0 , Hi, 1 , Xi , 0 , Xi , 1 , Yi , 0 , Y i, 1 , c 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) (i = 1,..., N) are input (step 711), and the knowledge proof device 10 i, bi = s i P, H i, bi = s i Q, X i, bi = t i P, Y i, bi = t i Q (i = 1,..., n) are satisfied (b i , s In order to verify whether i , t i ) (i = 1,..., n) are known (held), the following is performed.
1. The hash calculation unit 24 makes e ′ = H ((G 1,0 ‖ ... ‖G n, 0 ) ‖ (G 1,1 ‖ ... ‖G n, 1 ) ‖ (H 1,0 ‖ ... ‖H n , 0 ) ‖ (H 1,1 ‖ ... ‖H n, 1 ) ‖ (X 1,0 ‖ ... ‖X n, 0 ) ‖ (X 1,1 ‖ ... ‖X n, 1 ) ‖ (Y 1, 0 || ... ‖Y n, 0) || (Y 1, 1 || ... ‖Y n, 1)) to calculate the (step 712).
2. c 1 ′ = c 1 and the four arithmetic operation unit 25 and the hash operation unit 24 perform c i ′ = H (c i for c 1,1 ′ = c 1 ′ −c 1,0 modq, i = 2,. -1 '‖c i-1,0), c i, 1' = c i '-c i, 0 modq calculates the (step 713).
3. R 0 ′ = z 0 P + Σ i = 1 n c i, 0 (G i, 0 + e′X i, 0 ), S 0 ′ = z 0 Q + Σ i = 1 by the group addition operation unit 22 and the scalar multiplication operation unit 23. n c i, 0 (H i, 0 + e′Y i, 0 ), R 1 ′ = z 1 P + Σ i = 1 n c i, 1 ′ (G i, 1 + e′X i, 1 ), S 1 = z 1 Q + Σ i = 1 n c i, 1 (H i, 1 + e'Y i, 1) to calculate the (step 714).
4). The hash calculator 24 makes c 1 ″ = H ((G 1,0 ‖ ... ‖G n, 0 ) ‖ (G 1,1 ‖ ... ‖G n, 1 ) ‖ (H 1,0 ‖ ... ‖H n, 0 ) ‖ (H 1,1 ‖ ... ‖H n, 1 ) ‖ (X 1,0 ‖ ... ‖X n, 0 ) ‖ (X 1,1 ‖ ... ‖ X n, 1 ) ‖ (Y 1,0 ‖ ... ‖Y n, 0 ) ‖ (Y 1,1 ‖ ... ‖Y n, 1 ) ‖R 0 ′ ‖S 0 ′ ‖R 1 ′ ‖S 1 ′) is calculated (step 715).
5). The comparator 26 verifies whether or not c 1 = c 1 ″ is satisfied (step 716). The output unit 27 outputs 1 as a verification success, and outputs 0 as a verification failure when it does not hold.

いま、計算コストをスカラー倍演算の処理回数で評価すると、非特許文献3の方法では知識証明装置が8n回、知識検証装置が12n回のスカラー倍演算を行うのに対し、本発明では知識証明装置が4n+4回、知識検証装置が8n+4回のスカラー倍演算で済む。また、証明情報となる知識証明装置の出力ビット長は、非特許文献1の方法では4n|q|であるのに対し、本発明では(n+3)|q|ビットで済む。   Now, when the calculation cost is evaluated by the number of times of scalar multiplication, in the method of Non-Patent Document 3, the knowledge proof device performs 8n times and the knowledge verification device performs 12n times of scalar multiplication. The device needs 4n + 4 times and the knowledge verification device needs 8n + 4 times scalar multiplication. In addition, the output bit length of the knowledge proof device as proof information is 4n | q | in the method of Non-Patent Document 1, whereas in the present invention, (n + 3) | q |

[第8の実施の形態]
実施例1から7までは知識証明装置及び知識検証装置が非対話で証明検証を行う実施形態について述べた。即ち、各装置が相互通信を行うのではなく、知識証明装置から、あるいは知識検証装置からの一方的な通信となる。これにより各装置が同期をとる必要がない等のメリットがあるが、実施例1から7までを対話的に実行するように変更することは容易である。そこで本実施例では、実施例1について知識証明装置及び知識検証装置が対話的に実行する実施形態について述べる。
[Eighth Embodiment]
In the first to seventh embodiments, the embodiment in which the knowledge proof device and the knowledge verification device perform proof verification in a non-interactive manner has been described. That is, each device does not perform mutual communication, but is unilateral communication from the knowledge proof device or from the knowledge verification device. Thus, there is a merit that each device does not need to be synchronized, but it is easy to change the first to seventh embodiments so as to be executed interactively. In this embodiment, an embodiment in which the knowledge proof device and the knowledge verification device interactively execute the embodiment 1 will be described.

本実施例では、実施例1と同じく、ある位数qの有限群gの元P,Gi,0=si,0P,Gi,1=si,1Pに対して(si,0,si,1∈Z/qZ,i=1,…,n)、少なくともsi,0,si-1のどちらかを知っている(以降,知っている値を単にsとする)ことをその知識を漏らすことなく他者に証明する方法を示す。 In the present embodiment, as in the first embodiment, the element P, G i, 0 = s i, 0 P, G i, 1 = s i, 1 P of a finite group g of order q is represented by (s i , 0 , s i, 1 ∈ Z / qZ, i = 1,..., N), at least one of s i, 0 , s i−1 (hereinafter, the known value is simply referred to as s i Show how to prove to others without revealing their knowledge.

図15に本実施例の処理手順を示す。システム構成は図1と同様であるが、知識検証装置20でも乱数生成部を具備する構成となる。以下では、これを乱数生成部28とする。   FIG. 15 shows the processing procedure of this embodiment. The system configuration is the same as that shown in FIG. 1, but the knowledge verification device 20 also includes a random number generation unit. Hereinafter, this is referred to as a random number generation unit 28.

知識証明装置10は入力部11より(P,Gi,0,Gi,1,b,s)を入力し(i=1,…,n),知識検証装置20は入力部21より(P,Gi,0,Gi,1)を入力し(i=1,…,n),知識証明装置10は(b,s)(i=1,…,n)の知識を知識検証装置20に証明するために、また、知識検証装置20は知識証明装置10がG,b=sPを満たす(b,s)(i=1,…,n)を知っている(保持している)かどうか検証するために、対話的に以下を実行する。
1.知識証明装置10は、乱数生成部12により乱数r,v,ci,1-bi∈Z/qZを生成し、群加算演算部13及びスカラー倍演算部14によりR=rP+Σ{i|bi=1}i,0i,0,R=vP+Σ{i|bi=0}i,1i,1を計算し、(R,R)を知識検証装置20に送信する。
2.i=1,…,nについて順に以下を行う。
(a)知識検証装置20は、乱数生成部28により乱数c∈Z/qZを生成し、知識証明装置10に送信する。
(b)知識証明装置10は、四則演算部16によりci,bi=c−ci,1-bi modqを計算し、ci,0を知識検証装置20に送信する。
3.知識証明装置10は、四則演算部16によりz=r−Σ{i|bi=0}i,0,z=v−Σ{i|bi=1}i,1を計算し、(z,z)を知識検証装置20に送信する。
4.知識検証装置20は、四則演算部25より、ci,1′=c−ci,0 modqを計算し、群加算演算部22及びスカラー倍演算部23によりR′=zP+Σi=1 ni,0i,0,R′=zP+Σi=1 ni,1′Gi,1を計算し、比較部26によりR=R′かつR=R′が成り立つかどうか検証し、出力部27より、成り立てば検証成功として1を出力し、成り立たなければ検証失敗として0を出力する。
The knowledge proof device 10 inputs (P, G i, 0 , G i, 1 , b i , s i ) from the input unit 11 (i = 1,..., N), and the knowledge verification device 20 from the input unit 21. (P, G i, 0 , G i, 1 ) is input (i = 1,..., N), and the knowledge proof device 10 obtains the knowledge of (b i , s i ) (i = 1,..., N). In order to prove to the knowledge verification device 20, the knowledge verification device 20 also satisfies that (b i , s i ) (i = 1,..., N) that the knowledge proof device 10 satisfies G i , b i = s i P. To verify whether you know (hold), do the following interactively:
1. The knowledge proof device 10 generates a random number r, v, ci , 1-bi ∈ Z / qZ by the random number generation unit 12, and R 0 = rP + Σ {i | bi by the group addition calculation unit 13 and the scalar multiplication calculation unit 14. = 1} c i, 0 G i, 0 , R 1 = vP + Σ {i | bi = 0} c i, 1 G i, 1 is calculated, and (R 0 , R 1 ) is transmitted to the knowledge verification device 20 .
2. The following is performed in order for i = 1,.
(A) The knowledge verification device 20 generates a random number c i εZ / qZ by the random number generation unit 28 and transmits it to the knowledge proof device 10.
(B) The knowledge proof device 10 calculates c i, bi = c i −c i, 1−bi modq by the four arithmetic operation unit 16 and transmits c i, 0 to the knowledge verification device 20.
3. The knowledge proof device 10 uses the four arithmetic operation unit 16 to make z 0 = r−Σ {i | bi = 0} ci , 0 s i , z 1 = v−Σ {i | bi = 1} ci , 1 s i And (z 0 , z 1 ) is transmitted to the knowledge verification device 20.
4). The knowledge verification device 20 calculates c i, 1 ′ = c i −c i, 0 modq from the four arithmetic operations unit 25, and R 0 ′ = z 0 P + Σ i by the group addition operation unit 22 and the scalar multiplication operation unit 23. = 1 n c i, 0 G i, 0 , R 1 ′ = z 1 P + Σ i = 1 n c i, 1 ′ G i, 1 is calculated, and the comparator 26 calculates R 0 = R 0 ′ and R 1 = It is verified whether or not R 1 ′ is satisfied, and if it is satisfied, 1 is output as a verification success, and if it is not satisfied, 0 is output as a verification failure.

以上のようにして実施例1について知識証明装置10及び知識検証装置20が対話的に実行することが可能であるが、他の実施例の場合も同様にして対話的に実行することが可能である。   As described above, the knowledge proof device 10 and the knowledge verification device 20 can interactively execute the first embodiment, but can be interactively executed in other embodiments as well. is there.

なお、図1で示した知識証明装置10及び知識検証装置20における各部の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図2以降で示した処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、FD、MO、ROM、メモリカード、CD、DVD、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。   The processing functions of some or all of the components in the knowledge proof device 10 and the knowledge verification device 20 shown in FIG. 1 are configured by a computer program, and the program is executed using the computer to realize the present invention. Needless to say, the processing procedures shown in FIG. 2 and subsequent figures can be configured by a computer program and the program can be executed by the computer. In addition, a computer-readable recording medium such as an FD, MO, ROM, memory card, CD, or the like is stored in the computer. In addition, the program can be recorded and stored on a DVD, a removable disk, etc., and the program can be distributed through a network such as the Internet.

本発明の実施形態のシステム構成を示す図。The figure which shows the system configuration | structure of embodiment of this invention. 本発明の第1の実施形態の知識証明装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge proof device of the 1st Embodiment of this invention. 図2のステップ103の処理フローを示す図。The figure which shows the processing flow of step 103 of FIG. 図2のステップ105の処理フローを示す図。The figure which shows the processing flow of step 105 of FIG. 本発明の第1の実施形態の知識検証装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge verification apparatus of the 1st Embodiment of this invention. 本発明の第2の実施形態の知識検証装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge verification apparatus of the 2nd Embodiment of this invention. 本発明の第3の実施形態の知識証明装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge proof device of the 3rd Embodiment of this invention. 本発明の第3の実施形態の知識検証装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge verification apparatus of the 3rd Embodiment of this invention. 本発明の第4の実施形態の知識検証装置側の処理手順を示す図。The figure which shows the process sequence by the knowledge verification apparatus side of the 4th Embodiment of this invention. 本発明の第5の実施形態の知識証明装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge proof device of the 5th Embodiment of this invention. 本発明の第5の実施形態の知識検証装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge verification apparatus of the 5th Embodiment of this invention. 本発明の第6の実施形態の知識検証装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge verification apparatus of the 6th Embodiment of this invention. 本発明の第7の実施形態の知識証明装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge proof device of the 7th Embodiment of this invention. 本発明の第7の実施形態の知識検証装置側の処理手順を示す図。The figure which shows the process sequence by the side of the knowledge verification apparatus of the 7th Embodiment of this invention. 本発明の第8の実施形態の知識証明装置及び知識検証装置間の処理手順を示す図。The figure which shows the process sequence between the knowledge proof apparatus and knowledge verification apparatus of the 8th Embodiment of this invention.

10 知識証明装置
11 入力部
12 乱数生成部
13 群加算演算部
14 スカラー倍演算部
15 ハッシュ演算部
16 四則演算部
17 出力部
20 知識検証装置
21 入力部
22 群加算演算部
23 スカラー倍演算部
24 ハッシュ演算部
25 四則演算部
26 比較部
27 出力部
DESCRIPTION OF SYMBOLS 10 Knowledge proof apparatus 11 Input part 12 Random number generation part 13 Group addition operation part 14 Scalar multiplication operation part 15 Hash operation part 16 Four arithmetic operation part 17 Output part 20 Knowledge verification apparatus 21 Input part 22 Group addition operation part 23 Scalar multiplication operation part 24 Hash operation unit 25 Four arithmetic operation units 26 Comparison unit 27 Output unit

Claims (8)

ある有限群g,その位数q,前記gの元P,n個のビットb,n個の整数s2n個のgの元 i,0 ,G i,1 を入力し(i=1,2,…,n,ここでnは2以上の任意の自然数)、Gi,bi=sPに対する(b,s)の知識を証明する知識証明装置と、前記知識証明装置による知識証明を検証する知識検証装置とからなる知識証明検証システムであって、
前記知識証明装置は、
乱数r,v,ci,1-biを生成する手段と、
Figure 0004845107
を計算する手段と(ここで、{i|b =1}はi=1,…,nについてb =1となるiの集合を意味する。{i|b =0}についても同様である)、
=H(G 1,0 ‖…‖G n,0 ‖G 1,1 ‖…‖G n,1 ‖R ‖R ),c 1,bi =c −c 1,1-bi modq,i=2,…,nについて、c =H(c i-1 ‖c i-1,0 ),c i,bi =c −c i,1-bi modqを計算する手段と(ここで、Hは一方向性ハッシュ関数、“‖”はデータ連結記号を意味する)、
Figure 0004845107
を計算する手段と、
証明情報として(c ,z ,z ,c 1,0 ,…,c n,0 )を出力する手段を有し、
前記知識検証装置は、
前記知識証明装置が出力する証明情報(c ,z ,z ,c i,0 )及びP,G i,0 ,G i,1 (i=1,…,n)を入力する手段と、
′=c とし、c 1,1 ′=c ′−c 1,0 modq,i=2,…,nについて、c ′=H(c i-1 ′‖c i-1,0 ),c i,1 ′=c ′−c i,0 modqを計算する手段と、
Figure 0004845107
を計算する手段と、
″=H(G 1,0 ‖…‖G n,0 ‖G 1,1 ‖…‖G n,1 ‖R ′‖R ′)を計算する手段と、
=c ″が成り立つかどうか検証する手段とを有する、
ことを特徴とする知識証明検証システム。
A finite group g, its order q, an element P of the g, n bits b i , n integers s i , 2n g elements G i, 0 , G i, 1 are input (i = 1, 2,..., N, where n is an arbitrary natural number greater than or equal to 2), G i, bi = a knowledge proof device that proves knowledge of (b i , s i ) for s i P , and said knowledge proof A knowledge proof verification system comprising a knowledge verification device for verifying knowledge proof by a device,
The knowledge proof device comprises:
Means for generating random numbers r, v, ci , 1-bi ;
Figure 0004845107
(Where {i | b i = 1} means a set of i such that b i = 1 for i = 1,..., N. The same applies to {i | b i = 0} . ),
c 1 = H (G 1,0 ‖ ... ‖ G n, 0 ‖G 1,1 ‖ ... ‖ G n, 1 ‖R 0 ‖R 1 ), c 1, bi = c 1 -c 1,1-bi For modq, i = 2,..., n, means for calculating c i = H (c i−1 ‖c i−1,0 ), c i, bi = c i −c i, 1−bi modq ( Here, H is a one-way hash function, “‖” means a data concatenation symbol),
Figure 0004845107
A means of calculating
Means for outputting (c 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) as proof information ;
The knowledge verification device includes:
Means for inputting proof information (c 1 , z 0 , z 1 , c i, 0 ) and P, G i, 0 , G i, 1 (i = 1,..., N) output by the knowledge proof device ; ,
'and = c 1, c 1,1' c 1 = c 1 '-c 1,0 modq, i = 2, ..., for n, c i' = H ( c i-1 '‖c i-1, 0 ), c i, 1 ′ = c i ′ −c i, 0 modq;
Figure 0004845107
A means of calculating
means for calculating c 1 ″ = H (G 1,0 ‖ ... ‖G n, 0 ‖G 1,1 ‖ ... ‖ G n, 1 R 0 ′ ‖R 1 ′);
means for verifying whether c 1 = c 1 ″ holds,
Knowledge proof verification system characterized by that.
ある有限群g,その位数q,前記gの元P,n個のビットbA finite group g, its order q, the element P of the g, n bits b i ,n個の整数s, N integers s i ,n個のgの元G, N g elements G i,0i, 0 ,G, G i,1i, 1 を入力し(i=1,2,…,n,ここでnは2以上の任意の自然数)、G(I = 1, 2,..., N, where n is an arbitrary natural number greater than or equal to 2), and G i,bii, bi =s= S i Pに対する(b(B for P i ,s, S i )の知識を証明する知識証明装置と、前記知識証明装置による知識証明を検証する知識検証装置とからなる知識証明検証システムであって、A knowledge proof verification system comprising a knowledge proof device for proof of knowledge and a knowledge verification device for verifying a knowledge proof by the knowledge proof device,
前記知識証明装置は、The knowledge proof device comprises:
乱数r,v,cRandom numbers r, v, c i,1-bii, 1-bi を生成する手段と、Means for generating
Figure 0004845107
Figure 0004845107
を計算する手段と、A means of calculating
c 1 =H(G= H (G 1,01,0 ‖…‖G‖… ‖G n,0n, 0 ‖G‖G 1,11,1 ‖…‖G‖… ‖G n,1n, 1 ‖R‖R 0 ‖R‖R 1 ),c), C 1,bi1, bi =c= C 1 −c-C 1,1-bi1,1-bi modq,i=2,…,nについて、c  mod q, i = 2,. i =H(c= H (c i-1i-1 ‖c‖C i-1,0i-1,0 ),c), C i,bii, bi =c= C i −c-C i,1-bi i, 1-bi modqを計算する手段と、means for calculating modq;
Figure 0004845107
Figure 0004845107
を計算する手段と、A means of calculating
証明情報として(RAs proof information (R 0 ,R, R 1 ,z, Z 0 ,z, Z 1 ,c, C 1,01,0 ,…,c, ..., c n,0n, 0 )を出力する手段とを有し、)
前記知識検証装置は、The knowledge verification device includes:
前記知識証明装置が出力する証明情報(RProof information (R) output by the knowledge proof device 0 ,R, R 1 ,z, Z 0 ,z, Z 1 ,c, C i,0i, 0 )及び(P,G) And (P, G i,0i, 0 ,G, G i,1i, 1 )(i=1,…,n)を入力する手段と、) (I = 1,..., N) input means;
c 1 ′=H(G'= H (G 1,01,0 ‖…‖G‖… ‖G n,0n, 0 ‖G‖G 1,11,1 ‖…‖G‖… ‖G n,1n, 1 ‖R‖R 0 ‖R‖R 1 ),c), C 1,11,1 ′=c'= C 1 ′−c'-C 1,01,0 modq,i=2,…,nについて、c  mod q, i = 2,. i ′=H(c'= H (c i-1i-1 ′‖c′ ‖C i-1,0i-1,0 ),c), C i,1i, 1 ′=c'= C i ′−c'-C i,0i, 0 modqを計算する手段と、  means for calculating modq;
Figure 0004845107
Figure 0004845107
を計算する手段と、A means of calculating
R 0 =R= R 0 ′かつR'And R 1 =R= R 1 ′が成り立つかどうか検証する手段とを有する、Having means for verifying whether ′ holds,
ことを特徴とする知識証明検証システム。Knowledge proof verification system characterized by that.
ある有限群g,その位数q,前記gのn′個の元P ,n個のビットb,n個の整数s2nn′個のgの元 i,j,0 ,G i,j,1 を入力し(i=1,2,…,n,j=1,2,…,n′,ここでn,n′は2以上の任意の自然数)、Gi,j,bi=sに対する(b,s)の知識を証明する知識証明装置と、前記知識証明装置による知識証明を検証する知識検証装置とからなる知識証明検証システムであって、
前記知識証明装置は、
乱数r,v,ci,1-biを生成する手段と、
Figure 0004845107
を計算する手段と、
=H((G 1,1,0 ‖…‖G 1,n’,0 )‖…‖(G n,1,0 ‖…‖G n,n’,0 )‖(G 1,1,1 ‖…‖G 1,n’,1 )‖…‖(G n,1,1 ‖…‖G n,n’,1 )‖R 0,1 ‖…‖R 0,n’ ‖R 1,1 ‖…‖R 1,n’ ),c 1,bi =c −c 1,1-bi modq,i=2,…,nについて、c =H(c i-1 ‖c i-1,0 ),c i,bi =c −c i,1-bi modqを計算する手段と、
Figure 0004845107
を計算する手段と、
証明情報として、(c ,z ,z ,c 1,0 ,…,c n,0 )を出力する手段とを有し、
前記知識検証装置は、
前記知識証明装置が出力する証明情報(c ,z ,z ,c i,0 )及びP ,G i,j,0 ,G i,j,1 (i=1,…,n,j=1,…,n′)を入力する手段と、
′=c とし、c 1,1 ′=c ′−c 1,0 modq,i=2,…,nについて、c ′=H(c i-1 ′‖c i-1,0 ),c i,1 ′=c ′−c i,0 modqを計算する手段と、
Figure 0004845107
を計算する手段と、
″=H((G 1,1,0 ‖…‖G 1,n’,0 )‖…‖(G n,1,0 ‖…‖G n,n’,0 )‖(G 1,1,1 ‖…‖G 1,n’,1 )‖…‖(G n,1,1 ‖…‖G n,n’,1 )‖R 0,1 ′‖…‖R 0,n’ ′‖R 1,1 ′‖…‖R 1,n’ ′)を計算する手段と、
=c ″が成り立つかどうか検証する手段とを有する、
ことを特徴とする知識証明検証システム。
A finite group g, a position number q, the g of n 'number of elements P j, n bits b i, n integers s i, 2nn' number of g of the original G i, j, 0, G i, j, 1 (i = 1, 2,..., n, j = 1, 2,..., n ′, where n and n ′ are any natural numbers greater than or equal to 2), and G i, j, A knowledge proof verification system comprising a knowledge proof device that proves knowledge of (b i , s i ) for bi = s i P j and a knowledge verification device that verifies the knowledge proof by the knowledge proof device,
The knowledge proof device comprises:
Means for generating random numbers r, v, ci , 1-bi ;
Figure 0004845107
A means of calculating
c 1 = H ((G 1,1,0 ‖ ... ‖G 1, n ', 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖ G n, n', 0 ) ‖ (G 1,1 , 1 ‖ ... ‖G 1, n ', 1 ) ‖ ... ‖ (G n, 1,1 ‖ ... ‖G n, n', 1 ) ‖R 0,1 ‖… ‖R 0, n ' ‖R 1 , 1‖ ... ‖R 1, n ' ), c 1, bi = c 1 -c 1,1-bi modq, i = 2, ..., n, c i = H (c i-1 ‖c i- 1,0 ), c i, bi = c i −c i, 1-bi modq;
Figure 0004845107
A means of calculating
Means for outputting (c 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) as proof information ,
The knowledge verification device includes:
Proof information (c 1 , z 0 , z 1 , c i, 0 ) and P j , G i, j, 0 , G i, j, 1 (i = 1,..., N, j = 1,..., n ′),
'and = c 1, c 1,1' c 1 = c 1 '-c 1,0 modq, i = 2, ..., for n, c i' = H ( c i-1 '‖c i-1, 0 ), c i, 1 ′ = c i ′ −c i, 0 modq;
Figure 0004845107
A means of calculating
c 1 ″ = H ((G 1,1,0 ‖ ... ‖G 1, n ', 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖ G n, n', 0 ) ‖ (G 1, 1,1 ‖ ... ‖G 1, n ', 1 ) ‖ ... ‖ (G n, 1,1 ‖ ... ‖G n, n', 1 ) ‖R 0,1 ′ ‖… ‖R 0, n ' ′ Means to calculate ‖R 1,1 ′ ‖… ‖ R 1, n ′ ′),
means for verifying whether c 1 = c 1 ″ holds,
Knowledge proof verification system characterized by that.
ある有限群g,その位数q,前記gのn′個の元PA certain finite group g, its order q, and n ′ elements P of g j ,n個のビットb, N bits b i ,n個の整数s, N integers s i ,2nn′個のgの元G, 2nn 'g elements G i,j,0i, j, 0 ,G, G i,j,1i, j, 1 を入力し(i=1,2,…,n,j=1,2,…,n′,ここでn,n′は2以上の任意の自然数)、G(I = 1, 2,..., N, j = 1, 2,..., N ′, where n and n ′ are arbitrary natural numbers greater than or equal to 2), G i,j,bii, j, bi =s= S i P j に対する(bAgainst (b i ,s, S i )の知識を証明する知識証明装置と、前記知識証明装置による知識証明を検証する知識検証装置とからなる知識証明検証システムであって、A knowledge proof verification system comprising a knowledge proof device for proof of knowledge and a knowledge verification device for verifying a knowledge proof by the knowledge proof device,
前記知識証明装置は、The knowledge proof device comprises:
乱数r,v,cRandom numbers r, v, c i,1-bii, 1-bi を生成する手段と、Means for generating
Figure 0004845107
Figure 0004845107
を計算する手段と、A means of calculating
c 1 =H((G= H ((G 1,1,01,1,0 ‖…‖G‖… ‖G 1,n’,01, n ’, 0 )‖…‖(G) ‖ ... ‖ (G n,1,0n, 1,0 ‖…‖G‖… ‖G n,n’,0n, n ’, 0 )‖(G) ‖ (G 1,1,11,1,1 ‖…‖G‖… ‖G 1,n’,11, n ’, 1 )‖…‖(G) ‖ ... ‖ (G n,1,1n, 1,1 ‖…‖G‖… ‖G n,n’,1n, n ’, 1 )‖R) ‖R 0,10,1 ‖…‖R‖… ‖R 0,n’0, n ’ ‖R‖R 1,11,1 ‖…‖R‖… ‖R 1,n’1, n ’ ),c), C 1,bi1, bi =c= C 1 −c-C 1,1-bi1,1-bi modq,i=2,…,nについて、c  mod q, i = 2,. i =H(c= H (c i-1i-1 ‖c‖C i-1,0i-1,0 ),c), C i,bii, bi =c= C i −c-C i,1-bii, 1-bi modqを計算する手段と、  means for calculating modq;
Figure 0004845107
Figure 0004845107
を計算する手段と、A means of calculating
証明情報として、(RAs proof information, (R 0,10,1 ,…,R, ..., R 0,n’0, n ’ ,R, R 1,11,1 ,…,R, ..., R 1,n’1, n ’ ,z, Z 0 ,z, Z 1 ,c, C 1,01,0 ,…,c, ..., c n,0n, 0 )を出力する手段とを有し、)
前記知識検証装置は、The knowledge verification device includes:
前記知識証明装置が出力する証明情報(RProof information (R) output by the knowledge proof device 0,j0, j ,R, R 1,j1, j ,z, Z 0 ,z, Z 1 ,c, C i,0i, 0 )及びP) And P j ,G, G i,j,0i, j, 0 ,G, G i,j,1i, j, 1 (i=1,…,n,j=1,…,n′)を入力する手段と、Means for inputting (i = 1,..., N, j = 1,..., N ′);
c 1 ′=H((G'= H ((G 1,1,01,1,0 ‖…‖G‖… ‖G 1,n’,01, n ’, 0 )‖…‖(G) ‖ ... ‖ (G n,1,0n, 1,0 ‖…‖G‖… ‖G n,n’,0n, n ’, 0 )‖(G) ‖ (G 1,1,11,1,1 ‖…‖G‖… ‖G 1,n’,11, n ’, 1 )‖…‖(G) ‖ ... ‖ (G n,1,1n, 1,1 ‖…‖G‖… ‖G n,n’,1n, n ’, 1 )‖R) ‖R 0,10,1 ‖…‖R‖… ‖R 0,n’0, n ’ ‖R‖R 1,11,1 ‖…‖R‖… ‖R 1,n’1, n ’ ),c), C 1,11,1 ′=c'= C 1 ′−c'-C 1,01,0 modq,i=2,…,nについてc  mod q, i = 2, c for n 1 ′=H(c'= H (c 1-11-1 ′‖c′ ‖C i-1,0i-1,0 ),c), C i,1i, 1 ′=c'= C i ′−c'-C i,0i, 0 modqを計算する手段と、  means for calculating modq;
Figure 0004845107
Figure 0004845107
を計算する手段と、A means of calculating
すべてのjについてRR for all j 0,j0, j =R= R 0,j0, j ′かつR'And R 1,j1, j =R= R 1,j1, j ′が成り立つかどうか検証する手段とを有する、Having means for verifying whether ′ holds,
ことを特徴とする知識証明検証システム。Knowledge proof verification system characterized by that.
ある有限群g,その位数q,前記gの元P,n個のビットb,nn″個の整数si,j2nn″個のgの元 i,j,0 ,G i,j,1 を入力し(i=1,2,…,n,j=1,2,…,n″,ここでn,n″は2以上の任意の自然数)、Gi,j,bi=si,jPに対する(b,si,j)の知識を証明する知識証明装置と、前記知識証明装置による知識証明を検証する知識検証装置とからなる知識証明検証システムであって、
前記知識証明装置は、
=H((G 1,1,0 ‖…‖G 1,n”,0 )‖…‖(G n,1,0 ‖…‖G n,n”,0 )‖(G 1,1,1 ‖…‖G 1,n”,1 )‖…‖(G n,1,1 ‖G n,n”,1 ‖j)を計算する手段と、
乱数r,v,ci,1-biを生成する手段と、
Figure 0004845107
を計算する手段と、
=H((G 1,1,0 ‖…‖G 1,n”,0 )‖…‖(G n,1,0 ‖…‖G n,n”,0 )‖(G 1,1,1 ‖…‖G 1,n”,1 )‖…‖(G n,1,1 ‖…‖G n,n”,1 )‖R ‖R ),c i,bi =c −c 1,1-bi modq,i=2,…,nについて、c =H(c i-1 ‖c i-1,0 ),c i,bi =c −c i,1-bi modqを計算する手段と、
Figure 0004845107
を計算する手段と、
証明情報として、(c ,z ,z ,c 1,0 ,…,c n,0 )を出力する手段とを有し、
前記知識検証装置は、
前記知識証明装置が出力する証明情報(c ,z ,z ,c i,0 )及びP,G i,j,0 ,G i,j,1 )(i=1,…,n,j=1,…,n″)を入力する手段と、
′=H((G 1,1,0 ‖…‖G 1,n”,0 )‖…‖(G n,1,0 ‖…‖G n,n”,0 )‖(G 1,1,1 ‖…‖G 1,n”,1 )‖…‖(G n,1,1 ‖…‖G n,n”,1 )‖j)を計算する手段と、
′=c とし、c 1,1 ′=c ′−c 1,0 modq,i=2,…,nについて、c ′=H(c i-1 ′‖c i-1,0 ),c i,1 ′=c ′−c i,0 modqを計算する手段と、
Figure 0004845107
を計算する手段と、
″=H((G 1,1,0 ‖…‖G 1,n”,0 )‖…‖(G n,1,0 ‖…‖G n,n”,0 )‖(G 1,1,1 ‖…‖G 1,n”,1 )‖…‖(G n,1,1 ‖…‖G n,n”,1 )‖R ′‖R ′)を計算する手段と、
=c ″が成り立つかどうか検証する手段とを有する、
ことを特徴とする知識証明検証システム。
A finite group g, its order q, the element P of the g, n bits b i , nn ″ integers si, j , 2nn ″ g elements G i, j, 0 , G i, j , 1 (i = 1, 2,..., N, j = 1, 2,..., N ″, where n and n ″ are any natural numbers greater than or equal to 2), G i, j, bi = s a knowledge proof verification system comprising a knowledge proof device for proof of knowledge of (b i , s i, j ) for i, j P , and a knowledge verification device for verifying knowledge proof by the knowledge proof device,
The knowledge proof device comprises:
e j = H ((G 1,1,0 || ... ‖G 1, n ", 0 ) || ... ‖ (G n, 1,0 || ... ‖G n, n", 0 ) || (G 1,1 , 1 ‖ ... ‖G 1, n ″, 1 ) ‖… ‖ (G n, 1,1 ‖G n, n ″, 1 ‖j),
Means for generating random numbers r, v, ci , 1-bi ;
Figure 0004845107
A means of calculating
c 1 = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ″, 0 ) ‖ (G 1,1 , 1‖ ... ‖G 1, n ″, 1 ) ‖… ‖ (G n, 1,1 ‖ ... ‖G n, n ″, 1 ) ‖R 0 ‖R 1 ), c i, bi = c 1 − For c 1,1-bi modq, i = 2,..., n, c i = H (c i-1 ‖c i-1,0 ), c i, bi = c i −c i, 1-bi modq A means of calculating
Figure 0004845107
A means of calculating
Means for outputting (c 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) as proof information ,
The knowledge verification device includes:
Proof information (c 1 , z 0 , z 1 , c i, 0 ) and P, G i, j, 0 , G i, j, 1 ) (i = 1,..., N, j = 1,..., n ″),
e j '= H ((G 1,1,0 || ... ‖G 1, n ", 0 ) || ... ‖ (G n, 1,0 || ... ‖G n, n", 0 ) || (G 1, 1,1 ‖ ... ‖G 1, n ″, 1 ) ‖… ‖ (G n, 1,1 ‖ ... ‖G n, n ″, 1 ) ‖j),
'and = c 1, c 1,1' c 1 = c 1 '-c 1,0 modq, i = 2, ..., for n, c i' = H ( c i-1 '‖c i-1, 0 ), c i, 1 ′ = c i ′ −c i, 0 modq;
Figure 0004845107
A means of calculating
c 1 "= H ((G 1,1,0 || ... ‖G 1, n", 0 ) || ... || (G n, 1, 0 || ... ‖G n, n ", 0 ) || (G 1, 1,1 ‖ ... ‖G 1, n ″, 1 ) ‖… G (G n, 1,1 ‖ ... ‖G n, n ″, 1 ) means for calculating ‖R 0 ′ ‖R 1 ′);
means for verifying whether c 1 = c 1 ″ holds,
Knowledge proof verification system characterized by that.
ある有限群g,その位数q,前記gの元P,n個のビットb ,nn″個の整数 si,j ,2nn″個のgの元G i,j,0 ,G i,j,1 を入力し(i=1,2,…,n,j=1,2,…,n″,ここでn,n″は2以上の任意の自然数)、G i,j,bi =s i,j Pに対する(b ,s i,j )の知識を証明する知識証明装置と、前記知識証明装置による知識証明を検証する知識検証装置とからなる知識証明検証システムであって、
前記知識証明装置は、
=H((G 1,1,0 ‖…‖G 1,n”,0 )‖…‖(G n,1,0 ‖…‖G n,n”,0 )‖(G 1,1,1 ‖…‖G 1,n”,1 )‖…‖(G n,1,1 ‖G n,n”,1 ‖j)を計算する手段と、
乱数r,v,c i-1-bi を生成する手段と、
Figure 0004845107
を計算する手段と、
=H((G 1,1,0 ‖…‖G 1,n”,0 )‖…‖(G n,1,0 ‖…‖G n,n”,0 )‖(G 1,1,1 ‖…‖G 1,n”,1 )‖…‖(G n,1,1 ‖…‖G n,n”,1 )‖R ‖R ),c i,bi =c −c 1,1-bi modq,i=2,…,nについて、c =H(c i-1 ‖c i-1,0 ),c i,bi =c −c i,1-bi modqを計算する手段と、
Figure 0004845107
を計算する手段と、
証明情報として、(R ,R ,z ,z ,c 1,0 ,…,c n,0 )を出力する手段とを有し、
前記知識検証装置は、
前記知識証明装置が出力する証明情報(R ,R ,z ,z ,c i,0 )及びP,G i,j,0 ,G i,j,1 (i=1,…,n,j=1,…,n″)を入力する手段と、
′=H((G1,1,0‖…‖G1,n”,0)‖…‖(Gn,1,0‖…‖Gn,n”,0)‖(G1,1,1‖…‖G1,n”,1)‖…‖(Gn,1,1‖…‖Gn,n”,1)‖j)を計算する手段と、
′=H((G1,1,0‖…‖G1,n”,0)‖…‖(Gn,1,0‖…‖Gn,n”,0)‖(G1,1,1‖…‖G1,n”,1)‖…‖(Gn,1,1‖…‖Gn,n”,1)‖R‖R),c1,1′=c′−c1,0 modq,i=2,…,nについて、c′=H(ci-1′‖ci-1,0),ci,1′=c′−ci,0 modqを計算する手段と、
Figure 0004845107
を計算する手段と、
=R ′かつR =R ′が成り立つかどうか検証する手段とを、
ことを特徴とする知識証明検証システム。
A finite group g, its order q, the element P of the g, n bits b i , nn ″ integers si, j , 2nn ″ g elements G i, j, 0 , G i, j , 1 (i = 1, 2,..., N, j = 1, 2,..., N ″, where n and n ″ are any natural numbers greater than or equal to 2), G i, j, bi = s a knowledge proof verification system comprising a knowledge proof device for proof of knowledge of (b i , s i, j ) for i, j P , and a knowledge verification device for verifying knowledge proof by the knowledge proof device,
The knowledge proof device comprises:
e j = H ((G 1,1,0 || ... ‖G 1, n ", 0 ) || ... ‖ (G n, 1,0 || ... ‖G n, n", 0 ) || (G 1,1 , 1 ‖ ... ‖G 1, n ″, 1 ) ‖… ‖ (G n, 1,1 ‖G n, n ″, 1 ‖j),
Means for generating random numbers r, v, c i-1-bi ;
Figure 0004845107
A means of calculating
c 1 = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ″, 0 ) ‖ (G 1,1 , 1‖ ... ‖G 1, n ″, 1 ) ‖… ‖ (G n, 1,1 ‖ ... ‖G n, n ″, 1 ) ‖R 0 ‖R 1 ), c i, bi = c 1 − For c 1,1-bi modq, i = 2,..., n, c i = H (c i-1 ‖c i-1,0 ), c i, bi = c i −c i, 1-bi modq A means of calculating
Figure 0004845107
A means of calculating
Means for outputting (R 0 , R 1 , z 0 , z 1 , c 1,0 ,..., C n, 0 ) as proof information ,
The knowledge verification device includes:
Proof information (R 0 , R 1 , z 0 , z 1 , c i, 0 ) and P, G i, j, 0 , G i, j, 1 (i = 1,. n, j = 1,..., n ″),
e j '= H ((G 1,1,0 || ... ‖G 1, n ", 0 ) || ... ‖ (G n, 1,0 || ... ‖G n, n", 0 ) || (G 1, 1,1 ‖ ... ‖G 1, n ″, 1 ) ‖… ‖ (G n, 1,1 ‖ ... ‖G n, n ″, 1 ) ‖j),
c 1 ′ = H ((G 1,1,0 ‖ ... ‖G 1, n ″, 0 ) ‖ ... ‖ (G n, 1,0 ‖ ... ‖G n, n ″, 0 ) ‖ (G 1, 1,1 || ... ‖G 1, n ", 1 ) || ... || (G n, 1,1 || ... ‖G n, n", 1 ) ‖R 0 ‖R 1), c 1,1 '= c 1 '-c 1,0 modq, i = 2, ..., for n, c 1' = H ( c i-1 '‖c i-1,0), c i, 1' = c i '-c i , 0 means for calculating modq;
Figure 0004845107
A means of calculating
Means for verifying whether R 0 = R 0 ′ and R 1 = R 1 ′ hold,
Knowledge proof verification system characterized by that.
ある有限群g,その位数q,前記gの元P,Q,n個のビットbA finite group g, its order q, the elements P, Q, and n bits b of the g ii ,2n個の整数s, 2n integers s i,b_ii, b_i ,t, T i,b_ii, b_i ,(i=1,2,…,n,ここでnは2以上の任意の自然数)、8n個のgの元G, (I = 1, 2,..., N, where n is an arbitrary natural number of 2 or more), 8n g elements G i,0i, 0 =s= S i,0i, 0 P,GP, G i,1i, 1 =s= S i,1i, 1 P,HP, H i,0i, 0 =s= S i,0i, 0 Q,HQ, H i,1i, 1 =s= S i,1i, 1 Q,XQ, X i,0i, 0 =t= T i,0i, 0 P,XP, X i,1i, 1 =t= T i,1i, 1 P,YP, Y i,0i, 0 =t= T i,0i, 0 Q,YQ, Y i,1i, 1 =t= T i,1i, 1 Qを入力し、Enter Q,
(b(B ii ,s, s i,0i, 0 ,t, t i,0i, 0 )または(b) Or (b ii ,s, s i,1i, 1 ,t, t i,1i, 1 )の知識を証明する知識証明装置と、前記知識証明装置による知識証明を検証する知識検証装置とからなる知識証明検証システムであって、A knowledge proof verification system comprising a knowledge proof device for proof of knowledge and a knowledge verification device for verifying a knowledge proof by the knowledge proof device,
前記知識証明装置は、乱数r,v,cThe knowledge proof device uses random numbers r, v, c. i,1-bii, 1-bi を生成する手段と、Means for generating
e=H((Ge = H ((G 1,01,0 ‖…‖G‖… ‖G n,0n, 0 )‖(G) ‖ (G 1,11,1 ‖…‖G‖… ‖G n,1n, 1 )‖(H) ‖ (H 1,01,0 ‖…‖H‖… ‖H n,0n, 0 )‖(H) ‖ (H 1,11,1 ‖…‖H‖… ‖H n,1n, 1 )‖(X) ‖ (X 1,01,0 ‖…‖X‖… ‖X n,0n, 0 )‖(X) ‖ (X 1,11,1 ‖…‖X‖… ‖X n,1n, 1 )‖(Y) ‖ (Y 1,01,0 ‖…‖Y‖ ... ‖Y n,0n, 0 )‖(Y) ‖ (Y 1,11,1 ‖…‖Y‖ ... ‖Y n,1n, 1 ))を計算する手段と、)) Means to calculate,
R 0 =rP+Σ= RP + Σ {i|bi=1}{i | bi = 1} c i,1-bii, 1-bi (G(G i,1-bii, 1-bi +eX+ EX i,1-bii, 1-bi ),S), S 0 =rQ+Σ= RQ + Σ {i|bi=1}{i | bi = 1} c i,1-bii, 1-bi (H(H i,1-bii, 1-bi +eY+ EY i,1-bii, 1-bi ),R), R 1 =vP+Σ= VP + Σ {i|bi=0}{i | bi = 0} c i,1-bii, 1-bi (G(G i,1-bii, 1-bi +eX+ EX i,1-bii, 1-bi ),S), S 1 =vQ+Σ= VQ + Σ {i|bi=0}{i | bi = 0} c i,1-bii, 1-bi (H(H i,1-bii, 1-bi +eY+ EY i,1-bii, 1-bi )を計算する手段と、)
c 1 =H((G= H ((G 1,01,0 ‖…‖G‖… ‖G n,0n, 0 )‖(G) ‖ (G 1,11,1 ‖…‖G‖… ‖G n,1n, 1 )‖(H) ‖ (H 1,01,0 ‖…‖H‖… ‖H n,0n, 0 )‖(H) ‖ (H 1,11,1 ‖…‖H‖… ‖H n,1n, 1 )‖(X) ‖ (X 1,01,0 ‖…‖X‖… ‖X n,0n, 0 )‖(X) ‖ (X 1,11,1 ‖…‖X‖… ‖X n,1n, 1 )‖(Y) ‖ (Y 1,01,0 ‖…‖Y‖ ... ‖Y n,0n, 0 )‖(Y) ‖ (Y 1,11,1 ‖…‖Y‖ ... ‖Y n,1n, 1 )‖R) ‖R 0 ‖S‖S 0 ‖R‖R 1 ‖S‖S 1 ),c), C 1,bi1, bi =c= C 1 −c-C 1,1-bi1,1-bi modq,i=2,…,nについてc  mod q, i = 2, c for n i =H(c= H (c i-1i-1 ‖c‖C i-1,0i-1,0 ),c), C i,bii, bi =c= C i −c-C i,1-bi i, 1-bi modqを計算する手段と、means for calculating modq;
z 0 =r−Σ= R-Σ {i|bi=0}{i | bi = 0} c i,0i, 0 (s(S i,bii, bi +et+ Et i,bii, bi ),z), Z 1 =v−Σ= V-Σ {i|bi=1}{i | bi = 1} c i,1i, 1 (s(S i,bii, bi +et+ Et i,bii, bi )を計算する手段と、)
証明情報として(c(C 1 ,z, Z 0 ,z, Z 1 ,c, C 1,01,0 ,…,c, ..., c n,0n, 0 )を出力する手段を有し、)
前記知識検証装置は、The knowledge verification device includes:
前記知識証明装置が出力する証明情報(cProof information (c 1 ,z, Z 0 ,z, Z 1 ,c, C 1,01,0 ,…,c, ..., c n,0n, 0 )及びP,Q,G) And P, Q, G i,0i, 0 ,G, G i,1i, 1 ,H, H i,0i, 0 ,H, H i,1i, 1 ,X, X i,0i, 0 ,X, X i,1i, 1 ,Y, Y i,0i, 0 ,Y, Y i,1i, 1 を入力する手段と、A means for entering
e′=H((Ge ′ = H ((G 1,01,0 ‖…‖G‖… ‖G n,0n, 0 )‖(G) ‖ (G 1,11,1 ‖…‖G‖… ‖G n,1n, 1 )‖(H) ‖ (H 1,01,0 ‖…‖H‖… ‖H n,0n, 0 )‖(H) ‖ (H 1,11,1 ‖…‖H‖… ‖H n,1n, 1 )‖(X) ‖ (X 1,01,0 ‖…‖X‖… ‖X n,0n, 0 )‖(X) ‖ (X 1,11,1 ‖…‖X‖… ‖X n,1n, 1 )‖(Y) ‖ (Y 1,01,0 ‖…‖Y‖ ... ‖Y n,0n, 0 )‖(Y) ‖ (Y 1,11,1 ‖…‖Y‖ ... ‖Y n,1n, 1 ))を計算する手段と、)) Means to calculate,
c 1 ′=c'= C 1 とし、cAnd c 1,11,1 ′=c'= C 1 ′−c'-C 1,01,0 modq,i=2,…,nについてc  mod q, i = 2, c for n i ′=H(c'= H (c i-1i-1 ′‖c′ ‖C i-1,0i-1,0 ),c), C i,1i, 1 ′=c'= C i ′−c'-C i,0i, 0 modqを計算する手段と、  means for calculating modq;
R 0 ′=z′ = Z 0 P+ΣP + Σ i=1i = 1 nn c i,0i, 0 (G(G i,0i, 0 +e′X+ E'X i,0i, 0 ),S), S 0 ′=z′ = Z 0 Q+ΣQ + Σ i=1i = 1 nn c i,0i, 0 (H(H i,0i, 0 +e′Y+ E'Y i,0i, 0 ),R), R 1 ′=z′ = Z 1 P+ΣP + Σ i=1i = 1 nn c i,1i, 1 ′(G'(G i,1i, 1 +e′X+ E'X i,1i, 1 ),S), S 1 ′=z′ = Z 1 Q+ΣQ + Σ i=1i = 1 nn c i,1i, 1 (H(H i,1i, 1 +e′Y+ E'Y i,1i, 1 )を計算する手段と、)
c 1 ″=H((G″ = H ((G 1,01,0 ‖…‖G‖… ‖G n,0n, 0 )‖(G) ‖ (G 1,11,1 ‖…‖G‖… ‖G n,1n, 1 )‖(H) ‖ (H 1,01,0 ‖…‖H‖… ‖H n,0n, 0 )‖(H) ‖ (H 1,11,1 ‖…‖H‖… ‖H n,1n, 1 )‖(X) ‖ (X 1,01,0 ‖…‖X‖… ‖X n,0n, 0 )‖(X) ‖ (X 1,11,1 ‖…‖X‖… ‖X n,1n, 1 )‖(Y) ‖ (Y 1,01,0 ‖…‖Y‖ ... ‖Y n,0n, 0 )‖(Y) ‖ (Y 1,11,1 ‖…‖Y‖ ... ‖Y n,1n, 1 )‖R) ‖R 0 ′‖S′ ‖S 0 ′‖R′ ‖R 1 ′‖S′ ‖S 1 ′)を計算する手段と、′) Means for calculating,
c 1 =c= C 1 ″が成り立つかどうか検証する手段とを有する、Having means for verifying whether or not
ことを特徴とする知識証明検証システム。Knowledge proof verification system characterized by that.
請求項1乃至7のいずれか1項に記載の知識証明検証システムにおいて、The knowledge proof verification system according to any one of claims 1 to 7,
知識証明装置が計算するハッシュ値cHash value c calculated by the knowledge proof device i,i, は、知識検証装置が当該ハッシュ値の定義域からランダムに生成した値cIs a value c randomly generated by the knowledge verification device from the domain of the hash value. ii とし、知識検証装置はランダム値cAnd the knowledge verification device uses a random value c ii を知識証明装置に送信し、知識証明装置はハッシュ値cIs transmitted to the knowledge proof device, and the knowledge proof device transmits the hash value c. ii の代わりに知識検証装置から受信したランダム値cRandom value c received from knowledge verification device instead of ii を用い、知識検証装置はcAnd the knowledge verification device is c ii ′をc′ To c ii に置き換えることを特徴とする知識証明検証システム。Knowledge proof verification system characterized by replacing with
JP2006191300A 2006-07-12 2006-07-12 Knowledge proof verification system Expired - Fee Related JP4845107B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006191300A JP4845107B2 (en) 2006-07-12 2006-07-12 Knowledge proof verification system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006191300A JP4845107B2 (en) 2006-07-12 2006-07-12 Knowledge proof verification system

Publications (2)

Publication Number Publication Date
JP2008022212A JP2008022212A (en) 2008-01-31
JP4845107B2 true JP4845107B2 (en) 2011-12-28

Family

ID=39077860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006191300A Expired - Fee Related JP4845107B2 (en) 2006-07-12 2006-07-12 Knowledge proof verification system

Country Status (1)

Country Link
JP (1) JP4845107B2 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003218855A (en) * 2002-01-24 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> Anonymous communication path and method that can be verified, anonymous communication method execution program that can be verified, and storage medium storing the program
JP2003218858A (en) * 2002-01-25 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> Signature generation method and signature verification method, signature-generating apparatus and signature- verifying apparatus, signature generation program and signature verification program, and storage medium for storing signature generation program and storage medium for storing signature verification program
JP4074226B2 (en) * 2003-06-30 2008-04-09 株式会社東芝 Zero knowledge dialogue proof protocol management apparatus, zero knowledge dialogue proof protocol management method and program
US7245718B2 (en) * 2003-08-26 2007-07-17 Mitsubishi Electric Research Laboratories, Inc. Low bandwidth zero knowledge authentication protocol and device
JP2006032994A (en) * 2004-07-12 2006-02-02 Natsuki Ishida ELECTRONIC VOTING SYSTEM BASED ON HOMOMORPHISM WITH MIX-net
JP4565628B2 (en) * 2004-11-26 2010-10-20 日本電信電話株式会社 Secret calculation method and system, and program
JP4940592B2 (en) * 2005-08-11 2012-05-30 日本電気株式会社 Proof device and verification device applied to non-repudiation zero knowledge dialogue proof

Also Published As

Publication number Publication date
JP2008022212A (en) 2008-01-31

Similar Documents

Publication Publication Date Title
Groth et al. Cryptography in the multi-string model
Groth Fully anonymous group signatures without random oracles
Libert et al. A lattice-based group signature scheme with message-dependent opening
Kim et al. Multi-theorem preprocessing NIZKs from lattices
Abe et al. Adaptively secure Feldman VSS and applications to universally-composable threshold cryptography
US20170366349A1 (en) Proofs of Plaintext Knowledge and Group Signatures Incorporating Same
Roy et al. A survey on digital signatures and its applications
Dong et al. Fair private set intersection with a semi-trusted arbiter
Kiraz et al. Efficient and verifiable algorithms for secure outsourcing of cryptographic computations
JP2018507658A (en) Authentication system and device including physically non-replicatable function and threshold encryption
JP5099003B2 (en) Group signature system and information processing method
JPWO2006070682A1 (en) Restricted blind signature system, signature device, signature reception device, signature presentation device, signature verification device
Zhang et al. A general framework to design secure cloud storage protocol using homomorphic encryption scheme
Bose et al. Cryptography and network security
JP4771053B2 (en) Integrated shuffle validity proving device, proof integrating device, integrated shuffle validity verifying device, and mixed net system
JP2008176192A (en) Code conversion method and device, and program
Costa et al. Proof of a shuffle for lattice-based cryptography
Halevi et al. On fully secure MPC with solitary output
Cramer et al. Secret-key zero-knowlegde and non-interactive verifiable exponentiation
Lian et al. Provably secure E-cash system with practical and efficient complete tracing
Xia et al. Quorum controlled homomorphic re-encryption for privacy preserving computations in the cloud
JP4845107B2 (en) Knowledge proof verification system
Gjøsteen et al. Efficient mixing of arbitrary ballots with everlasting privacy: How to verifiably mix the PPATC scheme
Modares et al. Make a Secure Connection Using Elliptic Curve Digital Signature
Nagaty A public key cryptosystem and signature scheme based on numerical series

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111006

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4845107

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

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees