// # Project 1: DES - based Feistel Cipher Implementation
Team Member: Yuhan Wan & Ying Zhou
Date: March/20th/2025
Task Assignment:
- CharToBin: YW
- Cipher:
- encryption: YW
- decryption: Ying
- FeistelFunctions: YW
- KeySchedule: YW && Ying
- Main: YW && Ying
- Permutation: Ying
- ReadFile: Ying
- SBox: YW
This project implements a basic file encryption and decryption system using a simplified Feistel network. The program reads a plaintext file, encrypts or decrypts the contents using a user-provided 7-character password, and compute the test cases output to a specified file.
Features:
- Feistel-based Cipher:
- 10 rounds of Feistel encryption
- 32-bit subkeys used in each round
- Includes S-Boxes and P-Box permutation
- Customizable File I/O:
- User-specified input and output file names
- Encryption and decryption options via command line
- Password Handling:
- User enters a 7-character password
- Password is automatically converted into binary for use as the encryption key
- Bit-level Processing:
- Input file is processed as binary
- Encryption is performed bit-by-bit
- Binary File Output:
- Encrypted file can be safely stored and later decrypted