This project includes the design and implementation of custom stream and block ciphers with encryption/decryption demos, naming, workflow diagrams, and usage justification. It also proposes a hybrid cryptography application combining symmetric and asymmetric methods.
EDES_zero is a fully commented, step-by-step educational implementation of the Data Encryption Standard (DES) algorithm, written in C++.
It demonstrates how DES operates internally, including key generation, expansion, substitution, and permutation processes.
| File Name | Description |
|---|---|
EDES_zero.cpp |
Main source file containing the complete DES algorithm and demo program |
To compile the program, use the following command:
g++ EDES_zero.cpp -std=c++17 -O2 -o EDES_zero
./EDES_zeroEDES_zero. Input plaintext and 8-byte key.
Enter plaintext: HelloDES
Enter 8-character key (will be used as 64-bit key): mysecret
--- ENCRYPTION ---
Padded plaintext (len=8): HelloDES
Binary: 01001000 01100101 01101100 01101100 01101111 01000100 01000101 01010011
Key (64-bit binary): 01101101 01111001 01110011 01100101 01100011 01110010 01100101 01110100
K1: 00011011 00000000 11110000 11101110 11111100 10101010
...
=== Encrypting block 1 ===
After IP: 11001010 11100001 01010111 ...
--- Round 1 ---
Subkey K1: 00011011 ...
...
Ciphertext (hex): 8f1a2bce21d4e765
Recovered plaintext: HelloDESTornado-25 is a fully commented, educational implementation of a noise-based stream cipher, written in C++. It demonstrates how stream ciphers operate using keystream generation, XOR-based encryption, and Base64 encoding for readable output.
| File Name | Description |
|---|---|
Tornado-25.cpp |
Main source file containing the complete Tornado-25 stream cipher and demo program |
To compile the program, use the following command (in Google Colab):
!g++ Tornado-25.cpp -o Tornado-25
./Tornado-25Original Message: THE MANAGER IS HERE
Encrypted (Base64): ks3ZyuWlRpu7AK6sjYZMHEjjFQ==
Decrypted Message: THE MANAGER IS HERE- C++17 compatible compiler (e.g., g++, clang++)
- Operating System: Linux, macOS, or Windows
- No external libraries required
This project is open-source and free to use for educational purposes.