RSA
Method
Choose random semi-prime n = p * q
Choose random e: gcd(e, (p-1)(q-1)) = 1
d: ed = 1 mod (p-1)(q-1)
Public key: (e, n)
Private key: (d, n)
Encrypt: E(M) = M^e mod n
Decrypt: D(C) = C^d mod n
Math
D(E(M)) = M is proved based on Fermat's little theorem or Euler's theorem.
(p-1)(q-1) is the Euler's totient number for n (number of integers less than n co-prime with it).
Knowing p and q, it's trivial to compute d from e. Not knowing: supposedly hard.
Attacks and Stuff
There are many ways to choose weak keys.
Needs strong random number generator, otherwise can be factorized.
RSA Problem
Decrypting a single cyphertext: not necessarily as difficult as factoring. It probably isn't.
Format
DER: binary format; modulo concatenated with exponent.
PEM: base64-encoded DER.
https://tls.mbed.org/kb/cryptography/asn1-key-structures-in-der-and-pem
Last updated