Skip to content

This project implements a modified AES encryption algorithm to demonstrate block cipher concepts. It reads plaintext and a key from files, applies preprocessing and Vigenère substitution, then performs simplified AES steps like ShiftRows, parity bits, and MixColumns.

Notifications You must be signed in to change notification settings

GrumpyKit10/Modified-AES-Encryption

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Modified AES Encryption System

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.

Features

  • 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.

Example

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).

Usage

  1. Compile or run the program on a Linux environment.
  2. Provide plaintext and key file names when prompted.
  3. The program will generate step-by-step encryption outputs in a specified output file.

Educational Purpose

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.

About

This project implements a modified AES encryption algorithm to demonstrate block cipher concepts. It reads plaintext and a key from files, applies preprocessing and Vigenère substitution, then performs simplified AES steps like ShiftRows, parity bits, and MixColumns.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published