|
|
PASS - The Polynomial Authentication and Signature Scheme This tutorial describes PASS, the Polynomial Authentication and Signature Scheme.
1. PASS Parameters The basic collection of objects used by PASS (Polynomial Authentication and Signature Scheme) is the ring R that consists of all truncated polynomials of degree N-1 having coefficients modulo q: a = a0 + a1X + a2X2 + a3X3 + . . . + aN-2XN-2 + aN-1XN-1 (modulo q). Polynomials are added in the usual way. They are also multiplied more-or-less as usual, except that XN is replaced by 1, XN+1 is replaced by X, XN+2 is replaced by X2, and so on. For more details about the ring R, see the Section 2 of the Algebra Tutorial. In addition to the numbers N and q, PASS requires that the user specify a number of other parameters. Here is the complete list of PASS parameters:
The following table gives a set of high security PASS parameters.
These values are provided to give you some idea of the quantities used in commercial applications. For the examples in this tutorial we will use much smaller parameter values:
Also for our examples, we will use the set S = {3, 5, 6, 7, 8, 10, 12, 15} Keep in mind that these small parameters are for illustrative purposes only and are much too small to provide security. 2. Key Creation Pearl, the "Prover", randomly selects two polynomials f1,f2 in the ring of truncated polynomials R according to the following rule:
There are obviously many different possible choices. Pearl must keep the value of the polynomials f1 and f2 secret, since anyone who knows their values will be able to pretend that she is Pearl. Pearl's next step is to evaluate the polynomials f1 and f2 at each of the elements of the set S. We will write f(S) for this set, that is, f(S) = (f1(S),f2(S)) = {f1(a1), f1(a2), ..., f1(aN/2),f2(a1), f2(a2), ..., f2(aN/2)} (modulo q). The set of values f(S) is Pearl's public authentication key, and the small polynomials f1 and f2 are her private key. 3. The PASS Authentication Sequence Suppose that Pearl wants to use PASS to prove her identity to Vinnie, the "Verifier". A PASS Authentication Sequence consists of four steps: Commitment, Challenge, Response, and Verification. Here is how they work. Commitment g(S) = (g1(S),g2(S)) = {g1(a1), g1(a2), ..., g1(aN/2),g2(a1), g2(a2), ..., g2(aN/2)} (modulo q). Pearl keeps the polynomials g1 and g2 secret, and she sends the set of values g(S) to Vinnie. The set g(S) is Pearl's commitment. Challenge Response h = c11*f1*g1 + c12*f1*g2 + c21*f2*g1 + c22*f2*g2 (modulo q). The polynomial h is Pearl's response. Verification h02 + h12 + h22 + ... + hN-12 < (Bh*q)2. (B) For every number a in the set S, Vinnie checks that h(a) = c11(a)*f1(a)*g1(a) + c12(a)*f1(a)*g2(a) + c21(a)*f2(a)*g1(a) + c22(a)*f2(a)*g2(a) (modulo q). Note that Vinnie can check condition (B) because he knows the sets of values f(S) and g(S), and of course he knows the c polynomials, although he does not know the actual f and g polynomials. If Pearl's response h passes tests (A) and (B), then Vinnie accepts that Pearl has proven her identity. NOTE: In order to prevent Vinnie from gaining information about Pearl's key, it is better to create the challenge as follows: Vinnie chooses a random bit string b of a specified length, for example 80 bits. Vinnie sends b to Pearl. Then Vinnie and Pearl feed the bit string b into a hash function to create the four polynomials c11,c12,c21,c22. This prevents Vinnie from chooses challenge polynomials with some special property, since he can have no way of predicting the output of the hash function. Note the similarity to the way in which an authentication scheme such as PASS is turned into a digital signature scheme. To do this, one feeds a message m (and a commitment) into a hash function to produce a challenge, which is then used to create the response. 4. Why It Works Pearl's response h will pass test (A) because the polynomials f, g, and c all have very small coefficients. Thus the polynomial h = c11*f1*g1+c12*f1*g2+c21*f2*g1+c22*f2*g2 will also have small coefficients, so with an appropriate choice of parameters (such as the norm bound Bh), h will almost certainly pass test (A). On the other hand, since h is actually equal to c11*f1*g1+c12*f1*g2+c21*f2*g1+c22*f2*g2 , the equality h(a) = c11(a)*f1(a)*g1(a) + c12(a)*f1(a)*g2(a) + c21(a)*f2(a)*g1(a) + c22(a)*f2(a)*g2(a) (modulo q). will be true for all values of a modulo q. In particular, it will be true for all a's in S, so Pearl's response will also pass test (B). 5. An Example Using Small Numbers We suppose that Pearl and Vinnie (or a standards setting committee) have selected the following PASS parameters: q=17, N=16, df=5, dg=5, dc=1. We further suppose that they have chosen the following set of 8 values modulo 17: S = {3,5,6,7,8,10,12,15}. Note that every element of S has a multiplicative inverse in S, since 3*6 = 5*7 = 8*15 = 10*12 = 1 (modulo 17). Although PASS will work even if S does not have this property, the security of the system may be compromised. We also reiterate that the numbers being used in this example do not lead to a secure system. See Section 1 for a list of secure parameter sets. Key Creation f1 = 1-X+X2-X3+X6-X7+X8-X12+X14-X15 She computes the value of f1 and f2 at each of the elements of S, f1(S) = {f1(3),f1(5),f1(6),f1(7),f1(8),f1(10),f1(12),f1(15)} = {9,10,5,9,1,12,15,10} (modulo 17), f2(S) = {f2(3),f2(5),f2(6),f2(7),f2(8),f2(10),f2(12),f2(15)} = {14,9,16,5,14,1,2,8} (modulo 17). The set f(S)=(f1(S),f2(S)) is Pearl's public authentication key. Commitment g1 = X2+X3-X4+X5-X7+X8-X9-X10-X12+X13 She keeps g1 and g2 itself secret, but she evaluates g1 and g2 at the elements of S and sends these values to Vinnie: g1(S) = {g1(3),g1(5),g1(6),g1(7),g1(8),g1(10),g1(12),g1(15)} = {2,16,7,10,0,14,14,10} (modulo 17), g2(S) = {g2(3),g2(5),g2(6),g2(7),g2(8),g2(10),g2(12),g2(15)} = {8,5,1,1,5,8,2,9} (modulo 17). Challenge c11=1-X13, c12=-X2+X4, c21=-X2+X15, c22=-X7+X13. Response h = c11*f1*g1 + c12*f1*g2 + c21*f2*g1 + c22*f2*g2 Note that in computing this quantity, Pearl always sets X16=1, X17=X, and so on. Verification h02 + h12 + h22 + ... + hN-12 =1034. Since this is less than (Bh*q)2=1398.6, Pearl's response passes test (A). Next Vinnie computes the values h(a) (modulo q) and c11(a)*f1(a)*g1(a) + c12(a)*f1(a)*g2(a) + c21(a)*f2(a)*g1(a)+ c22(a)*f2(a)*g2(a) (modulo q) for each number a in S and checks if they are equal. For example, taking a=7 gives h(7) = 9 (modulo 17) and c11(7)*f1(7)*g1(7) + c12(7)*f1(7)*g2(7) + c21(7)*f2(7)*g1(7)+ c22(7)*f2(7)*g2(7) = 9 (modulo 17). Note that in computing this last quantity, it was not necessary to know the fi and gj as polynomials; it was only necessary to know their values at a=7.A similar computation for the other a's in S reveals that Pearl's response passes test (B), so Vinnie accepts that Pearl has proven her identity. 6. Using PASS as a Digital Signature Any authentication scheme of the commitment, challenge, response type can be transformed, with the addition of a hash function, into a digital signature scheme. A hash function H is a function that takes as input a bit string B of arbitrary length and gives as output a bit string H(B) of some specified length (e.g., 80 bits) in such a way that it is very difficult to predict ahead of time what the output string will be. Another way to say this is that although it is very easy to compute H(B), it is very difficult to find a B such that H(B) has a specified value. In order to use PASS to create a digital signature, we assume that a hash function H has been specified that takes an arbitrary bit string as input and produces as output an 80 bit string. We also use a formatting function F that takes an 80 bit string and turns it into a valid set of challenge polynomials c=(c11, c12, c21, c22). Further, if B and C are bit strings, we write B | C to denote the concatenation of B and C. Now suppose that Pearl wants to sign a message M using her authentication key f=(f1,f2).
7. Further Reading A complete description of the PASS authentication scheme with full technical details is given in the paper
This paper may be downloaded in a variety of formats from the NTRU Technical Center. The following are some additional sources to learn about algebra, number theory, algorithms, and cryptography.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Created by PixelMEDIA |
|