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

Переписан алгоритм безопасного затирания текста (SecureWipeEditControl)

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

Аналогичная оптимизация применена к функции очистки памяти (CleanRamAndSensitiveVariables), что обеспечило мгновенное удаление данных из полей ввода при экстренном завершении работы.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
В функции OnEncryptClick и OnDecryptClick добавлена блокировка отрисовки (WM_SETREDRAW: FALSE) на время вставки текста в RichEdit.
Добавлен принудительный вызов RedrawWindow с флагами RDW_INVALIDATE | RDW_UPDATENOW | RDW_ALLCHILDREN после тяжелых операций.

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Уважаемые знатоки, внимание, вопрос
 

Вложения

  • Безымянный.webp
    Безымянный.webp
    18,3 КБ · Просмотры: 37
Отключение поддержки RTF-форматирования

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

Как активировать режим "Только текст"

- Запустите и закройте программу.

- Откройте появившийся файл settings.txt.

- Найдите строку "disable_rtf": false и замените её на "disable_rtf": true.

- Сохраните файл и снова запустите Бастион.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Добавлена возможность отключить поддержку RTF в меню настроек шифрования

Нажмите правой кнопкой мыши по кнопке "Шифровать" или горячими клавишами Alt + E.

TXT / RTF (по умолчанию): программа автоматически сохраняет цвета и шрифты, если они есть.

TXT: принудительное отключение RTF.
Игнорирует форматирование, что уменьшает итоговый размер шифра и повышает скорость работы.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 

Вложения

  • Без имени-1.webp
    Без имени-1.webp
    27,8 КБ · Просмотры: 40
Настройки форматирования текста (RTF / TXT) теперь учитываются при сохранении и перезаписи аудиосообщений (.v16a).
Если выбрана опция "TXT", текст в аудиофайле будет сохранен без форматирования (RTF-тегов).

Будьте внимательны перед пересохранением:
если в тексте есть форматирование, а в настройках включена опция "TXT", все стили будут утеряны.


В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Очистка при старте

Реализована функция CleanupStartupTempFiles, которая при запуске сканирует системную папку TEMP и директорию программы.
Она выявляет и уничтожает временные файлы, созданные программой (BST*.tmp, shd*.tmp), обеспечивая отсутствие утечек данных после некорректного закрытия приложения.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Исправлена ошибка, из-за которой изменения в списке "Разрешенные User ID" (белый список) применялись с задержкой.
Теперь настройки вступают в силу мгновенно для каждого входящего сообщения.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Оптимизирован процесс расшифровки (OnDecryptClick)

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Реализована мульти-рассылка в Телеграм

Добавлена поддержка отправки сообщений нескольким получателям одновременно.
Теперь в поле "ID чата" можно указывать несколько адресов (примерно 35–40 ID пользователей или каналов, в зависимости от длины ID) через запятую.

Преимущества

Пользователь может указать свой основной аккаунт и дополнительный "сейф-чат" (или аккаунт доверенного лица).
Если доступ к одному аккаунту будет потерян, зашифрованная информация останется во втором.

Если "Бастион" используется для передачи критически важной информации, теперь не нужно тратить время на перенастройку адресата.
Одно нажатие кнопки "Отправить" доставит шифровку сразу всей команде.

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 

Вложения

  • Безымянный.webp
    Безымянный.webp
    34,2 КБ · Просмотры: 29
Расширенное автошифрование

Для исключения человеческого фактора реализовано автоматическое шифрование отправляемых файлов в Телеграм для предотвращения случайной утечки незащищенных данных.

Если включена опция "Автоматически шифровать при отправке", программа зашифрует обычные файлы перед отправкой, но пропустит уже готовые контейнеры .v16 и .v16a, чтобы избежать избыточного двойного шифрования.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Доработана функция CleanRamAndSensitiveVariables

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

Изменены настройки по умолчанию

Теперь программа пытается перезаписать и вытеснить 100% доступной оперативной памяти при очистке, обеспечивая максимальный уровень защиты от forensic-анализа RAM даже без перехода в режим паники.

Вы по-прежнему можете уменьшить процент очищаемой памяти в файле settings.txt, если полная очистка занимает слишком много времени.
Для этого измените параметр "ram_cleanup_percentage": 100 на меньшее значение (например, "ram_cleanup_percentage": 50).

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Переработаны алгоритмы преобразования данных в Unicode

Внедрено предварительное выделение памяти (resize вместо push_back) и развертывание циклов (loop unrolling) для обработки блоками по 15 байт.
Скорость кодирования выросла на ~118%, декодирования на ~183%.

Решение с многопоточностью (AVX/Async) отклонено для сохранения компактности кода, так как текущая скорость уже перекрывает потребности текстового шифрования.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Значительно ускорено декодирование Base64

Реализован алгоритм на основе T-Tables (Transition Tables).
Размер таблиц поиска уменьшен с 128 КБ до 4 КБ, что позволяет им полностью помещаться в L1 кэш процессора и снижает количество промахов (cache misses).
Убраны дорогостоящие битовые сдвиги в цикле (заменены на OR операции с предрассчитанными значениями) и реализована пакетная запись в память (32-битные слова вместо побайтовой записи).

Скорость декодирования увеличилась примерно на 30%.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Исправлена ошибка, из-за которой при отправке папки через контекстное меню Windows ("Отправить в Бастион V16") появлялось сообщение "Не удалось открыть исходный файл".

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 

Вложения

  • Безымянный.webp
    Безымянный.webp
    20,1 КБ · Просмотры: 22
Изменен механизм сохранения QR кодов (функция SaveQrCodeAsPng)

Переход от прямого сохранения через lodepng к кодированию в буфер памяти с последующей записью через std::ofstream.
Это решило проблему с ANSI-кодировкой путей в Windows и обеспечило корректную поддержку кириллицы в именах файлов.

Генерация QR кода вызывается сочетанием Alt + Q.
При сохранении (двойной клик по QR коду) зашифрованного текста в формате PNG автоматически применяется стеганография (скрытое внедрение данных в файл).

Функция подходит для быстрого переноса небольших шифров, ключей или паролей на смартфон.
Это позволяет создать "воздушный зазор" — передать данные на мобильное устройство простым сканированием с экрана, без использования интернета, облачных сервисов или USB-кабелей.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшена маскировка Unicode-шифров

Теперь зашифрованный текст имитирует структуру естественного азиатского письма.
Вместо сплошного потока символов используются случайные пробелы и полноширинные знаки препинания (, и 。).

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

Было
魶凸扮賽犯ꈘ饃坳鍝颎볆冝屸粳淽옚桡좺崂蟣玖晀刓巭웣榲鋈百꒥찒犁瑱릯瘩쟓溦뫪赼爱秩却摭曏聬普鈻쇔甖唟뽒輡舟ꇁ됀좎쉅鼉牦萹韠악김腅耓圦餑彵끇屄蜛敲玩鸎韍읟犿犷斜錋揉忐缴均쬟삆唄誋嶞豣

Стало
뜙챀朴슗 쨍夓꘷쬲 뛃鿠됈靔,載뭢릡 蕀쓏紞嵿뒈 甪鿧띜 逻瓩篝뼼 ꌟ롸。뙮ꡟ읩,뼔슒 唯쓳擰僵 渦뗽,厲ꠙ勆矝寛。ꐞ瘜ꃹ,놔糒췺虨桿 潓욋苈 逃熭넄긨濸,ꥉ秱鶘蜊蠢,魯ꁈ蘪Ꙓ쭧,闘婉湈觘弽 鰃좡臾詀쮦 踔곿侒덩,饘藳쏹。

Отключено автоопределение ссылок (EM_AUTOURLDETECT)

RichEdit ошибочно воспринимает части кода (например, "\\*") как ссылки.
Это создает скрытые RTF-теги, которые при сохранении в TXT превращаются в текст "HYPERLINK", искажая исходные данные (баг порчи исходного кода).

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Простая Гематрия для кодовых фраз (Alt + P или нажатие правой кнопкой мыши по "Генерировать пароль")

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

Если в тексте случайно введен двойной пробел, программа сообщит об этом в заголовке предупреждением "(во фразе лишний пробел!)".

Следить за пробелами необходимо, потому что для алгоритма генерации "один пробел" и "два пробела" — это разные входные данные.
Даже одна невидимая ошибка в расстановке пробелов приведет к созданию абсолютно другого пароля.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 

Вложения

  • Безымянный.webp
    Безымянный.webp
    61,2 КБ · Просмотры: 5
Мы в соцсетях:

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