Roux Institute at Northeastern CS5002 Discrete Structures Fall 2023 Group Final Project
A collection of programs to encrypt and decrypt messages using multiple different ciphers. For more information
- Quick and easy to use.
- Multiple cipher types to encrypt/decrypt messages.
- Options to type message or read in files.
The following packages are all required to use all of the programs (requirements differ between programs). Documentation and instructions for installing each package can be found below:
- Please ensure that python 3 is installed in your system. Documentation and instructions for installation can be found here
- This is a pure Python RSA implementation and is necessary for the
rsa_script.py
. - To check if you already have this installed, try entering
pip show rsa
(you may need to usepip3
if you are a Mac or Homebrew user) in your terminal. 3.Documentation forrsa
can be found here. Installation instructions are included.
- This is a Python library for symbolic mathematics. It is necessary for the
hill_cipher.py
. - To check if you already have this installed, try entering
pip show sympy
(you may need to usepip3
if you are a Mac or Homebrew user) in your terminal. 3.Documentation forsympy
can be found here. Installation instructions are included.
- This is a Python library for working with large arrays, matrices, and high-level mathematical operations. It is necessary for the
hill_cipher.py
- To check if you already have this installed, try entering
pip show numpy
(you may need to usepip3
if you are a Mac or Homebrew user) in your terminal. - Documentation for
moviePy
can be found here. Installation instructions are included.
- For running
caesar_cipher.py
- This program allows the user to encrypt and decrypt messages with caesar cipher. It accepts messages as user input, or reads in from a file.
- Encryption: When prompted, choose the encrypt option (press E) then enter message the desired shift key (0-25).
- Decryption: Choose option to decrypt (press D) then enter message/file to decrypt. The output will show all possible 25 shifts (a brute force method), with one being the correct legible/decrypted text.
- For running
baconian_cipher.py
- This program allows the user to encrypt and decrypt messages with baconian cipher. It accepts messages as user input, or reads in from a file.
- Encryption: When prompted, choose the encrypt option (press E) then enter message.
- Decryption: Choose option to decrypt (press D) then enter message/file to decrypt.
- For running
multiplicative_cipher.py
- This program allows the user to encrypt and decrypt messages with multiplicative cipher. It accepts messages as user input.
- Encryption: When prompted, choose the encrypt option (press E) then enter your message. Next,input a co-prime number of 26 to generate the key (1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, and 25).
- Decryption: Choose option to decrypt (press D) then enter message to decrypt. The output will contain 12 possible co-prime key decryptions (a brute force method), with one being the correct legible/decrypted text.
- For running
hill_cipher.py
- Make sure that you have
numpy
andsympy
installed. - This program allows the user to encrypt and decrypt messages with hill cipher using a generated key matrix that must be used for decryption (self-stored on key_matrix.npy). It accepts messages as user input.
- Encryption: When prompted, choose the encrypt option (press E) then enter your message.
- Decryption: Choose option to decrypt (press D) then enter message to decrypt that has been encrypted by the same program. The same cipher won't do, since you must have the key_matrix used to encrypt.
- Make sure that you have
- For running
rsa_script.py
- Make sure that you have
rsa
installed. - This program allows the user to encrypt and decrypt messages with rsa (Rivest-Shamir-Adleman) cipher. It accepts messages as user input. If public/private keys are not available to read, they will be generated (a self-stored
public.pem
andprivate.pem
). - Encryption: When prompted, choose the encrypt option (press E) then enter your message. The encrypted message will be in hex format.
- Decryption: Choose option to decrypt (press D) then enter message to decrypt.
- Make sure that you have