This application is based upon and claims the benefit of the priority of Japanese patent application No. 2023-206988, filed on Dec. 7, 2023, the disclosure of which is incorporated herein in its entirety by reference thereto.
The present disclosure relates to a digital signature system, method and non-transitory medium.
Digital signature is a technology which enables to verify a creator of an electronic document and check that the document has not been altered after creation thereof.
The following outlines one of typical algorithms of digital signature.
A key generation algorithm KeyGen( ) generates a pair of a signing key (secret key) sk and a verification key (public key) vk.
where κ is a security parameter.
The key generation algorithm Key Gen( ) may not directly take as input a security parameter, but to take as input public parameters which a setup algorithm has generated from the security parameter, and generate a pair of the signing key (secret key) sk and the verification key (public key) vk.
A signing algorithm Sign( ) generates a signature σ for a message (document) M with the signing key sk. That is, the signature σ is generated, using the signing key (secret key) sk for the message (document) M to be signed or a hash value (message digest) which is obtained as an output of a hash function which takes as input the message M.
A verification algorithm Verify( ) verifies the signature σ for the message (document) M (i.e., verifies correctness of the message (document) M and the signature σ) using the verification key vk.
where Verify( ) is assumed to return(output) 1 for acceptance and return(output) 0 for non-acceptance (rejection), though not limited thereto.
In digital signature, when a public key is made public, those who obtain a document and a signature can perform verification of the signature for the document (message). That is, using a verification key, which is a public key, it is possible to verify whether or not the signature has been generated for the document (message) with the signing key.
Digital signatures may be used for a variety of applications, such a s e-mail protection (S/MIME (Secure/Multipurpose Internet Mail Extensions)) and electronic contracts. For example, a digital signature of a contractor is electronically attached to electronic contract data in place of a seal in a written contract. In a case of virtual currency remittance, a message which includes information on “to which address and how much to remit” and a sender's digital signature for the message may be recorded in a blockchain. The remittance process may be completed when the signature is successfully verified.
In digital signature, when a signing key is lost or stolen, security could be compromised. It is difficult for a user to properly manage a signing key. When a signing key is not properly managed, there is a risk that the signing key may be lost or stolen. Improper management of a signing key may lead to preventing a “signer” to generate a correct signature (e.g., when the signing key is lost) or allowing someone other than a “signer” to generate a correct signature (e.g., when the signing key is stolen).
Security for digital signature is based on that a signing key is managed to be kept in secret. An adversary, once obtaining a signing key, can generate a correct signature. That is, what digital signature guarantees is that “a person with a signing key has given a signature to a document,” not that “a ‘signer’ has given a signature to a document. The larger the number of keys a user has to manage, the more difficult becomes management thereof. As for a digital signature scheme in which keys are managed in a distributed manner, such as a multi-signature scheme, reference may be made to Reference Literature 1, etc.
A digital signature using biometric information has been proposed, for example, as a biometric signature (fuzzy signature) (e.g., Patent Literature (PTL) 1). In a biometric signature system of PTL 1, an enrollment terminal generates an enrollment commitment in which biometric information is embedded in a secret key, and a signature generation terminal receives a message, generates a temporary secret key and a temporary public key, generates a signature commitment in which biometric information is embedded in the temporary secret key, and sends a biometric signature including a digital signature for the message generated using the temporary secret key, the signature commitment and the temporary public key to a verification apparatus, which receives the message and verifies whether the digital signature included in the biometric signature is a correct signature for the message using the temporary public key, and verifies validity of a set of the enrollment commitment and the signature commitment using the public key and the temporary public key.
In a digital signature system using biometric information, a risk of losing a key (e.g., secret key) may be reduced as compared with a digital signature system using a key. However, in the signature system using biometric information, biometric information, once compromised, since it is difficult to change or replace, would no longer ensure secure use of a key generated from the relevant biometric information.
It is an object of the present disclosure to provide a system, method, and a non-transitory medium, each enabling to mitigate risk simultaneously for key loss and compromise in digital signature.
According to an aspect of the present disclosure, a digital signature system includes a first signature generation apparatus and a second signature generation apparatus, each including at least a processor, a memory storing program instructions executable by the processor and a communication interface and communicatively connecting to each other.
The first signature generation apparatus is configured to receive first auxiliary data generated based on a first signature key and first biometric information to store the first auxiliary data in a storage.
The second signature generation apparatus is configured to:
The first signature generation apparatus configured to on reception of the second auxiliary data, generate a first distributed key using the first auxiliary data and the second auxiliary data. and
The first signature generation apparatus and the second signature generation apparatus are configured to perform a distributed signing process using at least the first distributed key and the second distributed key to generate a signature for the message.
According to an aspect of the present disclosure a method including:
Further, as a recording medium includes a program(s) to cause a first processing apparatus and a second processing apparatus to execute processing comprising:
According to the present disclosure, it is possible mitigate risk simultaneously for key loss and compromise in digital signature.
The following describes example embodiments of the present disclosure.
Referring to
In the second auxiliary data s2, information obtained by encoding the second distributed key Δ is embedded in the second biometric information w′ (biometric information for signing). Thus, a possibility that the second biometric information w′ is forged from the second auxiliary data s2 is sufficiently low to ensure security.
The entity B102 (first signature generation apparatus) receives first auxiliary data s1 and stores the first auxiliary data s1 in a storage before the signing phase. The first auxiliary data s1 is generated using a first signing key (secret key) x and first biometric information w (biometric information for enrollment). In the first auxiliary data s1, information obtained by encoding the first signing key x is embedded in the first biometric information w. Thus, the possibility that the first biometric information w is forged from the first auxiliary data s1 is sufficiently low to ensure security. The first auxiliary data s1 and the second auxiliary data s2 generated based on the first biometric information w and the second biometric information w′, respectively, are not transmitted as they are to a verifier (verification destination), nor registered in a public ledger on a blockchain.
The entity B102 receives the second auxiliary data s2 from the entity A101. Using the first auxiliary data s1 retained in the storage and the second auxiliary data s2 received, the entity B102 generates a first distributed key x′ with an error correcting capability and linearity of coding (Step 5). When the first biometric information w and the second biometric information w′ are biometric information of the same person, the first distributed key x′ which is reconstructed by a reconstruction process, is given as
The first signing key x is additively decomposed (distributed) to the second distributed key Δ and the first distributed key x′.
The entity A101 and entity B102 perform a two-party distributed signing process using the second distributed key Δ and the first distributed key x′ to generate a signature σ for a message M (Step 6). This signature σ is a signature for the message M, which is able to be verified with a verification key v corresponding to the first signing key x. As a signature scheme, an Elliptic Curve Digital Signature Algorithm (ECDSA) scheme, a Schnorr signature scheme or the like may be used.
The key-based signature generation apparatus 120 includes a first auxiliary data reception part 121 that receives first auxiliary data s1 generated using the first biometric information w and the first signing key x, a first auxiliary data storage part 122 that stores the first auxiliary data received, a message acquisition part 123 that acquires the message M to be signed, a second auxiliary data reception part 124 that receives the second auxiliary data s2 transmitted from the biometric-based signature generation apparatus 130, a first distributed key generation part 125 that generates a first distributed key x′ using the first auxiliary data s1 and the second auxiliary data s2, and a first distributed signing processing part 126 that performs a distributed signing process in cooperation with the biometric-based signature generation apparatus 130. The message acquisition part 123 may receive the message M sent from the biometric-based signature generation apparatus 130. The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 may transmit the message M to the message acquisition part 123 of the key-based signature generation apparatus 120.
In the biometric-based signature generation apparatus 130, the second biometric information acquisition part 131 acquires the second biometric information w′ (Step A1). The message acquisition part 132 acquires a message M to be signed (Step A2). The second distributed key generation part 133 generates the second distributed key Δ uniformly at random (Step A3).
The second auxiliary data generation part 134 composites an encoded key c (=Encode(Δ)), which is obtained by applying an encoding function (Encode) to the second distribution key Δ, and the second biometric information w′ to generate the second auxiliary data s2 (Step A4).
The second auxiliary data s2 may be also termed a second Key parameter.
The operation “+” in Equation (5) may be −, or it may be a bitwise exclusive OR operator, etc., depending on the coding.
The encoding function Encode converts a plaintext m in an information source space to a code c. A decoding function Decode converts the code c back to the plaintext m.
Here, the following equation must hold for a code c′ whose difference from c is within a correction range, where c is a code of any plaintext m in an information source space.
As will be described below, in one or more example embodiments, a linear code is used, which has linearity with respect to a code.
is a codeword for m1+m2. Therefore, the following equation holds.
In Equation (10), “+” on the left and right sides need not be the same operation.
With respect to coding, a linear error-correcting code (Hamming code, BCH (Bose-Chaudhuri-Hocquenghem) code, RS (Reed-Solomon) code, LDPC (low-density parity-check code), etc.) may be used. Alternatively, a lattice coding may be used. Coding methods using integer lattices, triangular lattices, and more complex lattices are known (see PTL 5, etc.).
The second auxiliary data transmission part 135 of the biometric-based signature generation apparatus 130 transmits the second auxiliary data s2 (=Encode(Δ)+w′) to the key-based signature generation apparatus 120. The key-based signature generation apparatus 120 and the biometric-based signature generation apparatus 130 may be configured to communicatively connect via a network (e.g., at least one of a wired LAN, wireless LAN, WAN, a mobile communication network, a virtual network, etc.).
In the key-based signature generation apparatus 120, the first auxiliary data reception part 121 receives the first auxiliary data s1 and stores it in the first auxiliary data storage part 122 (Step B1). The first auxiliary data s1 is composited by the first signing key x and the first biometric information w and is given, for example, as follows.
It is noted that s1 and s2 may be associated with a secure sketch of Reference Literature 2.
The second auxiliary data reception part 124 of the key-based signature generation apparatus 120 receives the second auxiliary data s2 transmitted from the biometric-based signature generation apparatus 130, and the message acquisition part 123 receives a message transmitted from the biometric-based signature generation apparatus 130 (Step B2). The biometric-based signature generation apparatus 130 may transmit the second auxiliary data s2 and the message M together or individually to the key-based signature generation apparatus 120. The first distributed key generation part 125 of the key-based signature generation apparatus 120 reads the first auxiliary data s1 stored in the first auxiliary data storage part 122 and supplies a difference (s1−s2) between the first auxiliary data s1 and the second auxiliary data s2 to a decoding function Decode, which reconstructs the first distributed key x′ (Step B3).
The right-hand side of Equation (12) can be expanded as follows
When (w−w′) is within an error correction range, the following holds.
Instead of supplying the difference (s1−s2) between the first auxiliary data s1 and the second auxiliary data s2 as an arguments to the decoding function Decode, using a key difference recovery function (Diff) that takes, as two input arguments, the first auxiliary data s1 and the second auxiliary data s2 and reconstructs the difference between the keys corresponding to s1 and s2 respectively, the key difference x′ between the signing key x and the second distributed key Δ may be obtained (it may be said that Diff and Decode are, in effect, only different in that Diff takes two input arguments, the first auxiliary data s1 and the second auxiliary data s2, while Decode takes one input argument (s1−s2)).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 receives information from the second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 and performs a two-party distributed signing process (distributed signature generation process) using the second distributed key Δ and the first distributed key x′ generated by the biometric-based signature generation apparatus 130 (Steps A6 and B4).
In this case, according to a signature algorithm, the second distributed key Δ generated on the biometric-based signature generation apparatus 130 side may be encrypted using a public key (temporary public key) generated on the biometric-based signature generation apparatus 130 and passed over to the first distributed signing processing part 126 of the key-based signature generation apparatus 120. The first distributed signing processing part 126 of the key-based signature generation apparatus 120 performs an operation to obtain a term containing a sum of the first distributed key x′ and the second distributed key Δ, with the second distributed key Δ (which is encrypted on a side of the biometric-based signature generation apparatus 130) kept encrypted, using homomorphic operations of encryption (addition and scalar multiplication operations). The encrypted operation result (a part of operations to derive a signature) may be sent from the first distributed signing processing part 126 to the second distributed signing processing part 136 of the biometric-based signature generation apparatus 130. In this case, the second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 decrypts the encrypted operation result to a plain text using a secret key (temporary secret key) and generates a signature for the message using, as a signing key, a sum (x′+Δ) of the first distributed key x′ and the second distributed key Δ. When the sum (x′+Δ) of the first distributed key x′ and the second distributed key Δ is equal to the first signing key x, the generated signature can be said to be a correct signature for the message M when verified with the verification key v which corresponds to the first signing key x.
The signature transmission part 137 of the biometric-based signature generation apparatus 130 transmits the signature to a verification destination (verifier) (Step A7). Regarding the distributed signing process between the biometric-based signature generation apparatus 130 and the key-based signature generation apparatus 120, reference may be made to Reference Literature 1, etc.
A signature scheme on the message M using ECDSA is, for example, as follows.
Receiving a signature σ=(r,s) and message M. Signature verification operation:
ECDSA does not have key-homomorphism. Therefore, it is difficult to construct a distributed signature using biometric information for ECDSA by key-homomorphism (e.g., Adapt algorithm disclosed in Reference 4 or methods similar thereto). That is, it is necessary to compute an inverse of the random number k{circumflex over ( )}(−1) in order to change a signature with the first distributed key (secret key) x′ for the message M without knowing the first signing key (secret key) x and the random number k, but this is difficult. Therefore, it is difficult to compute the signature σ with the signing key (x′+Δ), based on key-homomorphism, by using the second distributed key Δ (shift) and the signature σ′ for message M with the first distributed key x′.
According to the present disclosure, in the two-party distributed signing process (2-party ECDSA), the second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 performs the following, for example.
It is assumed that a secret key is x (∈Z*n=[1, n−1], n: a prime number) and a public key is P=xG, where Gis a reference point (base point) on an elliptic curve and is a generator of order n.
The key-based signature generation apparatus 120, on reception of the message M, R1, the public key pk, and the key c_key into which the second distributed key Δ is encrypted, the first distributed signing processing part 126 performs the following:
In the biometric-based signature generation apparatus 130, on reception of R2 and c3, the second distributed signing processing part 136 performs the following:
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 and the first distributed signing processing part 126 of the key-based signature generation apparatus 120 may use, as a n encryption algorithm, a n additive homomorphic cryptosystem. For example, Paillier cryptosystem and Elgamal cryptosystem on Elliptic curve fall under a category of the additive homomorphic cryptosystem.
where sk and pk are private and public keys, m is a plaintext, and c is a ciphertex.,
The scalar multiplication (homomorphic scalar multiplication) may be implemented by repeating the homomorphic addition HomAdd (k times m), with the message m kept as encrypted,
In a cryptographic scheme such as Paillier cryptosystem, there is an efficient computation method for the homomorphic scalar multiplication other than repeating of a homomorphic addition, such a method may be used.
In a key registration phase, a key generation part 112 of the key generation apparatus 110, using the key generation algorithm KeyGen, generates a private key x and a public key v based on a security parameter λ.
The key generation algorithm KeyGen may return a pair of the private key x and the public key v simultaneously as a return value. KeyGen may take as input common parameters which have been generated from security parameters in a setup algorithm, and generate a pair of a private key x and a public key v. In key generation, the public key v may be generated based on the private key x (a random number) by using a one-way hash function (such as cryptographic hash function, linear hash function). Alternatively, the public key v may be generated by v=g{circumflex over ( )}φ(x) using a generator g of a multiplication group G with a prime order p and a mapping φ (from a set to which the secret key x belongs to Z (where Z is the set of whole integers). Alternatively, a keyed hash function or the like may be used. A private key x may be referred to as a signing key and a public key v as a verification key.
A verification key transmission part 113 of the key generation apparatus 110 transmits the verification key v to the verification apparatus 140. The key generation apparatus 110 and the verification apparatus 140 may be configured to communicatively connect to each other via a network (e.g., at least one of a wired LAN (Local Area Network), wireless LAN, WAN (Wide Area Network), mobile communication network, virtual network, etc.). The verification key v may be registered in a key server (public key database) associated with a Key ID, for example, without being transmitted to the verification apparatus 140. In this case, the verification apparatus 140 may acquire the verification key v from the key server (public key database) as necessary.
A first biometric information acquisition part 111 of the key generation apparatus 110 acquires the first biometric information w of a user from a sensor not shown or the like.
A first auxiliary data generation part 114 of the key generation apparatus 110 generates the first auxiliary data s1 (auxiliary data 1) using a value c=Encode(x) which is an encoded value of the first signing key x, and the first biometric information w.
A first auxiliary data transmission part 115 of the key generation apparatus 110 transmits the first auxiliary data s1 to the key-based signature generation apparatus 120. The key generation apparatus 110 and the key-based signature generation apparatus 120 may be configured to communicatively connect to each other via a network (e.g., at least one of wired LAN, wireless LAN, WAN, mobile communication network, virtual network, etc.).
The key generation apparatus 110 may transmit the first auxiliary data s1 generated based on the first biometric information w only to the key-based signature generation apparatus 120. In
A verification key acquisition part 141 of the verification apparatus 140 receives the verification key v from the key generation apparatus 110 and registers it in the verification key storage part 142. A message and signature reception part 143 of the verification apparatus 140 receives the signature σ and message M from the biometric-based signature generation apparatus 130.
A signature verification part 144 of the verification apparatus 140 verifies correctness of a pair of the message M and signature σ using the verification key v
In the case of ECDSA, the signature verification part 144 of the verification apparatus 140 performs the same verification algorithm for ECDSA as described above.
The verification apparatus 140 may transmit a verification result of the signature σ to the biometric-based signature generation apparatus 130, which is, for example, a transmission source of the signature σ. The biometric-based signature generation apparatus 130 and the verification apparatus 140 may be configured to communicatively connect to each other via a network (e.g., at least one of a wired LAN, wireless LAN, WAN, mobile communication network, virtual network, etc.).
The first biometric information acquisition part 111 of the key generation apparatus 110 acquires the first biometric information w from a sensor not shown or the like (Step 1). The first biometric information w may be features extracted from biometric digital data acquired by a sensor not shown or the like.
The key generation part 112 of the key generation apparatus 110 selects the first signing key x uniformly at random from an information source (x←RZ*n) (Step 2).
The key generation part 112 of the key generation apparatus 110 generates a verification key v corresponding to the first signature key x, v=xG where G is a base point of an Elliptic curve (Step 3). A pair of the first signature key x and the verification key v may be generated in a single key generation procedure.
The verification key transmission part 113 of the key generation apparatus 110 transmits the verification key v to the verification apparatus 140 (Step 4).
The first auxiliary data generation part 114 generates the first auxiliary data s1 (=c+w) using an encoded key value c (=Encode(x)) of the first signature key x and the first biometric information w (Step 5).
The first auxiliary data transmission part 115 of the key generation apparatus 110 transmits the first auxiliary data s1 to the key-based signature generation apparatus 120 (Step 6).
In the key-based signature generation apparatus 120, the first auxiliary data reception part 121 receives the first auxiliary data s1 and stores it in the first auxiliary data storage part 122 (Step 1).
In a biometric-signing phase, in the biometric-based signature generation apparatus 130, the second biometric information acquisition part 131 obtains the second biometric information w′ (Step 1). The second biometric information w′ may include feature values of the biometric information w′ extracted from biometric digital data acquired by a sensor or the like.
The second distributed key generation part 133 of the biometric-based signature generation apparatus 130 chooses the second distributed key Δ uniformly at random from the information source (Δ←RZ*n) (Step 2).
The second auxiliary data generation part 134 of the biometric-based signature generation apparatus 130 generates the second auxiliary data s2 (=Encode(Δ)+w′) using the second distributed key Δ and the second biometric information w′ (Step 3).
The second auxiliary data transmission part 135 of the biometric-based signature generation apparatus 130 transmits the second auxiliary data s2 to the key-based signature generation apparatus 120 (Step 4).
The message acquisition part 132 of the biometric-based signature generation apparatus 130 acquires a message M to be signed (Step 5).
In the key-based signature generation apparatus 120, the second auxiliary data reception part 124 receives the second auxiliary data s2 transmitted from the second auxiliary data transmission part 135 of the biometric-based signature generation apparatus 130 (Step 2).
The first distributed key generation part 125 of the key-based signature generation apparatus 120 decodes a difference (s1−s2) between the first auxiliary data s1 and the second auxiliary data s2 to generate (reconstruct) the first distributed key x′ (Step 3).
In the biometric-based signature generation apparatus 130, the second distributed signing processing part 136 performs the following, for example.
Selecting a first random number k1 uniformly at random (k1←RZ*n (k1∈[1, n−1])) (Step 6).
Computing a rational point (R1=k1*G) on the elliptic curve (Step 7).
Generating a secret key (temporary secret key) sk and a public key (temporary public key) pk using the prescribed key generation algorithm ((sk, pk)←KeyGen(λ)) (where λ is the key length) (Step 8).
Encrypting the second distributed key Δ using the private key sk (Step 9).
The message M, R1, the public key pk, and the key: c_key, to which the second distributed key Δ is encrypted, are transmitted to the key-based signature generation apparatus 120 (Step 10).
In the key-based signature generation apparatus 120, the first distributed signing processing part 126 receives the message M, R1, the public key pk, and the key: c_key, to which the second distributed key Δ is encrypted (Step 4).
The message acquisition part 123 of the key-based signature generation apparatus 120 acquires the message M.
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 selects a second random number k2 uniformly at random (k2←RZ*n (k2∈[1, n−1])) (Step 5).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 computes a rational point (R2=k2*G) on the elliptic curve using the second random number k2 (Step 6).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 uses the second random number k2 and R1 received from the biometric-based signature generation apparatus 130 to compute a rational point R on the elliptic curve (Step 7).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 computes r (Step 8).
where xr is an integer representation of x1 in Equation (45) (in
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 computes a hash value H(M) of the message M and computes a value (cipher value) c3, which is a result of an encryption of a value obtained by multiplying by an inverse element of the second random number k2, a value obtained by adding H(M) to a value obtained by multiplying, by r, a sum (x′+Δ) of the first distributed key x′ and the second distributed key Δ (Step 9). During this computation, the second distributed key Δ remains encrypted.
In derivation of c3 of Equation (47), the first distributed signing processing part 126 of the key-based signature generation apparatus 120 finds the inverse element k2{circumflex over ( )}(−1) of the second random number k2 on Z*n (k2{circumflex over ( )}(−1)∈Z*n) and multiplies the hash value H(M) of the message M by k2{circumflex over ( )}(−1) (k2{circumflex over ( )}(−1))H(M)mod n.
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 computes a value (k2{circumflex over ( )}(−1)) r*x′ mod n, which is obtained by multiplying r*x′ by (k2{circumflex over ( )}(−1), where x′ is the first distributed key and r is obtained by Equation (46), performs modulo n addition of (k2{circumflex over ( )}(−1)) r*x′ and k2{circumflex over ( )}(−1) (k2{circumflex over ( )}(−1))H(M).
and encrypts the added value using the public key pk to obtain c1.
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 performs a scalar multiplication of (k2{circumflex over ( )}(−1))*r mod n on c_key=Encrypt(pk, Δ) received from the biometric-based signature generation apparatus 130 to obtain c2.
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 obtains c3 from c1 and c2, based on additive homomorphism (additive homomorphic encryption).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 transmits R2 (R2=k2*G) and the encrypted value c3 to the biometric-based signature generation apparatus 130 (Step 10).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 receives R2 and c3 from the first distributed signing processing part 126 of the key-based signature generation apparatus 120 (Step 11).
Upon reception of R2 and c3, the second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 performs the following.
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 computes, using the first random numbers k1 and R2, a rational point on the elliptic curve R3=k1*R2=(x3, y3) (Step 12).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 obtains
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 decrypts the encrypted value c3 using the secret key sk (Step 14).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 computes s, by multiplying s′ and an inverse (inverse element)=k1{circumflex over ( )}(−1) of the first random number k1 to obtain s (Step 15).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 generates a signature σ=(r,s) (Step 16), where r is r3 obtained in Equation (52) and sis s obtained in Equation (54).
The signature transmission part 137 of the biometric-based signature generation apparatus 130 transmits the message M and the signature σ=(r,s) to the verification apparatus 140 (Step 17). The message M and the signature σ=(r,s) may be transmitted separately or together.
The message and signature reception part 143 of the verification apparatus 140 receives the message M and the signature σ (Step 2). The signature verification part 144 verifies the signature σ for the message M using the verification key v (=xG) which corresponds to the first signature key x (1/0+Verify(vk, M, σ)) (Step 3).
On reception of the signature σ=(r,s) and the message M, the signature verification part 144 computes the hash value H(M) of the message M.
Next, the signature verification part 144 computes
where v=xG is a verification key corresponding to the first signature key x.
Substituting u1 and u2 in Equations (55a) and (55b) into the right side of Equation (56), the signature verification part 144 computes
In Equation (57),
then the denominator (H(M)+r*(x′+Δ)mod n) of the right side of equation (57) coincides with the numerator (H(M)+r*x mod n), and the following holds.
Assuming that xR′ and xr3 are integer representation of x1′ in Equation (56) and x3 in Equation (59), respectively, Equation (59) is equivalent to the following.
That is, r′ matches r (=r3) of the signature σ=(r,s) and Verify(vk, M, σ) returns an acceptance (1).
On the other hand, in Equation (57),
then the denominator (H(M)+r*(x′+Δ)mod n) of the right side of Equation (57) does not match the numerator (H(M)+r*x mod n),
mr′=xR′ mod n≠xr3 mod n (=r3)
Since r′ does not match r(=r3) in the signature (r,s), Verify(vk, M, σ) returns a rejection (0).
Message M may be given externally to each of the key-based signature generation apparatus 120 and the biometric-based signature generation apparatus 130.
For the purpose of increasing security, a zero-knowledge proof (Non-Interactive zero-knowledge (NIZK)) about the first random number k1 may be provided from the biometric-based signature generation apparatus 130 to the key-based signature generation apparatus 120. In this case, the biometric-based signature generation apparatus 130 and the key-based signature generation apparatus 120 share a proof generation key and a proof verification key. For example, in
A non-interactive zero-knowledge proof of knowledge of the second random number k2 may be provided from the key-based signature generation apparatus 120 to the biometric-based signature generation apparatus 130. For example, in
The biometric-based signature generation apparatus 130 may execute the key generation algorithm (sk, pk)←KeyGen(λ) of additive homomorphic cryptography in advance, store the key pair (sk, pk) of the secret key and public key, and transmit the public key pk to the key-based signature generation apparatus 120. The kay pair may be used for signature generation.
The biometric-based signature generation apparatus 130 may transmit s2 and M, R1, pk, and c_key to the key-based signature generation apparatus 120 at the same time or may transmit them separately.
The following describes a Schnorr signature scheme as another example of distributed signature generation between the biometric-based signature generation apparatus 130 and the key-based signature generation apparatus 120. The Schnorr signature is outlined as below.
p and q are prime numbers q|(p−1) (q is a divisor of p−1)
g is an element of an order q of a multiplication group Zp*, i.e. g{circumflex over ( )}q≡1 (mod p)
A secret key x is selected uniformly at random.
The symbol “←R” represents that the secret key x is selected uniformly at random from an information source (in this case, Zq).
The public key v is computed.
The public key may be p, q, g, or v. However, p, q, and g may be shared by each apparatus as common parameters, and the public key may be v.
k is selected uniformly at random.
Hash function H takes as input r and a message M.
s is computed using k, e and x.
Signature σ=(e, s)
The verification process Verify(vk, M, σ) (where v=g{circumflex over ( )}x mod p: public key) that verifies using the verification key, the signature σ=(e, s) and message M, computes
and checks if a hash value of the Hash function H which takes as input r′ and M equals e of the signature σ.
Verify(vk, M, σ) returns 1 (acceptance) if Equation (70) holds, and 0 (rejection) if Equation (70) does not hold. Verify(vk, M, σ) may return 1 (acceptance) if
holds, and 0 (rejection) if not.
The first biometric information acquisition part 111 of the key generation apparatus 110 acquires the first biometric information w (Step 1).
The key generation part 112 of the key generation apparatus 110 selects the first signature key x uniformly at random (x←R Fn*) (Step 2).
The key generation part 112 of the key generation apparatus 110 generates a verification key v corresponding to the first signature key x (v=g{circumflex over ( )}x) (Step 3). The pair of the first signature key x and the verification key v may be generated in a single key generation procedure.
The verification key transmission part 113 of the key generation apparatus 110 transmits the verification key v to the verification apparatus 140 (Step 4).
The first auxiliary data generation part 114 of the key generation apparatus 110 generates the first auxiliary data s1 (=Encode(x)+w) using an encoded key c (=Encode(x)) of the first signature key x and the first biometric information w (Step 5).
The first auxiliary data transmission part 115 of the key generation apparatus 110 transmits the first auxiliary data s1 to the key-based signature generation apparatus 120 (Step 6).
In the key-based signature generation apparatus 120, the first auxiliary data reception part 121 receives the first auxiliary data s1 and stores it in the first auxiliary data storage part 122 (Step 1).
In the biometric-based signature generation apparatus 130, the second biometric information acquisition part 131 acquires the second biometric information w′ (Step 1). The message acquisition part 132 acquires the message M (Step 2).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 selects a second distributed key Δ uniformly at random (Δ←R Zq) (Step 3).
The second auxiliary data generation part 134 of the biometric-based signature generation apparatus 130 generates the second auxiliary data s2 (=Encode(Δ)+w′) using the second distributed key Δ and the second biometric information w′ (Step 4).
The second auxiliary data transmission part 135 of the biometric-based signature generation apparatus 130 transmits the message M and the second auxiliary data s2 to the key-based signature generation apparatus 120 (Step 5).
In the key-based signature generation apparatus 120, the second auxiliary data reception part 124 receives the second auxiliary data s2 transmitted from the second auxiliary data transmission part 135 of the biometric-based signature generation apparatus 130 (Step 2).
The first distributed key generation part 125 of the key-based signature generation apparatus 120 decodes a difference between the first auxiliary data s1 and the second auxiliary data s2 (s1−s2) to generate the first distributed key x′ (Step 3).
In the biometric-based signature generation apparatus 130, the second distributed signing processing part 136 may perform the following, for example.
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 selects a first random number k1 uniformly at random (k1←R Zq, where k1∈[0, q−1]) (Step 6).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 obtains a value r1 by multiplying the generator of the group g by the first random number k1 (Step 7).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 transmits the message M and r1 to the key-based signature generation apparatus 120 (Step 8).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 receives the message M and r1 transmitted from the biometric-based signature generation apparatus 130 (Step 4).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 chooses a second random number k2 uniformly at random (k2←R Zq(k2∈[0, q−1])) (Step 5).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 obtains a value r2 by multiplying the generator g by a second random number k2 (Step 6).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 multiplies r2 by r1 transmitted from the biometric-based signature generation apparatus 130 to obtain the value r (Step 7).
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 supplies as input r and the message M to the hash function H to compute the following (Step 8):
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 uses a multiplied value of e and the first distributed key x′ and the second random number k2 to compute the following (Step 8).
(e, s′) may be a part of the distributed signature.
The first distributed signing processing part 126 of the key-based signature generation apparatus 120 transmits r2 derived by Equation (74) and s′ (the second element of the signature) to the biometric-based signature generation apparatus 130 (Step 10).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 receives r2 and s′ transmitted from the key-based signature generation apparatus 120 (Step 9).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 obtains a value r by multiplying r2 (=g{circumflex over ( )}k2 mod p) received from the key-based signature generation apparatus 120 by r1 (=g{circumflex over ( )}k1 mod p) computed by the second distributed signing processing part 136 (Step 10).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 supplies r and the message M to the hash function H to obtain the following (Step 11).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 computes the following (Step 12).
The second distributed signing processing part 136 of the biometric-based signature generation apparatus 130 generates (completes) the signature σ=(e, s) for the message M by the signature key (x′+Δ) (Step 13).
The signature transmission part 137 of the biometric-based signature generation apparatus 130 transmits the message M and the signature σ=(e, s) to the verification apparatus 140 (Step 14).
In the verification apparatus 140, on reception of the signature σ=(e, s) and message M by the message and signature reception part 143, the signature verification part 144 verifies correctness of a pair of the signature σ=(e, s) and the message M using the verification key v (=g{circumflex over ( )}x mod p) (Verify(vk, M, σ)). That is, the signature verification part 144 obtains a value r′, which is obtained by multiplying the generator g raised to s (power) and the public key v raised to e (power).
Then, the hash value for r′ and message M
is obtained.
Verify(vk, M, σ) returns 1 (acceptance), if the following holds,
else returns 1 (rejection).
That is, for the right side of Equation (81),
From this, r′ in Equation (81) is given as follows.
The right hand side of equation (86) is,
r′ coincides to r in Equation (78). Thus,
holds and Verify(vk, M, σ) returns 1 (acceptance).
then r′≠r
and Verify(vk, M, σ) returns
0 (rejection).
Verify(vk, M, σ) in the signature verification part 144 may return 1 (acceptance) if (g{circumflex over ( )}s)*(v{circumflex over ( )}e) matches the right side of Equation (78): r1*r2 mod p=g{circumflex over ( )}{(k1+k2)mod q} mod p, and 0 (rejection) if it does not match.
For the purpose of increasing security, a zero-knowledge proof (Non-Interactive zero-knowledge (NIZK)) about the first random number k1 may be provided from the biometric-based signature generation apparatus 130 to the key-based signature generation apparatus 120. In this case, the biometric-based signature generation apparatus 130 and the key-based signature generation apparatus 120 share a proof generation key and a proof verification key. For example, in
A non-interactive zero-knowledge proof of knowledge of the second random number k2 may be provided from the key-based signature generation apparatus 120 to the biometric-based signature generation apparatus 130. For example, in
The difference from
The signature verification part 139 of the biometric-based signature generation apparatus 130 verifies correctness of a pair of the signature σ and the message M using the verification key v, where the signature σ is generated by the second distributed signing processing part 136 in cooperation with the first distributed signing processing part 126 of the key-based signature generation apparatus 120 using the distributed signature generation algorithm. The signature verification part 139 performs the same verification process as the signature verification part 144 of the verification apparatus 140. When a pair of the signature σ and the message M is verified to be correct by the signature verification part 139, the signature transmission part 137 transmits the signature σ and the message M to the verification apparatus 140. If the pair of the signature σ and the message M is not correct, the signature σ is not transmitted. An error message may be output to a display apparatus not shown.
The first biometric information w and the second biometric information w′ may be a binary vector, a real valued vector, or an integer vector.
In the above disclosure, example systems that perform processing based on biometric information are described, but the present disclosure is not limited to biometric information. The present disclosure is applicable to implement such a system using fuzzy information other than biometric information. For example, each aspect/example/embodiment described in the present disclosure may be applied to PUF (Physically Unclonable Function), etc. PUF may be used to identify a semiconductor apparatus (IC (Integrated Circuit) chip) and is a technology that uses individual differences that occur in a manufacturing process of IC chips, etc. to identify individuals (IC chips) like human fingerprints, for example.
The above examples/embodiments of the present disclosure may partially or entirely be described as the following Supplementary notes (Notes), though not limited thereto.
(Note 1) A digital signature system includes
A verification apparatus provides with at least a processor and a communication interface, receives the signature from the first signature generation apparatus or the second signature generation apparatus, obtains a message from the first signature generation apparatus, and verifies correctness of a pair of the message and the first signature using a verification key.
(Note 8) In the digital signature system of Note 7, the key generation apparatus transmits the verification key to the first signature generation apparatus or the second signature generation apparatus.
The first signature generation apparatus or the second signature generation apparatus verifies correctness of the signature for the message using the verification key for the signature generated by the distributed signing process, and if a verification result of the signature is acceptance, the signature is transmitted to the verification apparatus.
(Note 9) A digital signature method includes:
The first node or the second node transmits the signature generated by the distributed signing process to a signature verification destination.
(Note 13) A non-transitory recording medium storing programs for a first processing apparatus and a second processing apparatus communicatively connected to each other,
The first processing apparatus executes the program to generate the first distributed key using the first auxiliary data and the second auxiliary data.
The first processing apparatus and the second processing apparatus execute the programs to perform a distributed signing process using at least the first distributed key and the second distributed key to generate a signature for the message.
(Note 14) In the non-transitory recording medium of Note 13, the first auxiliary data is a composited by the encoded value of the signature key and the first biometric information.
The second auxiliary data is composited by the value of the first distributed key encoded by the encoding function and the second biometric information, with the same operation as that used for composition of the first auxiliary data.
(Note 15) In the non-transitory recording medium of Note 13 or 14, the first processing apparatus executes the program to generate the second distributed key by decoding the difference between the first auxiliary data and the second auxiliary data.
(Note 16) In the non-transitory recording medium of any one of Notes 13 to 15, in the distributed signing process performed by the first processing apparatus and the second processing apparatus, the signature is generated by using a sum of the first distributed key and the second distributed key as a signature key, and
The disclosure of each of patent literature 1 and reference literatures is incorporated herein by reference thereto. Variations and adjustments of the examples are possible within the scope of the overall disclosure (including the claims) based on the basic technical concept. Various combinations and selections of examples and disclosed elements (including the elements in each of the claims, examples, drawings, etc.) are possible within the scope of the claims of the present application. That is, the present disclosure includes various variations and modifications that could be made by those skilled in the art according to the overall disclosure including the claims and the technical concept.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2023-206988 | Dec 2023 | JP | national |