This application claims the benefit of Chinese patent application No. 202210445891.6, entitled “LATTICE-BASED PROXY SIGNATURE AND VERIFICATION METHOD, APPARATUS AND DEVICE, AND STORAGE MEDIUM”, filed on Apr. 26, 2022 with the China National Intellectual Property Administration, which is incorporated herein by reference in its entirety.
The present disclosure belongs to the field of signature security, and in particular relates to a lattice-based proxy signature and verification method, apparatus and device, and a storage medium.
Proxy signature scheme is a kind of special digital signature system in which a user called an original signer may delegate his digital signature power to another user called a proxy signer, and a digital signature is generated by the proxy signer on behalf of the original signer. In addition to a basic environment such as e-commerce and e-banking that requires the proxy signature, with the in-depth development of the proxy signature and its various extension forms, the proxy signature may also be applied in many different situations, such as in distributed shared object system, grid computing, mobile agent, distribution network, privacy protection of in-vehicle ad hoc network, cloud computing platform or wireless sensor network.
In many application scenarios, such as a wireless sensor network, a cloud computing platform and a mobile vehicle autonomous network, signatures are often in form of “signature sets” signed for different messages by different users. A verifier is required to receive these different signatures and verify them one by one. However, verifying so many (sometimes enormous) signatures will cost a lot of computing resources and time, and the transmission amount of these signatures is large. An efficient proxy signature algorithm will effectively solve this problem, which is particularly important for limited network and computer resources.
Since Mambo, et al. put forward a concept of proxy signature in 1996, research on proxy signature by cryptographers has emerged one after another. In recent 20 years, proxy signature schemes based on discrete logarithm, prime factor decomposition and elliptic curve discrete logarithm problem have been put forward in succession. These proxy signature schemes are low in algorithm efficiency, difficult to be solved in finite fields, and suffer from a forgery attack from the original signer.
On the other hand, many scholars have studied lattice-based proxy signature methods, but there are still many problems in the existing lattice-based proxy signature methods: the original signer may forge a signature of the proxy signer; a size of a private key of the proxy signer is larger than a size of a private key of the original signer, resulting in low storage efficiency; only a weak proxy signature attribute is provided while non-repudiation of the proxy signer is not provided.
Most of the existing proxy signature schemes mentioned above are based on number theory problems, which may not resist an attack from a quantum computer, and the lattice-based signature schemes may not guarantee a strong proxy attribute. Therefore, these proxy signature schemes are still required to be improved.
Based on this, a lattice-based proxy signature and verification method, apparatus and device, and a storage medium are provided according to the present disclosure, to overcome the defects of the conventional technology.
In a first aspect, a lattice-based proxy signature method is provided according to the present disclosure. The method is applied to a first node and includes:
Further, the first ring is determined by:
Further, the first ring is specifically determined by:
Further, the generating a first public key and a first private key based on the first polynomial includes:
Further, the calculating a proxy signature polynomial based on the first public key, the first private key and the second polynomial includes:
Further, the randomly selecting a second polynomial from a second ring includes:
Further, the calculating a signature of the delegation certificate includes:
Further, the input parameters (p1,n1,k1) take optimal solutions of n1=512, p1=8383489 and k1=214.
In a second aspect, a lattice-based proxy signature method is provided according to the present disclosure. The method is applied to a second node and includes:
Further, the third ring is determined by:
Further, the third ring is specifically determined by:
Further, the generating a second public key and a second private key based on the third polynomial includes:
Further, the proxy public key and the proxy private key are calculated by:
Further, the calculating a signature of the proxy information includes:
Further, the calculating a proxy signature of a message includes:
Further, the input parameters (p2,n2,k2) take optimal solutions of n2=512, p2=8383489 and k2=214.
In a third aspect, a lattice-based proxy signature verification method is provided according to the present disclosure. The method is applied to a verification node and includes:
Further, the verifying validity of the proxy signature information based on the public key information includes:
Further, the verifying validity of a proxy signature of the message based on the proxy public key includes:
Further, the counter-signature c1′ is calculated by the following equation:
Further, the counter-signature c2′ is calculated by the following equation:
Further, the counter-signature c3′ is calculated by the following equation:
Further, before calculating the counter-signature c1′, the method further includes:
Further, before calculating the counter-signature c2′, the method further includes:
Further, before calculating the counter-signature c3′, the method further includes:
In a fourth aspect, a lattice-based proxy signature apparatus is provided according to the present disclosure. The apparatus includes a first polynomial generation module, a first key generation module, a delegation certificate generation module and a first signature calculation module.
The first polynomial generation module is configured to generate polynomials.
The first key generation module is configured to generate a public key and a private key.
The delegation certificate generation module is configured to generate a delegation certificate.
The first signature calculation module is configured to calculate a signature.
The proxy signature apparatus including the above modules is configured to implement the lattice-based proxy signature method according to the first aspect of the present disclosure.
In a fifth aspect, a lattice-based proxy signature apparatus is provided according to the present disclosure. The apparatus includes a second polynomial generation module, a second key generation module and a second signature calculation module.
The second polynomial generation module is configured to generate polynomials.
The second key generation module is configured to generate a public key and a private key.
The second signature calculation module is configured to calculate a signature.
The proxy signature apparatus including the above modules is configured to implement the lattice-based proxy signature method according to the second aspect of the present disclosure.
In a sixth aspect, a lattice-based proxy signature verification apparatus is provided according to the present disclosure. The apparatus includes an information acquisition module, a public key acquisition module and a signature verification module.
The information acquisition module is configured to acquire a message and proxy signature information.
The public key acquisition module is configured to acquire public key information which includes a public key of a first node, a public key of a second node and a proxy public key.
The signature verification module is configured to verify validity of the proxy signature information based on the public key information.
The signature verification module is further configured to verify validity of a proxy signature of the message based on the proxy public key.
In a seventh aspect, a lattice-based proxy signature device including a memory storing computer executable instructions and a processor is provided according to the present disclosure. The computer executable instructions, when executed by the processor, cause the proxy signature device to execute the lattice-based proxy signature method according to the first aspect and/or the second aspect.
In an eighth aspect, a lattice-based proxy signature verification device including a memory storing computer executable instructions and a processor is provided according to the present disclosure. The computer executable instructions, when executed by the processor, cause the proxy signature verification device to execute the lattice-based proxy signature verification method according to the third aspect.
In a ninth aspect, a storage medium storing a computer executable program is provided according to the present disclosure. The program is configured to, when being executed, implement the lattice-based proxy signature method according to the first aspect and/or the second aspect.
In a tenth aspect, a storage medium storing a computer executable program is provided according to the present disclosure. The program is configured to, when being executed, implement the lattice-based proxy signature verification method according to the third aspect.
As can be seen from the above technical solutions, the present disclosure has the following beneficial effects.
A lattice-based proxy signature and verification method, apparatus and device, and a storage medium are provided according to the present disclosure. A public key and a private key of a polynomial computing node are randomly selected from a ring. A size of a proxy public key and a proxy private key is the same as a size of a public key and a private key of an original signer. Therefore, compared to the existing proxy signature methods, the public key and the private key are shorter and the storage efficiency is higher. With proxy signature information generated according to the present disclosure, both a signature of the original signer and a signature of a proxy signer are shown. Once a proxy signature is created, the proxy signer cannot deny it, which has strong undeniable and unforgeable properties. The proxy signature method according to the present disclosure has an advantage of resisting attacks from a quantum computer.
For more clearly illustrating embodiments of the present disclosure or the technical solutions in the conventional technology, drawings referred to for describing the embodiments or the conventional technology will be briefly described hereinafter. The drawings in the following description are only examples of the present disclosure, and for those skilled in the art, other drawings may be obtained based on the provided drawings without any creative efforts.
Technical solutions of embodiments of the present disclosure are clearly and completely described hereinafter in conjunction with the drawings of the embodiments of the present disclosure. Apparently, the described embodiments are only some embodiments of the present disclosure, rather than all embodiments. Any other embodiments obtained by those skilled in the art based on the embodiments of the present disclosure without any creative work fall within the protection scope of the present disclosure.
The network architecture shown in
In order to improve the storage efficiency and the security of a signature, a new lattice-based proxy signature and verification method is provided according to the present disclosure, which improves the algorithms of key generation, signature and verification, and is described here first and then used in various embodiments.
Input parameters (p,n,k) are set, where n is an integer as a power of 2, p is a prime number which modulo 2n equals to 1, and k∈Z. A univariate polynomial set zp[x]/(xn+1) is generated based on the input parameters. zp[x] represents a set of all univariate polynomials with a coefficient range of [−(p−1)/2, (p−1)/2], and zp[x]/(xn+1) represents remaining part of the set zp[x] except those with a polynomial of (xn+1).
Polynomials are randomly selected from the set zp[x]/(xn+1) to form a ring Rp
A subset ring Rkp
Polynomials
are randomly selected based on the rings Rp
According to the present disclosure, a hash function is further defined in the algorithm Gen, which is used uniformly in the whole proxy signature process.
The hash function is expressed by H({0,1}*)←D32n, where D32n represents a set of univariate (n−1) degree polynomials. Any polynomial has at most 32 coefficients of ±1, and all other coefficients are 0. A hash function operation H(●) is configured to map any message of size of {0,1}* to a polynomial in D32n.
A specific structure of H(●) is as follows.
{0,1}* is mapped to a 160-bit string, which may be achieved by a commonly used hash operation, such as SHA256. In order to map the 160-bit string to D32n, a consecutive 5-bit string is viewed each time and is converted into a n/32-bit string with at most one non-zero coefficient. A specific conversion process is as follows.
Let a 5-bit string under viewing be (r1,r2,r3,r4,r5). If r1 is 0, −1 is placed at positions of r2, r3, r4 and r5 in the n/32-bit string. If r1 is 1, 1 is placed at positions of r2, r3, r4 and r5 in the n/32-bit string. Then, a 160-bit string is converted into an n-bit string, and ±1 is in the quantity of at most 32. An i-th coefficient of a polynomial is assigned to an i-th bit of the string, and the n-bit string is converted into a polynomial of at least (n−1) degree. If the degree of the polynomial is greater than n, all the high-order term coefficients will be 0.
(2) Signature Algorithm Sign (m,sk):
In this algorithm, a message m and a private key of a signer sk are input, and a signature result V is output. That is, in a case of signing the message m, two polynomials
are randomly selected, c←H(ay1+y2,m), z1←s1c+y1 and z2←s2c+y2 are calculated, and the signature result V is (z1,z2,c).
Before a signature is generated, it is also checked whether z1, z2 are within Rk−32p
Inputs used are a signature result V, a to-be-verified message m and a public key pk of a signer.
A counter-signature c′=H(az1+z2−t,m) is calculated, and whether c′ is equal to c is verified. If c′ is equal to c, 1 is returned to indicate that verification passed, and if c′ is not equal to c, 0 is returned to indicate that the verification failed.
Before calculation, it is also checked whether z1 and z2 belong to Rk−32p
The above-mentioned key generation algorithm Gen, signature algorithm Sign and verification algorithm Ver may be directly called in the following embodiments.
Reference is made to
In S101, the algorithm Gen is called to generate public keys and private keys of the first node and the second node respectively.
It is easy to understand that when generating a public key and a private key of each node, the node itself may call a program in a server to generate the public key and the private key. Alternatively, the node may send a key generation request to the server or to a control end, and the server or the control end may return a generated key to the node. In the embodiment, the node calls an algorithm program to generate the public key and the private key directly.
Therefore, for the first node, a process of calling the algorithm Gen is as follows.
Input parameters (p1,n1,k1) are selected, where n1 is an integer as a power of 2, p1 is a prime number which modulo 2n1 equals to 1, and k1∈Z. A univariate polynomial set Zp
where elements in the ring
are (n1−1) degree polynomials with the coefficient range of [−(p1−1)/2, (p1−1)/2]. A subset ring
of the ring
is randomly selected based on the parameter k1, where the ring
includes polynomials with a coefficient range of [−k1,k1].
Polynomials
are selected, t1←a1s11+s12 is calculated, and the first public key pk1=(a1,t1) and the first private key sk1=(s11,s12) are generated.
Similarly, for the second node, input parameters (p2,n2,k2) are selected, where n2 is an integer as a power of 2, p2 is a prime number which modulo 2n2 equals to 1, and k2∈Z. A univariate polynomial set zp
where elements in the ring
are (n2−1) degree polynomials with the coefficient range of [−(p2−1)/2, (p2−1)/2]. A subset ring
of the ring
is randomly selected based on the parameter k2, where the ring
includes polynomials with a coefficient range of [−k2,k2].
Polynomials
are selected, t2←a2s21+s22 is calculated, and the second public key pk2=(a2,t2) and the second private key sk2=(s21,s22) are generated.
The public key of the node may be broadcast to each node or registered on a bulletin board for disclosure, and the manner for disclosing the public key is not limited in the present disclosure.
In S102, the first node calculates a proxy signature polynomial.
The first node generates two polynomials
where
is a subset ring of
which includes polynomials with a coefficient range of [−1,1]. r1p←s11+k1 r2p←s12+k2 and k←a1k1+k2 are calculated. The proxy signature polynomial is generated based on (r1p,r2p, k), where k1,k2 are kept by the first node itself and not made public.
In S103, the first node generates a delegation certificate based on the public key of the second node and a valid time range of a proxy signature.
The first node combines its own public key pk1, the public key pk2 of the second node and the valid time range t into a long string to generate the delegation certificate w=(pk1, pk2,t). t indicates a time period during which the first node delegates the second node for the proxy signature. For example, if the first node restricts that the second node is delegated for the proxy signature only on Mar. 20, 2022, proxy signatures generated by the second node other than this time range are invalid.
In S104, the first node calls the signature algorithm Sign to sign the delegation certificate w, i.e., Sign(w, sk1)=cert=(z11,z12,c1).
In S105, the first node sends proxy information to the second node, which includes the proxy signature polynomial (r1p,r2p,k), the delegation certificate w and the signature cert.
In S106, the second node calculates a proxy public key and a proxy private key.
The proxy signature polynomial (r1p, r2p, k) is received from the first node. ap=a1, s1p=r1p/2, s2p=r2p/2 and tp=(t1+k)/2 are calculated, where (a1,t1) represents the public key of the first node. The proxy public key pkp=(ap, tp) and the proxy private key skp=(s1p,s2p) are generated.
The establishment of the proxy public key and the proxy private key also has the following relations:
In S107, the second node calls the signature algorithm Sign to calculate a signature of the proxy information σprx=(z21,z22,c2).
In the aforementioned information interaction, since the first node keeps k1,k2 from making them public, the second node cannot obtain any information about the private key of the first node from the public key of the first node, and any node that obtains the proxy signature polynomial (r1p,r2p,k) by eavesdropping or other means cannot calculate the private key of the first node, thus ensuring the security of information.
In S108, using the proxy public key and the proxy private key, the second node calls the signature algorithm Sign to calculate the proxy signature σ(z31,z32,c3) of the message m, and outputs w, cert and σpex together.
Reference is made to
In the embodiment, the original signature node A delegates nodes B, C and D for proxy signature.
On the basis of Embodiment 1, after generating the delegation certificate and the signature of the delegation certificate, the node A sends the proxy information including the proxy signature polynomial, the delegation certificate and the signature of the delegation certificate through secure channels established with B, C and D respectively. It is easy to understand that steps S201 to S205 in which the node A sends the proxy information to B, C and D are similar to steps S101 to S105 in Embodiment 1, and steps S206 to S208 for implementing proxy signature after the nodes B, C and D receive the proxy information are similar to steps S106 to S108 in Embodiment 1, which are not repeated here.
Reference is made to
It is assumed that there are users Alice and Bob, Alice is a mandator, Bob is a proxy signer, and there is a signature verifier.
In S301, public keys and private keys of Alice and Bob are generated.
By calling the previously described key generation algorithm Gen, Alice has a public key (aA, tA) and a private key (s1A,s2A), Bob has a public key (aB, tB) and a private key (s1B, s2B), and their public keys are published on a bulletin board.
In S302, Alice calculates a polynomial (r1p, r2p, k).
Alice generates two polynomials
where R1p
In S303, Alice generates a delegation certificate.
Subsequently, Alice introduces a valid time range t for the delegation, to generate a right delegation certificate w=(pkA, pkB, t), where w refers to combining three parameters pkA, pkB,t into a long string, and pkA, pkB represent public keys of Alice and Bob respectively.
In S304, Alice signs the delegation certificate.
Alice calls the aforementioned signature algorithm Sign to sign w to obtain cert, i.e., cert=Sign(w, skA).
In S305, Alice sends proxy information to Bob.
Alice sends (r1p,r2p,k), w and cert to Bob through an authenticated secure channel as the proxy information.
In S306, Bob calculates a proxy public key pkp=(ap,tp) and a proxy private key skp=(s1p,s2p).
After receiving (rip,r2p,k), w, cert from Alice, Bob calculates ap=aA,s1p=r1p/2 and s2p=r2p/2, and then calculates tp=(tA+k)/2, where tA is a part of the public key of Alice that Bob obtains from the bulletin board.
In S307, Bob calls the signature algorithm Sign to calculate a signature σprx of the owned information w, cert, pkp, i.e., σprx=Sign((w, cert, pkp), skB).
Since Alice keeps k1,k2 secretly, the proxy signer Bob cannot derive any information about the private key of the original signer Alice from the public key information pkA=(aA tA) of the original proxy. In addition, anyone that obtains (r1p,r2p,k) by eavesdropping or other means (such as Bob leaking information intentionally or unintentionally) cannot calculate the private key of Alice.
In S308, Bob calls the signature algorithm Sign to calculate a proxy signature a for a message m, i.e., σ=Sign(m,skp).
In S309, taking w,cert,σprx as another part of a final signature result, Bob sends (σ, (w,cert,σprx)) to the verifier.
In S3010, the verifier receives the message m and (σ, (w,cert,σprx)), and verifies validity of (σ, (w, cert, σprx)).
The message m has been made public in the network, and the verifier may obtain the message m by broadcasting of the message or publishing of the message by a message generation module or the like, which is not further limited in the present disclosure.
Similarly, the verifier may obtain the public keys of Alice and Bob on the bulletin board.
(1) The verification algorithm Ver is called to verify validity of the signature cert for w. That is, it is checked whether Ver(cert,w, pkA) is equal to 1. Specifically, it is to calculate c1′=H(aAz11+z12−tA, w), where cert=(z11,z12,c1). If c1′ is equal to c1, it means that Ver(cert,w, pkA) is equal to 1. If Ver(cert, w, pkA) is not equal to 1, 0 is returned, and a verification process is ended.
(2) The verification algorithm Ver is called to verify validity of the signature σprx, for (w,cert, pkp). That is, it is checked whether Ver(σprx, (w,cert,pkp),pkB) is equal to 1. Specifically, it is to calculate c2′=H(aBz21+zy−tD,(w,cert, pk)), where σprx=(z21,z21,c). If c2′ is equal to c2 it means that Ver(σprx,(w,cert,pkD),pkB) is equal to 1. If Ver (σprx,(w,cert,pkD),pkB) is not equal to 1, 0 is returned, and a verification process is ended.
(3) It is verified whether the valid time range t of the proxy signature in the delegation certificate w has expired. If the valid time range t of the proxy signature in the delegation certificate w has not expired, verification passed. If the valid time range t of the proxy signature in the delegation certificate w has expired, 0 is returned, and a verification process is ended.
(4) The verification algorithm Ver is called to verify validity of the signature 6 for m. That is, it is checked whether Ver(σ,m,pkD) is equal to 1. Specifically, it is to calculate c1′=H(anz31+z32−tp, m), where σ=(z31,z32,c3). If is equal to, it means that Ver(σ,m,pkD) is equal to 1. If is not equal to 1, 0 is returned, and a verification process is ended.
In addition, if in step (3) t has expired, authorization for proxy signature by Bob is invalid, and Alice may broadcast the signed message m to declare that the delegation certificate w is invalid.
Reference is made to
The first polynomial generation module 401 is configured to generate polynomials.
The first key generation module 402 is configured to generate a public key and a private key.
The delegation certificate generation module 403 is configured to generate a delegation certificate based on the polynomials generated in the module 401 and the keys generated in the module 402.
The first signature calculation module 404 is configured to calculate a signature of information.
For an execution process of the first polynomial generation module 401, reference may be made to the process of generating and calculating the polynomials described in the previous embodiments of the present disclosure, which is not repeated here.
For an execution process of the first key generation module 402, reference may be made to the process of generating the keys described in the previous embodiments of the present disclosure, which is not repeated here.
For an execution process of the delegation certificate generation module 403, reference may be made to the process of generating the delegation certificate described in the previous embodiments of the present disclosure, which is not repeated here.
For an execution process of the first signature calculation module 404, reference may be made to the process of calculating the signature described in the previous embodiments of the present disclosure, which is not repeated here.
Reference is made to
The second polynomial generation module 501 is configured to generate polynomials.
The second key generation module 502 is configured to generate a public key and a private key.
The second signature calculation module 503 is configured to calculate a signature of information.
For an execution process of the second polynomial generation module 501, reference may be made to the process of generating and calculating the polynomials described in the previous embodiments of the present disclosure, which is not repeated here.
For an execution process of the second key generation module 502, reference may be made to the process of generating the key described in the previous embodiments of the present disclosure, which is not repeated here.
For an execution process of the second signature calculation module 503, reference may be made to the process of calculating the signature described in the previous embodiments of the present disclosure, which is not repeated here.
Reference is made to
The information acquisition module 601 is configured to acquire a message and proxy signature information.
The public key acquisition module 602 is configured to acquire public key information which includes a public key of a first node, a public key of a second node and a proxy public key.
The signature verification module 603 is configured to verify validity of the proxy signature information based on the public key information.
The signature verification module 603 is further configured to verify validity of a proxy signature of the message based on the proxy public key.
For an execution process of the information acquisition module 601, reference may be made to the process of acquiring the message and the proxy signature information described in the previous embodiments of the present disclosure, which is not repeated here.
For an execution process of the public key acquisition module 602, reference may be made to the process of acquiring the public key of the node or the user described in the previous embodiments of the present disclosure, which is not repeated here.
For an execution process of the signature verification module 603, reference may be made to the process of verifying the validity of the signature described in the previous embodiments of the present disclosure, which is not repeated here.
The lattice-based proxy signature method according to the embodiment of the present disclosure may be applied to a lattice-based proxy signature device. The proxy signature device may be an integrated control terminal or general control platform, or may be a control computer integrated with software modules such as random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs, or any other storage media known in the technical field.
In the embodiment of the present disclosure, there is at least one processor 1, at least one communication interface 2, at least one memory 3 and at least one communication bus 4. In addition, the processor 1, the communication interface 2 and the memory 3 communicates with each other through the communication bus 4.
The processor 1 may be a central processing unit (CPU), or an Application Specific Integrated circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present disclosure.
The memory 3 may include a high-speed RAM memory, or may include a non-volatile memory or the like, such as at least one disk memory.
The memory stores a program, the processor may call the program stored in the memory, and the program is configured to implement the lattice-based proxy signature flow described in the previous embodiments.
Similarly, the lattice-based proxy signature verification method according to the embodiment of the present disclosure may be applied to a lattice-based proxy signature verification device. A hardware structure of the proxy signature verification device may be referred to
A storage medium storing a computer executable program is further provided according to an embodiment of the present disclosure. The program is executed to implement the lattice-based proxy signature method disclosed in the previous embodiments.
A storage medium storing a computer executable program is further provided according to an embodiment of the present disclosure. The program is executed to implement the lattice-based proxy signature verification method disclosed in the previous embodiments.
In order to further illustrate the security of the proxy signature and verification method according to the present disclosure, an effect comparison with the existing proxy signature method is provided according to an embodiment.
The comparison is made with the conventional proxy signature method described in Chinese patent application 201410159014.8 entitled “LATTICE-BASED PROXY SIGNATURE METHOD AND SYSTEM” (referred to as comparison object).
The proxy public key obtained by the key generation algorithm Gen according to the previous embodiments of the present disclosure includes two univariate n−1 degree polynomials ap,tp in a ring Rp
The proxy signature according to the present disclosure includes three basic signatures (cert, σprx, σ) and a delegation certificate w, where each of the basic signatures includes two polynomials z1, z2 in a ring
and a hash result c (a size of c is approximately equal to n, and n is an integer as a power of 2), and a size of the signature is the sum of bit lengths of z1, z2 and c, which may be calculated as 2n log (2(k−32)+1)+n 2n log (2 k)+n. w contains two public keys and a valid time t (which may be ignored), and a size of w is 2n log p. Therefore, a total length of proxy signature information is 6n log(2 k)+n+2n log p.
The public key of the comparison object includes three Fqm×l matrices A, T1 and T2, where F represents a finite field on q, m represents the number of equations defined by it, m>n, and l represents a positive integer defined by it. The number of elements of each of the matrices is m×1, with an element range of [−q, q]. Therefore, its length may be calculated as 3 ml log(2q+1) bits.
The private key of the comparison object includes a Fqm×l matrix s2. The number of elements of each matrix is m×1, with an element range of [−q, q]. Therefore, its length may be calculated as ml log(2q+1) bits, and its signature includes a vector z on Fqm and a hash result c, a size of which is the sum of these bit lengths and may be calculated as m log q+k.
Therefore, a comparison result between the present disclosure and the comparison object are shown in Table 1 below.
As can be seen from Table 1, compared with the patent application 201410159014.8, with the present disclosure, lengths of the private key and the public key are smaller. Since the value of q in lattice cipher is usually large, if m=n (which is very common in polynomial equation system), the lengths of the public key and the private key according to the present disclosure are reduced by l log(2q+1)/2 log (3) times and l log(2q+1)/log p times respectively. Although the length of proxy signature is increased by about 7 times, the saving of calculation of the public key and the private key may make up for the cost brought by the increase in signature length. At the same time, a strong security proxy signature may also be provided according to the present disclosure.
The above embodiments are only used for illustrating the technical solutions of the present disclosure, and are not intended to limit the present disclosure. Although the present disclosure is illustrated in detail with reference to the embodiments described above, it should be understood by those skilled in the art that modification may be made to the technical solutions recited in the embodiments described above, or equivalent substitution may be made onto a part of technical features of the technical solution. The modifications and equivalent replacements will not make the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present disclosure.
Number | Date | Country | Kind |
---|---|---|---|
202210445891.6 | Apr 2022 | CN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2022/113232 | 8/18/2022 | WO |