RSA

RSA #

RSA is a public-key cryptosystem used for secure data transmission over the internet.

Key Generation #

Prime Numbers #

Generate two large prime numbers \( p \) and \( q \) .

Calculate n and totient of n #

\[ n = p * q \] \[ \phi(n) = (p-1)(q-1) \]

Calculate e #

\( e \) is a number relatively prime to \( \phi(n) \) .

\[ e \in \mathbb{Z}^{+} \] \[ e < \phi(n) \] \[ gcd(e, \phi(n)) = 1 \]

Calculate d #

\( d \) is the modular inverse of \( e \) mod \( \phi(n) \) .

\[ d \in \mathbb{Z}^{+} \] \[ d*e \ mod \ \phi(n) = 1 \]

Generate Key Paior #

\( (e,n) \) is the public key.

\( (d,n) \) is the private key.

Encryption #

\[ C = M^{e} \ mod \ n \]

Decryption #

\[ M = C^{d} \ mod \ n \]