A simple file encryption desktop application built for study and experimentation. It allows users to encrypt and decrypt files using AES-GCM encryption with secure key derivation through the Scrypt algorithm.
- Encryption: AES-256
- Mode: GCM (Galois/Counter Mode)
- Key Derivation: Scrypt
-
Key Derivation
- A key is derived from the user password using Scrypt
- Parameters:
N=16384,r=8,p=1 - A random 32-byte salt is generated per operation
-
Encryption (AES-GCM)
- A random 16-byte nonce is generated
- The file is encrypted using AES-256-GCM
- GCM provides confidentiality and integrity via a 16-byte authentication tag
-
Encrypted File Format
[32 bytes Salt][16 bytes Nonce][Encrypted Data][16 bytes Auth Tag] -
Decryption
- Salt and nonce are read from the encrypted file
- The key is derived again from the password and salt
- The authentication tag is verified before decryption
- Python 3
- Flet
- PyCryptodome
git clone https://github.com/devyasminn/secret-keeper.git
cd secret-keeper
pip install -r requirements.txtpython run.py