Dig Sig
Dig Sig
Digital Signatures
have looked at message authentication
but does not address issues of lack of trust
digital signatures provide the ability to:
verify author, date & time of signature
authenticate message contents
be verified by third parties to resolve disputes
hence include authentication function with
additional capabilities
Digital Signature Model
Digital
Signature
Model
Attacks and Forgeries
attacks
key-only attack
known message attack
generic chosen message attack
directed chosen message attack
adaptive chosen message attack
break success levels
total break
selective forgery
existential forgery
Digital Signature Requirements
must depend on the message signed
must use information unique to sender
to prevent both forgery and denial
must be relatively easy to produce
must be relatively easy to recognize & verify
be computationally infeasible to forge
with new message for existing digital signature
with fraudulent digital signature for given message
be practical save digital signature in storage
Direct Digital Signatures
involve only sender & receiver
assumed receiver has sender’s public-key
digital signature made by sender signing
entire message or hash with private-key
can encrypt using receivers public-key
important that sign first then encrypt
message & signature
security depends on sender’s private-key
ElGamal Digital Signatures
signature variant of ElGamal, related to D-H
so uses exponentiation in a finite (Galois)
with security based difficulty of computing
discrete logarithms, as in D-H
use private key for encryption (signing)
uses public key for decryption (verification)
each user (eg. A) generates their key
chooses a secret key (number): 1 < xA < q-1
xA
compute their public key: yA = a mod q
ElGamal Digital Signature
Alice signs a message M to Bob by computing
the hash m = H(M), 0 <= m <= (q-1)
chose random integer K with 1 <= K <= (q-1) and
gcd(K,q-1)=1
k
compute temporary key: S1 = a mod q
compute K-1 the inverse of K mod (q-1)
compute the value: S2 = K-1(m-xAS1) mod (q-1)
signature is:(S1,S2)
any user B can verify the signature by computing
m
V1 = a mod q
V2 = yAS1 S1S2 mod q
signature is valid if V1 = V2
ElGamal Signature Example
use field GF(19) q=19 and a=10
Alice computes her key:
16
A chooses xA=16 & computes yA=10 mod 19 = 4
Alice signs message with hash m=14 as (3,4):
choosing random K=5 which has gcd(18,5)=1
5
computing S1 = 10 mod 19 = 3
finding K-1 mod (q-1) = 5-1 mod 18 = 11
computing S2 = 11(14-16.3) mod 18 = 4
any user B can verify the signature by computing
14
V1 = 10 mod 19 = 16
V2 = 43.34 = 5184 = 16 mod 19
since 16 = 16 signature is valid
Schnorr Digital Signatures
also uses exponentiation in a finite (Galois)
security based on discrete logarithms, as in D-H
minimizes message dependent computation
multiplying a 2n-bit integer with an n-bit integer
main work can be done in idle time
have using a prime modulus p
p–1 has a prime factor q of appropriate size
typically p 1024-bit and q 160-bit numbers
Schnorr Key Setup
choose suitable primes p, q
q
choose a such that a = 1 mod p
(a,p,q) are global parameters for all
each user (eg. A) generates a key
chooses a secret key (number): 0 < sA < q
-sA
compute their public key: vA = a mod q
Schnorr Signature
user signs message by
choosing random r with 0<r<q and computing
x = ar mod p
concatenate message with x and hash result to
computing: e = H(M || x)
computing: y = (r + se) mod q