SCmess — это инструмент для шифрования и расшифровки текста и файлов с использованием современных криптографических алгоритмов, таких как RSA, AES-GCM и XChaCha20-Poly1305. Поддерживаются режимы работы Legacy (RSA) и Post-Quantum (PQC) для обратной совместимости дополнительной безопасности.
🔑 Генерация пары RSA-ключей (публичный и приватный)
🔒 Шифрование и расшифровка текста (AES-GCM, RSA, XChaCha20-Poly1305)
📂 Шифрование и расшифровка файлов
🗂️ Автоматический поиск и добавление ключей
👤 Управление ключами пользователей в JSON-файле
🔄 Переключение между режимами Legacy (RSA) и PQC (Post-Quantum Cryptography)
Перед использованием установите необходимые зависимости:
pip install -r requirements.txt # GUI (SCmess_Gui.py) использует PySide6
Для корректной работы в Linux также потребуется xsel или xclip:
sudo apt install xclip # Для Debian/Ubuntu
sudo pacman -S xclip # Для Arch
sudo dnf install xclip # Для Fedora
pkg ins xsel !! НЕ работает # Для Termux
python SCmess.py
После запуска программы вам будет предложено меню с возможными действиями:
Создать пару ключей
Зашифровать/расшифровать текст
Зашифровать/расшифровать файл
Управление ключами (добавление, удаление, автоскан)
Переключение между Legacy-режимом (RSA) и PQC-режимом (Post-Quantum)
Ключи хранятся в JSON-файле keys.json. Публичные ключи можно передавать другим пользователям для шифрования сообщений.
Программа может автоматически находить и добавлять ключи из стандартных директорий (~/Downloads, ~/Documents и др.).
RSA-4096 (Legacy-режим)
AES-GCM (быстрое симметричное шифрование через rsa ключ)
XChaCha20-Poly1305 (дополнительный уровень безопасности с возможностью шифрования через пароль)
Post-Quantum Cryptography (Kyber) (экспериментальная поддержка)
Нативное приложение на Kotlin + Jetpack Compose (Material 3) лежит в android/. Совместимо с ПК-версией и старым APK: понимает все форматы сообщений и оба формата .enc-файлов.
- Сообщения: один получатель, группа или Legacy RSA; при расшифровке формат и ключ подбираются сами
- Файлы любого размера, потоковое шифрование с прогрессом
- Ключи: RSA-2048/4096 (совместимы с ПК) или Curve25519 (X25519 + Ed25519, только между Android-приложениями); импорт из файла или текста (PKCS#8 и PKCS#1), экспорт, отпечатки
- Подписи Ed25519: получатель видит, кто написал сообщение, и замечает подмену. Старые версии читают подписанные сообщения как обычные
- Хеши SHA-256 и SHA-512 для текста и файлов, со сверкой с ожидаемым значением
- Проверка обновлений на GitHub (можно выключить в настройках)
- Приватные ключи хранятся только на устройстве и дополнительно зашифрованы ключом из Android Keystore
Сборка (нужны JDK 17 и Android SDK, путь к SDK в android/local.properties):
cd android
./gradlew assembleRelease
APK появится в android/app/build/outputs/apk/release/. Готовые APK, а также консольная и GUI-версии для Windows и Linux лежат в разделе Releases.
Консольные версии с базовыми функциями (ключи, текст, у C ещё и файлы), совместимы по формату с остальными.
cargo build --release # Rust: target/release/scmess
gcc CCmess.c -o CCmess.bin -lssl -lcrypto -lcjson # C: нужны OpenSSL 3 и cJSON