CyberCrypt is a secure, educational file encryption tool developed for the 2024–2025 Talent Exhibition as part of the BTS Cloud & Cybersecurity program at Lycée Guillaume Kroll.
It provides a hands-on experience in modern cryptographic techniques including AES, RSA, KDFs, and secure file handling – all wrapped in a user-friendly web interface powered by Streamlit.
- Clone the repository:
git clone https://github.com/DiogoF-Hub/CyberCrypt.git cd CyberCrypt pip install -r requirements.txt streamlit run Home.py
- Encrypt and decrypt files using AES-256 (CBC mode)
- Secure AES keys using RSA (2048–4096-bit) encryption
- Generate AES keys:
- Randomly
- Derived from a password using PBKDF2 or Argon2id (with salt)
- View detailed file structure and cryptographic process
- Easy-to-use Streamlit interface
- AES-256 (CBC mode) – symmetric file encryption
- RSA – public key encryption for AES key protection
- PBKDF2 and Argon2id – secure password-based key derivation
- Python 3.11+
- Streamlit – front-end web framework
- Upload a file to encrypt
- Choose between:
- Password-based encryption (with salt and KDF)
- Random AES key generation
- CyberCrypt:
- Encrypts the file using AES
- Encrypts the AES key with your RSA public key
- Outputs:
- Encrypted file
- Encrypted AES key (and salt, if applicable)
[2-byte filename length] + [original filename (bytes)] + [IV (16 bytes)] + [AES-encrypted content]
- Filename is stored to preserve the original name after decryption.
- IV (Initialization Vector) is required for AES-CBC mode.
[RSA-encrypted AES key (256–512 bytes)]
✍️ Author: CARVALHO Diogo – BTS Cybersecurity | Lycée Guillaume Kroll – 2024–2025 Talent Exhibition