This document discusses public key cryptography and the RSA algorithm. It explains that RSA uses a public/private key pair, where the public key can encrypt messages but the private key is needed for decryption. It provides an example of how RSA encryption and decryption works step-by-step using two users, Alice and Bob. The document also includes exercises for readers to practice RSA encryption and decryption using different key values and messages. It discusses making RSA more efficient for encryption and decryption as well as security considerations.
This document discusses public key cryptography and the RSA algorithm. It explains that RSA uses a public/private key pair, where the public key can encrypt messages but the private key is needed for decryption. It provides an example of how RSA encryption and decryption works step-by-step using two users, Alice and Bob. The document also includes exercises for readers to practice RSA encryption and decryption using different key values and messages. It discusses making RSA more efficient for encryption and decryption as well as security considerations.
System Security Module 3 MODULE –3: Public Key Crypto Systems
Number theory fundamentals
Principles of public key crypto systems RSA algorithm Diffie Hellman Key exchange Public key cryptography
Public key cryptography or asymmetric cryptography is
a cryptographic system that uses pairs of keys. Public keys which may be disseminated widely and private keys which are known only to the owner. In such a system, any person can encrypt a message using the receiver’s public key, but that encrypted message can only be decrypted with the receiver’s private key. RSA algorithm RSA (Rivest Shamir Adleman) is an algorithm used to encrypt and decrypt messages. This algorithm was developed in 1977. It is an asymmetric cryptographic algorithm . This is also called public key cryptography because one of the keys can be given to anyone. RSA algorithm RSA algorithm Example User A wants to send a number 4 to User B Select two prime numbers p = 3, q = 11 n = p * q = 3 * 11 = 33 ø(n) = 2 * 10 = 20 Public key generation Select a number e such that e is 1 < ø(n) and gcd(e, ø(n)) = 1 Let e = 13, such that gcd(13,20) = 1 The public key is {e,n} = {13,33} Example Private key generation Find a number d such that 1 = 7 -1 * 6 e * d mod ø(n) = 1 = 7 – 1(13 -1*7) d is modular multiplicative = 2 * 7 -1 * 13 inverse = 2 (20 -1*13) -1 *13 13d mod 20 = 1 = 2 * 20 -3 *13 20 = 1* 13 + 7 = -3 + 20 = 17 Private key = {17,33} 13 = 1 *7 + 6 7 = 1 * 6 + 1 Example User A know the public key {13,33} Important p < n ie 4 < 33 Cipher text = 413 mod 33 (43)4 * 4 mod 33 (31)4 * 4 mod 33 (-2)4 * 4 mod 33 64 mod 33 = 31 User A sends cipher text 31 to User B Example User B decrypt the message using private key { 17,33} Plaintext = 31 17 mod 33 ((-2) 5)3 * 22 mod 33 -((2) 5)3 * 22 mod 33 -(-1)3 * 22 mod 33 4 Exercises Perform the encryption and decryption using RSA algorithm for the following data 1. p = 3 q = 11 e = 7 m = 5 2. p = 5 q = 11 e = 3 m = 9 3. p = 7 q = 11 e = 17 m = 8 4. p = 11 q = 13 e = 11 m = 7 5. p = 17 q = 31 e = 7 m = 2 Exercise In public key system using RSA, you intercept the cipher text C = 10 sent to a user whose public key e = 5 n = 35 What is the plain text? Exercise In public key system using RSA, you intercept the cipher text C = 20 sent to a user whose public key e = 13 n = 77 What is the plain text? Efficient encryption
However, with a very small public key, such
as e = 3, RSA becomes vulnerable to a simple attack. During key generation the user selects a value of e that is relatively prime to ø (n). Thus, if a value if e is selected first, and the primes p and q are generated, it may turn out that gcd(ø(n), e) /= 1. In that case, the user must reject the p, q values and generate a new p, q pair. Efficient decryption We cannot similarly choose a small constant value of d for efficient operation. A small value of d is vulnerable to a brute-force attack and to other forms of cryptanalysis [WIEN90]. However, there is a way to speed up computation using the Chinese Remainder Theorem (CRT) to compute mod p & q separately, and then combine results to get the desired answer. This is approx 4 times faster than calculating “Cd mod n” directly. Note that only the owner of the private key details (who knows the values of p & q) RSA Security
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 chosen ciphertext attacks - given properties of RSA