RSA
Rivest–Shamir–Adleman
The Textbook RSA Scheme
Key Generation (Alice)
Generate two large random primes and . Compute the modulus . Compute . Choose a public exponent s.t. (usually we use ). Publish the modulus and the public exponent as the public key .
Encryption (Bob)
Choose a plaintext to be sent. Use the public key to encrypt :
In Python, this step is computed by c = pow(m, e, N)
. Send the ciphertext to Alice.
Decryption (Alice)
Compute the private component and decrypt :
In Python, this step is computed by m = pow(c, d, N)
.
Key Exchange
Today, RSA is often not the preferred way of doing a key exchange, and it is being used less and less in protocols in favor of Elliptic Curve Diffie-Hellman (ECDH). This is mostly due to historical reasons (many vulnerabilities have been discovered with RSA implementations and standards) and the attractiveness of the smaller parameter sizes offered by ECDH.
Lab
Reference
Last updated