Specific embodiment
A kind of lattice digital signature method based on key common recognition;Wherein, { ... } indicates the collection of an information or numerical value
It closes;R,RqRepresentation algebra ring, wherein q is integer;
Gen is key schedule, and algorithm input includes security parameter, and output includes public key pk and private key sk, algorithm fortune
Row is as follows:
(1) system parameter params={ q, k, d, n, m, l, aux } is obtained, wherein q, k, d, n, m, l is integer;Aux is
It can be the set of empty other auxiliary system parameters;
(2) obtain
(3) s is obtained1∈Rl,s2∈Rm, wherein s1It is derived from certain sets2Being derived from certain can be empty set
(4) obtain
(5) obtainftIt is about t, params, auxtFunction,
Middle auxtBeing to be the auxiliary parameter set of empty t;
(6) public key pk and private key sk is exported;Wherein, public key pk includes params, t1, generate information required for A, auxpk,
Wherein auxpkBeing to be the auxiliary parameter set of empty public key;Private key sk includes s1,s2,t0,auxsk, wherein auxskBeing to be sky
Private key auxiliary parameter set;
Sign () is signature algorithm, and algorithm input includes system parameter params, private key sk and message M ∈ { 0,1 }*,
Wherein { 0,1 }*Indicate the set that the 0-1 string of random length is constituted, output includes (z, c, h), wherein z ∈ Rlq,c∈R,Wherein b is positive integer, gh(n,m,h,auxh) it is about n, m, h, auxhOutput result be
The function of integer, auxhBeing to be the auxiliary parameter set of empty h;Algorithm operation is as follows:
(1) obtain
(2) obtain
(3) obtainWherein y2It can be 0 vector;
(4) obtain
(5) obtainWhereinBe about v, the function of params,It can be empty
k1Auxiliary parameter set;
(6) obtainWhereinIt is about k1,params,Function,It is
It can be empty k1' auxiliary parameter set;
(7) c=H (k is obtained1′,M,auxc), wherein H is a hash function or one-way function or transfer function, auxc
Being to be the auxiliary parameter set of empty c;
(8) z=f is obtainedz(pk,y1,s1,k1,c,M,auxz), wherein fzIt is about pk, y1,s1,k1,c,M,auxzLetter
Number, auxzBeing to be the auxiliary parameter set of empty z;
(9) obtainWherein,It is about v, c, s2,params,Function, auxk2Being to be empty k2,sig2Auxiliary parameter set;
(10) Rule of judgmentIt is whether true, whereinBeing to be empty R1's
Auxiliary parameter set;If not, it then returns to the and (2) walks, circular flow is until R1It sets up;
(11) obtainWherein, fhIt is about v, c, s2,y2,t0,params,Function,Being to be the auxiliary parameter set of empty h;
(12) Rule of judgmentIt is whether true, whereinBeing to be empty R2Auxiliary
Parameter sets;If not, it then returns to the and (2) walks, circular flow is until R2It sets up;
(13) output signature (z, c, h);
Verify () is sign test algorithm, and algorithm input includes system parameter params, public key pk, message M and signature (z,
C, h), output 1 or 0, algorithm runs as follows:
(1) obtain
(2) obtainWhereinIt is about h, A, z, c, t1,params,Function,Being to be empty k '2Auxiliary parameter set;
(3) obtainWherein,It is about k '2,params,Function,Being to be empty k "2Auxiliary parameter set;
(4) c '=H (k " is obtained2,M,auxc'), wherein H is a hash function or one-way function or transfer function,
auxc′Being to be the auxiliary parameter set of empty c ';
(5) Rule of judgmentIt is whether true, whereinBeing to be sky
R3Auxiliary parameter set;If so, 1 is then exported, otherwise, output 0;
The present invention claims 2 q-1 aliquant certain power or D2For sky or k1′≠k1。
Method as described above, wherein algebraic loop R, RqMeet relationship Rq=R/qR, wherein ring R is Z [X]/(Xn+ 1),
Or Z [X]/(Xn+Xn-1+ ...+1) or Z [X]/(Xn-1);Ring RqFor Zq[X]/(Xn+ 1) or Zq[X]/(Xn+Xn-1+ ...+1) or Zq
[X]/(Xn- 1), wherein n is positive integer.
Method as described above, whereinauxIt is empty subclass comprising { η, β, ξ, ζ, B, ω, σ, g, q ', α, α ' },
In, η, β, ξ, ζ, B, ω, σ, g are positive integer, and q '=lcm (q, k) is the least common multiple of q and k, α=q '/q, α '=q '/k.
Method as described above, whereinIt obeysUpper probability distribution.
Method as described above, wherein Sam is extension output function, and y~S:=Sam (x) indicates that input is x, by distribution
S (or being uniformly distributed on set S) output valve y.
Method as described above, wherein ρ is random seed, is followed the example of including taking { 0,1 }nMiddle random train.
Method as described above, wherein s1It can obeyOn be uniformly distributed or discrete Gaussian Profile, wherein SηIt indicates
Coefficient belongs to the multinomial entirety of [- η, η] in ring R;s2It can obeyOn be uniformly distributed or discrete Gaussian Profile or s2=
0。
Method as described above, wherein work as s1,s2Each coefficient obey on [- η, η] when being uniformly distributed, can with expand
Output function Sam input seed is opened up to generate.
Method as described above, wherein (t1,t0)=ft(t,params,auxt) calculation method include:
⑴t0=tmod±2d, t1=(t-t0)/2d, wherein arbitrary integer a and positive integer b, amod ± b expression are fallen inUnique integral c so that b | c-a, here for any real number x,It represents less than or the maximum equal to x
Integer;
⑵t0=tmod2d, t1=(t-t0)/2d, wherein for arbitrary integer a and positive integer b, amodb expression fall in [0,
B-1] unique integral c so that b | c-a.
Method as described above, wherein information needed for generating A may include random seed ρ.
Method as described above, wherein auxskIt may include public key pk.
Method as described above, whereinIt can obeyOn be uniformly distributed or standard deviation is the discrete Gauss point of σ
Cloth;It can obeyOn be uniformly distributed or standard deviation be σ discrete Gaussian Profile;Wherein B, σ are auxiliary parameters;
Method as described above, wherein whenWhen obedience is uniformly distributed, extension output function Sam can be used
Seed is inputted to generate.
Method as described above, whereinCalculation method include: calculate k1←
HighBits (v, params).
Method as described above, wherein for r ∈ Zq, HighBits (r, params) algorithm runs as follows:
(1) (r is calculated1,r0)←Con(r,params);
(2) r is exported1。
If algorithm HighBits () is inputtedWith common parameter params, then mean in polynomial vector v
Each coefficient uses HighBits algorithm respectively.
Method as described above, wherein encryption algorithm Con () input includes r ∈ ZqWith common parameter params, algorithm
To r ∈ ZqIt is encoded based on params, output includes (r1,r0), wherein r1 ∈ Zk,r0∈Zt, k is system parameter, and t is whole
Number;If algorithm Con () is inputtedWith common parameter params, then mean to each coefficient in polynomial vector v
Con algorithm is used respectively.
Method as described above, wherein the operation of Con (r, params) algorithm is as follows:
(1) σ is calculatedA∈Zq′;
(2) r is calculated0;
(3) r is calculated1;
(4) (r is returned1,r0)。
Method as described above, wherein σACalculation method include: from set [0, α -1] or setThe middle element e for choosing determination particularly takes e=0;Calculate σA=α σ1+e∈Zq′。
Method as described above, wherein σA=α r+e ∈ Zq′Calculation method include:
⑴σA=α r+emodq ', or
⑵σA=α r+emod±q′。
Method as described above, wherein It is about σA,α,
The function of α ', k.
Method as described above, wherein r0Calculation method include:
(1) r is calculated0=σAmod±α ', or
(2) r is calculated0=σAMod α ', or
(3) it calculatesOr
(4) it calculatesOr
(5) it calculatesOr
(6) it calculates
Wherein, k, q are system parameters, and g, α ' are auxiliary parameters;For any real number a, " a " indicates immediate whole with a
Number.
Method as described above, wherein r1Calculation method include:
(1) it calculates
(2) r is calculated1=" σA/β」mod±k
(3) if k, q be coprime and kr-r0=kq, then enable r1=0;Otherwise, r is calculated1=(kr-r0)/q,
Wherein, k, q are system parameters.
Method as described above, wherein r0∈ZtThe value of middle t includes: t=g or t=g+1.21. as claim 1 institute
The method stated, whereinCalculation method include:
(1)Or
(2)k′1=" qk1/ k ",
Wherein, k, q are system parameters.
Method as described above, wherein auxcInclude pk and/or params and/or public key certificate certificate.
Method as described above, wherein z=fz(pk,y1,s1,k1,c,M,auxz) calculation method include:
Method as described above, whereinCalculation method include:Wherein,It is to close
In v, c, s2,params,Function.
Method as described above, whereinCalculation method include:
Method as described above, wherein conditionInclude: | | z | |∞≤ ξ and | |
sig2||∞≤ ζ and k1=k2, wherein for any a ∈ R, | | a | |∞The maximum of the absolute value of all coefficients of representative polynomial a
Value;For any a=(a1,…,ab)∈Rb, b is positive integer, | | a | |∞Indicate | | ai||∞, 1≤i≤b maximum value.
Method as described above, whereinCalculation method include:
(1) h=sig2, or
(2) h=MakeHint (- ct0,v-cs2+ct0, params), or
(3) h=MakeGHint (- ct0,v-cs2+ct0,params)。
Method as described above, wherein h=sig2Calculation method it is as follows:
(1)
(2) h=sig is exported2。
Method as described above, wherein for z ∈ Zq,r∈Zq, the calculation method of algorithm MakeHint (z, r, params)
It is as follows:
(1)r1=HighBits (r, params);
(2)v1=HighBits (r+z, params);
(3) if r1=v1, then 0 is returned;Otherwise, 1 is returned.
If algorithm MakeHint () is inputtedWith common parameter params, whereinaIt is positive integer, then means
To polynomial vectorIn every group of corresponding coefficient use MakeHint algorithm respectively.
Method as described above, wherein for z ∈ Zq,r∈Zq, the calculating side of algorithm MakeGHint (z, r, params)
Method is as follows:
(1)r1=HighBits (r, params);
(2)v1=HighBits (r+z, params);
(3) h=(v is returned1-r1)mod±K or h=(v1-r1)mod k。
If algorithm MakeGHint () is inputtedWith common parameter params, whereinaIt is positive integer, then means
To polynomial vectorIn every group of corresponding coefficient use MakeGHint algorithm respectively.
Method as described above, whereinCalculation method include:
(1)Or
(2)Or
(3)
Wherein,It is about h, A, z, c, t1,params,Function.
Method as described above, whereinCalculation method include:Wherein, d is system parameter.
Method as described above, wherein decoding algorithm Rec (), algorithm input include r ' ∈ Zq,r0∈ZtJoin with system
Number params, wherein (r1,r0) ← Con (r, params), r ∈ Zq, | r '-r |q≤ d ', d ' are an integer;For any whole
Number a, | a |qIt is defined as min { a mod q, q-a mod q }, min { } is defined as being minimized;Algorithm is to r ' ∈ Zq,r0∈Zt
It is decoded based on params, output includes r1', wherein r1′∈Zk, k is system parameter;If r ' and r distance d ' satisfaction is certain
Restrictive condition, then r1'=r1, both sides' error correction success.
Method as described above, wherein Rec (r ', r0, params) calculation method include:
⑴r′1=" α σ2/ β-v/g " modk, or
⑵r′1=" α σ2/ β-(v+1/2)/g " modk, or
⑶r′1=" α σ2/ β-(v+c)/g " modk, whereincIt is a real number.
Method as described above, wherein the relational expression of d ' satisfaction includes:
(1) (2d '+1) k < q (1-1/g), or
(2) (2d '+2) k < q (1-1/g), or
(3) (2d '+1) k < q (1-2 γ/g), wherein γ be defined as max | c |, | 1-c |, for any real number a, | a | table
Show that the absolute value for taking a, max { } are defined as being maximized, or
(4) (d '+1) k < q (1/2- γ/g), or
(5) 2kd ' < q.
(6) 2k (d '+1) < q.
Method as described above, wherein c is real number, meets 0≤c≤1.
Method as described above, wherein for h ∈ { 0,1 }, r ∈ Zq, the calculating of algorithm UseHint (h, r, params)
Method is as follows:
(1)(r1,r0)=Con (r, params);
(2) if h=1 and r0> 0 returns to (r1+1)modk;If h=1 and r0< 0 returns to (r1-1)modk;Otherwise, if h
=0, return to r1。
Method as described above, wherein for h ∈ Zk, r ∈ Zq, the calculation method of algorithm UseGHint (h, r, params)
It is as follows:
(1)r1=HighBits (r, params);
(2) (r is returned1+h)modk。
Method as described above, whereinCalculation method include:
(1)
(2)k″2=" qk '2/k」。
Method as described above, wherein auxc′Include pk and/or params and/or public key certificate certificate.
Method as described above, whereinCondition includes:
(1) c=c ' and | | z | |∞≤ξ;
(2) c=c ' and | | z | |∞≤ ξ and #h≤ω, wherein for h ∈ { 0,1 }a, a is positive integer, #h representative polynomial
The number of coefficient 1 in vector h;
Wherein, ξ, ω are auxiliary parameters.
In the practical application of inventive method, the Gen of recommendation, Sign (), Verify (), Con () and
HighBits () specific embodiment is as follows:
Gen:
(1) system parameter params={ q, k, d, n, m, l, aux } is obtained, wherein q, k, d, n, m, l is integer;Aux is
It can be the set of empty other auxiliary system parameters;
⑵
⑶
⑷
⑸t0=tmod±2d, t1=(t-t0)/2d;
(6) pk=(ρ, t are exported1, params, auxpk), sk=(s1,s2,t0,auxsk,ρ);
Sign (params, sk, M):
⑴
⑵t0=tmod±2d, t1=(t-t0)/2d;
⑶
⑷
⑸k1← HighBits (v, params);
⑹)k′1=" qk1/k";
(7) c=H (ρ, t1,k′1,M);
(8) z=y1+cs1;
⑼(k2,sig2)←Con(v-cs2,params);
(10) if | | z | |∞< B- β and | | sig2||∞< q/2-k β and k1=k2It is invalid, then return to (2), circular flow until
It sets up;
(11) h=MakeHint (- ct0,v-cs2+ct0,params);
(12) if | | ct0||∞1 number≤ω is invalid in < q/2k and h, then returns to (2), and circular flow is until set up;
(13) output signature (z, c, h);
Verify (pk, M, (z, c, h)):
⑴
⑵k′2=UseHint (h, Az-ct1·2d,params);
⑶k″2=" qk '2/k";
(4) c '=H (ρ, t1,k″2,M);
If c=c ' and | | z | |∞< B- β while in h 1 number≤ω, then export 1;Otherwise, 0 is exported;
Con (r, params):
⑴r0=krmod±q;
(2) if kr-r0=kq, then enable r1=0;Otherwise, r is calculated1=(kr-r0)/q;
(3) (r is returned1,r0)。
Highbits (r, params):
⑴(r1,r0)←Con(r,params);
(2) r is returned1。