Digital Signature Schemes
Digital Signature Schemes
• the private-key signs (creates) signatures, and the public-key verifies signatures
• only the owner (of the private-key) can create the digital signature,
hence it can be used to verify who created a message
• anyone knowing the public key can verify the signature (provided they
are confident of the identity of the owner of the public key - the key distribution
problem)
• usually don't sign the whole message (doubling the size of information
exchanged), but just a hash of the message
RSA
o S = Md(mod R)
• thus know the message was signed by the owner of the public-key
• would seem obvious that a message may be encrypted, then signed using
RSA without increasing it size
• more commonly use a hash function to create a separate MDC which is then
signed
o y = gx(mod p)
• to sign a message M
o compute a = gk(mod p)
o ya.ab(mod p) = gM(mod p)
• compute
o confirm gcd(10,9)=1
o compute
o solve
▪ M = x.a+k.b(mod p-1)
▪ 5 = 8.6+9.b(mod 10)
▪ giving b = 3
o signature is (a=6,b=3)
o ya.ab(mod p) = gM(mod p)
• DSA was designed by NIST & NSA and is the US federal standard
signature scheme (used with SHA hash alg)
• description of DSA
o g = h(p-1)/q where h is any number less than p-1 with h(p-1)/q(mod p)> 1
o y = gx(mod p)
• to sign a message M
o compute
▪ r = (gk(mod p))(mod q)
• to verify a signature:
o w = s-1(mod q)
o u1= (SHA(M).w)(mod q)
o u2= r.w(mod q)
o v = (gu1.yu2(mod p))(mod q)
• comments on DSA
o DSA is patented with royalty free use, but this patent has been
contested, situation unclear