Бастион V16 - Шифрование текста

Ускорение потокового шифрования

В функции stream_cipher_process_V16, отвечающей за XOR-шифрование данных, была произведена замена высокоуровневой конструкции C++23 std::ranges::transform на классический цикл for.

Хотя std::ranges::transform — это мощный и выразительный инструмент, как любая высокоуровневая абстракция, он может создавать минимальные накладные расходы, которые мешают компилятору сгенерировать самый быстрый код в критически важных для производительности циклах.

Отправка данных в Телеграм без записи на диск

Ранее программа создавала на диске временный файл, записывала в него данные для отправки (ID чата, текст сообщения и т.д.), а затем передавала путь к этому файлу утилите curl.exe.

Теперь данные передаются напрямую в процесс curl.exe через стандартный поток ввода (stdin).
Это означает, что информация для отправки формируется в памяти и сразу же передается в дочерний процесс, полностью исключая операции с файловой системой.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Всем привет, нужно проверить новую функцию

Прошу связаться со мной в Телеграм или попробуйте самостоятельно
Id: 8069936908
Евгений Проводник

Безопасный Обмен Ключами (Alt+K) для создания общего пароля

Эта новая функция решает проблему безопасной переписки:
как договориться о сложном секретном пароле, не передавая его в открытом виде.

Теперь можно сгенерировать общий, надежный пароль напрямую с вашим собеседником, гарантируя, что никто, даже Телеграм, не сможет его перехватить.

Как это работает

Каждый пользователь генерирует временную пару ключей (приватный и публичный) и обменивается только публичными частями.

Полученный в результате обмена математический секрет не является паролем.
Он проходит через функцию формирования ключа (KDF), в роли которой выступает криптографическая губка SpongeV16.
Это превращает "сырой" секрет в длинный, криптостойкий и готовый к использованию пароль.

Для защиты от атак типа "человек посередине" (MITM) система генерирует уникальный "отпечаток" канала связи.
Вы должны сверить этот отпечаток с собеседником по другому, доверенному каналу (например, голосом), чтобы убедиться, что вы соединены именно друг с другом, а не с посредником.

Как пользоваться

Сначала оба пользователя должны настроить в "Бастионе" интеграцию с Телеграм (указать токен бота и ID чата).
Вам нужно заранее договориться, кто будет инициировать обмен (Пользователь А), а кто — принимать приглашение (Пользователь Б).

Оба пользователя нажимают Alt + K, чтобы открыть окно "Установка защищенного канала".

Пользователь А нажимает кнопку "Начать".
В этот момент его программа генерирует пару ключей и отправляет публичную часть в виде "приглашения" Пользователю Б через Телеграм.

Программа Пользователя Б автоматически получает приглашение.
Она генерирует свою пару ключей, вычисляет общий секрет и отправляет свой публичный ключ обратно в виде "ответа".

Программа Пользователя А получает ответ и вычисляет тот же самый общий секрет.

В этот момент у обоих пользователей в окне появится сообщение об успешной установке канала, а сгенерированный пароль будет автоматически вставлен в поля для пароля в главном окне программы.

Оба пользователя увидят одинаковый "Отпечаток" (например, ABCD-1234).
Это самый важный шаг: вы должны связаться с собеседником (например, по телефону) и убедиться, что ваши отпечатки совпадают.

Если совпадают — канал безопасен.

Тестовая версия Бастион V16
 
При запуске программы, если активна интеграция с Телеграм (прописан токен бота и включена интеграция), фокус ввода теперь автоматически устанавливается на поле для отправки сообщений, что позволяет сразу начать печатать ответ.

Теперь ваше сообщение появляется в основном окне чата только после получения подтверждения об успешной доставке на сервер Телеграм.
В случае ошибки отправки, текст остается в поле ввода для повторной попытки.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Автоматическая стеганография для QR-кодов

QR-коды, сгенерированные из зашифрованного текста, теперь могут выступать в роли стеганографических контейнеров.
Если в главном окне находится зашифрованное сообщение и введен пароль, программа автоматически встроит шифротекст в PNG-файл при его сохранении.

Как использовать

1. Создайте или вставьте зашифрованное сообщение в главное окно.
2. Сгенерируйте для него QR-код, нажав Alt + Q.
3. В открывшемся окне дважды кликните по изображению, чтобы вызвать диалог сохранения PNG-файла.

4. Перетащите этот же PNG-файл обратно на окно или значок "Бастиона", и программа автоматически обнаружит встроенный шифр, предложив его расшифровать.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Генерация пароля по кодовой фразе (Alt + P)

Реализована возможность создавать надёжные пароли на основе секретной кодовой фразы или предложения.
Для преобразования фразы в пароль используется тот же криптографический механизм (губка SpongeV16), что и для основного шифрования данных в программе.

Зачем это нужно

Теперь можно договориться с собеседником об общей кодовой фразе (например, "Вчера на площади шел сильный ливень и летали три синие вороны") и оба сгенерировать абсолютно одинаковый, сложный пароль для шифрования данных.
Это позволяет не передавать сам пароль по открытым каналам связи.

Как использовать

Нажмите горячую клавишу Alt + P.

В основном поле для текста появится надпись: Введи кодовую фразу (предложение):

Допишите вашу секретную фразу после этой надписи и нажмите кнопку "Генерировать пароль".
Пароль, созданный из вашей фразы, будет автоматически подставлен в поля для ввода пароля.

Переработан механизм сохранения QR-кодов (Alt + Q)

При сохранении QR-кода в PNG-файл его разрешение теперь будет соответствовать высоте вашего экрана.
Если у вас монитор 1920x1080, вы получите изображение 1080x1080 пикселей.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab