Title: Public Key Cryptography
1Public Key Cryptography
2Public Key Cryptography
- public key cryptography
- radically different approach Diffie-Hellman76,
RSA78 - sender, receiver do not share secret key
- public encryption key known to all
- private decryption key known only to receiver
- symmetric key crypto
- requires sender, receiver know shared secret key
- Q how to agree on key in first place
(particularly if never met)?
3Public key cryptography
Bobs public key
K
B
-
Bobs private key
K
B
encryption algorithm
decryption algorithm
plaintext message
plaintext message, m
ciphertext
4Public key encryption algorithms
Requirements
.
.
-
- need K ( ) and K ( ) such that
B
B
given public key K , it should be impossible to
compute private key K
B
-
B
RSA Rivest, Shamir, Adelson algorithm
5RSA Choosing keys
1. Choose two large prime numbers p, q.
(e.g., 1024 bits each)
2. Compute n pq, z (p-1)(q-1)
3. Choose e (with eltn) that has no common
factors with z. (e, z are relatively prime).
4. Choose d such that ed-1 is exactly divisible
by z. (in other words ed mod z 1 ).
5. Public key is (n,e). Private key is (n,d).
6RSA Encryption, decryption
0. Given (n,e) and (n,d) as computed above
2. To decrypt received bit pattern, c, compute
d
(i.e., remainder when c is divided by n)
Magic happens!
c
7RSA Why is that
Useful number theory result If p,q prime and n
pq, then
(using number theory result above)
(since we chose ed to be divisible by (p-1)(q-1)
with remainder 1 )
8RSA another important property
The following property will be very useful later
use public key first, followed by private key
use private key first, followed by public key
Result is the same!
9Public-Key Cryptography Principles
- The use of two keys has consequences in key
distribution, confidentiality and authentication. - The scheme has six ingredients (see Figure 3.7)
- Plaintext
- Encryption algorithm
- Public and private key
- Ciphertext
- Decryption algorithm
10Encryption using Public-Key system
11Authentication using Public-Key System
12Applications for Public-Key Cryptosystems
- Three categories
- Encryption/decryption The sender encrypts a
message with the recipients public key. - Digital signature The sender signs a message
with its private key. - Key exchange Two sides cooperate to exhange a
session key.
13Requirements for Public-Key Cryptography
- Computationally easy for a party B to generate a
pair (public key KUb, private key KRb) - Easy for the sender to generate ciphertext
- Easy for the receiver to decrypt ciphertect using
private key
14Requirements for Public-Key Cryptography
- Computationally infeasible to determine private
key (KRb) knowing public key (KUb) - Computationally infeasible to recover message M,
knowing KUb and ciphertext C - Either of the two keys can be used for
encryption, with the other used for decryption -
15Public-Key Cryptographic Algorithms
- RSA and Diffie-Hellman
- RSA - Ron Rives, Adi Shamir and Len Adleman at
MIT, in 1977. - RSA is a block cipher
- The most widely implemented
- Diffie-Hellman
- To exchange securely a secret key
- Compute discrete logarithms
-
16The RSA Algorithm Key Generation
- Select p,q p and q both prime
- Calculate n p x q
- Calculate
- Select integer e
- Calculate d
- Public Key KU e,n
- Private key KR d,n
17The RSA Algorithm - Encryption
- Plaintext Mltn
- Ciphertext C Me (mod n)
18The RSA Algorithm - Decryption
- Ciphertext C
- Plaintext M Cd (mod n)
19RSA Example
- Select primes p17 q11
- Compute n pq 1711187
- Compute ø(n)(p1)(q-1)1610160
- Select e gcd(e,160)1 choose e7
- Determine d de mod1601 and d lt 160 Value is
d23 since 237161 101601 - Publish public key KU7,187
- Keep secret private key KR23,187
20RSA Example cont
- sample RSA encryption/decryption is
- given message M 88 (nb. 88lt187)
- encryption
- C 887 mod 187 11
- decryption
- M 1123 mod 187 88
21RSA Key Generation
- users of RSA must
- determine two primes at random - p, q
- select either e or d and compute the other
- primes p,q must not be easily derived from
modulus Np.q - means must be sufficiently large
- typically guess and use probabilistic test
- exponents e, d are inverses, so use Inverse
algorithm to compute the other
22RSA Security
- three approaches to attacking RSA
- brute force key search (infeasible given size of
numbers) - mathematical attacks (based on difficulty of
computing ø(N), by factoring modulus N) - timing attacks (on running of decryption)
23Diffie-Hellman Key Exchange
- first public-key type scheme proposed
- by Diffie Hellman in 1976 along with the
exposition of public key concepts - note now is known that James Ellis (UK CESG)
secretly proposed the concept in 1970 - is a practical method for public exchange of a
secret key - used in a number of commercial products
24Diffie-Hellman Key Exchange
- a public-key distribution scheme
- cannot be used to exchange an arbitrary message
- rather it can establish a common key
- known only to the two participants
- value of key depends on the participants (and
their private and public key information) - based on exponentiation in a finite (Galois)
field (modulo a prime or a polynomial) - easy - security relies on the difficulty of computing
discrete logarithms (similar to factoring) hard
25Diffie-Hellman Setup
- all users agree on global parameters
- large prime integer or polynomial q
- a a primitive root mod q
- each user (eg. A) generates their key
- chooses a secret key (number) xA lt q
- compute their public key yA axA mod q
- each user makes public that key yA
26Diffie-Hellman Key Exchange
- shared session key for users A B is KAB
- KAB axA.xB mod q
- yAxB mod q (which B can compute)
- yBxA 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
27Diffie-Hellman Key Exchange
28Diffie-Hellman Example
- users Alice Bob who wish to swap keys
- agree on prime q353 and a3
- select random secret keys
- A chooses xA97, B chooses xB233
- compute public keys
- yA397 mod 353 40 (Alice)
- yB3233 mod 353 248 (Bob)
- compute shared session key as
- KAB yBxA mod 353 24897 160 (Alice)
- KAB yAxB mod 353 40233 160 (Bob)
29Other Public-Key Cryptographic Algorithms
- Digital Signature Standard (DSS)
- Makes use of the SHA-1
- Not for encryption or key echange
- Elliptic-Curve Cryptography (ECC)
- Good for smaller bit size
- Low confidence level, compared with RSA
- Very complex