This project is an implementation of a simplified, modified version of the Advanced Encryption Standard (AES) for educational purposes. It was developed as part of CSCE 3550 - Foundations of Cybersecurity (Spring 2022). The system demonstrates fundamental cryptographic operations including substitution, padding, block-based transformations, parity bits, and MixColumns diffusion.
- Reads plaintext input from a file and encryption key from a separate file.
- Preprocesses plaintext by removing punctuation and whitespace.
- Performs polyalphabetic substitution using the Vigenère cipher.
- Pads output to fit 4×4 character blocks for block cipher operations.
- Implements ShiftRows, Parity Bit assignment, and MixColumns steps (modified AES process).
- Outputs results step-by-step to both the screen and an output file.
- Includes error handling for file operations.
Plaintext Input:
ENCRYPT THIS MESSAGE USING THE ALGORITHM DESCRIBED BELOW.
Key:
SIMPLEEXAMPLEKEY
Output (sample steps):
- Preprocessing:
ENCRYPTTHISMESSAGEUSINGTHEALGORITHMDESCRIBEDBELOW
- Substitution:
WVOGJTXQHUHXICWYYMGHTRKQHQPWKYVGLPYSPWGOINTOFOPMO
- Padding → ShiftRows → Parity Bits → MixColumns (written to output file).
- Compile or run the program on a Linux environment.
- Provide plaintext and key file names when prompted.
- The program will generate step-by-step encryption outputs in a specified output file.
This project is intended to demonstrate the inner workings of block cipher encryption methods and provide practice with implementing cryptographic transformations. It is not intended for real-world security use.