Files
cryptz/readme.md
T

87 lines
3.4 KiB
Markdown
Raw Normal View History

2026-05-31 18:46:06 +08:00
# 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 (`..`, абсолютные пути)