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

Переработан режим "Маска"

Чекбокс "Маска" перестал быть опцией только для текстовых сообщений и был преобразован в глобальный переключатель, определяющий один из двух фундаментальных режимов работы программы: "Стелс" или "Открытый".

1. Режим "Стелс" (Маска ВКЛЮЧЕНА)

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

При шифровании текста, к зашифрованным данным применяется двойное кодирование Base64.
Выходная строка не имеет характерных признаков Base64 и выглядит как случайный текстовый шум, что затрудняет анализ.

При шифровании файлов, папок или создании "агентов", вместо явного заголовка (B16B) используется динамический маркер, вычисляемый на основе соли и nonce.
Файл не имеет никаких опознавательных знаков "Бастиона".

2. Режим "Открытый" (Маска ВЫКЛЮЧЕНА)

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

При шифровании текста применяется стандартное одинарное кодирование Base64.
Выходная строка является классическим Base64-текстом, который легко распознается.

При шифровании файлов, папок или создании "агентов", зашифрованный файл сохраняется в бинарном формате с добавлением в самое начало статичного, хорошо видимого маркера B16B.
Любой зашифрованный файл можно мгновенно идентифицировать как файл "Бастиона", просто открыв его в текстовом или HEX-редакторе.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg

Если заметите какие-то недоработки/баги, пожалуйста, сообщите.
 
Более интеллектуальный поиск мест внедрения агентов

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

Это делает процесс внедрения более быстрым, логичным и повышает качество маскировки.

Напоминание

Для внедрения одного агента, как и раньше, используйте Shift + Перетаскивание на окно программы.
Для активации группового внедрения используйте новую комбинацию Ctrl + Shift + Перетаскивание.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Оптимизация кода

Функции DoEncryptFile и DoEncryptFolder были объединены в PerformEncryptionAndSave, что позволило устранить дублирование кода и унифицировать обработку файловых объектов.

Общая логика инициализации состояния (InitializeAeadState) была вынесена из функций Encrypt_AEAD_V16 и Decrypt_AEAD_V16, что обеспечивает симметричность операций и упрощает сопровождение кода.

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

Скачать можно в облаках

 
Оптимизация производительности ядра шифрования

Критически важная часть криптографической функции (S-Box слой в пермутации SpongeV16) была переписана с использованием набора инструкций SSE (Streaming SIMD Extensions).
Это позволило векторизовать вычисления, обеспечив параллельную обработку данных и значительное ускорение всех криптографических операций.

Скорость создания ключа из пароля (KDF):
Производительность увеличена в среднем на 21%.

Скорость шифрования/расшифровки данных:
Пропускная способность возросла в среднем на 10%.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Оптимизация производительности ядра шифрования для различных архитектур ЦП

После внедрения ручной SSE2-оптимизации для ускорения основной криптографической функции было замечено неоднозначное поведение:

1. На старых процессорах без поддержки AVX производительность значительно увеличилась, как и ожидалось.
2. На современных процессорах с поддержкой AVX/AVX2 производительность упала и стала ниже, чем у оригинальной версии кода без явных SSE2-инструкций.

Причина

Современные компиляторы (в частности, Clang) способны самостоятельно и очень эффективно векторизовать (оптимизировать) стандартный C++ код для новейших архитектур (AVX2).
Ручная SSE2-оптимизация в этом случае мешает компилятору, создавая накладные расходы на переключение между наборами инструкций и используя менее эффективные 128-битные регистры там, где могли бы использоваться 256-битные.

Решение

Внедрена система динамического выбора кода во время выполнения:

1. При первом вызове криптографической функции программа выполняет однократную проверку возможностей центрального процессора.
2. Критерием выбора стал флаг поддержки AVX2, так как он является надежным маркером современных и производительных архитектур.
3. Если процессор поддерживает AVX2, программа будет использовать оригинальную, не векторизованную вручную версию кода, доверяя оптимизацию компилятору.
4. Если процессор не поддерживает AVX2, программа будет использовать быструю SSE2-версию, которая на таком оборудовании дает максимальный прирост.

Результат

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

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Интеграция с мессенджером Telegram

Теперь можно обмениваться как зашифрованными, так и обычными текстовыми сообщениями напрямую через Telegram.

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

Чекбокс "Включить интеграцию с Telegram" позволяет переключаться между двумя режимами работы:

Интеграция включена:
Кнопка "Отправить" отправляет сообщения в Telegram.
"Бастион" автоматически принимает сообщения из указанного чата.

Интеграция выключена:
Кнопка "Отправить" работает по-старому, используя почтовый клиент (MAPI).

Как получить Токен Бота и ID Чата

За создание ботов отвечает официальный помощник Telegram по имени @BotFather.

В строке поиска в Telegram введите @BotFather и выберите бота с синей галочкой верификации.
Откройте чат с ним и нажмите кнопку "Запустить" внизу чата, а затем отправьте ему команду:
/newbot

Дайте боту два имени

Сначала имя для отображения:
BotFather попросит придумать имя для бота (например, Мой личный шифр).
Это имя будут видеть пользователи.

Имя пользователя (username):
Теперь придумайте уникальное имя пользователя.
Оно должно быть на английском и обязательно заканчиваться на _bot (например, MySecretAgent_bot).

Скопируйте Токен

После успешного создания BotFather пришлет сообщение с токеном доступа.
Это длинная строка из цифр и букв.

Получение ID Чата

Найдите в поиске Telegram своего только что созданного бота по его username (например, @MySecretAgent_bot).
Откройте с ним чат и нажмите кнопку "Запустить".

Теперь в поиске Telegram найдите другого бота:
@userinfobot.

Запустите его, он пришлет сообщение с вашим ID.

Как ввести данные в "Бастион"

В "Бастионе" нажмите кнопку "Телега" или используйте горячую клавишу Alt + T, чтобы открыть окно настроек.

Вставьте скопированный токен в верхнее поле "Bot Token".
Вставьте ваш ID в нижнее поле "Chat ID".

Поставьте галочку в чекбокс "Включить интеграцию с Telegram".

Нажмите "OK", чтобы сохранить настройки.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Новый формат распространения

Для обеспечения работы с Телеграм, "Бастион" теперь поставляется в виде архива.
Внутри, помимо самой программы, находятся файлы, необходимые для сетевого взаимодействия (curl.exe, libcurl-x64.dll, curl-ca-bundle.crt).

Для корректной работы Телеграм-функций эти файлы должны находиться рядом с "Бастионом".

Режим чата и пакетная расшифровка

Теперь "Бастион" не заменяет старое сообщение от Телеграм новым, а добавляет сверху, формируя ленту переписки.

Кнопка "Расшифровать" стала умнее

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

Вы можете получать несколько шифров в разных сообщениях:

Передай дальше
mIzjNp/qhfT6RPidAlHchNrCvFjsWJGy4OJQaJgnvP7/Z2Ru0diKPcRyaodKN83n4bSxqHyqmklmqIrpTBCl

Сделай сегодня
mOyau70Y3duLIE/ZRvhe5ae7FbUWQ7BT8UcGF4NhYlEerUwJlpmnjxvVo6e+oIg/b5i9Xfvz+BQvkKvu


После ввода пароля и нажатия "Расшифровать" оба шифра будут расшифрованы.

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

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Добавлено кратковременное уведомление "Ушло", которое появляется после успешной отправки сообщения в Телеграм для подтверждения доставки на сервер.

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

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

Похожие темы