JP2009225356A - Digital signature system, apparatus and program - Google Patents

Digital signature system, apparatus and program Download PDF

Info

Publication number
JP2009225356A
JP2009225356A JP2008070235A JP2008070235A JP2009225356A JP 2009225356 A JP2009225356 A JP 2009225356A JP 2008070235 A JP2008070235 A JP 2008070235A JP 2008070235 A JP2008070235 A JP 2008070235A JP 2009225356 A JP2009225356 A JP 2009225356A
Authority
JP
Japan
Prior art keywords
information
signature
mod
signer
key information
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.)
Pending
Application number
JP2008070235A
Other languages
Japanese (ja)
Inventor
Minako Ogawa
美奈子 小川
Koji Okada
光司 岡田
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008070235A priority Critical patent/JP2009225356A/en
Publication of JP2009225356A publication Critical patent/JP2009225356A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reliably restrict use and verification of a ring signature only within a range desired by a signer. <P>SOLUTION: A digital signature system includes a confirmer signature verification device 20 including a means which enables a signer to designate a verifier (confirmer) while having anonymity, and a means which enables the confirmer to verify whether a signature is created through right procedures that are not based on a signature of any other person and whether the signature is legal. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、デジタル署名方式の一種のリング署名方式を用いるデジタル署名システム、装置及びプログラムに係り、例えばリング署名の利用・検証を、署名者が希望する範囲のみで行うように確実に制限し得るデジタル署名システム、装置及びプログラムに関する。   The present invention relates to a digital signature system, an apparatus, and a program that use a kind of digital signature scheme, such as a ring signature scheme. For example, the use and verification of a ring signature can be surely limited so as to be performed only within a range desired by a signer. The present invention relates to a digital signature system, apparatus, and program.

デジタル署名方式の一種として、従来からリング署名方式が知られている。リング署名方式とは、以下の性質をもつデジタル署名方式である。
第1は、署名者がメンバを任意にN人選んで生成したグループの代表として署名を生成することが可能であるという性質である。
Conventionally, a ring signature method is known as a kind of digital signature method. The ring signature scheme is a digital signature scheme having the following properties.
The first property is that the signer can generate a signature as a representative of a group generated by arbitrarily selecting N members.

第2は、N人に含まれているユーザを含めた任意の検証者はN人のうちの1人が署名した事実は検証可能だが、どの1人が署名者であるかを特定するのが困難な性質である。   Second, any verifier, including users included in N people, can verify the fact that one of the N people has signed, but can identify which one is the signer. It is a difficult property.

また、リング署名とは異なる種類のデジタル署名として、従来から指名確認者署名方式が知られている。指名確認者署名方式とは、以下の性質を持つデジタル署名方式である。   Further, as a digital signature of a type different from the ring signature, a designated confirmer signature method is conventionally known. The designated confirmer signature method is a digital signature method having the following properties.

第1は、署名者が任意に選んだユーザを確認者として指名し、その確認者は、署名の正当性を検証でき、それ以外のユーザは署名の正当性を検証できないという性質である。   The first is that a signer arbitrarily selects a user as a confirmer, the confirmer can verify the validity of the signature, and other users cannot verify the validity of the signature.

第2は、署名者に確認者として指名されていないユーザは一人では署名の正当性を検証できないが、署名者に確認者として指名されているユーザと指名されていないユーザが対話的に証明をすることによって、指名されていないユーザも署名の正当性を確認することができるという性質である。   Second, the user who is not designated as the confirmer by the signer cannot verify the validity of the signature alone, but the user who is designated as the confirmer by the signer and the user who is not designated interactively prove it. By doing so, a user who has not been designated can check the validity of the signature.

以上のようなリング署名方式及び指名確認者署名に関連する他の先行技術文献情報としては、後で引用する非特許文献1−3などがある。   Other prior art document information related to the ring signature method and the designated confirmer signature as described above includes non-patent documents 1-3 cited later.

だが、リング署名には、署名者が匿名性を持つ反面、署名の検証者が制限されないという不都合があり、一方、指名確認者署名には、署名を検証可能な者を確認者または確認者が対話する検証者に制限できる反面、署名者の匿名性が無いという不都合がある。このような実情を考慮し、リング署名方式で署名されたデジタル署名の利用・検証を署名者が希望する範囲のみで行うように制限し得る技術が特許文献1に開示されている。   However, the ring signature has the inconvenience that the signer has anonymity, but the verifier of the signature is not restricted. On the other hand, in the nominated checker signature, the person who can verify the signature is confirmed by the confirmer or the confirmer. While it can be limited to verifiers who interact with each other, there is an inconvenience that there is no anonymity of the signer. In consideration of such a situation, Japanese Patent Application Laid-Open No. 2004-228561 discloses a technique that can restrict use / verification of a digital signature signed by the ring signature method only within a range desired by the signer.

また、暗号化するメッセージを知っていなければ、暗号文を作れない頑強性という性質をもつ暗号方式として、クラマー・シャウプ暗号と呼ばれる方式が非特許文献4に開示されている。
M.阿部、M.大久保、K.鈴木(M. Abe, M. Ohkubo, K. Suzuki)著、「1−アウト−オブ−n・シグネチャーズ・フローム・ア・バラエティ・オブ・キーズ(1-out-of-n Signatures from a Variety of Keys)」、アジアクリプト2002(ASIACRYPT2002)、LNCS 2501、pp.415−432、2002年 A.フジオカ、T.オカモト、K.オオタ(A. Fujioka, T. Okamoto, K. Ohta)著、「インタラクティブ・バイ−プルーフ・システムズ・アンド・アンデナイアブル・シグネチャー・スキームズ(Interactive Bi-Proof Systems and Undeniable Signature Schemes)」、ユーロクリプト'91(EUROCRYPT'91)、LNCS 547、pp.243−256、1992年 M.ミヘルス、M.スタドラー(M. Michels, M. Stadler)著、「エフィシェント・コンバーチブル・アンデナイアブル・シグネチャー(エクステンデッド・アブストラクト)(Efficient Convertible Undeniable Signature (Extended Abstract)」、ピーアールオーシー・フォース・インターナショナル・ワークショップ・オン・セレクテッド・エリアズ・イン・クリプトグラフィー−エスエイシー'97(Proc. 4th International Workshop on selected Areas in Cryptography - SAC'97)、pp.231−244、1997年 R.クラマー、V.シャウプ(R. Cramer, V.Shoup)著、「ア・プラクティカル・パブリック・キー・クリプトシステム・プロバブリー・セキュア・アゲインスト・アダプティブ・チョーズン・サイファテキスト・アタック(A Practical Public Key Cryptosystem Provably Secure against Adaptive Chosen Ciphertext Attack)」、クリプト’98(CRYPTO'98) LNCS 1462, pp. 13−25、1998年 特開2006−203826号公報
Further, Non-Patent Document 4 discloses a method called a Kramer-Shoop cipher as an encryption method having the property of robustness that a ciphertext cannot be created unless the message to be encrypted is known.
M.M. Abe, M.M. Okubo, K.K. Written by M. Abe, M. Ohkubo, K. Suzuki, “1-out-of-n Signatures from a Variety of Keys) ", Asia Crypt 2002 (ASIACRYPT2002), LNCS 2501, pp.415-432, 2002 A. Fujioka, T.W. Okamoto, K.M. O. (A. Fujioka, T. Okamoto, K. Ohta), "Interactive Bi-Proof Systems and Undeniable Signature Schemes", Eurocrypt ' 91 (EUROCRYPT'91), LNCS 547, pp. 243-256, 1992 M.M. Miherth, M.C. "Efficient Convertible Undeniable Signature (Extended Abstract)" by M. Michels, M. Stadler, PR OC4 Force International Workshop on Selected Areas in Cryptography-SAC '97 (Proc. 4th International Workshop on Selected Areas in Cryptography-SAC '97), pp. 231-244, 1997 R. Kramer, V.M. R. Cramer, V.Shoup, "A Practical Public Key Cryptosystem Provably Secure Against A Practical Public Key Cryptosystem Provably Secure Against" Adaptive Chosen Ciphertext Attack) ”, CRYPTO '98 LNCS 1462, pp. 13-25, 1998 JP 2006-203826 A

しかしながら特許文献1の方式では、他人の署名の一部を元にして、新たに生成した自身の署名に対して対話的検証を行うことにより、元にした他人の署名の正当性を同時に検証可能となってしまう。これにより指名確認者や元の署名者が意図しない署名の正当性を第三者が知り得るという問題がある。   However, in the method of Patent Document 1, it is possible to simultaneously verify the validity of the original signature of another person by performing interactive verification on the newly generated own signature based on a part of the signature of the other person. End up. As a result, there is a problem that a third party can know the validity of a signature that is not intended by the designated confirmer or the original signer.

以下、この問題を具体的に説明する。
対象となる平文mに対する署名のコミットメントをd1=g^(k + Hq(m‖L)) mod p, d2=yc^k mod pとする。このm, d1, d2を用いて、次のd1’,d2’を計算する。
Hereinafter, this problem will be described in detail.
Let the signature commitment for the target plaintext m be d 1 = g ^ (k + H q (m‖L)) mod p, d 2 = y c ^ k mod p. Using these m, d 1 and d 2 , the following d 1 ′ and d 2 ′ are calculated.

d1’=d1・g^(k’ + Hq(m’‖L) - Hq(m‖L)) mod p,
d2’=d2・yc^k’ mod p
但し、k’は乱数、m’は任意の平文。
d 1 '= d 1・ g ^ (k' + H q (m'‖L)-H q (m‖L)) mod p,
d 2 '= d 2・ y c ^ k' mod p
Where k 'is a random number and m' is any plaintext.

このとき、d1’=g^{(k+k’) + Hq(m’‖L)} mod p, d2’=yc^(k+k’) mod pであるから、d1’,d2’は、m’に対する正しいコミットメントである。このため、コミットメントとしてd1’,d2’を用いたm’に対する署名を生成して対話的署名検証を行うことで、検証に成功すれば対象の署名も正当であり、検証に失敗すれば対象の署名も不正であると判断できる。これにより、対象とする署名について対話的署名検証を行わずに、その署名検証が可能となってしまう。 At this time, d 1 '= g ^ {(k + k') + H q (m'‖L)} mod p, d 2 '= y c ^ (k + k') mod p, so d 1 ', D 2 ' is the correct commitment to m '. Therefore, by generating a signature for m ′ using d 1 ′ and d 2 ′ as a commitment and performing interactive signature verification, if the verification succeeds, the target signature is also valid, and if verification fails It can be determined that the target signature is also illegal. This makes it possible to verify the signature of the target signature without performing interactive signature verification.

つまり、本来ならば署名者が指定した確認者と、確認者が許可した検証者に対してのみその署名の正当性を示すべきであるにもかかわらず、間接的に、署名生成可能な第三者が、知りたいと思う署名の正当性を確認することができてしまう。   In other words, the signature can be indirectly generated even though it should be shown only to the confirmer designated by the signer and the verifier permitted by the confirmer. Can verify the validity of the signature that the person wants to know.

本発明は上記実情を考慮してなされたもので、リング署名の利用・検証を、署名者が希望する範囲のみで行うように確実に制限し得るデジタル署名システム、装置及びプログラムを提供することを目的とする。   The present invention has been made in view of the above circumstances, and provides a digital signature system, apparatus, and program capable of reliably restricting the use and verification of a ring signature only to the extent desired by the signer. Objective.

本発明の一局面は、署名者としてのユーザに固有の秘密鍵情報(x_i)及びこの署名者を含み当該署名者が選択した他の複数ユーザの公開鍵情報(y_1, y_2, … y_n)及び署名者が指名した確認者の複数の公開鍵情報(c_C,d_C,h_C)を用いて、任意のデジタル情報(m)に対するリング署名を生成するデジタル署名装置と、前記リング署名を検証する際に、前記確認者の複数の公開鍵情報に対応する複数の秘密鍵情報(x_C1,x_C2,y_C1,y_C2,s_C)に基づいて、当該リング署名を検証する確認者用署名検証装置と、前記リング署名を検証する際に、前記確認者用署名検証装置との間の対話証明を介して、当該リング署名を検証する検証者用署名検証装置とを備えたデジタル署名システムである。   One aspect of the present invention includes secret key information (x_i) unique to a user as a signer, and public key information (y_1, y_2, ... y_n) of other users including the signer and selected by the signer, and A digital signature device that generates a ring signature for arbitrary digital information (m) using a plurality of public key information (c_C, d_C, h_C) of a confirmer designated by a signer, and when verifying the ring signature , A verifier signature verification device that verifies the ring signature based on a plurality of private key information (x_C1, x_C2, y_C1, y_C2, s_C) corresponding to the plurality of public key information of the confirmer, and the ring signature Is a digital signature system provided with a verifier signature verification device that verifies the ring signature through a proof of dialogue with the verifier signature verification device.

なお、本発明の一局面は、各装置からなる全体構成を「システム」として表現したが、これに限らず、全体構成又は各装置を「装置」、「プログラム」、「方法」又は「コンピュータ読み取り可能な記憶媒体」として表現してもよい。   Note that in one aspect of the present invention, the entire configuration including each device is expressed as a “system”, but the present invention is not limited to this, and the entire configuration or each device is expressed as “device”, “program”, “method”, or “computer-readable” It may be expressed as “possible storage medium”.

(作用)
本発明の一局面は、署名者としてのユーザに固有の秘密情報(x_i)及びこの署名者を含み当該署名者が選択した他の複数のユーザの公開鍵情報(y_1, y_2, … y_n)及び署名者が指名した確認者の公開鍵情報(c_C,d_C,h_C)を用いて、任意のデジタル情報(m)に対するリング署名を生成する。
(Function)
One aspect of the present invention is that secret information (x_i) unique to a user as a signer and public key information (y_1, y_2,... Y_n) of other users selected by the signer including the signer and A ring signature for arbitrary digital information (m) is generated using the public key information (c_C, d_C, h_C) of the confirmer designated by the signer.

これにより、署名者は、リング署名に含めたい他のユーザとの事前やりとり無しで他のユーザの公開鍵情報を任意に選ぶことができ、リング署名からは各ユーザのうちの誰が署名したかが検証者には全くわからないという特徴を持ったリング署名を生成できる。   As a result, the signer can arbitrarily select the public key information of other users without prior interaction with other users who want to be included in the ring signature. A ring signature with the feature that the verifier does not know at all can be generated.

これに加え、署名者が署名時に指名した特定の確認者だけが検証でき、それ以外の検証者は一人では署名の正当性を検証できないが、先述の特定の確認者と対話を行うことで特定の確認者以外の検証者も署名の正当性を知ることができる署名を生成できる。   In addition to this, only the specific confirmer designated by the signer at the time of signing can be verified, and other verifiers cannot verify the validity of the signature alone, but they can be identified by interacting with the specific confirmer described above. A verifier other than the verifier can also generate a signature that can know the validity of the signature.

更に、過去に別の署名者が生成した署名情報の一部を使って、不正に新たな署名を生成した場合、署名検証に失敗することにより、リング署名の利用・検証を、署名者が希望する範囲のみで行うように確実に制限することができる。   Furthermore, when a new signature is illegally generated using a part of signature information generated by another signer in the past, the signer desires to use / verify the ring signature by failing the signature verification. It can be surely limited to be performed only in the range to be performed.

以上説明したように本発明によれば、リング署名の利用・検証を、署名者が希望する範囲のみで確実に行うように制限できる。   As described above, according to the present invention, the use / verification of a ring signature can be limited so as to be reliably performed only within a range desired by the signer.

以下、本発明の一実施形態について図面を用いて説明するが、その前に、本発明の実施形態に関連するクラマー・シャウプ暗号の概要を述べる(詳細は非特許文献4参照。)。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings. Before that, an outline of the Kramer-Shoop cipher related to the embodiment of the present invention will be described (refer to Non-Patent Document 4 for details).

[公開鍵・秘密鍵ペア生成]
公開パラメータとして素数位数qの乗法巡回群Gとその生成元g_1と汎用一方向性ハッシュ関数を入力とし、以下の処理を行う。
[Public / private key pair generation]
As public parameters, the multiplicative cyclic group G of prime order q, its generator g_1, and the general-purpose one-way hash function are input, and the following processing is performed.

(1)g_1, g_2 ∈ G をランダムに選択する。
(2)x_1, x_2, y_1, y_2, z ∈ Z_qをランダムに選択する。
(3)c=g_1^{x_1}g_2^{x_2}, d=g_1^{y_1}g_2^{y_2}, h=g_1^zを計算する。
(4)ハッシュ関数Hを汎用一方向性ハッシュ関数の集合から選択する。
(5)公開鍵(g_1, g_2, c, d, h, H)、秘密鍵(x_1, x_2, y_1, y_2, z)を出力する。
(1) Select g_1, g_2 ∈ G at random.
(2) x_1, x_2, y_1, y_2, z ∈ Z_q are selected at random.
(3) Calculate c = g_1 ^ {x_1} g_2 ^ {x_2}, d = g_1 ^ {y_1} g_2 ^ {y_2}, h = g_1 ^ z.
(4) The hash function H is selected from a set of general-purpose one-way hash functions.
(5) Output the public key (g_1, g_2, c, d, h, H) and the secret key (x_1, x_2, y_1, y_2, z).

[暗号化]
公開鍵(g_1, g_2, c, d, h, H)、メッセージm ∈ Gを入力とし、以下の処理を行う。
[encryption]
The public key (g_1, g_2, c, d, h, H) and the message m ∈ G are input and the following processing is performed.

(1)r ∈ Z_qをランダムに選択する。
(2)u_1 = g_1^r, u_2 = g_2^r, e=h^{r}・mを計算する。
(3)α=H(u_1, u_2, e)を計算する。
(4)v = c^r・d^{rα}を計算する。
(5)暗号文(u_1, u_2, e, v)を出力する。
(1) R∈Z_q is selected at random.
(2) Calculate u_1 = g_1 ^ r, u_2 = g_2 ^ r, e = h ^ {r} · m.
(3) α = H (u_1, u_2, e) is calculated.
(4) Calculate v = c ^ r · d ^ {rα}.
(5) Output ciphertext (u_1, u_2, e, v).

[復号]
暗号文(u_1, u_2, e, v)を入力とし、以下の処理を行う。
[Decryption]
The ciphertext (u_1, u_2, e, v) is input and the following processing is performed.

(1)α=H(u_1, u_2, e)を計算する。
(2)u_1^{x_1+y_1・α}u_2^{x_2+y_2・α}= Vが成り立つか否かを検証し、否の場合には無効な暗号文として拒絶して処理を終了する。
(3)m = e/{u_1^z}を計算し、平文として出力する。
以上がクラマー・シャウプ暗号の概要である。
(1) α = H (u_1, u_2, e) is calculated.
(2) u_1 ^ {x_1 + y_1 · α} u_2 ^ {x_2 + y_2 · α} = It is verified whether V holds, and if not, it is rejected as an invalid ciphertext and the process is terminated.
(3) m = e / {u_1 ^ z} is calculated and output as plain text.
The above is an overview of the Kramer-Shoop cipher.

続いて、本発明の一実施形態について説明する。
(1. 本発明の実施形態の概要)
図7は本発明の実施形態方式の概略を示す模式図である。本実施形態方式は、過去に別の署名者が生成した署名情報の一部を使って、不正に新たな署名を生成しようとしても、確認者Cの検証に失敗する。そのため、署名検証は、署名者が信用する確認者が決めた範囲でのみ確実に行われる。
Subsequently, an embodiment of the present invention will be described.
(1. Overview of Embodiment of the Present Invention)
FIG. 7 is a schematic diagram showing an outline of the system according to the embodiment of the present invention. In the present embodiment, even if an attempt is made to generate a new signature illegally using a part of signature information generated by another signer in the past, verification by the confirmer C fails. Therefore, signature verification is reliably performed only to the extent determined by the confirmer trusted by the signer.

(1.1 準備)
符号Gをグループメンバの集合とする。U_j (j = 1,…,n)をメンバ集合Gに属するメンバ、U_iを署名者とする。符号Cを、署名者に指定された確認者とする。符号Vを、権限の無い一般の検証者とする。
(1.1 Preparation)
Let G be a set of group members. U_j (j = 1,..., N) is a member belonging to the member set G, and U_i is a signer. Let C be the confirmer designated as the signer. Let V be a general verifier without authority.

ここで、q|p-1を満たす大きな素数をp,qとする。位数がqであるpの部分群の生成元をg、g_1、g_2とする(但し、下線_の右側は下付添字を表す)。メンバU_jはx_j∈Z_qを秘密鍵、y_j=g^{x_j} mod pとし、公開鍵y_jを公開する(但し、 ^ は、べき乗を表す)。さらに、確認者の秘密鍵をx_C1、x_C2、y_C1、y_C2、s_C ∈Z_q、公開鍵をc_C = {g_1}^{x_C1}・{g_2}^{x_C2} mod p、d_C={g_1}^{y_C1}・{g_2}^{y_C2} mod p、h_C = {g_1}^{s_C} mod pとする。また、符号H:{0, 1}^*→{0, 1}^l,H_q:{0, 1}^*→Z_qを衝突困難性ハッシュ関数とする。更に、符号Lを署名者U_iが任意に選んだユーザグループの公開鍵リストとし、ここでは簡単のためにL={y_1, y_2, ・・・, y_n}に固定する。   Here, p and q are large prime numbers satisfying q | p−1. The generation sources of the subgroup of p whose order is q are g, g_1, and g_2 (however, the right side of the underline _ represents a subscript). The member U_j uses x_jεZ_q as a secret key, y_j = g ^ {x_j} mod p, and discloses the public key y_j (where ^ represents a power). In addition, the confirmer's private key is x_C1, x_C2, y_C1, y_C2, s_C ∈Z_q, the public key is c_C = {g_1} ^ {x_C1} ・ {g_2} ^ {x_C2} mod p, d_C = {g_1} ^ { y_C1} · {g_2} ^ {y_C2} mod p, h_C = {g_1} ^ {s_C} mod p. Also, the code H: {0, 1} ^ * → {0, 1} ^ l, H_q: {0, 1} ^ * → Z_q is a collision difficulty hash function. Furthermore, the code L is a public key list of a user group arbitrarily selected by the signer U_i, and here, for simplicity, L = {y_1, y_2,..., Y_n} is fixed.

(1.2 署名生成)
署名者Uiは、以下の手順により平文mに対する指名確認者リング署名σを生成する。
(1.2 Signature generation)
The signer U i generates a designated confirmer ring signature σ for the plaintext m by the following procedure.

(1) 平文m、公開鍵暗号リストLに対して、クラマー・シャウプ暗号を変形したコミットメントCC = (u_1, u_2, e, v)を下式により計算する。但し、r ∈Z_qとする。   (1) Commitment CC = (u_1, u_2, e, v), which is a modified version of the Kramer-Shoop cipher, is calculated from the plaintext m and the public key cipher list L by the following equation. However, r ∈ Z_q.

u_1 = g_1^r mod p,
u_2 = g_2^r mod p,
e =h_C^r・g_1^Hq(m‖L),
b =H_q(u_1‖u_2‖e),
v =c_C^r・d_C^rb mod p
(2) T_i = g^α mod p、 c_{i+1} = H(CC‖T_i)を計算する。但し、α∈Z_q。
u_1 = g_1 ^ r mod p,
u_2 = g_2 ^ r mod p,
e = h_C ^ r · g_1 ^ Hq (m‖L),
b = H_q (u_1‖u_2‖e),
v = c_C ^ r ・ d_C ^ rb mod p
(2) Calculate T_i = g ^ α mod p, c_ {i + 1} = H (CC‖T_i). However, α∈Z_q.

(3) j = i+1, . . . , n, 1, . . . , i-1について、
T_j = g^s_j・ y_j^c_j mod p,
c_{j+1} mod n = H(CC‖T_j)
を順次計算する。但し、s_j ∈ Z_q。
(3) For j = i + 1,..., N, 1,.
T_j = g ^ s_j ・ y_j ^ c_j mod p,
c_ {j + 1} mod n = H (CC‖T_j)
Are calculated sequentially. However, s_j ∈ Z_q.

(4) 秘密鍵x_iを用いてs_i = α−x_i・c_i mod qを計算し、
署名σ = (c_1, s_1, . . . , s_n, CC, L)を出力する。
(4) Calculate s_i = α−x_i · c_i mod q using the secret key x_i,
The signature σ = (c_1, s_1,..., S_n, CC, L) is output.

(1.3 署名検証)
確認者Cは、以下の手順により、平文mに対する署名σ = (c_1, s_1, . . . , s_n, CC, L)の正当性を検証する。
(1.3 Signature verification)
The confirmer C verifies the validity of the signature σ = (c_1, s_1,..., S_n, CC, L) for the plaintext m by the following procedure.

(1) まずb = H_{q}(u_1‖u_2‖e)を計算し、次に下式が成り立つことをそれぞれ検証する(コミットメントの正当性検証)。   (1) First, b = H_ {q} (u_1‖u_2‖e) is calculated, and then each of the following equations is verified (validity verification of commitment).

v =u_1^(x_{c1}+by_{c1})・u2^(x_{c2}+by_{c2}) mod p,
g^{H_{q}(m‖L)} = e/{ u_ 1}^(s_c) mod p.
(2) j = 1, . . . , nについてT_j = g^s_j・ y_j^c_j mod p、c_(j+1) = H(CC‖T_j)を順次計算し,c_1 = c_(n+1)となることを検証する(コミットメントに対するリング署名の正当性検証)。
v = u_1 ^ (x_ {c1} + by_ {c1}) ・ u2 ^ (x_ {c2} + by_ {c2}) mod p,
g ^ {H_ {q} (m‖L)} = e / {u_ 1} ^ (s_c) mod p.
(2) For j = 1,..., N, T_j = g ^ s_j ・ y_j ^ c_j mod p, c_ (j + 1) = H (CC‖T_j) are calculated sequentially, and c_1 = c_ (n + 1 ) (Validity verification of the ring signature against the commitment).

(1)(2) 両方の検証が成功した場合のみ署名検証成功とする。   (1) (2) Only when both verifications are successful, the signature verification is successful.

(1.4 対話的署名検証)
検証者Vは、以下の確認者Cとの対話により、平文mに対する署名σ = (c_1, s_1, . . . , s_n,CC,L)の正当性を検証する。
(1.4 Interactive signature verification)
The verifier V verifies the validity of the signature σ = (c_1, s_1,..., S_n, CC, L) for the plaintext m through the following dialogue with the confirmer C.

(1) 検証者Vは,j = 1, . . . , nについてT_j =g^s_j・ y_j^c_j mod p、 c_{j+1}= H(CC‖T_j)を順次計算し,c_1=c_{n+1}となることを検証する。成り立たない場合は署名検証失敗とする(コミットメントに対するリング署名の正当性検証)。   (1) Verifier V sequentially calculates T_j = g ^ s_j, y_j ^ c_j mod p, c_ {j + 1} = H (CC‖T_j) for j = 1,. Verify that c_ {n + 1}. If it does not hold, the signature verification fails (validity verification of the ring signature against the commitment).

(2) 検証者Vは、乱数α_1、 β_1 ∈Z_qを生成し、
a_1 = g_1^α_1・c_C^β_1 mod p,
を計算して確認者Cへ送る。
(2) Verifier V generates random numbers α_1, β_1 ∈ Z_q,
a_1 = g_1 ^ α_1 ・ c_C ^ β_1 mod p,
Is calculated and sent to confirmer C.

(3) 確認者Cは、乱数k_1、 k_2、 k_3、 k_4、 k_5、k_1、 k_2、 k_3、 k_4、k_5、w ∈Z_qを選び、以下のk_1、 k_2、 k_3、 k_4、k_5、 k_1、 k_2、 k_3、 k_4、k_5、wを(mod p 上で) 計算して検証者Vへ送る。 (3) Confirmer C selects random numbers k_1, k_2, k_3, k_4, k_5, ~ k_1, ~ k_2, ~ k_3, ~ k_4, ~ k_5, w ∈ Z_q, and k_1, k_2, k_3, k_4, k_5, send ~ k_1, ~ k_2, ~ k_3 , ~ k_4, ~ k_5, the w (on the mod p) calculated by the verifier V.

r_1 = (g_1^k_1)(g_2^k_2)、
r_2 = (g_1^k_3)(g_2^k_4)、
r_3 = (u_1^k_1) (u_2^k_2) ((u_1^b)k_3)((u_2^b)k_4) 、
r_4 = g_1^k_5、r_5 = u_1^k_5、
r_1 = (g_1^(k_1)) (g_2^(k_2))、
r_2 = (g_1^(k_3)) (g_2^(k_4))、
r_3 = (g_1^(k_1)) (g_2^(k_2))(u_1^b)^( k_3) (u_2^b)^( k_4)、
r_4 = (u_1)^(k_5)、
r_5 = e^(k_5)
(4) 検証者Vは、α_1, β_1を確認者Cへ送る。
r_1 = (g_1 ^ k_1) (g_2 ^ k_2),
r_2 = (g_1 ^ k_3) (g_2 ^ k_4),
r_3 = (u_1 ^ k_1) (u_2 ^ k_2) ((u_1 ^ b) k_3) ((u_2 ^ b) k_4),
r_4 = g_1 ^ k_5, r_5 = u_1 ^ k_5,
~ R_1 = (g_1 ^ ( ~ k_1)) (g_2 ^ ( ~ k_2)),
~ R_2 = (g_1 ^ ( ~ k_3)) (g_2 ^ ( ~ k_4)),
R_3 = (g_1 ^ ( k_1)) (g_2 ^ ( k_2)) (u_1 ^ b) ^ ( k_3) (u_2 ^ b) ^ ( k_4),
~ R_4 = (u_1) ^ ( ~ k_5),
~ R_5 = e ^ ( ~ k_5)
(4) Verifier V sends α_1 and β_1 to confirmer C.

(5) 確認者Cは、a_1=g_1^α_1・c_C^β_1 mod p が成り立つかを検証し、成り立たない場合はプロトコルを終了する。成り立つ場合は、以下のs_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5,を(mod q 上で) 計算して、検証者Vに送る。 (5) The confirmer C verifies whether a_1 = g_1 ^ α_1 · c_C ^ β_1 mod p holds, and terminates the protocol if not. If true, calculate the following s_c1, s_c2, s_c3, s_c4, s_c5, ~ s_c1, ~ s_c2, ~ s_c3, ~ s_c4, ~ s_c5 (on mod q) and send to verifier V.

s_c1 = k_1 − (β_1 + w)・x_{c1},
s_c2 = k_2 - (β_1 + w)・x_{c2},
s_c3 = k_3 - (β_1 + w)・y_{c1},
s_c4 = k_4 - (β_1 + w)・y_{c2},
s_c5 = k_5 - (β_1 + w)・s_c,
s_c1 = k_1 − (β_1 + w)・k_1,
s_c2 = k_2 - (β_1 + w)・k_2,
s_c3 = k_3 - (β_1 + w)・k_3,
s_c4 = k_4 - (β_1 + w)・k_4,
s_c5 = k_5 - (β_1 + w)・k_5.
(6) 検証者Vは、下式を(mod p 上で) 計算する。
s_c1 = k_1 − (β_1 + w) ・ x_ {c1},
s_c2 = k_2-(β_1 + w) ・ x_ {c2},
s_c3 = k_3-(β_1 + w) ・ y_ {c1},
s_c4 = k_4-(β_1 + w) ・ y_ {c2},
s_c5 = k_5-(β_1 + w) ・ s_c,
~ S_c1 = ~ k_1 − (β_1 + w) ・ k_1,
~ S_c2 = ~ k_2 - (β_1 + w) · k_2,
~ S_c3 = ~ k_3 - (β_1 + w) · k_3,
~ S_c4 = ~ k_4-(β_1 + w) ・ k_4,
~ S_c5 = ~ k_5-(β_1 + w) ・ k_5.
(6) Verifier V calculates the following equation (on mod p).

r_1 = g_1^{s_c1}・g_2^{s_c2}・c^(β_1 + w) ,
r_2 =(g_1)^{s_c3}・(g_2)^{s_c4}・(d^(β_1 + w)) ,
r_4 = g_1^{s_c5}・h_C^(β_1 + w),
r_1 = g_1^{s_c1} g_2^{s_c2}・r_1^{{β_1}+w},
r_2 = g_1^{s_c3}・g_2^{s_c4}・r_2^{{β_1}+w},
r_3 = u_1^{s_c1}・u_2^{s_c2} (u_1^b)^{s_c3}・(u_2^b)^{s_c4}・ r_3^{{β_1}+w},
r_4 = g_1^{s_c5}・r_4^{{β_1}+w},
r_5 = u_1^{s_c5}・r_5^{{β_1}+w}
上記の式がすべて成り立つことを確認した後、
r_3 = u_1^{s_c1}・u_2^{s_c2}・(u_1^b)^{s_c3}・(u_2^b) ^{s_c4}・v^{{β_1}+w},
r_5 = u_1^{s_c5}・(eh_C{H_q(m‖L)})^{{β_1}+w}
の2つの式が両方成り立てば検証成功、どちらか1つでも成り立たなければ検証失敗となる。
r_1 = g_1 ^ {s_c1} ・ g_2 ^ {s_c2} ・ c ^ (β_1 + w),
r_2 = (g_1) ^ {s_c3} ・ (g_2) ^ {s_c4} ・ (d ^ (β_1 + w)),
r_4 = g_1 ^ {s_c5} ・ h_C ^ (β_1 + w),
~ R_1 = g_1 ^ { ~ s_c1} g_2 ^ { ~ s_c2} ・r_1 ^ {{β_1} + w},
R_2 = g_1 ^ { s_c3} ・ g_2 ^ { s_c4} ・r_2 ^ {{β_1} + w},
R_3 = u_1 ^ { s_c1} ・ u_2 ^ { s_c2} (u_1 ^ b) ^ { s_c3} ・ (u_2 ^ b) ^ { s_c4} ・ r_3 ^ {{β_1} + w},
~ R_4 = g_1 ^ {s_c5} ・ r_4 ^ {{β_1} + w},
R_5 = u_1 ^ {s_c5} ・ r_5 ^ {{β_1} + w}
After confirming that all the above equations hold,
r_3 = u_1 ^ {s_c1} ・ u_2 ^ {s_c2} ・ (u_1 ^ b) ^ {s_c3} ・ (u_2 ^ b) ^ {s_c4} ・ v ^ {{β_1} + w},
r_5 = u_1 ^ {s_c5} ・ (eh_C ^ {H_q (m‖L)}) ^ {{β_1} + w}
If both of these expressions hold, the verification succeeds, and if either of them does not hold, the verification fails.

(2. 安全性)
特許文献1の方式では、他人の署名の一部を元にして、新たに生成した自身の署名に対して対話的検証を行うことにより、元にした他人の署名の正当性を同時に検証可能となってしまう。これにより指名確認者や元の署名者が意図しない署名の正当性を第三者が知り得るという問題があった。本実施形態方式は、この問題に直接関係する署名の不可視性(Invisibility of Signature)を再定義しその定義を満たすことを示す。また、その他の安全性の定義も示す。
(2. Safety)
In the method of Patent Document 1, it is possible to simultaneously verify the validity of the original signature of another person by performing interactive verification on the newly generated own signature based on a part of the signature of the other person. turn into. As a result, there is a problem that a third party can know the validity of a signature that is not intended by the designated confirmer or the original signer. The method of the present embodiment shows that the signature invisibility (Invisibility of Signature) directly related to this problem is redefined and the definition is satisfied. It also provides other safety definitions.

以下は、安全な指名確認者リング署名が満たす条件を示し、本実施形態方式がこれらの条件(i)〜(vi)を満たしていることを証明する。   The following shows the conditions that the secure designated confirmer ring signature satisfies, and proves that the method of the present embodiment satisfies these conditions (i) to (vi).

(i)署名の完全性(Completeness of Signature)
署名者が正しい動作をした場合には、確認者が検証可能な署名を構成できること。
(I) Completeness of Signature
If the signer behaves correctly, the verifier can configure a verifiable signature.

(ii)署名の偽造不可能性(Unforgeability of Signature)
リング署名を構成するグループのメンバ以外が署名を偽造できないこと。
(Ii) Unforgeability of Signature
Only members of the group that makes up the ring signature can forge the signature.

(iii)署名者の曖昧性(Signer Ambiguity)
署名の情報から署名者の情報が漏れないこと。
(Iii) Signer Ambiguity
The signer's information should not be leaked from the signature information.

(iv)署名の不可視性(Invisibility of Signature)
敵Aは、全ての公開情報を得られるとともに、確認者C 以外の全てのユーザと結託することができる。また敵Aは、任意の署名について確認者オラクルOcを用いて対話的署名検証を行うことができる。Aは、これら試行の後、二つの平文m_b (b∈{0, 1})と署名者U_i,公開鍵リストLを決定し、テストオラクルπに入力する,テストオラクルπは、ランダムにb∈{0, 1}を選択し、署名σ = Sig(m_b, x_i, L, y_C)をAに返す。その後、Aは再びOcにアクセスできるが、σについて尋ねることはできないこととする。最後に敵Aはb’∈{0, 1}を出力する。b’ = bのとき敵Aは攻撃に成功したといい、この成功確率が無視できるほど小さいとき、指名確認者リング署名方式は,署名の不可視性(Invisibility of Signature)を持つ。
(Iv) Invisibility of Signature
Enemy A can obtain all public information and can collaborate with all users other than confirmer C. Enemy A can perform interactive signature verification for any signature using the confirmer Oracle Oc. After these trials, A determines two plaintexts m_b (b∈ {0, 1}), a signer U_i, and a public key list L, and inputs them into the test oracle π. Select {0, 1} and return signature σ = Sig (m_b, x_i, L, y_C) to A. After that, A can access Oc again, but cannot ask about σ. Finally, enemy A outputs b'∈ {0, 1}. When b '= b, the enemy A is said to have succeeded in the attack. When this success probability is negligibly small, the designated confirmer ring signature scheme has invisibility of signature.

(v)検証の一貫性(Consistency of Verification)
確認者Cや検証者Vが正しい動作をした場合は、正しく検証ができること。
(V) Consistency of Verification
When the confirmer C or the verifier V performs the correct operation, the verification can be performed correctly.

(vi)検証の非伝達性(Non-transferability of Verification)
確認者Cの秘密鍵に関する情報が対話証明において、検証者Vにほとんど漏れないこと。
(Vi) Non-transferability of verification
Information regarding the secret key of the confirmer C is hardly leaked to the verifier V in the dialogue proof.

本実施形態方式は、以上の要求条件に対して以下の定理が成り立つ。   In the present embodiment, the following theorem holds for the above requirements.

(定理1:署名の完全性)
正しい秘密鍵をもつ署名者U_iがアルゴリズムに従い生成したリング署名は、確認者Cの署名検証に常に成功する。
証明:プロトコルから明らかである。
(Theorem 1: Signature completeness)
The ring signature generated by the signer U_i having the correct private key according to the algorithm always succeeds in verifying the signature of the confirmer C.
Proof: It is clear from the protocol.

(定理2:署名の偽造不可能性)
本実施形態方式は、ランダムオラクルモデルと離散対数問題の困難性を仮定すると、グループメンバ以外の任意の敵が署名の偽造に成功する確率は無視できるほど小さい。
(Theorem 2: Impossibility of signature forgery)
In the present embodiment, assuming the difficulty of the random oracle model and the discrete logarithm problem, the probability that any enemy other than the group member succeeds in forging the signature is so small that it can be ignored.

証明(Sketch):本実施形態方式が偽造可能であると仮定すると、非特許文献1により提案されたリング署名を偽造可能な敵を構成することができる。   Proof (Sketch): Assuming that the scheme of this embodiment can be forged, an enemy capable of forging the ring signature proposed by Non-Patent Document 1 can be constructed.

(定理3:署名者の曖昧性)
任意のメッセージに対するリング署名から署名者を特定できる確率は1/nである。
(Theorem 3: Signer Ambiguity)
The probability that the signer can be identified from the ring signature for an arbitrary message is 1 / n.

証明(Sketch):s_iを除くs_jはZ_qから一様にランダムに選ばれ、s_iはαがZ_q上から一様にランダムに選ばれるので、s_iもZ_q上に一様に分布する。また、CC = (u_1, u_2, e, v)はメンバ公開鍵には関係しない。従って、グループメンバとメッセージmを固定すると、(s_1, …, s_n, (u_1, u_2, e, v))は、署名者が誰であるかに関わらず、同様にnqのバリエーションをもつ。残りのc_1は、グループメンバのリスト、メッセージm及び(s_1, …, s_n, (u_1, u_2, e, v))より一意に決定できる。よって、署名者を特定できる確率は1/nである。   Proof (Sketch): s_j excluding s_i is chosen uniformly and randomly from Z_q, and s_i is chosen uniformly and randomly from Z_q, so s_i is also uniformly distributed on Z_q. CC = (u_1, u_2, e, v) is not related to the member public key. Accordingly, if the group member and the message m are fixed, (s_1,..., S_n, (u_1, u_2, e, v)) has nq variations similarly regardless of who the signer is. The remaining c_1 can be uniquely determined from the list of group members, the message m, and (s_1,..., S_n, (u_1, u_2, e, v)). Therefore, the probability that the signer can be specified is 1 / n.

(定理4:署名の不可視性)
本実施形態方式は、DDH(decisional Diffie-Hellman)仮定のもとで、署名の不可視性(Invisibility of Signature)を持つ。
(Theorem 4: Signature invisibility)
The system of this embodiment has signature invisibility under the DDH (decisional Diffie-Hellman) assumption.

証明(Sketch):本実施形態方式の署名の不可視性を無視できない確率で破る敵Aを利用して、クラマー・シャウプ暗号の適応的選択暗号文攻撃に対する識別不可能性(Indistinguishability)を破る敵Bを構成する。Bへの入力である公開パラメータ(p, q, g_1, g_2, H_q) および公開鍵(c, d, h)を本実施形態方式の公開パラメータおよび確認者Cの公開鍵(c_C, d_C, h_C)として敵Aに入力し、各ユーザの鍵ペアはランダムに生成して入力する。また、対話的署名検証オラクルOCのシミュレートには,ゼロ知識対話証明(zero-knowledge bi-proof)のシミュレータを用いればよい。 Proof (Sketch): Enemy B that breaks the indistinguishability (Indistinguishability) of the adaptive selection ciphertext attack of the Kramer-Shoop cipher using the enemy A that breaks the invisibility of the signature of this embodiment method with a probability that cannot be ignored Configure. The public parameters (p, q, g_1, g_2, H_q) and the public key (c, d, h) that are inputs to B are the public parameters of the method of this embodiment and the public key (c_C, d_C, h_C) of the confirmer C. ) To enemy A, and each user's key pair is randomly generated and entered. In addition, the simulated interactive signature verification oracle O C, may be used simulator zero-knowledge interactive proofs (zero-knowledge bi-proof) .

敵Aが出力した平文m_a (a∈{0, 1})と公開鍵リストLに対して、m_a = g_1^H(m_a‖L) (a∈{0, 1})を計算してテストオラクルπへ送る。テストオラクルπから送り返された暗号文Enc( m_a)を用いて署名σ = (c_1, s_1, . . . , s_n, Enc( m_a), L)を生成し,敵Aに入力する。最終的に、敵Aが出力したa’を敵Bの出力とする。 Test by computing ~ m_a = g_1 ^ H (m_a 出力 L) (a∈ {0, 1}) against plaintext m_a (a∈ {0, 1}) and public key list L output by enemy A Send to Oracle π. Ciphertext Enc sent back from the test oracle π (~ m_a) signature sigma = was used to generate (c_1, s_1,... , S_n, Enc (~ m_a), L), and inputs the enemy A. Finally, a ′ output by the enemy A is set as the output of the enemy B.

ゼロ知識対話証明のシミュレートの失敗確率はクエリー(query)の回数(多項式回) で抑えられる。また、コミットメント(暗号文)を識別することなく署名の不可視性を破れる確率はランダムしかありえないため無視できる。よって、敵Aが有意な確率で本実施形態方式の署名の不可視性を破れるならば、敵Bは有意な確率でクラマー・シャウプ暗号の識別不可能性を破ることができる。クラマー・シャウプ暗号はDDH仮定のもとで適応的選択暗号文攻撃に対して識別不可能(Indistinguishable)であることから、本実施形態方式はDDH仮定のもとで署名の不可視性を持つと言える。   The failure probability of simulating zero-knowledge dialogue proof can be suppressed by the number of queries (polynomial times). Also, the probability of breaking the invisibility of signatures without identifying commitments (ciphertext) can only be random and can be ignored. Therefore, if the enemy A can break the invisibility of the signature of the present embodiment with a significant probability, the enemy B can break the indistinguishability of the Kramer-Shoop cipher with a significant probability. Since the Kramer-Shoop cipher is indistinguishable against adaptive selection ciphertext attacks under the DDH assumption, it can be said that the scheme of the present embodiment has the invisibility of the signature under the DDH assumption. .

補足説明:なお、DDH仮定とはDDH問題を解くことが困難であるという仮定である。ここで、DDH問題について説明する。素数位数qの乗法巡回群をGとする。ランダムな4つ組(g_1, g_2, u_1, u_2)∈Gの分布をRとする。g_1, g_2 ∈ Gとr ∈ Z_qとをランダムに選び、u_1 = g_1^r、u_2 = g_2^rとした4つ組(g_1, g_2, u_1, u_2)∈Gの分布をDとする。このとき、任意に与えられた4つ組(g_1, g_2, u_1, u_2)が分布R,Dのいずれに属するかを見分ける問題をDDH問題と呼ぶ。上述した本実施形態方式の署名の不可視性は、DDH問題の困難性(DDH仮定)に帰着される。 Supplementary explanation: The DDH assumption is an assumption that it is difficult to solve the DDH problem. Here, the DDH problem will be described. Let G be a multiplicative cyclic group of prime order q. Random quadruplet (g_1, g_2, u_1, u_2 ) the distribution of ∈G 4 and R. g_1, randomly selects and g_2 ∈ G and r ∈ Z_q, u_1 = g_1 ^ r, u_2 = g_2 ^ r and the 4-tuple (g_1, g_2, u_1, u_2 ) the distribution of ∈G 4 and D. At this time, the problem of discriminating whether the arbitrarily given quadruple (g_1, g_2, u_1, u_2) belongs to the distribution R or D is called a DDH problem. The invisibility of the signature of the present embodiment described above results in the difficulty of the DDH problem (assuming DDH).

(定理5:検証の一貫性)
確認者Cと検証者Vの間で行われるリング署名検証プロトコルにおいて、正しいリング署名が検証に失敗する確率及び不正なリング署名が検証に成功する確率は任意の確認者Cに対して無視できる。
(Theorem 5: Consistency of verification)
In the ring signature verification protocol performed between the confirmer C and the verifier V, the probability that the correct ring signature fails to verify and the probability that the illegal ring signature succeeds in verification can be ignored for any confirmer C.

(定理6:検証の非伝達性)
確認者Cと検証者Vの間で行われるリング署名検証プロトコルは、最小知識対話証明(minimum knowledge bi-proof)である(非特許文献2参照)。
(Theorem 6: Non-conveyance of verification)
The ring signature verification protocol performed between the confirmer C and the verifier V is minimum knowledge bi-proof (see Non-Patent Document 2).

証明(定理5,6):本実施形態方式は、非特許文献3に記載の対話証明システム(bi-proof system)を応用している。対話証明システムの完全性(completeness)、安定性(Soundness)、零知識証明性(Zero-Knowledgeness)は、非特許文献3によって証明されており、この性質から一貫性、非伝達性は明らかである。これは本実施形態方式でも成り立つ。   Proof (Theorem 5, 6): The method of this embodiment applies the bi-proof system described in Non-Patent Document 3. The completeness, stability (Soundness), and zero-knowledgeness (Zero-Knowledgeness) of the dialog proof system are proved by Non-Patent Document 3, and the consistency and non-transmissibility are clear from this property. . This is also true in the present embodiment.

以上が本発明の実施形態方式の概要である。続いて、本発明の一実施形態について具体的に説明する。   The above is the outline of the embodiment system of the present invention. Next, an embodiment of the present invention will be specifically described.

(一実施形態)
図1は本発明の一実施形態に係るデジタル署名システムの構成を示すブロック図であり、図2は図1における情報の流れを示す模式図である。このシステムは、複数のユーザ端末10及び各1台のユーザ端末20,30を備えている。各ユーザ端末10,20,30は、コンピュータにより実現される場合、それぞれ各端末10,20,30の機能を実現するためのプログラムが予め記憶媒体又はネットワークから各端末のコンピュータにインストールされて実現される。
(One embodiment)
FIG. 1 is a block diagram showing a configuration of a digital signature system according to an embodiment of the present invention, and FIG. 2 is a schematic diagram showing a flow of information in FIG. This system includes a plurality of user terminals 10 and one user terminal 20 and 30 each. When each user terminal 10, 20, 30 is realized by a computer, a program for realizing the function of each terminal 10, 20, 30 is installed in advance on the computer of each terminal from a storage medium or a network. The

ユーザ端末は、ユーザ端末10,20,30に分類される。
複数のユーザ端末10は、署名者としてのユーザuのユーザ端末10と、リング署名に用いられるグループメンバとしての各ユーザk,…のユーザ端末10,…とを含む。
User terminals are classified into user terminals 10, 20, and 30.
The plurality of user terminals 10 includes a user terminal 10 of the user u as a signer and user terminals 10 of the users k,... As group members used for the ring signature.

各ユーザ端末10は、秘密鍵記憶装置11及び署名生成部12を備えている。   Each user terminal 10 includes a secret key storage device 11 and a signature generation unit 12.

ここで、秘密鍵記憶装置11は、署名者としてのユーザに固有の秘密鍵情報が記憶されるメモリであり、署名生成部12から読出可能となっている。   Here, the secret key storage device 11 is a memory in which secret key information unique to a user as a signer is stored, and can be read from the signature generation unit 12.

署名生成部12は、署名者としてのユーザに固有の秘密鍵情報(x_i)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報(y_j)のリスト(L={y_1, y_2, … , y_n}(但しj = 1, 2, …, n))と、署名者が指名した確認者の複数の公開鍵情報(c_C, d_C, h_C)とに基づいて、任意のデジタル情報(m)に対するリング署名を生成するものであり、具体的には図3及び図4に示すステップST12〜ST17の処理を実行する機能をもっている。   The signature generation unit 12 includes a list (L = {y_1) of private key information (x_i) unique to the user as the signer and public key information (y_j) of the plurality of users including the signer and selected by the signer. , y_2,…, y_n} (where j = 1, 2,…, n)) and multiple public key information (c_C, d_C, h_C) of the confirmer designated by the signer It generates a ring signature for information (m), and specifically has a function of executing the processes of steps ST12 to ST17 shown in FIGS.

これらの機能としては、例えば、署名者の秘密鍵情報(x_i)を秘密鍵記憶装置11に書き込む機能と、デジタル情報(m)、リスト(L)、乱数(r)、確認者の公開鍵情報(c_C, d_C, h_C)及びハッシュ関数(H_{q}( ))に基づいて、コミットメント情報(CC)を計算する機能と、第1乱数情報(α)、コミットメント情報(CC)及びハッシュ関数(H( ))に基づいて、第1リング要素情報(c_{i+1})を計算する機能と、ユーザ番号(j = i+1, …, n, 1, …, i-1)毎に、ユーザ乱数情報(s_j)、ユーザ公開鍵情報(y_j)、第1リング要素情報(c_j)、コミットメント情報(CC)及びハッシュ関数(H( ))に基づいて、第2リング要素情報(c_{j+1} mod n)を順次計算する機能と、第1乱数情報(α)、秘密鍵記憶装置11内の秘密鍵情報(x_i)及び署名者に対応するリング要素情報(c_i)に基づいて、署名者関連情報(s_i)を生成する機能と、1番目のリング要素情報(c_1)、ユーザ乱数情報(s_j)、署名者関連情報(s_i)、コミットメント情報(CC)及びリスト(L)を含むリング署名(σ = (c_1, s_1, …, s_n, CC, L))を出力する機能とが含まれる。   These functions include, for example, a function of writing the signer's private key information (x_i) into the private key storage device 11, digital information (m), list (L), random number (r), and confirmer's public key information. (C_C, d_C, h_C) and a function for calculating commitment information (CC) based on a hash function (H_ {q} ()), first random number information (α), commitment information (CC) and hash function ( H ()) based on the function to calculate the first ring element information (c_ {i + 1}) and for each user number (j = i + 1, ..., n, 1, ..., i-1) , Based on the user random number information (s_j), the user public key information (y_j), the first ring element information (c_j), the commitment information (CC), and the hash function (H ()), the second ring element information (c_ { j + 1} mod n), the first random number information (α), the secret key information (x_i) in the secret key storage device 11, and the signer Function for generating signer related information (s_i) based on ring element information (c_i), first ring element information (c_1), user random number information (s_j), signer related information (s_i), commitment information And a function of outputting a ring signature (σ = (c_1, s_1,..., S_n, CC, L)) including (CC) and a list (L).

署名生成部12の機能は、詳しくは、署名者の秘密鍵情報x_i=log_{g}(y_i)を秘密鍵記憶装置11に書き込む機能と、デジタル情報m、リストL、システムパラメータg_1, g_2、乱数r、確認者の公開鍵情報c_C, d_C, h_C及びハッシュ関数H_{q}( )に基づいて、式u_1 = g_1^r mod p, 式u_2 = g_2^r mod p, 式e =h_C^r・g_1^H_{q}(m‖L), 式b =H_{q}(u_1‖u_2‖e), 式v =c_C^r・d_C^rb mod p により、コミットメント情報CC = (u_1, u_2, e, v)を計算する機能(但し、‖は連接を表す)と、システムパラメータg、第1乱数情報α、コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_i = g^α mod p 及び式c_{i+1} = H(CC‖T_i)により、第1リング要素情報c_{i+1}を計算する機能と、ユーザ番号j = i+1, …, n, 1, …, i-1毎に、システムパラメータg、ユーザ乱数情報s_j、ユーザ公開鍵情報y_j、第1リング要素情報c_j 、コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_{j+1} mod n = H(CC‖T_j)により、第2リング要素情報c_{j+1} mod n を順次計算する機能と、第1乱数情報α、秘密鍵記憶装置11内の秘密鍵情報x_i及び署名者に対応するリング要素情報c_iに基づいて、式 s_i = α − x_i・c_i mod q により、署名者関連情報s_iを生成する機能と、1番目のリング要素情報c_1、ユーザ乱数情報s_j、署名者関連情報s_i、コミットメント情報CC及びリストLを含むリング署名σ = (c_1, s_1, …, s_n, CC, L) を出力する機能とを含んでいる。   Specifically, the signature generation unit 12 has a function of writing the signer's private key information x_i = log_ {g} (y_i) in the private key storage device 11, digital information m, list L, system parameters g_1, g_2, Based on the random number r, the verifier's public key information c_C, d_C, h_C and the hash function H_ {q} (), the expression u_1 = g_1 ^ r mod p, the expression u_2 = g_2 ^ r mod p, the expression e = h_C ^ r · g_1 ^ H_ {q} (m‖L), equation b = H_ {q} (u_1‖u_2‖e), equation v = c_C ^ r · d_C ^ rb mod p, and commitment information CC = (u_1, u_2, e, v) (where 機能 represents concatenation), system parameter g, first random number information α, commitment information CC, and hash function H (), the expression T_i = g ^ α The function of calculating the first ring element information c_ {i + 1} by mod p and the expression c_ {i + 1} = H (CC‖T_i), and the user numbers j = i + 1,..., n, 1, ..., for each i-1, system parameter g, user random number information s_j, user public key information y_j, Based on one ring element information c_j, commitment information CC, and hash function H (), the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ {j + 1} mod n = H (CC‖T_j) Based on the function of sequentially calculating the second ring element information c_ {j + 1} mod n, the first random number information α, the secret key information x_i in the secret key storage device 11, and the ring element information c_i corresponding to the signer , The function of generating signer related information s_i by the formula s_i = α−x_i · c_i mod q, first ring element information c_1, user random number information s_j, signer related information s_i, commitment information CC and list L Including a ring signature σ = (c_1, s_1,..., S_n, CC, L).

ユーザ端末20は、指定された確認者Cとしてのユーザcに操作されるものであり、秘密鍵記憶装置21、確認者用署名検証部22及び対話証明部23を備えている。   The user terminal 20 is operated by a user c as a designated confirmer C, and includes a secret key storage device 21, a confirmer signature verification unit 22, and a dialogue proof unit 23.

秘密鍵記憶装置21は、確認者としてのユーザに固有の秘密鍵情報(x_C1、x_C2、y_C1、y_C2、s_C)が記憶されるメモリであり、確認者用署名検証部22及び対話証明部23から読出可能となっている。   The secret key storage device 21 is a memory in which secret key information (x_C1, x_C2, y_C1, y_C2, s_C) unique to the user as the confirmer is stored, and from the confirmer signature verifying unit 22 and the dialog proving unit 23 Readable.

確認者用署名検証部22は、リング署名(σ)を検証する際に、秘密鍵記憶装置21内の複数の秘密鍵情報(x_C1、x_C2、y_C1、y_C2、s_C)に基づいて、リング署名(σ)を検証する第1検証機能と、リスト(L)内の公開鍵情報(y_j)に基づいて、リング署名(σ)を検証する第2検証機能と、第1及び第2検証手段による検証に合格したとき、リング署名を受理するリング署名受理機能とを有し、具体的には図3及び図5のステップST20〜ST25に示す処理を実行する機能をもっている。   The verifier signature verification unit 22 verifies the ring signature (σ) based on a plurality of secret key information (x_C1, x_C2, y_C1, y_C2, s_C) in the secret key storage device 21. a first verification function for verifying σ), a second verification function for verifying the ring signature (σ) based on the public key information (y_j) in the list (L), and verification by the first and second verification means And pass a ring signature receiving function for receiving a ring signature. Specifically, it has a function of executing the processes shown in steps ST20 to ST25 of FIGS.

ここで、第1検証機能としては、例えば、リング署名σを検証する際に、当該リング署名σ内のコミットメント情報CCと、ハッシュ関数H_{q}とに基づいて、式b = H_{q}(u_1‖u_2‖e)により、コミットメント部分情報bを計算する機能と、このコミットメント部分情報b、秘密鍵記憶装置21内の秘密鍵情報x_C1、x_C2、y_C1、y_C2、s_C 、コミットメント情報CC 及びシステムパラメータgに基づいて、第1式v =u_1^(x_{c1}+by_{c1})・u2^(x_{c2}+by_{c2}) mod p 及び第2式g^{H_{q}(m‖L)} = e/{ u_ 1}^(s_c) mod pが成り立つことをそれぞれ検証する機能とが含まれる。   Here, as the first verification function, for example, when verifying the ring signature σ, based on the commitment information CC in the ring signature σ and the hash function H_ {q}, the expression b = H_ {q} (u_1‖u_2‖e) to calculate the commitment part information b, this commitment part information b, secret key information x_C1, x_C2, y_C1, y_C2, s_C, commitment information CC and system in the secret key storage device 21 Based on the parameter g, the first expression v = u_1 ^ (x_ {c1} + by_ {c1}) · u2 ^ (x_ {c2} + by_ {c2}) mod p and the second expression g ^ {H_ {q } (m‖L)} = e / {u — 1} ^ (s_c) The function for verifying that mod p holds is included.

第2検証機能としては、例えば、ユーザ番号j = 1, . . . , n毎に、システムパラメータg、リング署名σ内のユーザ乱数情報s_j、ユーザ公開鍵情報y_j、リング署名σ内の第1リング要素情報c_j 、コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_(j+1) = H(CC‖T_j)を順次計算することにより、式c_1 = c_(n+1)が成り立つことを検証する機能とが含まれる。   As the second verification function, for example, for each user number j = 1,..., N, the system parameter g, the user random number information s_j in the ring signature σ, the user public key information y_j, the first in the ring signature σ Based on the ring element information c_j, commitment information CC, and hash function H (), the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ (j + 1) = H (CC‖T_j) are sequentially calculated. Thus, a function for verifying that the expression c_1 = c_ (n + 1) holds is included.

対話証明部23は、検証者用の対話証明部32による対話証明の際に動作するものであり、図6のステップST33,ST34,ST36〜ST38に示す処理を実行する機能をもっている。   The dialogue proof unit 23 operates at the time of dialogue proof by the verifier's dialogue proof unit 32, and has a function of executing the processes shown in steps ST33, ST34, and ST36 to ST38 in FIG.

対話証明部23の機能としては、例えば、ユーザ端末30から値a_1を受けると、値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、wを計算してユーザ端末30に送信する機能(但し、r_1 = (g_1^k_1)(g_2^k_2)、r_2 = (g_1^k_3)(g_2^k_4)、r_3 = (u_1^k_1) (u_2^k_2) ((u_1^b)k_3)((u_2^b)k_4) 、r_4 = g_1^k_5、r_5 = u_1^k_5、r_1 = (g_1^(k_1)) (g_2^(k_2))、r_2 = (g_1^(k_3)) (g_2^(k_4))、r_3 = (g_1^(k_1)) (g_2^(k_2))(u_1^b)^( k_3) (u_2^b)^( k_4)、r_4 = (u_1)^(k_5)、r_5 = e^(k_5)。ここで、k_1、 k_2、 k_3、 k_4 、 k_5、 k_1、 k_2、 k_3、 k_4、 k_5、 w ∈Z_q)と、ユーザ端末30から乱数α_1、 β_1を受けると、式a_1=g_1^α_1・c_C^β_1 mod pが成り立つことが検証した後、値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5を計算してユーザ端末30に送信する機能(但し、s_c1 = k_1 − (β_1 + w)・x_{c1}, s_c2 = k_2 - (β_1 + w)・x_{c2}, s_c3 = k_3 - (β_1 + w)・y_{c1}, s_c4 = k_4 - (β_1 + w)・y_{c2}, s_c5 = k_5 - (β_1 + w)・s_c, s_c1 = k_1 − (β_1 + w)・k_1, s_c2 = k_2 - (β_1 + w)・k_2, s_c3 = k_3 - (β_1 + w)・k_3, s_c4 = k_4 - (β_1 + w)・k_4, s_c5 = k_5 - (β_1 + w)・k_5)とを含んでいる。 The functions of the interactive proof section 23, for example, receives a value a_1 from the user terminal 30, the value r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, calculate w To transmit to the user terminal 30 (however, r_1 = (g_1 ^ k_1) (g_2 ^ k_2), r_2 = (g_1 ^ k_3) (g_2 ^ k_4), r_3 = (u_1 ^ k_1) (u_2 ^ k_2) ((u_1 ^ b) k_3) ((u_2 ^ b) k_4), r_4 = g_1 ^ k_5, r_5 = u_1 ^ k_5, r_1 = (g_1 ^ ( k_1)) (g_2 ^ ( k_2)), r_2 = (g_1 ^ ( k_3)) (g_2 ^ ( k_4)), r_3 = (g_1 ^ ( k_1)) (g_2 ^ ( k_2)) (u_1 ^ b) ^ ( k_3) (u_2 ^ B) ^ ( ~ k_4), ~ r_4 = (u_1) ^ ( ~ k_5), ~ r_5 = e ^ ( ~ k_5), where k_1, k_2, k_3, k_4, k_5, ~ k_1, ~ k_2, ~ k_3, ~ k_4, ~ k_5 , and w ∈Z_q), random number from the user terminal 30 α_1, when receiving a β_1, after verifying that the formula a_1 = g_1 ^ α_1 · c_C ^ β_1 mod p is true, value s_c1, s_c2, s_c3, s_c4, s_c5, ~ s_c1, ~ s_c2, ~ s_c3, ~ S_c4, function of transmitting to the user terminal 30 calculates a ~ s_c5 (where, s_c1 = k_1 - (β_1 + w) · x_ {c1}, s_c2 = k_2 - (β_1 + w) · x_ {c2}, s_c3 = k_3-(β_1 + w) ・ y_ {c1}, s_c4 = k_4-(β_1 + w) ・ y_ {c2}, s_c5 = k_5-(β_1 + w) ・ s_c, ~ s_c1 = ~ k_1 − (β_1 + w) · k_1, ~ s_c2 = ~ k_2 - (β_1 + w) · k_2, ~ s_c3 = ~ k_3 - (β_1 + w) · k_3, ~ s_c4 = ~ k_4 - (β_1 + w) · k_4, ~ s_c5 = ~ K_5-(β_1 + w) · k_5).

ユーザ端末30は、検証者Vとしてのユーザvに操作されるものであり、検証者用署名検証部31、対話証明部32及び記憶装置33を備えている。   The user terminal 30 is operated by a user v as a verifier V, and includes a verifier signature verification unit 31, a dialogue proof unit 32, and a storage device 33.

検証者用署名検証部31は、リング署名を検証する際に、記憶装置33内のリスト(L)内の公開鍵情報(y_j)に基づいて、リング署名(σ)を検証する第1検証機能と、この第1検証機能及び対話証明部32の第2検証機能による検証に合格したとき、リング署名を受理するリング署名受理機能とを有し、具体的には図6のステップST31,ST43〜ST45に示す処理を実行する機能をもっている。   The verifier signature verification unit 31 verifies the ring signature (σ) based on the public key information (y_j) in the list (L) in the storage device 33 when verifying the ring signature. And a ring signature acceptance function for accepting a ring signature when the verification by the first verification function and the second verification function of the dialog proof unit 32 is passed. Specifically, steps ST31 and ST43 in FIG. It has a function of executing the process shown in ST45.

ここで、第1検証機能としては、例えば、リング署名σを検証する際に、ユーザ番号j = 1, . . . , n毎に、システムパラメータg、リング署名σ内のユーザ乱数情報s_j、ユーザ公開鍵情報y_j、リング署名σ内の第1リング要素情報c_j 、コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_(j+1) = H(CC‖T_j)を順次計算することにより、式c_1 = c_(n+1)が成り立つことを検証する機能を含んでいる。   Here, as the first verification function, for example, when verifying the ring signature σ, for each user number j = 1,..., N, the system parameter g, the user random number information s_j in the ring signature σ, the user Based on the public key information y_j, the first ring element information c_j in the ring signature σ, the commitment information CC, and the hash function H (), the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ (j + 1) It includes the function of verifying that the expression c_1 = c_ (n + 1) holds by sequentially calculating = H (CC‖T_j).

対話証明部32は、記憶装置33内の確認者の公開鍵情報(c_C, d_C, h_C)に基づき、確認者のユーザ端末20との間の対話証明を介して、当該リング署名を検証する第2検証機能を有し、具体的には図6のステップST32,ST35,ST39〜ST42に示す処理を実行する機能をもっている。   The dialogue certifying unit 32 verifies the ring signature based on the dialogue proof with the user terminal 20 of the confirmer based on the public key information (c_C, d_C, h_C) of the confirmer in the storage device 33. 2 having a verification function, specifically, a function of executing the processes shown in steps ST32, ST35, and ST39 to ST42 in FIG.

ここで、第2検証機能としては、例えば、乱数α_1、 β_1 を生成すると共に、この乱数α_1, β_1及び記憶装置33内のシステムパラメータg_1,確認者の公開鍵情報c_Cに基づいて、式a_1 = g_1^α_1・c_C^β_1 mod p により計算した値a_1をユーザ端末20に送信する機能と、ユーザ端末20から値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、wを受信する機能(但し、r_1 = (g_1^k_1)(g_2^k_2)、r_2 = (g_1^k_3)(g_2^k_4)、r_3 = (u_1^k_1) (u_2^k_2) ((u_1^b)k_3)((u_2^b)k_4) 、r_4 = g_1^k_5、r_5 = u_1^k_5、r_1 = (g_1^(k_1)) (g_2^(k_2))、r_2 = (g_1^(k_3)) (g_2^(k_4))、r_3 = (g_1^(k_1)) (g_2^(k_2))(u_1^b)^( k_3) (u_2^b)^( k_4)、r_4 = (u_1)^(k_5)、r_5 = e^(k_5)。ここで、k_1、 k_2、 k_3、 k_4 、 k_5、 k_1、 k_2、 k_3、 k_4、 k_5、 w ∈Z_q)と、値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、wの受信後、乱数α_1、 β_1をユーザ端末20に送信する機能と、ユーザ端末20により式a_1=g_1^α_1・g_2^β_1 mod pが成り立つことが検証された後、ユーザ端末20から値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5を受信する機能(但し、s_c1 = k_1 − (β_1 + w)・x_{c1}, s_c2 = k_2 - (β_1 + w)・x_{c2}, s_c3 = k_3 - (β_1 + w)・y_{c1}, s_c4 = k_4 - (β_1 + w)・y_{c2}, s_c5 = k_5 - (β_1 + w)・s_c, s_c1 = k_1 − (β_1 + w)・k_1, s_c2 = k_2 - (β_1 + w)・k_2, s_c3 = k_3 - (β_1 + w)・k_3, s_c4 = k_4 - (β_1 + w)・k_4, s_c5 = k_5 - (β_1 + w)・k_5)と、値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5の受信後、当該値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5、前述した値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、w、記憶装置33内の公開鍵情報c_C, d_C, h_C、デジタル情報m及びリング署名σ = (c_1, s_1, …, s_n, CC, L)に基づいて、式r_1 = g_1^{s_c1}・g_2^{s_c2}・c^(β_1 + w) , 式r_ 2 =(g_1)^{s_c3}・(g_2)^{s_c4}・(d^(β_1 + w)) , 式r_4 = g_1^{s_c5}・h_C^(β_1 + w), 式r_1 = g_1^{s_c1} g_2^{s_c2}・r_1^{{β_1}+w}, 式r_2 = g_1^{s_c3}・g_2^{s_c4}・r_2^{{β_1}+w}, 式r_3 = u_1^{s_c1}・u_2^{s_c2} (u_1^b)^{s_c3}・(u_2^b)^{s_c4}・ r_3^{{β_1}+w}, 式r_4 = g_1^{s_c5}・r_4^{{β_1}+w},式r_5 = u_1^{s_c5}・r_5^{{β_1}+w}の式が成り立つことを確認した後、r_3 = u_1^{s_c1}・u_2^{s_c2}・(u_1^b)^{s_c3}・(u_2^b) ^{s_c4}・v^{{β_1}+w},r_5 = u_1^{s_c5}・(eh_C{H_q(m‖L)})^{{β_1}+w}の2つの式が両方成り立つか、どちらか1つでも成り立たないことを検証する機能とを含んでいる。 Here, as the second verification function, for example, random numbers α_1 and β_1 are generated, and on the basis of the random numbers α_1 and β_1, the system parameter g_1 in the storage device 33, and the public key information c_C of the confirmer, the expression a_1 = The function of transmitting the value a_1 calculated by g_1 ^ α_1 · c_C ^ β_1 mod p to the user terminal 20, and the values r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4 from the user terminal 20 , ~ R_5, function to receive w (however, r_1 = (g_1 ^ k_1) (g_2 ^ k_2), r_2 = (g_1 ^ k_3) (g_2 ^ k_4), r_3 = (u_1 ^ k_1) (u_2 ^ k_2) ((u_1 ^ b) k_3) ((u_2 ^ b) k_4), r_4 = g_1 ^ k_5, r_5 = u_1 ^ k_5, r_1 = (g_1 ^ ( k_1)) (g_2 ^ ( k_2)), r_2 = (g_1 ^ ( k_3)) (g_2 ^ ( k_4)), r_3 = (g_1 ^ ( k_1)) (g_2 ^ ( k_2)) (u_1 ^ b) ^ ( k_3) (u_2 ^ B) ^ ( ~ k_4), ~ r_4 = (u_1) ^ ( ~ k_5), ~ r_5 = e ^ ( ~ k_5), where k_1, k_2, k_3, k_4, k_5, ~ k_1, ~ k_2, ~ K_3, ~ k _4, ~ k_5, and w ∈Z_q), the value r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, after receiving the w, the random number _1, the user terminal 20 β_1 a function of transmitting, after that holds the expression a_1 = g_1 ^ α_1 · g_2 ^ β_1 mod p is verified by the user terminal 20, from the user terminal 20 value s_c1, s_c2, s_c3, s_c4, s_c5, ~ s_c1, ~ Function to receive s_c2, ~ s_c3, ~ s_c4, ~ s_c5 (however, s_c1 = k_1 − (β_1 + w) ・ x_ {c1}, s_c2 = k_2-(β_1 + w) ・ x_ {c2}, s_c3 = k_3 -(β_1 + w) ・ y_ {c1}, s_c4 = k_4-(β_1 + w) ・ y_ {c2}, s_c5 = k_5-(β_1 + w) ・ s_c, ~ s_c1 = ~ k_1 − (β_1 + w) · k_1, ~ s_c2 = ~ k_2 - (β_1 + w) · k_2, ~ s_c3 = ~ k_3 - (β_1 + w) · k_3, ~ s_c4 = ~ k_4 - (β_1 + w) · k_4, ~ s_c5 = ~ k_5 -(β_1 + w) ・ k_5) and values s_c1, s_c2, s_c3, s_c4, s_c5, ~ s_c1, ~ s_c2, ~ s_c3, ~ s_c4, ~ s_c5 s_c5, ~ s_c1, ~ s_c2, ~ s_c3, ~ s_c4 , ~ S_c5, the aforementioned values r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, w, public key information in the storage device 33, c_C, d_C, h_C, digital information Based on m and the ring signature σ = (c_1, s_1,…, s_n, CC, L), the expression r_1 = g_1 ^ {s_c1} · g_2 ^ {s_c2} · c ^ (β_1 + w), the expression r_ 2 = (g_1) ^ {s_c3} ・ (g_2) ^ {s_c4} ・ (d ^ (β_1 + w)), equation r_4 = g_1 ^ {s_c5} · h_C ^ (β_1 + w), equation ~ r_1 = g_1 ^ { ~ S_c1} g_2 ^ { ~ s_c2} · r_1 ^ {{β_1} + w}, the expression ~ r_2 = g_1 ^ { ~ s_c3} · g_2 ^ { ~ s_c4} · r_2 ^ {{β_1} + w}, the expression ~ r_3 = u_1 ^ { s_c1} ・ u_2 ^ { s_c2} (u_1 ^ b) ^ { s_c3} ・ (u_2 ^ b) ^ { s_c4} ・ r_3 ^ {{β_1} + w}, expression r_4 = g_1 ^ {s_c5} · r_4 ^ {{β_1} + w}, formula ~ r_5 = u_1 ^ {s_c5} · r_5 ^ {{β_1} + w} After confirming that r_3 = u_1 ^ {s_c1} · u_2 ^ {S_c2} ・ (u_1 ^ b) ^ {s_c3} ・ (u_2 ^ b) ^ {s_c4} ・ v ^ {{β_1} + w}, r_5 = u_1 ^ {s_c5} ・ (eh_C ^ {H_q (m‖ L)}) ^ {{β_1} + w} Or both satisfied, and a function of verifying that does not hold any one of them.

記憶装置33は、システムパラメータg, g_1, g_2及び素数p,qと、リストL={y_1, y_2, … , y_n}と、確認者の公開鍵情報c_C, d_C, h_Cと、デジタル情報mと、リング署名σとを記憶するためのメモリであり、検証者用署名検証部31及び対話証明部32から読出/書込可能となっている。   The storage device 33 includes system parameters g, g_1, g_2 and prime numbers p, q, a list L = {y_1, y_2,..., Y_n}, confirmer public key information c_C, d_C, h_C, and digital information m. , A memory for storing the ring signature σ, and can be read / written from the verifier signature verification unit 31 and the dialogue proof unit 32.

また前提条件として、公開鍵基盤などにより、公開情報を安全に公開するための手段、例えば公開掲示板サーバ40などが存在するとする。   As a precondition, it is assumed that there is a means for safely publishing public information, such as a public bulletin board server 40, using a public key infrastructure.

公開掲示板サーバ40は、公開される情報を記憶する公開情報記憶装置41を有する。この公開掲示板サーバ40によって実現される情報公開(掲載)手段を公開情報掲示板と呼ぶ。公開情報掲示板は全てのユーザがアクセスでき、かつ改ざんなどの不正が行われないように適切に管理されているとする。また、全てのユーザはインターネットなどのネットワーク50に接続されているものとする。特に匿名性を必要とする場合は匿名ネットワークに接続されていてもよいが、その限りではない。   The public bulletin board server 40 includes a public information storage device 41 that stores public information. Information disclosure (publication) means realized by the public bulletin board server 40 is called a public information bulletin board. It is assumed that the public information bulletin board can be accessed by all users and is appropriately managed so that fraud such as tampering is not performed. All users are connected to a network 50 such as the Internet. Especially when anonymity is required, it may be connected to an anonymous network, but this is not the case.

次に、以上のように構成されたデジタル署名システムの動作を図3のシーケンス図及び図4乃至図6の各フローチャートを用いて述べる。なお、本実施形態では、例えば、べき乗を^で表し、下付添字を_で表し、文字の真上の波形符号をで表す等というように1行で済む数式表現を用いている。このような明細書中の数式表現は、図面中の数式表現とは異なるが、これらの数式表現が示す数式の内容は一致している。
(準備):
本実施形態では、前提条件として、ユーザの公開鍵や公開情報は予め公開掲示板サーバ40により公開されているものとする。公開の方法としては例えば公開鍵基盤などがあるが、ここでは限定しない。
Next, the operation of the digital signature system configured as described above will be described with reference to the sequence diagram of FIG. 3 and the flowcharts of FIGS. In this embodiment, for example, a mathematical expression that requires only one line is used, such as a power is represented by ^, a subscript is represented by _, and a waveform code immediately above the character is represented by ~ . Although the mathematical expression in the specification is different from the mathematical expression in the drawings, the contents of the mathematical expressions indicated by these mathematical expressions are the same.
(Preparation):
In this embodiment, as a precondition, the public key and public information of the user are preliminarily disclosed by the public bulletin board server 40. The public method includes, for example, a public key infrastructure, but is not limited here.

まず、公開掲示板サーバ40は、素数位数qの巡回群Gとその生成元g, g_1, g_2を選び公開する。ここでは、一例として、q|p-1を満たす十分大きな素数p, qを選び、位数がqとなるZ_p*の部分群をGとし、p, q, g、g_1、g_2を公開するとする。   First, the public bulletin board server 40 selects and publishes a cyclic group G having a prime order q and its generation sources g, g_1, and g_2. Here, as an example, select sufficiently large primes p and q that satisfy q | p−1, and let Z be the subgroup of Z_p * whose order is q, and publish p, q, g, g_1, and g_2. .

さらに、公開掲示板サーバ40は、衝突困難性ハッシュ関数H:{0,1}^*→{0,1}^q, H_q:{0,1}^*→{0,1}^qを任意に選び公開する。   Furthermore, the public bulletin board server 40 arbitrarily selects the collision difficulty hash function H: {0,1} ^ * → {0,1} ^ q, H_q: {0,1} ^ * → {0,1} ^ q Select and publish.

また前提条件に従い各ユーザ端末10,20は、それぞれユーザu, k, cの操作により、x_u, x_k, x_c ∈ Z_qをランダムに選び、以下を計算する。なお、記号^はべき乗を表す。
y_u = g^{x_u},
y_k = g^{x_k},
y_c = g^{x_c}
そして、各ユーザu, k, cのユーザ端末10,20は、y_u, y_k, y_cを公開鍵として公開する。
ステップST10:リング署名の生成(図3、図4)
ユーザuとなるべきユーザは複数いると仮定する。その中でも特に署名者となるユーザuをユーザu_iとする。ユーザu_iは署名時に任意のグループを作成する。このグループに含まれるユーザuをユーザu_jとする。(j=1,...,n, j≠i)
ユーザu_iのユーザ端末10は、署名生成部11において、ユーザ秘密鍵x_i、メッセージm、及び公開情報掲示板14から取得可能な公開情報PUBI(ユーザu_jの公開鍵を含む)を入力として(ST11)、以下のステップST12〜ST17の手順によりmに対するリング署名σを生成し、(m, σ)を出力する。
Further, according to the preconditions, the user terminals 10 and 20 randomly select x_u, x_k, and x_cεZ_q by the operations of the users u, k, and c, respectively, and calculate the following. The symbol ^ represents a power.
y_u = g ^ {x_u},
y_k = g ^ {x_k},
y_c = g ^ {x_c}
Then, the user terminals 10 and 20 of the users u, k, and c disclose y_u, y_k, and y_c as public keys.
Step ST10: Generation of a ring signature (FIGS. 3 and 4)
It is assumed that there are a plurality of users who should become the user u. Among these, the user u who is the signer is assumed to be a user u_i. User u_i creates an arbitrary group when signing. A user u included in this group is a user u_j. (j = 1, ..., n, j ≠ i)
The user terminal 10 of the user u_i receives the user private key x_i, the message m, and the public information PUBI that can be acquired from the public information bulletin board 14 (including the public key of the user u_j) as input in the signature generation unit 11 (ST11). A ring signature σ for m is generated by the following steps ST12 to ST17, and (m, σ) is output.

ステップST12:α,r ∈ Z_qをランダムに選ぶ。   Step ST12: α, r ∈ Z_q is selected at random.

ステップST13:衝突困難性ハッシュ関数HとH_qを用いて以下の値を計算する。
u_1 = g_1^r mod p,
u_2 = g_2^r mod p,
e = h_C^r・g_1^{H_{q}(m‖L)},
b = H_{q}(u_1‖u_2‖e),
v = c_C^r・d_C^rb mod p
T_i = g^α mod p,
c_{i+1} = H(u_1‖ u_2 ‖ e ‖ b ‖ v ‖ T_i)
但し、i = nの場合には c_{i+1} = c_{(i+1)mod n}とする。また、“‖”はデータの連結を表す。
Step ST13: The following values are calculated using the collision difficulty hash functions H and H_q.
u_1 = g_1 ^ r mod p,
u_2 = g_2 ^ r mod p,
e = h_C ^ r · g_1 ^ {H_ {q} (m‖L)},
b = H_ {q} (u_1‖u_2‖e),
v = c_C ^ r ・ d_C ^ rb mod p
T_i = g ^ α mod p,
c_ {i + 1} = H (u_1‖ u_2 ‖ e ‖ b ‖ v ‖ T_i)
However, when i = n, c_ {i + 1} = c _ {(i + 1) mod n}. “‖” Represents data concatenation.

ステップST14: j = i+1, ..., n, 1, ..., i-1について、s_j ∈ Z_qをランダムに選ぶ。   Step ST14: For j = i + 1,..., N, 1,..., I−1, s_j ∈ Z_q is selected at random.

ステップST15:j = i+1, ..., n, 1, ..., i-1について、以下の値を計算する。
T_j = g^{s_j}{y_j}^{c_j} mod p,
c_{(j+1)mod n} = H(CC ‖ T_j)
但し、j = nの場合には c_{j+1} = c_{(j+1)mod n}とする。
Step ST15: The following values are calculated for j = i + 1,..., N, 1,.
T_j = g ^ {s_j} {y_j} ^ {c_j} mod p,
c _ {(j + 1) mod n} = H (CC ‖ T_j)
However, when j = n, c_ {j + 1} = c _ {(j + 1) mod n}.

ステップST16:s_i = α - {x_i}{c_i} mod qを計算する。   Step ST16: s_i = α− {x_i} {c_i} mod q is calculated.

ステップST17:j = 1, ..., nについて、以下の値をリング署名σとして確認者ユーザcのユーザ端末20、または検証者ユーザvのユーザ端末30に送信する。
σ(m) = (c_1, s_j, CC, L)
ステップST20:リング署名の確認者による検証(図3、図5)
署名確認者であるユーザcのユーザ端末20は、署名検証部22において、メッセージmとmに対するリング署名σのペア(m,σ)及び公開掲示板サーバ40から取得可能な公開情報PUBIを用いて、以下のステップST21〜ST25の手順でリング署名の正当性とメッセージmに対するコミットメントの正当性を検証する。
Step ST17: For j = 1,..., N, the following values are transmitted as the ring signature σ to the user terminal 20 of the verifier user c or the user terminal 30 of the verifier user v.
σ (m) = (c_1, s_j, CC, L)
Step ST20: Verification by the confirmer of the ring signature (FIGS. 3 and 5)
The user terminal 20 of the user c who is the signature checker uses the pair (m, σ) of the ring signature σ for the message m and m and the public information PUBI that can be acquired from the public bulletin board server 40 in the signature verification unit 22. In the following steps ST21 to ST25, the validity of the ring signature and the validity of the commitment for the message m are verified.

ステップST21:リング署名σから、公開情報である衝突困難性ハッシュ関数H_qを用い、以下の値を計算する。
b = H_{q}(u_1 ‖ u_2 ‖e)
ステップST22:リング署名σから、確認者の秘密鍵(x_C1, x_C2, y_C1, y_C2, s_C)を用い、以下が成り立つことを検証する。
v = u_1^(x_{c1}+b・y_{c1})・u_2^(x_{c2}+b・y_{c2}) mod p
ステップST23:メッセージm及びリング署名σから、公開情報である衝突困難性ハッシュ関数H_qを用い、以下が成り立つことを検証する。
Step ST21: The following values are calculated from the ring signature σ using the collision difficulty hash function H_q that is public information.
b = H_ {q} (u_1 ‖ u_2 ‖e)
Step ST22: From the ring signature σ, the verifier's private key (x_C1, x_C2, y_C1, y_C2, s_C) is used to verify that the following holds.
v = u_1 ^ (x_ {c1} + b ・ y_ {c1}) ・ u_2 ^ (x_ {c2} + b ・ y_ {c2}) mod p
Step ST23: Using the collision difficulty hash function H_q, which is public information, from the message m and the ring signature σ, it is verified that the following holds.

e/{u_ 1}^(s_c) = g^{H_{q}(m‖L)} mod p
ステップST24:j = 1, ..., nについて、公開情報である衝突困難性ハッシュ関数Hを用いて以下の値を計算する。
T_j = g^{s_j}{y_j}^{c_j} mod p,
c_{j+1} = H(CC‖ T_j)
ここで、c_1 = c_{n+1}が成り立つことを検証する。
e / {u_ 1} ^ (s_c) = g ^ {H_ {q} (m‖L)} mod p
Step ST24: For j = 1,..., N, the following values are calculated using the collision difficulty hash function H that is public information.
T_j = g ^ {s_j} {y_j} ^ {c_j} mod p,
c_ {j + 1} = H (CC‖ T_j)
Here, it is verified that c_1 = c_ {n + 1} holds.

ステップST25〜ST27:上記ST22,23、24が全て成り立つ場合は検証合格(OKを出力してリング署名σ(m)を受理し、成り立たない場合は検証不合格(NG)を出力してリング署名σ(m)を棄却する。   Steps ST25 to ST27: When all of the above ST22, 23, and 24 are satisfied, the verification is accepted (OK is output and the ring signature σ (m) is received, and when it is not satisfied, the verification is rejected (NG) and the ring signature is output. Reject σ (m).

ステップST30:リング署名の検証者による検証(図3、図6)
署名検証者であるユーザvのユーザ端末30は、メッセージmとmに対するリング署名σのペア(m,σ)と公開掲示板サーバ40から取得可能な公開情報PUBIとを予め記憶装置33に記憶しておく。そして、ユーザ端末30は、記憶装置33内のリング署名σのペア(m,σ)及び公開情報PUBIを用いて、署名検証部31においてコミットメントに対するリング署名の正当性の検証と、対話証明部32において確認者ユーザcのユーザ端末20の対話証明部23との対話的証明により、リング署名に含まれるメッセージmに対するコミットメントの正当性を検証する。
Step ST30: Ring signature verifier verification (FIGS. 3 and 6)
The user terminal 30 of the user v who is the signature verifier stores the ring signature σ pair (m, σ) for the message m and m and the public information PUBI obtainable from the public bulletin board server 40 in the storage device 33 in advance. deep. Then, the user terminal 30 uses the ring signature σ pair (m, σ) in the storage device 33 and the public information PUBI to verify the validity of the ring signature for the commitment in the signature verification unit 31 and the dialogue proof unit 32. The verification of the commitment to the message m included in the ring signature is verified by interactive proof with the dialog proof unit 23 of the user terminal 20 of the checker user c.

ステップST31:検証者のユーザ端末30は、j = 1, ... , nについて、メッセージm、リング署名σ及び衝突困難性ハッシュ関数Hより以下の値を計算する。
T_j = g^{s_j}{y_j}^{c_j} mod p,
c_{j+1} = H(CC‖ T_j)
c_1 = c_{n+1}となることを検査することにより、コミットメントに対するリング署名の正当性を検証する。
Step ST31: The verifier user terminal 30 calculates the following values for j = 1,..., N from the message m, the ring signature σ, and the collision difficulty hash function H.
T_j = g ^ {s_j} {y_j} ^ {c_j} mod p,
c_ {j + 1} = H (CC‖ T_j)
The validity of the ring signature for the commitment is verified by checking that c_1 = c_ {n + 1}.

ステップST32:検証者のユーザ端末30は、署名情報がlog_{g_1} (h_C) = log_{u_1}(e / {g_1}^{H_{q}(m‖L)}かつlog_{g_1} (c_C){d_C}^b = log_{u_1}vであるかを、以下のST33〜ST39に示すように、確認者との対話証明により検証する。   Step ST32: The verifier user terminal 30 has the signature information of log_ {g_1} (h_C) = log_ {u_1} (e / {g_1} ^ {H_ {q} (m‖L)} and log_ {g_1} ( c_C) Whether or not {d_C} ^ b = log_ {u_1} v is verified by dialogue proof with the confirmer as shown in ST33 to ST39 below.

始めに、検証者のユーザ端末30は、{α_1},{β_1}∈ Z_qをランダムに選び、a_1 = {{g_1}^{α_1}}{{c_C}^{β_1}} mod pを計算して、{a_1},{a_2}を確認者のユーザ端末20に送る。   First, the verifier user terminal 30 randomly selects {α_1}, {β_1} ∈ Z_q and calculates a_1 = {{g_1} ^ {α_1}} {{c_C} ^ {β_1}} mod p. Then, {a_1} and {a_2} are sent to the user terminal 20 of the confirmer.

ステップST33:確認者のユーザ端末33は、k_1, k_2, k_3, k_4, 、 k_1、 k_2、 k_3、 k_4、w ∈ Z_qをランダムに選択する。 Step ST33: confirmation's user terminal 33, k_1, k_2, k_3, k_4 ,, ~ k_1, ~ k_2, ~ k_3, ~ k_4, to select at random w ∈ Z_q.

ステップST34:確認者のユーザ端末33はmod p上で、
r_1 = (g_1^k_1)(g_2^k_2)、
r_2 = (g_1^k_3)(g_2^k_4)、
r_3 = (u_1^k_1) (u_2^k_2) ((u_1^b)k_3)((u_2^b)k_4) 、
r_4 = g_1^k_5、r_5 = u_1^k_5、
r_1 = (g_1^(k_1)) (g_2^(k_2))、
r_2 = (g_1^(k_3)) (g_2^(k_4))、
r_3 = (g_1^(k_1))(g_2^(k_2))(u_1^b)^(k_3) (u_2^b)^(k_4)、
r_4 = (u_1)^(k_5)、
r_5 = e^(k_5)
を計算し、検証者にr_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、wを送信する。
Step ST34: The user terminal 33 of the confirmer is on mod p,
r_1 = (g_1 ^ k_1) (g_2 ^ k_2),
r_2 = (g_1 ^ k_3) (g_2 ^ k_4),
r_3 = (u_1 ^ k_1) (u_2 ^ k_2) ((u_1 ^ b) k_3) ((u_2 ^ b) k_4),
r_4 = g_1 ^ k_5, r_5 = u_1 ^ k_5,
~ R_1 = (g_1 ^ ( ~ k_1)) (g_2 ^ ( ~ k_2)),
~ R_2 = (g_1 ^ ( ~ k_3)) (g_2 ^ ( ~ k_4)),
~ R_3 = (g_1 ^ ( ~ k_1)) (g_2 ^ ( ~ k_2)) (u_1 ^ b) ^ ( ~ k_3) (u_2 ^ b) ^ ( ~ k_4),
~ R_4 = (u_1) ^ ( ~ k_5),
~ R_5 = e ^ ( ~ k_5)
And r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, w are transmitted to the verifier.

ステップST35:検証者のユーザ端末20は、{α_1},{β_1}を確認者のユーザ端末30に送信することによりコミットメントa_1を開示する。   Step ST35: The verifier user terminal 20 discloses the commitment a_1 by transmitting {α_1}, {β_1} to the confirmer user terminal 30.

ステップST36〜ST38:確認者のユーザ端末30は、もしa _1 ≠ {{g_1}^{α_1}}{{c_C}^{β_1}} mod p ならば、プロトコルを中止し、そうでない場合は、
s_c1 = k_1 − (β_1 + w)・x_{c1},
s_c2 = k_2 - (β_1 + w)・x_{c2},
s_c3 = k_3 - (β_1 + w)・y_{c1},
s_c4 = k_4 - (β_1 + w)・y_{c2},
s_c5 = k_5 - (β_1 + w)・s_c,
s_c1 = k_1 − (β_1 + w)・k_1,
s_c2 = k_2 - (β_1 + w)・k_2,
s_c3 = k_3 - (β_1 + w)・k_3,
s_c4 = k_4 - (β_1 + w)・k_4,
s_c5 = k_5 - (β_1 + w)・k_5.
を計算し、s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5,を検証者に送信する。
Steps ST36 to ST38: The confirming user terminal 30 cancels the protocol if a _1 ≠ {{g_1} ^ {α_1}} {{c_C} ^ {β_1}} mod p, otherwise,
s_c1 = k_1 − (β_1 + w) ・ x_ {c1},
s_c2 = k_2-(β_1 + w) ・ x_ {c2},
s_c3 = k_3-(β_1 + w) ・ y_ {c1},
s_c4 = k_4-(β_1 + w) ・ y_ {c2},
s_c5 = k_5-(β_1 + w) ・ s_c,
~ S_c1 = ~ k_1 − (β_1 + w) ・ k_1,
~ S_c2 = ~ k_2 - (β_1 + w) · k_2,
~ S_c3 = ~ k_3 - (β_1 + w) · k_3,
~ S_c4 = ~ k_4-(β_1 + w) ・ k_4,
~ S_c5 = ~ k_5-(β_1 + w) ・ k_5.
The calculated, s_c1, s_c2, s_c3, s_c4 , s_c5, ~ s_c1, ~ s_c2, ~ s_c3, ~ s_c4, to send ~ s_c5, to the verifier.

ステップST39〜ST42:検証者のユーザ端末30は、
r_1 = g_1^{s_c1}・g_2^{s_c2}・c^(β_1 + w) ,
r_2 =(g_1)^{s_c3}・(g_2)^{s_c4}・(d^(β_1 + w)) ,
r_4 = g_1^{s_c5}・h_C^(β_1 + w),
r_1 = g_1^{s_c1} g_2^{s_c2}・r_1^{{β_1}+w},
r_2 = g_1^{s_c3}・g_2^{s_c4}・r_2^{{β_1}+w},
r_3 = u_1^{s_c1}・u_2^{s_c2} (u_1^b)^{s_c3}・(u_2^b)^{s_c4}・ r_3^{{β_1}+w},
r_4 = g_1^{s_c5}・r_4^{{β_1}+w},
r_5 = u_1^{s_c5}・r_5^{{β_1}+w}
上記の式がすべて成り立つことを確認した後、
r_3 = u_1^{s_c1}・u_2^{s_c2}・(u_1^b)^{s_c3}・(u_2^b) ^{s_c4}・v^{{β_1}+w},
r_5 = u_1^{s_c5}・(eh_C{H_q(m‖L)})^{{β_1}+w}
をすべてmod p上で検査する。2つの式が両方成り立てば検証成功、どちらか1つでも成り立たなければ検証失敗となる。これにより、log_{g_1} (h_C) = log_{u_1}(e / {g_1}^{H_{q}(m‖L)})かつlog_{g_1} (c_C){d_C}^t = log_{u_1}v であることを間接的に検証する。
Steps ST39 to ST42: The user terminal 30 of the verifier
r_1 = g_1 ^ {s_c1} ・ g_2 ^ {s_c2} ・ c ^ (β_1 + w),
r_2 = (g_1) ^ {s_c3} ・ (g_2) ^ {s_c4} ・ (d ^ (β_1 + w)),
r_4 = g_1 ^ {s_c5} ・ h_C ^ (β_1 + w),
~ R_1 = g_1 ^ { ~ s_c1} g_2 ^ { ~ s_c2} ・r_1 ^ {{β_1} + w},
R_2 = g_1 ^ { s_c3} ・ g_2 ^ { s_c4} ・r_2 ^ {{β_1} + w},
R_3 = u_1 ^ { s_c1} ・ u_2 ^ { s_c2} (u_1 ^ b) ^ { s_c3} ・ (u_2 ^ b) ^ { s_c4} ・ r_3 ^ {{β_1} + w},
~ R_4 = g_1 ^ {s_c5} ・ r_4 ^ {{β_1} + w},
R_5 = u_1 ^ {s_c5} ・ r_5 ^ {{β_1} + w}
After confirming that all the above equations hold,
r_3 = u_1 ^ {s_c1} ・ u_2 ^ {s_c2} ・ (u_1 ^ b) ^ {s_c3} ・ (u_2 ^ b) ^ {s_c4} ・ v ^ {{β_1} + w},
r_5 = u_1 ^ {s_c5} ・ (eh_C ^ {H_q (m‖L)}) ^ {{β_1} + w}
Inspect all on mod p. If both of the two expressions are satisfied, the verification is successful, and if one of the two expressions is not satisfied, the verification is unsuccessful. This allows log_ {g_1} (h_C) = log_ {u_1} (e / {g_1} ^ {H_ {q} (m‖L)}) and log_ {g_1} (c_C) {d_C} ^ t = log_ { Verify indirectly that u_1} v.

ステップST43〜ST45:検証者のユーザ端末30は、ステップST31のc_1 = c_{n+1}と、ステップST32〜ST39の対話証明によるlog_{g_1} (h_C) = log_{u_1}(e / {g_1}^{H_{q}(m‖L)})かつlog_{g_1} (c_C){d_C}^b = log_{u_1}vとの二つの検証が成り立つ場合は検証合格(OK)を出力してリング署名σ(m)を受理し、成り立たない場合は検証不合格(NG)を出力してリング署名σ(m)を棄却する。   Steps ST43 to ST45: The verifier user terminal 30 uses c_1 = c_ {n + 1} in step ST31 and log_ {g_1} (h_C) = log_ {u_1} (e / { g_1} ^ {H_ {q} (m‖L)}) and log_ {g_1} (c_C) {d_C} ^ b = log_ {u_1} v If both verifications are valid, a verification pass (OK) is output. Then, the ring signature σ (m) is accepted, and if it does not hold, a verification failure (NG) is output and the ring signature σ (m) is rejected.

ステップST20及びST30の検証で、N人のうちの誰かは確実に署名をしているという事実を確かめることはできるが、どのメンバが署名したかということはわからない。   In the verification of steps ST20 and ST30, it can be confirmed that some of the N people are surely signed, but it is not known which member has signed.

また、確認者は自分の秘密鍵(x_C1, x_C2, y_C1, y_C2, s_C)を用いて直接署名の正当性を検証できるが、検証者は確認者と対話を行うことで検証に必要な秘密情報を知らないまま、署名の正当性を確認できる。   In addition, the verifier can verify the authenticity of the direct signature using his / her private key (x_C1, x_C2, y_C1, y_C2, s_C). You can check the validity of the signature without knowing.

上述したように本実施形態によれば、署名者としてのユーザに固有の秘密鍵情報(x_i)及び署名者が選択した他の複数のユーザの公開鍵情報(y_j)及び署名者が指名した確認者の公開鍵情報(c_C, d_C, h_C)を用いて、任意のデジタル情報(m)に対するリング署名を生成する。   As described above, according to the present embodiment, the private key information (x_i) unique to the user as the signer, the public key information (y_j) of other users selected by the signer, and the confirmation designated by the signer A ring signature for arbitrary digital information (m) is generated using the public key information (c_C, d_C, h_C) of the user.

これにより、署名者は、リング署名に含めたい他のユーザとの事前やりとり無しで他のユーザの公開鍵情報を任意に選ぶことができ、リング署名からは各ユーザのうちの誰が署名したかが検証者には全くわからないという特徴を持ったリング署名を生成できる。   As a result, the signer can arbitrarily select the public key information of other users without prior interaction with other users who want to be included in the ring signature. A ring signature with the feature that the verifier does not know at all can be generated.

これに加え、署名者が署名時に指名した特定の確認者だけが検証でき、それ以外の検証者は一人では署名の正当性を検証できないが、先述の特定の確認者と対話を行うことで特定の確認者以外の検証者も署名の正当性を知ることができる署名を生成できる。   In addition to this, only the specific confirmer designated by the signer at the time of signing can be verified, and other verifiers cannot verify the validity of the signature alone, but they can be identified by interacting with the specific confirmer described above. A verifier other than the verifier can also generate a signature that can know the validity of the signature.

更に、公開鍵暗号方式であるクラマー・シャウプ暗号が持つ頑強性という性質を用いているため、不正な署名者が過去の署名情報の一部を使うと、署名検証に通るような新たな署名を生成することができない。それにより確認者が意図しない署名の正当性を対話的に第三者に証明してしまうことを阻止できる。   In addition, because it uses the robustness of the Kramer-Shoop cipher, which is a public key cryptosystem, if an unauthorized signer uses part of the past signature information, a new signature that passes the signature verification can be obtained. Cannot be generated. As a result, it is possible to prevent the authenticity of the signature unintended by the confirmer from being interactively proved to a third party.

これにより、リング署名の利用・検証を、署名者が希望する範囲のみで行うように確実に制限することができる。すなわち、署名者に指名された確認者は、正しく作られた署名のみを選んで検証または、第三者に対して対話的に正当性を証明することが確実にできるようになる。   As a result, the use / verification of the ring signature can be surely restricted so as to be performed only within a range desired by the signer. In other words, the confirmer appointed as the signer can select only a correctly created signature and verify or verify the validity interactively with a third party.

なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。   Note that the method described in the above embodiment includes a magnetic disk (floppy (registered trademark) disk, hard disk, etc.), an optical disk (CD-ROM, DVD, etc.), a magneto-optical disk (MO) as programs that can be executed by a computer. ), And can be distributed in a storage medium such as a semiconductor memory.

また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。   In addition, as long as the storage medium can store a program and can be read by a computer, the storage format may be any form.

また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。   In addition, an OS (operating system) running on a computer based on an instruction of a program installed in the computer from a storage medium, MW (middleware) such as database management software, network software, and the like realize the above-described embodiment. A part of each process may be executed.

さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。   Furthermore, the storage medium in the present invention is not limited to a medium independent of a computer, but also includes a storage medium that downloads and stores or temporarily stores a program transmitted via a LAN, the Internet, or the like.

また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。   Further, the number of storage media is not limited to one, and the case where the processing in the above embodiment is executed from a plurality of media is also included in the storage media in the present invention, and the media configuration may be any configuration.

尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。   The computer according to the present invention executes each process in the above-described embodiment based on a program stored in a storage medium, and is a single device such as a personal computer or a system in which a plurality of devices are connected to a network. Any configuration may be used.

また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。   In addition, the computer in the present invention is not limited to a personal computer, but includes an arithmetic processing device, a microcomputer, and the like included in an information processing device, and is a generic term for devices and devices that can realize the functions of the present invention by a program. .

なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Moreover, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine the component covering different embodiment suitably.

本発明の一実施形態に係るデジタル署名システムの構成を示すブロック図である。It is a block diagram which shows the structure of the digital signature system which concerns on one Embodiment of this invention. 図1における情報の流れを示す模式図である。It is a schematic diagram which shows the flow of the information in FIG. 同実施形態における全体の動作を示すシーケンス図である。It is a sequence diagram which shows the whole operation | movement in the embodiment. 同実施形態における署名生成の動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement of signature generation in the same embodiment. 同実施形態における確認者による署名検証の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the signature verification by the confirmer in the embodiment. 同実施形態における検証者等による署名検証の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the signature verification by the verifier etc. in the embodiment. 本実施形態方式の概略を示す模式図である。It is a schematic diagram which shows the outline of this embodiment system.

符号の説明Explanation of symbols

10,20,30…ユーザ端末、11,21…秘密鍵記憶装置、12…署名生成部、22…確認者用署名検証部、23,32…対話証明部、31…検証者用署名検証部、33…記憶装置、40…公開掲示板サーバ、41…公開情報記憶装置、50…ネットワーク。   DESCRIPTION OF SYMBOLS 10, 20, 30 ... User terminal, 11, 21 ... Secret key storage device, 12 ... Signature generation part, 22 ... Confirmer signature verification part, 23, 32 ... Dialog certification part, 31 ... Verifier signature verification part, 33 ... Storage device, 40 ... Public bulletin board server, 41 ... Public information storage device, 50 ... Network.

Claims (13)

署名者としてのユーザに固有の秘密鍵情報(x_i)及びこの署名者を含み当該署名者が選択した他の複数のユーザの公開鍵情報(y_1, y_2, … y_n)及び前記署名者が指名した確認者の複数の公開鍵情報(c_C, d_C, h_C)を用いて、任意のデジタル情報(m)に対するリング署名を生成するデジタル署名装置と、
前記確認者の複数の公開鍵情報(c_C, d_C, h_C)に対応する複数の秘密鍵情報(x_C1, x_C2, y_C1, y_C2, s_C)に基づいて、当該リング署名を検証する確認者用署名検証装置と、
前記確認者用署名検証装置との間の対話証明を介して、当該リング署名を検証する検証者用署名検証装置と、
を備えたことを特徴とするデジタル署名システム。
Private key information (x_i) unique to the user as the signer, and public key information (y_1, y_2, ... y_n) of other users selected by the signer including the signer and the signer nominated A digital signature device that generates a ring signature for arbitrary digital information (m) using a plurality of public key information (c_C, d_C, h_C) of the confirmer;
Verifier signature verification that verifies the ring signature based on a plurality of private key information (x_C1, x_C2, y_C1, y_C2, s_C) corresponding to a plurality of public key information (c_C, d_C, h_C) of the confirmer Equipment,
A verifier signature verification device that verifies the ring signature via a proof of dialogue with the verifier signature verification device;
A digital signature system characterized by comprising:
署名者としてのユーザに固有の秘密鍵情報(x_i)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報(y_j)のリスト(L={y_1, y_2, … , y_n}(但しj = 1, 2, …, n))と、当該署名者が指名した確認者の複数の公開鍵情報(c_C, d_C, h_C)とに基づいて、任意のデジタル情報(m)に対するリング署名を生成するデジタル署名装置であって、
当該署名者の秘密鍵情報(x_i)を記憶する秘密鍵記憶手段と、
前記デジタル情報(m)、前記リスト(L)、乱数(r)、前記指名した確認者の公開鍵情報(c_C, d_C, h_C)及びハッシュ関数(H_{q}( ))に基づいて、コミットメント情報(CC)を計算する手段と、
第1乱数情報(α)、前記コミットメント情報(CC)及びハッシュ関数(H( ))に基づいて、第1リング要素情報(c_{i+1})を計算する手段と、
ユーザ番号(j = i+1, …, n, 1, …, i-1)毎に、ユーザ乱数情報(s_j)、ユーザ公開鍵情報(y_j)、第1リング要素情報(c_j)、前記コミットメント情報(CC)及びハッシュ関数(H( ))に基づいて、第2リング要素情報(c_{j+1} mod n)を順次計算する手段と、
前記第1乱数情報(α)、前記秘密鍵記憶手段内の秘密鍵情報(x_i)及び署名者に対応するリング要素情報(c_i)に基づいて、署名者関連情報(s_i)を生成する手段と、
1番目のリング要素情報(c_1)、前記ユーザ乱数情報(s_j)、前記署名者関連情報(s_i)、前記コミットメント情報(CC)及び前記リスト(L)を含むリング署名(σ = (c_1, s_1, …, s_n, CC, L))を出力する手段と、
を備えたことを特徴とするデジタル署名装置。
A list (L = {y_1, y_2,..., Y_n) of private key information (x_i) unique to the user as the signer and public key information (y_j) of a plurality of users selected by the signer including the signer } (Where j = 1, 2, ..., n)) and a plurality of public key information (c_C, d_C, h_C) of the confirmer designated by the signer, for any digital information (m) A digital signature device for generating a ring signature,
Secret key storage means for storing the signer's secret key information (x_i);
Commitment based on the digital information (m), the list (L), the random number (r), the public key information (c_C, d_C, h_C) of the designated confirmer and the hash function (H_ {q} ()) A means of calculating information (CC);
Means for calculating first ring element information (c_ {i + 1}) based on the first random number information (α), the commitment information (CC) and the hash function (H ());
For each user number (j = i + 1, ..., n, 1, ..., i-1), user random number information (s_j), user public key information (y_j), first ring element information (c_j), and the commitment Means for sequentially calculating the second ring element information (c_ {j + 1} mod n) based on the information (CC) and the hash function (H ());
Means for generating signer related information (s_i) based on the first random number information (α), the secret key information (x_i) in the secret key storage means, and the ring element information (c_i) corresponding to the signer; ,
Ring signature (σ = (c_1, s_1) including the first ring element information (c_1), the user random number information (s_j), the signer related information (s_i), the commitment information (CC), and the list (L) ,…, S_n, CC, L)),
A digital signature device comprising:
公開されているシステムパラメータg, g_1, g_2(但し、_は下付文字を表す)及び素数p,qと、署名者としてのユーザに固有の秘密鍵情報x_i=log_{g}(y_i)(但し、y_iは署名者の公開鍵情報を表す)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報y_jのリストL={y_1, y_2, … , y_n}(但しj = 1, 2, …, n)と、前記署名者が指名した確認者の公開鍵情報c_C = {g_1}^{x_C1}・{g_2}^{x_C2} mod p、d_C={g_1}^{y_C1}・{g_2}^{y_C2} mod p、h_C = {g_1}^{s_C} mod p (但し、 ^ は、べき乗を表す。 x_C1、x_C2、y_C1、y_C2、s_C は確認者の秘密鍵情報を表す)とに基づいて、任意のデジタル情報mに対するリング署名を生成するデジタル署名装置であって、
前記署名者の秘密鍵情報x_i=log_{g}(y_i)を記憶する秘密鍵記憶手段と、
前記デジタル情報m、前記リストL、前記システムパラメータg_1, g_2、乱数r、前記確認者の公開鍵情報c_C, d_C, h_C及びハッシュ関数H_{q}( )に基づいて、式u_1 = g_1^r mod p, 式u_2 = g_2^r mod p, 式e =h_C^r・g_1^H_{q}(m‖L), 式b =H_{q}(u_1‖u_2‖e), 式v =c_C^r・d_C^rb mod p により、コミットメント情報CC = (u_1, u_2, e, v)を計算する手段(但し、‖は連接を表す)と、
前記システムパラメータg、第1乱数情報α、前記コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_i = g^α mod p 及び式c_{i+1} = H(CC‖T_i)により、第1リング要素情報c_{i+1}を計算する手段と、
ユーザ番号j = i+1, …, n, 1, …, i-1毎に、前記システムパラメータg、ユーザ乱数情報s_j、ユーザ公開鍵情報y_j、第1リング要素情報c_j 、前記コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_{j+1} mod n = H(CC‖T_j)により、第2リング要素情報c_{j+1} mod n を順次計算する手段と、
前記第1乱数情報α、前記秘密鍵記憶手段内の秘密鍵情報x_i及び署名者に対応するリング要素情報c_iに基づいて、式 s_i = α − x_i・c_i mod q により、署名者関連情報s_iを生成する手段と、
1番目のリング要素情報c_1、前記ユーザ乱数情報s_j、前記署名者関連情報s_i、前記コミットメント情報CC及び前記リストLを含むリング署名σ = (c_1, s_1, …, s_n, CC, L) を出力する手段と、
を備えたことを特徴とするデジタル署名装置。
Public system parameters g, g_1, g_2 (where _ represents a subscript) and prime numbers p, q and private key information x_i = log_ {g} (y_i) ( Where y_i represents the signer's public key information) and a list L = {y_1, y_2,..., Y_n} of public key information y_j of a plurality of users including the signer and selected by the signer (where j = 1, 2,…, n) and the confirmer's public key information nominated by the signer c_C = {g_1} ^ {x_C1} ・ {g_2} ^ {x_C2} mod p, d_C = {g_1} ^ { y_C1} ・ {g_2} ^ {y_C2} mod p, h_C = {g_1} ^ {s_C} mod p (where ^ is a power. x_C1, x_C2, y_C1, y_C2, s_C are the confirmer's private key information A digital signature apparatus for generating a ring signature for arbitrary digital information m based on
Secret key storage means for storing the signer's secret key information x_i = log_ {g} (y_i);
Based on the digital information m, the list L, the system parameters g_1, g_2, the random number r, the public key information c_C, d_C, h_C of the confirmer and the hash function H_ {q} (), the expression u_1 = g_1 ^ r mod p, equation u_2 = g_2 ^ r mod p, equation e = h_C ^ r · g_1 ^ H_ {q} (m‖L), equation b = H_ {q} (u_1‖u_2‖e), equation v = c_C Means to calculate commitment information CC = (u_1, u_2, e, v) by ^ r · d_C ^ rb mod p (where ‖ represents concatenation);
Based on the system parameter g, the first random number information α, the commitment information CC and the hash function H (), the expression T_i = g ^ α mod p and the expression c_ {i + 1} = H (CC‖T_i) Means for calculating the first ring element information c_ {i + 1};
For each user number j = i + 1,..., N, 1,..., I−1, the system parameter g, user random number information s_j, user public key information y_j, first ring element information c_j, commitment information CC, and Based on the hash function H (), the second ring element information c_ {j + 1 is obtained by the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ {j + 1} mod n = H (CC‖T_j). } means for sequentially calculating mod n;
Based on the first random number information α, the secret key information x_i in the secret key storage means, and the ring element information c_i corresponding to the signer, the signer related information s_i is expressed by the expression s_i = α−x_i · c_i mod q. Means for generating;
The first ring element information c_1, the user random number information s_j, the signer related information s_i, the commitment information CC and the ring signature σ = (c_1, s_1,..., S_n, CC, L) including the list L are output. Means to
A digital signature device comprising:
署名者としてのユーザに固有の秘密鍵情報(x_i)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報(y_j)のリスト(L={y_1, y_2, … , y_n}(但しj = 1, 2, …, n))と、前記署名者が指名した確認者の複数の公開鍵情報(c_C, d_C, h_C)と、任意のデジタル情報(m)とに基づいて生成されたリング署名(σ)に関し、当該リング署名σを検証する確認者用署名検証装置であって、
前記確認者の複数の秘密鍵情報(x_C1、x_C2、y_C1、y_C2、s_C)を記憶する秘密鍵記憶手段と、
前記秘密鍵記憶手段内の複数の秘密鍵情報(x_C1、x_C2、y_C1、y_C2、s_C)に基づいて、前記リング署名(σ)を検証する第1検証手段と、
前記リスト(L)内の公開鍵情報(y_j)に基づいて、前記リング署名(σ)を検証する第2検証手段と、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段と、
を備えたことを特徴とする確認者用署名検証装置。
A list (L = {y_1, y_2,..., Y_n) of private key information (x_i) unique to the user as the signer and public key information (y_j) of a plurality of users selected by the signer including the signer } (Where j = 1, 2, ..., n)), a plurality of public key information (c_C, d_C, h_C) of the confirmer designated by the signer, and arbitrary digital information (m) A verifier signature verification device that verifies the ring signature σ with respect to the generated ring signature (σ),
Secret key storage means for storing a plurality of secret key information (x_C1, x_C2, y_C1, y_C2, s_C) of the confirmer;
First verification means for verifying the ring signature (σ) based on a plurality of secret key information (x_C1, x_C2, y_C1, y_C2, s_C) in the secret key storage means;
Second verification means for verifying the ring signature (σ) based on public key information (y_j) in the list (L);
A ring signature receiving means for receiving the ring signature when the verification by the first and second verification means is successful;
A verifier signature verification apparatus comprising:
公開されているシステムパラメータg, g_1, g_2(但し、_は下付文字を表す)及び素数p,qと、署名者としてのユーザに固有の秘密鍵情報x_i=log_{g}(y_i)(但し、y_iは署名者の公開鍵情報を表す)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報y_jのリストL={y_1, y_2, … , y_n}(但しj = 1, 2, …, n)と、前記署名者が指名した確認者の公開鍵情報c_C = {g_1}^{x_C1}・{g_2}^{x_C2} mod p、d_C={g_1}^{y_C1}・{g_2}^{y_C2} mod p、h_C = {g_1}^{s_C} mod p (但し、 ^ は、べき乗を表す。 x_C1、x_C2、y_C1、y_C2、s_C は確認者の秘密鍵情報を表す)と、乱数rと、第1乱数情報αと、ハッシュ関数H_{q}( ), H_( )と、ユーザ乱数情報s_jと、任意のデジタル情報mとに基づいて、式u_1 = g_1^r mod p, 式u_2 = g_2^r mod p, 式e =h_C^r・g_1^H_{q}(m‖L)(但し、‖は連接を表す), 式b =H_{q}(u_1‖u_2‖e), 式v =c_C^r・d_C^rb mod p 、CC = (u_1, u_2, e, v), 式T_i = g^α mod p, 式c_{i+1} = H(CC‖T_i), 式T_j = g^s_j・ y_j^c_j mod p , 式c_{j+1} mod n = H(CC‖T_j) 及び 式 s_i = α − x_i・c_i mod q の計算により生成されたリング署名σ = (c_1, s_1, …, s_n, CC, L) に関し、当該リング署名σを検証する確認者用署名検証装置であって、
前記確認者の秘密鍵情報x_C1、x_C2、y_C1、y_C2、s_C を記憶する秘密鍵記憶手段と、
前記リング署名σを検証する際に、当該リング署名σ内のコミットメント情報CCと、ハッシュ関数H_{q}とに基づいて、式b = H_{q}(u_1‖u_2‖e)により、コミットメント部分情報bを計算する手段と、
このコミットメント部分情報t、前記秘密鍵記憶手段内の秘密鍵情報x_C1、x_C2、y_C1、y_C2、s_C 、前記コミットメント情報CC 及び前記システムパラメータgに基づいて、第1式v =u_1^(x_{c1}+by_{c1})・u2^(x_{c2}+by_{c2}) mod p 及び第2式g^{H_{q}(m‖L)} = e/{ u_ 1}^(s_c) mod pが成り立つことをそれぞれ検証する第1検証手段と、
ユーザ番号j = 1, . . . , n毎に、前記システムパラメータg、前記リング署名σ内のユーザ乱数情報s_j、前記ユーザ公開鍵情報y_j、前記リング署名σ内の第1リング要素情報c_j 、前記コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_(j+1) = H(CC‖T_j)を順次計算することにより、式c_1 = c_(n+1)が成り立つことを検証する第2検証手段と、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段と、
を備えたことを特徴とする確認者用署名検証装置。
Public system parameters g, g_1, g_2 (where _ represents a subscript) and prime numbers p, q and private key information x_i = log_ {g} (y_i) ( Where y_i represents the signer's public key information) and a list L = {y_1, y_2,..., Y_n} of public key information y_j of a plurality of users including the signer and selected by the signer (where j = 1, 2,…, n) and the confirmer's public key information nominated by the signer c_C = {g_1} ^ {x_C1} ・ {g_2} ^ {x_C2} mod p, d_C = {g_1} ^ { y_C1} ・ {g_2} ^ {y_C2} mod p, h_C = {g_1} ^ {s_C} mod p (where ^ is a power. x_C1, x_C2, y_C1, y_C2, s_C are the confirmer's private key information ), Random number r, first random number information α, hash functions H_ {q} (), H_ (), user random number information s_j, and arbitrary digital information m, the expression u_1 = g_1 ^ R mod p, expression u_2 = g_2 ^ r mod p, expression e = h_C ^ r · g_1 ^ H_ {q} (m‖L) ), Expression b = H_ {q} (u_1‖u_2‖e), expression v = c_C ^ r ・ d_C ^ rb mod p, CC = (u_1, u_2, e, v), expression T_i = g ^ α mod p, c_ {i + 1} = H (CC‖T_i), T_j = g ^ s_j ・ y_j ^ c_j mod p, c_ {j + 1} mod n = H (CC‖T_j) and A verifier signature verification device for verifying a ring signature σ with respect to a ring signature σ = (c_1, s_1,..., s_n, CC, L) generated by calculating s_i = α−x_i · c_i mod q ,
Private key storage means for storing the confirmer's private key information x_C1, x_C2, y_C1, y_C2, s_C;
When verifying the ring signature σ, based on the commitment information CC in the ring signature σ and the hash function H_ {q}, the commitment part is expressed by the equation b = H_ {q} (u_1‖u_2‖e). Means for calculating information b;
Based on this commitment part information t, secret key information x_C1, x_C2, y_C1, y_C2, s_C in the secret key storage means, the commitment information CC, and the system parameter g, the first formula v = u_1 ^ (x_ {c1 } + by_ {c1}) ・ u2 ^ (x_ {c2} + by_ {c2}) mod p and the second equation g ^ {H_ {q} (m‖L)} = e / {u_ 1} ^ (s_c ) first verification means for verifying that mod p holds,
, N, for each user number j = 1,..., N, the system parameter g, user random number information s_j in the ring signature σ, the user public key information y_j, first ring element information c_j in the ring signature σ, Based on the commitment information CC and the hash function H (), by sequentially calculating the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ (j + 1) = H (CC‖T_j), the expression c_1 = a second verification means for verifying that c_ (n + 1) holds,
A ring signature receiving means for receiving the ring signature when the verification by the first and second verification means is successful;
A verifier signature verification apparatus comprising:
署名者としてのユーザに固有の秘密鍵情報(x_i)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報(y_j)のリスト(L={y_1, y_2, … , y_n}(但しj = 1, 2, …, n))と、前記署名者が指名した確認者の複数の公開鍵情報(c_C, d_C, h_C)と、任意のデジタル情報(m)とに基づいて生成されたリング署名(σ)に関し、確認者用署名検証装置との対話証明を介して当該リング署名(σ)を検証する検証者用署名検証装置であって、
前記リスト(L={y_1, … , y_n})と、前記確認者の複数の公開鍵情報(c_C, d_C, h_C)と、前記デジタル情報(m)と、前記リング署名(σ)とを記憶するための記憶手段と、
前記記憶手段内のリスト(L)内の公開鍵情報(y_j)に基づいて、前記リング署名(σ)を検証する第1検証手段と、
前記記憶手段内の確認者の公開鍵情報(c_C, d_C, h_C)に基づき、前記確認者用署名検証装置との間の対話証明を介して、前記リング署名(σ)を検証する第2検証手段と、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段と、
を備えたことを特徴とする検証者用署名検証装置。
A list (L = {y_1, y_2,..., Y_n) of private key information (x_i) unique to the user as the signer and public key information (y_j) of a plurality of users selected by the signer including the signer } (Where j = 1, 2, ..., n)), a plurality of public key information (c_C, d_C, h_C) of the confirmer designated by the signer, and arbitrary digital information (m) A verifier signature verification device that verifies the ring signature (σ) with respect to the generated ring signature (σ) through dialogue proof with the verifier signature verification device,
Stores the list (L = {y_1,..., Y_n}), a plurality of public key information (c_C, d_C, h_C) of the confirmer, the digital information (m), and the ring signature (σ) Storage means for
First verification means for verifying the ring signature (σ) based on public key information (y_j) in the list (L) in the storage means;
Second verification for verifying the ring signature (σ) through dialogue proof with the checker signature verification device based on the checker public key information (c_C, d_C, h_C) in the storage means Means,
A ring signature receiving means for receiving the ring signature when the verification by the first and second verification means is successful;
A verifier signature verification apparatus comprising:
公開されているシステムパラメータg, g_1, g_2(但し、_は下付文字を表す)及び素数p,qと、署名者としてのユーザに固有の秘密鍵情報x_i=log_{g}(y_i)(但し、y_iは署名者の公開鍵情報を表す)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報y_jのリストL={y_1, y_2, … , y_n}(但しj = 1, 2, …, n)と、前記署名者が指名した確認者の公開鍵情報c_C = {g_1}^{x_C1}・{g_2}^{x_C2} mod p、d_C={g_1}^{y_C1}・{g_2}^{y_C2} mod p、h_C = {g_1}^{s_C} mod p (但し、 ^ は、べき乗を表す。 x_C1、x_C2、y_C1、y_C2、s_C は確認者の秘密鍵情報を表す)と、乱数rと、第1乱数情報αと、ハッシュ関数H_{q}( ), H_( )と、ユーザ乱数情報s_jと、任意のデジタル情報mとに基づいて、式u_1 = g_1^r mod p, 式u_2 = g_2^r mod p, 式e =h_C^r・g_1^H_{q}(m‖L)(但し、‖は連接を表す), 式b =H_{q}(u_1‖u_2‖e), 式v =c_C^r・d_C^rb mod p 、CC = (u_1, u_2, e, v), 式T_i = g^α mod p, 式c_{i+1} = H(CC‖T_i), 式T_j = g^s_j・ y_j^c_j mod p , 式c_{j+1} mod n = H(CC‖T_j) 及び 式 s_i = α − x_i・c_i mod q の計算により生成されたリング署名σ = (c_1, s_1, …, s_n, CC, L) に関し、確認者用署名検証装置との対話証明を介して当該リング署名σを検証する検証者用署名検証装置であって、
前記システムパラメータg, g_1, g_2及び素数p,qと、前記リストL={y_1, y_2, , … , y_j , … , y_n}と、前記確認者の公開鍵情報c_C, d_C, h_Cと、前記デジタル情報mと、前記リング署名σとを記憶するための記憶手段と、
前記リング署名σを検証する際に、ユーザ番号j = 1, . . . , n毎に、前記システムパラメータg、前記リング署名σ内のユーザ乱数情報s_j、前記ユーザ公開鍵情報y_j、前記リング署名σ内の第1リング要素情報c_j 、前記コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_(j+1) = H(CC‖T_j)を順次計算することにより、式c_1 = c_(n+1)が成り立つことを検証する第1検証手段と、
乱数α_1, β_1を生成すると共に、この乱数α_1, β_1及び前記記憶手段内のシステムパラメータg_1と、前記記憶手段内の公開鍵情報 c_Cに基づいて、式a_1 = g_1^α_1・c_C^β_1 mod p により計算した値a_1_を前記確認者用検証装置に送信する手段と、
前記確認者用検証装置から値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、wを受信する手段(但し、r_1 = (g_1^k_1)(g_2^k_2)、r_2 = (g_1^k_3)(g_2^k_4)、r_3 = (u_1^k_1) (u_2^k_2) ((u_1^b)^k_3)((u_2^b) ^k_4) 、r_4 = g_1^k_5、r_5 = u_1^k_5、r_1 = (g_1^(k_1)) (g_2^(k_2))、r_2 = (g_1^(k_3)) (g_2^(k_4))、r_3 = (g_1^(k_1)) (g_2^(k_2))(u_1^b)^( k_3) (u_2^b)^( k_4)、r_4 = (u_1)^(k_5)、r_5 = e^(k_5)。ここで、k_1、 k_2、 k_3、 k_4 、 k_5、 k_1、 k_2、 k_3、 k_4、 k_5、 w ∈Z_q )と、
前記値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、wの受信後、前記乱数α_1, β_1を前記確認者用検証装置に送信する手段と、
前記確認者用検証装置により式a_1=g_1^α_1・c_C^β_1 mod pが成り立つことが検証された後、前記確認者用検証装置から値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5を受信する手段(但し、s_c1 = k_1 − (β_1 + w)・x_{c1}, s_c2 = k_2 - (β_1 + w)・x_{c2}, s_c3 = k_3 - (β_1 + w)・y_{c1}, s_c4 = k_4 - (β_1 + w)・y_{c2}, s_c5 = k_5 - (β_1 + w)・s_c, s_c1 = k_1 − (β_1 + w)・k_1, s_c2 = k_2 - (β_1 + w)・k_2, s_c3 = k_3 - (β_1 + w)・k_3, s_c4 = k_4 - (β_1 + w)・k_4, s_c5 = k_5 - (β_1 + w)・k_5と、
前記値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5の受信後、当該値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5、前記値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、w、前記記憶手段内の公開鍵情報c_C, d_C, h_C、前記デジタル情報m及び前記リング署名σ = (c_1, s_1, …, s_n, CC, L)に基づいて、式r_1 = g_1^{s_c1}・g_2^{s_c2}・c^(β_1 + w) , 式r_ 2 =(g_1)^{s_c3}・(g_2)^{s_c4}・(d^(β_1 + w)) , 式r_4 = g_1^{s_c5}・h_C^(β_1 + w), 式r_1 = g_1^{s_c1} g_2^{s_c2}・r_1^{{β_1}+w}, 式r_2 = g_1^{s_c3}・g_2^{s_c4}・r_2^{{β_1}+w}, 式r_3 = u_1^{s_c1}・u_2^{s_c2} (u_1^b)^{s_c3}・(u_2^b)^{s_c4}・ r_3^{{β_1}+w}, 式r_4 = g_1^{s_c5}・r_4^{{β_1}+w},式r_5 = u_1^{s_c5}・r_5^{{β_1}+w}の式が一つでも成り立たなければ、プロトコルを中止し、すべて成り立つことを確認できたら、r_3 = u_1^{s_c1}・u_2^{s_c2}・(u_1^b)^{s_c3}・(u_2^b) ^{s_c4}・v^{{β_1}+w},r_5 = u_1^{s_c5}・(eh_C{H_q(m‖L)})^{{β_1}+w}の2つの式が両方成り立つ、あるいは、どちらか1つでも成り立たないことを検証する第2検証手段と、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段と、
を備えたことを特徴とする検証者用署名検証装置。
Public system parameters g, g_1, g_2 (where _ represents a subscript) and prime numbers p, q and private key information x_i = log_ {g} (y_i) ( Where y_i represents the signer's public key information) and a list L = {y_1, y_2,..., Y_n} of public key information y_j of a plurality of users including the signer and selected by the signer (where j = 1, 2,…, n) and the confirmer's public key information nominated by the signer c_C = {g_1} ^ {x_C1} ・ {g_2} ^ {x_C2} mod p, d_C = {g_1} ^ { y_C1} ・ {g_2} ^ {y_C2} mod p, h_C = {g_1} ^ {s_C} mod p (where ^ is a power. x_C1, x_C2, y_C1, y_C2, s_C are the confirmer's private key information ), Random number r, first random number information α, hash functions H_ {q} (), H_ (), user random number information s_j, and arbitrary digital information m, the expression u_1 = g_1 ^ R mod p, expression u_2 = g_2 ^ r mod p, expression e = h_C ^ r · g_1 ^ H_ {q} (m‖L) ), Expression b = H_ {q} (u_1‖u_2‖e), expression v = c_C ^ r ・ d_C ^ rb mod p, CC = (u_1, u_2, e, v), expression T_i = g ^ α mod p, c_ {i + 1} = H (CC‖T_i), T_j = g ^ s_j ・ y_j ^ c_j mod p, c_ {j + 1} mod n = H (CC‖T_j) and s_i = α−x_i · c_i mod With respect to the ring signature σ = (c_1, s_1,..., s_n, CC, L), the ring signature is obtained through dialogue proof with the verifier signature verification device. A verifier signature verification device for verifying σ,
The system parameters g, g_1, g_2 and prime numbers p, q, the list L = {y_1, y_2,,..., Y_j, ..., y_n}, the public key information c_C, d_C, h_C of the confirmer, and Storage means for storing digital information m and the ring signature σ;
When verifying the ring signature σ, for each user number j = 1,..., N, the system parameter g, the user random number information s_j in the ring signature σ, the user public key information y_j, the ring signature Based on the first ring element information c_j in σ, the commitment information CC and the hash function H (), the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ (j + 1) = H (CC‖T_j ) In order to verify that the expression c_1 = c_ (n + 1) holds,
Generate random numbers α_1, β_1, and based on the random numbers α_1, β_1, the system parameter g_1 in the storage means, and the public key information c_C in the storage means, the expression a_1 = g_1 ^ α_1 · c_C ^ β_1 mod p Means for transmitting the value a_1_ calculated by
Means for receiving values r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, w from the verifier for the confirmer (where r_1 = (g_1 ^ k_1) (g_2 ^ K_2), r_2 = (g_1 ^ k_3) (g_2 ^ k_4), r_3 = (u_1 ^ k_1) (u_2 ^ k_2) ((u_1 ^ b) ^ k_3) ((u_2 ^ b) ^ k_4), r_4 = g_1 ^ k_5, r_5 = u_1 ^ k_5, r_1 = (g_1 ^ ( k_1)) (g_2 ^ ( k_2)), r_2 = (g_1 ^ ( k_3)) (g_2 ^ ( k_4)), R_3 = (g_1 ^ ( k_1)) (g_2 ^ ( k_2)) (u_1 ^ b) ^ ( k_3) (u_2 ^ b) ^ ( k_4), r_4 = (u_1) ^ ( k_5 ), ~ R_5 = e ^ ( ~ k_5), where k_1, k_2, k_3, k_4, k_5, ~ k_1, ~ k_2, ~ k_3, ~ k_4, ~ k_5, w ∈Z_q),
Means for transmitting the random numbers α_1, β_1 to the verifier for verification after receiving the values r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, w;
After that formula a_1 = g_1 ^ α_1 · c_C ^ β_1 mod p is true has been verified by the confirmation's verification system, value s_c1 from the confirmation's verification device, s_c2, s_c3, s_c4, s_c5 , ~ s_c1, ~ Means to receive s_c2, ~ s_c3, ~ s_c4, ~ s_c5 (however, s_c1 = k_1 − (β_1 + w) ・ x_ {c1}, s_c2 = k_2-(β_1 + w) ・ x_ {c2}, s_c3 = k_3 -(β_1 + w) ・ y_ {c1}, s_c4 = k_4-(β_1 + w) ・ y_ {c2}, s_c5 = k_5-(β_1 + w) ・ s_c, ~ s_c1 = ~ k_1 − (β_1 + w) · k_1, ~ s_c2 = ~ k_2 - (β_1 + w) · k_2, ~ s_c3 = ~ k_3 - (β_1 + w) · k_3, ~ s_c4 = ~ k_4 - (β_1 + w) · k_4, ~ s_c5 = ~ k_5 -(β_1 + w) ・ k_5,
The value s_c1, s_c2, s_c3, s_c4, s_c5, ~ s_c1, ~ s_c2, ~ s_c3, ~ s_c4, after receiving the ~ s_c5, the value s_c1, s_c2, s_c3, s_c4, s_c5, ~ s_c1, ~ s_c2, ~ s_c3 , ~ S_c4, ~ s_c5, said values r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, w, public key information c_C, d_C, h_C in the storage means, Based on the digital information m and the ring signature σ = (c_1, s_1,..., S_n, CC, L), the expression r_1 = g_1 ^ {s_c1} · g_2 ^ {s_c2} · c ^ (β_1 + w), Equation r_ 2 = (g_1) ^ {s_c3} ・ (g_2) ^ {s_c4} ・ (d ^ (β_1 + w)), Equation r_4 = g_1 ^ {s_c5} · h_C ^ (β_1 + w), Equation ~ r_1 = g_1 ^ { s_c1} g_2 ^ { s_c2} ・r_1 ^ {{β_1} + w}, the expression ~ r_2 = g_1 ^ { s_c3} ・ g_2 ^ { s_c4} ・r_2 ^ {{β_1} + w}, Equation ~ r_3 = u_1 ^ { ~ s_c1} · u_2 ^ { ~ s_c2} (u_1 ^ b) ^ { ~ s_c3} · (u_2 ^ b) ^ { ~ s_c4} · r_3 ^ {{β_1} + w}, expression ~ r_4 = g_1 ^ {s_c5} · r_4 ^ {{β_1} + w}, the formula ~ r_5 = u_1 ^ {s_c5} · r_5 ^ {{β_1} + w} expression is standing become also one of the Otherwise, cancel the protocol and confirm that everything is valid. R_3 = u_1 ^ {s_c1} ・ u_2 ^ {s_c2} ・ (u_1 ^ b) ^ {s_c3} ・ (u_2 ^ b) ^ {s_c4} v ^ {{β_1} + w}, r_5 = u_1 ^ {s_c5} ・ (eh_C ^ {H_q (m‖L)}) ^ {{β_1} + w} both hold, or either one A second verification means for verifying that it is not always possible;
A ring signature receiving means for receiving the ring signature when the verification by the first and second verification means is successful;
A verifier signature verification apparatus comprising:
署名者としてのユーザに固有の秘密鍵情報(x_i)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報(y_j)のリスト(L={y_1, y_2, … , y_n}(但しj = 1, 2, …, n))と、前記署名者が指名した確認者の複数の公開鍵情報(c_C, d_C, h_C)とに基づいて、任意のデジタル情報(m)に対するリング署名を生成するデジタル署名装置に用いられるプログラムであって、
前記デジタル署名装置を、
前記署名者の秘密鍵情報(x_i)を当該デジタル署名装置の秘密鍵記憶手段に書き込む手段、
前記デジタル情報(m)、前記リスト(L)、乱数(r)、前記確認者の公開鍵情報(c_C, d_C, h_C)及びハッシュ関数(H_{q}( ))に基づいて、コミットメント情報(CC)を計算する手段、
第1乱数情報(α)、前記コミットメント情報(CC)及びハッシュ関数(H( ))に基づいて、第1リング要素情報(c_{i+1})を計算する手段、
ユーザ番号(j = i+1, …, n, 1, …, i-1)毎に、ユーザ乱数情報(s_j)、ユーザ公開鍵情報(y_j)、第1リング要素情報(c_j)、前記コミットメント情報(CC)及びハッシュ関数(H( ))に基づいて、第2リング要素情報(c_{j+1} mod n)を順次計算する手段、
前記第1乱数情報(α)、前記秘密鍵記憶手段内の秘密鍵情報(x_i)及び署名者に対応するリング要素情報(c_i)に基づいて、署名者関連情報(s_i)を生成する手段、
1番目のリング要素情報(c_1)、前記ユーザ乱数情報(s_j)、前記署名者関連情報(s_i)、前記コミットメント情報(CC)及び前記リスト(L)を含むリング署名(σ = (c_1, s_1, …, s_n, CC, L))を出力する手段、
として機能させるためのプログラム。
A list (L = {y_1, y_2,..., Y_n) of private key information (x_i) unique to the user as the signer and public key information (y_j) of the plurality of users selected by the signer including the signer } (Where j = 1, 2, ..., n)) and a plurality of public key information (c_C, d_C, h_C) of the confirmer designated by the signer, for any digital information (m) A program used in a digital signature device that generates a ring signature,
The digital signature device;
Means for writing the signer's private key information (x_i) into the private key storage means of the digital signature device;
Based on the digital information (m), the list (L), the random number (r), the public key information (c_C, d_C, h_C) of the confirmer and the hash function (H_ {q} ()), commitment information ( CC),
Means for calculating first ring element information (c_ {i + 1}) based on the first random number information (α), the commitment information (CC) and the hash function (H ());
For each user number (j = i + 1, ..., n, 1, ..., i-1), user random number information (s_j), user public key information (y_j), first ring element information (c_j), and the commitment Means for sequentially calculating the second ring element information (c_ {j + 1} mod n) based on the information (CC) and the hash function (H ());
Means for generating signer related information (s_i) based on the first random number information (α), secret key information (x_i) in the secret key storage means and ring element information (c_i) corresponding to the signer;
Ring signature (σ = (c_1, s_1) including the first ring element information (c_1), the user random number information (s_j), the signer related information (s_i), the commitment information (CC), and the list (L) ,…, S_n, CC, L)),
Program to function as.
公開されているシステムパラメータg, g_1, g_2(但し、_は下付文字を表す)及び素数p,qと、署名者としてのユーザに固有の秘密鍵情報x_i=log_{g}(y_i)(但し、y_iは署名者の公開鍵情報を表す)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報y_jのリストL={y_1, y_2, … , y_n}(但しj = 1, 2, …, n)と、前記署名者が指名した確認者の公開鍵情報c_C = {g_1}^{x_C1}・{g_2}^{x_C2} mod p、d_C={g_1}^{y_C1}・{g_2}^{y_C2} mod p、h_C = {g_1}^{s_C} mod p (但し、 ^ は、べき乗を表す。 x_C1、x_C2、y_C1、y_C2、s_C は確認者の秘密鍵情報を表す)とに基づいて、任意のデジタル情報mに対するリング署名を生成するデジタル署名装置に用いられるプログラムであって、
前記デジタル署名装置を、
前記署名者の秘密鍵情報x_i=log_{g}(y_i)を当該デジタル署名装置の秘密鍵記憶手段に書き込む手段、
前記デジタル情報m、前記リストL、前記システムパラメータg_1, g_2、乱数r、前記確認者の公開鍵情報c_C, d_C, h_C及びハッシュ関数H_{q}( )に基づいて、式u_1 = g_1^r mod p, 式u_2 = g_2^r mod p, 式e =h_C^r・g_1^H_{q}(m‖L), 式b =H_{q}(u_1‖u_2‖e), 式v =c_C^r・d_C^rb mod p により、コミットメント情報CC = (u_1, u_2, e, v)を計算する手段(但し、‖は連接を表す)、
前記システムパラメータg、第1乱数情報α、前記コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_i = g^α mod p 及び式c_{i+1} = H(CC‖T_i)により、第1リング要素情報c_{i+1}を計算する手段、
ユーザ番号j = i+1, …, n, 1, …, i-1毎に、前記システムパラメータg、ユーザ乱数情報s_j、ユーザ公開鍵情報y_j、第1リング要素情報c_j 、前記コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_{j+1} mod n = H(CC‖T_j)により、第2リング要素情報c_{j+1} mod n を順次計算する手段、
前記第1乱数情報α、前記秘密鍵記憶手段内の秘密鍵情報x_i及び署名者に対応するリング要素情報c_iに基づいて、式 s_i = α − x_i・c_i mod q により、署名者関連情報s_iを生成する手段、
1番目のリング要素情報c_1、前記ユーザ乱数情報s_j、前記署名者関連情報s_i、前記コミットメント情報CC及び前記リストLを含むリング署名σ = (c_1, s_1, …, s_n, CC, L) を出力する手段、
として機能させるためのプログラム。
Public system parameters g, g_1, g_2 (where _ represents a subscript) and prime numbers p, q and private key information x_i = log_ {g} (y_i) ( Where y_i represents the public key information of the signer) and a list L = {y_1, y_2,..., Y_n} of public key information y_j of a plurality of users including the signer and selected by the signer (where j = 1, 2,…, n) and the confirmer's public key information nominated by the signer c_C = {g_1} ^ {x_C1} ・ {g_2} ^ {x_C2} mod p, d_C = {g_1} ^ { y_C1} ・ {g_2} ^ {y_C2} mod p, h_C = {g_1} ^ {s_C} mod p (where ^ is a power. x_C1, x_C2, y_C1, y_C2, s_C are the confirmer's private key information And a digital signature device for generating a ring signature for arbitrary digital information m based on
The digital signature device;
Means for writing the signer's private key information x_i = log_ {g} (y_i) in the private key storage means of the digital signature device;
Based on the digital information m, the list L, the system parameters g_1, g_2, the random number r, the public key information c_C, d_C, h_C of the confirmer and the hash function H_ {q} (), the expression u_1 = g_1 ^ r mod p, equation u_2 = g_2 ^ r mod p, equation e = h_C ^ r · g_1 ^ H_ {q} (m‖L), equation b = H_ {q} (u_1‖u_2‖e), equation v = c_C Means to calculate commitment information CC = (u_1, u_2, e, v) by ^ r · d_C ^ rb mod p (where ‖ represents concatenation),
Based on the system parameter g, the first random number information α, the commitment information CC and the hash function H (), the expression T_i = g ^ α mod p and the expression c_ {i + 1} = H (CC‖T_i) Means for calculating the first ring element information c_ {i + 1};
For each user number j = i + 1,..., N, 1,..., I−1, the system parameter g, user random number information s_j, user public key information y_j, first ring element information c_j, commitment information CC, and Based on the hash function H (), the second ring element information c_ {j + 1 is obtained by the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ {j + 1} mod n = H (CC‖T_j). } means to calculate mod n sequentially,
Based on the first random number information α, the secret key information x_i in the secret key storage means, and the ring element information c_i corresponding to the signer, the signer related information s_i is expressed by the expression s_i = α−x_i · c_i mod q. Means to generate,
The first ring element information c_1, the user random number information s_j, the signer related information s_i, the commitment information CC and the ring signature σ = (c_1, s_1,..., S_n, CC, L) including the list L are output. Means to
Program to function as.
署名者としてのユーザに固有の秘密鍵情報(x_i)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報(y_j)のリスト(L={y_1, y_2, … , y_n}(但しj = 1, 2, …, n))と、前記署名者が指名した確認者の複数の公開鍵情報(c_C, d_C, h_C)と、任意のデジタル情報(m)とに基づいて生成されたリング署名(σ)に関し、当該リング署名σを検証する確認者用署名検証装置に用いられるプログラムであって、
前記確認者用署名検証装置を、
前記確認者の複数の秘密鍵情報(x_C1、x_C2、y_C1、y_C2、s_C)を当該確認者用署名検証装置の秘密鍵記憶手段に書き込む手段、
前記秘密鍵記憶手段内の複数の秘密鍵情報(x_C1、x_C2、y_C1、y_C2、s_C)に基づいて、前記リング署名(σ)を検証する第1検証手段、
前記リスト(L)内の公開鍵情報(y_j)に基づいて、前記リング署名(σ)を検証する第2検証手段、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段、
として機能させるためのプログラム。
A list (L = {y_1, y_2,..., Y_n) of private key information (x_i) unique to the user as the signer and public key information (y_j) of the plurality of users selected by the signer including the signer } (Where j = 1, 2, ..., n)), a plurality of public key information (c_C, d_C, h_C) of the confirmer designated by the signer, and arbitrary digital information (m) A program used for a verifier signature verification device that verifies the ring signature σ with respect to the generated ring signature (σ),
The verifier signature verification device
Means for writing a plurality of secret key information (x_C1, x_C2, y_C1, y_C2, s_C) of the confirmer into a secret key storage means of the verifier signature verification device;
First verification means for verifying the ring signature (σ) based on a plurality of secret key information (x_C1, x_C2, y_C1, y_C2, s_C) in the secret key storage means;
Second verification means for verifying the ring signature (σ) based on public key information (y_j) in the list (L);
A ring signature receiving means for receiving the ring signature when the verification by the first and second verification means is successful;
Program to function as.
公開されているシステムパラメータg, g_1, g_2(但し、_は下付文字を表す)及び素数p,qと、署名者としてのユーザに固有の秘密鍵情報x_i=log_{g}(y_i)(但し、y_iは署名者の公開鍵情報を表す)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報y_jのリストL={y_1, y_2, … , y_n}(但しj = 1, 2, …, n)と、前記署名者が指名した確認者の公開鍵情報c_C = {g_1}^{x_C1}・{g_2}^{x_C2} mod p、d_C={g_1}^{y_C1}・{g_2}^{y_C2} mod p、h_C = {g_1}^{s_C} mod p (但し、 ^ は、べき乗を表す。 x_C1、x_C2、y_C1、y_C2、s_C は確認者の秘密鍵情報を表す)と、乱数rと、第1乱数情報αと、ハッシュ関数H_{q}( ), H_( )と、ユーザ乱数情報s_jと、任意のデジタル情報mとに基づいて、式u_1 = g_1^r mod p, 式u_2 = g_2^r mod p, 式e =h_C^r・g_1^H_{q}(m‖L)(但し、‖は連接を表す), 式b =H_{q}(u_1‖u_2‖e), 式v =c_C^r・d_C^rb mod p 、CC = (u_1, u_2, e, v), 式T_i = g^α mod p, 式c_{i+1} = H(CC‖T_i), 式T_j = g^s_j・ y_j^c_j mod p , 式c_{j+1} mod n = H(CC‖T_j) 及び 式 s_i = α − x_i・c_i mod q の計算により生成されたリング署名σ = (c_1, s_1, …, s_n, CC, L) に関し、当該リング署名σを検証する確認者用署名検証装置に用いられるプログラムであって、
前記確認者用署名検証装置を、
前記確認者の秘密鍵情報x_C1、x_C2、y_C1、y_C2、s_C を当該確認者用署名検証装置の秘密鍵記憶手段に書き込む手段、
前記リング署名σを検証する際に、当該リング署名σ内のコミットメント情報CCと、ハッシュ関数H_{q}とに基づいて、式b = H_{q}(u_1‖u_2‖e)により、コミットメント部分情報bを計算する手段、
このコミットメント部分情報t、前記秘密鍵記憶手段内の秘密鍵情報x_C1、x_C2、y_C1、y_C2、s_C 、前記コミットメント情報CC 及び前記システムパラメータgに基づいて、第1式v =u_1^(x_{c1}+by_{c1})・u2^(x_{c2}+by_{c2}) mod p 及び第2式g^{H_{q}(m‖L)} = e/{ u_ 1}^(s_c) mod pが成り立つことをそれぞれ検証する第1検証手段、
ユーザ番号j = 1, . . . , n毎に、前記システムパラメータg、前記リング署名σ内のユーザ乱数情報s_j、前記ユーザ公開鍵情報y_j、前記リング署名σ内の第1リング要素情報c_j 、前記コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_(j+1) = H(CC‖T_j)を順次計算することにより、式c_1 = c_(n+1)が成り立つことを検証する第2検証手段、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段、
として機能させるためのプログラム。
Public system parameters g, g_1, g_2 (where _ represents a subscript) and prime numbers p, q and private key information x_i = log_ {g} (y_i) ( Where y_i represents the public key information of the signer) and a list L = {y_1, y_2,..., Y_n} of public key information y_j of a plurality of users including the signer and selected by the signer (where j = 1, 2,…, n) and the confirmer's public key information nominated by the signer c_C = {g_1} ^ {x_C1} ・ {g_2} ^ {x_C2} mod p, d_C = {g_1} ^ { y_C1} ・ {g_2} ^ {y_C2} mod p, h_C = {g_1} ^ {s_C} mod p (where ^ is a power. x_C1, x_C2, y_C1, y_C2, s_C are the confirmer's private key information ), Random number r, first random number information α, hash functions H_ {q} (), H_ (), user random number information s_j, and arbitrary digital information m, the expression u_1 = g_1 ^ R mod p, expression u_2 = g_2 ^ r mod p, expression e = h_C ^ r · g_1 ^ H_ {q} (m‖L) (where ‖ is connected ), Expression b = H_ {q} (u_1‖u_2‖e), expression v = c_C ^ r ・ d_C ^ rb mod p, CC = (u_1, u_2, e, v), expression T_i = g ^ α mod p, equation c_ {i + 1} = H (CC‖T_i), equation T_j = g ^ s_j · y_j ^ c_j mod p, equation c_ {j + 1} mod n = H (CC‖T_j) and equation s_i = A program used in a verifier signature verification device that verifies the ring signature σ with respect to the ring signature σ = (c_1, s_1, ..., s_n, CC, L) generated by the calculation of α−x_i · c_i mod q There,
The verifier signature verification device
Means for writing the confirmer's secret key information x_C1, x_C2, y_C1, y_C2, s_C into the secret key storage means of the confirmer signature verification device;
When verifying the ring signature σ, based on the commitment information CC in the ring signature σ and the hash function H_ {q}, the commitment part is expressed by the equation b = H_ {q} (u_1‖u_2‖e). Means for calculating information b,
Based on this commitment part information t, secret key information x_C1, x_C2, y_C1, y_C2, s_C in the secret key storage means, the commitment information CC, and the system parameter g, the first formula v = u_1 ^ (x_ {c1 } + by_ {c1}) ・ u2 ^ (x_ {c2} + by_ {c2}) mod p and the second equation g ^ {H_ {q} (m‖L)} = e / {u_ 1} ^ (s_c ) first verification means for verifying that mod p holds,
, N, for each user number j = 1,..., N, the system parameter g, user random number information s_j in the ring signature σ, the user public key information y_j, first ring element information c_j in the ring signature σ, Based on the commitment information CC and the hash function H (), by sequentially calculating the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ (j + 1) = H (CC‖T_j), the expression c_1 = a second verification means for verifying that c_ (n + 1) holds,
A ring signature receiving means for receiving the ring signature when the verification by the first and second verification means is successful;
Program to function as.
署名者としてのユーザに固有の秘密鍵情報(x_i)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報(y_j)のリスト(L={y_1, y_2, … , y_n}(但しj = 1, 2, …, n))と、前記署名者が指名した確認者の複数の公開鍵情報(c_C, d_C, h_C)と、任意のデジタル情報(m)とに基づいて生成されたリング署名(σ)に関し、確認者用署名検証装置との対話証明を介して当該リング署名(σ)を検証する検証者用署名検証装置に用いられるプログラムであって、
前記検証者用署名検証装置を、
前記リスト(L={y_1, … , y_n})と、前記確認者の複数の公開鍵情報(c_C, d_C, h_C)と、前記デジタル情報(m)と、前記リング署名(σ)とを当該検証者用署名検証装置の記憶手段に書き込む手段、
前記記憶手段内のリスト(L)内の公開鍵情報(y_j)に基づいて、前記リング署名(σ)を検証する第1検証手段、
前記記憶手段内の確認者の公開鍵情報(c_C, d_C, h_C)に基づき、前記確認者用署名検証装置との間の対話証明を介して、前記リング署名(σ)を検証する第2検証手段、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段、
として機能させるためのプログラム。
A list (L = {y_1, y_2,..., Y_n) of private key information (x_i) unique to the user as the signer and public key information (y_j) of the plurality of users selected by the signer including the signer } (Where j = 1, 2, ..., n)), a plurality of public key information (c_C, d_C, h_C) of the confirmer designated by the signer, and arbitrary digital information (m) A program used for a verifier signature verification apparatus that verifies the ring signature (σ) via a dialog proof with the verifier signature verification apparatus with respect to the generated ring signature (σ),
The verifier signature verification device
The list (L = {y_1,..., Y_n}), a plurality of public key information (c_C, d_C, h_C) of the confirmer, the digital information (m), and the ring signature (σ) Means for writing to the storage means of the verifier signature verification device;
First verification means for verifying the ring signature (σ) based on public key information (y_j) in the list (L) in the storage means;
Second verification for verifying the ring signature (σ) through dialogue proof with the checker signature verification device based on the checker public key information (c_C, d_C, h_C) in the storage means means,
A ring signature receiving means for receiving the ring signature when the verification by the first and second verification means is successful;
Program to function as.
公開されているシステムパラメータg, g_1, g_2(但し、_は下付文字を表す)及び素数p,qと、署名者としてのユーザに固有の秘密鍵情報x_i=log_{g}(y_i)(但し、y_iは署名者の公開鍵情報を表す)と、この署名者を含み当該署名者が選択した複数のユーザの公開鍵情報y_jのリストL={y_1, y_2, … , y_n}(但しj = 1, 2, …, n)と、前記署名者が指名した確認者の公開鍵情報c_C = {g_1}^{x_C1}・{g_2}^{x_C2} mod p、d_C={g_1}^{y_C1}・{g_2}^{y_C2} mod p、h_C = {g_1}^{s_C} mod p (但し、 ^ は、べき乗を表す。 x_C1、x_C2、y_C1、y_C2、s_C は確認者の秘密鍵情報を表す)と、乱数rと、第1乱数情報αと、ハッシュ関数H_{q}( ), H_( )と、ユーザ乱数情報s_jと、任意のデジタル情報mとに基づいて、式u_1 = g_1^r mod p, 式u_2 = g_2^r mod p, 式e =h_C^r・g_1^H_{q}(m‖L)(但し、‖は連接を表す), 式b =H_{q}(u_1‖u_2‖e), 式v =c_C^r・d_C^rb mod p 、CC = (u_1, u_2, e, v), 式T_i = g^α mod p, 式c_{i+1} = H(CC‖T_i), 式T_j = g^s_j・ y_j^c_j mod p , 式c_{j+1} mod n = H(CC‖T_j) 及び 式 s_i = α − x_i・c_i mod q の計算により生成されたリング署名σ = (c_1, s_1, …, s_n, CC, L) に関し、確認者用署名検証装置との対話証明を介して当該リング署名σを検証する検証者用署名検証装置に用いられるプログラムであって、
前記検証者用署名検証装置を、
前記システムパラメータg, g_1, g_2及び素数p,qと、前記リストL={y_1, y_2, , … , y_j , … , y_n}と、前記確認者の公開鍵情報c_C, d_C, h_Cと、前記デジタル情報mと、前記リング署名σとを当該検証者用署名検証装置の記憶手段に書き込む手段、
前記リング署名σを検証する際に、ユーザ番号j = 1, . . . , n毎に、前記システムパラメータg、前記リング署名σ内のユーザ乱数情報s_j、前記ユーザ公開鍵情報y_j、前記リング署名σ内の第1リング要素情報c_j 、前記コミットメント情報CC及びハッシュ関数H( )に基づいて、式T_j = g^s_j・ y_j^c_j mod p 及び式c_(j+1) = H(CC‖T_j)を順次計算することにより、式c_1 = c_(n+1)が成り立つことを検証する第1検証手段、
乱数α_1、 β_1 を生成すると共に、この乱数α_1, β_1及び前記記憶手段内のシステムパラメータg_1と、前記記憶手段内の公開鍵情報c_Cに基づいて、式a_1 = g_1^α_1・c_C^β_1 mod p により計算した値a_1を前記確認者用検証装置に送信する手段、
前記確認者用検証装置から値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、wを受信する手段((但し、r_1 = (g_1^k_1)(g_2^k_2)、r_2 = (g_1^k_3)(g_2^k_4)、r_3 = (u_1^k_1) (u_2^k_2) ((u_1^b)k_3)((u_2^b)k_4) 、r_4 = g_1^k_5、r_5 = u_1^k_5、r_1 = (g_1^(k_1)) (g_2^(k_2))、r_2 = (g_1^(k_3)) (g_2^(k_4))、r_3 = (g_1^(k_1)) (g_2^(k_2))(u_1^b)^( k_3) (u_2^b)^( k_4)、r_4 = (u_1)^(k_5)、r_5 = e^(k_5)。ここで、k_1、 k_2、 k_3、 k_4 、 k_5、 k_1、 k_2、 k_3、 k_4、 k_5、 w ∈Z_q )、
前記値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、wの受信後、前記乱数α_1、 β_1を前記確認者用検証装置に送信する手段、
前記確認者用検証装置により式a_1=g_1^α_1・c_C^β_1 mod pが成り立つことが検証された後、前記確認者用検証装置から値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5を受信する手段(但し、s_c1 = k_1 − (β_1 + w)・x_{c1}, s_c2 = k_2 - (β_1 + w)・x_{c2}, s_c3 = k_3 - (β_1 + w)・y_{c1}, s_c4 = k_4 - (β_1 + w)・y_{c2}, s_c5 = k_5 - (β_1 + w)・s_c, s_c1 = k_1 − (β_1 + w)・k_1, s_c2 = k_2 - (β_1 + w)・k_2, s_c3 = k_3 - (β_1 + w)・k_3, s_c4 = k_4 - (β_1 + w)・k_4, s_c5 = k_5 - (β_1 + w)・k_5)、
前記値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5の受信後、当該値s_c1, s_c2, s_c3, s_c4,s_c5, s_c1, s_c2, s_c3, s_c4, s_c5、前記値r_1、r_2、r_3、r_4、r_5、 r_1、 r_2、r_3、 r_4、r_5、w、前記記憶手段内の公開鍵情報c_C, d_C, h_C、前記デジタル情報m及び前記リング署名σ = (c_1, s_1, …, s_n, CC, L)に基づいて、式r_1 = g_1^{s_c1}・g_2^{s_c2}・c^(β_1 + w) , 式r_ 2 =(g_1)^{s_c3}・(g_2)^{s_c4}・(d^(β_1 + w)) , 式r_4 = g_1^{s_c5}・h_C^(β_1 + w), 式r_1 = g_1^{s_c1} g_2^{s_c2}・r_1^{{β_1}+w}, 式r_2 = g_1^{s_c3}・g_2^{s_c4}・r_2^{{β_1}+w}, 式r_3 = u_1^{s_c1}・u_2^{s_c2} (u_1^b)^{s_c3}・(u_2^b)^{s_c4}・ r_3^{{β_1}+w}, 式r_4 = g_1^{s_c5}・r_4^{{β_1}+w},式r_5 = u_1^{s_c5}・r_5^{{β_1}+w}の式が成り立つことを確認した後、r_3 = u_1^{s_c1}・u_2^{s_c2}・(u_1^b)^{s_c3}・(u_2^b) ^{s_c4}・v^{{β_1}+w},r_5 = u_1^{s_c5}・(eh_C{H_q(m‖L)})^{{β_1}+w}の2つの式が両方成り立つか、どちらか1つでも成り立たないことを検証する第2検証手段、
前記第1及び第2検証手段による検証に合格したとき、前記リング署名を受理するリング署名受理手段、
として機能させるためのプログラム。
Public system parameters g, g_1, g_2 (where _ represents a subscript) and prime numbers p, q and private key information x_i = log_ {g} (y_i) ( Where y_i represents the public key information of the signer) and a list L = {y_1, y_2,..., Y_n} of public key information y_j of a plurality of users including the signer and selected by the signer (where j = 1, 2,…, n) and the confirmer's public key information nominated by the signer c_C = {g_1} ^ {x_C1} ・ {g_2} ^ {x_C2} mod p, d_C = {g_1} ^ { y_C1} ・ {g_2} ^ {y_C2} mod p, h_C = {g_1} ^ {s_C} mod p (where ^ is a power. x_C1, x_C2, y_C1, y_C2, s_C are the confirmer's private key information ), Random number r, first random number information α, hash functions H_ {q} (), H_ (), user random number information s_j, and arbitrary digital information m, the expression u_1 = g_1 ^ R mod p, expression u_2 = g_2 ^ r mod p, expression e = h_C ^ r · g_1 ^ H_ {q} (m‖L) (where ‖ is connected ), Expression b = H_ {q} (u_1‖u_2‖e), expression v = c_C ^ r ・ d_C ^ rb mod p, CC = (u_1, u_2, e, v), expression T_i = g ^ α mod p, equation c_ {i + 1} = H (CC‖T_i), equation T_j = g ^ s_j · y_j ^ c_j mod p, equation c_ {j + 1} mod n = H (CC‖T_j) and equation s_i = With respect to the ring signature σ = (c_1, s_1,…, s_n, CC, L) generated by the calculation of α−x_i · c_i mod q, the ring signature σ is obtained through dialogue proof with the verifier signature verification device. A program used for a verifier signature verification device for verification,
The verifier signature verification device
The system parameters g, g_1, g_2 and prime numbers p, q, the list L = {y_1, y_2,,..., Y_j, ..., y_n}, the public key information c_C, d_C, h_C of the confirmer, and Means for writing the digital information m and the ring signature σ into the storage means of the verifier signature verification apparatus;
When verifying the ring signature σ, for each user number j = 1,..., N, the system parameter g, the user random number information s_j in the ring signature σ, the user public key information y_j, the ring signature Based on the first ring element information c_j in σ, the commitment information CC and the hash function H (), the expression T_j = g ^ s_j · y_j ^ c_j mod p and the expression c_ (j + 1) = H (CC‖T_j ) Sequentially, first verification means for verifying that the expression c_1 = c_ (n + 1) holds.
Random numbers α_1, β_1 are generated, and based on the random numbers α_1, β_1, the system parameter g_1 in the storage means, and the public key information c_C in the storage means, the expression a_1 = g_1 ^ α_1 · c_C ^ β_1 mod p Means for transmitting the value a_1 calculated by
Value r_1 from the confirmation's verification device, r_2, r_3, r_4, r_5 , ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, means for receiving the w ((However, r_1 = (g_1 ^ k_1) ( g_2 ^ k_2), r_2 = (g_1 ^ k_3) (g_2 ^ k_4), r_3 = (u_1 ^ k_1) (u_2 ^ k_2) ((u_1 ^ b) k_3) ((u_2 ^ b) k_4), r_4 = g_1 ^ K_5, r_5 = u_1 ^ k_5, r_1 = (g_1 ^ ( k_1)) (g_2 ^ ( k_2)), r_2 = (g_1 ^ ( k_3)) (g_2 ^ ( k_4)), r_3 = (g_1 ^ ( ~ k_1)) (g_2 ^ ( ~ k_2)) (u_1 ^ b) ^ ( ~ k_3) (u_2 ^ b) ^ ( ~ k_4), ~ r_4 = (u_1) ^ ( ~ k_5) , ~ R_5 = e ^ ( ~ k_5), where k_1, k_2, k_3, k_4, k_5, ~ k_1, ~ k_2, ~ k_3, ~ k_4, ~ k_5, w ∈Z_q),
Means for transmitting the random numbers α_1, β_1 to the verifier for verification after receiving the values r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, w;
After that formula a_1 = g_1 ^ α_1 · c_C ^ β_1 mod p is true has been verified by the confirmation's verification system, value s_c1 from the confirmation's verification device, s_c2, s_c3, s_c4, s_c5 , ~ s_c1, ~ Means to receive s_c2, ~ s_c3, ~ s_c4, ~ s_c5 (however, s_c1 = k_1 − (β_1 + w) ・ x_ {c1}, s_c2 = k_2-(β_1 + w) ・ x_ {c2}, s_c3 = k_3 -(β_1 + w) ・ y_ {c1}, s_c4 = k_4-(β_1 + w) ・ y_ {c2}, s_c5 = k_5-(β_1 + w) ・ s_c, ~ s_c1 = ~ k_1 − (β_1 + w) · k_1, ~ s_c2 = ~ k_2 - (β_1 + w) · k_2, ~ s_c3 = ~ k_3 - (β_1 + w) · k_3, ~ s_c4 = ~ k_4 - (β_1 + w) · k_4, ~ s_c5 = ~ k_5 -(β_1 + w) ・ k_5),
The value s_c1, s_c2, s_c3, s_c4, s_c5, ~ s_c1, ~ s_c2, ~ s_c3, ~ s_c4, after receiving the ~ s_c5, the value s_c1, s_c2, s_c3, s_c4, s_c5, ~ s_c1, ~ s_c2, ~ s_c3 , ~ S_c4, ~ s_c5, said values r_1, r_2, r_3, r_4, r_5, ~ r_1, ~ r_2, ~ r_3, ~ r_4, ~ r_5, w, public key information c_C, d_C, h_C in the storage means, Based on the digital information m and the ring signature σ = (c_1, s_1,..., S_n, CC, L), the expression r_1 = g_1 ^ {s_c1} · g_2 ^ {s_c2} · c ^ (β_1 + w), Equation r_ 2 = (g_1) ^ {s_c3} ・ (g_2) ^ {s_c4} ・ (d ^ (β_1 + w)), Equation r_4 = g_1 ^ {s_c5} · h_C ^ (β_1 + w), Equation ~ r_1 = g_1 ^ { s_c1} g_2 ^ { s_c2} ・r_1 ^ {{β_1} + w}, the expression ~ r_2 = g_1 ^ { s_c3} ・ g_2 ^ { s_c4} ・r_2 ^ {{β_1} + w}, Equation ~ r_3 = u_1 ^ { ~ s_c1} · u_2 ^ { ~ s_c2} (u_1 ^ b) ^ { ~ s_c3} · (u_2 ^ b) ^ { ~ s_c4} · r_3 ^ {{β_1} + w}, expression ~ r_4 = g_1 ^ {s_c5} · r_4 ^ {{β_1} + w}, that satisfies the following equation formula ~ r_5 = u_1 ^ {s_c5} · r_5 ^ {{β_1} + w} R_3 = u_1 ^ {s_c1} ・ u_2 ^ {s_c2} ・ (u_1 ^ b) ^ {s_c3} ・ (u_2 ^ b) ^ {s_c4} ・ v ^ {{β_1} + w}, r_5 = u_1 {{S_c5} · (eh_C ^ {H_q (m‖L)}) ^ {{β_1} + w}, a second verification means for verifying that both of the expressions are satisfied, or that either one is not satisfied,
A ring signature receiving means for receiving the ring signature when the verification by the first and second verification means is successful;
Program to function as.
JP2008070235A 2008-03-18 2008-03-18 Digital signature system, apparatus and program Pending JP2009225356A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008070235A JP2009225356A (en) 2008-03-18 2008-03-18 Digital signature system, apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008070235A JP2009225356A (en) 2008-03-18 2008-03-18 Digital signature system, apparatus and program

Publications (1)

Publication Number Publication Date
JP2009225356A true JP2009225356A (en) 2009-10-01

Family

ID=41241611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008070235A Pending JP2009225356A (en) 2008-03-18 2008-03-18 Digital signature system, apparatus and program

Country Status (1)

Country Link
JP (1) JP2009225356A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011145361A (en) * 2010-01-13 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> Signature generating device, signature verifying device, relink key generating device, and program
CN108415686A (en) * 2017-12-29 2018-08-17 北京欧链科技有限公司 Divide account computational methods and device during random number offer
JP2021530172A (en) * 2018-07-19 2021-11-04 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Computer-implemented systems and methods for controlling the processing steps of distributed systems
CN117692150A (en) * 2024-02-01 2024-03-12 深圳市纽创信安科技开发有限公司 Signature generation and signature verification method and computer equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006101225A (en) * 2004-09-29 2006-04-13 Toshiba Corp Signature request device, signature system, signature request method, and signature request program
JP2006203826A (en) * 2005-01-24 2006-08-03 Toshiba Corp Digital signature system, apparatus and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006101225A (en) * 2004-09-29 2006-04-13 Toshiba Corp Signature request device, signature system, signature request method, and signature request program
JP2006203826A (en) * 2005-01-24 2006-08-03 Toshiba Corp Digital signature system, apparatus and program

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSNG200700026083; 加藤岳久: '"内部通報システム"' コンピュータセキュリティシンポジウム2006 論文集 第2006巻,第11号, 20061025, p.585-590, 社団法人情報処理学会 *
JPN6012025715; Siamark F Shahandshti, Reihaneh Safavi-Naini: '"Construction of Universal Designated-Verifier Signatures and Identity-Based Signatures from Standa' Cryptology ePrint Archive: Report 2007/462 Version: 20071212:024700, 20071212, p.1-36, [online] *
JPN6012025718; Ronald Cramer and Victor Shoup: '"Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciph' Cryptology ePrint Archive: Report 2001/108 Version: 20011217:130330, 20011217, [online] *
JPN6012025720; 加藤岳久: '"内部通報システム"' コンピュータセキュリティシンポジウム2006 論文集 第2006巻,第11号, 20061025, p.585-590, 社団法人情報処理学会 *
JPN6012025721; Craig Gentry, David Molnar and Zulfika Ramzan: '"Efficient Designated Confirmer Signatures Without Random Oracles or Generai Zero-Knowledge Proofs' 11th International Conference on the Theory and Application of Cryptology and Information Security, , 200512, [onlin&#xFF45 *
JPN7012001879; 多田美奈子,岡田光司: '"指名確認者リング署名"' 2005年暗号と情報セキュリティシンポジウム SCIS2005 予稿集付録CD-ROM 4D1 リング署名, 20050125, 4D1-2 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011145361A (en) * 2010-01-13 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> Signature generating device, signature verifying device, relink key generating device, and program
CN108415686A (en) * 2017-12-29 2018-08-17 北京欧链科技有限公司 Divide account computational methods and device during random number offer
CN108415686B (en) * 2017-12-29 2020-07-14 北京欧链科技有限公司 Account-splitting calculation method and device in random number providing process
JP2021530172A (en) * 2018-07-19 2021-11-04 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Computer-implemented systems and methods for controlling the processing steps of distributed systems
JP7346537B2 (en) 2018-07-19 2023-09-19 エヌチェーン ライセンシング アーゲー Computer-implemented system and method for controlling processing steps in a distributed system
CN117692150A (en) * 2024-02-01 2024-03-12 深圳市纽创信安科技开发有限公司 Signature generation and signature verification method and computer equipment
CN117692150B (en) * 2024-02-01 2024-05-24 深圳市纽创信安科技开发有限公司 Signature generation and signature verification method and computer equipment

Similar Documents

Publication Publication Date Title
JP5468157B2 (en) Method and apparatus for generating verifiable public key
Chaidos et al. BeleniosRF: A non-interactive receipt-free electronic voting scheme
Li et al. Privacy preserving cloud data auditing with efficient key update
Garman et al. Decentralized anonymous credentials
JP4932168B2 (en) New fair blind signing process
Damgård et al. Unclonable group identification
JP5109976B2 (en) Electronic signature system and electronic signature verification method
RU2603551C2 (en) Information processing device, information processing method, program and data medium
Gurkan et al. Community proposal: Semaphore: Zero-knowledge signaling on ethereum
JP2009225356A (en) Digital signature system, apparatus and program
WO2010013699A1 (en) Signature system
JP2024506720A (en) User-controlled linkability of anonymous signature schemes
JP4791828B2 (en) Group signature system, apparatus, program and method
JP2004228958A (en) Signature method and signature program
Schuldt et al. Non-transferable user certification secure against authority information leaks and impersonation attacks
Sharp Applied Cryptography
JPWO2006057171A1 (en) Signature and verification method and signature and verification apparatus
JP2006203826A (en) Digital signature system, apparatus and program
Schuldt et al. Efficient convertible undeniable signatures with delegatable verification
Schuldt et al. On-line non-transferable signatures revisited
Tang et al. Delegateable signatures based on non-interactive witness indistinguishable and non-interactive witness hiding proofs
JP2005210638A (en) Digital signature system, digital signature management apparatus and method, and program
JPH09200198A (en) Message verfication system
JP4653504B2 (en) Group signature generation system, apparatus, program, and method
Lin et al. Designated Verifier Signature Transformation: A New Framework for One-Time Delegating Verifiability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120925