0% found this document useful (0 votes)
91 views21 pages

Chapter 9 - Public Key Cryptography and RSA

Public key cryptography uses two keys: a public key that can be shared openly, and a private key that is kept secret. The RSA algorithm is a widely used public key cryptosystem that relies on the difficulty of factoring large prime numbers. It allows users to encrypt messages for others using their public key, while only the recipient can decrypt with their private key. Diffie-Hellman key exchange is another early public key algorithm that allows two users to securely establish a shared secret key over an insecure channel.

Uploaded by

rishabhdubey
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
91 views21 pages

Chapter 9 - Public Key Cryptography and RSA

Public key cryptography uses two keys: a public key that can be shared openly, and a private key that is kept secret. The RSA algorithm is a widely used public key cryptosystem that relies on the difficulty of factoring large prime numbers. It allows users to encrypt messages for others using their public key, while only the recipient can decrypt with their private key. Diffie-Hellman key exchange is another early public key algorithm that allows two users to securely establish a shared secret key over an insecure channel.

Uploaded by

rishabhdubey
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 21

Chapter 9 – Public Key

Cryptography and RSA


Private-Key Cryptography
 traditional private/secret/single key
cryptography uses one key
 shared by both sender and receiver
 if this key is disclosed communications are
compromised
 also is symmetric, parties are equal
 hence it does not provide non-repudiation
security service
Public-Key Cryptography

 uses two keys – a public & a private key


 asymmetric since parties are not equal
 Based on mathematical functions rather
than on substitution and permutation
 complements rather than replaces private
key cryptography
Why Public-Key
Cryptography?
 developed to address two key issues:
 key distribution – how to have secure
communications in general without having to
trust a KDC with your key

digital signatures – how to verify a message
comes intact from the claimed sender
(authentication + non-repudiation)
 public
invention due to Diffie & Hellman at
Stanford University in 1976
Public-Key Cryptography
 public-key/two-key/asymmetric cryptography
involves the use of two keys:
 a public-key, which may be known by anybody, and
can be used to encrypt messages, and verify
signatures
 a private-key, known only to the recipient, used to
decrypt messages, and sign (create) signatures
 is asymmetric because
 those who encrypt messages or verify signatures
cannot decrypt messages or create signatures
Public-Key Cryptography
Public-Key Cryptosystems
Public-Key Applications
 can classify uses into 3 categories:
 encryption/decryption (provide secrecy)
 digital signatures (provide authentication)

key exchange (of session keys)
 some algorithms are suitable for all uses,
others are specific to one
Algorithm Encryp/D DS Key
ecryp exchange
RSA Yes Yes Yes

ECC Yes Yes Yes

DH No No Yes

DSS No Yes No
Public-Key Characteristics
 Public-Key algorithms rely on two keys where:
 it is computationally infeasible to find decryption key
knowing only algorithm & encryption key
 it is computationally easy to en/decrypt messages
when the relevant (en/decrypt) key is known
 either of the two related keys can be used for
encryption, with the other used for decryption (for
some algorithms)
Security of Public Key Schemes
 like private key schemes brute force exhaustive
search attack is always theoretically possible
 but keys used are too large (>512bits)
 security relies on a large enough difference in
difficulty between easy (en/decrypt) and hard
(cryptanalyse) problems
 more generally the hard problem is known, but
is made hard enough to be impractical to break
RSA
 by Rivest, Shamir & Adleman of MIT in 1977
 best known & widely used public-key scheme
 Block cipher with plaintext & ciphertext are integers
between 0 & n-1 for some n.
 Typical size of n is 1024 bits i.e. 300 decimal digits.
RSA Key Setup
 each user generates a public/private key pair by:
 selecting two large primes at random - p, q
 computing their system modulus n=p.q
 calculate ø(n)=(p-1)(q-1)
 selecting at random the encryption key e
• where 1<e<ø(n), gcd(e,ø(n))=1
 solve following equation to find decryption key d

e.d=1 mod ø(n) and 0≤d≤n
 publish their public encryption key: PU={e,n}
 keep secret private decryption key: PR={d,n}
RSA Use
 to encrypt a message M the sender:
 obtains public key of recipient PU={e,n}
 computes: C = Me mod n, where 0≤M<n
 to decrypt the ciphertext C the owner:
 uses their private key PR={d,n}
 computes: M = Cd mod n
 note that the message M must be smaller
than the modulus n (block if needed)
RSA Example - Key Setup
1. Select primes: p=17 & q=11
2. Compute n = pq =17 x 11=187
3. Compute ø(n)=(p–1)(q-1)=16 x 10=160
4. Select e: gcd(e,160)=1; choose e=7
5. Determine d: de=1 mod 160 and d < 160
Value is d=23 since 23x7=161= 10x160+1
6. Publish public key PU={7,187}
7. Keep secret private key PR={23,187}
RSA Example - En/Decryption
 sample RSA encryption/decryption is:
 given message M = 88 (nb. 88<187)
 encryption:
C = 887 mod 187 = 11
 decryption:
M = 1123 mod 187 = 88
Factoring Problem
 factor n=p.q, hence compute ø(n) and then d

 Best factoring algorithm is Lattice Sieve


 Running time: exp [1.923(logn)1/3 (log logn)2/3 ]
 Grows subexponentially
 Computed the factors of n with 200 decimal digits
(663 bits) in May2005
 currently assume 1024-2048 bit RSA is secure
Diffie-Hellman Key Exchange
 first public-key type scheme proposed
 by Diffie & Hellman in 1976 along with the
exposition of public key concepts

 is a practical method for public exchange


of a secret key
 used in a number of commercial products
Diffie-Hellman Setup
 all users agree on global parameters:
 large prime integer q
 a being a primitive root of q
 each user (eg. A) generates their key
 chooses a secret key (number): xA < q
xA

compute their public key: yA = a mod q
 each user makes public that key yA
Diffie-Hellman Key Exchange
 shared session key for users A & B is KAB :
xA. xB
KAB = a mod q
xB
= yA mod q (which B can compute)
xA
= yB 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 (Hard)
Complexity: a√n
Diffie-Hellman Example
 users Alice & Bob who wish to swap keys:
 agree on prime q=353 and a=3
 select random secret keys:
 A chooses xA=97, B chooses xB=233
 compute respective public keys:
97
 yA=3 mod 353 = 40 (Alice)
233
 yB=3 mod 353 = 248 (Bob)
 compute shared session key as:
xA 97
 KAB = yB mod 353 = 248 = 160 (Alice)
xB 233
 KAB = yA mod 353 = 40 = 160 (Bob)

You might also like