This is our implementation of the NTRU Post-Quantum Cryptosystem. We followed the structure we found online and especially on this paper: https://nitaj.users.lmno.cnrs.fr/ntru3final.pdf
Github link: https://github.com/ch4perone/NTRU.git
Currently running on python3.6. The python modules sympy and dill are required. Make sure to install these.
python setup.py
python encrypt.py -m "your-message-here" -p "filename-of-public-key" (stores encrypted message into "message_enc.txt")
python decrypt.py -c "ciphertext-filename"
ntru.py contains public parameters used for NTRU Cryptosystem. That is N = 503, p = 3, q = 257. Also, contains all necessary functions for encryption, decryption, polynomial manipulation, polynomial to text and vice versa conversion.
setup.py creates public and private keys, storing them as files.
encrypt.py takes a message as an argument and using the public key provided encrypts it creating "message_enc.txt"
decrypt.py takes ciphertext file as an argument and prints the plaintext message
The message shouldn't exceed 83 characters.
Do not share your private key!