Chapter 9
Chapter 9
1
PUBLIC KEY CRYPTOGRAPHY AND RSA
(CONT 1)
Hellman, US cryptologists, invented in 1976 a method that addressed both
problems, and that was radically different from all previous approaches to
cryptography, going back over four millennia.
Applications of Public-Key Cryptosystems
Encryption/decryption
Digital signature
Key exchange
2
Requirements for Public-Key Cryptography (Cont 1)
X=fk-1(Y) easy, if k and Y are known
X=fk-1(Y) infeasible, if Y is known but k is not known
Public-Key Cryptanalysis
It is vulnerable to brute force attack -> use large keys.
Another form of attack is to find some way to compute the private key
given the public key. To date, it has not been mathematically proven that
this form of attack is infeasible for a particular public-key algorithm.
Thus, any given algorithm, including the widely used RSA algorithm, is
suspect.
Finally, there is a form of attack that is peculiar to public-key systems.
This is, in essence, a probable-message attack. Suppose, for example, that
a message were to be sent that consisted solely of a 56-bit DES key. An
opponent could encrypt all possible keys using the public key and could
decipher any message by matching the transmitted ciphertext. Thus, no
matter how large the key size of the public-key scheme, the attack is
reduced to a brute-force attack on a 56-bit key. This attack can be
thwarted by appending some random bits to such simple messages.
The RSA Algorithm
It was developed in 1977 by Ron Rivest, Adi Shamir, and Len Adleman
at MIT and first published in 1978. The Rivest-Shamir-Adleman (RSA)
has since that time reigned supreme as most widely accepted and
implemented general-purpose approach to public-key encryption.
Description of the Algorithm
RSA makes use of an expression with exponentials. Plaintext is
encrypted in blocks, with each block having a binary value less than
some integer n. That is, the block size must be less or equal to ; in
practice, the block size is k bits, where . Encryption and
decryption are of the following form, for some plaintext block M and
ciphertext block C:
Both sender and receiver must know the value of n. The sender knows
the value of e, and only receiver knows the value of d. Thus, this is a
public-key encryption algorithm with a public key of KU={e,n}, and a
private key of KR={d,n}. For this algorithm to be satisfactory for public-
key encryption, the following requirements must be met:
3
Description of the Algorithm (Cont 1)
4
Description of the Algorithm (Cont 2)
Therefore . Therefore, ed is of the form . But by the
corollary to Euler’s theorem (*), given two prime numbers, p and q, and
integer n=pq and M, with 0<M<n:
So, . Now
Figure 9.5 summarizes RSA algorithm:
5
Description of the Algorithm (Cont 3)
An example is shown in Figure 9.6
6
Description of the Algorithm (Cont 4)
7
Mathematical attacks (Cont 1)