Menu β–Ύ β–΄

Tree [418d56] main v1.0 /
 History

HTTPS access


File Date Author Commit
 .github 2025-05-03 Roy Roy [cda8dc] Update issue templates
 AVGVSTO.EN.PY 2025-05-01 Roy Roy [5ceae6] Add files via upload
 CODE_OF_CONDUCT.md 2025-05-03 Roy Roy [b749b2] Create CODE_OF_CONDUCT.md
 CONTRIBUTING.md 2025-05-03 Roy Roy [96dbfd] Create CONTRIBUTING.md
 LICENSE 2025-05-03 Roy Roy [6aaf03] Create LICENSE
 README.md 2025-06-06 Roy Roy [a3ac50] Update README.md
 SECURITY.md 2025-05-03 Roy Roy [e2ee6a] Create SECURITY.md

Read Me

20250607_0152_Logo 3D AVGVSTO_remix_01jx3tg80we7m8j3r8p39xg4n2

20250512_2311_PubblicitΓ  Innovativa AVGVSTO_simple_compose_01jv35b41cfb9rt2xwwmafwbv8

AVGVSTOEN2

πŸ›‘οΈ AVGVSTO - Advanced Security Suite with USB Binding

AVGVSTO is a Python-based encryption tool that binds sensitive data to a physical USB drive , ensuring decryption is only possible when the authorized device is connected. It combines AES-256 encryption with robust USB hardware authentication and brute-force protection for enhanced security.
πŸ” Key Features

Hardware-Bound Encryption 
Files can only be decrypted when the original USB drive (used during encryption) is connected. The USB's unique identifier (st_dev) is embedded in the encrypted file.
AES-256 with PBKDF2 
Secure key derivation using SHA-256 with 1 million iterations  for password-to-key conversion.
Brute-Force Protection 
After 3 failed decryption attempts , encrypted files/folders are automatically deleted.
Recursive Folder Encryption 
Encrypt entire directories and nested files with a single operation.
Modern GUI 
Intuitive interface with drag-and-drop support, real-time feedback, and responsive design.

🧰 System Requirements

Python 3.9+   
Dependencies :  
bash

pip install pycryptodome psutil
OS Support :
Windows, Linux, macOS (USB detection optimized for Windows and Unix-like systems).
GUI :
Built with tkinter (included in Python).

πŸ“¦ Project Structure

AVGVSTO/
β”œβ”€β”€ AVGVSTO.py # Main application (GUI + logic)
β”œβ”€β”€ usb_secure.key # Stores the authorized USB drive's unique ID
β”œβ”€β”€ attempts.txt # Tracks failed decryption attempts
β”œβ”€β”€ requirements.txt # Dependency list
└── README.md # Documentation

πŸš€ Installation & Setup

Clone the Repository    
bash

git clone https://github.com/your-username/AVGVSTO.git
cd AVGVSTO

Install Dependencies
bash

pip install -r requirements.txt

Run the Application
bash

python AVGVSTO.py

πŸ“‹ Usage Guide
1. Configure a Secure USB Drive

Connect a USB drive.
In the app, select it from the dropdown menu.
Click "πŸ”§ Set Secure USB Drive" .
➀ This saves the USB's unique ID to usb_secure.key.
  1. Encrypt Files/Folders

    Click "πŸ” Encrypt File or Folder" .
    Enter a strong password (not stored; used to derive the encryption key).
    Select a file or folder.
    ➀ The original file/folder will be deleted after encryption.

  2. Decrypt Files/Folders

    Ensure the authorized USB drive is connected.
    Click "πŸ”“ Decrypt File or Folder" .
    Enter the password used during encryption.
    ➀ After 3 incorrect attempts, files are permanently deleted.

πŸ” Security Architecture
USB Binding Mechanism

The USB drive's unique identifier (st_dev) is hashed with SHA-256 and stored in usb_secure.key. During decryption, the app verifies the connected USB matches this ID. If the USB is lost, data becomes unrecoverable.
Password Management

Passwords are never stored.  
A SHA-256 hash of the password is embedded in the encrypted file.  
PBKDF2 with 1 million iterations slows brute-force attacks.

Brute-Force Protection

Failed decryption attempts are tracked in attempts.txt. After 3 failures:

Encrypted files/folders are deleted.
The attempt counter resets.

🧠 Technical Details
Encryption Process

Generate a random salt (16 bytes)  and IV (16 bytes) .
Derive a 32-byte AES key from the password and USB ID using PBKDF2.
Encrypt data with AES-256 in CBC mode.
Append metadata to the encrypted file:
[salt][iv][usb_id][password_hash][encrypted_data]

Decryption Process

Extract salt, IV, USB ID, and password hash from the file.
Verify the connected USB matches the stored ID.
Validate the entered password against the stored hash.
Decrypt data using the derived key and IV.

⚠️ Security Considerations

USB Key File (usb_secure.key) :
This file is critical. If exposed, an attacker could bypass USB binding. Protect it with strict file permissions.
Physical Security :
Losing the USB drive means losing access to encrypted data. Store it securely.
Password Strength :
Use long, complex passwords to resist dictionary attacks.

🀝 Contributing

Contributions are welcome! To contribute:

Fork the repository.
Create a feature branch:  
bash

1
git checkout -b feature/new-feature

Commit changes:
bash

1
git commit -m "Add new feature"

Push to the branch:
bash

1
git push origin feature/new-feature


Open a Pull Request.

❀️ Authors

Roy Merlo (RM) : GitHub @RoyMerlo 
RPX : GitHub @RPX

πŸ“¬ Contact

For questions or suggestions, open an issue on GitHub or reach out to the authors directly.

AVGVSTO is a powerful tool for securing sensitive data with hardware-based encryption. Ideal for:

Secure backups of confidential documents  
Sharing encrypted files with strict access control  
Protecting against unauthorized data recovery

πŸ”’ Always verify your USB drive is disconnected when not in use.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.