Cryptography and Network Security Chapter 10: Chapter 10 - Other Public Key Cryptosystems
Cryptography and Network Security Chapter 10: Chapter 10 - Other Public Key Cryptosystems
Cryptography and Network Security Chapter 10: Chapter 10 - Other Public Key Cryptosystems
Chapter 10 – Other Public Key
Cryptography and Network Cryptosystems
Security Amongst the tribes of Central Australia every man, woman, and
child has a secret or sacred name which is bestowed by the older
Chapter 10 men upon him or her soon after birth, and which is known to
none but the fully initiated members of the group. This secret
name is never mentioned except upon the most solemn
occasions; to utter it in the hearing of men of another group
Fifth Edition would be a most serious breach of tribal custom. When
mentioned at all, the name is spoken only in a whisper, and not
by William Stallings until the most elaborate precautions have been taken that it shall
be heard by no one but members of the group. The native thinks
that a stranger knowing his secret name would have special
Lecture slides by Lawrie Brown power to work him ill by means of magic.
—The Golden Bough, Sir James George Frazer
Diffie‐Hellman Key Exchange Diffie‐Hellman Key Exchange
• first public‐key type scheme proposed • a public‐key distribution scheme
– cannot be used to exchange an arbitrary message
• by Diffie & Hellman in 1976 along with the – rather it can establish a common key
exposition of public key concepts – known only to the two participants
– note: now know that Williamson
t k th t Willi (UK CESG)
(UK CESG) • value of key depends on the participants (and their
l fk d d th ti i t ( d th i
secretly proposed the concept in 1970 private and public key information)
• is a practical method for public exchange of a • based on exponentiation in a finite (Galois) field
(modulo a prime or a polynomial) ‐ easy
secret key
• security relies on the difficulty of computing discrete
• used in a number of commercial products logarithms (similar to factoring) – hard
Diffie‐Hellman Setup Diffie‐Hellman Key Exchange
• all users agree on global parameters: • shared session key for users A & B is KAB:
x x
KAB = a A. B mod q
– large prime integer or polynomial q x
= yA B mod q (which B can compute)
– a being a primitive root mod q x
= yB A mod q (which A can compute)
• each user (eg. A) generates their key
h ( A) t th i k • KAB is used as session key in private‐key encryption
i d i k i i t k ti
– chooses a secret key (number): xA < q scheme between Alice and Bob
x • if Alice and Bob subsequently communicate, they will
– compute their public key: yA = a A mod q
have the same key as before, unless they choose
• each user makes public that key yA new public‐keys
• attacker needs an x, must solve discrete log
1
4/19/2010
Diffie‐Hellman Example Key Exchange Protocols
• users Alice & Bob who wish to swap keys: • users could create random private/public D‐H
• agree on prime q=353 and a=3 keys each time they communicate
• select random secret keys: • users could create a known private/public D‐H
– A chooses xA=97, B chooses xB=233 key and publish in a directory, then consulted
• compute respective public keys: and used to securely communicate with them
97
– yA=3 mod 353 = 40 (Alice) • both of these are vulnerable to a meet‐in‐the‐
233
– yB=3 mod 353 = 248 (Bob)
Middle Attack
• compute shared session key as:
x
– KAB= yB A mod 353 = 248 = 160
97
(Alice)
• authentication of the keys is needed
x 233
– KAB= yA B mod 353 = 40 = 160 (Bob)
Man‐in‐the‐Middle Attack ElGamal Cryptography
1. Darth prepares by creating two private / public keys
2. Alice transmits her public key to Bob • public‐key cryptosystem related to D‐H
3. Darth intercepts this and transmits his first public key to Bob. • so uses exponentiation in a finite (Galois)
Darth also calculates a shared key with Alice
4. Bob receives the public key and calculates the shared key (with • with security based difficulty of computing
Darth instead of Alice)
Darth instead of Alice) discrete logarithms as in D H
discrete logarithms, as in D‐H
5. Bob transmits his public key to Alice
6. Darth intercepts this and transmits his second public key to
• each user (eg. A) generates their key
Alice. Darth calculates a shared key with Bob – chooses a secret key (number): 1 < xA < q-1
7. Alice receives the key and calculates the shared key (with Darth x
– compute their public key: yA = a A mod q
instead of Bob)
Darth can then intercept, decrypt, re‐encrypt, forward all
messages between Alice & Bob
ElGamal Message Exchange ElGamal Example
• use field GF(19) q=19 and a=10
• Bob encrypt a message to send to A computing • Alice computes her key:
– represent message M in range 0 <= M <= q-1 5
– A chooses xA=5 & computes yA=10 mod 19 = 3
• longer messages must be sent as blocks
– chose random integer k with 1 <= k <= q-1 • Bob send message m=17 as (11,5) by
– compute one‐time key
compute one time key K = yA mod
k
d q – chosing
chosing random k
random k=6 6
k 6
– encrypt M as a pair of integers (C1,C2) where – computing K = yA mod q = 3 mod 19 = 7
k 6
k
• C1 = a mod q ; C2 = KM mod q – computing C1 = a mod q = 10 mod 19 = 11;
C2 = KM mod q = 7.17 mod 19 = 5
• A then recovers message by
– recovering key K as K = C1xA mod q • Alice recovers original message by computing:
5
– computing M as M = C2 K-1 mod q – recover K = C1xA mod q = 11 mod 19 = 7
– compute inverse K-1 = 7-1 = 11
• a unique k must be used each time
– recover M = C2 K-1 mod q = 5.11 mod 19 = 17
– otherwise result is insecure
2
4/19/2010
Elliptic Curve Cryptography Real Elliptic Curves
• an elliptic curve is defined by an equation in
• majority of public‐key crypto (RSA, D‐H) use two variables x & y, with coefficients
either integer or polynomial arithmetic with
• consider a cubic elliptic curve of form
very large numbers/polynomials
– y2 = x3 + ax + b
• imposes a significant load in storing and
imposes a significant load in storing and – where x,y,a,b are all real numbers
processing keys and messages – also define zero point O
• an alternative is to use elliptic curves • consider set of points E(a,b) that satisfy
• offers same security with smaller bit sizes • have addition operation for elliptic curve
• newer, but not as well analysed – geometrically sum of P+Q is reflection of the
intersection R
Real Elliptic Curve Example Finite Elliptic Curves
• Elliptic curve cryptography uses curves whose
variables & coefficients are finite
• have two families commonly used:
– prime curves Ep(a,b) defined over Zp
• use integers modulo a prime
• best in software
– binary curves E2m(a,b) defined over GF(2n)
• use polynomials with binary coefficients
• best in hardware
Elliptic Curve Cryptography ECC Diffie‐Hellman
• ECC addition is analog of modulo multiply • can do key exchange analogous to D‐H
• ECC repeated addition is analog of modulo • users select a suitable curve Eq(a,b)
exponentiation • select base point G=(x1,y1)
• need
need “hard”
hard problem equiv to discrete log
problem equiv to discrete log – with large order n
ith l d s.t. nG=O
t G O
– Q=kP, where Q,P belong to a prime curve • A & B select private keys nA<n, nB<n
– is “easy” to compute Q given k,P
• compute public keys: PA=nAG, PB=nBG
– but “hard” to find k given Q,P
– known as the elliptic curve logarithm problem
• compute shared key: K=nAPB, K=nBPA
– same since K=nAnBG
• Certicom example: E23(9,17)
• attacker would need to find k, hard
3
4/19/2010
ECC Encryption/Decryption ECC Security
• several alternatives, will consider simplest • relies on elliptic curve logarithm problem
• must first encode any message M as a point on the • fastest method is “Pollard rho method”
elliptic curve Pm
• compared to factoring, can use much smaller
• select suitable curve & point G as in D‐H
select suitable curve & point G as in D‐H
k
key sizes than with RSA etc
i h i h SA
• each user chooses private key nA<n
• for equivalent key lengths computations are
• and computes public key PA=nAG
roughly equivalent
• to encrypt Pm : Cm={kG, Pm+kPb}, k random
• hence for similar security ECC offers significant
• decrypt Cm compute:
Pm+kPb–nB(kG) = Pm+k(nBG)–nB(kG) = Pm
computational advantages
Comparable Key Sizes for Pseudorandom Number
Equivalent Security Generation (PRNG) based on
Symmetric ECC-based RSA/DSA Asymmetric Ciphers
scheme scheme (modulus size in
(key size in bits) (size of n in bits) bits) asymmetric encryption algorithm produce
apparently random output
56 112 512
80 160 1024
hence can be used to build a pseudorandom
number generator (PRNG)
112 224 2048
much slower than symmetric algorithms
128 256 3072
192 384 7680
hence only use to generate a short
pseudorandom bit sequence (eg. key)
256 512 15360
PRNG based on RSA PRNG based on ECC
have Micali‐Schnorr PRNG using RSA • dual elliptic curve PRNG
in ANSI X9.82 and ISO 18031 – NIST SP 800‐9, ANSI X9.82 and ISO 18031
• some controversy on security /inefficiency
• algorithm
for i = 1 to k do
set si = x(si-1 P )
set ri = lsb240 (x(si Q))
end for
return r1 , . . . , rk
• only use if just have ECC
4
4/19/2010
Summary
• have considered:
– Diffie‐Hellman key exchange
– ElGamal cryptography
– Elliptic Curve cryptography
Elliptic Curve cryptography
– Pseudorandom Number Generation (PRNG) based
on Asymmetric Ciphers (RSA & ECC)