CIS 798. Digital Signature Standard.


Types of digital signatures that we won't discuss:


Digital signature scheme: A digital signature scheme consists of a finite set P of plain-texts, a finite set S of signatures, and a finite key-space K such that, for each k in K, we have a signing algorithm Sign_k: P --> S and a verification algorithm Verify_k: P x S --> bool such that Verify_k(M,S) = true "iff" S = Sign_k(M). The algorithms Sign_k and Verify_k should be efficiently derivable, given k, and should have reasonable performance. Needless to say, given M, an opponent should have no chance of producing some S with S = Sign_k(M), unless the opponent knows the key k.


Digital signature standard:

  • Verifying authentic generation of p and q: Write and implement an algorithm DSS_Proper_Primes?(q,p,counter,seed)} which returns a boolean; it simulates the computation that happens in the call DSS_Prime_Generation(l,lseed), but for the length lseed of the given value of the seed, and returns true if, and only if, the simulation computes the same values as the input values for counter, p, and q.

  • An attack with a morale (exercise 7, page 147): Explain how you could compute the secret digital signature key x, if you could observe the communication of two runs of this protocols, provided that the prover used the same random number k for signing two different messages M1 and M2. Let r1, r2, s1, and s2 be defined as in DSS above, for messages M1 and M2 respectively.
  • Security: Above we saw that implementation flaws can corrupt the security of DSS. There are also two principal concerns. The index-calculus methods are techniques for computing the discrete logarithm in Zp. There are also methods for computing the discrete logarithm of the subgroup of order q generated by g; these methods are of the order sqrt(q).
  • Performance: As for implementations, DSS is rather fast in its signature generation, but rather slow in its signature verification. With a digital signature scheme based on RSA, it is typically the other way around (e.g. for a small private-key exponent). This creates trade-offs, but there are often no optimal solutions. For example, smartcards may have to perform decryption and encryption as well.

  • DSS and elliptic curves: The digital signature in the DSS consists of the pair (r,s) which requires 320 bits for its representation. One may read the DSS protocol at a more abstract level, taking note that most of its basic steps make still sense if they are interpreted to apply in any finite field (F,+,0,*,1). In a field, all non-zero elements have a multiplicative inverse and the operations + and * satisfy laws we intuitively apply in the field of real numbers.

    Let p >3 be a prime and a,b in {1,2,...,p-1} such that

    (1) 4a3 + 27b2 is different from 0 mod p.

    An elliptic curve E(Zp) over Zp has the numbers a and b as implicit parameters; the set E(Zp) consists of all pairs (x,y) which satisfy
    (2) y2 = x3 + ax + b mod p (0 <= x,y <= p-1)

    together with an additional element, O, the ``point at infinity''.

    Let p be 13, a be 4, and b be 12. Then the equation above is met, and the set E(Z13), without O, consists of the pairs

    (0, 5)   (0, 8)  (1, 2)  (1, 11)  (3, 5)  (3, 8)   (4, 1)   (4, 12)  (5, 1)
    (5, 12)  (8, 6)  (8, 7)  (9, 6)   (9, 7)  (10, 5)  (10, 8)  (11, 3)  (11, 10)
    
    Note the set E(Z13) has 19 elements. In general, the number of elements will be of the "order" p. Compare that to the number of units for p, which is p-1. From the equation above, it follows that (x,-y) is an element on the curve whenever (x,y) is one. If such curves are defined over the real numbers, then two points on that curve determine a third one, the ``addition'' of the former two. This geometric operation can be transfered to the case E(Zp) and the operation can be expressed in a completely algebraic fashion.

    Group structure on elliptic curve:

  • ECDSA: In the elliptic curve digital signature algorithm (ECDSA), we modify the DSS only at some key places:


    Feel free to consult me during my Office Hours: W 2:00--3:00 P.M., U 10:30--11:30 A.M.


    Michael Huth (huth@cis.ksu.edu)