IEEE P1363.1 / D2 Annex D March 23, 2001 IEEE P1363.1 / D2 (Draft Version 2). Standard Specification for Public-Key Cryptographic Techniques Based on Hard Problems over Lattices Annex D (Informative). Security Considerations. Copyright © 2001 by the Institute of Electrical and Electronics Engineers, Inc. 345 East 47th Street New York, NY 10017, USA All rights reserved. This is an unapproved draft of a proposed IEEE Standard, subject to change. Permission is hereby granted for IEEE Standards Committee participants to reproduce this document for purposes of IEEE standardization activities. If this document is to be submitted to ISO or IEC, notification shall be given to IEEE Copyright Administrator. Permission is also granted for member bodies and technical committees of ISO and IEC to reproduce this document for purposes of developing a national position. Other entities seeking permission to reproduce portions of this document for these or other uses must contact the IEEE Standards Department for the appropriate license. Use of information contained in the unapproved draft is at your own risk. IEEE Standards Department Copyright and Permissions 445 Hoes Lane, P. O. Box 1331 Piscataway, NJ 08855-1331, USA Comments and suggestions are welcome. Please contact the editor, Daniel Lieman, at dlieman@ntru.com. 1 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 ANNEX D (informative). Security Considerations D.1 INTRODUCTION ..................................................................................................................................... 3 D.2 FAMILY-SPECIFIC CONSIDERATIONS .................................................................................................... 3 D.2.1 ML Family .................................................................................................................................... 3 D.2.1.1 Security Parameters.....................................................................................................................................3 D.2.1.2 Generation Method......................................................................................................................................4 D.2.1.3 Other Considerations...................................................................................................................................4 D.2.1.4 Notes............................................................................................................................................................4 2 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 D.1 Introduction This annex addresses security considerations for the cryptographic techniques that are defined in this standard. It is not the intent of this annex to teach everything about security or cover all aspects of security for public-key cryptography. Rather, the goal of this annex is to provide guidelines for implementing the techniques specified in the standard. Moreover, since cryptography is a rapidly changing field, the information provided here is necessarily limited to the published state of the art as of the time the standard was drafted, February 2001. Implementers should therefore review the information against more recent results at the time of implementation; the working group Web page may contain additional relevant information (see http://grouper.ieee.org/groups/1363/index.html). Security recommendations (in the form of “should”) are given throughout this annex. It should be understood, however, that there may be choices other than the ones recommended here that achieve a given level of security. Furthermore, as discussed in D.2, the definition of security depends on the types of attack that are relevant to an implementation. If an attack is not relevant, then some recommendations may not apply. Thus, while the recommendations given here enable security, they should not necessarily be taken as requirements. Nevertheless, it is expected that other standards based on this standard may upgrade some of the recommendations to requirements. Implementers are also referred to IEEE P1363 Annex D for security topics that are applicable to general families and schemes, including general security principles (IEEE P1363 D.2), key management considerations (IEEE P1363 D.3), and generation of random numbers (IEEE P1363 D.6). We will not repeat this material in this annex. For readers who are interested in extensive and in-depth discussions on security and cryptography, some reference books include [MOV96], [Sch95], [Sta98] and [Sti95]. D.2 Family-Specific Considerations This section gives information on security parameters for the Modular Lattice (ML) family, as well as generation of domain parameters (if any) and key pairs. D.2.1 ML Family D.2.1.1 Security Parameters The primary security parameters for the ML family are the lattice dimension n, the modulus q, and the balanced norm bound . The lattice dimension n is always even and we set N = n/2. Alternatives to the norm bound parameter are a pair of integers (d1,d2) specifying binary Hamming weights (Note 5) or a 4tuple of integers (d1+,d1–,d2+,d2–) specifying trinary Hamming weights (Note 5). See Sections A.Y.6 and A.Y.7 for formulas expressing LQWHUPVRIWKHd values. A common minimum lattice dimension is n = 502 (so N = 251). Typical parameters associated to the lattice dimension n = 502 are q = 128 and = 0.896, corresponding to the Hamming parameters d1 = d2 = 72. The NTRU public key cryptosystem uses a second modulus p. To distinguish the two moduli, the modulus q is called the large modulus and the modulus p is called the small modulus. The large modulus q and the small modulus p must be relatively prime (i.e., generate the unit ideal ) in the convolution ring Z[X]/(XN-1). (Note 4.) The small modulus p need not be an integer. (Note 4.) 3 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 The NTRU signature scheme (NSS) uses additional security parameters L2NormBound1, L2NormBound2, LinfBoundjMin (j = 0,1,2,3), LinfBoundjMax (j = 0,1,2,3), DevBoundj (j = 0,1,2,3), and DevBoundTotj (j = 0,1,2,3) for signature verification (SVVP-NTRU, Section 7.4.4). The NTRU signature scheme (NSS) also uses additional security parameters that specify the form of the signature blinding element w. In the EMSA6 encoding method (Section 8.1.2.1) for construction of w, these additional security parameters are momentequalizationlevel and dw2. The selection of NSS security parameters must address the issues of lattice reduction (Note 10), random forgery attempts (Note 11), lattice lifting (Note 12), transcript analysis (Note 13). D.2.1.2 Generation Method Considerations for generating domain parameters in the ML family include the following: — — — The dimension n is an even number that may be predetermined as long as it is chosen sufficiently large. It is recommended that the N = n/2 be a prime number. (Note 2.) The modulus q and norm bound may be predetermined to provide an appropriate level of security. (As the value of q increases and as the value of decreases, it becomes easier to find the target closest vector in a modular lattice. Note 1.) may be predetermined to provide an appropriate level of The modulus q and norm bound decryption reliability. (As the value of q increases and as the value of decreases, the level of decryption reliability increases.) Considerations for generating key pairs in the ML family include the following: — The private key f and auxiliary private key g should be generated at random from the set of vectors of dimension N and specified centered norm (or a sufficiently large subset of this set of vectors). (Note 6.) — The encryption blinding element r and the message element m should be selected from the set of vectors of dimension N and specified centered norm (or a sufficiently large subset of this set of vectors). They may be chosen at random or generated using a predetermined method. (Note 7.) — The signature message representative i should be selected from a sufficiently large subset of the set of vectors of dimension N. It should be chosen using a recommended encoding scheme (Note 10). — The signature blinding element w should be selected from the set of vectors of dimension N and specified centered norm (or a sufficiently large subset of this set of vectors). It should be chosen using a recommended encoding scheme (Notes 12 and 13). The domain parameters N, q, p, may be shared among key pairs. The domain parameter may be specified by describing the sample spaces for the private key f and g, for example as sets of binary or trinary polynomials. (Note 5.) The private key f should not be shared. The auxiliary private key g also should not be shared; it may be discarded after being used to generate the public key h. The encryption blinding element r should not be revealed and should not be reused. (Note 8.) The message element m should not encrypted using two different blinding elements. (Note 8.) D.2.1.3 Other Considerations The private-key representation does not affect security in general, although the effectiveness of physical attacks may vary according to the representation. The private key should be stored securely, and the encryption blinding value should be erased after use. The domain parameters should be protected from unauthorized modification. See P1363 Annex D.7 for additional information on implementation attacks. D.2.1.4 Notes 4 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 1. Annex D March 23, 2001 Security parameters: The security of schemes in the ML family against attacks whose goal is to solve the closest vector problem depends on the difficulties of general-purpose lattice reduction methods. The security also depends on the difficulty of exhaustive and collision-search methods. In turn, the difficulty of general-purpose lattice reduction methods depends on the dimension 2N of the lattice, on the modulus q, and on the norm ratio WKDW PHDVXUHV WKH GLVWDQFH RI WKH WDUJHW YHFWRU from a known vector (in a balanced ML CVP). The difficulty of exhaustive and collision-search methods depends on the size of the space from which the target vector is chosen. An exhaustive search algorithm tries all allowable values for v1, computes the value of v2 = v1*h, and checks if v2 is an allowable value. Let S1 denote the sample space for v1. The exhaustive search method has average running time ½|S1| for general modular lattices and average running time (1/2N)|S1| for convolution modular lattices (since a convolution modular lattice will generally have N target vectors). An exhaustive search algorithm has no storage requirements. A collision search algorithm of Odlyzko is described in [Si97]. If S1 = BN(d) is the space of binary vectors of dimension N with d ones, then the running time of the collision search method is approximately d1/2C(N/2,d/2) operations. (Here C(n,k) = n!/k!(n–k)! is the usual combinatorial symbol.) The storage requirement is approximately 2C(N/2,d/2). It is not known if there is a collision search method that does not require substantial storage, but it is recommended that security be computed under the assumption that storage requirements are not an issue. The following table lists the time and storage requirements for collision searches for various choices of security parameters. N d Time (operations) Storage 167 48 271.9 270.1 108.2 251 72 2 2106.1 150.0 347 100 2 2147.7 218.2 503 145 2 2215.6 Table D.1. Collision Search Time and Storage Requirements in BN(d) For modular lattices of large dimension, the fastest general purpose lattice reduction methods known are variants of the BKZ-LLL algorithm (see [LLL82], [LLS90], [Sch87], [Sch88], [SE94], [SH95]). The average running time for BKZ-LLL on a lattice L of dimension n and block size LVERXQGHG by O( O( n3) and BKZ-LLL is guaranteed to return a vector of length at most 2O(n/ 1(L). In practice the returned vector and running time are somewhat better than predicted by theory. However, experiments suggest that for lattices in the ML family with fixed norm ratio DQG IL[HG dimension/modulus ratio N/q, the running time for BKZ-LLL to solve the CVP or to find any other very close vector is fully exponential in the dimension N. The security parameters should be selected so that both the general-purpose methods and the collision-search methods have sufficient running time. Often, the parameters are selected so that the difficulty of both types of method is about the same. It does not have be the same, however. For a variety of reasons, such as availability of hardware, for example, an implementation may choose a larger search space. As noted above, a common minimum set of security parameters is (N,q,d1,d2) = (251,128,72,72) with = 0.896 and . Experiments support the view that the average time to find the target vector in a convolution modular lattice CVP with fixed ratios DQG N/q = 1.96 is given by the formula T §0.083N – 7.50 MIPS-Years. 5 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 (For d1 = d2 = d, the ratio LV REWDLQHG E\ VHWWLQJ d = 0.2874N.) The following table provides an extrapolated estimate for the running time of BKZ-LLL on convolution modular lattices with DQG XVLQJd1 = d2 §N). The estimate is given in MIPS-Years, where a MIPS-Year is an approximate amount of computation that a machine capable of performing one million arithmetic instructions per second would perform in one year (about 3 × 1013 arithmetic instructions). Processing Time (MIPS-Years) 2.3 x 106 2.1 x 1013 2.0 x 1021 1.8 x 1034 N = ½ dim(L) 167 251 347 503 Table D.2. Estimated Cryptographic Strength for Convolution Modular Lattices ( d1=d2§N) There is some variation among published estimates of running time due to the particular definition of a MIPS-Year and to the difficulty of estimating actual processor utilization. (How many arithmetic instructions a modern processor performs in a second when running an actual piece of code depends heavily not only on the clock rate, but also on the processor architecture, the amount and speeds of caches and RAM, and the particular piece of code.) Thus, the estimates given here may differ from others in the literature, although the relative order of growth remains the same. The sample space for the target vector should be selected so that the collision-search methods have sufficient difficulty. 2. Selection of dimension security parameter N: It is required that the security parameter N be prime (i.e., the dimension n of the lattice be twice a prime). If N is highly composite (e.g., if N is a power of 2), then Gentry [Ge01] has shown that a folding method allows the private key and plaintext to be recovered from a lattice of dimension much smaller than N. 3. Selection of large modulus security parameter q: It is recommended that for each prime divisor q0 of q, the polynomial XN – 1 modulo q0 should have no factors of small degree (aside from the obvious factor X – 1). If N is prime (Note 2), then XN – 1 modulo q0 factors as (X – 1)A1(X)…Ae(X), where each Ai(X) has degree equal to the multiplicative order of q0 modulo N. The following table lists some security parameters satisfying this recommendation. N 167 251 263 347 503 q 64 128 128 128 256 q0 2 2 2 2 2 Order(q0 mod N) 83 50 131 346 251 Table D.3. Factorization of XN – 1 modulo q0 This condition on the security parameters is only a recommendation because at present there are no known significant improvements in finding target vectors in modular lattices if the condition is not satisfied . 4. Selection of small modulus security parameter p: If the small modulus p divides the large modulus q, then reduction modulo p of an expression p*r*h + m modulo q will immediately recover m. More generally, if p and q are not relatively prime in the ring Z[X]/(XN – 1), then reduction modulo a 6 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 common factor will reveal information about m. For this reason it is required that the large modulus q and the small modulus p be relatively prime in the ring Z[X]/(XN – 1). This is equivalent to the condition that the three quantities q, p, and XN – 1 must generate the unit ideal in the ring Z[X]. The large modulus q is required to be in Z, but the small modulus p need not be in Z. For example, if N is odd and if q is a power of 2, then p could equal X + 2 or X – 2, since the three quantities XN – 1, 2k, and X ± 2 generate the unit ideal in the ring Z[X]. 5. Selection of target vectors: A standard sample space for target vectors v = [v1,v2] is to choose binary vectors v1 BN(d1) and v2 BN(d2). The vectors should be selected randomly or pseudorandomly from these spaces. (See P1363 Annex D.6 for more on random number generation.) The values of d1 and d2 are chosen to provide an appropriate value of norm security parameter 6HH Section A.Y.6 for the formula for LQWHUPVRId1 and d2 and see Note 1 for selection of For a given choice of d1 and d2, there are no classes of vectors v1 and v2 that are known to affect the average running time of lattice reduction algorithms. If d1 or d2 is very small, then the zero-forcing algorithms of May [Ma99] and Silverman [Si99] for modular convolution lattices may allow reduction of the lattice dimension. In the case that d1 = d2 = d, the speedup in performing an r-fold zero-force is approximately (1–(1–e–dr/N)N)e r, where the running time for the given class of lattices is T § N + (see Section A.Y.4). The optimal value of r my be determined using this formula. For the common security parameters N/q = 1.96 and d § 0.2874N (corresponding to , the value of LV0.083 and the speedup from an r-fold zero-force is approximately (1–(1–e–0.2874r)N)e0.083r. The optimal choice for r and the expected speedups are listed in the following table. The gain in speed is negligible for the listed parameters choices. N = ½ dim(L) 167 251 347 503 Optimal r 15 17 18 19 Speedup 3.11 3.49 3.83 4.27 Table D.4: Estimated Speedup for r-Fold Zero-Forcing in Convolution Modular Lattices ( d1=d2§N) Another standard sample space for target vectors v = [v1,v2] is to choose trinary vectors v1 TN(d1+,d1– ) and v2 TN(d2+,d2–). The vectors should be selected randomly or pseudorandomly from these spaces. (See P1363 Annex D.6 for more on random number generation.) The values of d1+, d1–, d2+, and d2– are chosen to provide an appropriate value of norm security parameter 6HH6HFWLRQ$<7 for the formula for LQWHUPVRId1+,d1–,d2+,d2– and see Note 1 for selection of If d1++d1– or d2++d2– is very small, then as above the zero-forcing algorithms of May [Ma] and Silverman [Si99] may allow reduction of the lattice dimension. For a given choice of d1+,d1–,d2+,d2–, there are no classes of vectors v1 and v2 that are known to affect the average running time of lattice reduction algorithms. 6. Selection of private keys: A private key consists of a pair of (f(X),g(X)). The associated public key h(X) is formed via the relation f(X) * h(X) g(X) (mod q) The associated CML CVP formed from the coefficients of h(X) has target vector v = [v1,v2] formed from the coefficients of [f(X),g(X)]. The selection of f(X) and g(X) should follow the guidelines described in this Annex for the selection of target vectors for ML CVPs. 7 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 In the case that f(X) has the form f0(X) + p*F(X) for a known polynomial f0(X) (e.g., f0(X) = 1), then the CML CVP target vector is the vector [F(X),g(X)]. Similarly if g(X) has the form g0(X) + p*G(X) for a known polynomial g0(X). In these situations the security must be computed using the smaller norm bound associated to [F(X),g(X)] or [F(X),G(X)]. 7. Selection of encryption blinding elements and message elements: The blinding element r(X) and the message element m(X) should be selected from sample spaces with characteristics similar to those for the two parts of the private key f(X) and g(X). The ciphertext e(X) is formed from the public key h(X), the message element m(X), and the blinding element r(X) via the formula e(X) p * r(X) * h(X) + m(X) (mod q). The CML formed using the coefficients of the public key h(X) may be used to formulate a CVP in which the target vector v = [v1,v2] is formed from the coefficients of [r(X),m(X)]. The selection of r(X) and m(X) should follow the guidelines described in this Annex for the selection of target vectors for ML CVPs. In order to prevent chosen ciphertext attacks ([HS99],[JJ00]), it is recommended that the message element m(X) be generated in an invertible fashion from the plaintext M and an appropriate amount of random blinding material R and that the element r(X) be generated deterministically as a hash function of M and R. It is further recommended that the decrypter regenerate the element r(X) and verify that the ciphertext e(X) is the encryption of m(X) by the element r(X) and that the decrypter reject the message as invalid if it is not. 8. Reuse of blinding or message elements: A blinding element r(X) should not be reused, since if r(X) is used to send two message m1(X) and m2(X), then the difference of the two ciphertexts e1(X) – e2(X) m1(X) – m2(X) (mod q) will reveal a large portion of m1(X) and m2(X). A single message element m(X) should not be encrypted using two different blinding elements. If m(X) is encrypted using r1(X) and r2(X), then the quantity (ph(X))–1(e1(X) – e2(X)) r1(X) – r2(X) (mod q) will reveal a large portion of r1(X) and r2(X). (Even if h(X)–1 mod q does not exist, one may still gain considerable information using a partial inverse.) Recommended message encoding methods (Section 8.2) include inclusion of random bits in the message element. 9. Generation of private keys and blinding elements using small Hamming weight products: It may be computationally advantageous to choose the private key f(X) and/or the blinding element r(X) to be a product, or a sum of products, of elements of low Hamming weight (i.e., with few nonzero coefficients). (See Annex A.5.6.) In the case that f(X) has the form f0(X)+p*F(X), the same remark applies to F(X). The size of the search space and possiblity of square root-type searches must be analyzed if this method is used. (See Annex A.5.6 and [HS01] for details.) Tables D.5-D.8 give effective search space sizes for typical forms of cryptographic interest. N 251 347 503 d1 8 11 20 d2 8 11 20 d3 8 11 20 Search 297 2135 2236 Table D.5. Effective search space for f = f0+p*(f1*f2+f3) with f0 known and fi B(di) for i=1,2,3 8 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 N 251 347 503 d2 8 11 13 d1 8 11 12 Annex D d3 8 11 14 March 23, 2001 Search 297 2135 2165 Table D.6. Effective search space for r = r1*r2+r3 with ri B(di) for i=1,2,3 N 251 347 503 d1+ 5 7 11 d1– 5 7 11 d2+ 7 10 11 d2– 7 10 11 Search 2109 2155 2219 Table D.7. Effective search space for f = f0+p*f1*f2 with f0 known and fi T(di+,di–) for i=1,2 N 251 347 503 d1+ 4 6 10 d1– 4 6 10 d2+ 5 7 10 d2– 5 7 10 Search 287 2129 2203 Table D.8. Effective search space for g = g0+p*g1*g2 with g0 known and gi T(di+,di–) for i=1,2 There are no known lattice reduction methods that take advantage of a product structure in the target vector(s) to improve their performance. 10. Selection of message representatives and signature blinding elements: The message representative i should be selected using a hash function encoding process on the message m. An example encoding process is EMSA5 (Section 8.1.1). The message representative should be selected from a sufficiently large sample space to make it infeasible to find two messages with the same message representative. The signature blinding element w should be selected using an approved encoding process. An example encoding process is EMSA6 (Section 8.1.2). See also Notes 12 and 13. The signature blinding element w should be selected so that if w and w’ are blinding elements on two signatures s = f*w (mod q) and s’ = f*w’ (mod q) , then the convolution modular lattice formed from s’*s–1 (mod q) with target short vector [w,w’] has the desired extrapolated search time. (See Note 1.) 11. Selection of signature verification parameters: The signature verification parameters L2NormBound1, L2NormBound2, LinfBoundjMin (j = 0,1,2,3), LinfBoundjMax (j = 0,1,2,3), DevBoundj (j = 0,1,2,3), and DevBoundTotj (j = 0,1,2,3) must be selected to prevent creation of forged signatures. The norm bounds tie the signature directly to a hard lattice problem. In particular, given a message representative i for a public key h, there is a target vector ai in the convolution modular lattice Lh attached to h so that a valid signature s for i determines a vector in Lh that is (heuristically) no more than L 2 NormBound 2 Nq / πe 9 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 times as far away from ai as the closest vector in Lh is to ai. L2NormBound2 should be selected to make this approximate closest vector problem hard. The other norm bounds (L2NormBound and LinfBoundjMin) should be selected to provide additional constraints that are satsified by signatures created using the private key. The deviation bounds tie the signature to the message via mod p conditions. They should be selected to provide constraints that are satisfied by signatures created using the private key. In particular, if polynomials s and t are formed by first selecting half of their coefficients to match i modulo p and then solving t = h*s (mod q) for the remaining coefficients, then there should be a very small probability that sdata [j][0] + sdata [j][1] + tdata [j][0] tdata [j][1] DevBoundTotj for j = 0, 1, 2, 3. For an s that is half preselected in this way, the probability that s satisfies this deviation bound condition for j = 0 and j = 1 is given approximately by the formula (with p = 3) 2 Probability ≈ 3 N ∑ ∑ b ≤ DevBoundTot 1c ≤ DevBoundTot 2 T ( N ; b, c) 1 4 b +c . The quantity T(N;b,c) is the trinomial coefficient N!/b!c!(N-b-c)!. Table D.9 gives the probability of half preselected (s,t) satisfying the deviation test for j=1 and j=2 and various values of DevBoundTot1 and DevBoundTot2. N DevBoundTot DevBoundTot Probability 1 2 251 8 20 2–57 251 6 17 2–68 251 4 14 2–81 Table D.9. Probability that a half preselected (s,t) passes deviation tests 12. Selection of signature blinding elements to prevent lattice lifting: A signature s has the form s = f*w (mod q). The signature blinding element w is naturally written in the form w = (u-1*i mod p) + (u-1*w1 mod p) + p*w2, where i is the message representative and w1 and w2 are blinding element pieces. The product f*w must have sufficiently many coefficients outside the range (–q/2,q/2] so that knowledge of s does not allow reconstruction of f*w exactly, and similarly for t = h*s = g*w (mod q), since exact knowledge of f*w and g*w (or of f*w and f*w’ for two different values w and w’) may allow recovery of f or g from a lattice of dimension N. Coefficients with nontrivial reduction modulo q tend to cluster near –q/2 and near q/2 and their presence may be detected by a mod p comparison of s and/or t with m, so the blinding element piece w1 should be chosen to hide a significant number of the common nontrivial mod q reductions in f*w and g*w. (See EMSA6 encoding, Section 8.1.2.1, for details of a method to choose w1 to achieve this effect. )After s and t have been generated, the the number of indices j for which the coefficients sj and tj agree modulo p with mj, yet for which (f*w)j and (g*w)j both lie outside the range (–q/2,q/2], should be counted. The number of such hidden reductions should be at least equal to a security paramter hiddenwrapbound that is chosen to make it infeasible to do an exhaustive search for the hidden reductions. It should be noted that in order to generate a useful lattice, it is necessary to recover either two values f*w and f*w’ exactly or to recover two values f*w and g*w exactly. The polynomial phi = (F – G)*w must also have sufficiently many coefficients outside of the range (–q/2,q/2] so that knowledge of phi (mod q) = (F – G)*w (mod q) = = p-1*(s – t) (mod q) does not allow reconstruction of (F – G)*w exactly, since exactly knowledge of (F – G)*w for two 10 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 diffferent values of w may allow recovery of F – G from a lattice of dimension N. After w selected, the polynomial phi should be computed and the number of indices j for which phij outside the range (–q/2,q/2] should be at least equal to a security paramter phiwrapbound that chosen to make it infeasible to do an exhaustive search for phi. It should be noted that in order generate a useful lattice, it is necessary to recover the value of phi for two different values of w. is is is to Specific sample sets for w2 and i satisfying these criteria may be determined by experiment. It is recommended that the security parameters be chosen so that it be infeasible to do an exhaustive search for the exact values of f*w or g*w. Sample values for the following security parameters can be found in [CEES]. N polynomial degree q large modulus p small modulus du private key size (u has du 1’s and –1’s) df private key size (F has df 1’s and –1’s, f = u + p*F) dg private key size (G has dg 1’s and –1’s, g = u + p*G) di message representative size (number of 1’s and –1’s in i) dw2 blinding element size (number of 1’s and –1’s in w2) momentequalizationlevel moment equalization level for blinding element w2 phiwrapbound signature reduction parameter (number of reductions required in phi) hiddenwrapbound signature reduction parameter (number of simulatneous hidden reductions required in f*w and g*w) L2NormBound1 individual L2 norm bound for p–1(s – m) and p–1(t – m) L2NormBound2 simultaneous L2 norm bound for p–1(s – m) and p–1(t – m) LinfBound0Min L norm frequency lower bound for p–1(s – m) and p–1(t – m) LinfBound1Min L norm frequency lower bound for p–1(s – m) and p–1(t – m) LinfBound2Min L norm frequency lower bound for p–1(s – m) and p–1(t – m) LinfBound3Min L norm frequency lower bound for p–1(s – m) and p–1(t – m) LinfBound0Max L norm frequency upper bound for p–1(s – m) and p–1(t – m) LinfBound1Max L norm frequency upper bound for p–1(s – m) and p–1(t – m) LinfBound2Max L norm frequency upper bound for p–1(s – m) and p–1(t – m) LinfBound3Max L norm frequency upper bound for p–1(s – m) and p–1(t – m) DevBound0 individual quartile deviation bound for s – m and t – m modulo p DevBound1 individual quartile deviation bound for s – m and t – m modulo p DevBound2 individual quartile deviation bound for s – m and t – m modulo p DevBound3 individual quartile deviation bound for s – m and t – m modulo p DevBoundTot0 simultaneous quartile deviation bound for s – m and t – m modulo p DevBoundTot1 simultaneous quartile deviation bound for s – m and t – m modulo p DevBoundTot2 simultaneous quartile deviation bound for s – m and t – m modulo p DevBoundTot3 simultaneous quartile deviation bound for s – m and t – m modulo p 13. Selection of signature blinding elements to prevent transcript averaging and transcript frequency analysis: It is recommended that the signature blinding element w be chosen to prevent transcript frequency analysis methods. (See Annex A, Section A.5.7.) It is recommended that this be done using a recommended encoding method. (See for example EMSA6, Section 8.1.2.) This method requires that w2 be selected partially at random and partially to mask the frequency differences that occur in u-1*i mod p when i is chosen from a subtranscript (e.g., when i is chosen to have one or more coefficients equal to particular values modulo p). This masking is accomplished by selecting coefficients of w2 so that the frequency distribution of the jth coefficient of the quantity 11 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. IEEE P1363.1 / D2 Annex D March 23, 2001 (u-1*i mod p) + pw2 has its initial momentequalizationlevel moments the same regardless of the value of the jth coefficient of u-1*i mod p. For example, equalization of first moments means that the averages are the same (and should equal zero). Equalization of first and second moments means that the averages and standard deviations are the same. Methods for doing moment equalization at levels 1, 2, 4, and 7 are given in Section 8.1.2. Moment equalization at other levels is also possible. 12 Copyright © 2001 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change.