1. Digital Signature Schemes
2. RSA
S = Md(mod R)
M = Se(mod R) = Me.d(mod R) = M(mod R)
3. RSA Usage
4. El Gamal Signature Scheme
p, public primitive root a
x
y = ax mod p
(y,a,p)
(x)
5. El Gamal Signature Scheme In Use
k, GCD(k,p-1)=1
K = ak(mod p)
S:M = x.K + k.S mod (p-1); that is findS = k-1(M - x.K) mod (p-1)
(K,S)
k should be destroyed after use
(K,S) on message M
confirm that:
yK.KSmod p = aMmod p
6. Example of ElGamal Signature Scheme
p=11, g=2
x=8
y = ax mod p = 28 mod 11 = 3
y=3,g=2,p=11
M=5
k=9
gcd(10,9)=1
K = ak mod p = 29 mod 11 = 6
5 = 8.6+9.S mod 10; nb 9-1 = 9 mod 10;
hence S = 9.(5-8.6) = 3 mod 10
(K=6,S=3)
36.63 = 25 mod 11 3.7 = 32 = 10 mod 11
7. DSA (Digital Signature Algorithm)
8. DSA Key Generation
(p,q,g) are chosen:
p = 2L
q, a 160 bit prime factor of p-1
g = h(p-1)/q
h<p-1, h(p-1)/q(mod p)>1
x<q
y = gx(mod p)
9. DSA Signature Creation and Verification
k, k<q
r = (gk(mod p))(mod q)
s = k-1.SHA(M)+ x.r (mod q)
(r,s) with message
w = s-1(mod q)
u1= (SHA(M).w)(mod q)
u2= r.w(mod q)
v = (gu1.yu2(mod p))(mod q)
10. DSA Security
11. Fiat-Shamir
12. Schnorr
13. Keyed Hash Functions
KeyedHash = Hash(Key|Message)
KeyedHash = Hash(Key1|Hash(Key2|Message))
14. HMAC
HMACK = Hash((K+ XOR opad)||Hash((K+ XOR ipad)||M))
K+ is the key padded out to size
opad, ipad are specified padding values
15. Summary
16. Exercises
prime p=31
prim root a=3
M=7.
prime p=31
prim root a=12
M=19.