# CryptZ Ultimate v5 **AES-256-GCM Professional Archiver** — шифрование файлов с двухфакторной аутентификацией, файл-ключом и CLI. ## Возможности - 🔒 **AES-256-GCM** — аутентифицированное шифрование (замена CBC+HMAC) - 🔑 **Argon2id KDF** — устойчивость к GPU/ASIC-атакам - 📦 **Сжатие gzip** — уменьшение размера архива - 🔐 **2FA (TOTP)** — Google Authenticator / Authy - 🗝 **Файл-ключ** — дополнительный фактор (XOR с основным ключом) - 💣 **Счётчик попыток с MAC** — корректная защита от перебора + самоуничтожение - 🗑 **Шредер** — безопасное удаление оригиналов (3 прохода) - ✓ **Проверка целостности** — без полной расшифровки - 🖥 **GUI** — CustomTkinter, drag & drop, индикатор силы пароля, журнал, горячие клавиши - ⌨ **CLI** — полная автоматизация из командной строки ## Установка ```bash pip install -r requirements.txt ``` > `tkinterdnd2` — опционально (для drag & drop). Без неё приложение работает нормально. ## Запуск ### GUI ```bash python cryptz.py ``` ### CLI **Шифрование:** ```bash python cryptz.py encrypt file1.txt file2.pdf -p "MyPassword" -o archive.cryptz python cryptz.py encrypt secret/ -p "Pass" -k keyfile.bin --2fa --shred ``` **Расшифровка:** ```bash python cryptz.py decrypt archive.cryptz -p "MyPassword" -o ./output/ python cryptz.py decrypt archive.cryptz -p "Pass" -k keyfile.bin --otp 123456 ``` **Проверка целостности:** ```bash python cryptz.py verify archive.cryptz -p "MyPassword" ``` ## Горячие клавиши (GUI) | Комбинация | Действие | |---|---| | `Ctrl+O` | Добавить файлы | | `Ctrl+E` | Зашифровать | | `Ctrl+D` | Расшифровать | | `Ctrl+G` | Сгенерировать пароль | | `Delete` | Очистить список | ## Формат файла CryptZ v5 ``` [CRZ5 4B][VERSION 1B][FLAGS 1B] [SALT 32B][NONCE_META 12B][NONCE_DATA 12B] [MAX_ATTEMPTS 1B][CURRENT_ATTEMPTS 1B][ATTEMPT_MAC 32B] [META_LEN 4B][META_CIPHERTEXT ...][DATA_CIPHERTEXT ...] ``` ## Структура проекта ``` cryptz.py — точка входа (GUI или CLI) crypto_engine.py — криптографический движок ui.py — графический интерфейс cli.py — командная строка requirements.txt — зависимости ``` ## Безопасность - **AES-256-GCM**: аутентификация + шифрование в одном примитиве, отдельный nonce для метаданных и данных - **Argon2id**: 64MB RAM, 3 итерации, 4 потока - **Счётчик попыток**: защищён HMAC-SHA256 с domain-separated sub-key; при превышении лимита архив уничтожается - **Безопасное извлечение tar**: фильтрация path traversal (`..`, абсолютные пути)