0% found this document useful (0 votes)
17 views34 pages

RSA Cryptosystem Overview and Techniques

Uploaded by

Abdo Almass
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views34 pages

RSA Cryptosystem Overview and Techniques

Uploaded by

Abdo Almass
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Chapter 7 – The RSA Cryptosystem

Dr. Safi Ibrahim


Content of this Chapter
• The RSA Cryptosystem
• Implementation aspects
• Finding Large Primes
• Attacks and Countermeasures
• Lessons Learned

2/34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Content of this Chapter
• The RSA Cryptosystem
• Implementation aspects
• Finding Large Primes
• Attacks and Countermeasures
• Lessons Learned

3/34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


The RSA Cryptosystem
• Martin Hellman and Whitfield Diffie published their landmark public-
key paper in 1976
• Ronald Rivest, Adi Shamir and Leonard Adleman proposed the
asymmetric RSA cryptosystem in1977
• Until now, RSA is the most widely use asymmetric cryptosystem
although elliptic curve cryptography (ECC) becomes increasingly
popular
• RSA is mainly used for two applications
• Transport of (i.e., symmetric) keys
• Digital signatures

4/34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Encryption and Decryption
• RSA operations are done over the integer ring Zn (i.e., arithmetic
modulo n), where n = p * q, with p, q being large primes
• Encryption and decryption are simply exponentiations in the ring
Definition
Given the public key (n,e) = kpub and the private key d = kpr we write
y = ekpub(x) ≡ xe mod n
x = dkpr(y) ≡ yd mod n
where x, y ε Zn.
We call ekpub() the
• encryptionx,and
In practice y, n and d are very long integer numbers (≥ 1024 bits)
dkpr() the
• Thedecryption
security of the scheme relies on the fact that it is hard to derive the
operation.
„private exponent“ d given the public-key (n, e)

5/34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Key Generation
• Like all asymmetric schemes, RSA has set-up phase during which the
private and public keys are computed
Algorithm: RSA Key Generation
Output: public key: kpub = (n, e) and private key kpr = d
1. Choose two large primes p, q
2. Compute n = p * q
3. Compute Φ(n) = (p-1) * (q-1)
4. Select the public exponent e ε {1, 2, …, Φ(n)-1} such that
gcd(e, Φ(n) ) = 1
5. Compute the private key d such that d * e ≡ 1 mod Φ(n)
6. RETURN kpub = (n, e), kpr = d

Remarks:
• Choosing two large, distinct primes p, q (in Step 1) is non-
trivial
• gcd(e, Φ(n)) = 1 ensures that e has an inverse and, thus, that there is
6/34
key7 dof Understanding Cryptography by Christof Paar and Jan Pelzl
always a privateChapter
Example: RSA with small numbers
ALICE BOB
Message x = 4 1. Choose p = 3 and q = 11
[Link] n = p * q = 33 3.
Φ(n) = (3-1) * (11-1) =
20
4. Choose e = 3
Kpub = (33,3)
5. d ≡ e-1 ≡7 mod 20
y = xe ≡ 43 ≡ 31 mod 33
y = 31

yd = 317 ≡ 4 = x mod
33
7/34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl
Content of this Chapter
• The RSA Cryptosystem
• Implementation aspects
• Finding Large Primes
• Attacks and Countermeasures
• Lessons Learned

8/34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Implementation aspects
• The RSA cryptosystem uses only one arithmetic operation (modular
exponentiation) which makes it conceptually a simple asymmetric scheme
• Even though conceptually simple, due to the use of very long
numbers, RSA is orders of magnitude slower than symmetric
schemes, e.g., DES, AES
• When implementing RSA (esp. on a constrained device such as
smartcards or cell phones) close attention has to be paid to the correct
choice of arithmetic algorithms
• The square-and-multiply algorithm allows fast exponentiation, even with
very long numbers…

9 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Square-and-Multiply
• Basic principle: Scan exponent bits from left to right and
square/multiply operand accordingly
Algorithm: Square-and-Multiply for xH mod n
Input: Exponent H, base element x,
Modulus n Output: y = xH mod n
1. Determine binary representation H = (ht, ht-1, ...,
h0)2
2. FOR i = t-1 TO 0
3. y = y2 mod n
4. IF hi = 1 THEN
5. y = y * x mod n
6. RETURN y

• Rule: Square in every iteration (Step 3) and multiply current result by x


if the exponent bit hi = 1 (Step 5)
10 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl
• Modulo reduction after each step keeps the operand y small
Example: Square-and-Multiply
• Computes x26 without modulo reduction
• Binary representation of exponent: 26 =(1,1,0,1,0)2=(h4,h3,h2,h1,h0)2
Step Binary exponent Op Comment

1 x = x1 (1)2 Initial setting, h4 processed

1a (x1)2 = x2 (10)2 SQ Processing h3

1b x2 * x = x3 (11)2 MUL h3 = 1

2a (x3)2 = x6 (110)2 SQ Processing h2

2b - (110)2 - h0 = 0

3a (x6)2 = x12 (1100)2 SQ Processing h1

3b x12 * x = x13 (1101)2 MUL h1=1

4a (x13)2 = x26 (11010)2 SQ Processing h0

4b - (11010)2 - h0 = 0

• Observe how the exponent evolves into x26 = x11010


11 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl
Example – Square & Multiplication Algorithm
Complexity of Square-and-Multiply Alg.
• The square-and-multiply algorithm has a logarithmic complexity, i.e., its
run time is proportional to the bit length (rather than the absolute value) of
the exponent
• Given an exponent with t+1 bits
H = (ht,ht-1, ..., h0)2
with ht = 1, we need the following operations
• # Squarings =t
• Average # multiplications = 0.5 t
• Total complexity: #SQ + #MUL = 1.5 t
• Exponents are often randomly chosen, so 1.5 t is a good estimate for
the average number of operations
• Note that each squaring and each multiplication is an operation with very
long numbers, e.g., 2048 bit integers.
13 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl
Speed-Up Techniques
• Modular exponentiation is computationally intensive
• Even with the square-and-multiply algorithm, RSA can be quite slow on
constrained devices such as smart cards
• Some important tricks:
• Short public exponent e
• Chinese Remainder Theorem (CRT)
• Exponentiation with pre-computation (not covered here)

14 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Fast encryption with small public exponent
• Choosing a small public exponent e does not weaken the security of RSA
• A small public exponent improves the speed of the RSA encryption
significantly

Public Key e as binary string #SQ + #MUL

21+1 = 3 (11)2 1+1=2

24+1 = 17 (1 0001)2 4+1=5

216 + 1 (1 0000 0000 0000 0001)2 16 + 1 = 17

• This is a commonly used trick (e.g., SSL/TLS, etc.) and makes RSA the
fastest asymmetric scheme with regard to encryption!

15 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Fast decryption with CRT
• Choosing a small private key d results in security weaknesses!
• In fact, d must have at least 0.3t bits, where t is the bit
length of the modulus n
• However, the Chinese Remainder Theorem (CRT) can be used to
(somewhat) accelerate exponentiation with the private key d
• Based on the CRT we can replace the computation of
xd mod Φ(n) mod n

by two computations
xd mod (p-1) mod p
and xd mod (q-1) mod q
where q and p are „small“ compared to n

16 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Basic principle of CRT-based exponentiation
Problem
Domain x xd mod n

xp Xpd mod (p-1) mod p


CRT Domain
xq Xqd mod (q-1) mod q

• CRT involves three distinct steps


(1) Transformation of operand into the CRT domain
(2) Modular exponentiation in the CRT domain
(3) Inverse transformation into the problem domain
• These steps are equivalent to one modular exponentiation in the
problem domain
17 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl
CRT: Step 1 – Transformation
• Transformation into the CRT domain requires the knowledge of p
and q
• p and q are only known to the owner of the private key, hence CRT
cannot be applied to speed up encryption
• The transformation computes (xp, xq) which is the representation of x
in the CRT domain. They can be found easily by computing
xp ≡ x mod p and xq ≡ x mod q

18 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


CRT: Step 2 – Exponentiation
• Given dp and dq such that
dp ≡ d mod (p-1) and dq ≡ d mod (q-1)
one exponentiation in the problem domain
requires two exponentiations in the CRT domain
yp ≡ xp mod
d
p and yq ≡d xq mod q
p q

• In practice, p and q are chosen to have half the bit length of


n, i.e.,
|p| ≈ |q| ≈ |n|/2

19 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


CRT: Step 3 – Inverse Transformation
• Inverse transformation requires modular inversion twice, which is
computationally expensive
cp ≡ q-1 mod p and cq ≡ p-1 mod q
• Inverse transformation assembles yp, yq to the final result y mod n in the
problem domain
X ≡ [ q * cp ] * xp + [ p * cq ] * yq mod n
• The primes p and q typically change infrequently, therefore the cost of
inversion can be neglected because the two expresssions
[ q * cp ] and [ p * cq ]
can be precomputed and stored

20 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Complexity of CRT
• We ignore the transformation and inverse transformation steps since their
costs can be neglected under reasonable assumptions
• Assuming that n has t+1 bits, both p and q are about t/2 bits long
• The complexity is determined by the two exponentiations in the CRT
domain. The operands are only t/2 bits long. For the exponentiations we
use the square-and-multiply algorithm:
• # squarings (one exp.): #SQ = 0.5 t
• # aver. multiplications (one exp.): #MUL = 0.25t
• Total complexity: 2 * (#MUL + #SQ) = 1.5t
• This looks the same as regular exponentations, but since the operands
have half the bit length compared to regular exponent., each operation
(i.e., multipl. and squaring) is 4 times faster!
• Hence CRT is 4 times faster than straightforward exponentiation
21 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl
Content of this Chapter
• The RSA Cryptosystem
• Implementation aspects
• Finding Large Primes
• Attacks and Countermeasures
• Lessons Learned

24 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Finding Large Primes
• Generating keys for RSA requires finding two large primes p and q
such that n = p * q is sufficiently large
• The size of p and q is typically half the size of the desired size of n
• To find primes, random integers are generated and tested for
primality:

p' „p‘ is prime“


RNG candidate Primality Test OR
prime „p‘ is
composite“

• The random number generator (RNG) should be non-predictable


otherwise an attacker could guess the factorization of n

25 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Primality Tests
• Factoring p and q to test for primality is typically not feasible
• However, we are not interested in the factorization, we only want to
know whether p and q are composite
• Typical primality tests are probabilistic, i.e., they are not 100%
accurate but their output is correct with very high probability
• A probabilistic test has two outputs:
• „p‘ is composite“ – always true
• „p‘ is a prime“ – only true with a certain probability
• Among the well-known primality tests are the following
• Fermat Primality-Test
• Miller-Rabin Primality-Test

26 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Fermat Primality-Test
• Basic idea: Fermat‘s Little Theorem holds for all primes, i.e., if a
number p‘ is found for which ap‘-1 ≡ 1 mod p‘, it is not a prime

Algorithm: Fermat Primality-Test


Input: Prime candidate p‘, security parameter s
Output: „p‘ is composite“ or „p‘ is likely a prime“
1. FOR i = 1 TO s
2. choose random a ε {2,3, ..., p‘-2}
3. IF ap‘-1 ≡ 1 mod p’ THEN
4. RETURN „p‘ is composite“
5. RETURN „p‘ is likely a prime“

27 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Content of this Chapter
• The RSA Cryptosystem
• Implementation aspects
• Finding Large Primes
• Attacks and Countermeasures
• Lessons Learned

28 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Attacks and Countermeasures 1/3
• There are two distinct types of attacks on cryptosystems
• Analytical attacks try to break the mathematical structure of the
underlying problem of RSA
• Implementation attacks try to attack a real-world
implementation by exploiting inherent weaknesses in the way
RSA is realized in software or hardware

29 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Attacks and Countermeasures 2/3
RSA is typically exposed to these analytical attack vectors
• Mathematical attacks
• The best known attack is factoring of n in order to obtain Φ(n)
• Can be prevented using a sufficiently large modulus n
• The current factoring record is 664 bits. Thus, it is recommended that
n should have a bit length between 1024 and 3072 bits
• Protocol attacks
• Exploit the malleability of RSA, i.e., the property that a ciphertext can
be transformed into another ciphertext which decrypts to a related
plaintext – without knowing the private key
• Can be prevented by proper padding

30 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Attacks and Countermeasures 3/3
• Implementation attacks can be one of the following
• Side-channel analysis
• Exploit physical leakage of RSA implementation (e.g.,
power consumption, EM emanation, etc.)
• Fault-injection attacks
• Inducing faults in the device while CRT is executed can
lead to a complete leakage of the private key

More on all attacks can be found in Section 7.8 of Understanding Cryptography

31 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Attacks and Countermeasures 2/2
• RSA is typically exposed to these analytical attack vectors (cont’d)
• Protocol attacks
• Exploit the malleability of RSA
• Can be prevented by proper padding
• Implementation attacks can be one of the following
• Side-channel analysis
• Exploit physical leakage of RSA implementation (e.g.,
power consumption, EM emanation, etc.)
• Fault-injection attacks
• Inducing faults in the device while CRT is executed can
lead to a complete leakage of the private key

32 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Content of this Chapter
• The RSA Cryptosystem
• Implementation aspects
• Finding Large Primes
• Attacks and Countermeasures
• Lessons Learned

33 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl


Lessons Learned
• RSA is the most widely used public-key cryptosystem
• RSA is mainly used for key transport and digital signatures
• The public key e can be a short integer, the private key d needs to have
the full length of the modulus n
• RSA relies on the fact that it is hard to factorize n
• Currently 1024-bit cannot be factored, but progress in factorization
could bring this into reach within 10-15 years. Hence, RSA with a 2048
or 3076 bit modulus should be used for long-term security
• A naïve implementation of RSA allows several attacks, and in
practice RSA should be used together with padding

34 /34 Chapter 7 of Understanding Cryptography by Christof Paar and Jan Pelzl

You might also like