You are on page 1of 9

Chapter 10 – Other Public Key

Cryptography and Cryptosystems


Amongst the tribes of Central Australia every man, woman,
Network Security and child has a secret or sacred name which is bestowed
by the older men upon him or her soon after birth, and
Chapter 10 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
Fifth Edition men of another group would be a most serious breach of
tribal custom. When mentioned at all, the name is spoken
by William Stallings only in a whisper, and not until the most elaborate
Lecture slides by Lawrie Brown precautions have been taken that it shall be heard by no
one but members of the group. The native thinks that a
(with edits by RHB) stranger knowing his secret name would have special
power to work him ill by means of magic.
—The Golden Bough, Sir James George Frazer

Outline Diffie-Hellman Key Exchange


• will consider: • first public-key type scheme proposed
– Diffie-Hellman key exchange • by Diffie & Hellman in 1976 along with the
– ElGamal cryptography exposition of public key concepts
– Elliptic Curve cryptography – note: now know that Williamson (UK CESG)
– Pseudorandom Number Generation (PRNG) secretly proposed the concept in 1970
based on Asymmetric Ciphers (RSA & ECC) • is a practical method for public exchange
(really creation) of a secret key
• used in a number of commercial products
Diffie-Hellman Key Exchange Diffie-Hellman Setup
• a public-key distribution scheme • all users agree on global parameters:
– cannot be used to exchange an arbitrary message
– large prime integer or polynomial q
– rather it can establish a common key
– known only to the two participants – a being a primitive root mod q
• value of key depends on the participants (and • each user (eg. A) generates their key
their private and public key information) – chooses a secret key (number): xA < q
• based on exponentiation in a finite (Galois) field x
– compute their public key: yA = a A mod q
(modulo a prime or a polynomial) – easy
• security relies on the difficulty of computing • each user makes public that key yA
discrete logarithms (similar to factoring) – hard

Diffie-Hellman Key Exchange


• shared session key for users A & B is KAB:
x x
KAB = a A. B mod q
x
= yA B mod q (which B can compute)
x
= yB A mod q (which A can compute)
• KAB is used as session key in private-key
encryption scheme between Alice and Bob
• if Alice and Bob subsequently communicate,
they will have the same key as before, unless
they choose new public-keys
• attacker needs an x, must solve discrete log
Diffie-Hellman Example Key Exchange Protocols
• users Alice & Bob who wish to swap keys: • users could create random private/public
• agree on prime q = 353 and a = 3 D-H keys each time they communicate
• select random secret keys: • users could create a known private/public
– A chooses xA = 97, B chooses xB = 233 D-H key and publish in a directory, then
• compute respective public keys: consulted and used to securely
97
– yA = 3 mod 353 = 40 (Alice)
233
communicate with them
– yB = 3 mod 353 = 248 (Bob)
• both of these are vulnerable to a Man-in-
• compute shared session key as: the-Middle Attack
x 97
– KAB = yB A mod 353 = 248 = 160 (Alice)
x 233
– KAB = yA B mod 353 = 40 = 160 (Bob) • (so authentication of the keys is needed)

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 • uses exponentiation in a finite (Galois) field
Bob. Darth also calculates a shared key with Alice
• with security based difficulty of computing
4. Bob receives the public key and calculates the shared key
(with Darth instead of Alice)
discrete logarithms, as in D-H
5. Bob transmits his public key to Alice • each user (eg. A) generates their key
6. Darth intercepts this and transmits his second public key – chooses a secret key (number): 1 < xA < q - 1
x
to Alice. Darth calculates a shared key with Bob – compute their public key: yA = a A mod q
7. Alice receives the key and calculates the shared key (with
Darth instead of Bob)
• Darth can then intercept, decrypt, re-
re-encrypt, forward all
messages between Alice & Bob
ElGamal Message Exchange
• Bob encrypt a message to send to Alice
– Bob represents message M in range 0 <= M <= q - 1
• longer messages must be sent as blocks
– Bob chooses random integer k with 1 <= k <= q - 1
k
– Bob computes one-
one-time key K = yA mod q
– Bob encrypts M as a pair of integers (C1,C2) where
k
• C1 = a mod q ; C2 = KM mod q
• Alice then recovers message by
– recovering key K as K = C1xA mod q (cf. D-
D-H)
– computing M as M = C2K mod q
- 1

• a unique secret k must be used each time


– otherwise result is insecure

ElGamal Example Elliptic Curve Cryptography


• use field GF(19) q = 19 and a = 10
• Alice computes her key: • majority of public-key crypto (RSA, D-H)
5
– chooses xA = 5 ; computes yA = 10 mod 19 = 3 use either integer or polynomial arithmetic
• Bob send message m = 17 as (11,5) by with very large numbers/polynomials
– choosing random k = 6 • imposes a significant load in storing and
k 6
– computing K = yA mod q = 3 mod 19 = 7
k 6
– computing C1 = a mod q = 10 mod 19 = 11 ;
processing keys and messages
C2 = KM mod q = 7.17 mod 19 = 5 • an alternative is to use elliptic curves
• Alice recovers original message by computing: • offers same security with smaller bit sizes
5
– recover K = C1xA mod q = 11 mod 19 = 7
– compute inverse K-1 = 7-1 = 11 • newer, not as well analysed (but becoming
– recover M = C2K-1 mod q = 5.11 mod 19 = 17 increasingly accepted)
Real Elliptic Curves Real Elliptic Curve Example
• an elliptic curve is defined by an equation in
two variables x and y, Line gives
with real coefficients NEGATIVE
of sum
• consider a cubic elliptic curve of form
– y2 = x3 + ax + b
NEGATION
– where x,y,a,b are all real numbers
– also define zero point O
• consider set of points E(a,b) that satisfy sum
• have addition operation for elliptic curve
– geometrically sum of P + Q is reflection of the
intersection R

Real Elliptic Curve Example Finite Elliptic Curves

Line gives
• Elliptic curve cryptography uses curves
NEGATIVE whose variables and coefficients are finite
of sum
• have two families commonly used:
– prime curves Ep(a,b) defined over Zp
NEGATION
• use integers modulo a prime p
• best in software
sum – binary curves E2m(a,b) defined over GF(2m)
• use polynomials with binary coefficients
• best in hardware
E23(1,1) Points on E23(1,1)

E24(g4,1) Points on E24(g4,1)


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 • users select a suitable curve Eq(a,b)
modulo exponentiation • select base point G = (x1,y1)
• need “hard” problem equiv to discrete log – with large order n s.t. nG = 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
• compute shared key: K = nAPB , K = nBPA
– known as the elliptic curve logarithm problem
– same since K = nAnBG
• Certicom example: E23(9,17)
• attacker would need to find K, hard

ECC Encryption/Decryption
• several alternatives, simplest like ElGamal
• must first encode any message M as a point on
the elliptic curve Pm
• select suitable curve and point G as in D-H
• receiver chooses private key nA < n
• receiver computes public key PA = nAG
• sender chooses private random key k
• sender encrypts Pm : Cm = {kG, Pm + kPb}
• decrypt Cm compute:
Pm + kPb – nB(kG)
kG) = Pm + k(n
k(nBG) – nB(kG) = Pm
Comparable Key Sizes for
ECC Security
Equivalent Security
• relies on elliptic curve logarithm problem Symmetric ECC-based RSA/DSA
scheme scheme (modulus size in
• fastest method is “Pollard rho method”
(key size in bits) (size of n in bits) bits)
• compared to factoring, can use much
smaller key sizes than with RSA etc 56 112 512

• for equivalent key lengths computations 80 160 1024


are roughly equivalent 112 224 2048
• hence for similar security ECC offers 128 256 3072
significant computational advantages 192 384 7680
256 512 15360

Pseudorandom Number PRNG based on RSA


Generation (PRNG) based on
Asymmetric Ciphers • have Micali-Schnorr PRNG using RSA
– in ANSI X9.82 and ISO 18031
• asymmetric encryption algorithm produce
apparently random output
• hence can be used to build a
pseudorandom number generator (PRNG)
• much slower than symmetric algorithms
• hence only use to generate a short
pseudorandom bit sequence (eg. key)
PRNG based on ECC
• dual elliptic curve PRNG
– NIST SP 800-9, ANSI X9.82 and ISO 18031
• some controversy on security / inefficiency
• algorithm
s0 = random{0...#E(GF(p))-
random{0...#E(GF(p))-1}
for i = 1 to k do
set si = x_coord_of(si-1P )
set ri = lsb240(x_coord_of(siQ))
end for
return r1 , . . . , rk

• only use if just have ECC

You might also like