JP4621075B2 - Verifier-designated signature generation apparatus, verifier-designated signature system, program, and recording medium thereof - Google Patents

Verifier-designated signature generation apparatus, verifier-designated signature system, program, and recording medium thereof Download PDF

Info

Publication number
JP4621075B2
JP4621075B2 JP2005178123A JP2005178123A JP4621075B2 JP 4621075 B2 JP4621075 B2 JP 4621075B2 JP 2005178123 A JP2005178123 A JP 2005178123A JP 2005178123 A JP2005178123 A JP 2005178123A JP 4621075 B2 JP4621075 B2 JP 4621075B2
Authority
JP
Japan
Prior art keywords
signature
verifier
designated
secret value
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005178123A
Other languages
Japanese (ja)
Other versions
JP2006352671A (en
Inventor
美也子 大久保
淳 藤岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005178123A priority Critical patent/JP4621075B2/en
Publication of JP2006352671A publication Critical patent/JP2006352671A/en
Application granted granted Critical
Publication of JP4621075B2 publication Critical patent/JP4621075B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報セキュリティ技術の応用技術に関するものであり、特に、署名の分野に関するものである。   The present invention relates to an application technology of information security technology, and particularly to the field of signature.

現在、様々な方式の検証者指定署名が提案されている(例えば、非特許文献1,非特許文献2参照)。ここで、検証者指定署名とは、署名生成者が署名を生成する際に、その署名が正しいものか否かを検証する署名検証者を指定することができる署名をさす。すなわち、署名生成者に指定された署名検証者は、その検証者指定署名の正しさを検証できる(正しい署名であるか否かを識別できる)が、他の者はそれを検証することができない。
提案されている検証者指定署名方式には、素因数分解困難性に基づく方式(RSAタイプの方式)や離散対数問題の求解困難性に基づく方式(Shnorrタイプの方式)等がある。何れも基本的には、署名生成の過程において、指定した署名検証者の秘密鍵を用いなければ得られない情報(例えば、指定した署名検証者の秘密鍵に対応する公開鍵)と署名生成者の秘密鍵とを用い、署名生成を行うものである。以下に従来の検証者指定署名の基本構成を示す。
At present, verifier-designated signatures of various methods have been proposed (see, for example, Non-Patent Document 1 and Non-Patent Document 2). Here, the verifier-designated signature refers to a signature that can designate a signature verifier for verifying whether or not the signature is correct when the signature generator generates the signature. In other words, the signature verifier designated as the signature creator can verify the correctness of the verifier-designated signature (identify whether or not the signature is correct), but other parties cannot verify it. .
Proposed verifier-designated signature schemes include a scheme based on prime factorization difficulty (RSA type scheme), a scheme based on difficulty finding a discrete logarithm problem (Shnorr type scheme), and the like. In any case, in the signature generation process, information that cannot be obtained without using the designated signature verifier's private key (for example, the public key corresponding to the designated signature verifier's private key) and the signature generator The signature is generated using the private key. The basic configuration of a conventional verifier-designated signature is shown below.

[鍵生成]
・署名生成者の鍵ペア生成
1.Input:Lビットの初期データ(Lはセキュリティパラメータ)
2.Output:署名生成者の(秘密鍵,公開鍵)=(xs,ys)
・署名検証者の鍵ペア生成
1.Input:Lビットの初期データ(Lはセキュリティパラメータ)
2.Output:署名検証者の(秘密鍵,公開鍵)=(xc,yc)
[署名生成]
署名生成者は、メッセージm(m∈{0,1}〔mは、各ビットが0又は1からなる任意のビット長のデータ〕)に対し、メッセージm、署名生成者の秘密鍵xs及び公開鍵ys、指定する署名検証者の公開鍵ycを用い、検証者指定署名σを生成する。
[Key generation]
・ Signer generator key pair generation 1.Input: L-bit initial data (L is security parameter)
2. Output: Signature generator's (secret key, public key) = (xs, ys)
・ Signature verifier key pair generation 1.Input: L bit initial data (L is security parameter)
2. Output: Signature verifier's (secret key, public key) = (xc, yc)
[Signature generation]
For the message m (mε {0,1} * [m is data of any bit length in which each bit is 0 or 1]), the signature generator sends the message m, the signature generator's private key xs, and The verifier-designated signature σ is generated using the public key ys and the public key yc of the signature verifier to be designated.

[署名検証]
署名生成者に指定された署名検証者は、メッセージm、検証者指定署名σ、署名生成者の公開鍵ys、署名検証者の公開鍵yc及び秘密鍵xcを入力とし、検証式が成り立つか否かを検証する。この署名検証者は、検証式が成り立つ場合に、受け取った検証者指定署名σは正しく署名生成者によって生成されたものであると認める。
[任意の第三者]
署名生成者に指定された署名検証者以外の任意の第三者は、指定された署名検証者の秘密鍵xcを知らない。従って、この任意の第三者は、検証者指定署名σが確かに正当な署名生成者によって生成されたか否かを検証することはできない。また、方式によっては、任意の第三者が、検証者指定署名σが正当な署名生成者又はそれが指定する署名検証者のどちらかによって生成されたことを検証できるものもある。しかし、この場合であっても、この任意の第三者は、何れが真の署名生成者であるかは識別することができない。
D. Chaum, Private signature and proof systems, United States Patent 5,493,614, 1996. M. Jakobsson, K. Sato, R. Impagliazzo, "Designated verifier proofs and their application," EUROCRYPT '96, LNCS 1070, pp.143-154, Springer-Verlag, 1996.
[Signature verification]
The signature verifier designated as the signature generator receives the message m, the verifier-designated signature σ, the signature generator's public key ys, the signature verifier's public key yc, and the private key xc, and whether or not the verification formula holds. Verify that. The signature verifier recognizes that the received verifier-designated signature σ is correctly generated by the signature generator when the verification formula is satisfied.
[Any third party]
Any third party other than the signature verifier designated as the signature generator does not know the private key xc of the designated signature verifier. Therefore, this arbitrary third party cannot verify whether or not the verifier-designated signature σ has been generated by a valid signature generator. In addition, depending on the method, an arbitrary third party can verify that the verifier-designated signature σ is generated by either a valid signature generator or a signature verifier designated by it. However, even in this case, this arbitrary third party cannot identify which is the true signature generator.
D. Chaum, Private signature and proof systems, United States Patent 5,493,614, 1996. M. Jakobsson, K. Sato, R. Impagliazzo, "Designated verifier proofs and their application," EUROCRYPT '96, LNCS 1070, pp.143-154, Springer-Verlag, 1996.

このように、従来の検証者指定署名では、署名生成者に指定された署名検証者以外の者は、その署名が、署名生成者によって正しく生成されたものであるか否かを検証することはできない。
このような署名の場合、例えば何らかのトラブルが発生し、署名生成者が、検証者指定署名が確かに自ら生成したものであることを証明しようと思っても、この署名生成者は、指定した署名検証者以外の第三者に対してこれを証明することはできない。
本発明はこのような点に鑑みてなされたものであり、普段は検証者指定署名として機能するが、署名生成者が希望する際には、署名生成者が確かに検証者指定署名を生成したことを特定の署名検証者以外の第三者に対しても証明することが可能な署名技術を提供することを目的とする。
As described above, in the conventional verifier-designated signature, a person other than the signature verifier designated as the signature creator cannot verify whether or not the signature is correctly generated by the signature creator. Can not.
In the case of such a signature, for example, even if some trouble occurs and the signature generator wants to prove that the verifier-designated signature is indeed generated by itself, the signature generator This cannot be proved to a third party other than the verifier.
The present invention has been made in view of the above points, and normally functions as a verifier-designated signature. However, when the signature creator desires, the signature creator surely created the verifier-designated signature. It is an object of the present invention to provide a signature technique that can prove to a third party other than a specific signature verifier.

本発明では上記課題を解決するために、特定の署名検証者のみが検証可能な検証者指定署名を生成する検証者指定署名生成装置と、当該特定の署名検証者以外の者が利用する第三者端末装置とが設けられる。この検証者指定署名生成装置は、署名生成者の秘密値を格納する秘密値記憶メモリと、少なくとも署名生成者の秘密鍵と特定の署名検証者の公開鍵とを格納する鍵記憶メモリと、秘密値を含む情報のハッシュ値を算出するハッシュ演算部と、少なくともハッシュ値と署名生成者の秘密鍵と特定の署名検証者の公開鍵とを用い、特定の署名検証者のみが検証可能な検証者指定署名を生成する署名生成部と、検証者指定署名を送信する署名送信部と、検証者指定署名が当該検証者指定署名生成装置で生成されたことを特定の署名検証者以外の者に対して証明する際に、秘密値を送信する秘密値送信部とを有する。また、第三者端末装置は、少なくとも検証者指定署名を受信する署名受信部と、秘密値を受信する秘密値受信部と、秘密値受信部が受信した秘密値を含む情報のハッシュ値と、署名受信部が受信した検証者指定署名とを用い、当該検証者指定署名の生成者が正当であるか否かを判定する自己証明部とを有する。   In the present invention, in order to solve the above-mentioned problem, a verifier-designated signature generation device that generates a verifier-designated signature that can be verified only by a specific signature verifier, and a third party used by a person other than the specific signature verifier A person terminal device is provided. The verifier-designated signature generation device includes a secret value storage memory for storing a secret value of a signature generator, a key storage memory for storing at least a signature generator private key and a specific signature verifier public key, a secret A verifier that can be verified only by a specific signature verifier using at least a hash value, a signature generator's private key, and a specific signature verifier's public key. For a person other than a specific signature verifier, a signature generation unit that generates a specified signature, a signature transmission unit that transmits a verifier-designated signature, and that a verifier-designated signature is generated by the verifier-designated signature generation device. And a secret value transmission unit that transmits a secret value. In addition, the third-party terminal device, at least a signature receiving unit that receives a verifier-designated signature, a secret value receiving unit that receives a secret value, a hash value of information that includes the secret value received by the secret value receiving unit, A self-certifying unit that uses the verifier-designated signature received by the signature receiving unit to determine whether the creator of the verifier-designated signature is valid.

ここで、検証者指定署名には秘密値を含む情報のハッシュ値が用いられる。この秘密値は、通常はその署名を生成した検証者指定署名生成装置が外部に対して秘密に格納するものである。また、検証者指定署名の生成には、それを生成する検証者指定署名生成装置の秘密値を含む情報のハッシュ値が用いられるが、ハッシュ関数の一方向性により、検証者指定署名のみからこの秘密値を特定することは困難である。即ち、この秘密値を示すことができるのは、検証者指定署名を生成した検証者指定署名生成装置(及びそれを管理する署名生成者)のみである。よって、第三者端末装置において、受信した秘密値を含む情報のハッシュ値と検証者指定署名との整合性を検証することで、その秘密値を提示した検証者指定署名生成装置が、当該検証者指定署名を生成していたか否かを知ることができる。   Here, a hash value of information including a secret value is used for the verifier-designated signature. This secret value is normally stored secretly to the outside by the verifier-designated signature generation apparatus that generated the signature. In addition, for the generation of the verifier-designated signature, a hash value of information including the secret value of the verifier-designated signature generation apparatus that generates the verifier is used. It is difficult to specify a secret value. That is, only the verifier-designated signature generation apparatus (and the signature generator that manages it) that has generated the verifier-designated signature can indicate this secret value. Therefore, in the third-party terminal device, by verifying the consistency between the hash value of the information including the received secret value and the verifier-designated signature, the verifier-designated signature generation device that presented the secret value It is possible to know whether or not a person-designated signature has been generated.

また、本発明において好ましくは、検証者指定署名生成装置は、署名生成者の秘密値を格納する秘密値記憶メモリと、パラメータas,cc,sc,gを格納するパラメータ記憶メモリと、署名生成者の秘密鍵xsと特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、署名対象のメッセージmを格納するメッセージ記憶メモリと、秘密値を含む情報のハッシュ値を算出する第1ハッシュ演算部と、rc=gsc・ycccを算出する剰余乗算部と、rs=gasを算出する指数演算部と、rsとrcとmとのビット結合値のハッシュ値C=H(rs,rc,m)を算出する第2ハッシュ演算部と、cs=C−ccを算出する第1減算部と、cs・xsを算出する乗算部と、ss=as−cs・xsを算出する第2減算部と、検証者指定署名σ=(C,cc,sc,cs,ss)を生成する署名生成部と、検証者指定署名σをメッセージmとともに送信する署名送信部と、検証者指定署名が当該検証者指定署名生成装置で生成されたことを特定の署名検証者以外の者に対して証明する際に、秘密値を送信する秘密値送信部とを有し、パラメータas,cc,scの少なくとも1つが、第1ハッシュ演算部において算出された秘密値を含む情報のハッシュ値である。また、第三者端末装置は、少なくとも検証者指定署名σ=(C,cc,sc,cs,ss)を受信する署名受信部と、秘密値を受信する秘密値受信部と、署名受信部が受信した検証者指定署名σのcc,sc,ssの少なくとも一部と、秘密値受信部が受信した秘密値を含む情報のハッシュ値とを用い、当該検証者指定署名σの生成者が正当であるか否かを判定する自己証明部とを有する。 In the present invention, it is preferable that the verifier-designated signature generation device includes a secret value storage memory that stores a secret value of the signature generator, a parameter storage memory that stores parameters as, cc, sc, and g, and a signature generator. Key storage memory for storing the private key xs of the signature and the public key yc of the specific signature verifier, the message storage memory for storing the message m to be signed, and the first hash for calculating the hash value of the information including the secret value a calculation unit, rc = g sc · yc and modular multiplication unit for calculating a cc, rs = an exponent arithmetic unit for calculating the g the as, rs the hash value of the bit coupling value of rc and m C = H (rs, rc, m), a first subtraction unit for calculating cs = C-cc, a multiplication unit for calculating cs · xs, and a second for calculating ss = as−cs · xs. Subtraction and verification A signature generation unit that generates a designated signature σ = (C, cc, sc, cs, ss), a signature transmission unit that transmits a verifier-designated signature σ together with a message m, and a verifier-designated signature that generates the verifier-designated signature A secret value transmission unit that transmits a secret value when proving to a person other than a specific signature verifier that the device has generated the information, and at least one of the parameters as, cc, and sc is a first value This is a hash value of information including a secret value calculated by the hash calculation unit. In addition, the third-party terminal device includes at least a signature receiving unit that receives a verifier-designated signature σ = (C, cc, sc, cs, ss), a secret value receiving unit that receives a secret value, and a signature receiving unit. Using at least a part of cc, sc, ss of the received verifier-designated signature σ and the hash value of information including the secret value received by the secret value receiving unit, the creator of the verifier-designated signature σ is valid. And a self-certification unit for determining whether or not there is.

ここで、さらに好ましくは、パラメータcc,scの何れかのみが、検証者指定署名生成装置の第1ハッシュ演算部において算出された秘密値を含む情報のハッシュ値である。そして、第三者端末装置の自己証明部は、署名受信部が受信した検証者指定署名σ=(C,cc,sc,cs,ss)のccと秘密値受信部が受信した秘密値を含む情報のハッシュ値とが等しいときに検証者指定署名σの生成者が正当であると判断するか、署名受信部が受信した検証者指定署名σ=(C,cc,sc,cs,ss)のscと秘密値受信部が受信した秘密値を含む情報のハッシュ値とが等しいときに検証者指定署名σの生成者が正当であると判断する。これにより、検証者指定署名生成装置が検証者指定署名σ’の生成者が正当であることを証明した後であっても、この署名の偽造困難性を維持できる(詳細は後述)。   More preferably, only one of the parameters cc and sc is a hash value of information including a secret value calculated by the first hash calculation unit of the verifier-designated signature generation device. Then, the self-certification unit of the third party terminal device includes cc of the verifier-designated signature σ = (C, cc, sc, cs, ss) received by the signature receiving unit and the secret value received by the secret value receiving unit. When the hash value of the information is equal, it is determined that the generator of the verifier-designated signature σ is valid, or the verifier-designated signature σ = (C, cc, sc, cs, ss) received by the signature receiving unit When the sc and the hash value of the information including the secret value received by the secret value receiving unit are equal, the verifier-designated signature σ is determined to be valid. Thereby, even after the verifier-designated signature generation apparatus proves that the creator of the verifier-designated signature σ ′ is valid, the forgery difficulty of this signature can be maintained (details will be described later).

また、さらに好ましくは、検証者指定署名生成装置の第1ハッシュ演算部は、秘密値とパラメータscとを含む情報のハッシュ値をパラメータccとして算出するか、秘密値とパラメータccとを含む情報のハッシュ値をパラメータscとして算出する。そして、第三者端末装置の自己証明部は、署名受信部が受信した検証者指定署名σ=(C,cc,sc,cs,ss)のcsと秘密値受信部が受信した秘密値とを含む情報のハッシュ値と、検証者指定署名σのccとが等しいときに検証者指定署名σの生成者が正当であると判断するか、署名受信部が受信した検証者指定署名σ=(C,cc,sc,cs,ss)のccと秘密値受信部が受信した秘密値とを含む情報のハッシュ値と、検証者指定署名σのcsとが等しいときに検証者指定署名σの生成者が正当であると判断する。   More preferably, the first hash calculator of the verifier-designated signature generation device calculates a hash value of information including the secret value and the parameter sc as the parameter cc, or information of the information including the secret value and the parameter cc. A hash value is calculated as a parameter sc. Then, the self-certification unit of the third-party terminal device obtains cs of the verifier-designated signature σ = (C, cc, sc, cs, ss) received by the signature receiving unit and the secret value received by the secret value receiving unit. When the hash value of the information to be included is equal to the cc of the verifier-designated signature σ, it is determined that the creator of the verifier-designated signature σ is valid, or the verifier-designated signature σ = (C , Cc, sc, cs, ss) and the generator of the verifier-designated signature σ when the hash value of information including the secret value received by the secret-value receiving unit is equal to the cs of the verifier-designated signature σ. Is determined to be valid.

また、本発明において好ましくは、検証者指定署名生成装置は、署名生成者の秘密値seedを格納する秘密値記憶メモリと、署名生成者の秘密鍵xs及び公開鍵ys,nと特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、署名対象のメッセージmを格納するメッセージ記憶メモリと、秘密値seedを含む情報のハッシュ値ccを算出するハッシュ演算部と、ac=ccysmod nを算出する指数演算部と、署名検証者の公開鍵ycを用い、ハッシュ値ccを公開鍵暗号方式で暗号化した暗号文e0=Eyc(cc)を算出する第1暗号文生成部と、cc・mxsを算出する第1剰余乗算部と、特定の署名検証者の公開鍵ycを用い、cc・mxsを公開鍵暗号方式で暗号化した暗号文e1=Eyc(cc・mxs)を算出する第2暗号文生成部と、特定の署名検証者の端末装置に対して(ac,e0,e1)を送信する暗号文送信部と、(ac,e0,e1)を送信した後、特定の署名検証者の端末装置から送信されたb∈{0,1}を受信するチャレンジ受信部と、c=cc・(mxsmod nを計算する第2剰余乗算部と、検証者指定署名σ=(ac,c,b)を生成する署名生成部と、検証者指定署名σをメッセージmとともに送信する署名送信部と、検証者指定署名が当該検証者指定署名生成装置で生成されたことを特定の署名検証者以外の者に対して証明する際に、秘密値seedを送信する秘密値送信部とを有する。また、第三者端末装置は、署名生成者の公開鍵ysを格納する鍵記憶メモリと、少なくとも検証者指定署名σ=(ac,c,b)を受信する署名受信部と、秘密値seedを受信する秘密値受信部と、署名受信部が受信した検証者指定署名σのacと秘密値seedを含む情報のハッシュ値に対するys乗値とが等しいときに検証者指定署名σの生成者が正当であると判断する自己証明部とを有する。 Preferably, in the present invention, the verifier-designated signature generation device includes a secret value storage memory for storing the signature generator's secret value seed, a signature generator's secret key xs and public key ys, n, and a specific signature verification. A key storage memory for storing the public key yc of the user, a message storage memory for storing the message m to be signed, a hash calculation unit for calculating a hash value cc of information including the secret value seed, and ac = cc ys mod an exponent operation unit that calculates n, and a first ciphertext generation unit that calculates a ciphertext e0 = E yc (cc) obtained by encrypting the hash value cc with a public key cryptosystem using the public key yc of the signature verifier , Cc · m xs and the ciphertext e1 = E yc (cc · m) obtained by encrypting cc · m xs with the public key cryptosystem using the first remainder multiplication unit for calculating cc · m xs and the public key yc of a specific signature verifier. xs A second ciphertext generation unit that calculates a ciphertext transmission unit that transmits (ac, e0, e1) to a specific signature verifier terminal device, and (ac, e0, e1) the challenge receiver for receiving B∈ {0, 1} which are sent from a particular signature verification of the terminal apparatus, and a second modular multiplication unit for calculating a c = cc · (m xs) b mod n, the verifier The signature generation unit that generates the designated signature σ = (ac, c, b), the signature transmission unit that transmits the verifier-designated signature σ together with the message m, and the verifier-designated signature are generated by the verifier-designated signature generation apparatus. And a secret value transmission unit that transmits a secret value seed when certifying to a person other than a specific signature verifier. The third-party terminal device also includes a key storage memory that stores the signature generator's public key ys, a signature receiver that receives at least a verifier-designated signature σ = (ac, c, b), and a secret value seed. When the ac value of the verifier-designated signature σ received by the signature receiver and the ac value of the hash value of the information including the secret value seed are equal to each other, the generator of the verifier-designated signature σ is valid. And a self-certifying part that judges that

また、本発明において好ましくは、検証者指定署名生成装置は、署名生成者の秘密値seedを格納する秘密値記憶メモリと、署名生成者の秘密鍵xsと特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、署名対象のメッセージmを格納するメッセージ記憶メモリと、秘密値seedを含む情報のハッシュ値ccを算出するハッシュ演算部と、ac=cc/ycを算出する第1除算部と、sc=macを算出する第1指数演算部と、cs=xs−ccを算出する減算部と、as=cs/ycを算出する第2除算部と、ss=masを算出する第2指数演算部と、検証者指定署名σ=(sc,ss)を生成する署名生成部と、検証者指定署名σをメッセージmとともに送信する署名送信部と、検証者指定署名が当該検証者指定署名生成装置で生成されたことを特定の署名検証者以外の者に対して証明する際に、秘密値seedを送信する秘密値送信部とを有する。また、第三者端末装置は、特定の署名検証者の公開鍵ycを格納する鍵記憶メモリと、検証者指定署名σ=(sc,ss)とメッセージmとを受信する署名受信部と、秘密値seedを受信する秘密値受信部と、署名受信部が受信した検証者指定署名σのscと、m〔Aは(秘密値seedを含む情報のハッシュ値)/yc〕とが等しいときに検証者指定署名σの生成者が正当であると判断する自己証明部とを有する。 Preferably, in the present invention, the verifier-designated signature generation device includes a secret value storage memory for storing a signature generator's secret value seed, a signature generator's secret key xs, and a specific signature verifier's public key yc. A key storage memory for storing the message m, a message storage memory for storing the message m to be signed, a hash calculation unit for calculating the hash value cc of the information including the secret value seed, and a first division for calculating ac = cc / yc Part, a first exponent operation part for calculating sc = mac , a subtraction part for calculating cs = xs-cc, a second division part for calculating as = cs / yc, and ss = mas A second exponent operation unit, a signature generation unit that generates a verifier-designated signature σ = (sc, ss), a signature transmission unit that transmits the verifier-designated signature σ together with the message m, and the verifier-designated signature Designated signature student That has been generated by the apparatus when the certificate to a person other than the specific signature verifier, and a secret value transmission unit that transmits the secret seed. In addition, the third-party terminal device includes a key storage memory that stores a public key yc of a specific signature verifier, a signature receiver that receives a verifier-designated signature σ = (sc, ss), and a message m, a secret When the secret value receiving unit that receives the value seed, the sc of the verifier-designated signature σ received by the signature receiving unit, and m A [A is (hash value of information including the secret value seed) / yc] And a self-certifying unit that judges that the creator of the verifier-designated signature σ is valid.

本発明では、検証者指定署名生成装置において秘密値を含む情報のハッシュ値を用いて検証者指定署名を生成し、署名生成者が、自らが検証者指定署名を生成したことを特定の署名検証者以外の第三者に対しても証明する際に、当該検証者指定署名の生成に用いた秘密値を開示する。これにより、この第三者は、開示された秘密値を含む情報のハッシュ値と検証者指定署名との整合性を検証し、この秘密値を開示した検証者指定署名生成装置が当該検証者指定署名の生成を行っていたか否かを知ることができる。その結果、普段は検証者指定署名として機能するが、署名生成者が希望する際には、署名生成者が確かに検証者指定署名を生成したことを特定の署名検証者以外の第三者に対しても証明することが可能な署名を構成することが可能となる。   In the present invention, a verifier-designated signature is generated by using a hash value of information including a secret value in the verifier-designated signature generation device, and the signature creator confirms that the signature creator has generated the verifier-designated signature. When certifying to a third party other than the verifier, the secret value used to generate the verifier-designated signature is disclosed. As a result, the third party verifies the consistency between the hash value of the information including the disclosed secret value and the verifier-designated signature, and the verifier-designated signature generation device that disclosed the secret value designates the verifier It is possible to know whether or not a signature has been generated. As a result, it normally functions as a verifier-designated signature, but when the signature generator desires, a third party other than a specific signature verifier confirms that the signature generator has indeed generated the verifier-designated signature. It is possible to construct a signature that can be proved.

以下、本発明の実施の形態を図面を参照して説明する。
<構成>
図1は、本形態の検証者指定署名システム1の全体構成を例示した概念図である。
図1に例示するように、本形態の検証者指定署名システム1は、特定の署名検証者のみが検証可能な検証者指定署名を生成する検証者指定署名生成装置10と、当該特定の署名検証者が使用する署名検証装置20と、当該特定の署名検証者以外の者が利用する第三者端末装置30とを有している。そして、これらの各装置は、インターネット等のネットワークを通じ通信可能に接続されている。ここで、この例の検証者指定署名生成装置10,署名検証装置20及び第三者端末装置30は、CPU(central processing unit),RAM(Random Access Memory)等から構成される公知のノイマン型のコンピュータに所定のプログラムを実行されることにより構築されるものである。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
<Configuration>
FIG. 1 is a conceptual diagram illustrating the overall configuration of a verifier-designated signature system 1 according to this embodiment.
As illustrated in FIG. 1, a verifier-designated signature system 1 according to the present embodiment includes a verifier-designated signature generation device 10 that generates a verifier-designated signature that can be verified only by a specific signature verifier, and the specific signature verification. A signature verification device 20 used by a person and a third-party terminal device 30 used by a person other than the specific signature verifier. These devices are communicably connected through a network such as the Internet. Here, the verifier-designated signature generation device 10, the signature verification device 20, and the third-party terminal device 30 in this example are known Neumann type devices including a CPU (central processing unit), a RAM (Random Access Memory), and the like. It is constructed by executing a predetermined program on a computer.

図2(a)は、図1に例示した検証者指定署名生成装置10の構成を例示したブロック図である。この図に例示するように、検証者指定署名生成装置10は、署名生成者の秘密値を格納する秘密値記憶メモリ11と、少なくとも署名生成者の秘密鍵と特定の署名検証者の公開鍵とを格納する鍵記憶メモリ12と、秘密値を含む情報のハッシュ値を算出するハッシュ演算部13と、少なくともハッシュ値と署名生成者の秘密鍵と特定の署名検証者の公開鍵とを用い、特定の署名検証者のみが検証可能な検証者指定署名を生成する署名生成部14と、検証者指定署名を送信する署名送信部15と、検証者指定署名が当該検証者指定署名生成装置で生成されたことを特定の署名検証者以外の者に対して証明する際に、秘密値を送信する秘密値送信部16と、検証者指定署名生成装置10全体を制御する制御部17とを有している。   FIG. 2A is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus 10 illustrated in FIG. As illustrated in this figure, the verifier-designated signature generation device 10 includes a secret value storage memory 11 for storing a secret value of the signature generator, at least a secret key of the signature generator, and a public key of a specific signature verifier. A key storage memory 12 for storing information, a hash calculation unit 13 for calculating a hash value of information including a secret value, at least a hash value, a secret key of a signature generator, and a public key of a specific signature verifier Generation unit 14 that generates a verifier-designated signature that can be verified only by the signature verifier, a signature transmission unit 15 that transmits the verifier-designated signature, and a verifier-designated signature are generated by the verifier-designated signature generation apparatus. A secret value transmission unit 16 that transmits a secret value and a control unit 17 that controls the entire verifier-designated signature generation device 10 when certifying to a person other than a specific signature verifier. Yes.

図2(b)は、図1に例示した第三者端末装置30の構成を例示したブロック図である。この図に例示するように、第三者端末装置30は、少なくとも検証者指定署名を受信する署名受信部と、秘密値を受信する秘密値受信部と、秘密値受信部が受信した秘密値を含む情報のハッシュ値と、署名受信部が受信した検証者指定署名とを用い、当該検証者指定署名の生成者が正当であるか否かを判定する自己証明部と、第三者端末装置30全体を制御する制御部34とを有している。   FIG. 2B is a block diagram illustrating the configuration of the third party terminal device 30 illustrated in FIG. As illustrated in this figure, the third party terminal device 30 includes at least a signature receiving unit that receives a verifier-designated signature, a secret value receiving unit that receives a secret value, and a secret value received by the secret value receiving unit. A self-certification unit that determines whether or not the creator of the verifier-designated signature is valid using the hash value of the information to be included and the verifier-designated signature received by the signature receiver, and the third-party terminal device 30 And a control unit 34 for controlling the whole.

<検証者指定署名処理>
次に、検証者指定署名生成装置10において行われる検証者指定署名処理について説明する。
まず、検証者指定署名生成装置10のハッシュ演算部13は、秘密値記憶メモリ11から秘密値を読み出し、そのハッシュ値を算出する。次に、署名生成部14において、少なくともハッシュ演算部13にいて算出されたハッシュ値と、鍵記憶メモリ12に格納された署名生成者の秘密鍵と特定の署名検証者の公開鍵とを用い、特定の署名検証者のみ(この例では署名検証装置20のみ)が検証可能な検証者指定署名を生成する。なお、この例の検証者指定署名は、例えばその一部のビットが、ハッシュ演算部13にいて算出されたハッシュ値に等しくなるように構成される。
<Verifier-designated signature processing>
Next, a verifier designated signature process performed in the verifier designated signature generation apparatus 10 will be described.
First, the hash calculator 13 of the verifier-designated signature generation apparatus 10 reads the secret value from the secret value storage memory 11 and calculates the hash value. Next, the signature generation unit 14 uses at least the hash value calculated by the hash calculation unit 13, the signature generator's private key stored in the key storage memory 12, and the public key of the specific signature verifier, A verifier-designated signature that can be verified only by a specific signature verifier (in this example, only the signature verification device 20) is generated. Note that the verifier-designated signature in this example is configured such that, for example, some bits thereof are equal to the hash value calculated by the hash calculation unit 13.

このように生成された検証者指定署名は、例えば、署名送信部15からネットワーク40を通じて署名検証装置20に送信され、署名検証装置20は、この検証者指定署名を検証する。これにより、署名検証装置20は、当該検証者指定署名が確かに検証者指定署名生成装置10において生成されたか否かを判断することができる。一方、この時点では、署名検証装置20以外の装置(例えば、第三者端末装置30)は、たとえこの検証者指定署名を受け取ったとしても、これが検証者指定署名生成装置10において生成されたか否かを判断することはできない。   The verifier-designated signature generated in this way is transmitted from the signature transmission unit 15 to the signature verification device 20 via the network 40, for example, and the signature verification device 20 verifies the verifier-designated signature. As a result, the signature verification apparatus 20 can determine whether or not the verifier-designated signature has been generated by the verifier-designated signature generation apparatus 10. On the other hand, at this point in time, even if a device other than the signature verification device 20 (for example, the third-party terminal device 30) receives this verifier-designated signature, it has been generated by the verifier-designated signature generation device 10. I can't judge.

<第三者端末装置30による検証者指定署名検証処理>
次に、第三者端末装置30による検証者指定署名検証処理について説明する。上述のように、通常、第三者端末装置30は検証者指定署名の検証を行うことはできない。しかし、検証者指定署名生成装置10が、自ら生成した検証者指定署名の検証を第三者端末装置30にさせることを希望する場合、まず、検証者指定署名生成装置10の利用者(例えば署名生成者)は、「第三者端末装置30に検証者指定署名の検証を実行させる旨」の指示入力を検証者指定署名生成装置10に対して行う。この入力は、例えば、図示していないキーボード等の入力装置から行われる。制御部17は、この入力をトリガとして署名送信部15に指示を与え、この指示を受けた署名送信部15は、署名生成部14で生成された検証者指定署名を、ネットワーク40を通じて、第三者端末装置30に送信する。さらに、制御部17は、秘密値送信部16に指示を与え、秘密値送信部16は、秘密値記憶メモリ11に格納された秘密値を、ネットワーク40を通じて第三者端末装置30に送信する。
<Verifier-designated signature verification process by third party terminal device 30>
Next, the verifier designated signature verification process by the third party terminal device 30 will be described. As described above, normally, the third-party terminal device 30 cannot verify the verifier-designated signature. However, when the verifier-designated signature generation device 10 desires the third-party terminal device 30 to verify the verifier-designated signature generated by itself, first, a user of the verifier-designated signature generation device 10 (for example, a signature) The creator) inputs to the verifier-designated signature generation apparatus 10 an instruction to “instruct the third-party terminal device 30 to verify the verifier-designated signature”. This input is performed from an input device such as a keyboard (not shown). The control unit 17 uses the input as a trigger to give an instruction to the signature transmission unit 15, and the signature transmission unit 15 that has received this instruction transmits the verifier-designated signature generated by the signature generation unit 14 via the network 40. To the user terminal device 30. Further, the control unit 17 gives an instruction to the secret value transmission unit 16, and the secret value transmission unit 16 transmits the secret value stored in the secret value storage memory 11 to the third party terminal device 30 through the network 40.

第三者端末装置30は、この検証者指定署名を署名受信部31で受信し、秘密値を秘密値受信部32で受信する。そして、自己証明部33は、秘密値受信部32が受信した秘密値を含む情報のハッシュ値と、署名受信部31が受信した検証者指定署名とを用い、当該検証者指定署名の生成者が正当であるか否かを判定する。具体的には、例えば、署名生成部14が生成する検証者指定署名の一部のビットが、ハッシュ演算部13で算出されたハッシュ値に等しい場合、自己証明部33は、署名受信部31が受信した検証者指定署名の一部のビットが、秘密値受信部32が受信した秘密値を含む情報のハッシュ値に等しいときに、当該検証者指定署名の生成者が正当であると判断する。   In the third party terminal device 30, the signature receiving unit 31 receives this verifier-designated signature and the secret value receiving unit 32 receives the secret value. Then, the self-certifying unit 33 uses the hash value of the information including the secret value received by the secret value receiving unit 32 and the verifier-designated signature received by the signature receiving unit 31, and the creator of the verifier-designated signature is Determine whether it is valid. Specifically, for example, when some bits of the verifier-designated signature generated by the signature generation unit 14 are equal to the hash value calculated by the hash calculation unit 13, the self-certification unit 33 determines that the signature reception unit 31 When some bits of the received verifier-designated signature are equal to the hash value of the information including the secret value received by the secret value receiving unit 32, it is determined that the creator of the verifier-designated signature is valid.

ここで、検証者指定署名の生成には、検証者指定署名生成装置10の秘密値記憶メモリ11に格納された秘密値を含む情報のハッシュ値が用いられるが、ハッシュ関数の一方向性により、検証者指定署名のみからこの秘密値を特定することは困難である。即ち、この秘密値を示すことができるのは、検証者指定署名を生成した検証者指定署名生成装置10のみである。よって、第三者端末装置30において、受信した秘密値を含む情報のハッシュ値と検証者指定署名との整合性を検証することで、その秘密値を提示した検証者指定署名生成装置10が、当該検証者指定署名を生成していたか否かを知ることができる。   Here, for generation of the verifier designated signature, a hash value of information including the secret value stored in the secret value storage memory 11 of the verifier designated signature generation apparatus 10 is used. It is difficult to specify this secret value only from the verifier-designated signature. That is, only the verifier-designated signature generation apparatus 10 that has generated the verifier-designated signature can indicate this secret value. Therefore, the third party terminal device 30 verifies the consistency between the hash value of the information including the received secret value and the verifier-designated signature, so that the verifier-designated signature generation device 10 presenting the secret value It is possible to know whether or not the verifier designated signature has been generated.

〔実施例1〕
次に、本形態の実施例1について説明する。
<構成>
本実施例の全体構成は図1に例示したものと同様である。ただし、本実施例では、検証者指定署名生成装置10の具体例として検証者指定署名生成装置110を用い、署名検証装置20の具体例として署名検証装置120を用い、第三者端末装置30の具体例として第三者端末装置130を用いた場合を説明する。
[Example 1]
Next, Example 1 of this embodiment will be described.
<Configuration>
The overall configuration of this embodiment is the same as that illustrated in FIG. However, in the present embodiment, the verifier-designated signature generation device 110 is used as a specific example of the verifier-designated signature generation device 10, the signature verification device 120 is used as a specific example of the signature verification device 20, and the third-party terminal device 30 A case where the third party terminal device 130 is used will be described as a specific example.

<検証者指定署名生成装置110>
図3は、本実施例における検証者指定署名生成装置110の構成を例示したブロック図である。
図3に例示するように、この例の検証者指定署名生成装置110は、CPU(Central Processing Unit)111、入力部112、補助記憶装置113、ROM(Read Only Memory)114、RAM(Random Access Memory)115、通信部116、出力部117及びバス118を有している。
<Verifier-designated signature generation apparatus 110>
FIG. 3 is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus 110 according to this embodiment.
As illustrated in FIG. 3, the verifier-designated signature generation device 110 in this example includes a CPU (Central Processing Unit) 111, an input unit 112, an auxiliary storage device 113, a ROM (Read Only Memory) 114, and a RAM (Random Access Memory). ) 115, communication unit 116, output unit 117, and bus 118.

この例のCPU111は、制御部111a、演算部111b及びレジスタ111cを有し、レジスタ111cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部112は、データが入力される入力ポート、キーボード、マウス等であり、出力部117は、データを出力する出力ポート、ディスプレイ等である。補助記憶装置113は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、本実施例の検証者指定署名生成装置110の処理をCPU111等に実行させるためのプログラムを格納したプログラム領域113a及び秘密値等の各種データが格納されるデータ領域113bを有している。また、RAM115は、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが書き込まれるプログラム領域113a及び各種データが格納されるデータ領域113bを有している。また、バス118は、CPU111、入力部112、出力部117、補助記憶装置113、RAM115及びROM114を通信可能に接続している。   The CPU 111 in this example includes a control unit 111a, a calculation unit 111b, and a register 111c, and executes various calculation processes according to various programs read into the register 111c. The input unit 112 is an input port for inputting data, a keyboard, a mouse, and the like. The output unit 117 is an output port for outputting data, a display, and the like. The auxiliary storage device 113 is, for example, a hard disk, an MO (Magneto-Optical disc), a semiconductor memory, or the like, and a program that stores a program for causing the CPU 111 or the like to execute the process of the verifier-designated signature generation device 110 of this embodiment. It has an area 113a and a data area 113b in which various data such as secret values are stored. The RAM 115 is an SRAM (Static Random Access Memory), a DRAM (Dynamic Random Access Memory), or the like, and has a program area 113a in which the above program is written and a data area 113b in which various data are stored. The bus 118 connects the CPU 111, the input unit 112, the output unit 117, the auxiliary storage device 113, the RAM 115, and the ROM 114 so that they can communicate with each other.

CPU111は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置113のプログラム領域113aに格納されているプログラムを、RAM115のプログラム領域115aに書き込む。同様にCPU111は、補助記憶装置113のデータ領域113bに格納されている各種データを、RAM115のデータ領域115bに書き込む。そして、このプログラムやデータが書き込まれたRAM115上のアドレスがCPU111のレジスタ111cに格納される。CPU111の制御部111aは、レジスタ111cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM115上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部111bに順次実行させ、その演算結果をレジスタ111cに格納していく。   The CPU 111 writes the program stored in the program area 113a of the auxiliary storage device 113 in the program area 115a of the RAM 115 in accordance with the read OS (Operating System) program. Similarly, the CPU 111 writes various data stored in the data area 113 b of the auxiliary storage device 113 into the data area 115 b of the RAM 115. The address on the RAM 115 where the program and data are written is stored in the register 111c of the CPU 111. The control unit 111a of the CPU 111 sequentially reads these addresses stored in the register 111c, reads a program and data from the area on the RAM 115 indicated by the read address, causes the calculation unit 111b to sequentially execute the calculation indicated by the program, The calculation result is stored in the register 111c.

図4は、このようにCPU111にプログラムが読み込まれることにより構成される検証者指定署名生成装置110の機能構成を例示したブロック図である。なお、図4における矢印はデータの流れを示すが、制御部110rに出入りするデータの流れに対応する矢印は省略してある(以下同様)。
図4に例示するように、この例の検証者指定署名生成装置110は、秘密値記憶メモリ110aと、パラメータ記憶メモリ110bと、鍵記憶メモリ110cと、メッセージ記憶メモリ110dと、第1ハッシュ演算部110eと、剰余乗算部110fと、指数演算部110gと、第2ハッシュ演算部110hと、第1減算部110iと、乗算部110jと、第2減算部110kと、署名生成部110mと、署名送信部110nと、秘密値送信部110pと、一時メモリ110qと、制御部110rとを有している。なお、検証者指定署名生成装置110は、制御部110rの制御のもと各処理を実行する。
FIG. 4 is a block diagram illustrating a functional configuration of the verifier-designated signature generation device 110 configured by reading the program into the CPU 111 in this way. In addition, although the arrow in FIG. 4 shows the flow of data, the arrow corresponding to the flow of data going into and out of the controller 110r is omitted (the same applies hereinafter).
As illustrated in FIG. 4, the verifier-designated signature generation device 110 of this example includes a secret value storage memory 110a, a parameter storage memory 110b, a key storage memory 110c, a message storage memory 110d, and a first hash calculation unit. 110e, remainder multiplication unit 110f, exponent operation unit 110g, second hash operation unit 110h, first subtraction unit 110i, multiplication unit 110j, second subtraction unit 110k, signature generation unit 110m, and signature transmission 110n, secret value transmission unit 110p, temporary memory 110q, and control unit 110r. The verifier-designated signature generation apparatus 110 executes each process under the control of the control unit 110r.

<署名検証装置120>
署名検証装置120も検証者指定署名生成装置110と同様なハードウェア構成をとる(図3参照)。そして、そのCPUに所定のプログラムが読み込まれて実行されることにより、図5に例示するような署名検証装置120が構成される。
この図に例示するように、この例の署名検証装置120は、パラメータ記憶メモリ121と、鍵記憶メモリ122と、署名受信部123と、一時メモリ124と、署名検証部125と、制御部126とを有している。また、署名検証部125は、ハッシュ演算部125aと比較部125bとを有している。なお、署名検証装置120は、制御部126の制御のもと各処理を実行する。
<Signature Verification Device 120>
The signature verification apparatus 120 has the same hardware configuration as that of the verifier-designated signature generation apparatus 110 (see FIG. 3). Then, a predetermined program is read into the CPU and executed, whereby a signature verification apparatus 120 as illustrated in FIG. 5 is configured.
As illustrated in this figure, the signature verification apparatus 120 of this example includes a parameter storage memory 121, a key storage memory 122, a signature reception unit 123, a temporary memory 124, a signature verification unit 125, and a control unit 126. have. In addition, the signature verification unit 125 includes a hash calculation unit 125a and a comparison unit 125b. Note that the signature verification apparatus 120 executes each process under the control of the control unit 126.

<第三者端末装置130>
第三者端末装置130も検証者指定署名生成装置110と同様なハードウェア構成をとる(図3参照)。そして、そのCPUに所定のプログラムが読み込まれて実行されることにより、図6に例示するような第三者端末装置130が構成される。
この図に例示するように、第三者端末装置130は、署名受信部131と、秘密値受信部132と、自己証明部133と、一時メモリ134と、制御部135とを有している。ここで、自己証明部133は、ハッシュ演算部133aと比較部133bとを有している。なお、第三者端末装置130は、制御部135の制御のもと各処理を実行する。
<Third-party terminal device 130>
Third-party terminal device 130 also has the same hardware configuration as verifier-designated signature generation device 110 (see FIG. 3). Then, a predetermined program is read into the CPU and executed, whereby the third party terminal device 130 illustrated in FIG. 6 is configured.
As illustrated in this figure, the third party terminal device 130 includes a signature receiving unit 131, a secret value receiving unit 132, a self-certifying unit 133, a temporary memory 134, and a control unit 135. Here, the self-certifying unit 133 includes a hash calculation unit 133a and a comparison unit 133b. The third party terminal device 130 executes each process under the control of the control unit 135.

<前処理>
署名の生成・検証処理の前処理として、2種類のハッシュ(hash)関数H,G:{0,1}*→{0,1}が選択される。なお、ハッシュ関数としては、例えば、SHA−1、MD5等を例示できる。また、{0,1}*は全てのバイナリ系列を意味し、{0,1}はLビット長のバイナリ系列を意味する。また、H(α),G(α)は、それぞれαにハッシュ関数H,Gを作用させた結果(ハッシュ値)を意味する。これらのハッシュ関数H,Gは、検証者指定署名生成装置110を構成するためのプログラムのコードに書き込まれる。また、ハッシュ関数Hは、さらに署名検証装置120を構成するためのプログラムのコードに書き込まれ、ハッシュ関数Gは、第三者端末装置130を構成するためのプログラムのコードに書き込まれる。そして、これらのプログラムが前述のようにCPUに読み込まれることにより、各装置におけるハッシュ演算が可能になる。
<Pretreatment>
Two types of hash functions H and G: {0, 1} * → {0, 1} L are selected as pre-processing for signature generation / verification processing. In addition, as a hash function, SHA-1, MD5 etc. can be illustrated, for example. Further, {0, 1} * means all binary sequences, and {0, 1} L means a binary sequence having an L bit length. H (α) and G (α) mean results (hash values) obtained by applying hash functions H and G to α, respectively. These hash functions H and G are written in the code of a program for configuring the verifier-designated signature generation apparatus 110. Further, the hash function H is further written in a code of a program for configuring the signature verification apparatus 120, and the hash function G is written in a code of a program for configuring the third party terminal apparatus 130. And these programs are read by CPU as mentioned above, and the hash calculation in each apparatus is attained.

また、検証者指定署名生成装置110の秘密鍵xs及び公開鍵ysの鍵ペアと、署名検証装置120の秘密鍵xc及び公開鍵ycの鍵ペアとが設定される。本実施例では、離散対数問題の求解困難性に基づくSchnorr署名(例えば、岡本龍明,山本博資著,「現代暗号」,第3刷,産業図書株式会社,P182等参照)と同様な鍵ペアを設定する。すなわち、p,qをqがp−1を割り切る(q|p−1)大きな素数とし、ZをZ の位数qの巡回部分群とし、gをZの生成元とした場合における、xs∈Z,ys=gxsmod pの鍵ペアと、xc∈Z,yc=gxcmod pの鍵ペアとを設定する。 Also, the key pair of the private key xs and the public key ys of the verifier designated signature generation device 110 and the key pair of the private key xc and the public key yc of the signature verification device 120 are set. In this embodiment, a key pair similar to a Schnorr signature (see, for example, Tatsuaki Okamoto and Hiroshi Yamamoto, “Contemporary Cryptography”, 3rd edition, Sangyo Tosho, P182, etc.) based on the difficulty of solving discrete logarithm problems. Set. That is, when p and q are large prime numbers where q divides p-1 (q | p-1), Z q is a cyclic subgroup of order q of Z q * , and g is a generator of Z q The key pair of xsεZ q , ys = g xs mod p and the key pair of xcεZ q , yc = g xc mod p are set.

そして、検証者指定署名生成装置110の鍵記憶メモリ110cには、このように設定された検証者指定署名生成装置110の秘密鍵xs(署名生成者の秘密鍵)と署名検証装置120の公開鍵yc(特定の署名検証者の公開鍵)とが格納される。また、署名検証装置120の鍵記憶メモリ122には、検証者指定署名生成装置110の公開鍵ys(署名生成者の公開鍵)と署名検証装置120の公開鍵yc(特定の署名検証者の公開鍵)とが格納される。   The key storage memory 110c of the verifier-designated signature generation apparatus 110 stores the secret key xs of the verifier-designated signature generation apparatus 110 (the signature generator's private key) and the public key of the signature verification apparatus 120 thus set. yc (a public key of a specific signature verifier) is stored. Also, the key storage memory 122 of the signature verification device 120 stores the public key ys (public key of the signature generator) of the verifier-designated signature generation device 110 and the public key yc (public of a specific signature verifier) of the signature verification device 120. Key) is stored.

また、署名生成者において任意の秘密値seed∈{0,1}を設定し、それを秘密値記憶メモリ110aに安全に(外部に対して秘密に)格納する。さらに、パラメータas,sc∈{0,1}をランダムに設定し、パラメータ記憶メモリ110bに格納する。さらに上述のパラメータg(Zの生成元)もパラメータ記憶メモリ110bに格納する。ここで少なくともパラメータasは秘密情報である。また、パラメータgは公開情報であり、このパラメータgは署名検証装置120のパラメータ記憶メモリ121にも格納される。
さらに、検証者指定署名生成装置110のメッセージ記憶メモリ110dには署名対象のメッセージm∈{0,1}が格納される。
Further, an arbitrary secret value seed ∈ {0, 1} L is set in the signature generator, and it is stored securely (secretly with respect to the outside) in the secret value storage memory 110a. Further, the parameter as, scε {0, 1} L is set at random and stored in the parameter storage memory 110b. Further, the above-described parameter g (Z q generation source) is also stored in the parameter storage memory 110b. Here, at least the parameter as is secret information. The parameter g is public information, and the parameter g is also stored in the parameter storage memory 121 of the signature verification apparatus 120.
Further, the message storage memory 110d of the verifier-designated signature generation apparatus 110 stores the message to be signed mε {0, 1} L.

<検証者指定署名処理>
次に、検証者指定署名生成装置110において行われる検証者指定署名処理について説明する。
図7は、本実施例における検証者指定署名処理を説明するためのフローチャートである。以下、この図に沿って本実施例における検証者指定署名処理を説明する。なお、特に明示しない限り、各演算過程の各データはレジスタ等のメモリに格納され、必要に応じて読み出されるものとする(各実施例においても同様)。
<Verifier-designated signature processing>
Next, a verifier designated signature process performed in the verifier designated signature generation apparatus 110 will be described.
FIG. 7 is a flowchart for explaining the verifier-designated signature processing in the present embodiment. Hereinafter, the verifier designated signature process in the present embodiment will be described with reference to this figure. Unless otherwise specified, each data of each calculation process is stored in a memory such as a register and is read out as necessary (the same applies to each embodiment).

まず、検証者指定署名生成装置110の第1ハッシュ演算部110eにおいて、秘密値記憶メモリ110aから秘密値seedを読み出し、この秘密値seedのハッシュ値cc=G(seed)を算出する(ステップS1)。このように算出されたハッシュ値ccは、パラメータccとしてパラメータ記憶メモリ110bに格納される。次に、剰余乗算部110fにおいて、パラメータ記憶メモリ110bから、パラメータcc,sc,gを読み込み、鍵記憶メモリ110cから公開鍵ycが読み込まれる。そして、剰余乗算部110fは、rc=gsc・ycccの演算を行い、その演算結果rcを一時メモリ110qに格納する(ステップS2)。次に、指数演算部110gにおいて、パラメータ記憶メモリ110bから、パラメータas,gを読み込み、rs=gasの演算を行い、その演算結果rsを一時メモリ110qに格納する(ステップS3)。次に、第2ハッシュ演算部110hにおいて、一時メモリ110qからrs,rcを読み込み、メッセージ記憶メモリ110dからメッセージmを読み込む。そして、第2ハッシュ演算部110hは、rsとrcとmとのビット結合値のハッシュ値C=H(rs,rc,m)を算出し、そのハッシュ値Cを一時メモリ110qに格納する(ステップS4)。なお、ビット結合値とは、ビット列とビット列との結合を意味する。例えば、rs=101,rc=110,m=110であった場合、rsとrcとmとのビット結合値(rs,rc,m)は、101110110となる。なお、結合されるビット列の順序は特にこれに限定されるものではないが、その順序は署名検証装置120のハッシュ演算部125aでのハッシュ演算におけるビット結合に対応するものでなければならない(詳細は後述)。 First, the first hash calculator 110e of the verifier-designated signature generation apparatus 110 reads the secret value seed from the secret value storage memory 110a, and calculates the hash value cc = G (seed) of the secret value seed (step S1). . The hash value cc calculated in this way is stored in the parameter storage memory 110b as a parameter cc. Next, the remainder multiplication unit 110f reads the parameters cc, sc, and g from the parameter storage memory 110b, and reads the public key yc from the key storage memory 110c. Then, the remainder multiplication unit 110f calculates rc = g sc · yc cc , and stores the calculation result rc in the temporary memory 110q (step S2). Next, the exponent calculation unit 110g, from the parameter storage memory 110b, reads the parameters the as, g, performs calculation of rs = g the as, and stores the calculation result rs in the temporary memory 110q (step S3). Next, in the second hash calculation unit 110h, rs and rc are read from the temporary memory 110q, and the message m is read from the message storage memory 110d. Then, the second hash calculation unit 110h calculates a hash value C = H (rs, rc, m) of the bit combination value of rs, rc, and m, and stores the hash value C in the temporary memory 110q (step). S4). The bit combination value means a combination of a bit string and a bit string. For example, when rs = 101, rc = 110, and m = 110, the bit combination value (rs, rc, m) of rs, rc, and m is 101110110. The order of the bit strings to be combined is not particularly limited to this, but the order must correspond to the bit combination in the hash calculation in the hash calculation unit 125a of the signature verification apparatus 120 (for details) Later).

次に、第1減算部110iにおいて、一時メモリ110qからハッシュ値Cを読み込み、パラメータ記憶メモリ110bからパラメータccを読み込む。そして、第1減算部110iは、cs=C−ccの演算を行い、その演算結果を一時メモリ110qに格納する(ステップS5)。次に、乗算部110jにおいて、一時メモリ110qからcsを読み込み、鍵記憶メモリ110cから秘密鍵xsを読み込む。そして、乗算部110jは、cs・xsの演算を行い、その演算結果を一時メモリ110qに格納する(ステップS6)。次に、第2減算部110kにおいて、一時メモリ110qからcs・xsを読み込み、パラメータ記憶メモリ110bからパラメータasを読み込む。そして、第2減算部110kは、ss=as−cs・xsの演算を行い、その演算結果ssを一時メモリ110qに格納する(ステップS7)。その後、署名生成部110mにおいて、一時メモリ110qからC,cs,ssを読み込み、パラメータ記憶メモリ110bからパラメータcc,scを読み込み、検証者指定署名σ=(C,cc,sc,cs,ss)を生成する(ステップS8)。このように生成された検証者指定署名σは、署名送信部110nに送られ、署名送信部110nは、この検証者指定署名σをメッセージ記憶メモリ110dから読み込まれたメッセージmとともに、ネットワーク40を通じて送信する(ステップS9)。   Next, in the first subtraction unit 110i, the hash value C is read from the temporary memory 110q, and the parameter cc is read from the parameter storage memory 110b. Then, the first subtraction unit 110i performs a calculation of cs = C-cc, and stores the calculation result in the temporary memory 110q (step S5). Next, the multiplication unit 110j reads cs from the temporary memory 110q and reads the secret key xs from the key storage memory 110c. Then, the multiplication unit 110j calculates cs · xs, and stores the calculation result in the temporary memory 110q (step S6). Next, the second subtraction unit 110k reads cs · xs from the temporary memory 110q, and reads the parameter as from the parameter storage memory 110b. Then, the second subtraction unit 110k performs an operation of ss = as−cs · xs and stores the operation result ss in the temporary memory 110q (step S7). Thereafter, in the signature generation unit 110m, C, cs, and ss are read from the temporary memory 110q, the parameters cc and sc are read from the parameter storage memory 110b, and the verifier-designated signature σ = (C, cc, sc, cs, ss) is obtained. Generate (step S8). The verifier designated signature σ generated in this way is sent to the signature transmission unit 110n, and the signature transmission unit 110n transmits the verifier designated signature σ together with the message m read from the message storage memory 110d through the network 40. (Step S9).

<署名検証処理>
次に、署名検証装置120における署名検証処理を説明する。
図8は、本実施例における署名検証装置120の署名検証処理を説明するためのフローチャートである。以下、この図に沿ってこの署名検証処理を説明する。
まず、署名検証装置120は、署名受信部123において、上述のようにネットワーク40を通じて送信された検証者指定署名σ=(C,cc,sc,cs,ss)とメッセージmとを受信する(ステップS11)。そして、これらは一時メモリ124に格納される。次に、署名検証部125のハッシュ演算部125aにおいて、一時メモリ124から、メッセージmと検証者指定署名σのcc,sc,cs,ssとを読み込む。そして、ハッシュ演算部125aは、これらのビット結合値のハッシュ値H(gss・yscs,gsc・yccc,m)を算出する(ステップS12)。なお、gss・yscsとgsc・ycccとmとのビット結合順序は、前述の第2ハッシュ演算部110hのハッシュ演算におけるrsとrcとmとのビット結合順序に対応するものとする。すなわち、gss・yscsはrsのビット位置にビット結合され、gsc・ycccはrcのビット位置にビット結合される。例えば、第2ハッシュ演算部110hのハッシュ演算におけるrsとrcとmとのビット結合順序がrs|rc|mであった場合、ハッシュ演算部125aにおけるビット結合順序はgss・yscs|gsc・yccc|mとなる。算出されたハッシュ値H(gss・yscs,gsc・yccc,m)は一時メモリ124に格納される。
<Signature verification processing>
Next, a signature verification process in the signature verification apparatus 120 will be described.
FIG. 8 is a flowchart for explaining the signature verification processing of the signature verification apparatus 120 in this embodiment. The signature verification process will be described below with reference to this figure.
First, the signature verification apparatus 120 receives the verifier-designated signature σ = (C, cc, sc, cs, ss) and the message m, which are transmitted through the network 40 as described above, in the signature reception unit 123 (steps). S11). These are stored in the temporary memory 124. Next, in the hash calculation unit 125a of the signature verification unit 125, the message m and cc, sc, cs, and ss of the verifier designated signature σ are read from the temporary memory 124. Then, the hash calculation unit 125a calculates a hash value H (g ss · ys cs , g sc · yc cc , m) of these bit combination values (step S12). Note that the bit combination order of g ss · ys cs , g sc · yc cc, and m corresponds to the bit combination order of rs, rc, and m in the hash calculation of the second hash calculation unit 110h. . That is, g ss · ys cs is bit-coupled to the bit position of rs, and g sc · yc cc is bit-coupled to the bit position of rc. For example, when the bit combination order of rs, rc, and m in the hash calculation of the second hash calculation unit 110h is rs | rc | m, the bit combination order in the hash calculation unit 125a is g ss · ys cs | g sc Yc cc | m The calculated hash value H (g ss · ys cs , g sc · yc cc , m) is stored in the temporary memory 124.

次に、署名検証部125の比較部125bにおいて、一時メモリ124からCとcsとccを読み込みC=cs+ccを満たすか否かを判断する(ステップS13)。ここで、C=cs+ccでなければ、署名検証部125は、認証が失敗である旨の情報を出力し(ステップS14)、制御部126は署名検証装置120での処理を終了する。一方、C=cs+ccであると判断された場合、次に、比較部125bは、一時メモリ124からさらにハッシュ値H(gss・yscs,gsc・yccc,m)を読み込み、C=H(gss・yscs,gsc・yccc,m)であるか否かを判断する(ステップS15)。ここで、C=H(gss・yscs,gsc・yccc,m)でなかった場合、署名検証部125は、認証が失敗である旨の情報を出力し(ステップS14)、制御部126は署名検証装置120での処理を終了する。一方、C=H(gss・yscs,gsc・yccc,m)であった場合、署名検証部125は、認証が成功である旨の情報を出力し(ステップS16)、制御部126は署名検証装置120での処理を終了する。 Next, the comparison unit 125b of the signature verification unit 125 reads C, cs, and cc from the temporary memory 124, and determines whether or not C = cs + cc is satisfied (step S13). If C = cs + cc is not satisfied, the signature verification unit 125 outputs information indicating that the authentication has failed (step S14), and the control unit 126 ends the processing in the signature verification device 120. On the other hand, if it is determined that C = cs + cc, then the comparison unit 125b further reads the hash value H (g ss · ys cs , g sc · yc cc , m) from the temporary memory 124, and C = H. It is determined whether or not (g ss · ys cs , g sc · yc cc , m) (step S15). Here, if C = H (g ss · ys cs , g sc · yc cc , m), the signature verification unit 125 outputs information indicating that the authentication is unsuccessful (step S14), and the control unit 126 terminates the processing in the signature verification apparatus 120. On the other hand, if C = H (g ss · ys cs , g sc · yc cc , m), the signature verification unit 125 outputs information indicating that the authentication is successful (step S16), and the control unit 126. Ends the processing in the signature verification apparatus 120.

なお、この署名検証処理には署名検証装置120の秘密情報が用いられていない。従って、この署名検証処理自体は署名検証装置120以外の装置でも可能である。しかし、ステップS13,S15の検証式が成り立つことによっていえるのは、検証者指定署名生成装置110又は署名検証装置120の何れかにおいて検証者指定署名σが生成されたことのみである(このことは、式の変更と鍵ペアの条件xs∈Z,ys=gxsmod p、xc∈Z,yc=gxcmod pの適用から容易に導ける。)。ここで署名検証装置120の利用者は、自らは検証者指定署名σを生成していないことを知っているため、ステップS13,S15の検証式が成り立つ場合、検証者指定署名σは確かに検証者指定署名生成装置110で生成されたことが分かる。しかし、それ以外の第三者は、検証者指定署名σが、検証者指定署名生成装置110と署名検証装置120の何れで生成されたのかを識別することはできない。 Note that the secret information of the signature verification apparatus 120 is not used for the signature verification process. Therefore, the signature verification process itself can be performed by an apparatus other than the signature verification apparatus 120. However, it can be said that the verification formulas in steps S13 and S15 hold only that the verifier-designated signature σ is generated in either the verifier-designated signature generation apparatus 110 or the signature verification apparatus 120 (this is true). It can be easily derived from the change of the expression and the application of the key pair conditions xs∈Z q , ys = g xs mod p, xc∈Z q , yc = g xc mod p). Here, since the user of the signature verification apparatus 120 knows that he / she has not generated the verifier-designated signature σ, the verifier-designated signature σ is surely verified when the verification formulas of steps S13 and S15 hold. It can be seen that it is generated by the person-designated signature generation apparatus 110. However, other third parties cannot identify whether the verifier-designated signature σ is generated by the verifier-designated signature generation device 110 or the signature verification device 120.

<署名者による自己証明処理>
次に、署名者が、特定の署名検証者以外の第三者に検証者指定署名σの生成者が自分であることを証明する処理について説明する。
図9は、本実施例における自己証明処理を説明するためのフローチャートである。なお、このフローチャートは、特定の署名検証者以外の第三者が利用する第三者端末装置130における処理を示している。
まず、検証者指定署名が検証者指定署名生成装置110で生成されたことを特定の署名検証者以外の第三者に対して証明する際、検証者指定署名生成装置110の利用者は、その旨の指示を入力部112(図3)から入力する。これをトリガに、検証者指定署名生成装置110の制御部110rは、秘密値送信部110p及び署名生成部110m及び署名送信部11nに指示を与える。これに対し、署名生成部110mは検証者指定署名σを生成し、これを署名送信部110nにおいてネットワーク40を通じ、証明を行う第三者の第三者端末装置130に送信する。また、秘密値送信部110pは、秘密値記憶メモリ110aに格納されている秘密値seedを、ネットワーク40を通じ、第三者の第三者端末装置130に送信する。なお、検証者指定署名σと秘密値seedとは同時に送信されてもよいし、秘密値seedを送信した後に検証者指定署名σを送信してもよい。また、既に第三者端末装置130が検証者指定署名σを格納しているのであれば、改めて検証者指定署名σの送信を行わないこととしてもよい。
<Self-certification processing by the signer>
Next, a process in which the signer proves that the creator of the verifier-designated signature σ is himself / herself to a third party other than the specific signature verifier will be described.
FIG. 9 is a flowchart for explaining the self-certification processing in the present embodiment. This flowchart shows processing in the third party terminal device 130 used by a third party other than a specific signature verifier.
First, when proving to a third party other than a specific signature verifier that a verifier-designated signature has been generated by the verifier-designated signature generation apparatus 110, the user of the verifier-designated signature generation apparatus 110 An instruction to that effect is input from the input unit 112 (FIG. 3). With this as a trigger, the control unit 110r of the verifier-designated signature generation apparatus 110 gives an instruction to the secret value transmission unit 110p, the signature generation unit 110m, and the signature transmission unit 11n. On the other hand, the signature generation unit 110m generates a verifier-designated signature σ and transmits it to the third party terminal device 130 of the third party who performs the certification through the network 40 in the signature transmission unit 110n. Further, the secret value transmission unit 110p transmits the secret value seed stored in the secret value storage memory 110a to the third party terminal device 130 of the third party through the network 40. The verifier-designated signature σ and the secret value seed may be transmitted simultaneously, or the verifier-designated signature σ may be transmitted after transmitting the secret value seed. If the third-party terminal device 130 already stores the verifier-designated signature σ, the verifier-designated signature σ may not be transmitted again.

第三者端末装置130は、署名受信部131においてこの検証者指定署名σ=(C,cc,sc,cs,ss)を受信し(ステップS21)、秘密値受信部132において秘密値seedを受信する(ステップS22)。なお、受信された検証者指定署名σ及び秘密値seedは、一時メモリ134に格納される。次に、自己証明部133のハッシュ演算部133aにおいて、一時メモリ134から秘密値seedを読み込み、ハッシュ値G(seed)を算出する(ステップS23)。そして、自己証明部133の比較部133bにおいて、一時メモリ134からさらにccを読み込み、cc=G(seed)であるか否かを判断する(ステップS24)。ここで、cc=G(seed)である場合、自己証明部133は、証明が成功である(確かに検証者指定署名σは検証者指定署名生成装置110で生成された)旨の情報を出力し(ステップS25)、制御部135は第三者端末装置130の処理を終了させる。一方、cc=G(seed)でない場合、自己証明部133は、証明が失敗である(検証者指定署名σは検証者指定署名生成装置110で生成されたといえない)旨の情報を出力し(ステップS26)、制御部135は第三者端末装置130の処理を終了させる。   The third party terminal device 130 receives the verifier-designated signature σ = (C, cc, sc, cs, ss) at the signature receiving unit 131 (step S21), and receives the secret value seed at the secret value receiving unit 132. (Step S22). The received verifier-designated signature σ and secret value seed are stored in the temporary memory 134. Next, the hash value calculation unit 133a of the self-certification unit 133 reads the secret value seed from the temporary memory 134 and calculates the hash value G (seed) (step S23). Then, the comparison unit 133b of the self-certification unit 133 further reads cc from the temporary memory 134, and determines whether or not cc = G (seed) (step S24). Here, when cc = G (seed), the self-certifying unit 133 outputs information indicating that the proof is successful (the verifier-designated signature σ is certainly generated by the verifier-designated signature generating apparatus 110). Then (step S25), the control unit 135 ends the process of the third party terminal device 130. On the other hand, if cc = G (seed) is not true, the self-certifying unit 133 outputs information indicating that the proof is unsuccessful (the verifier-designated signature σ is not generated by the verifier-designated signature generating device 110) ( In step S <b> 26, the control unit 135 ends the process of the third party terminal device 130.

通常、第三者端末装置130は、検証者指定署名生成装置110と署名検証装置120のどちらで検証者指定署名σが生成されたのかを知ることはできない。しかし、検証者指定署名生成装置110から秘密値seedを示された場合、第三者端末装置130は、検証者指定署名σが検証者指定署名生成装置110で生成されたものであるか否かを知ることができる。すなわち、検証者指定署名生成装置110の利用者(署名生成者)以外の者が検証者指定署名σを生成したことを偽ろうとしても、この者はcc=G(seed)を満たすようなseedを示すことができない為、検証者指定署名σの生成者であることを偽ることができない。よって、第三者端末装置130は、cc=G(seed)を満たすseedを提示できた検証者指定署名生成装置110が、確かに検証者指定署名σの生成者であると判断できる。   Normally, the third-party terminal device 130 cannot know whether the verifier-designated signature σ has been generated by the verifier-designated signature generation device 110 or the signature verification device 120. However, when the secret value seed is indicated from the verifier-designated signature generation device 110, the third-party terminal device 130 determines whether or not the verifier-designated signature σ is generated by the verifier-designated signature generation device 110. Can know. That is, even if a person other than the user (signature generator) of the verifier-designated signature generation apparatus 110 tries to deceive that the verifier-designated signature σ is generated, this person satisfies seed cc = G (seed). Since it is not possible to indicate that it is a generator of the verifier-designated signature σ, it cannot be false. Therefore, the third-party terminal device 130 can determine that the verifier-designated signature generation device 110 that has been able to present seed satisfying cc = G (seed) is certainly the creator of the verifier-designated signature σ.

なお、本実施例では、cc=G(seed)としたが、代わりにsc=G(seed)とし、第三者端末装置130の自己証明部133において、sc=G(seed)を満たすか否かによって検証者指定署名σが検証者指定署名生成装置110において生成されたか否かを検証することとしてもよい。また、秘密値を複数設定し(seed,seed’)、cc=G(seed)、sc=G(seed’)とし、第三者端末装置130の自己証明部133において、cc=G(seed)とsc=G(seed’)とを満たすことを条件に検証者指定署名σが検証者指定署名生成装置110において生成されたと判断することとしてもよい。   In this embodiment, cc = G (seed) is used, but sc = G (seed) is used instead, and whether or not sc = G (seed) is satisfied in the self-certification unit 133 of the third-party terminal device 130. Thus, it may be verified whether or not the verifier-designated signature σ is generated in the verifier-designated signature generation apparatus 110. Also, a plurality of secret values are set (seed, seed ′), cc = G (seed), and sc = G (seed ′), and the self-certification unit 133 of the third party terminal device 130 sets cc = G (seed). It is also possible to determine that the verifier-designated signature σ has been generated by the verifier-designated signature generation apparatus 110 on the condition that the above and sc = G (seed ') are satisfied.

また、第三者端末装置130に公開されうる秘密値seedのハッシュ値によって構成するのはcc或いはscの少なくとも一方であることが望ましい。第三者端末装置130に秘密値seedが公開されると、この第三者端末装置130はcc或いはscの値を知ることになるが、これらの値を知られても検証者指定署名σの偽造困難性はさほど低下しないからである。従って、自己証明のために第三者端末装置130に秘密値seedが公開された後であっても、同じ秘密値及びパラメータを用いて検証者指定署名生成装置210における署名生成を継続することができる。   Further, it is preferable that at least one of cc and sc is constituted by the hash value of the secret value seed that can be disclosed to the third party terminal device 130. When the secret value seed is disclosed to the third-party terminal device 130, the third-party terminal device 130 knows the value of cc or sc. Even if these values are known, the verifier-designated signature σ This is because the forgery difficulty does not decrease so much. Therefore, even after the secret value seed is disclosed to the third party terminal device 130 for self-certification, the signature generation in the verifier-designated signature generation device 210 can be continued using the same secret value and parameter. it can.

〔実施例2〕
本実施例は実施例1の変形例であり、as=G(seed)とする点が実施例1と相違する。以下では、実施例1との相違点を中心に説明する。また、以下の図において実施例1と共通する部分については実施例1で用いたものと同じ符号を用いた。
<構成>
本実施例の全体構成は図1に例示したものと同様である。ただし、本実施例では、検証者指定署名生成装置10の具体例として検証者指定署名生成装置210を用い、署名検証装置20の具体例として実施例1と同じ署名検証装置120を用い、第三者端末装置30の具体例として第三者端末装置230を用いた場合を説明する。
[Example 2]
The present embodiment is a modification of the first embodiment, and is different from the first embodiment in that as = G (seed). Below, it demonstrates centering on difference with Example 1. FIG. Further, in the following drawings, the same reference numerals as those used in the first embodiment are used for portions common to the first embodiment.
<Configuration>
The overall configuration of this embodiment is the same as that illustrated in FIG. However, in the present embodiment, the verifier-designated signature generation device 210 is used as a specific example of the verifier-designated signature generation device 10, the signature verification device 120 same as that of the first embodiment is used as a specific example of the signature verification device 20, and the third A case where a third-party terminal device 230 is used as a specific example of the person terminal device 30 will be described.

<検証者指定署名生成装置210>
図10は、本実施例における検証者指定署名生成装置210の構成を例示したブロック図である。実施例1の検証者指定署名生成装置110と本実施例の検証者指定署名生成装置210との相違点は、第1ハッシュ演算部110eが第1ハッシュ演算部210eに置き換わる点のみである。
<第三者端末装置230>
図11は、本実施例における第三者端末装置230の構成を例示したブロック図である。実施例1の第三者端末装置130と本実施例の第三者端末装置230との相違点は、自己証明部133が自己証明部233に置き換わる点、及び前処理で検証者指定署名生成装置210の公開鍵ysを格納する鍵記憶メモリ236及び前処理でパラメータgが格納されるパラメータ記憶メモリ237が追加される点のみである。なお、本実施例の自己証明部233は、ハッシュ演算部233a、指数演算部233b、剰余乗算部233c及び比較部233dを有している。
<Verifier-designated signature generation apparatus 210>
FIG. 10 is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus 210 in this embodiment. The only difference between the verifier-designated signature generation device 110 of the first embodiment and the verifier-designated signature generation device 210 of the present embodiment is that the first hash calculation unit 110e is replaced with the first hash calculation unit 210e.
<Third-party terminal device 230>
FIG. 11 is a block diagram illustrating the configuration of the third party terminal device 230 in the present embodiment. The difference between the third-party terminal device 130 of the first embodiment and the third-party terminal device 230 of the present embodiment is that the self-certifying unit 133 is replaced with the self-certifying unit 233 and the verifier-designated signature generating device in the preprocessing Only a key storage memory 236 for storing the public key ys 210 and a parameter storage memory 237 for storing the parameter g in the preprocessing are added. The self-certifying unit 233 according to the present embodiment includes a hash calculation unit 233a, an exponent calculation unit 233b, a remainder multiplication unit 233c, and a comparison unit 233d.

<検証者指定署名処理>
実施例1との相違点は、実施例1のステップS1の代わりに、検証者指定署名生成装置210の第1ハッシュ演算部210eにおいて、秘密値記憶メモリ110aから秘密値seedを読み出し、この秘密値seedのハッシュ値as=G(seed)を算出し、このasをパラメータasとしてパラメータ記憶メモリ110bに格納する点のみである。
<署名検証処理>
実施例1と同じである。
<Verifier-designated signature processing>
The difference from the first embodiment is that instead of step S1 of the first embodiment, the first hash calculation unit 210e of the verifier-designated signature generation device 210 reads the secret value seed from the secret value storage memory 110a, and this secret value Only the point where the hash value as = G (seed) of seed is calculated and this as is stored in the parameter storage memory 110b as the parameter as.
<Signature verification processing>
Same as Example 1.

<署名者による自己証明処理>
図12は、本実施例における自己証明処理を説明するためのフローチャートである。なお、このフローチャートは、特定の署名検証者以外の第三者が利用する第三者端末装置230における処理を示している。
まず、第三者端末装置230は、実施例1と同様に、署名受信部131において検証者指定署名σ=(C,cc,sc,cs,ss)を受信し(ステップS31)、秘密値受信部132において秘密値seedを受信する(ステップS32)。なお、受信された検証者指定署名σ及び秘密値seedは、一時メモリ134に格納される。次に、自己証明部233のハッシュ演算部233aにおいて、一時メモリ134から秘密値seedを読み込み、ハッシュ値G(seed)を算出する(ステップS33)。次に、指数演算部233bにおいて、パラメータ記憶メモリ237からパラメータgを読み込み、これとハッシュ値G(seed)とを用い、gG(seed)を算出して一時メモリ134に格納する(ステップS34)。また、剰余乗算部233cにおいて、一時メモリ134からcs,ssを読み込み、鍵記憶メモリ236から公開鍵ysを読み込み、パラメータ記憶メモリ237からパラメータgを読み込み、gss・yscsを算出する(ステップS35)。そして、比較部233dにおいて、一時メモリ134からgG(seed)を読み込み、gG(seed)=gss・yscsであるか否かを判断する(ステップS36)。ここで、gG(seed)=gss・yscsであれば、自己証明部233は、証明が成功である旨の情報を出力し(ステップS37)、制御部135は第三者端末装置230の処理を終了させる。一方、gG(seed)=gss・yscsでない場合、自己証明部233は、証明が失敗であるの情報を出力し(ステップS38)、制御部135は第三者端末装置230の処理を終了させる。
<Self-certification processing by the signer>
FIG. 12 is a flowchart for explaining the self-certification processing in the present embodiment. This flowchart shows processing in the third party terminal device 230 used by a third party other than a specific signature verifier.
First, the third party terminal device 230 receives the verifier-designated signature σ = (C, cc, sc, cs, ss) in the signature receiving unit 131 as in the first embodiment (step S31), and receives the secret value. The unit 132 receives the secret value seed (step S32). The received verifier-designated signature σ and secret value seed are stored in the temporary memory 134. Next, the hash calculation unit 233a of the self-certification unit 233 reads the secret value seed from the temporary memory 134 and calculates the hash value G (seed) (step S33). Next, the exponent operation unit 233b reads the parameter g from the parameter storage memory 237, uses this and the hash value G (seed) , calculates gG (seed) , and stores it in the temporary memory 134 (step S34). . The remainder multiplication unit 233c reads cs and ss from the temporary memory 134, reads the public key ys from the key storage memory 236, reads the parameter g from the parameter storage memory 237, and calculates g ss · ys cs (step S35). ). Then, the comparison unit 233d reads g G (seed) from the temporary memory 134, and determines whether or not g G (seed) = g ss · ys cs (step S36). Here, if g G (seed) = g ss · ys cs , the self-certifying unit 233 outputs information indicating that the proof is successful (step S37), and the control unit 135 outputs the third-party terminal device 230. End the process. On the other hand, if g G (seed) = g ss · ys cs is not satisfied, the self-certification unit 233 outputs information indicating that the proof is unsuccessful (step S38), and the control unit 135 performs the processing of the third party terminal device 230. Terminate.

〔実施例3〕
本実施例は実施例1の変形例であり、as=G(seed,m)とする点が実施例1と相違する。以下では、実施例1との相違点を中心に説明する。
<構成>
本実施例の全体構成は図1に例示したものと同様である。ただし、本実施例では、検証者指定署名生成装置10の具体例として検証者指定署名生成装置410を用い、署名検証装置20の具体例として実施例1と同じ署名検証装置120を用い、第三者端末装置30の具体例として第三者端末装置430を用いた場合を説明する。
Example 3
This embodiment is a modification of the first embodiment, and is different from the first embodiment in that as = G (seed, m). Below, it demonstrates centering on difference with Example 1. FIG.
<Configuration>
The overall configuration of this embodiment is the same as that illustrated in FIG. However, in this embodiment, the verifier-designated signature generation device 410 is used as a specific example of the verifier-designated signature generation device 10, the signature verification device 120 same as that of the first embodiment is used as a specific example of the signature verification device 20, and the third A case where a third party terminal device 430 is used as a specific example of the person terminal device 30 will be described.

<検証者指定署名生成装置410>
図13は、本実施例における検証者指定署名生成装置410の構成を例示したブロック図である。実施例1の検証者指定署名生成装置110と本実施例の検証者指定署名生成装置410との相違点は、第1ハッシュ演算部110eが第1ハッシュ演算部410eに置き換わる点のみである。
<第三者端末装置430>
図14は、本実施例における第三者端末装置430の構成を例示したブロック図である。実施例1の第三者端末装置130と本実施例の第三者端末装置430との相違点は、自己証明部133が自己証明部433に置き換わる点のみである。なお、自己証明部433は、ハッシュ演算部433a及び比較部433bを有している。
<Verifier-designated signature generation apparatus 410>
FIG. 13 is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus 410 according to this embodiment. The only difference between the verifier-designated signature generation device 110 of the first embodiment and the verifier-designated signature generation device 410 of the present embodiment is that the first hash calculation unit 110e is replaced with the first hash calculation unit 410e.
<Third party terminal device 430>
FIG. 14 is a block diagram illustrating the configuration of the third party terminal device 430 in the present embodiment. The only difference between the third party terminal device 130 of the first embodiment and the third party terminal device 430 of the present embodiment is that the self-certifying unit 133 is replaced with a self-certifying unit 433. The self-certifying unit 433 includes a hash calculation unit 433a and a comparison unit 433b.

<検証者指定署名処理>
実施例1との相違点は、実施例1のステップS1の代わりに、検証者指定署名生成装置410の第1ハッシュ演算部410eにおいて、秘密値記憶メモリ110aから秘密値seedを読み込み、メッセージ記憶メモリ110dからメッセージmを読み込み、seedとmとのビット結合値のハッシュ値cc=G(seed,m)を算出し、このccをパラメータasとしてパラメータ記憶メモリ110bに格納する点のみである。
<署名検証処理>
実施例1と同じである。
<Verifier-designated signature processing>
The difference from the first embodiment is that instead of step S1 of the first embodiment, the first hash calculation unit 410e of the verifier-designated signature generation device 410 reads the secret value seed from the secret value storage memory 110a, and the message storage memory The message m is read from 110d, the hash value cc = G (seed, m) of the bit combination value of seed and m is calculated, and this cc is stored in the parameter storage memory 110b as the parameter as.
<Signature verification processing>
Same as Example 1.

<署名者による自己証明処理>
図15は、本実施例における自己証明処理を説明するためのフローチャートである。なお、このフローチャートは、特定の署名検証者以外の第三者が利用する第三者端末装置430における処理を示している。
まず、第三者端末装置430は、実施例1と同様に、署名受信部131において検証者指定署名σ=(C,cc,sc,cs,ss)を受信し(ステップS61)、秘密値受信部132において秘密値seedを受信する(ステップS62)。なお、受信された検証者指定署名σ及び秘密値seedは、一時メモリ134に格納される。次に、自己証明部433のハッシュ演算部433aにおいて、一時メモリ134から秘密値seedとメッセージmとを読み込み、それらのビット結合値のハッシュ値G(seed,m)を算出する(ステップS63)。次に、比較部433bにおいて、一時メモリ134からccを読み込み、cc=G(seed,m)であるか否かを判断する(ステップS64)。ここで、cc=G(seed,m)であれば、自己証明部433は、証明が成功である旨の情報を出力し(ステップS65)、制御部135は第三者端末装置430の処理を終了させる。一方、cc=G(seed,m)でない場合、自己証明部433は、証明が失敗であるの情報を出力し(ステップS66)、制御部135は第三者端末装置430の処理を終了させる。
<Self-certification processing by the signer>
FIG. 15 is a flowchart for explaining self-certification processing in the present embodiment. This flowchart shows processing in the third party terminal device 430 used by a third party other than a specific signature verifier.
First, the third party terminal device 430 receives the verifier-designated signature σ = (C, cc, sc, cs, ss) in the signature receiving unit 131 as in the first embodiment (step S61), and receives the secret value. The unit 132 receives the secret value seed (step S62). The received verifier-designated signature σ and secret value seed are stored in the temporary memory 134. Next, in the hash calculation unit 433a of the self-certification unit 433, the secret value seed and the message m are read from the temporary memory 134, and the hash value G (seed, m) of these bit combination values is calculated (step S63). Next, the comparison unit 433b reads cc from the temporary memory 134, and determines whether or not cc = G (seed, m) (step S64). Here, if cc = G (seed, m), the self-certifying unit 433 outputs information indicating that the certification is successful (step S65), and the control unit 135 performs the processing of the third party terminal device 430. Terminate. On the other hand, when cc = G (seed, m) is not true, the self-certifying unit 433 outputs information indicating that the certification has failed (step S66), and the control unit 135 ends the processing of the third party terminal device 430.

〔実施例4〕
本実施例は実施例1の変形例であり、as=G(seed,m,sc)とする点が実施例1と相違する。以下では、実施例1との相違点を中心に説明する。
<構成>
本実施例の全体構成は図1に例示したものと同様である。ただし、本実施例では、検証者指定署名生成装置10の具体例として検証者指定署名生成装置510を用い、署名検証装置20の具体例として実施例1と同じ署名検証装置120を用い、第三者端末装置30の具体例として第三者端末装置530を用いた場合を説明する。
Example 4
The present embodiment is a modification of the first embodiment, and is different from the first embodiment in that as = G (seed, m, sc). Below, it demonstrates centering on difference with Example 1. FIG.
<Configuration>
The overall configuration of this embodiment is the same as that illustrated in FIG. However, in this embodiment, the verifier-designated signature generation device 510 is used as a specific example of the verifier-designated signature generation device 10, the signature verification device 120 same as that of the first embodiment is used as a specific example of the signature verification device 20, and the third A case where a third party terminal device 530 is used as a specific example of the person terminal device 30 will be described.

<検証者指定署名生成装置510>
図16は、本実施例における検証者指定署名生成装置510の構成を例示したブロック図である。実施例1の検証者指定署名生成装置110と本実施例の検証者指定署名生成装置510との相違点は、第1ハッシュ演算部110eが第1ハッシュ演算部510eに置き換わる点のみである。
<第三者端末装置530>
図17は、本実施例における第三者端末装置530の構成を例示したブロック図である。実施例1の第三者端末装置130と本実施例の第三者端末装置530との相違点は、自己証明部133が自己証明部533に置き換わる点のみである。なお、自己証明部533は、ハッシュ演算部533a及び比較部533bを有している。
<Verifier-designated signature generation apparatus 510>
FIG. 16 is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus 510 according to the present embodiment. The only difference between the verifier-designated signature generation device 110 of the first embodiment and the verifier-designated signature generation device 510 of the present embodiment is that the first hash calculation unit 110e is replaced with the first hash calculation unit 510e.
<Third-party terminal device 530>
FIG. 17 is a block diagram illustrating the configuration of the third party terminal device 530 in the present embodiment. The only difference between the third party terminal device 130 of the first embodiment and the third party terminal device 530 of the present embodiment is that the self-certifying unit 133 is replaced with a self-certifying unit 533. The self-certifying unit 533 includes a hash calculation unit 533a and a comparison unit 533b.

<検証者指定署名処理>
実施例1との相違点は、実施例1のステップS1の代わりに、検証者指定署名生成装置510の第1ハッシュ演算部510eにおいて、秘密値記憶メモリ110aから秘密値seedを読み込み、メッセージ記憶メモリ110dからメッセージmを読み込み、パラメータ記憶メモリ110bからパラメータscを読み込み、seedとmとscのビット結合値のハッシュ値cc=G(seed,m,sc)を算出し、このccをパラメータasとしてパラメータ記憶メモリ110bに格納する点のみである。
<Verifier-designated signature processing>
The difference from the first embodiment is that, instead of step S1 of the first embodiment, the first hash calculation unit 510e of the verifier-designated signature generation apparatus 510 reads the secret value seed from the secret value storage memory 110a, and the message storage memory The message m is read from 110d, the parameter sc is read from the parameter storage memory 110b, the hash value cc = G (seed, m, sc) of the bit combination value of seed, m, and sc is calculated, and this cc is used as the parameter as It is only a point stored in the storage memory 110b.

<署名検証処理>
実施例1と同じである。
<署名者による自己証明処理>
図18は、本実施例における自己証明処理を説明するためのフローチャートである。なお、このフローチャートは、特定の署名検証者以外の第三者が利用する第三者端末装置530における処理を示している。
まず、第三者端末装置530は、実施例1と同様に、署名受信部131において検証者指定署名σ=(C,cc,sc,cs,ss)を受信し(ステップS81)、秘密値受信部132において秘密値seedを受信する(ステップS82)。なお、受信された検証者指定署名σ及び秘密値seedは、一時メモリ134に格納される。次に、自己証明部533のハッシュ演算部533aにおいて、一時メモリ134から秘密値seedとメッセージmとscとを読み込み、それらのビット結合値のハッシュ値G(seed,m,sc)を算出する(ステップS83)。次に、比較部533bにおいて、一時メモリ134からccを読み込み、cc=G(seed,m,sc)であるか否かを判断する(ステップS84)。ここで、cc=G(seed,m,sc)であれば、自己証明部533は、証明が成功である旨の情報を出力し(ステップS85)、制御部135は第三者端末装置530の処理を終了させる。一方、cc=G(seed,m,sc)でない場合、自己証明部533は、証明が失敗であるの情報を出力し(ステップS86)、制御部135は第三者端末装置530の処理を終了させる。
<Signature verification processing>
Same as Example 1.
<Self-certification processing by the signer>
FIG. 18 is a flowchart for explaining the self-certification process in the present embodiment. This flowchart shows processing in the third-party terminal device 530 used by a third party other than a specific signature verifier.
First, the third party terminal device 530 receives the verifier-designated signature σ = (C, cc, sc, cs, ss) at the signature receiving unit 131 as in the first embodiment (step S81), and receives the secret value. The unit 132 receives the secret value seed (step S82). The received verifier-designated signature σ and secret value seed are stored in the temporary memory 134. Next, in the hash calculation unit 533a of the self-certification unit 533, the secret value seed and the message m and sc are read from the temporary memory 134, and the hash value G (seed, m, sc) of these bit combination values is calculated ( Step S83). Next, the comparison unit 533b reads cc from the temporary memory 134, and determines whether or not cc = G (seed, m, sc) (step S84). Here, if cc = G (seed, m, sc), the self-certifying unit 533 outputs information indicating that the certification is successful (step S85), and the control unit 135 determines that the third-party terminal device 530 End the process. On the other hand, if not cc = G (seed, m, sc), the self-certifying unit 533 outputs information indicating that the certification has failed (step S86), and the control unit 135 ends the processing of the third party terminal device 530. Let

このような構成とした場合、検証者指定署名σの生成者の検証をより厳密に行うことができる。なお、本実施例では、cc=G(seed,m,sc)として検証者指定者署名σの生成や自己証明を行うこととしたが、sc=G(seed,m,cc)とし、cc∈{0,1}として検証者指定者署名σの生成や自己証明を行うこととしてもよい。また、cc=G(seed,sc)やsc=G(seed,cc)としてこれらの処理を実行することとしてもよい。   With such a configuration, it is possible to more strictly verify the creator of the verifier-designated signature σ. In this embodiment, the verifier designator signature σ is generated and self-certified as cc = G (seed, m, sc). However, sc = G (seed, m, cc) and cc∈ The verifier assigner signature σ may be generated or self-certified as {0, 1}. Also, these processes may be executed as cc = G (seed, sc) or sc = G (seed, cc).

〔実施例5〕
本実施例はRSAタイプの鍵ペアを用いる例である。
<構成>
本実施例の全体構成は図1に例示したものと同様である。ただし、本実施例では、検証者指定署名生成装置10の具体例として検証者指定署名生成装置610を用い、署名検証装置20の具体例として署名検証装置620を用い、第三者端末装置30の具体例として第三者端末装置630を用いた場合を説明する。
<検証者指定署名生成装置610>
図19は、本実施例における検証者指定署名生成装置610の構成を例示したブロック図である。本形態の検証者指定署名生成装置610も実施例1と同様なハードウェア構成をとり(図3参照)、そのCPUに所定のプログラムが読み込まれて実行されることにより、図19に示す構成を実現する。
Example 5
In this embodiment, an RSA type key pair is used.
<Configuration>
The overall configuration of this embodiment is the same as that illustrated in FIG. However, in this embodiment, the verifier-designated signature generation device 610 is used as a specific example of the verifier-designated signature generation device 10, the signature verification device 620 is used as a specific example of the signature verification device 20, and the third-party terminal device 30 The case where the third party terminal device 630 is used as a specific example will be described.
<Verifier-designated signature generation device 610>
FIG. 19 is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus 610 in the present embodiment. The verifier-designated signature generation apparatus 610 of this embodiment also has the same hardware configuration as that of the first embodiment (see FIG. 3), and the configuration shown in FIG. 19 is obtained by reading and executing a predetermined program in the CPU. Realize.

この図に例示するように、検証者指定署名生成装置610は、秘密値記憶メモリ610aと、パラメータ記憶メモリ610bと、鍵記憶メモリ610cと、メッセージ記憶メモリtと、ハッシュ演算部610dと、指数演算部610eと、第1暗号文生成部610fと、第1剰余乗算部610gと、第2暗号文生成部610hと、暗号文送信部と610i、チャレンジ受信部610jと、第2剰余乗算部610kと、署名生成部610mと、署名送信部610nと、秘密値送信部610qと、一時メモリ610rと、制御部610sとを有している。また、第1剰余乗算部610gは、指数演算部610gaと乗算部610gbとを有している。なお、検証者指定署名生成装置610は、制御部610sの制御のもと各処理を実行する。   As illustrated in this figure, the verifier-designated signature generation device 610 includes a secret value storage memory 610a, a parameter storage memory 610b, a key storage memory 610c, a message storage memory t, a hash operation unit 610d, and an exponent operation. Unit 610e, first ciphertext generation unit 610f, first residue multiplication unit 610g, second ciphertext generation unit 610h, ciphertext transmission unit and 610i, challenge reception unit 610j, second residue multiplication unit 610k, , A signature generation unit 610m, a signature transmission unit 610n, a secret value transmission unit 610q, a temporary memory 610r, and a control unit 610s. In addition, the first remainder multiplication unit 610g includes an exponent operation unit 610ga and a multiplication unit 610gb. The verifier-designated signature generation apparatus 610 executes each process under the control of the control unit 610s.

<署名検証装置620>
図20は、本実施例における署名検証装置620の構成を例示したブロック図である。本形態の署名検証装置620も実施例1と同様なハードウェア構成をとり(図3参照)、そのCPUに所定のプログラムが読み込まれて実行されることにより、図20に示す構成を実現する。
この図に例示するように、署名検証装置620は、鍵記憶メモリ622と、暗号文受信部623と、ランダム値生成部624と、チャレンジ送信部625と、署名受信部626と、署名検証部627と、一時メモリ628と、制御部629とを有している。また、署名検証部627は、復号部627aと、比較部627bと、指数演算部627cと、乗算部627dと、比較部627eとを有している。なお、署名検証装置620は、制御部629の制御のもと各処理を実行する。
<Signature Verification Device 620>
FIG. 20 is a block diagram illustrating the configuration of the signature verification apparatus 620 in the present embodiment. The signature verification apparatus 620 of this embodiment also has the same hardware configuration as that of the first embodiment (see FIG. 3), and a predetermined program is read and executed by the CPU, thereby realizing the configuration shown in FIG.
As illustrated in this figure, the signature verification device 620 includes a key storage memory 622, a ciphertext reception unit 623, a random value generation unit 624, a challenge transmission unit 625, a signature reception unit 626, and a signature verification unit 627. A temporary memory 628 and a control unit 629. The signature verification unit 627 includes a decryption unit 627a, a comparison unit 627b, an exponent operation unit 627c, a multiplication unit 627d, and a comparison unit 627e. Note that the signature verification apparatus 620 executes each process under the control of the control unit 629.

<第三者端末装置630>
図21は、本実施例における第三者端末装置630の構成を例示したブロック図である。本形態の第三者端末装置630も実施例1と同様なハードウェア構成をとり(図3参照)、そのCPUに所定のプログラムが読み込まれて実行されることにより、図21に示す構成を実現する。
この図に例示するように、第三者端末装置630は、署名受信部631と、秘密値受信部632と、自己証明部633と、一時メモリ634と、鍵記憶メモリ635と、制御部636とを有している。また、自己証明部633は、ハッシュ演算部633aと、指数演算部633bと、比較部633cとを有している。なお、第三者端末装置630は、制御部636の制御のもと各処理を実行する。
<Third-party terminal device 630>
FIG. 21 is a block diagram illustrating the configuration of the third party terminal device 630 in the present embodiment. The third-party terminal device 630 of this embodiment also has the same hardware configuration as that of the first embodiment (see FIG. 3), and the configuration shown in FIG. 21 is realized by reading and executing a predetermined program in the CPU. To do.
As illustrated in this figure, the third party terminal device 630 includes a signature receiving unit 631, a secret value receiving unit 632, a self-certifying unit 633, a temporary memory 634, a key storage memory 635, a control unit 636, have. The self-certifying unit 633 includes a hash calculation unit 633a, an exponent calculation unit 633b, and a comparison unit 633c. The third-party terminal device 630 executes each process under the control of the control unit 636.

<前処理>
署名の生成・検証処理の前処理として、1種類のハッシュ(hash)関数G:{0,1}*→{0,1}が選択される。このハッシュ関数Gは、検証者指定署名生成装置610を構成するためのプログラムのコード及び第三者端末装置630を構成するためのプログラムのコードに書き込まれる。そして、これらのプログラムが前述のようにCPUに読み込まれることにより、各装置におけるハッシュ演算が可能になる。
また、検証者指定署名生成装置610の秘密鍵xs及び公開鍵ys,nの鍵ペアと、署名検証装置620の秘密鍵xc及び公開鍵yc,nの鍵ペアとが設定される。本実施例では、RSAタイプの署名と同様な鍵ペアを設定する。すなわち、p,qを大きな素数とし、n=p・qとし、xs・ys=1mod n及びxc・yc=1 mod nを満たす鍵ペアとを設定する。
<Pretreatment>
As pre-processing of signature generation / verification processing, one type of hash function G: {0, 1} * → {0, 1} L is selected. This hash function G is written in the program code for configuring the verifier-designated signature generation apparatus 610 and the program code for configuring the third-party terminal apparatus 630. And these programs are read by CPU as mentioned above, and the hash calculation in each apparatus is attained.
In addition, the private key xs and public key ys, n key pair of the verifier designated signature generation apparatus 610 and the private key xc and public key yc, n key pair of the signature verification apparatus 620 are set. In this embodiment, a key pair similar to the RSA type signature is set. That is, p and q are large prime numbers, n = p · q, and a key pair satisfying xs · ys = 1 mod n and xc · yc = 1 mod n is set.

そして、検証者指定署名生成装置610の鍵記憶メモリ610cには、このように設定された検証者指定署名生成装置610の秘密鍵xs(署名生成者の秘密鍵)と公開鍵nと署名検証装置620の公開鍵yc(特定の署名検証者の公開鍵)とが格納される。また、署名検証装置620の鍵記憶メモリ622には、検証者指定署名生成装置610の公開鍵ys,n(署名生成者の公開鍵)と署名検証装置620の秘密鍵xc(特定の署名検証者の公開鍵)とが格納される。さらに、第三者端末装置630の鍵記憶メモリ635には、検証者指定署名生成装置610の公開鍵ysが格納される。加えて、RSAの暗号化プログラムが検証者指定署名生成装置610を構成するためのプログラムのコードに書き込まれ、その復号プログラムが署名検証装置620を構成するためのプログラムのコードに書き込まれる。そして、これらのプログラムが前述のようにCPUに読み込まれることにより、各装置における暗号化演算及び復号演算が可能になる。   The key storage memory 610c of the verifier-designated signature generation device 610 stores the secret key xs (signature generator's private key), the public key n, and the signature verification device of the verifier-designated signature generation device 610 thus set. 620 public key yc (public key of a specific signature verifier) is stored. Also, the key storage memory 622 of the signature verification device 620 includes the public key ys, n (public key of the signature generator) of the verifier designated signature generation device 610 and the private key xc (specific signature verifier of the signature verification device 620). Public key). Further, the key storage memory 635 of the third party terminal device 630 stores the public key ys of the verifier designated signature generation device 610. In addition, the RSA encryption program is written in the program code for configuring the verifier-designated signature generation apparatus 610, and the decryption program is written in the program code for configuring the signature verification apparatus 620. Then, these programs are read into the CPU as described above, thereby enabling the encryption operation and the decryption operation in each device.

また、署名生成者において任意の秘密値seed∈{0,1}を設定し、それを秘密値記憶メモリ610aに安全に(外部に対して秘密に)格納する。さらに、検証者指定署名生成装置610のメッセージ記憶メモリ610tには署名対象のメッセージm∈{0,1}が格納される。
<検証者指定署名処理>
次に、検証者指定署名生成装置610において行われる検証者指定署名処理について説明する。
Further, an arbitrary secret value seed ∈ {0, 1} L is set in the signature generator, and it is stored securely (secretly with respect to the outside) in the secret value storage memory 610a. Further, a message mε {0, 1} L to be signed is stored in the message storage memory 610t of the verifier designated signature generation apparatus 610.
<Verifier-designated signature processing>
Next, a verifier designated signature process performed in the verifier designated signature generation apparatus 610 will be described.

図22は、本実施例における検証者指定署名処理を説明するためのフローチャートである。以下、この図に沿って本実施例における検証者指定署名処理を説明する。
まず、検証者指定署名生成装置610のハッシュ演算部610dにおいて、秘密値記憶メモリ610aから秘密値seedを読み込み、そのハッシュ値cc=G(seed)を算出し、それを一時メモリ610rに格納する(ステップS101)。次に、指数演算部610eにおいて、鍵記憶メモリ610cから公開鍵ys,nを読み込み、一時メモリ610rからccを読み込む。そして、指数演算部610eは、ac=ccysmod nの演算を行い、その演算結果acを一時メモリ610rに格納する(ステップS102)。次に、第1暗号文生成部610fにおいて、鍵記憶メモリ610cから署名検証者の公開鍵ycを読み込み、一時メモリ610rからccを読み込む。そして、第1暗号文生成部610fは、公開鍵ycを用い、ハッシュ値ccを公開鍵暗号方式(この例ではRSA)で暗号化した暗号文e0=Eyc(cc)を算出し、このe0を一時メモリ610rに格納する(ステップS103)。次に、第1剰余乗算部610gの指数演算部610gaにおいて、メッセージ記憶メモリ610tからメッセージmを読み込み、鍵記憶メモリ610cから秘密鍵xsを読み込み、mxsを算出する。この演算結果mxsは、一時メモリ610rに格納される。次に、第1剰余乗算部610gの乗算部610gbにおいて、一時メモリ610rからccとmxsを読み込み、cc・mxsを算出して一時メモリ610rに格納する。次に、第2暗号文生成部610hにおいて、鍵記憶メモリ610cから公開鍵ycを読み込み、一時メモリ610rからcc・mxsを読み込む。そして、第2暗号文生成部610hは、この公開鍵ycを用いてcc・mxsを公開鍵暗号方式(この例ではRSA)で暗号化した暗号文e1=Eyc(cc・mxs)を算出し(ステップS104)、これを一時メモリ610rに格納する。
FIG. 22 is a flowchart for explaining the verifier-designated signature processing in the present embodiment. Hereinafter, the verifier designated signature process in the present embodiment will be described with reference to this figure.
First, the hash calculator 610d of the verifier-designated signature generation device 610 reads the secret value seed from the secret value storage memory 610a, calculates the hash value cc = G (seed), and stores it in the temporary memory 610r ( Step S101). Next, the exponent operation unit 610e reads the public key ys, n from the key storage memory 610c and reads cc from the temporary memory 610r. Then, exponent operation unit 610e performs an operation of ac = cc ys mod n, and stores the operation result ac in temporary memory 610r (step S102). Next, in the first ciphertext generation unit 610f, the signature verifier's public key yc is read from the key storage memory 610c, and cc is read from the temporary memory 610r. Then, the first ciphertext generation unit 610f uses the public key yc to calculate a ciphertext e0 = E yc (cc) obtained by encrypting the hash value cc with the public key cryptosystem (RSA in this example), and this e0 Is stored in the temporary memory 610r (step S103). Next, in the exponent operation unit 610ga of the first remainder multiplication unit 610g, the message m is read from the message storage memory 610t, the secret key xs is read from the key storage memory 610c, and m xs is calculated. The calculation result m xs is stored in the temporary memory 610r. Then, the multiplication unit 610gb of the first modular multiplication unit 610 g, from the temporary memory 610r reads cc and m xs, stored in the temporary memory 610r calculates the cc · m xs. Next, in the second ciphertext generating unit 610h, reads the public key yc from the key storage memory 610c, read cc · m xs from the temporary memory 610r. Then, the second ciphertext generation unit 610h uses the public key yc to encrypt a ciphertext e1 = E yc (cc · m xs ) obtained by encrypting cc · m xs with a public key cryptosystem (RSA in this example). Calculate (step S104) and store it in the temporary memory 610r.

次に、一時メモリ610rから暗号文送信部610iに暗号文(ac,e0,e1)が読み込まれ、暗号文送信部610iは、暗号文(ac,e0,e1)を、ネットワーク40を通じ、署名検証装置620に送信する(ステップS105)。これに対し、署名検証装置620は、暗号文受信部623においてこの暗号文(ac,e0,e1)を受信し、一時メモリ628に格納する。そして、ランダム値生成部624においてランダム値b∈{0,1}を生成し、一時メモリ628に格納する。そしてチャレンジ送信部625において、このランダム値bを、ネットワーク40を通じ、検証者指定署名生成装置610に送信する。   Next, the ciphertext (ac, e0, e1) is read from the temporary memory 610r to the ciphertext transmission unit 610i, and the ciphertext transmission unit 610i verifies the ciphertext (ac, e0, e1) through the network 40. It transmits to the apparatus 620 (step S105). On the other hand, the signature verification apparatus 620 receives the ciphertext (ac, e0, e1) at the ciphertext receiving unit 623 and stores it in the temporary memory 628. Then, the random value generation unit 624 generates a random value bε {0, 1} and stores it in the temporary memory 628. Then, the challenge transmission unit 625 transmits the random value b to the verifier designated signature generation device 610 through the network 40.

検証者指定署名生成装置610は、チャレンジ受信部610jにおいて、このランダム値bを受信して一時メモリ610rに格納する(ステップS106)。次に、第2剰余乗算部610kにおいて、鍵記憶メモリ610cから公開鍵nを読み込み、一時メモリ610rからcc,mxs,bを読み込む。そして、第2剰余乗算部610kは、c=cc・(mxs mod nを計算し、その演算結果cを一時メモリ610rに格納する(ステップS107)。次に、署名生成部610mにおいて、一時メモリ610rからac,c,bを読み込み、検証者指定署名σ=(ac,c,b)を生成する(ステップS108)。そして、署名送信部610nにおいて、この検証者指定署名σをメッセージ記憶メモリ610tから読み込まれたメッセージmとともに、ネットワーク40を通じ、署名検証装置620に送信する(ステップS109)。 The verifier designated signature generation apparatus 610 receives the random value b at the challenge receiving unit 610j and stores it in the temporary memory 610r (step S106). Next, in the second remainder multiplication unit 610k, the public key n is read from the key storage memory 610c, and cc, m xs , b are read from the temporary memory 610r. Then, the second remainder multiplication unit 610k calculates c = cc · (m xs ) b mod n, and stores the calculation result c in the temporary memory 610r (step S107). Next, the signature generation unit 610m reads ac, c, b from the temporary memory 610r and generates a verifier-designated signature σ = (ac, c, b) (step S108). The signature transmission unit 610n transmits the verifier-designated signature σ together with the message m read from the message storage memory 610t to the signature verification apparatus 620 through the network 40 (step S109).

<署名検証処理>
次に、署名検証装置620における署名検証処理を説明する。
図23は、本実施例における署名検証装置620の署名検証処理を説明するためのフローチャートである。以下、この図に沿ってこの署名検証処理を説明する。
まず、署名検証装置620は、署名受信部626において、上述のようにネットワーク40を通じて送信された検証者指定署名σ=(ac,c,b)とメッセージmとを受信する(ステップS111)。そして、これらは一時メモリ628に格納される。次に、署名検証部627の復号部627aにおいて、Decxc(eb)(b=0:eb=e0,b=1:eb=e1)を算出する(ステップS112)。即ち、まず復号部627aにおいて、一時メモリ628からbを読み込み、その値を判定する。ここでb=0であった場合、復号部627aは、e0をebとして一時メモリ628から読み込み、b=1であった場合、復号部627aは、e1をebとして一時メモリ628から読み込む。また、鍵記憶メモリ622から秘密鍵xcを読み込み、この秘密鍵xcを用い、RSAの復号方式に従いebを復号したDecxc(eb)を算出する。
<Signature verification processing>
Next, a signature verification process in the signature verification apparatus 620 will be described.
FIG. 23 is a flowchart for explaining the signature verification processing of the signature verification apparatus 620 in this embodiment. The signature verification process will be described below with reference to this figure.
First, the signature verification apparatus 620 receives the verifier-designated signature σ = (ac, c, b) and the message m transmitted through the network 40 as described above at the signature receiving unit 626 (step S111). These are stored in the temporary memory 628. Next, the decryption unit 627a of the signature verification unit 627 calculates Dec xc (eb) (b = 0: eb = e0, b = 1: eb = e1) (step S112). That is, first, the decoding unit 627a reads b from the temporary memory 628 and determines its value. Here, when b = 0, the decoding unit 627a reads e0 from the temporary memory 628 as eb, and when b = 1, the decoding unit 627a reads e1 from the temporary memory 628 as eb. Also, the private key xc is read from the key storage memory 622, and Dec xc (eb) obtained by decrypting eb according to the RSA decryption method is calculated using the private key xc.

次に、署名検証部627の比較部627bにおいて、さらに一時メモリ628からcを読み込み、Decxc(eb)=cであるか否かを判断する(ステップS113)。ここで、Decxc(eb)=cでなかった場合、署名検証部627は、認証が失敗である旨の情報を出力し(ステップS118)、制御部629は署名検証装置620での処理を終了する。一方、Decxc(eb)=cであった場合、署名検証部627の指数演算部627cにおいて、一時メモリ628からcを読み込み、鍵記憶メモリ622から公開鍵ysを読み込む。そして、指数演算部627cは、cysの演算を行い、その演算結果を一時メモリ628に格納する(ステップS114)。また、乗算部627dにおいて、一時メモリ628からac,m,bを読み込み、鍵記憶メモリ622から公開鍵nを読み込む。そして、乗算部627dは、ac・mmod nを算出する。そして、比較部627eにおいて、さらに一時メモリ628からcysを読み込み、cys=ac・mmod nであるか否かを判断する(ステップS116)。ここで、cys=ac・mmod nでなかった場合、署名検証部627は、認証が失敗である旨の情報を出力し(ステップS118)、制御部629は署名検証装置620での処理を終了する。一方、cys=ac・mmod nであった場合、署名検証部627は、認証が成功である旨の情報を出力し(ステップS117)、制御部629は署名検証装置620での処理を終了する。 Next, the comparison unit 627b of the signature verification unit 627 further reads c from the temporary memory 628, and determines whether Dec xc (eb) = c (step S113). If Dec xc (eb) = c is not satisfied, the signature verification unit 627 outputs information indicating that the authentication has failed (step S118), and the control unit 629 terminates the processing in the signature verification device 620. To do. On the other hand, when Dec xc (eb) = c, the exponent operation unit 627c of the signature verification unit 627 reads c from the temporary memory 628 and reads the public key ys from the key storage memory 622. Then, the exponent calculation unit 627c calculates c ys and stores the calculation result in the temporary memory 628 (step S114). Further, the multiplication unit 627 d reads ac, m, b from the temporary memory 628 and reads the public key n from the key storage memory 622. Then, the multiplication unit 627d calculates ac · m b mod n. Then, the comparison unit 627e further reads c ys from the temporary memory 628, and determines whether c ys = ac · m b mod n (step S116). Here, when c ys = ac · m b mod n is not satisfied, the signature verification unit 627 outputs information indicating that the authentication has failed (step S118), and the control unit 629 performs processing in the signature verification device 620. Exit. On the other hand, if c ys = ac · m b mod n, the signature verification unit 627 outputs information indicating that the authentication is successful (step S117), and the control unit 629 performs the processing in the signature verification device 620. finish.

なお、本実施例では、
Decxc(eb)=c …(1)
ys=ac・m mod n …(2)
の両方を満たす場合に認証成功とする。以下にこの理由について説明する。
b=0であった場合:
この場合eb=e0であるから、検証者指定署名σ=(ac,c,b)が正しいならば、式(1)の左辺はccとなる(ステップS103参照)。また、b=0であるから式(1)の右辺はcc mod nとなる(ステップS107参照)。また、b=0の場合、式(2)の左辺はccys mod nとなる(ステップS107参照)。また、b=0であるから式(2)の右辺は、ac mod n=ccysmod nとなる(ステップS102)。
In this example,
Dec xc (eb) = c (1)
c ys = ac · m b mod n (2)
If both of these are satisfied, authentication is considered successful. The reason for this will be described below.
If b = 0:
In this case, since eb = e0, if the verifier-designated signature σ = (ac, c, b) is correct, the left side of equation (1) is cc (see step S103). Since b = 0, the right side of the equation (1) is cc mod n (see step S107). When b = 0, the left side of Equation (2) is cc ys mod n (see step S107). Further, since b = 0, the right side of the equation (2) is ac mod n = cc ys mod n (step S102).

b=1であった場合:
この場合eb=e1であるから、検証者指定署名σ=(ac,c,b)が正しいならば、式(1)の左辺はcc・mxsとなる(ステップS104参照)。また、b=1であるから式(1)の右辺はc=cc・mxsmod nとなる(ステップS107参照)。
また、b=1の場合、式(2)の左辺は(cc・mxsysとなる(ステップS107参照)。また、c=cc・mxsmod nであるから、式(2)の左辺は、(cc・mxsysmod nとなり、RSAの鍵の性質によりmxsys=mとなるから、式(2)の左辺は、ccys・m mod n=ac・m mod n(ステップS102参照)となる。また、b=1であるから式(2)の右辺はac・mmod nとなる。
If b = 1:
In this case, since eb = e1, if the verifier-designated signature σ = (ac, c, b) is correct, the left side of equation (1) is cc · mxs (see step S104). Further, since b = 1, the right side of the equation (1) is c = cc · mxs mod n (see step S107).
When b = 1, the left side of Equation (2) is (cc · m xs ) ys (see step S107). Since c = cc · m xs mod n, the left side of the equation (2) becomes (cc · m xs ) ys mod n, and m xs · ys = m due to the nature of the RSA key. The left side of (2) is cc ys · m mod n = ac · m mod n (see step S102). Since b = 1, the right side of the equation (2) is ac · mmod n.

以上より、検証者指定署名σ=(ac,c,b)が正しいならば、式(1)(2)が成り立つことが分かる。なお、式(1)(2)は、検証者指定署名σ=(ac,c,b)が検証者指定署名生成装置610若しくは署名検証装置620の何れかで生成されたことを示している。しかし、署名検証装置620の利用者は、検証者指定署名σ=(ac,c,b)を署名検証装置620で生成していないことを知っている。よって、署名検証装置620の利用者は、検証者指定署名σが検証者指定署名生成装置610で生成されたことを認識できる。一方、任意の第三者は、署名検証装置620の秘密鍵xcを知らないため式(1)の左辺の復号演算を行うことができず、署名検証を行うことができない。   From the above, it can be seen that if the verifier-designated signature σ = (ac, c, b) is correct, equations (1) and (2) hold. Expressions (1) and (2) indicate that the verifier-designated signature σ = (ac, c, b) is generated by either the verifier-designated signature generation device 610 or the signature verification device 620. However, the user of the signature verification device 620 knows that the signature verification device 620 has not generated the verifier-designated signature σ = (ac, c, b). Therefore, the user of the signature verification device 620 can recognize that the verifier-designated signature σ is generated by the verifier-designated signature generation device 610. On the other hand, since an arbitrary third party does not know the secret key xc of the signature verification apparatus 620, it cannot perform the decryption operation on the left side of Expression (1), and cannot perform the signature verification.

<署名者による自己証明処理>
図24は、本実施例における自己証明処理を説明するためのフローチャートである。なお、このフローチャートは、特定の署名検証者以外の第三者が利用する第三者端末装置630における処理を示している。
まず、検証者指定署名生成装置610は、自ら生成した検証者指定署名σが当該検証者指定署名生成装置610で生成されたことを特定の署名検証者以外の第三者に対して証明する際に、その第三者が利用する第三者端末装置630に対し、検証者指定署名σ=(ac,c,b)と秘密値seedとネットワーク40を通じて送信する。
<Self-certification processing by the signer>
FIG. 24 is a flowchart for explaining the self-certification process in the present embodiment. Note that this flowchart shows processing in the third-party terminal device 630 used by a third party other than a specific signature verifier.
First, the verifier designated signature generation device 610 proves to a third party other than a specific signature verifier that the verifier designated signature σ generated by the verifier designated signature σ is generated by the verifier designated signature generation device 610. In addition, the verifier-designated signature σ = (ac, c, b), the secret value seed, and the network 40 are transmitted to the third-party terminal device 630 used by the third party.

第三者端末装置630は、この検証者指定署名生成装置610から送信された検証者指定署名σ=(ac,c,b)と秘密値seedとを、署名受信部631及び秘密値受信部632でそれぞれ受信し、一時メモリ634に格納する(ステップS121,122)。次に、自己証明部633のハッシュ演算部633aにおいて、一時メモリ634から秘密値seedを読み込み、そのハッシュ値G(seed)を算出する(ステップS123)。さらに指数演算部633bにおいて、鍵記憶メモリ635から公開鍵ysを読み込み、ステップS123で算出されたG(seed)に対して{G(seed)}ysを算出する(ステップS124)。そして、さらに比較部633cにおいて、一時メモリ634からacを読み込み、ac={G(seed)}ysであるか否かを判断する(ステップS125)。ここで、ac={G(seed)}ysであれば、自己証明部633は、証明が成功である旨の情報を出力し(ステップS126)、制御部636は第三者端末装置630の処理を終了させる。一方、ac={G(seed)}ysでない場合、自己証明部633は、証明が失敗であるの情報を出力し(ステップS127)、制御部635は第三者端末装置630の処理を終了させる。 The third-party terminal device 630 uses the verifier-designated signature σ = (ac, c, b) and the secret value seed transmitted from the verifier-designated signature generation device 610 as the signature receiver 631 and the secret value receiver 632. And stored in the temporary memory 634 (steps S121 and 122). Next, the hash value calculation unit 633a of the self-certification unit 633 reads the secret value seed from the temporary memory 634 and calculates the hash value G (seed) (step S123). Further, the exponent operation unit 633b reads the public key ys from the key storage memory 635, and calculates {G (seed)} ys with respect to G (seed) calculated in step S123 (step S124). Further, the comparison unit 633c reads ac from the temporary memory 634, and determines whether or not ac = {G (seed)} ys (step S125). Here, if ac = {G (seed)} ys , the self-certifying unit 633 outputs information indicating that the certification is successful (step S126), and the control unit 636 performs processing of the third party terminal device 630. End. On the other hand, if ac = {G (seed)} ys is not true, the self-certification unit 633 outputs information indicating that the proof is unsuccessful (step S127), and the control unit 635 terminates the process of the third party terminal device 630. .

第三者端末装置630は、検証者指定署名生成装置610から秘密値seedを示された場合、第三者端末装置630は、検証者指定署名σが検証者指定署名生成装置610で生成されたものであるか否かを知ることができる。すなわち、検証者指定署名生成装置610の利用者(署名生成者)以外の者が検証者指定署名σを生成したことを偽ろうとしても、この者はac={G(seed)}ysを満たすようなseedを示すことができない為、検証者指定署名σの生成者であることを偽ることができない。よって、第三者端末装置630は、ac={G(seed)}ysを満たすseedを提示できた検証者指定署名生成装置610が、確かに検証者指定署名σの生成者であると判断できる。 When the third party terminal device 630 receives the secret value seed from the verifier designated signature generation device 610, the third party terminal device 630 generates the verifier designated signature σ generated by the verifier designated signature generation device 610. You can know whether it is a thing. That is, even if a person other than the user (signature generator) of the verifier-designated signature generation apparatus 610 tries to fake that the verifier-designated signature σ is generated, this person satisfies ac = {G (seed)} ys . Since such seed cannot be indicated, it cannot be false that the verifier-designated signature σ is generated. Therefore, the third-party terminal device 630 can determine that the verifier-designated signature generation device 610 that has been able to present seed that satisfies ac = {G (seed)} ys is indeed the creator of the verifier-designated signature σ. .

なお、本形態においてeoをe1と呼び、e1をe0と呼び、e1に対してb=0の場合の処理を行い、e0に対してb=1の場合の処理を実行することとしてもよい。
〔実施例6〕
本実施例もRSAタイプの鍵ペアを用いる例である。
<構成>
本実施例の全体構成は図1に例示したものと同様である。ただし、本実施例では、検証者指定署名生成装置10の具体例として検証者指定署名生成装置710を用い、署名検証装置20の具体例として署名検証装置720を用い、第三者端末装置30の具体例として第三者端末装置730を用いた場合を説明する。
In this embodiment, eo may be referred to as e1, e1 may be referred to as e0, processing for b = 0 may be performed for e1, and processing for b = 1 may be performed for e0.
Example 6
This embodiment is also an example using an RSA type key pair.
<Configuration>
The overall configuration of this embodiment is the same as that illustrated in FIG. However, in the present embodiment, the verifier-designated signature generation device 710 is used as a specific example of the verifier-designated signature generation device 10, the signature verification device 720 is used as a specific example of the signature verification device 20, and the third-party terminal device 30 The case where the third party terminal device 730 is used as a specific example will be described.

<検証者指定署名生成装置710>
図25は、本実施例における検証者指定署名生成装置710の構成を例示したブロック図である。本形態の検証者指定署名生成装置710も実施例1と同様なハードウェア構成をとり(図3参照)、そのCPUに所定のプログラムが読み込まれて実行されることにより、図25に示す構成を実現する。
この図に例示するように、検証者指定署名生成装置710は、秘密値記憶メモリ710aと、鍵記憶メモリ710bと、メッセージ記憶メモリ710cと、ハッシュ演算部710dと、第1除算部710eと、第1指数演算部710fと、減算部710gと、第2除算部710hと、第2指数演算部710iと、署名生成部710jと、署名送信部710kと、秘密値送信部710mと、一時メモリ710nと、制御部710pとを有する。なお、検証者指定署名生成装置710は、制御部710pの制御のもと各処理を実行する。
<Verifier-designated signature generation device 710>
FIG. 25 is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus 710 according to this embodiment. The verifier-designated signature generation apparatus 710 of this embodiment also has the same hardware configuration as that of the first embodiment (see FIG. 3), and the configuration shown in FIG. 25 is obtained by reading and executing a predetermined program in the CPU. Realize.
As illustrated in this figure, the verifier-designated signature generation device 710 includes a secret value storage memory 710a, a key storage memory 710b, a message storage memory 710c, a hash calculation unit 710d, a first division unit 710e, 1 exponent operation unit 710f, subtraction unit 710g, second division unit 710h, second exponent operation unit 710i, signature generation unit 710j, signature transmission unit 710k, secret value transmission unit 710m, temporary memory 710n, And a control unit 710p. The verifier-designated signature generation apparatus 710 executes each process under the control of the control unit 710p.

<検証検証装置720>
図26は、本実施例における検証検証装置720の構成を例示したブロック図である。本形態の検証検証装置720も実施例1と同様なハードウェア構成をとり(図3参照)、そのCPUに所定のプログラムが読み込まれて実行されることにより、図26に示す構成を実現する。
この図に例示するように、署名検証装置720は、鍵記憶メモリ721と、署名受信部722と、一時メモリ723と、署名検証部724と、制御部725とを有する。また、署名検証部724は、乗算部724a,724bと、指数演算部724cと、比較部724dとを有する。なお、署名検証装置720は、制御部725の制御のもと各処理を実行する。
<Verification verification device 720>
FIG. 26 is a block diagram illustrating the configuration of the verification / verification apparatus 720 according to the present embodiment. The verification / verification apparatus 720 of the present embodiment also has the same hardware configuration as that of the first embodiment (see FIG. 3), and a predetermined program is read and executed by the CPU, thereby realizing the configuration shown in FIG.
As illustrated in this figure, the signature verification apparatus 720 includes a key storage memory 721, a signature reception unit 722, a temporary memory 723, a signature verification unit 724, and a control unit 725. The signature verification unit 724 includes multiplication units 724a and 724b, an exponent operation unit 724c, and a comparison unit 724d. Note that the signature verification apparatus 720 executes each process under the control of the control unit 725.

<第三者端末装置730>
図27は、本実施例における第三者端末装置730の構成を例示したブロック図である。本形態の第三者端末装置730も実施例1と同様なハードウェア構成をとり(図3参照)、そのCPUに所定のプログラムが読み込まれて実行されることにより、図27に示す構成を実現する。
この図に例示するように、第三者端末装置730は、鍵記憶メモリ736と、署名受信部731と、秘密値受信部732と、自己証明部733と、一時メモリ734と、制御部735とを有する。また、自己証明部733は、ハッシュ演算部733aと、除算部733bと、指数演算部733cと、比較部733dとを有する。なお、第三者端末装置730は、制御部735の制御のもと各処理を実行する。
<Third-party terminal device 730>
FIG. 27 is a block diagram illustrating the configuration of the third party terminal device 730 in the present embodiment. The third-party terminal device 730 of the present embodiment also has the same hardware configuration as that of the first embodiment (see FIG. 3), and the configuration shown in FIG. To do.
As illustrated in this figure, the third-party terminal device 730 includes a key storage memory 736, a signature receiving unit 731, a secret value receiving unit 732, a self-certifying unit 733, a temporary memory 734, a control unit 735, Have The self-certifying unit 733 includes a hash calculation unit 733a, a division unit 733b, an exponent calculation unit 733c, and a comparison unit 733d. The third-party terminal device 730 executes each process under the control of the control unit 735.

<前処理>
署名の生成・検証処理の前処理として、1種類のハッシュ(hash)関数G:{0,1}*→{0,1}が選択される。このハッシュ関数Gは、検証者指定署名生成装置710を構成するためのプログラムのコード及び第三者端末装置730を構成するためのプログラムのコードに書き込まれる。そして、これらのプログラムが前述のようにCPUに読み込まれることにより、各装置におけるハッシュ演算が可能になる。
また、検証者指定署名生成装置710の秘密鍵xs及び公開鍵ys,nの鍵ペアと、署名検証装置720の秘密鍵xc及び公開鍵yc,nの鍵ペアとが設定される。本実施例では、実施例5と同じRSAタイプの署名と同様な鍵ペアを設定する。すなわち、p,qを大きな素数とし、n=p・qとし、xs・ys=1mod n及びxc・yc=1 mod nを満たす鍵ペアとを設定する。
<Pretreatment>
As pre-processing of signature generation / verification processing, one type of hash function G: {0, 1} * → {0, 1} L is selected. This hash function G is written in the program code for configuring the verifier-designated signature generation apparatus 710 and the program code for configuring the third-party terminal apparatus 730. And these programs are read by CPU as mentioned above, and the hash calculation in each apparatus is attained.
In addition, the private key xs and public key ys, n key pair of the verifier-designated signature generation apparatus 710 and the private key xc and public key yc, n key pair of the signature verification apparatus 720 are set. In this embodiment, the same key pair as the RSA type signature as in the fifth embodiment is set. That is, p and q are large prime numbers, n = p · q, and a key pair satisfying xs · ys = 1 mod n and xc · yc = 1 mod n is set.

そして、検証者指定署名生成装置710の鍵記憶メモリ710bには、このように設定された検証者指定署名生成装置710の秘密鍵xs(署名生成者の秘密鍵)と署名検証装置720の公開鍵yc(特定の署名検証者の公開鍵)とが格納される。また、署名検証装置720の鍵記憶メモリ721には、検証者指定署名生成装置710の公開鍵ys(署名生成者の公開鍵)と署名検証装置720の公開鍵yc(特定の署名検証者の公開鍵)とが格納される。さらに、第三者端末装置730の鍵記憶メモリ736には、署名検証装置720の公開鍵ycが格納される。   In the key storage memory 710b of the verifier-designated signature generation device 710, the secret key xs (signature generator's private key) of the verifier-designated signature generation device 710 thus set and the public key of the signature verification device 720 are stored. yc (a public key of a specific signature verifier) is stored. Also, the key storage memory 721 of the signature verification device 720 stores the public key ys (signature generator public key) of the verifier-designated signature generation device 710 and the public key yc of the signature verification device 720 (public of a specific signature verifier). Key) is stored. Further, the public key yc of the signature verification device 720 is stored in the key storage memory 736 of the third party terminal device 730.

また、署名生成者において任意の秘密値seed∈{0,1}を設定し、それを秘密値記憶メモリ710aに安全に(外部に対して秘密に)格納する。さらに、検証者指定署名生成装置710のメッセージ記憶メモリ710cには署名対象のメッセージm∈{0,1}が格納される。
<検証者指定署名処理>
次に、検証者指定署名生成装置710において行われる検証者指定署名処理について説明する。
Further, an arbitrary secret value seed ∈ {0, 1} L is set in the signature generator, and it is stored securely (secretly with respect to the outside) in the secret value storage memory 710a. Further, the message storage memory 710c of the verifier-designated signature generation device 710 stores the message to be signed mε {0, 1} L.
<Verifier-designated signature processing>
Next, a verifier designated signature process performed in the verifier designated signature generation apparatus 710 will be described.

図28は、本実施例における検証者指定署名処理を説明するためのフローチャートである。以下、この図に沿って本実施例における検証者指定署名処理を説明する。
まず、検証者指定署名生成装置710のハッシュ演算部710dにおいて、秘密値記憶メモリ710aから秘密値seedを読み込み、そのハッシュ値cc=G(seed)を算出し、それを一時メモリ610rに格納する(ステップS201)。次に、第1除算部710eにおいて、鍵記憶メモリ710bから公開鍵ycを読み込み、一時メモリ710nからccを読み込む。そして、第1除算部710eは、ac=cc/ycを算出し、その演算結果acを一時メモリ710nに格納する(ステップS202)。次に、第1指数演算部710において、メッセージ記憶メモリ710cからメッセージmを読み込み、一時メモリ710nからacを読み込む。そして、第1指数演算部710fは、sc=macを算出し、その演算結果scを一時メモリ710nに格納する(ステップS203)。次に、減算部710gにおいて、鍵記憶メモリ710bから秘密鍵xsを読み込み、一時メモリ710nからccを読み込む。そして、減算部710gは、cs=xs−ccを算出し、その演算結果csを一時メモリ710nに格納する(ステップS204)。次に、第2除算部710hにおいて、鍵記憶メモリ710bから公開鍵ycを読み込み、一時メモリ710nからcsを読み込む。そして、第2除算部710hは、as=cs/ycを算出し、その演算結果asを一時メモリ710nに格納する(ステップS205)。次に、第2指数演算部710iにおいて、メッセージ記憶メモリ710cからメッセージmを読み込み、一時メモリ710nからasを読み込む。そして、第2指数演算部710iは、ss=masを算出し、その演算結果ssを一時メモリ710nに格納する(ステップS206)。次に、署名生成部710jにおいて、一時メモリ710nからsc,ssを読み出し、検証者指定署名σ=(sc,ss)を生成する(ステップS207)。そして、署名送信部710kにおいて、この検証者指定署名σをメッセージ記憶メモリ710cのメッセージmとともに、ネットワーク40を通じ、署名検証装置720に送信する(ステップS208)。
FIG. 28 is a flowchart for explaining the verifier designated signature processing in the present embodiment. Hereinafter, the verifier designated signature process in the present embodiment will be described with reference to this figure.
First, the hash calculator 710d of the verifier-designated signature generation device 710 reads the secret value seed from the secret value storage memory 710a, calculates the hash value cc = G (seed), and stores it in the temporary memory 610r ( Step S201). Next, the first division unit 710e reads the public key yc from the key storage memory 710b and reads cc from the temporary memory 710n. Then, the first division unit 710e calculates ac = cc / yc and stores the calculation result ac in the temporary memory 710n (step S202). Next, in the first exponent operation unit 710, the message m is read from the message storage memory 710c, and ac is read from the temporary memory 710n. The first exponent calculation unit 710f calculates the sc = m ac, and stores the calculation result sc in the temporary memory 710n (step S203). Next, the subtraction unit 710g reads the secret key xs from the key storage memory 710b and reads cc from the temporary memory 710n. Then, the subtraction unit 710g calculates cs = xs−cc, and stores the calculation result cs in the temporary memory 710n (step S204). Next, the second division unit 710h reads the public key yc from the key storage memory 710b and reads cs from the temporary memory 710n. Then, the second division unit 710h calculates as = cs / yc and stores the calculation result as in the temporary memory 710n (step S205). Next, in the second exponent operation unit 710i, the message m is read from the message storage memory 710c, and as is read from the temporary memory 710n. The second exponent calculation unit 710i includes, ss = calculates m the as, and stores the calculation result ss in the temporary memory 710n (step S206). Next, the signature generation unit 710j reads sc and ss from the temporary memory 710n, and generates a verifier-designated signature σ = (sc, ss) (step S207). Then, the signature transmission unit 710k transmits the verifier-designated signature σ together with the message m in the message storage memory 710c to the signature verification apparatus 720 through the network 40 (step S208).

<署名検証処理>
次に、署名検証装置720における署名検証処理を説明する。
図29は、本実施例における署名検証装置720の署名検証処理を説明するためのフローチャートである。以下、この図に沿ってこの署名検証処理を説明する。
まず、署名検証装置720は、署名受信部722において、上述のようにネットワーク40を通じて送信された検証者指定署名σ=(sc,ss)とメッセージmとを受信する(ステップS211)。そして、これらは一時メモリ723に格納される。次に、署名検証部724の乗算部724aにおいて、一時メモリ723からscとssを読み込み、sc・ssを算出する(ステップS212)。また、乗算部724bにおいて、鍵記憶メモリ721から公開鍵yc,ysを読み込み、yc・ysを算出する(ステップS213)。そして、指数演算部724cにおいて、(sc・ss)yc・ysを算出し(ステップS214)、さらに比較部724dにおいて一時メモリ723からメッセージmを読み込んで、m=(sc・ss)yc・ysであるか否かを判断する(ステップS215)。ここで、m=(sc・ss)yc・ysでなかった場合、署名検証部724dは、認証が失敗である旨の情報を出力し(ステップS217)、制御部725は署名検証装置720での処理を終了する。一方、m=(sc・ss)yc・ysであった場合、署名検証部724は、認証が成功である旨の情報を出力し(ステップS216)、制御部715は署名検証装置720での処理を終了する。
<Signature verification processing>
Next, a signature verification process in the signature verification apparatus 720 will be described.
FIG. 29 is a flowchart for explaining the signature verification processing of the signature verification apparatus 720 in this embodiment. The signature verification process will be described below with reference to this figure.
First, the signature verification apparatus 720 receives the verifier-designated signature σ = (sc, ss) and the message m transmitted through the network 40 as described above at the signature receiving unit 722 (step S211). These are stored in the temporary memory 723. Next, the multiplication unit 724a of the signature verification unit 724 reads sc and ss from the temporary memory 723, and calculates sc · ss (step S212). The multiplication unit 724b reads the public keys yc and ys from the key storage memory 721 and calculates yc · ys (step S213). Then, the exponent calculation unit 724c calculates (sc · ss) yc · ys (step S214), and the comparison unit 724d reads the message m from the temporary memory 723, and m = (sc · ss) yc · ys . It is determined whether or not there is (step S215). If m = (sc · ss) yc · ys is not satisfied, the signature verification unit 724d outputs information indicating that the authentication has failed (step S217), and the control unit 725 The process ends. On the other hand, if m = (sc · ss) yc · ys , the signature verification unit 724 outputs information indicating that the authentication is successful (step S216), and the control unit 715 performs processing in the signature verification device 720. Exit.

なお、本実施例では、m=(sc・ss)yc・ysを検証式としている。これは、sc・ss=mas・mac=mas+ac=mxs/ycと変形でき(ステップS202〜S206参照)、この検証式の右辺が、(sc・ss)yc・ys=(mxs/ycyc・ys=mxs・ys=m(RSAの鍵の性質より)と変形できることによるものである。また、この検証式は、検証者指定署名σ=(sc,ss)が検証者指定署名生成装置710若しくは署名検証装置720の何れかで生成されたことを示している。しかし、署名検証装置720の利用者は、検証者指定署名σ=(sc,ss)を署名検証装置720で生成していないことを知っている。よって、署名検証装置720の利用者は、検証者指定署名σが検証者指定署名生成装置710で生成されたことを認識できる。一方、任意の第三者は、検証者指定署名σが検証者指定署名生成装置710若しくは署名検証装置720の何れかで生成されたことは検証できるが、何れにおいて検証者指定署名σが生成されたのかを識別することはできない。 In this embodiment, m = (sc · ss) yc · ys is used as a verification formula. This, sc · ss = m as · m ac = m as + ac = m xs / yc and can transform (see step S202 to S206), the right-hand side of the verification equation is, (sc · ss) yc · ys = ( m xs / yc ) yc · ys = m xs · ys = m (from the nature of the RSA key). The verification expression indicates that the verifier-designated signature σ = (sc, ss) is generated by either the verifier-designated signature generation device 710 or the signature verification device 720. However, the user of the signature verification device 720 knows that the verifier-designated signature σ = (sc, ss) has not been generated by the signature verification device 720. Therefore, the user of the signature verification device 720 can recognize that the verifier-designated signature σ is generated by the verifier-designated signature generation device 710. On the other hand, an arbitrary third party can verify that the verifier-designated signature σ is generated by either the verifier-designated signature generation device 710 or the signature verification device 720, but in which case the verifier-designated signature σ is generated. Cannot be identified.

<署名者による自己証明処理>
図30は、本実施例における自己証明処理を説明するためのフローチャートである。なお、このフローチャートは、特定の署名検証者以外の第三者が利用する第三者端末装置730における処理を示している。
まず、検証者指定署名生成装置710は、自ら生成した検証者指定署名σが当該検証者指定署名生成装置710で生成されたことを特定の署名検証者以外の第三者に対して証明する際に、その第三者が利用する第三者端末装置730に対し、検証者指定署名σ=(sc,ss)と秘密値seedとネットワーク40を通じて送信する。
<Self-certification processing by the signer>
FIG. 30 is a flowchart for explaining the self-certification processing in the present embodiment. Note that this flowchart shows processing in the third-party terminal device 730 used by a third party other than a specific signature verifier.
First, the verifier designated signature generation device 710 proves to a third party other than a specific signature verifier that the verifier designated signature σ generated by the verifier designated signature σ is generated by the verifier designated signature generation device 710. The verifier-designated signature σ = (sc, ss), the secret value seed, and the network 40 are transmitted to the third-party terminal device 730 used by the third party.

第三者端末装置730は、この検証者指定署名生成装置710から送信された検証者指定署名σ=(sc,ss)と秘密値seedとを、署名受信部731及び秘密値受信部732でそれぞれ受信し、一時メモリ734に格納する(ステップS221,222)。次に、自己証明部733のハッシュ演算部733aにおいて、一時メモリ734から秘密値seedを読み込み、そのハッシュ値G(seed)を算出する(ステップS223)。次に、除算部733bにおいて、鍵記憶メモリ736から公開鍵ycを読み込み、A={G(seed)}/ycを算出する(ステップS224)。さらに、指数演算部733cにおいて、一時メモリ734からメッセージmを読み込み、mを算出する(ステップS225)。そして、比較部733dにおいて、さらに一時メモリ734からscを読み込み、sc=mであるか否かを判断する(ステップS226)。ここで、sc=mであれば、自己証明部533は、証明が成功である旨の情報を出力し(ステップS227)、制御部735は第三者端末装置730の処理を終了させる。一方、sc=mでない場合、自己証明部733は、証明が失敗であるの情報を出力し(ステップS228)、制御部735は第三者端末装置730の処理を終了させる。 The third-party terminal device 730 sends the verifier-designated signature σ = (sc, ss) and the secret value seed transmitted from the verifier-designated signature generation device 710 to the signature receiving unit 731 and the secret value receiving unit 732, respectively. It is received and stored in the temporary memory 734 (steps S221 and 222). Next, in the hash calculation unit 733a of the self-certification unit 733, the secret value seed is read from the temporary memory 734, and the hash value G (seed) is calculated (step S223). Next, the division unit 733b reads the public key yc from the key storage memory 736, and calculates A = {G (seed)} / yc (step S224). Furthermore, the exponent calculation unit 733 c, reads the message m from the temporary memory 734, calculates the m A (step S225). Then, the comparison unit 733D, reads sc from further temporary memory 734, it is determined whether sc = m A (step S226). Here, if the sc = m A, the self-certification unit 533 outputs information indicating that certification is successful (step S227), the control unit 735 terminates the processing of the third party terminal apparatus 730. On the other hand, if it is not sc = m A, the self-certification unit 733 outputs information of the certificate is a failure (step S228), the control unit 735 terminates the processing of the third party terminal apparatus 730.

通常、第三者端末装置730は、検証者指定署名生成装置710と署名検証装置720のどちらで検証者指定署名σが生成されたのかを知ることはできない。しかし、検証者指定署名生成装置710から秘密値seedを示された場合、第三者端末装置730は、検証者指定署名σが検証者指定署名生成装置710で生成されたものであるか否かを知ることができる。すなわち、検証者指定署名生成装置710の利用者(署名生成者)以外の者が検証者指定署名σを生成したことを偽ろうとしても、この者はsc=mac=mcc/yc=m{G(seed)/yc}やss=mas=mcs/ys=m(xs−cs)/ys=m(xs−G(seed))/ysを満たすようなseedを示すことができない為、検証者指定署名σの生成者であることを偽ることができない。よって、第三者端末装置730は、cc=G(seed)を満たすseedを提示できた検証者指定署名生成装置710が、確かに検証者指定署名σの生成者であると判断できる。 Normally, the third-party terminal device 730 cannot know whether the verifier-designated signature generation device 710 or the signature verification device 720 has generated the verifier-designated signature σ. However, when the secret value seed is indicated from the verifier-designated signature generation device 710, the third-party terminal device 730 determines whether or not the verifier-designated signature σ is generated by the verifier-designated signature generation device 710. Can know. That is, even if a person other than the user (signature generator) of the verifier-designated signature generation apparatus 710 tries to deceive that the verifier-designated signature σ has been generated, this person is sc = m ac = m cc / yc = m Since {G (seed) / yc} or ss = m as = m cs / ys = m (xs−cs) / ys = m (xs−G (seed)) / ys cannot be indicated Therefore, it is not possible to pretend that this is the generator of the verifier-designated signature σ. Therefore, the third-party terminal device 730 can determine that the verifier-designated signature generation device 710 that has been able to present seed satisfying cc = G (seed) is certainly the creator of the verifier-designated signature σ.

なお、本発明は上述の実施の形態に限定されるものではない。例えば、実施例5,6においてcc=G(seed,m)として、検証者指定署名σの生成や自己証明を行うこととしてもよい。また、上述したのとは別の一般的な暗号アルゴリズムを用いる検証者指定署名生成装置に本発明の概念を適用してもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。   The present invention is not limited to the embodiment described above. For example, in the fifth and sixth embodiments, cc = G (seed, m) may be used to generate the verifier-designated signature σ or perform self-certification. Further, the concept of the present invention may be applied to a verifier-designated signature generation apparatus that uses a general encryption algorithm different from the above. Needless to say, other modifications are possible without departing from the spirit of the present invention. In addition, the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.

また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
Further, when the above-described configuration is realized by a computer, processing contents of functions that each device should have are described by a program. And a processing function is implement | achieved on a computer by running this program with a computer.
The program describing the processing contents can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, the magnetic recording device may be a hard disk device or a flexible Discs, magnetic tapes, etc. as optical disks, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. As the magneto-optical recording medium, MO (Magneto-Optical disc) or the like can be used, and as the semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like can be used.

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

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

本発明の利用分野としては、例えば、電子文書によって交わされる電子契約への電子署名等を例示できる。   As an application field of the present invention, for example, an electronic signature for an electronic contract exchanged by an electronic document can be exemplified.

図1は、本形態の検証者指定署名システムの全体構成を例示した概念図である。FIG. 1 is a conceptual diagram illustrating the overall configuration of a verifier-designated signature system according to this embodiment. 図2(a)は、図1に例示した検証者指定署名生成装置の構成を例示したブロック図である。図2(b)は、図1に例示した第三者端末装置の構成を例示したブロック図である。FIG. 2A is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus illustrated in FIG. FIG. 2B is a block diagram illustrating the configuration of the third-party terminal device illustrated in FIG. 図3は、実施例1における検証者指定署名生成装置の構成を例示したブロック図である。FIG. 3 is a block diagram illustrating the configuration of the verifier-designated signature generation apparatus according to the first embodiment. 図4は、実施例1における検証者指定署名生成装置の機能構成を例示したブロック図である。FIG. 4 is a block diagram illustrating a functional configuration of the verifier-designated signature generation apparatus according to the first embodiment. 図5は、実施例1における署名検証装置の機能構成を例示したブロック図である。FIG. 5 is a block diagram illustrating a functional configuration of the signature verification apparatus according to the first embodiment. 図6は、実施例1における第三者端末装置の機能構成を例示したブロック図である。FIG. 6 is a block diagram illustrating the functional configuration of the third-party terminal device according to the first embodiment. 図7は、実施例1における検証者指定署名処理を説明するためのフローチャートである。FIG. 7 is a flowchart for explaining a verifier-designated signature process according to the first embodiment. 図8は、実施例1における署名検証装置の署名検証処理を説明するためのフローチャートである。FIG. 8 is a flowchart for explaining the signature verification processing of the signature verification apparatus according to the first embodiment. 図9は、実施例1における自己証明処理を説明するためのフローチャートである。FIG. 9 is a flowchart for explaining the self-certification process in the first embodiment. 図10は、実施例2における検証者指定署名生成装置の機能構成を例示したブロック図である。FIG. 10 is a block diagram illustrating a functional configuration of the verifier-designated signature generation device according to the second embodiment. 図11は、実施例2における第三者端末装置の機能構成を例示したブロック図である。FIG. 11 is a block diagram illustrating a functional configuration of a third party terminal device according to the second embodiment. 図12は、実施例2における自己証明処理を説明するためのフローチャートである。FIG. 12 is a flowchart for explaining self-certification processing in the second embodiment. 図13は、実施例3における検証者指定署名生成装置の機能構成を例示したブロック図である。FIG. 13 is a block diagram illustrating a functional configuration of the verifier-designated signature generation device according to the third embodiment. 図14は、実施例3における第三者端末装置の機能構成を例示したブロック図である。FIG. 14 is a block diagram illustrating a functional configuration of a third party terminal device according to the third embodiment. 図15は、実施例3における自己証明処理を説明するためのフローチャートである。FIG. 15 is a flowchart for explaining self-certification processing in the third embodiment. 図16は、実施例4における検証者指定署名生成装置の機能構成を例示したブロック図である。FIG. 16 is a block diagram illustrating a functional configuration of the verifier-designated signature generation device according to the fourth embodiment. 図17は、実施例4における第三者端末装置の機能構成を例示したブロック図である。FIG. 17 is a block diagram illustrating a functional configuration of a third party terminal device according to the fourth embodiment. 図18は、実施例4における自己証明処理を説明するためのフローチャートである。FIG. 18 is a flowchart for explaining the self-certification process in the fourth embodiment. 図19は、実施例5における検証者指定署名生成装置の機能構成を例示したブロック図である。FIG. 19 is a block diagram illustrating a functional configuration of the verifier-designated signature generation device according to the fifth embodiment. 図20は、実施例5における署名検証装置の機能構成を例示したブロック図である。FIG. 20 is a block diagram illustrating a functional configuration of the signature verification apparatus according to the fifth embodiment. 図21は、実施例5における第三者端末装置の機能構成を例示したブロック図である。FIG. 21 is a block diagram illustrating a functional configuration of a third party terminal device according to the fifth embodiment. 図22は、実施例5における検証者指定署名処理を説明するためのフローチャートである。FIG. 22 is a flowchart for explaining a verifier-designated signature process according to the fifth embodiment. 図23は、実施例5における署名検証装置の署名検証処理を説明するためのフローチャートである。FIG. 23 is a flowchart for explaining the signature verification processing of the signature verification apparatus according to the fifth embodiment. 図24は、実施例5における自己証明処理を説明するためのフローチャートである。FIG. 24 is a flowchart for explaining the self-certification process in the fifth embodiment. 図25は、実施例6における検証者指定署名生成装置の機能構成を例示したブロック図である。FIG. 25 is a block diagram illustrating a functional configuration of a verifier-designated signature generation device according to the sixth embodiment. 図26は、実施例6における署名検証装置の機能構成を例示したブロック図である。FIG. 26 is a block diagram illustrating a functional configuration of the signature verification apparatus according to the sixth embodiment. 図27は、実施例6における第三者端末装置の機能構成を例示したブロック図である。FIG. 27 is a block diagram illustrating a functional configuration of a third party terminal device according to the sixth embodiment. 図28は、実施例6における検証者指定署名処理を説明するためのフローチャートである。FIG. 28 is a flowchart for explaining a verifier-designated signature process according to the sixth embodiment. 図29は、実施例6における署名検証装置の署名検証処理を説明するためのフローチャートである。FIG. 29 is a flowchart for explaining the signature verification processing of the signature verification apparatus according to the sixth embodiment. 図30は、実施例6における自己証明処理を説明するためのフローチャートである。FIG. 30 is a flowchart for explaining self-certification processing in the sixth embodiment.

符号の説明Explanation of symbols


1 検証者指定署名システム
10,110,210,410,510,610,710 検証者指定署名生成装置
20,120,620,720 署名検証装置
30,130,230,430,530,630,730 第三者端末装置

1 Verifier-designated signature system 10, 110, 210, 410, 510, 610, 710 Verifier-designated signature generation device 20, 120, 620, 720 Signature verification device 30, 130, 230, 430, 530, 630, 730 Third Terminal device

Claims (14)

特定の署名検証者が指定された検証者指定署名を生成する検証者指定署名生成装置であって、
署名生成者の秘密値を格納する秘密値記憶メモリと、
少なくとも署名生成者の秘密鍵と上記特定の署名検証者の公開鍵とを格納する鍵記憶メモリと、
上記秘密値を含む情報のハッシュ値を算出するハッシュ演算部と、
少なくとも上記ハッシュ値と上記署名生成者の秘密鍵と上記特定の署名検証者の公開鍵とを用い、上記ハッシュ値又は上記ハッシュ値を用いて得られた関数値を含み、上記特定の署名検証者のみが上記秘密値を用いることなく検証可能な検証者指定署名を生成する署名生成部と、
上記検証者指定署名を送信する署名送信部と、
上記検証者指定署名が当該検証者指定署名生成装置で生成されたことを上記特定の署名検証者以外の者に対して証明する際に、上記秘密値を上記特定の署名検証者以外の者が利用する第三者端末装置に対して送信する秘密値送信部と、
を有することを特徴とする検証者指定署名生成装置。
A verifier-designated signature generation device that generates a verifier-designated signature in which a specific signature verifier is designated ,
A secret value storage memory for storing the secret value of the signature generator;
A key storage memory for storing at least the private key of the signature generator and the public key of the specific signature verifier;
A hash calculation unit for calculating a hash value of information including the secret value;
Using at least the hash value, the signature generator's private key and the public key of the specific signature verifier, including the hash value or a function value obtained by using the hash value, and the specific signature verifier A signature generation unit that generates a verifier-designated signature that can be verified without using the secret value ;
A signature transmitter that transmits the verifier-designated signature;
When proving that the verifier-designated signature is generated by the verifier-designated signature generation device to a person other than the specific signature verifier, the secret value is obtained by a person other than the specific signature verifier. A secret value transmission unit that transmits to a third-party terminal device to be used ;
A verifier-designated signature generation device characterized by comprising:
特定の署名検証者が指定された検証者指定署名を生成する検証者指定署名生成装置であって、
署名生成者の秘密値を格納する秘密値記憶メモリと、
パラメータas,cc,sc,gを格納するパラメータ記憶メモリと、
署名生成者の秘密鍵xsと上記特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、
署名対象のメッセージmを格納するメッセージ記憶メモリと、
上記秘密値を含む情報のハッシュ値を算出する第1ハッシュ演算部と、
rc=gsc・ycccを算出する剰余乗算部と、
rs=gasを算出する指数演算部と、
上記のrsとrcとmとのビット結合値のハッシュ値C=H(rs,rc,m)を算出する第2ハッシュ演算部と、
cs=C−ccを算出する第1減算部と、
cs・xsを算出する乗算部と、
ss=as−cs・xsを算出する第2減算部と、
上記特定の署名検証者のみが上記秘密値を用いることなく検証可能な検証者指定署名σ=(C,cc,sc,cs,ss)を生成する署名生成部と、
上記検証者指定署名σを上記メッセージmとともに送信する署名送信部と、
上記検証者指定署名が当該検証者指定署名生成装置で生成されたことを上記特定の署名検証者以外の者に対して証明する際に、上記秘密値を上記特定の署名検証者以外の者が利用する第三者端末装置に対して送信する秘密値送信部と、を有し、
上記パラメータas,cc,scの少なくとも1つが、上記第1ハッシュ演算部において算出された上記ハッシュ値である、
ことを特徴とする検証者指定署名生成装置。
A verifier-designated signature generation device that generates a verifier-designated signature in which a specific signature verifier is designated ,
A secret value storage memory for storing the secret value of the signature generator;
A parameter storage memory for storing parameters as, cc, sc, g;
A key storage memory for storing the secret key xs of the signature generator and the public key yc of the specific signature verifier;
A message storage memory for storing the message m to be signed;
A first hash calculator that calculates a hash value of information including the secret value;
a remainder multiplier for calculating rc = g sc · yc cc ;
an exponent calculation unit for calculating a rs = g as,
A second hash calculator that calculates a hash value C = H (rs, rc, m) of the bit combination value of rs, rc, and m,
a first subtraction unit for calculating cs = C-cc;
a multiplier for calculating cs · xs;
a second subtraction unit for calculating ss = as−cs · xs;
A signature generation unit that generates a verifier-designated signature σ = (C, cc, sc, cs, ss) that can be verified only by the specific signature verifier without using the secret value ;
A signature transmission unit that transmits the verifier-designated signature σ together with the message m;
When proving that the verifier-designated signature is generated by the verifier-designated signature generation device to a person other than the specific signature verifier, the secret value is obtained by a person other than the specific signature verifier. A secret value transmission unit that transmits to a third party terminal device to be used ,
At least one of the parameters as, cc, and sc is the hash value calculated by the first hash calculator.
A verifier-designated signature generation apparatus characterized by the above.
請求項2に記載の検証者指定署名生成装置であって、
上記パラメータcc,scの何れかのみが、上記第1ハッシュ演算部において算出された上記ハッシュ値である、
ことを特徴とする検証者指定署名生成装置。
The verifier-designated signature generation device according to claim 2,
Only one of the parameters cc and sc is the hash value calculated by the first hash calculator.
A verifier-designated signature generation apparatus characterized by the above.
請求項2に記載の検証者指定署名生成装置であって、
上記第1ハッシュ演算部が、
上記秘密値と上記パラメータscとを含む情報のハッシュ値を上記パラメータccとして算出するか、上記秘密値と上記パラメータccとを含む情報のハッシュ値を上記パラメータscとして算出する、
ことを特徴とする検証者指定署名生成装置。
The verifier-designated signature generation device according to claim 2,
The first hash calculation unit is
A hash value of information including the secret value and the parameter sc is calculated as the parameter cc, or a hash value of information including the secret value and the parameter cc is calculated as the parameter sc.
A verifier-designated signature generation apparatus characterized by the above.
特定の署名検証者が指定された検証者指定署名を生成する検証者指定署名生成装置であって、
署名生成者の秘密値seedを格納する秘密値記憶メモリと、
署名生成者の秘密鍵xs及び公開鍵ys,nと上記特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、
署名対象のメッセージmを格納するメッセージ記憶メモリと、
上記秘密値seedを含む情報のハッシュ値ccを算出するハッシュ演算部と、
ac=ccysmod nを算出する指数演算部と、
上記特定の署名検証者の公開鍵ycを用い、上記ハッシュ値ccを公開鍵暗号方式で暗号化した暗号文e0=Eyc(cc)を算出する第1暗号文生成部と、
cc・mxsを算出する第1剰余乗算部と、
上記特定の署名検証者の公開鍵ycを用い、上記cc・mxsを公開鍵暗号方式で暗号化した暗号文e1=Eyc(cc・mxs)を算出する第2暗号文生成部と、
上記特定の署名検証者の端末装置に対して(ac,e0,e1)を送信する暗号文送信部と、
上記(ac,e0,e1)を送信した後、上記特定の署名検証者の端末装置から送信されたb∈{0,1}を受信するチャレンジ受信部と、
c=cc・(mxsmod nを計算する第2剰余乗算部と、
上記特定の署名検証者のみが上記秘密値seedを用いることなく検証可能な検証者指定署名σ=(ac,c,b)を生成する署名生成部と、
上記検証者指定署名σを上記メッセージmとともに送信する署名送信部と、
上記検証者指定署名が当該検証者指定署名生成装置で生成されたことを上記特定の署名検証者以外の者に対して証明する際に、上記秘密値seedを上記特定の署名検証者以外の者が利用する第三者端末装置に対して送信する秘密値送信部と、
を有することを特徴とする検証者指定署名生成装置。
A verifier-designated signature generation device that generates a verifier-designated signature in which a specific signature verifier is designated ,
A secret value storage memory for storing the secret value seed of the signature generator;
A key storage memory for storing the signature generator's private key xs and public key ys, n and the specific signature verifier's public key yc;
A message storage memory for storing the message m to be signed;
A hash calculation unit for calculating a hash value cc of information including the secret value seed;
an exponent operation unit for calculating ac = cc ys mod n;
A first ciphertext generation unit that calculates a ciphertext e0 = E yc (cc) obtained by encrypting the hash value cc using a public key cryptosystem using the public key yc of the specific signature verifier;
a first modular multiplication unit for calculating cc · m xs ;
A second ciphertext generation unit that calculates a ciphertext e1 = E yc (cc · m xs ) obtained by encrypting the cc · m xs by a public key cryptosystem using the public key yc of the specific signature verifier;
A ciphertext transmission unit that transmits (ac, e0, e1) to the terminal device of the specific signature verifier;
A challenge receiver that receives bε {0, 1} transmitted from the terminal device of the specific signature verifier after transmitting (ac, e0, e1);
a second modular multiplication unit for calculating c = cc · (m xs ) b mod n;
A signature generation unit that generates a verifier-designated signature σ = (ac, c, b) that can be verified only by the specific signature verifier without using the secret value seed ;
A signature transmission unit that transmits the verifier-designated signature σ together with the message m;
When proving to the person other than the specific signature verifier that the verifier designated signature has been generated by the verifier designated signature generation apparatus, the secret value seed is assigned to a person other than the specific signature verifier. A secret value transmission unit that transmits to a third party terminal device used by
A verifier-designated signature generation device characterized by comprising:
特定の署名検証者が指定された検証者指定署名を生成する検証者指定署名生成装置であって、
署名生成者の秘密値seedを格納する秘密値記憶メモリと、
署名生成者の秘密鍵xsと上記特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、
署名対象のメッセージmを格納するメッセージ記憶メモリと、
上記秘密値seedを含む情報のハッシュ値ccを算出するハッシュ演算部と、
ac=cc/ycを算出する第1除算部と、
sc=macを算出する第1指数演算部と、
cs=xs−ccを算出する減算部と、
as=cs/ycを算出する第2除算部と、
ss=masを算出する第2指数演算部と、
上記特定の署名検証者のみが上記秘密値seedを用いることなく検証可能な検証者指定署名σ=(sc,ss)を生成する署名生成部と、
上記検証者指定署名σを上記メッセージmとともに送信する署名送信部と、
上記検証者指定署名が当該検証者指定署名生成装置で生成されたことを上記特定の署名検証者以外の者に対して証明する際に、上記秘密値seedを上記特定の署名検証者以外の者が利用する第三者端末装置に対して送信する秘密値送信部と、
を有することを特徴とする検証者指定署名生成装置。
A verifier-designated signature generation device that generates a verifier-designated signature in which a specific signature verifier is designated ,
A secret value storage memory for storing the secret value seed of the signature generator;
A key storage memory for storing the secret key xs of the signature generator and the public key yc of the specific signature verifier;
A message storage memory for storing the message m to be signed;
A hash calculation unit for calculating a hash value cc of information including the secret value seed;
a first division unit for calculating ac = cc / yc;
a first exponent operation unit for calculating sc = mac ;
a subtraction unit for calculating cs = xs−cc;
a second division unit for calculating as = cs / yc;
a second exponent calculation unit for calculating ss = mas ;
A signature generation unit that generates a verifier-designated signature σ = (sc, ss) that can be verified only by the specific signature verifier without using the secret value seed ;
A signature transmission unit that transmits the verifier-designated signature σ together with the message m;
When proving to the person other than the specific signature verifier that the verifier designated signature has been generated by the verifier designated signature generation apparatus, the secret value seed is assigned to a person other than the specific signature verifier. A secret value transmission unit that transmits to a third party terminal device used by
A verifier-designated signature generation device characterized by comprising:
特定の署名検証者が指定された検証者指定署名処理を行う検証者指定署名システムであって、
特定の署名検証者のみが検証可能な検証者指定署名を生成する検証者指定署名生成装置と、当該特定の署名検証者以外の者が利用する第三者端末装置と、を有し、
上記検証者指定署名生成装置が、
署名生成者の秘密値を格納する秘密値記憶メモリと、
少なくとも署名生成者の秘密鍵と上記特定の署名検証者の公開鍵とを格納する鍵記憶メモリと、
上記秘密値を含む情報のハッシュ値を算出するハッシュ演算部と、
少なくとも上記ハッシュ値と上記署名生成者の秘密鍵と上記特定の署名検証者の公開鍵とを用い、上記ハッシュ値又は上記ハッシュ値を用いて得られた関数値を含み、上記特定の署名検証者のみが上記秘密値を用いることなく検証可能な検証者指定署名を生成する署名生成部と、
上記検証者指定署名を送信する署名送信部と、
上記検証者指定署名が当該検証者指定署名生成装置で生成されたことを上記特定の署名検証者以外の者に対して証明する際に、上記秘密値を送信する秘密値送信部と、を有し、
上記第三者端末装置が、
少なくとも検証者指定署名を受信する署名受信部と、
上記秘密値を受信する秘密値受信部と、
上記秘密値受信部が受信した上記秘密値を含む情報のハッシュ値と上記署名受信部が受信した上記検証者指定署名が含む上記ハッシュ値又は上記ハッシュ値を用いて得られた関数値と用い、当該検証者指定署名の生成者が正当であるか否かを判定する自己証明部と、を有する、
ことを特徴とする検証者指定署名システム。
A verifier-designated signature system that performs a verifier-designated signature process in which a specific signature verifier is designated ,
A verifier-designated signature generation device that generates a verifier-designated signature that can be verified only by a specific signature verifier, and a third-party terminal device used by a person other than the specific signature verifier,
The verifier-designated signature generation device is
A secret value storage memory for storing the secret value of the signature generator;
A key storage memory for storing at least the private key of the signature generator and the public key of the specific signature verifier;
A hash calculation unit for calculating a hash value of information including the secret value;
Using at least the hash value, the signature generator's private key and the public key of the specific signature verifier, including the hash value or a function value obtained by using the hash value, and the specific signature verifier A signature generation unit that generates a verifier-designated signature that can be verified without using the secret value ;
A signature transmitter that transmits the verifier-designated signature;
A secret value transmission unit that transmits the secret value when proving to a person other than the specific signature verifier that the verifier-designated signature is generated by the verifier-designated signature generation device. And
The above third party terminal device
A signature receiver that receives at least a verifier-designated signature; and
A secret value receiving unit for receiving the secret value;
Using the hash value of the information including the secret value received by the secret value receiving unit and the hash value included in the verifier-designated signature received by the signature receiving unit or the function value obtained using the hash value , A self-certification unit that determines whether or not the creator of the verifier-designated signature is valid,
A verifier-designated signature system characterized by that.
特定の署名検証者が指定された検証者指定署名処理を行う検証者指定署名システムであって、
特定の署名検証者のみが検証可能な検証者指定署名を生成する検証者指定署名生成装置と、当該特定の署名検証者以外の者が利用する第三者端末装置と、を有し、
上記検証者指定署名生成装置が、
署名生成者の秘密値を格納する秘密値記憶メモリと、
パラメータas,cc,sc,gを格納するパラメータ記憶メモリと、
署名生成者の秘密鍵xsと上記特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、
署名対象のメッセージmを格納するメッセージ記憶メモリと、
上記秘密値を含む情報のハッシュ値を算出する第1ハッシュ演算部と、
rc=gsc・ycccを算出する剰余乗算部と、
rs=gasを算出する指数演算部と、
上記のrsとrcとmとのビット結合値のハッシュ値C=H(rs,rc,m)を算出する第2ハッシュ演算部と、
cs=C−ccを算出する第1減算部と、
cs・xsを算出する乗算部と、
ss=as−cs・xsを算出する第2減算部と、
上記特定の署名検証者のみが上記秘密値を用いることなく検証可能な検証者指定署名σ=(C,cc,sc,cs,ss)を生成する署名生成部と、
上記検証者指定署名σを上記メッセージmとともに送信する署名送信部と、
上記検証者指定署名が当該検証者指定署名生成装置で生成されたことを上記特定の署名検証者以外の者に対して証明する際に、上記秘密値を送信する秘密値送信部と、を有し、
上記パラメータas,cc,scの少なくとも1つが、上記第1ハッシュ演算部において算出された上記秘密値を含む情報のハッシュ値であり、
上記第三者端末装置が、
少なくとも検証者指定署名σ=(C,cc,sc,cs,ss)を受信する署名受信部と、
秘密値を受信する秘密値受信部と、
上記署名受信部が受信した上記検証者指定署名σのcc,sc,ssの少なくとも一部と、上記秘密値受信部が受信した上記秘密値を含む情報のハッシュ値とを用い、当該検証者指定署名σの生成者が正当であるか否かを判定する自己証明部と、を有する、
ことを特徴とする検証者指定署名システム。
A verifier-designated signature system that performs a verifier-designated signature process in which a specific signature verifier is designated ,
A verifier-designated signature generation device that generates a verifier-designated signature that can be verified only by a specific signature verifier, and a third-party terminal device used by a person other than the specific signature verifier,
The verifier-designated signature generation device is
A secret value storage memory for storing the secret value of the signature generator;
A parameter storage memory for storing parameters as, cc, sc, g;
A key storage memory for storing the secret key xs of the signature generator and the public key yc of the specific signature verifier;
A message storage memory for storing the message m to be signed;
A first hash calculator that calculates a hash value of information including the secret value;
a remainder multiplier for calculating rc = g sc · yc cc ;
an exponent calculation unit for calculating a rs = g as,
A second hash calculator that calculates a hash value C = H (rs, rc, m) of the bit combination value of rs, rc, and m,
a first subtraction unit for calculating cs = C-cc;
a multiplier for calculating cs · xs;
a second subtraction unit for calculating ss = as−cs · xs;
A signature generation unit that generates a verifier-designated signature σ = (C, cc, sc, cs, ss) that can be verified only by the specific signature verifier without using the secret value ;
A signature transmission unit that transmits the verifier-designated signature σ together with the message m;
A secret value transmission unit that transmits the secret value when proving to a person other than the specific signature verifier that the verifier-designated signature is generated by the verifier-designated signature generation device. And
At least one of the parameters as, cc, and sc is a hash value of information including the secret value calculated by the first hash calculation unit,
The above third party terminal device
A signature receiver that receives at least a verifier-designated signature σ = (C, cc, sc, cs, ss);
A secret value receiving unit for receiving the secret value;
Using at least a part of cc, sc, ss of the verifier-designated signature σ received by the signature receiver and a hash value of information including the secret value received by the secret value receiver, the verifier-designated A self-certifying part that determines whether or not the generator of the signature σ is valid,
A verifier-designated signature system characterized by that.
請求項8に記載の検証者指定署名システムであって、
上記パラメータcc,scの何れかのみが、上記検証者指定署名生成装置の上記第1ハッシュ演算部において算出された上記秘密値を含む情報のハッシュ値であり、
上記第三者端末装置の上記自己証明部は、
上記署名受信部が受信した上記検証者指定署名σ=(C,cc,sc,cs,ss)のccと上記秘密値受信部が受信した上記秘密値を含む情報のハッシュ値とが等しいときに上記検証者指定署名σの生成者が正当であると判断するか、
上記署名受信部が受信した上記検証者指定署名σ=(C,cc,sc,cs,ss)のscと上記秘密値受信部が受信した上記秘密値を含む情報のハッシュ値とが等しいときに上記検証者指定署名σの生成者が正当であると判断する、
ことを特徴とする検証者指定署名システム。
The verifier-designated signature system according to claim 8,
Only one of the parameters cc and sc is a hash value of information including the secret value calculated by the first hash calculator of the verifier-designated signature generation device,
The self-certification part of the third-party terminal device is
When the cc of the verifier-designated signature σ = (C, cc, sc, cs, ss) received by the signature receiver is equal to the hash value of the information including the secret value received by the secret value receiver Whether the verifier-designated signature σ is determined to be valid,
When the sc of the verifier-designated signature σ = (C, cc, sc, cs, ss) received by the signature receiver is equal to the hash value of the information including the secret value received by the secret value receiver It is determined that the creator of the verifier-designated signature σ is valid.
A verifier-designated signature system characterized by that.
請求項8に記載の検証者指定署名生成装置であって、
上記検証者指定署名生成装置の上記第1ハッシュ演算部が、上記秘密値と上記パラメータscとを含む情報のハッシュ値を上記パラメータccとして算出するか、上記秘密値と上記パラメータccとを含む情報のハッシュ値を上記パラメータscとして算出し、
上記第三者端末装置の上記自己証明部は、
上記署名受信部が受信した上記検証者指定署名σ=(C,cc,sc,cs,ss)のcsと上記秘密値受信部が受信した上記秘密値とを含む情報のハッシュ値と、上記検証者指定署名σのccとが等しいときに上記検証者指定署名σの生成者が正当であると判断するか、
上記署名受信部が受信した上記検証者指定署名σ=(C,cc,sc,cs,ss)のccと上記秘密値受信部が受信した上記秘密値とを含む情報のハッシュ値と、上記検証者指定署名σのcsとが等しいときに上記検証者指定署名σの生成者が正当であると判断する、
ことを特徴とする検証者指定署名システム。
The verifier-designated signature generation device according to claim 8,
The first hash calculator of the verifier-designated signature generation apparatus calculates a hash value of information including the secret value and the parameter sc as the parameter cc, or information including the secret value and the parameter cc Is calculated as the parameter sc, and
The self-certification part of the third-party terminal device is
A hash value of information including cs of the verifier-designated signature σ = (C, cc, sc, cs, ss) received by the signature receiving unit and the secret value received by the secret value receiving unit, and the verification Whether the creator of the verifier-designated signature σ is valid when the cc of the verifier-designated signature σ is equal,
A hash value of information including cc of the verifier-designated signature σ = (C, cc, sc, cs, ss) received by the signature receiving unit and the secret value received by the secret value receiving unit, and the verification The verifier-designated signature σ is determined to be valid when cs of the verifier-designated signature σ is equal,
A verifier-designated signature system characterized by that.
特定の署名検証者が指定された検証者指定署名処理を行う検証者指定署名システムであって、
特定の署名検証者のみが検証可能な検証者指定署名を生成する検証者指定署名生成装置と、当該特定の署名検証者以外の者が利用する第三者端末装置と、を有し、
上記検証者指定署名生成装置が、
署名生成者の秘密値seedを格納する秘密値記憶メモリと、
署名生成者の秘密鍵xs及び公開鍵ys,nと上記特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、
署名対象のメッセージmを格納するメッセージ記憶メモリと、
上記秘密値seedを含む情報のハッシュ値ccを算出するハッシュ演算部と、
ac=ccys mod nを算出する指数演算部と、
上記署名検証者の公開鍵ycを用い、上記ハッシュ値ccを公開鍵暗号方式で暗号化した暗号文e0=Eyc(cc)を算出する第1暗号文生成部と、
cc・mxsを算出する第1剰余乗算部と、
上記特定の署名検証者の公開鍵ycを用い、上記cc・mxsを公開鍵暗号方式で暗号化した暗号文e1=Eyc(cc・mxs)を算出する第2暗号文生成部と、
上記特定の署名検証者の端末装置に対して(ac,e0,e1)を送信する暗号文送信部と、
上記(ac,e0,e1)を送信した後、上記特定の署名検証者の端末装置から送信されたb∈{0,1}を受信するチャレンジ受信部と、
c=cc・(mxsmod nを計算する第2剰余乗算部と、
上記特定の署名検証者のみが上記秘密値seedを用いることなく検証可能な検証者指定署名σ=(ac,c,b)を生成する署名生成部と、
上記検証者指定署名σを上記メッセージmとともに送信する署名送信部と、
上記検証者指定署名が当該検証者指定署名生成装置で生成されたことを上記特定の署名検証者以外の者に対して証明する際に、上記秘密値seedを送信する秘密値送信部と、を有し、
上記第三者端末装置が、
署名生成者の公開鍵ysを格納する鍵記憶メモリと、
少なくとも検証者指定署名σ=(ac,c,b)を受信する署名受信部と、
上記秘密値seedを受信する秘密値受信部と、
上記署名受信部が受信した上記検証者指定署名σのacと上記秘密値seedを含む情報のハッシュ値に対するys乗値とが等しいときに上記検証者指定署名σの生成者が正当であると判断する自己証明部と、を有する、
ことを特徴とする検証者指定署名システム。
A verifier-designated signature system that performs a verifier-designated signature process in which a specific signature verifier is designated ,
A verifier-designated signature generation device that generates a verifier-designated signature that can be verified only by a specific signature verifier, and a third-party terminal device used by a person other than the specific signature verifier,
The verifier-designated signature generation device is
A secret value storage memory for storing the secret value seed of the signature generator;
A key storage memory for storing the signature generator's private key xs and public key ys, n and the specific signature verifier's public key yc;
A message storage memory for storing the message m to be signed;
A hash calculation unit for calculating a hash value cc of information including the secret value seed;
an exponent operation unit for calculating ac = cc ys mod n;
A first ciphertext generation unit that calculates a ciphertext e0 = E yc (cc) obtained by encrypting the hash value cc by a public key cryptosystem using the public key yc of the signature verifier;
a first modular multiplication unit for calculating cc · m xs ;
A second ciphertext generation unit that calculates a ciphertext e1 = E yc (cc · m xs ) obtained by encrypting the cc · m xs by a public key cryptosystem using the public key yc of the specific signature verifier;
A ciphertext transmission unit that transmits (ac, e0, e1) to the terminal device of the specific signature verifier;
A challenge receiver that receives bε {0, 1} transmitted from the terminal device of the specific signature verifier after transmitting (ac, e0, e1);
a second modular multiplication unit for calculating c = cc · (m xs ) b mod n;
A signature generation unit that generates a verifier-designated signature σ = (ac, c, b) that can be verified only by the specific signature verifier without using the secret value seed ;
A signature transmission unit that transmits the verifier-designated signature σ together with the message m;
A secret value transmission unit that transmits the secret value seed when proving to a person other than the specific signature verifier that the verifier-designated signature is generated by the verifier-designated signature generation device; Have
The above third party terminal device
A key storage memory for storing the signature generator's public key ys;
A signature receiver that receives at least a verifier-designated signature σ = (ac, c, b);
Private value receiving section for receiving the secret value seed,
Determined that creator of the verifier specified signature σ when are equal and ys multiplication values for the hash value of information including ac and the secret value seed of the verifier designation signature σ to the signature receiving unit receives is legitimate Having a self-certifying part,
A verifier-designated signature system characterized by that.
特定の署名検証者が指定された検証者指定署名処理を行う検証者指定署名システムであって、
特定の署名検証者のみが検証可能な検証者指定署名を生成する検証者指定署名生成装置と、当該特定の署名検証者以外の者が利用する第三者端末装置と、を有し、
上記検証者指定署名生成装置が、
署名生成者の秘密値seedを格納する秘密値記憶メモリと、
署名生成者の秘密鍵xsと上記特定の署名検証者の公開鍵ycとを格納する鍵記憶メモリと、
署名対象のメッセージmを格納するメッセージ記憶メモリと、
上記秘密値seedを含む情報のハッシュ値ccを算出するハッシュ演算部と、
ac=cc/ycを算出する第1除算部と、
sc=macを算出する第1指数演算部と、
cs=xs−ccを算出する減算部と、
as=cs/ycを算出する第2除算部と、
ss=masを算出する第2指数演算部と、
上記特定の署名検証者のみが上記秘密値seedを用いることなく検証可能な検証者指定署名σ=(sc,ss)を生成する署名生成部と、
上記検証者指定署名σを上記メッセージmとともに送信する署名送信部と、
上記検証者指定署名が当該検証者指定署名生成装置で生成されたことを上記特定の署名検証者以外の者に対して証明する際に、上記秘密値seedを送信する秘密値送信部と、を有し、
上記第三者端末装置が、
上記特定の署名検証者の公開鍵ycを格納する鍵記憶メモリと、
検証者指定署名σ=(sc,ss)とメッセージmとを受信する署名受信部と、
上記秘密値seedを受信する秘密値受信部と、
上記署名受信部が受信した上記検証者指定署名σのscと、m〔Aは(上記秘密値seedを含む情報のハッシュ値)/yc〕とが等しいときに上記検証者指定署名σの生成者が正当であると判断する自己証明部と、を有する、
ことを特徴とする検証者指定署名システム。
A verifier-designated signature system that performs a verifier-designated signature process in which a specific signature verifier is designated ,
A verifier-designated signature generation device that generates a verifier-designated signature that can be verified only by a specific signature verifier, and a third-party terminal device used by a person other than the specific signature verifier,
The verifier-designated signature generation device is
A secret value storage memory for storing the secret value seed of the signature generator;
A key storage memory for storing the secret key xs of the signature generator and the public key yc of the specific signature verifier;
A message storage memory for storing the message m to be signed;
A hash calculation unit for calculating a hash value cc of information including the secret value seed;
a first division unit for calculating ac = cc / yc;
a first exponent operation unit for calculating sc = mac ;
a subtraction unit for calculating cs = xs−cc;
a second division unit for calculating as = cs / yc;
a second exponent calculation unit for calculating ss = mas ;
A signature generation unit that generates a verifier-designated signature σ = (sc, ss) that can be verified only by the specific signature verifier without using the secret value seed ;
A signature transmission unit that transmits the verifier-designated signature σ together with the message m;
A secret value transmission unit that transmits the secret value seed when proving to a person other than the specific signature verifier that the verifier-designated signature is generated by the verifier-designated signature generation device; Have
The above third party terminal device
A key storage memory for storing the public key yc of the specific signature verifier;
A signature receiver that receives the verifier-designated signature σ = (sc, ss) and the message m;
Private value receiving section for receiving the secret value seed,
And sc of the signature reception section above verifier specified received signature sigma, generation of m A [A is (hash value of information including the secret seed) / yc] and the verifier specified signature sigma when equal A self-certifying part that the person judges to be legitimate,
A verifier-designated signature system characterized by that.
請求項1から6の何れかに記載の検証者指定署名生成装置としてコンピュータを機能させるためのプログラム。   The program for functioning a computer as a verifier designation | designated signature production | generation apparatus in any one of Claim 1 to 6. 請求項13に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium storing the program according to claim 13.
JP2005178123A 2005-06-17 2005-06-17 Verifier-designated signature generation apparatus, verifier-designated signature system, program, and recording medium thereof Expired - Fee Related JP4621075B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005178123A JP4621075B2 (en) 2005-06-17 2005-06-17 Verifier-designated signature generation apparatus, verifier-designated signature system, program, and recording medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005178123A JP4621075B2 (en) 2005-06-17 2005-06-17 Verifier-designated signature generation apparatus, verifier-designated signature system, program, and recording medium thereof

Publications (2)

Publication Number Publication Date
JP2006352671A JP2006352671A (en) 2006-12-28
JP4621075B2 true JP4621075B2 (en) 2011-01-26

Family

ID=37648002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005178123A Expired - Fee Related JP4621075B2 (en) 2005-06-17 2005-06-17 Verifier-designated signature generation apparatus, verifier-designated signature system, program, and recording medium thereof

Country Status (1)

Country Link
JP (1) JP4621075B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009027565A (en) * 2007-07-20 2009-02-05 National Institute Of Information & Communication Technology Method for authenticating anonymous qualification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000048085A (en) * 1998-05-15 2000-02-18 Internatl Business Mach Corp <Ibm> Method and device for generating investigation information
JP2003333034A (en) * 2002-05-09 2003-11-21 Nippon Telegr & Teleph Corp <Ntt> Authenticated encryption method and apparatus, authenticated encryption program, memory medium having authenticated encryption program stored thereon, authenticated decryption method and apparatus, authenticated decryption program, and memory medium having authenticated decryption program stored thereon
JP2003333035A (en) * 2002-05-09 2003-11-21 Nippon Telegr & Teleph Corp <Ntt> Authenticated encryption method and apparatus, authenticated encryption program, memory medium having authenticated encryption program stored thereon, authenticated decryption method and apparatus, authenticated decryption program, memory medium having authenticated decryption program stored thereon, denial cancelling method, verifying method, verifier and verification program, and memory medium having the verification program stored thereon

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10210023A (en) * 1997-01-27 1998-08-07 Oki Electric Ind Co Ltd Authentication method, cipher key sharing method, and communication system
JPH10268763A (en) * 1997-03-28 1998-10-09 Advance Co Ltd Digital signature system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000048085A (en) * 1998-05-15 2000-02-18 Internatl Business Mach Corp <Ibm> Method and device for generating investigation information
JP2003333034A (en) * 2002-05-09 2003-11-21 Nippon Telegr & Teleph Corp <Ntt> Authenticated encryption method and apparatus, authenticated encryption program, memory medium having authenticated encryption program stored thereon, authenticated decryption method and apparatus, authenticated decryption program, and memory medium having authenticated decryption program stored thereon
JP2003333035A (en) * 2002-05-09 2003-11-21 Nippon Telegr & Teleph Corp <Ntt> Authenticated encryption method and apparatus, authenticated encryption program, memory medium having authenticated encryption program stored thereon, authenticated decryption method and apparatus, authenticated decryption program, memory medium having authenticated decryption program stored thereon, denial cancelling method, verifying method, verifier and verification program, and memory medium having the verification program stored thereon

Also Published As

Publication number Publication date
JP2006352671A (en) 2006-12-28

Similar Documents

Publication Publication Date Title
Jin et al. Dynamic and public auditing with fair arbitration for cloud data
JP4555859B2 (en) Authentication system, authentication method, certification device, verification device, program and recording medium thereof
JP4635009B2 (en) Use of proven secret values in communications
Brickell et al. Enhanced privacy ID from bilinear pairing for hardware authentication and attestation
JP4741503B2 (en) Method and apparatus for generating verifiable public key
Brickell et al. Direct anonymous attestation
Brickell et al. Enhanced privacy ID: A direct anonymous attestation scheme with enhanced revocation capabilities
CN101689993B (en) Group signature system, device, and program
CA2792267C (en) Verifying implicit certificates and digital signatures
JP2001513227A (en) Management and use of secret latest random numbers in network environment
Brickell et al. Enhanced privacy ID from bilinear pairing
TW201320701A (en) Information processing device, information processing method, and program
JP2009116183A (en) Encryption device, decryption device, key generating device, and program
JP6719339B2 (en) Cryptographic system, cryptographic method, and cryptographic program
Lizama-Pérez et al. Public hash signature for mobile network devices
JP4621075B2 (en) Verifier-designated signature generation apparatus, verifier-designated signature system, program, and recording medium thereof
Mangipudi et al. Authentication and Key Agreement Protocols Preserving Anonymity.
JP4773941B2 (en) Proxy signature device, signer device, signature verification device, and programs thereof
JP4922139B2 (en) Key sharing method, first device, second device, and program thereof
Chen et al. A note on the Chen–Morrissey–Smart DAA scheme
JPH11234263A (en) Method and device for mutual authentication
US20080080707A1 (en) RSA signature authentication with reduced computational burden
Seo et al. A secure and flexible multi-signcryption scheme
JP4814722B2 (en) Verifier designated signature generation device, third party device, verifier designated signature generation method, signature generator verification method, and program
JP4629889B2 (en) Verifiable encryption method, apparatus thereof, program thereof, and recording medium thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100929

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101019

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101029

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

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees