Skip to content
VLOD-ZDOVPublic

About

Создание ключей RSA/шифровка/дешифровка файлов/сообщений.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

SCmess

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) (экспериментальная поддержка)

Android-приложение

Нативное приложение на 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.

Rust и C версии

Консольные версии с базовыми функциями (ключи, текст, у C ещё и файлы), совместимы по формату с остальными.

cargo build --release                                  # Rust: target/release/scmess
gcc CCmess.c -o CCmess.bin -lssl -lcrypto -lcjson      # C: нужны OpenSSL 3 и cJSON

About

Создание ключей RSA/шифровка/дешифровка файлов/сообщений.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages