
This is an implementation of the Schmidt-Samoa cryptosystem done in Python. The Schmidt-Samoa cryptosystem is an asymmetric encryption algorithm based on the difficulty of factoring large integers
This project begins with first generating a public and private key. Creating the keys involves generating two sufficiently large primes, p and q. We compute the public key, N, as p2q. And the private key, d, as N-1 mod lcm(p - 1, q - 1)
To encrypt a file I read in the file and encode it into a number, m, and compute the ciphertext, c, with mN mod N
To decrypt the ciphertext, c, we compute is as follows: cd mod pq