Digital Signatures (DSs)

advertisement
Digital Signatures (DSs)
• The digital signatures cannot be separated
from the message and attached to another
• The signature is not only tied to signer but
also to the message that is being signed
• The digital signature needs to be easily
verified by other parties
• Digital signature schemes therefore
consist of two distinct steps: the signing
process and the verification process
RSA Signatures
• Bob has a document m that Alice agrees
to sign. Alice does the following.
• Alice chooses two primes: p, q and n=pq,
makes (e,n) public with gcd(e,(p-1)(q-1))=1
de≡1 (mod φ(n)), she keeps p,q,d secret
。Alice’s signature is y≡md (mod n)
。Alice then makes the pair (y,m) public
How does Bob verify Alice’s
Signature
• Download Alice’s (e,n)
• Compute z≡ye (mod n)
• If z=m, then Bob accepts the signature as
valid; otherwise the signature is not valid
Blind Signatures (1/2)
• Alice chooses n=pq, find e, and solve d as
required in RSA scheme,i.e., ed≡1(mod n)
• Bod chooses a random k with gcd(k,n)=1,
computes t≡kem (mod n) for message m,
and sends t to Alice
• Alice signs t by computing s≡td (mod n).
She returns s to Bob
• Bob computes sk-1 (mod n) to get the
signed message md
Blind Signatures (2/2)
•
•
•
•
sk-1 ≡tdk-1≡(kem)dk-1≡md(ked) k-1≡ md
Alice has never seen the message m
t≡kem and s≡td, then sk-1 ≡ md (mod n)
The choice of k is random, therefore,
t≡kem (mod n) gives essentially no
information about m. In this way, Alice
knows nothing about the message m she
is signing.
ElGamal Signature Scheme
• One feature that is different from RSA is that,
with this method, there are many different
signatures that are valid for a given message
• Suppose Alice wants to sign a message m. To
start, Alice chooses a large prime p and a
primitive root α. Alice next chooses a secret
integer (key) a, 1≤a≤p-2, and computes β≡αa
(mod p), (p,α,β) are made public.
Alice signs the message m via
• Select a secret random k such that
gcd(k,p-1)=1
• Computes r≡αk (mod p)
• Computes s≡k-1(m-ar) (mod p-1)
• The signed message is the triple (m,r,s)
Bob verifies the signature via
• Download Alice’s public key (p,α,β)
• Computes u≡βrrs and w≡αm (mod p)
• The signature is declared valid iff
u≡w (mod p)
Proof:
w≡αm≡αsk+ar≡(αa)r(αk)s ≡βrrs≡u (mod p)
More details from p.246~248
ElGamal Signature for one
Alice wants to sign m1=151405 (one). She
chooses p=225119; a primitive root α=11.
She chooses a secret number a, computes
β≡αa ≡18191 (mod p).
To sign the message, she picks up a random k
and keeps it secret. She computes r≡αk ≡164130
(mod p), and s1≡k-1(m1-ar)≡130777 (mod p-1)
The signed message is (151405, 164130, 130777)
ElGamal Signature for two
Alice then signs m2=202315 (two) with the same k,
where (p,α)=(225119,11), hence r has the same
value and the signed message is
(202315, 164130, 164899). Then we have
-34122k ≡ (s1-s2)k ≡ m1-m2 ≡ -50910 (mod p-1)
Since gcd(-34122,p-1)=2, so there are two k’s:
k=239 and k=112798 (mod p-1)
Since α239 ≡164130, α112789 ≡59924 (mod p),
k=239 leads to the correct value r=164130
Dangerous for the same key to
different documents
Rewrite s1k≡m1-ar (mod p-1) to obtain
164130a≡ar≡ m1- s1k≡187104 (mod p-1)
Since gcd(164130, p-1)=2, there are two
solutions for a’s: a=28862 and a=141421
Since α=11, β=18191, and
α28862 ≡206928, α141421 ≡18191 (mod p)
Therefore the key a=141421 is revealed.
Hash Functions
•
A cryptographic hash function h takes as input a
message of arbitrary length and produces as output a
message digest of fixed length. Certain properties
should be satisfied.
(1) Given a message m, the message digest h(m) can be
calculated very quickly.
(2) Given a digest message y, it is computationally
infeasible to find an m with h(m)=y. In other words, h is
a one-way, or preimage resistant, function.
(3) It is computationally infeasible to find messages x, y
such that h(x)=h(y), i.e., h is strongly collision-free.
Examples
• Let n=bkbk-1…b1b0 , define h(n)=bk⊕…⊕b0 ,
Thus, this h does not satisfy (2)
• The discrete log hash function due to Chaum,
van Heijst, and Pfitzmann
Select a large prime p such that q=(p-1)/2 is prime, let
α,βbe two primitive roots mod p which satisfyαa ≡β
(mod p) and a is a secret number, let m=x+yq, with
0≤x,y ≤q-1, Define a hash function
h(m)≡αx βy (mod p)
Proposition (p.184)
• If we know messages m≠n with h(m)=h(n), then
we can determine the discrete logarithm
a=Lα(β).
(Proof) Write m=x+yq, n=r+sq. Suppose
h(m)=h(n) i.e., αxβy ≡ αrβs (mod p), since
αa ≡β (mod p), hence αa(y-s)-(x-r) ≡1 (mod p)
Therefore a(y-s)≡(x-r) (mod p-1). Since p-1=2q
has only 4 divisors: 1,2,q,p-1, so d=gcd(y-s,p-1)=1
or 2. Thus, we can get the secret a.
Other Hash Functions
☺MD family: MD4, MD5 due to Rivest
☺NIST’s Secure Hash Algorithm (SHA)
which yields a 160-bit message digest
[Stinson] [Schneier] [Menezes et al.]
Hashing, Signing, and Applications
• Sending (m,sig(h(m))) instead of (m,sig(m))
could significantly reduce the size of digital
signatures.
• An appropriate hash function should be
chosen. In particular, in electronic
exchanges in E-commerce.
Birthday Attacks
• If there are 23 people in a room, the
probability 50.7% that two of them have
the same birthday. If there are 30 people,
the probability is increasing up to 70%.
• The probability of 23 people do not have
the same birthday is
(1-1/365)(1-2/365)…(1-22/365) = 0.493
A Birthday Attack on Discrete Log
•
Suppose we want to evaluate La(b) with a large p. We
can do by a birthday attack in the following procedures:
1. The first list contains numbers ak (mod p) for
approximately p1/2 randomly chosen values of k.
2. The first list contains numbers ba-j (mod p) for
approximately p1/2 randomly chosen values of j.
There is a good chance that there is a match between
some element on the 1st list and one on the 2nd list. If
so, ak ≡ba-j (mod p) and hence ak+j ≡b (mod p)
x≡k+j (mod p-1) is the discrete log solution
Digital Signature Algorithm (DSA)
• The NIST proposed the DSA in 1991 and
adopted it as a standard in 1994. The
message digest is a 160-bit output of a
hash function. The generate keys for DSA
proceeds as follows. First, there is an
initialization phase:
Initialization Phase
• Alice finds a prime q that is 160 bits long and
chooses a prime p that satisfies q|p-1. The
discrete log problem should be hard for this
choice of p (e.g., p is 512-bit long).
• Let g be a primitive root mod p and let α≡g(p-1)/q
(mod p). Then αq ≡1 (mod p).
• Alice chooses a secret a such that 1≤a<q-1 and
calculates β≡αa (mod p)
• Alice publishes (p,q, α, β) and keeps a secret
The signing process
•
1.
2.
3.
4.
Alice signs a message m by the following
procedure:
Select a random, secret integer k, such
that 0<k<q-1
Compute r≡(αk (mod p)) (mod q)
Compute s≡k-1(m+ar) (mod q)
Alice’s signature for m is (r,s), which she
sends to Bob along with m.
Verification
• For Bob to verify, he must
1. Download Alice’s public information
(p,q,α,β)
2. Compute u≡s-1m , v≡s-1r (mod q)
3. Compute w≡( αuβv (mod p)) (mod q)
4. Accept the signature iff w=r
Simple Exercises from p.252-255
• Exercises 1,2,3,4
• Computer Problem 1
Download