The disclosure relates to a system and a method for generating a blind signature using lattice-based cryptography.
Blind signatures are interactive protocols between a user and a signer enabling the user to obtain a signature for a message from the signer without the revealing the message to the signer. At the end of the protocol, the user obtains a valid signature for the message under the secret key of the signer. To be secure, the blind signature scheme is such that the signer does not know the message and the secret key is confidential to the signer. Applications of blind signatures include e-cash, anonymous credentials and e-voting.
A digital signature scheme generally involves three functions:
A blind signature scheme may make use of commitments and Non-Interactive-Zero-Knowledge (NIZK) proofs of knowledge.
A commitment scheme generally involves a tuple of three functions:
The commitment scheme has a binding property that ensures that the commitment c=com(m,r) cannot be opened to any message other than m, and a hiding property that ensures that the commitment c appears completely random even if the message m corresponding to the commitment c is known.
An NIZK proof of knowledge is a non-interactive proof of knowledge that can be used to prove knowledge of a secret without revealing the secret. For security purposes, an NIZK proof of knowledge scheme must be zero-knowledge in that the scheme does not leak any information about the secret, and sound in that only a prover knowing the secret can output a valid proof.
By way of example, a blind signature scheme is set out below:
(sk)
(vk, m)
The user U knows a message m and the verification key vk and the signer S knows the signing key sk. The user U randomly samples random data r and random data u. The user then generates a commitment c using Com(m,r) and sends the commitment to the signer S. Following receipt of the commitment c, the signer S signs the commitment c using the signing key sk to generate a signature σ. The signer S then sends the signature σ to the user U. The user U then verifies the signature is a valid signature for the commitment c using Verify(vk,c,σ), and following successful validation encrypts the commitment c, the signature σ and the random data u using a public key pk to generate a ciphertext c. The user U then generates a proof π that allows anyone knowing the message, the ciphertext ct and the proof π to establish that the user U has knowledge of a valid signature σ for a commitment of the message m.
Lattice-based cryptography denotes a family of cryptographic schemes whose security is based on the hardness of mathematical problems over lattices. Most lattice-based cryptographic schemes are considered to be post-quantum through being conjectured to be resistant to attacks by malicious parties having access to a hypothetical large-scale quantum computer. Accordingly, lattice-based cryptographic schemes are attracting increasing interest to prepare for when such large-scale quantum computers become a reality.
In this specification, the following notation will be used:
Lattice-based cryptographic schemes generally entail computing matrix-vector products A·x, where x is subject to some constraints. The short integer solution (SIS) problem and the learning with errors (LWE) problem are staples of lattice-based cryptography. In brief:
There are various problems associated with using a lattice-based cryptographic scheme in a blind signature scheme such as the one described above. In particular, the proof of knowledge needed is specific and has to prove a complex relation, a problem which is exacerbated by the fact that all efficient lattice-based signature schemes first generate a hash of the message before signing so that the relation that is being proven is no longer that σ=sign(sk,c) but instead that σ=sign(sk,H(c)). This implies that the security of the scheme is not formally provable because security requires the hash function H to be modelled as a random oracle but the NIZK proof of knowledge requires an explicit description of the hash function. In addition, and perhaps more importantly, proving properties of hash functions in zero knowledge is very complicated and this results in very inefficient schemes.
According to a first aspect of the present invention, there is provided a computer-implemented method of generating a signature for a message. A user device processes the message and random data to generate a commitment for the message, and transmits the commitment to a signer device. The signer device derives a target vector from the commitment and samples, using a secret trapdoor function, a short vector that solves a lattice problem involving the target vector. The signer device then sends the short vector to the user device, which verifies that the short vector solves the lattice problem. Following successful verification of the short vector, the user device generates a signature establishing knowledge of the short vector based on the message and public data.
According to a second aspect of the invention, there is provided a user device comprising a processor to process a message and random data to generate a commitment for the message. The user device further comprises a transmitter to transmit the commitment to a signer device and a receiver to receive, in response to the transmission of the commitment, a short vector from the signer device. The processor is then configured to verify that the short vector solves a lattice problem and following successful verification of the short vector, generate a signature establishing knowledge of the short vector based on the message and public data.
According to a third aspect of the invention, there is provided a device for signing a message, the device having access to a secret trapdoor function. The device comprises a receiver to receive a commitment from a user device, the commitment corresponding to a message to be signed, and a processor configured to derive a target vector from the commitment and sample, using the secret trapdoor function, a short vector that solves a lattice problem involving the target vector. The device further comprises a transmitter to transmit the short vector to the user device.
Further features and advantages of the invention will become apparent from the following description of preferred embodiments of the invention, given by way of example only, which is made with reference to the accompanying drawings.
The user device 1 includes a processor 7 configured to perform cryptographic functions, a transmitter 9 and a receiver 11. Similarly, the signer device 5 includes a processor 13 configured to perform cryptographic functions, a transmitter 15 and a receiver 17. The signer device 5 also has access to a secret trapdoor function 19.
As shown, the user device 1 sends, using the transmitter 9, a first message M1 conveying a commitment c for the message m and a first Non-Interactive-Zero-Knowledge (NIZK) proof π1 to the receiver 17 of the signer device 5. As will be discussed below, the commitment c is generated by the user device 1 based on the message m, a publicly available gadget vector g and some random data r, and the user device 1 also generates the first NIZK proof π1 which establishes that the commitment c opens to the message m.
The commitment c is a trapdoor sampling compatible commitment and the signer device 5. In this way, the signer device 5 is able to use the secret trapdoor function 19 to solve a lattice problem that would otherwise be hard to solve. The lattice problem is difficult to solve without knowledge of the secret trapdoor function 19, and therefore the blind signature scheme works on the assumption that a valid solution of the lattice problem must have been generated using the secret trapdoor function 7. In this regard, it is noted that the lattice problem is resistant to attacks using either or both of classical computing systems and quantum computing systems. As such, the solution to the lattice problem is resistant even to an attack by a malicious party having access to a large-scale quantum computer. This property allows the blind signature scheme of this example to be considered “post-quantum”.
In this example, the lattice problem is to sample a vector e∈Rk(2+k) such that:
where a1, a2, b1 . . . bk are publicly available vectors that are uniform in qk, t is a target vector derived from the commitment c using a publicly available function ParseCom(c), u is a publicly available value randomly sampled from
q and B is a publicly available bounding value. Given the constraint on the length of the vector e, the vector e will hereafter be referred to as the short vector e. The secret trapdoor function 19 is associated with the public vector a1 (and will accordingly hereafter be referred to sometimes as the trapdoor function Ta1), and has the property that for any n>0, any v∈
qn, and any u∈
q, the signer device 5 can sample e∈Rqk+n such that [a1|v]·e=u and ∥e∥<B.
The signer device 5 then uses the transmitter 15 to send a second message M2 to receiver 11 of the user device 1 conveying the short vector e. The user device 1 can then verify that the short vector e is a valid solution to the lattice problem, given that the user device 1 can determine the target vector t using the function ParseCom(c) and the remaining data in the lattice problem is publicly available. After the user device 1 has verified that the short vector e is valid, knowledge of the short vector e by the user device 1 can be used as evidence that a short vector e for the commitment c was determined by the signer device 5.
In this example, the signer device 5 then generates a second NIZK proof π2 that will act as the blind signature for the message m. In this regard, it is important for security purposes that the second NIZK proof π2 requires only publicly available information such that the second NIZK proof π2 does not depend on any information that is specific to this execution of the protocol so that the information cannot be linked to the protocol when revealed. Accordingly, the second NIZK proof π2 should not disclose information about the random data used to generate the commitment or the target vector used to generate the short vector e. To achieve this, the signer device 5 reformulates the lattice problem into the form ã·{tilde over (e)}=u, where:
where g is the publicly available gadget vector, r1 . . . rk are vectors derived from the random data r and e2,1 refers to the i-th co-efficient of e2. By this formulation, the vector ã consists of publicly available information whereas the vector e, hereafter referred to as the modified short vector {tilde over (e)}, includes information from the short vector e and the random data. In this example, the second NIZK proof π2 establishes from the vector ã and the value u that the signer has the short vector e. In this way, given that the vector ã is derived using the hash h of the message m, the second NIZK proof π2 acts as a signature.
A person skilled in the art will appreciate that form of the second NIZK proof π2 is straightforward and does not require information regarding the manner in which the hash function generates the hash h of the message m. Indeed, there are known proofs for establishing, based on knowledge of a public vector (e.g. the vector ã) and a polynomial (e.g. the random data u), knowledge of a secret vector (e.g. the modified short vector {tilde over (e)}).
The user device 1 then sends a third message M3 to the recipient device 3 conveying the message and the second NIZK proof π2. The recipient can then verify the second NIZK proof π2 to validate the message m.
The blind signature scheme described above with reference to
Another advantage of the blind signature scheme described above with reference to
Further details of the blind signature scheme described above with reference to
As shown in zk
qk if we only consider correctness.
The Com(m,r) function can be represented as follows:
q
where the function Expand(r) takes the n-bit random data r as input and outputs k uniform vectors r1, . . . , rk in qk.
The user device 1 then determines, at S5, the first NIZK proof π1 using a zero-knowledge protocol Π1 which, for a polynomial h∈q such that μh∥≤Bh, and the commitment c proves knowledge of h and r. In this example, the zero-knowledge protocol Π1 is a straight line extractable proof.
The user device 1 then sends, at S7, the commitment c and the first NIZK proof π1 to the signer device 5 (c.f, message M1 in
Following receipt, at S9, of the commitment c and the first NIZK proof π1, the signer device 5 verifies, at S11, the first NIZK proof π 1 to validate the commitment c. If the verification fails no further action is taken. If the verification passes, the signer device 5 samples, at S13, the short vector e satisfying the lattice problem discussed above. This involves using the function ParseCom (c) to generate the target vector t and then using the secret trapdoor function 19 to determine the short vector e as discussed above.
Any vector a1 for which there exists a small (hidden) basis for the lattice orthogonal to a1 can be used as a trapdoored vector by using a preimage sampling algorithm such as that disclosed in the article “Trapdoors for hard lattices and new cryptographic constructions” by Gentry et al, 40th ACM STOC, pp. 197-206. In this example, the so-called NTRU trapdoor is used. For this trapdoor, the matrix a1 is of the form [1|h] where h∈q is the quotient of two small polynomials h=g/f with typically f and g having co-efficients in {−1,0,1}. Such a matrix has a smaller trapdoor than the one proposed in the Gentry et al article referred to above.
The signer device 5 then sends the short vector e to the user device 1 (c.f. message M2 in
Following receipt, at S17, of the short vector e, the user device 1 verifies, at S19, that the short vector e satisfies the lattice problem. Then, as discussed in detail above, the user device 1 modifies, at S21, the short vector e to generate the modified short vector {tilde over (e)} and determines the second NIZK proof π2. The user device 1 then outputs the second NZIK proof π2, for example along with the message m to the recipient device 3 (c.f. message M3 in
The blind signature algorithm described with reference to
(T
)
(m)
1(c, (h, r))
:= [e1 | e2 | e2,1r1 + e3,1 | . . . | e2,krk + e3,k]
:= [a1 | a2 + hg | b1 | . . . | bk]
,u),ē)
indicates data missing or illegible when filed
In this pseudocode, the function ParseRand determines the vectors r1, . . . , rk using the function Expand(r) discussed above.
In the example described above, the user device 1 uses a straight-line extractable proof to determine the first NIZK proof 1. Compared, for example, with the Fiat-Shamir with Abort proof, the straight-line extractable proof is comparatively complicated and gives a larger proof size but also provides an improved security. For applications where loss of security is not an important issue, other protocols such as those based on the Fiat-Shamir with Abort proof, could be used, or the first NIZK proof π1 could even be dispensed with completely.
Lattice-based proofs are known to have a “slack” in that the secret proven is larger than the actual known secret, but recently lattice-based proofs have been developed that remove this slack at the expense of increased proof size. Accordingly, there is an interplay between desired security, proof size and processing complexity to be taken into account when selecting the zero-knowledge protocol Π1 for the first NIZK proof 1. In contrast, for the second NIZK proof π2, the only concern is proof size and any NIZK protocol Π2 could be used.
The blind signature scheme described above with reference to
The public parameters b1, . . . , bk can be selected such that b1=b2= . . . =bk. This allows the signer device 5 simply to sample a short vector e such that:
Doing so reduces the signature size, at the expense of increasing the complexity of the zero-knowledge protocol Π2.
Further modifications to the lattice problem are possible. For example, the public parameters b1, . . . , bk are only included for security reduction and may be omitted from the lattice problem such that the signer device 5 samples a pre-image for [a1|a2+t]. Even the public parameter a2 could be omitted such that the signer device 5 samples a pre-image for [a1|t], although this would potentially make the blind signature scheme vulnerable to attack.
In order to further simplify the blind signature scheme, the NIZK protocol Π2 could be replaced by, for example, a signature conveying ã and {tilde over (e)} allowing the recipient device 3 to verify that ã·{tilde over (e)}=u, although this potentially breaks the unlinkability of the blind signature scheme given the similarity between the short vector e and the modified short vector {tilde over (e)}. Alternatively, the user device may sample a small vector f∈q2k+k and send u′=[a1|a2+t|b1| . . . |bk]fT to the signer device together with the commitment c and possibly the first NIZK proof π1. The user device can subsequently output {tilde over (e)}+f as the signature. Depending on whether rejection sampling is used and the size of f, this technique can hide the modified short vector {tilde over (e)}. This technique can be further refined by sampling multiple vectors f and storing the multiple vectors f in a hash tree to make rejection sampling succeed with overwhelming probability.
In the blind signature schemes described above, the public parameters a1, a2, b1, . . . , bk are all vectors in qk. Alternatively, the blind signature scheme can accommodate the public parameters as matrices instead of vectors and use different column dimensions for each matrix. For example: instead of the vector a1, a matrix
could be used; instead of the vector a2 and the target vector t, matrices
could be used; instead of the vectors b1, . . . , bk, matrices Bi in
could be used. Using matrices instead of the vectors for the public parameters can provide better granularity.
The cryptographic functions discussed above may be implemented in software, hardware or a combination of software of hardware. Accordingly, the operations of the user device 1 and the signer device 5 discussed above could be implemented as processor-implementable instructions which, when executed by a processor, perform their respective functions. Alternatively, the functions of the user device 1 and the signer device 5 discussed above could be implemented by a hardware circuit, for example an FPGA or an ASIC, which performs their respective functions, or a combination of processor-implementable instructions and hardware. Whether the functions are implemented by software, a hardware device or a mixture of software and a hardware device, the functions can be said to be implemented by modules of the user device 1 and the signer device 5.
The above embodiments are to be understood as illustrative examples of the invention. Further embodiments of the invention are envisaged. It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.
Number | Date | Country | Kind |
---|---|---|---|
22305843.9 | Jun 2022 | EP | regional |
This application is a continuation under 35 U.S.C. § 120 of International Application No. PCT/GB2023/051508, filed Jun. 9, 2023 which claims priority to European Application No. 22305843.9, filed Jun. 9, 2022, under 35 U.S.C. § 119 (a). Each of the above-referenced patent applications is incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/GB2023/051508 | Jun 2023 | WO |
Child | 18972271 | US |