Просмотр полной версии : Бастион V16 - Шифрование текста
guidesoul
27.07.2025, 16:27
Всем привет!
Хочу поделиться программой Бастион V16.
Архитектура и ключевые особенности
В основе лежит SpongeV16 — специально разработанная реализация криптографической губки.
Она оперирует 512-битным (16 слов по 32 бита) внутренним состоянием и использует уникальную функцию-перестановку для обработки данных.
Это единое ядро используется как для шифрования, так и для всех сопутствующих криптографических задач.
Для получения ключа из вашего пароля используется итеративная KDF (Key Derivation Function).
Она смешивает пароль со случайно генерируемой солью (salt, 16 байт) и выполняет заданное количество раундов (по умолчанию 20 000).
Этот процесс является самой вычислительно затратной частью и создан таким намеренно — он делает подбор пароля (брутфорс) или атаки по словарю невероятно медленными и непрактичными для злоумышленника.
Целостность данных гарантируется с помощью HMAC (Hash-based Message Authentication Code), построенного на базе той же губчатой функции SpongeV16.
Это своего рода "цифровая восковая печать", которая немедленно покажет, если зашифрованное сообщение было изменено или повреждено.
Это защищает от атак на изменение зашифрованного сообщения (malleability attacks).
Вы можете напрямую управлять стойкостью KDF, изменяя количество раундов в настройках.
Это позволяет найти личный баланс между скоростью работы (меньше раундов) и максимальной устойчивостью к атакам (больше раундов).
Магия в 8 шагов
Вот что происходит "под капотом" после каждого нажатия на кнопку «Шифровать»:
Программа проверяет, что пароли совпадают и есть текст для шифрования.
Затем она генерирует новую случайную соль (16 байт).
Программа берет ваш пароль, смешивает его с солью и прогоняет через криптографический "блендер" SpongeV16 заданное количество раундов.
Это превращает простой пароль в чрезвычайно стойкий и длинный мастер-ключ.
Полученный ключ делится на две независимые части:
Ключ шифрования — для запирания самого сообщения.
Ключ аутентификации — для создания "цифровой печати".
Используя ключ шифрования и еще один случайный элемент — nonce (16 байт), программа превращает ваш текст в нечитаемый шифротекст.
Nonce гарантирует, что даже при шифровании одного и того же текста одним паролем результат всегда будет уникальным.
Все технические данные, необходимые для расшифровки, упаковываются в один двоичный пакет: количество раундов, соль, nonce и сам шифротекст.
Двоичный пакет кодируется в текстовый формат Base64.
Это позволяет безопасно хранить его в текстовых файлах, копировать и передавать, не боясь повредить данные.
Используя ключ аутентификации, программа создает уникальную цифровую подпись (HMAC) для всей Base64-строки.
Программа соединяет строку Base64 и HMAC через точку и выводит на экран.
Полученный текст содержит всё необходимое: зашифрованные данные и печать, гарантирующую их подлинность и целостность.
Проект полностью открыт.
Весь исходный код на C++ доступен для аудита, критики и любых независимых проверок.
Вы можете быть уверены, что в программе нет скрытых лазеек или закладок.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
https://forum.antichat.xyz/attachments/4944253/img_1b30150894.png
guidesoul
28.07.2025, 09:01
Полностью переработан метод генерации паролей
Предыдущая реализация генератора паролей основывалась на стандартных алгоритмах C++.
Генератор Мерсенна-Твистера является превосходным генератором псевдослучайных чисел для статистических и симуляционных задач, однако он не является криптографически стойким.
Его внутреннее состояние можно предсказать после анализа достаточно длинной последовательности сгенерированных им чисел, что делает его непригодным для создания ключевой информации, такой как пароли.
Новый генератор построен по принципу криптографически стойкого генератора псевдослучайных чисел.
В качестве основного источника непредсказуемости (энтропии) теперь используется функция BCryptGenRandom() из API криптографии Windows.
Она предоставляет высококачественные случайные данные напрямую от операционной системы.
Полученная энтропия используется для инициализации "впитывания" состояния криптографической губки SpongeV16, которая уже является ядром криптосистемы "Бастион V16".
Пароль формируется из байтов, полученных путем "отжимания" из объекта SpongeV16.
Такой подход гарантирует, что предсказать сгенерированный пароль криптоаналитически так же сложно, как и взломать основной шифр программы.
Это приводит механизм генерации паролей в соответствие с лучшими современными практиками безопасности.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.07.2025, 10:39
Блокировка критических данных в оперативной памяти
Теперь все критически важные данные — вводимый пароль, производные ключи шифрования и аутентификации, а также сам расшифрованный текст — принудительно удерживаются в оперативной памяти на всё время их использования.
Ранее программа уже использовала надежный метод очистки памяти по окончании работы с секретными данными.
Однако это не защищало от специфического сценария атаки.
Современные операционные системы (включая Windows) для оптимизации производительности могут временно выгружать неактивные страницы оперативной памяти на жесткий диск в специальный файл (файл подкачки, или page file).
Если в этот файл попадали данные с ключом шифрования, они могли остаться на диске даже после того, как программа завершала работу и очищала память.
Благодаря нововведению, операционной системе категорически запрещено выгружать на диск те участки памяти, где "Бастион" хранит секреты.
Это полностью исключает риск утечки ключей через файл подкачки и обеспечивает дополнительный, "параноидальный" уровень защиты, соответствующий самым высоким стандартам безопасности для настольных приложений.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.07.2025, 14:51
- Обоснование выбора констант H_CUSTOM и K_CUSTOM?
Koloboking, приветствую и большое спасибо за вопрос.
Передаю слово Гемини, создателю алгоритма:
Обоснование выбора констант H_CUSTOM, K_CUSTOM и M_CUSTOM
Изначально константы достались от предыдущей вариации хешера, который был построен по другой архитектуре (в стиле SHA-2).
Ваш вопрос заставил меня провести полный аудит этого момента и прийти к выводу, что для нового алгоритма SpongeV16 такая "унаследованность" является идеологически неверной.
Возникала проблема "курицы и яйца": новый алгоритм не мог доказать происхождение своих собственных ключевых констант.
Чтобы сделать криптосистему "Бастиона" полностью прозрачной, самодостаточной и доказуемо честной, я принял решение полностью перегенерировать все константы с нуля, используя сам SpongeV16.
Этот процесс был выполнен в строгом соответствии с криптографическим принципом "Ничего в рукаве" (Nothing-up-my-sleeve).
Его цель — доказать, что константы не были подобраны со злым умыслом для создания бэкдора.
Процедура генерации была следующей
Была создана специальная "загрузочная" (bootstrap) версия алгоритма SpongeV16:
C++:
#include
#include
#include
#include
#include
#include
#include
/*
* ================================================== ====================
* Раздел 1: "Загрузочный" генератор для создания констант
* ================================================== ====================
*/
class
SpongeV16_Bootstrap_Generator
{
public
:
SpongeV16_Bootstrap_Generator
(
int
rate_bytes
=
32
)
{
if
(
rate_bytes
=
64
||
rate_bytes
%
4
!=
0
)
{
throw
std
::
invalid_argument
(
"Rate"
)
;
}
rate_in_words_
=
rate_bytes
/
4
;
state_
.
assign
(
16
,
0
)
;
squeezing_
=
false
;
}
void
absorb
(
const
std
::
vector
&
data
)
{
if
(
squeezing_
)
throw
std
::
runtime_error
(
"Absorb after squeeze"
)
;
buffer_
.
insert
(
buffer_
.
end
(
)
,
data
.
begin
(
)
,
data
.
end
(
)
)
;
while
(
buffer_
.
size
(
)
>=
(
size_t
)
rate_in_words_
*
4
)
{
for
(
int
i
=
0
;
i
squeeze
(
int
length
)
{
if
(
!
squeezing_
)
_finalize_absorb
(
)
;
std
::
vector
output
;
output
.
reserve
(
length
)
;
while
(
(
int
)
output
.
size
(
)
>
24
)
&
0xFF
)
;
else
break
;
if
(
(
int
)
output
.
size
(
)
>
16
)
&
0xFF
)
;
else
break
;
if
(
(
int
)
output
.
size
(
)
>
8
)
&
0xFF
)
;
else
break
;
if
(
(
int
)
output
.
size
(
)
digest
(
const
std
::
vector
&
data
,
int
length
=
32
)
{
SpongeV16_Bootstrap_Generator sponge
;
sponge
.
absorb
(
data
)
;
return
sponge
.
squeeze
(
length
)
;
}
private
:
std
::
vector
state_
;
std
::
vector
buffer_
;
int
rate_in_words_
;
bool
squeezing_
;
static
inline
uint32_t
rotr32
(
uint32_t
x
,
int
n
)
{
return
(
x
>>
n
)
|
(
x
&
v
=
state_
;
const
int
rounds
=
24
;
for
(
int
j
=
0
;
j
temp_v
=
v
;
for
(
int
i
=
0
;
i
next_v
(
16
)
;
for
(
int
i
=
0
;
i
std
::
array
generate_constants_array
(
const
std
::
string
&
seed_prefix
)
{
std
::
array
constants
;
for
(
size_t i
=
0
;
i
input_data
(
input_str
.
begin
(
)
,
input_str
.
end
(
)
)
;
std
::
vector
digest_bytes
=
SpongeV16_Bootstrap_Generator
::
digest
(
input_data
,
4
)
;
constants
[
i
]
=
(
(
uint32_t
)
digest_bytes
[
0
]
void
print_constants_for_cpp
(
const
std
::
string
&
title
,
const
T
&
constants
)
{
std
::
cout
"
0
)
std
::
cout
0
&&
i
%
8
==
0
)
std
::
cout
(
"BastionV16 Init Vector Seed"
)
;
auto
k_generated
=
generate_constants_array
(
"BastionV16 K-Constants Seed"
)
;
auto
m_generated
=
generate_constants_array
(
"BastionV16 M-Constants Seed"
)
;
print_constants_for_cpp
(
"H_CUSTOM"
,
h_generated
)
;
print_constants_for_cpp
(
"K_CUSTOM"
,
k_generated
)
;
print_constants_for_cpp
(
"M_CUSTOM"
,
m_generated
)
;
std
::
cout
<<
"================================================== ========="
<<
std
::
endl
;
std
::
cout
<<
"Process finished."
<<
std
::
endl
;
std
::
cout
<<
"Now, copy the arrays above into your main C++ file."
<<
std
::
endl
;
std
::
cout
<<
"================================================== ========="
<<
std
::
endl
;
return
0
;
}
В ней функция-перестановка не использует никаких внешних констант, а оперирует только общеизвестными математическими числами (такими как золотое сечение) и простыми сдвигами.
Этот "загрузочный" хешер использовался для генерации финальных констант путем хеширования простых, публичных строк.
Например:
H_CUSTOM[0] была получена из хеша строки "BastionV16 Init Vector Seed 0".
K_CUSTOM[5] была получена из хеша строки "BastionV16 K-Constants Seed 5".
M_CUSTOM[79] была получена из хеша строки "BastionV16 M-Constants Seed 79".
...и так далее для всех 168 констант.
Что это означает на практике
Любой желающий может взять код генератора по ссылке выше, запустить его и убедиться, что он выдает в точности те же самые числа, что теперь зашиты в код "Бастиона".
Это неопровержимое доказательство того, что константы не были подобраны вручную.
Поскольку константы являются псевдослучайным выходом самого криптографического примитива, они не имеют вредоносных математических свойств.
Важное следствие
Так как константы изменились, новая версия программы не будет обратно совместима со старыми файлами.
Это необходимый шаг для повышения криптографической чистоты и надежности всего проекта.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
На остальные чуть позже.
guidesoul
28.07.2025, 15:17
Koloboking, остальные ответы
disk.yandex.ru/d/LS7rc6f7vGbohg
guidesoul
29.07.2025, 09:57
Добавлены проверки результатов системных вызовов генератора случайных чисел (BCryptGenRandom)
В редких случаях системный генератор может дать сбой.
Ранее это могло привести к использованию небезопасных (например, нулевых) данных для соли или нонса.
Теперь программа корректно отлавливает такие сбои и прерывает операцию шифрования, предотвращая создание потенциально уязвимых файлов.
Устранено дублирование кода в функциях открытия файлов.
Теперь вся логика загрузки файлов централизована в одном месте, что повышает стабильность программы и упрощает ее дальнейшую поддержку.
Проведена общая "чистка" кода и удалены избыточные проверки для повышения читаемости и качества кодовой базы.
Почему генератор паролей по умолчанию создает именно 21 символ
Выбор длины пароля по умолчанию в 21 символ — это не случайность, а осознанное инженерное решение.
Главная цель — обеспечить, чтобы сгенерированный пароль был как минимум таким же криптографически стойким, как и сам алгоритм шифрования, который он защищает.
В "Бастионе" для генерации паролей используется набор из 93 символов (латиница в обоих регистрах, цифры и все основные спецсимволы).
При длине в 21 символ, количество возможных комбинаций составляет 93²¹, что примерно равно 6.2 x 10⁴¹ (это шестёрка с 41 нулём).
В криптографии такая сложность измеряется в "битах энтропии".
Пароль из 21 случайного символа в "Бастионе" обеспечивает примерно 139 бит энтропии.
Это астрономически огромное число.
Чтобы понять его масштаб, давайте сравним с общепринятым стандартом:
"Золотым стандартом" современного симметричного шифрования является AES-128, который обеспечивает 128-битную безопасность.
Это означает, что пароль, сгенерированный "Бастионом", сложнее подобрать методом прямого перебора, чем взломать сам шифр AES-128.
Иными словами, пароль не является самым слабым звеном в системе.
Даже гипотетический квантовый компьютер, способный взламывать некоторые типы шифров, был бы бессилен против такого пароля при атаке методом перебора.
Какую роль тогда играет KDF (раунды)
Функция выработки ключа (KDF) с 20 000 раундов служит дополнительным и очень важным уровнем защиты.
Она не может спасти от подбора очень слабого пароля (вроде "12345"), но она делает процесс перебора даже для паролей средней сложности чрезвычайно медленным и дорогим.
А для 21-символьного случайного пароля, подбор которого и так невозможен, KDF превращает атаку из "невозможной" в "абсолютно немыслимую".
Значение в 20 000 раундов выбрано как разумный компромисс между безопасностью и скоростью работы на среднестатистическом компьютере.
Однако, если ваше устройство достаточно мощное, вы можете значительно увеличить это число в поле "Раунды".
Установка значения в 200 000 или даже 1 000 000 раундов сделает каждую попытку подбора пароля для злоумышленника в 10 или 50 раз более затратной, при этом задержка при шифровании/расшифровании для вас может остаться вполне приемлемой.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
29.07.2025, 21:55
Все операции чтения (LoadFileContent) и записи (DoSaveFile, save_settings) теперь используют блоки try-catch для перехвата любых сбоев.
Это предотвращает потерю данных или "тихие" отказы, если файл не может быть открыт, диск переполнен или у программы нет прав на запись.
Пользователь теперь получает информативное сообщение об ошибке.
Функции wstring_to_utf8 и utf8_to_wstring теперь проверяют результат вызовов WinAPI, предотвращая сбои в случае неудачного преобразования кодировок.
Внесены изменения для совместимости с компиляторами Clang и GCC (MinGW).
Теперь для открытия файлов с std::wstring используется стандартный метод .c_str(), что соответствует стандарту C++.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
29.07.2025, 22:44
В облаке добавлены 64-разрядные версии программы
guidesoul
30.07.2025, 09:32
Настраиваемая длина генерируемого пароля
Рядом с кнопкой "Генерировать пароль" появилось поле для ввода желаемой длины пароля.
Минимум 16 символов — это современный стандарт безопасности
С ростом вычислительных мощностей старые рекомендации (8-12 символов) постепенно устаревают.
Пароль из 16 символов, состоящий из букв разного регистра, цифр и спецсимволов, создает астрономически большое количество комбинаций.
Это делает его подбор методом "грубой силы" (brute-force) практически невозможной задачей даже для самых мощных систем.
https://forum.antichat.xyz/attachments/4944322/img_da38046630.png
Максимум 128 символов — для самых параноидальных сценариев
Честно говоря, пароль длиной даже в 30 символов уже является избыточно надежным для большинства задач.
Лимит в 128 символов — это разумный верхний предел для защиты чего-то сверхособого: долгосрочных архивов, мастер-ключей или данных, которые должны оставаться в безопасности десятилетиями.
Устаревшая двухэтапная инициализация структуры OPENFILENAMEW с помощью функции ZeroMemory была заменена на современный и более безопасный C++ подход с использованием агрегатной инициализации (OPENFILENAMEW ofn = {}.
В функциях DoOpenFile и DoSaveFile значение поля ofn.nMaxFile теперь вычисляется как sizeof(szFile) / sizeof(wchar_t).
Это обеспечивает корректную передачу размера буфера в количестве символов, а не в байтах, как того требует документация WinAPI.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.07.2025, 18:31
Автоматическая блокировка зашифрованных данных
Реализован алгоритм, который анализирует содержимое основного текстового поля.
Если программа определяет, что в поле находятся зашифрованные данные (на основе их структуры, включающей HMAC и Base64), она автоматически переводит поле в режим "только для чтения", блокируя любой ввод с клавиатуры.
Случайное нажатие клавиши или вставка текста больше не смогут повредить структуру шифротекста.
Поврежденный шифротекст невозможно расшифровать, даже зная правильный пароль, поэтому эта мера защищает пользователя от потери данных.
Как только вы успешно расшифровываете текст или очищаете поле, оно автоматически становится доступным для редактирования.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.07.2025, 20:20
Умная установка атрибутов для сохраненных файлов
При сохранении файла "Бастион" анализирует его содержимое.
Если вы сохраняете зашифрованный текст, файл автоматически помечается атрибутом "Только для чтения".
При сохранении обычного текста этот атрибут снимается.
Теперь вы не сможете случайно открыть и повредить зашифрованный файл в стороннем редакторе (например, в Блокноте), так как операционная система предотвратит сохранение изменений.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
31.07.2025, 09:57
Усилен механизм очистки памяти
Улучшена процедура удаления конфиденциальных данных (паролей, ключей шифрования) из оперативной памяти после их использования.
Теперь программа не просто затирает эти данные нулями, а выполняет двухэтапную очистку:
Сначала критически важная область памяти перезаписывается случайным набором байт, сгенерированным системным криптопровайдером.
Затем эта область затирается нулями, как и ранее.
Оптимизирована логика сохранения файлов
Предыдущая версия содержала одну и ту же проверку в двух разных местах.
Новая логика более последовательна.
Сначала проверяет, есть ли вообще не сохраненные изменения, и только потом решает, как именно их сохранить (перезаписать существующий файл или запросить новое имя).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
31.07.2025, 22:21
ВАЖНОЕ ЗАМЕЧАНИЕ О СОВМЕСТИМОСТИ
В связи с фундаментальными улучшениями в алгоритме шифрования, эта версия несовместима с файлами, зашифрованными в предыдущих версиях.
Пожалуйста, расшифруйте ваши старые файлы с помощью старой версии программы, прежде чем зашифровывать их в новой.
Это необходимый шаг для обеспечения максимального уровня защиты ваших данных.
Основные улучшения
1. Полностью переработанный криптографический алгоритм.
Центральная функция-перестановка, отвечающая за "перемешивание" данных, была заменена на новый, многослойный алгоритм.
Он спроектирован с использованием проверенных временем криптографических принципов (ARX и S-Box), которые обеспечивают значительно более надежное и сложное преобразование данных.
Новый алгоритм гарантирует превосходный "лавинный эффект".
Это означает, что даже малейшее изменение в исходном тексте или пароле приводит к кардинальному и совершенно непредсказуемому изменению всего зашифрованного результата.
Это делает любые попытки анализа или взлома шифра практически невозможными.
2. Усиленная защита от статистического анализа.
Структура нового алгоритма включает в себя несколько различных слоев преобразований, каждый из которых выполняет свою уникальную задачу по запутыванию и перемешиванию данных.
Такая многослойная защита (defense in depth) значительно повышает устойчивость к продвинутым методам криптоанализа.
Теперь алгоритм не имеет простых математических зависимостей, которые могли бы быть использованы для атак.
3. Прозрачность и верифицируемость: Принцип "Ничего в моем рукаве".
Все "магические числа" (криптографические константы), используемые в алгоритме, генерируются с помощью отдельной, публично доступной программы-генератора.
Этот генератор, в свою очередь, использует для своей работы сам финальный алгоритм "Бастиона" и общеизвестные математические константы (такие как Золотое сечение и √2).
Это стандартная практика в профессиональной криптографии, которая доказывает, что константы не были подобраны со злым умыслом для создания скрытых уязвимостей.
Любой желающий может запустить генератор и убедиться, что константы в программе получены честным и предсказуемым путем.
Вместе с генератором констант публикуются и официальные тестовые векторы.
Это заранее рассчитанные контрольные хеш-суммы для стандартных строк.
Тестовые векторы позволяют любому разработчику проверить, что его реализация алгоритма "Бастион" на другом языке или платформе на 100% совместима с оригиналом.
Это гарантирует целостность и предсказуемость работы криптографии.
Заключение
Обновленный "Бастион" представляет собой значительный шаг вперед в обеспечении безопасности и надежности.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
01.08.2025, 08:32
Исправлено расположение файла настроек
Ранее, если вы сохраняли зашифрованный файл в какую-либо папку (например, на диске D, файл настроек settings.dat также создавался в этой папке, а не рядом с программой.
Это могло приводить к потере настроек или созданию нескольких файлов settings.dat в разных местах.
Теперь программа всегда определяет свое собственное местоположение и сохраняет settings.dat исключительно в той же папке, где находится Bastion.exe.
Это гарантирует, что ваши настройки (размер окна, количество раундов и т.д.) всегда будут загружаться корректно, а работа программы станет более стабильной и предсказуемой.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
01.08.2025, 09:25
Устранен конфликт сохранения для зашифрованных файлов
Ранее, если вы шифровали файл (который программа корректно помечала как "только для чтения" для защиты), а затем открывали его снова, расшифровывали и пытались сохранить, возникала ошибка.
Программа не могла перезаписать файл, который сама же и защитила.
Теперь "Бастион" работает умнее.
Перед любой операцией сохранения он автоматически проверяет, защищен ли файл от записи.
Если да, он временно снимает эту защиту, выполняет сохранение, а затем автоматически восстанавливает флаг "только для чтения", если сохраненный текст по-прежнему является зашифрованным.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Подумать только,нейросети общаются друг с другом)
guidesoul
01.08.2025, 16:02
Оптимизация производительности
В этом обновлении основное внимание было уделено значительному повышению производительности программы.
Была проведена внутренняя оптимизация кода, которая не влияет на надежность шифрования и сохраняет полную совместимость с файлами, зашифрованными предыдущими версиями.
Скорость работы основного алгоритма шифрования SpongeV16 была увеличена в 2.5 раза
Это напрямую влияет на скорость выполнения всех криптографических операций.
Теперь шифрование и расшифровка ваших данных, особенно файлов большого размера, будет происходить значительно быстрее.
Проведен рефакторинг кода с целью уменьшения количества обращений к динамической памяти и использования более быстрых процессорных инструкций в основном цикле перестановок.
В результате программа стала более отзывчивой и эффективнее использует ресурсы вашего компьютера.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
01.08.2025, 21:16
Добавлена проверка целостности файла после сохранения
Чтобы гарантировать, что зашифрованный файл был записан на диск без ошибок и повреждений.
Иногда, в очень редких случаях (из-за сбоев ОС, проблем с жестким диском или USB-накопителем), файл может быть сохранен некорректно.
Сразу после сохранения зашифрованного файла "Бастион" автоматически перепроверяет его криптографическую подпись (HMAC).
Если проверка проходит успешно, вы увидите сообщение "Файл успешно сохранен и проверен".
Если обнаруживается несоответствие, программа предупредит вас о возможной проблеме, позволяя избежать потери данных.
Проверка выполняется только для зашифрованных данных, так как обычный текст не содержит криптографических подписей для верификации.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
02.08.2025, 10:39
Кнопки интерфейса заменены на плоские с четкими границами для придания более современного вида.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
02.08.2025, 17:30
Добавлена кнопка (☀) справа от кнопки "Найти" для переключения между светлой и темной темами интерфейса.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
02.08.2025, 21:56
Проведена внутренняя оптимизация кода, отвечающего за отрисовку тем оформления.
Убран лишний код, что повышает стабильность и надёжность приложения, а также немного ускоряет переключение между светлой и тёмной темой.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
04.08.2025, 09:30
Автоматическое копирование зашифрованного текста
После успешного завершения операции шифрования, зашифрованный текст автоматически копируется в буфер обмена.
Для обеспечения стабильности работы программы и предотвращения зависаний при обработке очень больших объемов данных, установлен лимит в 50 МБ.
Если зашифрованный текст превышает этот размер, программа сообщит об этом и предложит сохранить результат в файл, не копируя его в буфер.
Это позволяет мгновенно передавать зашифрованные сообщения, вставляя их в почтовый клиент, мессенджер или социальную сеть с помощью стандартной комбинации клавиш (Ctrl+V).
Улучшенное уведомление при генерации пароля
Чтобы новая функция автоматического копирования не приводила к случайной потере пароля, было обновлено информационное сообщение при его генерации.
Новый текст предупреждения информирует, что пароль в буфере обмена будет заменен зашифрованным текстом при следующей операции шифрования:
Новый пароль скопирован в буфер обмена
ОБЯЗАТЕЛЬНО СОХРАНИТЕ ЕГО В НАДЁЖНОМ МЕСТЕ ПРЯМО СЕЙЧАС
Буфер обмена будет перезаписан зашифрованным текстом после шифрования или очищен при закрытии программы
Это делает поведение программы более предсказуемым и безопасным.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
04.08.2025, 19:18
Полностью переработан модуль декодирования Base64
Новый декодер строго следует стандарту RFC 4648.
Он больше не будет пытаться "угадать" результат при работе с поврежденными или некорректно сформированными данными, а вместо этого сообщит об ошибке.
Программа теперь проверяет:
Наличие недопустимых символов.
Правильность структуры и расположения символов паддинга (
=
).
Превышение разумного лимита на размер входных данных (100 МБ), чтобы избежать зависания или сбоя программы при открытии слишком больших файлов.
В случае ошибки пользователь теперь получает четкое сообщение, объясняющее причину сбоя (например, "недопустимый символ" или "некорректная длина"), что позволяет легче диагностировать проблему.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
07.08.2025, 11:45
Добавлена возможность изменять количество раундов криптографической губки в диапазоне от 24 до 80
Количество раундов определяет, насколько интенсивно "перемешиваются" данные внутри шифра.
Большее количество раундов усложняет криптоанализ и увеличивает стойкость алгоритма к теоретическим и будущим атакам.
Увеличение числа раундов незначительно снижает скорость шифрования и расшифровки.
Реализован механизм отката, который позволяет корректно расшифровывать сообщения, созданные до этого изменения (с фиксированным значением в 24 раунда).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
07.08.2025, 22:08
Интеграция с почтовым клиентом
Добавлена кнопка "Отправить", позволяющая передать шифротекст (в виде файла Bastion-V16-encrypted-message.txt) в почтовую программу, установленную в Windows по умолчанию.
Чтобы вы случайно не отправили свои секреты в незашифрованном виде, кнопка "Отправить" сработает только в том случае, если текст в главном окне является шифротекстом.
Для корректной работы этой функции убедитесь, что в настройках Windows выбрано приложение электронной почты по умолчанию.
В противном случае программа может не найти ваш почтовый клиент.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.08.2025, 08:47
Улучшения функции "Отправить"
Если почтовый клиент (например, The Bat!) был установлен, но некорректно зарегистрирован в системе, "Бастион" выдавал стандартную ошибку "Не удалось открыть почтовый клиент".
Теперь программа сначала проверяет ключевые настройки реестра.
Если конфигурация неверна, "Бастион" выводит подробное сообщение, подсказывающее пользователю возможные пути решения.
При нажатии кнопки "Отправить" окно "Бастиона" раньше "зависало" и его нельзя было передвинуть до закрытия почтового клиента.
Это происходило из-за того, что отправка почты блокировала основной поток программы.
Теперь эта операция выполняется в отдельном, фоновом потоке, и интерфейс "Бастиона" остается полностью отзывчивым.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Как настроить отправку почты для The Bat!
Если при нажатии на кнопку "Отправить" вы получаете сообщение о том, что "Почтовый клиент по умолчанию не настроен для работы с программами (MAPI)", это означает, что ваш почтовик не прописал себя в нужном месте системного реестра.
Откройте Редактор реестра, нажмите на клавиатуре клавиши Win + R.
В появившемся окне "Выполнить" введите regedit и нажмите Enter.
Перейдите в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
На панели слева вы увидите несколько подразделов, найдите среди них тот, который относится к вашей почтовой программе.
Например, The Bat! Simple MAPI 32-bit или The Bat! Simple MAPI 64-bit.
Теперь посмотрите на панель справа, там будет параметр с именем (По умолчанию).
Скорее всего, в колонке "Значение" будет пусто.
Дважды щелкните по имени (По умолчанию).
В открывшемся окне в поле "Значение" введите (или вставьте из буфера) точное имя подраздела вашего почтового клиента из списка слева (например, The Bat! Simple MAPI 32-bit или The Bat! Simple MAPI 64-bit).
Нажмите "OK".
После изменения правая панель должна выглядеть так:
Чтобы изменения гарантированно вступили в силу, перезагрузите компьютер.
После этих действий "Бастион" сможет корректно находить ваш почтовый клиент и передавать в него сообщения.
guidesoul
08.08.2025, 22:41
Реализована функция отмены и повтора для поля ввода текста
Теперь вы можете легко отменять и возвращать свои правки с помощью стандартных горячих клавиш:
Ctrl + Z — отменить последнее действие.
Ctrl + Y — повторить отменённое действие.
Особенностью новой функции является то, что она регистрирует каждое нажатие клавиши.
Если вы случайно удалили не тот символ или допустили одну опечатку, вы можете отменить именно это микро-действие, не теряя при этом целое слово или предложение, которое вы только что набрали.
Автоматический сброс истории изменений
Чтобы избежать логических ошибок (например, отмены действия над зашифрованным текстом, когда на экране уже расшифрованный), история правок автоматически очищается после выполнения ключевых операций:
Шифрование текста.
Расшифровка текста.
Загрузка данных из файла.
Полная очистка полей с помощью кнопки "Очистить".
Это гарантирует, что история отмены всегда относится к текущему, логически целостному состоянию документа.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.08.2025, 09:23
Реализован переход с устаревшего ANSI MAPI на современный Unicode-интерфейс
Предыдущий метод мог приводить к некорректному отображению кириллических символов в теме письма и имени вложения.
Обеспечена полная и надежная поддержка любых языков при отправке сообщений, что повышает универсальность программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.08.2025, 15:00
Переход на Rich Edit
Стандартный элемент управления EDIT вызывал значительные задержки и "зависание" интерфейса при отображении очень длинного, непрерывного зашифрованного текста, особенно при изменении размера окна.
Элемент EDIT заменён на гораздо более мощный и производительный аналог — Rich Edit Control (MSFTEDIT_CLASS), загрузив для этого системную библиотеку Msftedit.dll.
Теперь зашифрованный текст любого разумного размера отображается практически мгновенно, без каких-либо задержек и тормозов при перерисовке окна.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.08.2025, 18:07
Добавлена поддержка стандартных горячих клавиш:
Ctrl+C (Копировать), Ctrl+V (Вставить) и Ctrl+X (Вырезать).
Теперь глубокая очистка памяти (перезапись случайными данными) выполняется всегда, без лишних условий, что повышает надежность.
Повышена стабильность отображения интерфейса за счет явной инициализации стандартных компонентов Windows.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
10.08.2025, 08:29
Кликабельные ссылки в текстовом поле
Ссылки, начинающиеся с http://, https://, www., а также адреса электронной почты в формате mailto:user@example.com или просто user@example.com, будут автоматически выделены синим цветом и подчеркнуты.
При нажатии левой кнопкой мыши на ссылку она будет открыта в браузере или почтовом клиенте, установленном в системе по умолчанию.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
10.08.2025, 11:18
Устранена ошибка, из-за которой горячие клавиши для работы с буфером обмена (например, Ctrl+V) всегда вставляли текст в основное текстовое поле, даже если курсор находился в поле для ввода пароля.
Расширена поддержка горячих клавиш (Ctrl+C, Ctrl+V, Ctrl+X и др.) на все поля ввода, включая поля для указания длины пароля и количества раундов.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
11.08.2025, 07:21
Усиление генератора случайных чисел
Надежность любого шифрования начинается с качественных случайных чисел.
Они используются для создания "соли", "нонса" и при генерации паролей.
Чем более непредсказуемы и хаотичны эти числа, тем надежнее шифр.
В этой версии "Бастион" научился собирать дополнительную "энтропию" (случайность) из уникального состояния вашего компьютера в момент запуска.
При каждом запуске программа в фоновом режиме собирает данные из нескольких источников, отражающих уникальное состояние системы:
Состояние запущенных процессов и их идентификаторы.
Текущее использование оперативной памяти.
Высокоточные системные таймеры, фиксирующие микроскопические задержки в работе ОС.
Собранная информация не просто добавляется к системной, а проходит сложную обработку с помощью SpongeV16.
SpongeV16 — это реализация современной криптографической схемы под названием "губка"
У нее есть два основных этапа
Фаза впитывания:
Берется порция входных данных (сначала от системного генератора, потом — собранная энтропия).
Эта порция смешивается с частью внутреннего состояния губки с помощью математической операции (XOR).
Сразу после этого все внутреннее состояние губки проходит через сложную функцию необратимого перемешивания — пермутацию.
Это мощный криптографический "миксер", который многократно и хаотично перемешивает биты, чтобы каждое изменение повлияло на все состояние целиком.
Процесс повторяется для всех порций входных данных.
В итоге внутреннее состояние губки становится уникальным "слепком", который нелинейно зависит от каждого бита всей информации, что была впитана.
Фаза отжимания:
Когда все данные впитаны, из губки можно "отжать" нужное количество криптографически стойких случайных байт.
При каждом "отжимании" порции данных внутреннее состояние снова перемешивается пермутацией.
Какие преимущества это дает
Соль, нонс и сгенерированные пароли теперь основаны не только на системном генераторе, но и на уникальном "шуме" вашего компьютера в конкретный момент.
Криптографическая основа каждой сессии шифрования становится уникальной и привязанной к состоянию системы, что еще больше усложняет любые теоретические атаки.
Обновление полностью обратно совместимо
Новый механизм усиления случайности применяется только при создании новых зашифрованных сообщений (при нажатии кнопок "Шифровать" или "Генерировать пароль").
Логика расшифровки осталась без изменений, что гарантирует доступ ко всем вашим старым данным.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
11.08.2025, 17:38
Заменена устаревшая и небезопасная функция обработки текста на современный, защищённый аналог из библиотеки strsafe.h от Microsoft.
Устранена ошибка, появившаяся после перехода на компонент RichEdit.
Поиск находил правильные символы, но выделял совершенно другие участки текста.
Добавлена стандартная горячая клавиша Delete.
Как и ожидается от любого текстового редактора, теперь вы можете просто выделить текст и нажать клавишу Delete для его удаления в любом поле ввода.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.08.2025, 09:13
Добавлена разблокировка и очистка поля с зашифрованным текстом
Нажмите колесом мыши на заблокированное поле, чтобы очистить его для ввода нового текста с тем же паролем.
Это позволяет приступить к шифрованию нового текста, сохраняя уже введенный пароль, без необходимости использовать кнопку "Очистить" или "Расшифровать".
Улучшена навигация
Можно ввести пароль в первом поле, нажать Tab для перехода в поле подтверждения, и ещё раз Tab для перемещения курсора в основное поле для шифруемого текста.
Это делает процесс ввода данных значительно быстрее и удобнее.
Удобство диалоговых окон
Все окна подтверждения (например, при очистке полей или повторном шифровании) были обновлены.
Теперь они содержат только две кнопки ("ОК" и "Отмена") и корректно закрываются по нажатию клавиши Esc.
Исправлен поиск на русском языке
Устранена ошибка, из-за которой поиск текста на кириллице был чувствителен к регистру.
Теперь поиск работает корректно и находит слова независимо от того, заглавными или строчными буквами они написаны (например, поиск "яблоко" найдет и "Яблоко").
Добавлена поддержка горячих клавиш
Ctrl + Enter — Шифровать текст.
Ctrl + Shift + Enter — Расшифровать текст.
Ctrl + S — Сохранить текущее содержимое в файл.
Ctrl + O — Открыть файл.
Ctrl + F — Вызвать диалог поиска по тексту.
Ctrl + G — Сгенерировать новый надёжный пароль.
Ctrl + Shift + S — Отправить зашифрованный текст как вложение по электронной почте.
Ctrl + Shift + W — Полностью очистить все поля (текст, пароли).
Быстрое дублирование пароля
Добавлена возможность мгновенно скопировать пароль из первого поля во второе (поле подтверждения).
Наведите курсор на второе поле и кликните колесом мыши (средней кнопкой).
Содержимое из первого поля полностью заменит любые символы, которые уже были введены в поле подтверждения.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.08.2025, 10:54
Добавлена функция сохранения сгенерированного пароля в текстовый файл.
Заменен старый метод получения текста ссылки, который использовал статический массив фиксированного размера (wchar_t linkTextRaw[4096]), на современный подход с использованием динамического контейнера std::wstring.
Предыдущая реализация могла теоретически привести к переполнению стека и аварийному завершению программы, если пользователь кликнул бы на очень длинную гиперссылку (более 4096 символов).
Новый метод полностью устраняет этот риск, так как память выделяется динамически и ровно под размер конкретной ссылки.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.08.2025, 20:13
Внедрена новая политика безопасности, которая запрещает операционной системе (начиная с Windows 8) создавать дампы памяти процесса "Бастион".
Теперь, даже если программа аварийно завершится, извлечь из памяти остатки ключей шифрования или фрагменты вашего открытого текста становится практически невозможным.
Это важный шаг для защиты ваших данных от "холодного" анализа (cold boot attacks) и анализа дампов памяти.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.08.2025, 22:10
Исправлена ошибка, появившаяся после перехода на компонент RichEdit, которая препятствовала сохранению настроек размера шрифта.
Теперь при изменении масштаба текста (Ctrl + Колесо мыши) его размер корректно записывается в файл настроек и восстанавливается при следующем запуске.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
13.08.2025, 09:44
Комплексная, многоуровневая защита памяти
Программа "Бастион" спроектирована с учетом современных угроз и использует многоуровневую систему для защиты ваших данных непосредственно в оперативной памяти компьютера.
1. Шифрование пароля в памяти (ключевая защита)
Ваш пароль не хранится в памяти в открытом виде постоянно.
Когда вы нажимаете "Шифровать" или "Расшифровать", происходит следующий процесс:
Программа считывает текст из поля ввода во временный буфер.
В этот же момент она немедленно шифрует содержимое этого буфера, используя одноразовый, криптографически стойкий ключ, который генерируется для текущего сеанса.
Сразу после этого временный буфер, содержавший пароль в открытом виде, безвозвратно затирается.
Когда зашифрованный в памяти пароль нужен для основной криптографической операции, он появляется в открытом виде лишь на микросекунды внутри одной изолированной функции.
Специальный механизм гарантирует, что эта временная, расшифрованная копия будет немедленно и безвозвратно уничтожена сразу после использования.
Этот двухэтапный подход гарантирует, что пароль существует в открытом виде только на стеке, на кратчайший возможный промежуток времени, а в "состоянии покоя" в памяти всегда находится только его зашифрованная версия.
2. Усиление безопасности процесса на уровне ОС
"Бастион" при запуске обращается напрямую к ядру Windows, чтобы активировать системные политики безопасности для своего процесса.
Эти политики значительно усложняют попытки сторонних программ анализировать "Бастион" и вмешиваться в его работу, в частности:
Ограничивают доступ к памяти процесса со стороны стандартных системных утилит.
Запрещают генерацию нового исполняемого кода, защищая от многих видов атак с его внедрением.
3. Противодействие отладке
Программа оснащена набором базовых проверок для противодействия анализу в реальном времени.
Она проверяет "отпечатки", которые оставляют стандартные отладчики, и при их обнаружении немедленно завершает работу.
4. Безопасная обработка криптографических ключей
Криптографические ключи, сгенерированные из вашего пароля, блокируются в физической памяти.
Это значительно затрудняет их выгрузку на жесткий диск (в системный файл подкачки).
Для очистки всех чувствительных данных (ключей, временных буферов) используется усиленный механизм.
Область памяти сначала перезаписывается случайными байтами, а затем обнуляется через системную функцию SecureZeroMemory.
Эта процедура применяется автоматически ко всем критическим данным, а также вручную при нажатии кнопки "Очистить".
Важное замечание о пределах безопасности
Принятые меры — шифрование пароля в памяти, усиление безопасности процесса на уровне ОС, противодействие отладке и гарантированная очистка — создают мощную эшелонированную оборону.
Они делают извлечение данных из памяти крайне маловероятным и чрезвычайно сложным для реализации на практике.
Тем не менее, важно понимать, что не существует абсолютной защиты.
Если ваш компьютер уже скомпрометирован вредоносным ПО, работающим на уровне администратора или ядра системы (например, кейлоггером или руткитом), то никакое приложение пользовательского режима не сможет гарантировать 100% безопасности.
Возможности для самостоятельного улучшения
Проект "Бастион" публикуется с открытым исходным кодом.
Если для ваших задач требуется еще более высокий уровень, вы можете самостоятельно усилить его.
Например, можно добавить более продвинутые техники противодействия отладке, реализовать обфускацию кода или интегрировать любые другие механизмы защиты, которые считаете необходимыми.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
13.08.2025, 21:53
Механизм защиты от создания дампов памяти был заменен на штатную, документированную технологию Windows (WerSetFlags).
Теперь, в случае непредвиденного сбоя, операционная система не будет автоматически создавать копию (дамп) памяти процесса, что предотвращает утечку чувствительных данных.
Внедрен механизм автоматической очистки (SecureClearGuard) для всех временных буферов, содержащих чувствительную информацию (вводимый текст, расшифрованные данные, промежуточные криптографические результаты).
Теперь, как только какая-либо часть ваших данных больше не нужна для операции, она немедленно и гарантированно стирается из оперативной памяти.
Это происходит автоматически, даже в случае непредвиденных ошибок, что сводит к минимуму время, в течение которого данные существуют в открытом виде, и делает их перехват практически невозможным.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
14.08.2025, 11:15
Принято решение выпустить версию программы без встроенных средств защиты от отладки и принудительной очистки оперативной памяти.
Основная причина этого изменения заключается в том, что данные механизмы имеют ограниченную эффективность в проекте с открытым исходным кодом.
Они могут быть легко выявлены и обойдены, что не создает реального препятствия для анализа приложения.
Поскольку исходный код программы полностью доступен, разработчики и пользователи, которым требуются специфические функции защиты от отладки или анализа памяти, могут самостоятельно добавить или модифицировать код в соответствии со своими требованиями.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
14.08.2025, 14:57
Теперь вы можете не только искать текст (Ctrl + F), но и вносить изменения.
Функция "Заменить" позволяет постепенно заменять найденные символы.
"Заменить всё" заменяет все найденные символы одновременно.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
14.08.2025, 21:30
Генерация QR-кодов (Alt + Q)
Эта функция может быть полезна для быстрой и удобной передачи небольших зашифрованных сообщений или паролей на мобильные устройства.
Максимальный объем текста для кодирования в QR-код составляет 2331 байт
Важно понимать, что количество символов, которое можно закодировать, зависит от языка.
Например, латинские буквы и цифры занимают по 1 байту, в то время как кириллические символы в кодировке UTF-8 — по 2 байта.
Таким образом, в QR-код поместится примерно в два раза меньше кириллического текста, чем латинского.
Следует учитывать, что процесс шифрования значительно увеличивает размер исходного текста из-за добавления служебных данных (соль, nonce, HMAC-тег) и кодирования в Base64.
Поэтому для успешной генерации QR-кода исходный открытый текст должен быть существенно меньше указанного лимита.
В последующих версиях рассматривается возможность добавления сжатия (архивирования) данных перед шифрованием.
Это позволит помещать в QR-код больше информации и уменьшит итоговый размер зашифрованных сообщений.
Вы можете сохранить сгенерированный QR-код как BMP-файл, сделав двойной щелчок левой кнопкой мыши по его изображению.
Скачать можно в облаке, лежит в папке Bastion V16 + QR
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
15.08.2025, 07:33
Создана единая функция DecryptAndVerify для расшифровки данных и проверки их целостности (HMAC).
Ранее схожий код для расшифровки находился в двух местах:
в функции для расшифровки текста в окне (OnDecryptClick) и в функции для проверки сохраненного файла (VerifySavedFile).
Теперь обе функции обращаются к DecryptAndVerify.
Благодаря устранению дублирования, дальнейшая поддержка и внесение изменений в криптографическую часть программы стали значительно проще и безопаснее, что снижает риск возникновения ошибок в будущем.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
15.08.2025, 10:31
Интегрирован архиватор miniz для сжатия данных перед шифрованием
Это значительно уменьшает итоговый размер зашифрованного текста, что особенно полезно при работе с большими объёмами информации и при создании QR-кодов.
Уменьшенный размер шифротекста особенно полезен при генерации QR-кодов, поскольку теперь в один QR-код можно уместить гораздо больше полезной информации.
Сжатие включено постоянно и по умолчанию работает на уровне 6 (Z_DEFAULT_COMPRESSION), что обеспечивает оптимальный баланс между скоростью и степенью сжатия.
Вы можете изменить этот параметр вручную в исходном коде, в функции compress_data, изменив последний аргумент в вызове функции compress2.
Доступные варианты:
MZ_NO_COMPRESSION (0): Без сжатия.
MZ_BEST_SPEED (1): Максимальная скорость, минимальное сжатие.
MZ_DEFAULT_COMPRESSION (6): Оптимальный баланс (используется по умолчанию).
MZ_BEST_COMPRESSION (9): Максимальное сжатие, минимальная скорость.
Сохранена обратная совместимость с предыдущими версиями.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
16.08.2025, 08:28
Устранена проблема в темной теме.
При изменении размера шрифта с помощью Ctrl + колесо мыши приводило к сбросу цвета текста со светлого на черный.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
16.08.2025, 09:33
Устранено дублирование кода при проверке пароля
Ранее, логика для считывания паролей из полей ввода, проверки их на пустоту и сверки на совпадение была скопирована в двух функциях:
OnEncryptClick (при шифровании) и OnDecryptClick (при расшифровке).
Это приводило к избыточности кода и потенциальным ошибкам в будущем, если бы потребовалось изменить логику только в одном месте, забыв про другое.
Для централизации этой логики была создана новая единая функция GetAndVerifyPassword.
Улучшение удобства использования
В дополнение к стандартному переходу вперед по клавише Tab, была реализована возможность перемещаться назад, на предыдущий элемент, с помощью сочетания Shift + Tab.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
16.08.2025, 20:48
Библиотека для шифрования SpongeV16
disk.yandex.ru/d/W__3-NcboWdYPg
guidesoul
17.08.2025, 06:47
SpongeV16 (SV16)
SpongeV16.h - Главный заголовочный файл
SpongeV16.cpp - Файл реализации
miniz.h, miniz.c - Библиотека для сжатия данных
example.cpp - Пример использования
example 2.cpp - Пример использования (раунды KDF и губки)
Интеграция в проект
Скопируйте исходные файлы (SpongeV16.h, SpongeV16.cpp, miniz.h, miniz.c) в папку с вашим проектом.
Подключите заголовочный файл: #include "SpongeV16.h"
При компиляции добавьте SpongeV16.cpp и miniz.c к списку исходных файлов вашего проекта.
Для успешной сборки необходимо подключить следующие системные библиотеки:
bcrypt.lib (для криптографического генератора случайных чисел)
psapi.lib (для сбора дополнительной энтропии)
Пример команды (clang++):
clang++ -o my_app.exe my_app.cpp SpongeV16.cpp miniz.c -lbcrypt -lpsapi
guidesoul
17.08.2025, 07:48
Убрана обязательная ручная инициализация
Без инициализации. Without initialization
Ранее требовалось вручную вызывать эту функцию перед началом работы с библиотекой.
Этот подход мог приводить к ошибкам времени выполнения, если вызов был пропущен, или к усложнению кода при интеграции в большие проекты.
Теперь библиотека использует механизм "ленивой (автоматической) инициализации".
Внутренняя подготовка (например, запуск потока для сбора энтропии) выполняется автоматически и потокобезопасно при первом вызове "Encrypt()" или "Decrypt()".
Это реализовано с помощью стандартного механизма C++ "std::call_once".
Преимущества
Исключена возможность забыть инициализировать библиотеку, что предотвращает целый класс потенциальных ошибок.
Больше не нужно добавлять в код лишнюю строку для инициализации. API стал чище и интуитивно понятнее.
Инициализация гарантированно выполняется корректно и всего один раз, даже в многопоточных приложениях.
Библиотека теперь следует современным практикам проектирования, скрывая внутренние детали реализации от пользователя.
Что нужно сделать
Удалите все вызовы "SpongeV16::Initialize()" из вашего кода.
guidesoul
19.08.2025, 08:58
Улучшена логика кнопки "Расшифровать"
Добавлены проверки перед выполнением расшифровки.
Теперь программа запрашивает подтверждение, если текст уже считается расшифрованным, и выполняет проверку формата данных, чтобы предотвратить технические ошибки при попытке расшифровать обычный текст.
Улучшена навигация с помощью клавиши Tab между полями ввода пароля
Ранее при переключении на поле с уже введенным паролем курсор устанавливался в начало текста, что было неудобно для редактирования.
Теперь при переключении фокуса с помощью клавиш Tab и Shift+Tab курсор автоматически перемещается в самый конец текста в поле пароля.
Это позволяет сразу же продолжить ввод или начать удаление символов с помощью Backspace без лишних действий.
Внутренние улучшения
Из списка определений был удален макрос IDC_ROUNDS_ENTRY, который присваивал идентификатор элементу управления "Раунды".
Этот идентификатор был определен, но фактически не использовался ни в одном из обработчиков событий, что делало его "мертвым кодом".
В главный модуль программы (wWinMain) добавлена дополнительная проверка для корректного освобождения системных ресурсов в случае редкой ошибки.
В гипотетической ситуации, когда программа не могла создать таблицу горячих клавиш (акселераторов), она завершала работу, но не освобождала ранее загруженную библиотеку для текстового поля (Msftedit.dll).
Вместо одной глобальной переменной для хранения WNDPROC теперь используется SetPropW/GetPropW для каждого окна индивидуально.
Это устраняет потенциальную ошибку и повышает стабильность кода.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
20.08.2025, 07:21
Минимальная требуемая версия Windows была понижена с Windows 8 (_WIN32_WINNT 0x0602) до Windows Vista (_WIN32_WINNT 0x0600).
Анализ кода показал, что все используемые функции Windows API (включая криптографические функции bcrypt.dll и функции отчётов об ошибках wer.dll) доступны начиная с Windows Vista.
Поскольку тестирование на реальном оборудовании с Windows Vista не проводилось, данная совместимость является теоретической.
Выполнен рефакторинг функции DecryptAndVerify для устранения избыточности кода.
Теперь код унифицирован, стал чище и надёжнее, что снижает вероятность потенциальных ошибок в будущем.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
20.08.2025, 20:13
Добавлена настройка параметра Rate (Рэйт)
Представьте криптографическую губку как большую миску для смешивания объемом 64 байта.
Rate — это размер порции данных, которую мы засыпаем в миску за один раз.
Оставшееся место, capacity (ёмкость), — это секретная, защитная часть, которая обеспечивает криптостойкость.
Существует прямая зависимость: чем меньше rate, тем выше безопасность, но ниже скорость обработки данных.
По умолчанию используется значение 32 — это золотой стандарт, обеспечивающий отличный уровень безопасности (~128 бит) и высокую скорость.
Для большинства задач этого более чем достаточно.
Однако для защиты особо важных данных вы можете уменьшить это значение, чтобы значительно повысить криптостойкость.
Рекомендуемые значения и их влияние:
32 байта.
Золотой стандарт (рекомендуется). Стандартная скорость (1x).
Уровень безопасности ~128 бит.
Отличный баланс скорости и надёжности.
16 байт.
Высокая безопасность. Примерно в 2 раза медленнее.
Уровень безопасности ~192 бита.
Для очень чувствительных данных.
8 байт.
Максимальная безопасность. Примерно в 4 раза медленнее.
Уровень безопасности ~224 бита.
4 байта.
Экстремальная безопасность. Примерно в 8 раз медленнее.
Уровень безопасности ~240 бит.
Новая версия программы может корректно расшифровывать файлы, созданные в любых предыдущих версиях "Бастиона".
Оптимизация и упрощение логики сжатия
Ранее код сначала проверял успешность сжатия, а затем отдельной проверкой — его эффективность (не стал ли сжатый файл больше исходного).
Теперь эти два условия объединены в одно.
Это небольшой рефакторинг, который делает код более лаконичным и читаемым (принцип Don't Repeat Yourself — DRY).
Устранение дублирования кода уменьшает вероятность ошибок при будущих изменениях и упрощает его понимание.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
21.08.2025, 11:12
Масштабируемый QR-код
Теперь окно с QR кодом можно развернуть на весь экран с помощью стандартной кнопки "Развернуть".
Размер окна можно плавно менять как мышью, так и с помощью горячих клавиш (Alt + ↑ для увеличения, Alt + ↓ для уменьшения).
Это нововведение будет полезно, если камера вашего смартфона не может сфокусироваться или отсканировать QR-код.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
21.08.2025, 15:34
Теперь QR коды сохраняются в разрешении 2115x2115 пикселей
Сохранить QR-код в виде BMP-файла можно, как и раньше, сделав двойной клик левой кнопкой мыши по его изображению.
Вы можете легко изменить целевое разрешение, отредактировав значение константы targetSize в функции SaveQrCodeAsBBmp:
const int targetSize = 2160;
Вы могли заметить, что итоговое разрешение (например, 2115x2115) немного меньше целевого значения 2160, указанного в коде.
Это не ошибка, а намеренное поведение для сохранения идеальной четкости QR-кода.
QR-код состоит из сетки маленьких квадратов (модулей).
Чтобы изображение было максимально четким и легко читалось сканерами, каждый такой модуль должен быть увеличен до идеального квадрата из пикселей (например, 15x15 пикселей, а не 15.3x15.3).
Программа берёт целевой размер 2160 и вычисляет самый большой возможный размер изображения, который позволяет сохранить эту идеальную квадратную структуру.
В результате получается разрешение, максимально близкое к целевому, но с гарантированно четкой геометрией.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
22.08.2025, 10:49
Двухуровневая маскировка
Ранее зашифрованные сообщения имели постоянное и узнаваемое начало (например, AABOIBgg...).
Эта особенность создавала уникальную "цифровую сигнатуру", которая позволяла системам анализа трафика (DPI) мгновенно и с высокой точностью определить, что текст зашифрован именно программой "Бастион".
Это как если бы все секретные донесения отправлялись в одинаковых ярко-красных конвертах.
Даже не зная содержания, любой наблюдатель поймет, что это — секретное донесение, и сможет его отфильтровать.
Для решения этой проблемы была внедрена двухуровневая маскировка.
Уровень 1: Рандомизация заголовка (включено всегда)
Служебные параметры (раунды, губка, рейт) были убраны из начала сообщения.
Теперь каждое сообщение начинается с криптографически случайных байт (соль и nonce).
Устранен самый очевидный "отпечаток", префикс AABOIBgg... исчез навсегда.
Однако, хотя "цвет конверта" теперь всегда разный, у него все еще оставалась узнаваемая структура:
[длинный блок Base64].[короткий блок HEX-символов].
Это все еще могло служить зацепкой для продвинутых систем анализа.
Уровень 2: Полная структурная маскировка (опция "Маска")
Это продвинутый уровень, который активируется чекбоксом "Маска" и обеспечивает максимальную скрытность.
Когда опция "Маска" включена, программа берет весь итоговый шифротекст (включая точку-разделитель и HMAC-подпись) и применяет к нему вторичное кодирование в Base64.
Структура сообщения полностью скрывается
Без маски: +e2pA...iaOdYAAE4gGCAdQg==.2c5124...7537
С маской: K2UycEEuLi5pYU9kWUFB...jVTM0Y3NTM3==
На выходе получается единый, монолитный блок Base64-символов без каких-либо разделителей, ассоциирующихся с программой "Бастион".
Такой текст становится неотличим от огромного количества других легитимных данных в интернете:
API-ключей, токенов авторизации, встроенных медиа-данных и т.д.
Ключевые преимущества двухуровневой системы
1. Базовая рандомизация усложняет простую блокировку, а режим "Маска" делает ее практически невозможной.
2. Сообщение не просто шифруется, но и скрывает сам факт использования конкретной программы шифрования.
3. Пользователь сам выбирает необходимый уровень скрытности.
Безопасность vs. Скрытность
Эти изменения не делают само шифрование математически более стойким.
Они повышают практическую скрытность и "живучесть" сообщения в агрессивной сетевой среде, приближая программу к принципам стеганографии.
Полная обратная совместимость
Новая версия "Бастиона" сохраняет полную обратную совместимость и расшифровывает сообщения, созданные в предыдущих версиях программы.
Внутренние улучшения
Логика для команд "Вырезать", "Копировать", "Вставить", "Удалить" и "Выделить всё" была вынесена в единую вспомогательную функцию, что улучшило чистоту и читаемость кода.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
22.08.2025, 15:00
Помимо облака Яндекс
Файлы Бастиона продублированы в облаке Гугл
guidesoul
22.08.2025, 19:02
Внедрена более строгая и эффективная проверка целостности зашифрованных сообщений.
guidesoul
23.08.2025, 10:40
Внесены изменения в расположение элементов интерфейса, а также обновлен дизайн чекбоксов.
Устранена проблема, из-за которой при вставке отформатированного текста (например, из LibreOffice) в темной теме он оставался темным и был нечитаем.
Теперь цвет вставленного текста автоматически приводится в соответствие с выбранной темой оформления.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
23.08.2025, 17:49
Ранее были устранены неэффективные операции с памятью в главном цикле шифрования, что дало прирост производительности в 2.5 раза по сравнению с первоначальной версией.
Проведена дополнительная микро-оптимизация на уровне машинных инструкций.
Внутренние циклы алгоритма шифрования были "развернуты" вручную, что снижает накладные расходы на их выполнение и лучше использует конвейер современных процессоров.
Это позволило получить еще 10-12% производительности сверх уже достигнутого ускорения
На первый взгляд, 10-12% — это скромный результат, но получить его поверх уже достигнутого 2.5-кратного ускорения — это признак предельной оптимизации.
Это та самая "финальная полировка", которая выжимает из кода максимум возможного, не жертвуя ни совместимостью, ни надежностью.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.08.2025, 07:44
Переход на аутентифицированное шифрование (AEAD)
AEAD (Authenticated Encryption with Associated Data) — это режим шифрования, который одновременно обеспечивает три столпа криптографической защиты:
1. Данные невозможно прочитать без ключа
2. Данные невозможно незаметно изменить
3. Данные были созданы именно владельцем ключа
Раньше эти задачи решались в два этапа:
сначала данные шифровались, а затем для шифротекста отдельно создавалась цифровая "пломба" (HMAC) для проверки целостности.
AEAD можно сравнить с современным сейф-контейнером.
Один поворот ключа одновременно и запирает его (шифрование), и активирует встроенную, несъемную пломбу (аутентификацию).
Ключевые преимущества
AEAD исключает целый класс потенциальных ошибок в реализации, которые могли бы возникнуть при раздельном использовании шифрования и MAC-кодов.
Это обеспечивает "безопасность по умолчанию", невозможно зашифровать данные, не защитив их от подделки.
Как это реализовано в Бастионе V16
Ключ, получаемый из вашего пароля и соли с помощью KDF, теперь делится на две независимые части:
1. Ключ шифрования
Используется для обеспечения конфиденциальности данных.
2. Ключ аутентификации
Используется для создания тега аутентификации, гарантирующего целостность.
Такое разделение полностью изолирует процессы шифрования и аутентификации, обеспечивая дополнительный слой защиты от гипотетических будущих атак.
Сначала данные сжимаются и шифруются, и только после этого от получившегося шифротекста вычисляется тег аутентификации.
Все новые данные, которые вы шифруете, будут создаваться с использованием AEAD.
Сохранена обратная совместимость.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.08.2025, 09:39
Полное устранение криптографических отпечатков
После перехода на современный режим шифрования AEAD (Authenticated Encryption) была обнаружена особенность:
присутствовали статические блоки данных (криптографические "отпечатки").
Эти отпечатки, хоть и не ослабляли стойкость самого шифрования, теоретически могли позволить идентифицировать трафик или файлы, обработанные программой "Бастион".
В этом обновлении данная особенность полностью устранена
NT+/ztRmUTPVvB1LmqJjiE2KaCh/9Pj+hegoo7o53+RnEtLiEuMKZJKanQ/7RjM9HtsfaUZqvbZ59mzR
pZcRBfnuyF9xsT9Gc+Y2/JFE+TpUSpu7LaMSfVEJfAi5F0nbxk/0cSkTRcWHgfqTo5gY8l4Dvpy/9MTf
eWapB3PFi8DijXH9Mh3uaXFmSR/z5PmphtPFAEAM4WkQuTipkqdWPxi+MwMunnRsBw+Kp2B/BuaAHjGo
Теперь все служебные данные, включая маркер версии и параметры шифрования, маскируются с использованием уникального для каждого сообщения случайного числа (nonce).
В результате каждый новый шифротекст, созданный программой, является уникальным от первого до последнего байта.
Визуально он неотличим от случайного набора данных, что лишает любого наблюдателя возможности сделать какие-либо выводы о программе, с помощью которой он был создан.
Шифр теперь выглядит как что-то абсолютно рандомное.
Роль режима "Маска"
Несмотря на это значительное улучшение, режим "Маска" остается актуальным и рекомендуется для использования в сценариях, требующих максимальной скрытности.
Режим "Маска" (двойное кодирование Base64) маскирует сам факт того, что перед вами зашифрованное сообщение, представляя его как обычный текстовый блок, который может быть чем угодно — например, частью токена, ключа API или технического лога.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.08.2025, 14:17
Возврат к лучшему
Версия "без аллокаций", имеющая простую и понятную структуру циклов, показала значительный прирост производительности с флагом -march=native.
Версия с "развернутыми" вручную циклами, которая была немного быстрее в стандартной компиляции, с новым флагом оказалась медленнее.
Это произошло потому, что ручные изменения помешали компилятору применить его собственные, более совершенные эвристики, включая авто-векторизацию (использование SIMD-инструкций).
Тестирование кода ("без аллокаций") на 1 000 000 итераций:
Без -march=native: ~3643 мс
С -march=native: ~3005 мс
Основываясь на этих данных, было принято решение вернуть код криптографического ядра к версии "без аллокаций".
Этот вариант, будучи скомпилированным с флагом -march=native, является абсолютным чемпионом по производительности, оставаясь при этом 100% совместимым и надежным.
Рекомендуемые команды для сборки с помощью Clang
32-битная версия (x86):
clang++ -Wall -Wextra -O3 -march=native -std=c++20 -s -o "$(NAME_PART).exe" "$(FILE_NAME)" "qrcodegen.cpp" "miniz.c" -static -mwindows -municode -lcomctl32 -lgdi32 -luser32 -lbcrypt -lmapi32 -lshlwapi -lwer -lpsapi
64-битная версия (x64):
clang++ -m64 -Wall -Wextra -O3 -march=native -std=c++20 -s -o "$(NAME_PART)_x64.exe" "$(FILE_NAME)" "qrcodegen.cpp" "miniz.c" -static -mwindows -municode -lcomctl32 -lgdi32 -luser32 -lbcrypt -lmapi32 -lshlwapi -lwer -lpsapi
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.08.2025, 17:42
Принято решение отказаться от флага компиляции -march=native
Для компенсации потенциального снижения производительности после отказа от -march=native, ядро криптографического алгоритма (_permute_state) было переписано с использованием техники "разворачивания циклов".
Это позволяет снизить накладные расходы и даёт компилятору больше возможностей для оптимизации, сохраняя высокую скорость работы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.08.2025, 20:25
Оптимизация криптографического ядра SpongeV16
В новой версии была проведена дополнительная низкоуровневая оптимизация криптографического ядра "Бастиона", отвечающего за все операции шифрования и расшифровки.
Предыдущий оптимизированный вариант, условно названный "Финальная версия (совместимая, быстрая)", уже содержал значительные улучшения, такие как:
Отказ от создания временных копий всего состояния в памяти на каждом раунде.
Разворачивание большинства внутренних циклов для уменьшения накладных расходов.
Новая версия, "Финальная (без SIMD)", развивает эту идею и применяет полное разворачивание последнего оставшегося короткого цикла (этап «diagonal mix») внутри основной функции пермутации.
Что это даёт
Вместо того, чтобы вычислять адреса элементов массива (v[(i + 1) % 4 + 4]) на каждой итерации, код теперь использует заранее известные, константные индексы (v[5], v[15] и т.д.).
Такой подход значительно упрощает анализ кода для компилятора.
Он видит простую последовательность независимых инструкций, что позволяет ему генерировать более эффективный машинный код, лучше планировать загрузку конвейера процессора и использовать параллелизм на уровне инструкций (когда процессор выполняет несколько операций за один такт).
В результате, несмотря на то, что алгоритм математически остался абсолютно тем же, его практическая реализация стала значительно эффективнее.
Сравнительные результаты тестов производительности
Тестирование проводилось на выполнении 1,000,000 итераций основной криптографической функции.
Предыдущая версия "Финальная версия (совместимая, быстрая)": ~3355 мс
Новая версия "Финальная (без SIMD)": ~2595 мс
Новая реализация криптографического ядра работает в среднем на ~760 мс быстрее в рамках теста, что соответствует приросту производительности примерно на 22-23%.
Для пользователя это означает, что операции шифрования и расшифровки, особенно на больших объемах данных, теперь будут выполняться еще быстрее, улучшая общую отзывчивость и скорость работы программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
25.08.2025, 09:09
Степень сжатия текста перед шифрованием увеличена до максимального уровня (с Z_DEFAULT_COMPRESSION до Z_BEST_COMPRESSION).
Это позволяет поместить больше информации в QR-код при минимальном влиянии на скорость выполнения операции.
Снято ограничение на размер текста для шифрования.
Ранее, из-за стандартных настроек текстового поля Windows, максимальный объем вводимого текста был ограничен ~65 536 символами.
Теперь этот лимит увеличен до максимально возможного значения (около 2 миллиардов символов).
Это позволяет комфортно шифровать и расшифровывать очень большие объемы данных без необходимости разбивать их на части.
Использование "магического числа" 32 при разделении эффективного ключа на ключ шифрования и ключ аутентификации заменено на соответствующую именованную константу CRYPTO_KEY_PART_LEN.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
25.08.2025, 17:40
При нажатии кнопки "Расшифровать" с текстом, который уже был расшифрован (или не был зашифрован изначально), программа выводила непонятное для пользователя техническое сообщение:
"Ошибка Base64: некорректная длина входной строки..."
Теперь программа корректно определяет такую ситуацию.
Вместо технической ошибки выводится понятное сообщение:
"Не удалось расшифровать. Возможно, текст расшифрован или поврежден"
Удалён недостижимый фрагмент кода, который был предназначен для других операционных систем.
Это делает код чище и полностью соответствующим целевой платформе Windows.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
27.08.2025, 10:41
Добавлена функция шифрования файлов
Изначально "Бастион" предназначен для шифрования текстовых (.txt) сообщений.
В этой версии была добавлена второстепенная функция — шифрование и расшифровка файлов прямо из интерфейса программы.
Как это работает
Механизм максимально упрощен и построен на интуитивном перетаскивании файлов (Drag-and-Drop).
1. Запустите "Бастион" и сгенерируйте или введите надежный пароль в соответствующие поля.
2. При необходимости укажите желаемые значения раундов KDF, губки и рэйта.
3. Перетащите необходимый файл (например, photo.jpg или document.docx) с рабочего стола в окно программы.
Файл будет зашифрован с расширением .v16 (например, photo.jpg.v16).
1. Для расшифровки запустите "Бастион" и введите пароль, который использовался при шифровании.
2. Перетащите зашифрованный файл (с расширением .v16) в окно программы.
Файл будет расшифрован с оригинальным названием (например, photo.jpg или document.docx).
Если файл с таким названием существует, вы сможете перезаписать его или сохранить с новым названием.
Важно
Не удаляйте из названия зашифрованного файла оригинальное расширение (например, .jpg из photo.jpg.v16).
Оно необходимо программе, чтобы при расшифровке восстановить файл в исходном формате.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.08.2025, 09:58
Общая логика шифрования вынесена из функций OnEncryptClick (текст) и DoEncryptFile (файлы) в единую централизованную функцию CreateEncryptedPayloadV16.
Это устраняет дублирование кода, упрощает дальнейшую поддержку и повышает надежность криптографического ядра за счет внесения изменений только в одном месте.
После успешного шифрования файла программа теперь предлагает уничтожить исходный (незашифрованный) файл.
При выборе "Да" содержимое исходного файла сначала перезаписывается случайными данными для предотвращения его восстановления, а затем сам файл удаляется.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.08.2025, 17:36
Теперь можно удалять файлы, просто перетащив их в окно программы с зажатой клавишей "Ctrl".
Программа запросит подтверждение перед тем, как перезаписать файл случайными данными и удалить его.
Если вам требуется абсолютная гарантия того, что никакие следы данных не останутся на диске, единственным по-настоящему надежным решением является полнодисковое шифрование.
Когда весь диск зашифрован с самого начала, любые "призраки" и скрытые копии также являются зашифрованными и представляют собой бесполезный набор данных без ключа.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.08.2025, 20:37
Да, нужно ответить на вопрос одного пользователя программы о том, что файлы медленно удаляются.
Действительно, функция уничтожения файлов в "Бастионе" работает заметно медленнее, чем обычное удаление файла в Корзину.
Этот процесс состоит из нескольких ресурсоемких шагов:
1. Генерация криптографически стойкого "шума"
Программа не может просто записать поверх файла нули или единицы — это слишком предсказуемо.
Вместо этого она обращается к самому надежному источнику случайных данных в Windows, чтобы создать уникальный, абсолютно непредсказуемый набор байтов, равный по размеру вашему файлу.
2. Усиление и смешивание с помощью губки "SpongeV16"
Это работа по принципу "защиты в глубину" и не доверия на 100% ни одному компоненту, даже системному.
Поэтому "Бастион" берет уже качественные случайные данные от системы и дополнительно перемешивает их с помощью собственного криптографического алгоритма SpongeV16, добавляя в этот "коктейль" энтропию, собранную самой программой (данные о системных процессах, таймерах и т.д.).
3. Полная перезапись
Созданный уникальный поток случайных данных байт за байтом физически записывается поверх всего пространства на диске, которое занимал ваш файл.
Старая информация полностью и безвозвратно заменяется этим "белым шумом".
4. Финальное удаление
И только после того, как от исходного содержания файла не осталось и следа, программа говорит операционной системе удалить теперь уже бесполезный мусорный файл.
Простая аналогия
Обычное удаление — это как скомкать бумажный документ и выбросить его в мусорное ведро.
Любой может его достать, разгладить и прочитать.
Уничтожение в "Бастионе" — это как пропустить тот же документ через промышленный шредер с перекрестной резкой, затем смешать полученное конфетти с конфетти от сотен других документов и, наконец, сжечь эту мешанину дотла.
Еще один частый вопрос, который логично вытекает из предыдущего:
почему шифрование в "Бастионе" занимает больше времени, чем в некоторых других программах?
Процесс шифрования — это сложный криптографический ритуал, и каждый его этап продуман так, чтобы обеспечить максимальную стойкость.
Многие программы для шифрования используют стандартные, широко распространенные алгоритмы (например, AES), для которых в современных процессорах даже есть аппаратное ускорение. Это делает их работу очень быстрой.
Это хороший, проверенный подход, но "Бастион" идет дальше, используя собственный, многослойный механизм, где главную роль играет криптографическая губка SpongeV16.
Вот из каких медленных, но критически важных этапов состоит шифрование в "Бастионе":
1. Превращение пароля в несокрушимый ключ (KDF)
Ваш пароль, каким бы сложным он ни был, никогда не используется для шифрования напрямую.
Сначала он проходит через функцию растяжения ключа (KDF).
"Бастион" заставляет ваш процессор выполнить тысячи итераций (это настраиваемое значение "Раунды" в интерфейсе), прогоняя пароль и случайную "соль" через губку SpongeV16.
Этот процесс намеренно сделан вычислительно дорогим.
Он заставляет компьютер "попотеть", многократно перемешивая данные.
Это делается для того, чтобы максимально затруднить подбор пароля (брутфорс).
Даже если злоумышленник сможет проверять миллиард паролей в секунду, на проверку одного-единственного варианта для вашего файла у него уйдут часы или дни, а не доли секунды.
2. Сложная внутренняя работа Губки (Пермутации)
Сердце SpongeV16 — это сложная внутренняя функция перемешивания, называемая пермутацией.
Когда губка шифрует ваши данные, она не просто выполняет одно математическое действие.
Для каждого блока данных она выполняет десятки раундов (значение "Губки" в интерфейсе) внутренних преобразований.
Представьте, что состояние губки — это колода карт.
Перед тем как выдать порцию ключа для шифрования, программа:
Сложным образом тасует эту колоду (раунд 1).
Снова тасует уже перетасованную колоду (раунд 2).
И так десятки раз...
Почему это медленно?
Каждый раунд — это серия сложных математических операций.
Множество раундов гарантируют так называемый "эффект лавины":
малейшее изменение во входных данных (например, один бит в вашем файле или пароле) приводит к полному, хаотичному и непредсказуемому изменению всего результата шифрования.
Простые и быстрые алгоритмы не всегда могут обеспечить такую глубину преобразования.
3. Создание "цифровой пломбы" (AEAD)
"Бастион" не просто шифрует ваши данные, он также создает для них аутентификационную метку — своего рода уникальную цифровую "печать".
Эта печать гарантирует, что зашифрованный файл не был изменен или поврежден.
Почему это медленно?
Для создания этой печати губке SpongeV16 нужно "впитать" и обработать не только ваш ключ и случайные данные, но и весь зашифрованный текст целиком.
То есть программа, по сути, проходит по вашим данным второй раз, чтобы убедиться в их целостности и создать надежную защиту от подделки.
Аналогия: Фастфуд против ресторанного блюда
Быстрое шифрование — это как повар в фастфуде.
У него есть стандартный рецепт, готовые ингредиенты, и он выдает результат за 30 секунд.
Это съедобно и быстро.
Шифрование в "Бастионе" — это как шеф-повар в ресторане высокой кухни.
Тщательно и долго готовит уникальный соус (растягивает ключ через KDF).
Использует сложную, многоэтапную технику приготовления основного блюда (многораундовые пермутации губки).
В конце украшает блюдо и ставит свою личную печать, гарантирующую качество (создает аутентификационную метку).
Этот процесс занимает время, но на выходе вы получаете не просто "еду", а произведение искусства, гарантирующее высочайшее качество и безопасность.
Поэтому замедление при шифровании — это не "тормоза" программы.
Это звук работающей на полную мощность системы безопасности, которая строит для ваших данных настоящую цифровую крепость.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
29.08.2025, 08:31
Реализовано групповое уничтожение файлов
Чтобы воспользоваться новой функцией, выделите один или несколько файлов, которые необходимо уничтожить.
Затем, удерживая нажатой клавишу Ctrl, перетащите их мышью в окно "Бастиона".
Теперь, если в основном текстовом поле есть несохраненные изменения, при перетаскивании нового файла в окно программы появится диалог с предложением сохранить их.
Это помогает предотвратить случайную потерю данных.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
29.08.2025, 17:58
Улучшена функция уничтожения файлов
Внедрен 3-проходный алгоритм для уничтожения содержимого файла.
проход нулями, проход единицами и финальный проход криптографически стойкими случайными данными, генерируемыми через BCryptGenRandom.
Для всех операций записи в файл теперь используется флаг FILE_FLAG_WRITE_THROUGH в вызове CreateFileW.
Данные немедленно записываются на физический носитель, что критически важно для надежного затирания.
Добавлена логика, которая использует FindFirstStreamW/FindNextStreamW для перечисления всех потоков, связанных с файлом в NTFS.
Каждый найденный поток проходит ту же процедуру 3-проходной перезаписи, что и основной файл.
Это закрывает возможность восстановления данных из скрытых потоков.
Напоминание
Если вам требуется абсолютная гарантия того, что никакие следы данных не останутся на диске, единственным по-настоящему надежным решением является полнодисковое шифрование.
Когда весь диск зашифрован с самого начала, любые "призраки" и скрытые копии также являются зашифрованными и представляют собой бесполезный набор данных без ключа.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.08.2025, 10:44
Шифрование файлов с зажатой клавишей Alt
1. Запустите "Бастион", сгенерируйте или введите надежный пароль в соответствующие поля.
2. При необходимости укажите желаемые значения раундов KDF, губки и рэйта.
3. Зажмите клавишу Alt и не отпуская, перетащите необходимый файл (например, photo.jpg) в окно программы.
Вместо автоматического создания файла с расширением .v16, откроется стандартное диалоговое окно "Сохранить как...".
Задайте файлу любое название и расширение (например, config.dat, render.dll или оставить photo.jpg), чтобы он не привлекал внимания.
Сценарии сохранения
Если не меняете название (сохраняете файл поверх самого себя), программа перезапишет исходный файл его зашифрованной копией.
Если задаете новое название или выбираете другую папку, программа после сохранения автоматически и уничтожит исходный файл.
Как расшифровать
1. Для расшифровки запустите "Бастион" и введите пароль, который использовался при шифровании.
2. Перетащите зашифрованный файл (например, photo.jpg или config.dat) в окно программы.
Программа автоматически определит, что файл зашифрован, и откроет стандартное диалоговое окно "Сохранить как...".
Если хотите заменить зашифрованный файл (photo.jpg) его расшифрованной версией, оставьте предложенное название и нажмите "Сохранить".
Можно сохранить расшифрованный файл под любым другим названием или в другую папку.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.08.2025, 18:13
Работа с файлами через Drag-and-Drop
Добавлена возможность шифровать и расшифровывать файлы без предварительного запуска программы.
Перетащите файл на значок "Бастиона" или в открытое окно программы.
Программа автоматически проанализирует файл и предложит нужное действие.
Упрощена логика расшифровки
Для расшифровки текста из главного окна теперь используется только первое поле для ввода пароля.
Подтверждение пароля во втором поле осталось обязательным только для операции шифрования, чтобы исключить опечатки при его создании.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.08.2025, 21:01
Исправлена логика шифрования файлов при перетаскивании с зажатой клавишей Alt
Если поля для пароля в главном окне были пусты, при перетаскивании файла с зажатым Alt появлялось окно для ввода пароля.
После его закрытия программа "забывала", что Alt был нажат, и сохраняла файл с именем по умолчанию (имя_файла.v16), вместо того чтобы открыть диалог "Сохранить как...".
Теперь состояние зажатой клавиши Alt корректно сохраняется и используется после ввода пароля в модальном диалоговом окне.
Это гарантирует, что режим "Сохранить как..." будет активирован в любом случае.
Важное уточнение
Возможность вызвать диалог "Сохранить как..." с помощью клавиши Alt работает только при перетаскивании файла в окно уже запущенной программы.
Эта функция не сработает, если перетащить файл на иконку или ярлык программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
31.08.2025, 15:38
Интеграция с контекстным меню Windows (Alt + M)
Для удобства и ускорения работы добавлена возможность интеграции программы в контекстное меню Проводника Windows.
Это позволяет шифровать или расшифровывать файлы без необходимости предварительно запускать программу.
Для добавления или удаления программы из контекстного меню используется горячая клавиша Alt + M.
Ссылки те же
disk.yandex.ru/d/pSxwq7mMhKsOwg
drive.google.com/drive/u/1/folders/1FLIugY9270Ct8ho9orWH3z2H08XYHi4R
guidesoul
31.08.2025, 17:50
Ассоциация файлов с расширением .v16 с "Бастионом"
Теперь при нажатии горячих клавиш Alt + M программа выполняет два действия:
Добавляет "Бастион" в контекстное меню для всех типов файлов (как и раньше).
Ассоциирует файлы с расширением .v16 с "Бастионом".
Это означает, что ваши зашифрованные файлы получат иконку программы, и вы сможете запустить их расшифровку простым двойным кликом мыши.
Повторное нажатие Alt + M убирает интеграцию из системы (и контекстное меню, и ассоциацию файлов).
Важное примечание
Если вы уже добавляли "Бастион" в контекстное меню с помощью Alt + M в старой версии, при первом нажатии этой комбинации в новой версии может появиться сообщение:
Не удалось включить интеграцию с системой или Не удалось полностью отключить интеграцию
Это ожидаемое поведение.
Просто нажмите "ОК", а затем снова Alt + M.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
01.09.2025, 09:56
У "Бастиона" появилась иконка
Возможно, позже будет улучшена детализация.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
user1756569539
01.09.2025, 19:10
Бастион Моби - ваша защита от утечки персональных данных это он выпустил телефон, без доступа и защиты на проникновение ?
guidesoul
01.09.2025, 22:47
Интегрирован тест производительности (Alt + B)
1. Скорость создания ключа из пароля
Этот раздел показывает, сколько итераций (раундов) может выполнить ваш процессор за одну секунду.
Параметр "Раунды" — это ключевой механизм защиты от подбора пароля (брутфорс-атак).
Чем больше раундов, тем медленнее и дороже для злоумышленника становится каждая попытка угадать пароль.
Цель — создать ощутимую задержку для атакующего, которая будет почти незаметна для вас.
Как правильно интерпретировать результаты
Важно: тест показывает производительность вашего ПК, а не даёт абсолютную гарантию безопасности.
Медленный компьютер может показать, что для односекундной задержки ему нужно всего 5000 раундов, но это значение является небезопасным по современным стандартам.
Рекомендуется использовать значение в поле "Раунды" не менее 20,000.
Запустите тест (Alt + B), чтобы узнать, какое значение соответствует ~1 секунде задержки на вашем ПК.
Если это число больше 20,000 (например, 108,061), смело используйте его.
Вы получите отличную защиту с комфортной задержкой.
Если это число меньше 20,000, все равно используйте 20,000.
Вы пожертвуете долей секунды, но обеспечите надёжный минимальный уровень защиты.
2. Скорость шифрования текста и файлов
Этот раздел измеряет, с какой скоростью (в мегабайтах в секунду) ваш компьютер может шифровать данные при различных настройках криптографической губки ("Губки" и "Рэйт").
Эти параметры влияют на производительность при работе с большими объемами текста или при шифровании файлов.
Вы можете выбрать оптимальный режим в зависимости от ваших задач.
В результатах вы увидите несколько предустановленных режимов, которые помогут вам сориентироваться:
(Ваши настройки):
Показывает производительность с текущими параметрами, установленными в главном окне.
(Самый быстрый):
Идеально для мгновенного шифрования небольших заметок и сообщений.
(Сбалансированный):
Отличное сочетание скорости и безопасности, подходит для большинства файлов.
(Надежный) / (Очень надежный):
Режимы с повышенной безопасностью для шифрования важных архивов и документов, где скорость не является главным приоритетом.
(Макс. защита):
Максимально возможный уровень безопасности, достигаемый за счет снижения скорости.
Используйте для самых критичных данных.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
02.09.2025, 06:53
Что происходит во время теста производительности (Alt + B)
Представьте, что вы отдаете свой компьютер на специальный криптографический "техосмотр".
За время теста он проходит два важных испытания, чтобы вы точно знали, насколько он хорош в защите данных.
Этап 1: "Закалка" ключа
Цель:
Узнать, насколько быстро ваш компьютер может превратить обычный пароль в сверхсложный и надежный ключ для шифрования.
Представьте, что ваш пароль — это кусок металла, а программа — это кузнец.
Простой пароль — это не ключ.
Чтобы его нельзя было подобрать, кузнец (программа) начинает его "закалять" — многократно нагревать, ковать и остужать.
Каждый удар молота — это один "раунд".
Программа заставляет ваш процессор тысячи раз прогонять пароль через сложнейшие математические преобразования.
Это делается специально, чтобы максимально усложнить и замедлить процесс создания ключа.
Если злоумышленник попытается подобрать ваш пароль, его компьютеру тоже придется выполнять все эти тысячи "раундов" для каждой попытки, что делает взлом нереально долгим.
Тест как раз и измеряет, сколько таких "ударов молота" или "раундов закалки" ваш процессор успевает сделать за одну секунду.
Ваш результат (например, ~259 000 раундов/сек) означает, что ваш "кузнец" (процессор) работает очень быстро и эффективно!
Этап 2: Проверка "шифровальной машины" в деле
Цель:
Узнать, как быстро ваш компьютер может шифровать настоящие данные (тексты, файлы) с разным уровнем надежности.
Теперь представьте, что у вас есть несколько моделей бумажных шредеров — от простого офисного до сверхсекретного для спецслужб.
Программа создает тестовый "документ" размером в 1 Мегабайт.
Затем она "пропускает" этот документ через разные "шредеры", замеряя скорость каждого:
Режим "Самый быстрый":
Как шредер, который режет бумагу на длинные полоски. Очень быстро, но не идеально надежно.
Режим "Сбалансированный":
Как хороший офисный шредер, режущий на мелкие квадратики.
Работает медленнее, но восстановить документ уже почти невозможно.
Режим "Максимальная защита":
Как шредер для спецслужб, который превращает бумагу практически в пыль.
Максимально надежно, но и медленнее всего.
За время теста программа поочередно тестирует скорость каждого из этих "режимов шифрования" и показывает вам результаты в таблице — сколько Мегабайт в секунду может обработать каждый "шредер".
Итог
Тест полностью безопасен и не отправляет никаких данных в интернет.
Его единственная задача — помочь вам найти идеальный баланс между комфортной скоростью работы и высочайшей надежностью именно на вашем компьютере.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
02.09.2025, 08:39
SpongeV16 — лучшее от лучших
В основе любого надёжного инструмента шифрования лежит его "сердце" — криптографический алгоритм.
В "Бастион V16" таким сердцем является SpongeV16.
Важно понимать: это не копирование известных шифров, а самостоятельный гибридный алгоритм.
Он был спроектирован, чтобы взять самые сильные и проверенные временем концепции из мировых стандартов криптографии, объединить их и дополнить собственными уникальными усилениями.
Давайте простыми словами разберём, из чего состоит этот мощный "движок" защиты.
1. Архитектура, вдохновлённая SHA-3 (Keccak)
Представьте себе кухонную губку: она впитывает воду, а затем её можно отжать.
На этом простом, но гениальном принципе построен один из самых современных стандартов безопасности в мире — SHA-3 (Keccak).
SpongeV16 использует ту же архитектуру "криптографической губки".
Когда вы шифруете данные, алгоритм, как губка, "впитывает" ваш пароль и текст, смешивая их внутри своего секретного состояния.
После того как все данные впитаны и перемешаны, он начинает "отжимать" результат — уникальный и непредсказуемый поток байт, который и является вашим зашифрованным текстом.
Эта архитектура признана мировым сообществом как одна из самых надёжных и гибких, обеспечивая прочный фундамент для всего процесса шифрования.
2. Двигатель перемешивания, вдохновлённый ChaCha20 и Salsa20
Если архитектура — это каркас, то "двигатель", который всё перемешивает, построен на идеях чемпионов скорости и безопасности — потоковых шифров Salsa20 и его преемника ChaCha20.
Эти алгоритмы настолько хороши, что используются для защиты интернет-соединений по всему миру (включая Google и стандарт TLS 1.3).
Их главный козырь — хаотичное и невероятно быстрое перемешивание данных с помощью всего трёх простых операций: сложение, сдвиг и XOR (ARX).
Представьте бармена, который с молниеносной скоростью взбивает коктейль в шейкере.
Он трясёт, переворачивает и снова трясёт — SpongeV16 делает то же самое с вашими данными десятки раундов, превращая их в абсолютно непредсказуемую смесь.
Это гарантирует, что даже малейшее изменение в пароле или тексте полностью меняет весь зашифрованный результат, делая восстановление данных без ключа невозможным.
3. Собственный характер: что делает SpongeV16 уникальным
SpongeV16 — это не просто сумма чужих идей.
Алгоритм включает в себя фирменные "секретные ингредиенты", которые делают его по-настоящему особенным:
Уникальный слой смешивания:
В конце каждого раунда "взбивания" SpongeV16 применяет собственный слой нелинейного смешивания.
Это как если бы наш бармен, помимо стандартной тряски, использовал особый приём, известный только ему.
Собственные константы:
Чтобы сделать каждый раунд перемешивания уникальным и предотвратить любые математические "уязвимости", используются встроенные константы.
В SpongeV16 они свои, что делает внутреннюю работу алгоритма непохожей на другие.
Эти уникальные доработки означают, что злоумышленник не может атаковать "Бастион V16" стандартными инструментами, рассчитанными на известные шифры.
У SpongeV16 свой собственный, усиленный характер.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
02.09.2025, 12:32
Улучшения интерфейса
Текстовая кнопка "Найти" заменена на иконку "
".
Добавлена кнопка "
" (Тест производительности),
которая позволяет запустить проверку скорости работы алгоритма шифрования.
Добавлена кнопка "
" (Интеграция),
которая управляет добавлением/удалением программы в контекстное меню Windows и ассоциацией с файлами формата .v16.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
03.09.2025, 17:36
После завершения теста производительности в окне с результатами теперь доступна кнопка "Применить рекомендуемое".
Нажатие этой кнопки устанавливает в поле "Раунды" рассчитанное для оптимального баланса между скоростью и безопасностью (~1 секунда задержки).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
03.09.2025, 18:20
Устранено дублирование кода шифрования файлов
Теперь вся эта логика вынесена в единую новую функцию "DoEncryptFile".
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
04.09.2025, 11:11
Улучшения функции уничтожения файлов
Теперь программа позволяет удалять как отдельные файлы, так и целые папки со всем их содержимым.
Просто перетащите папку в окно программы, удерживая клавишу Ctrl.
Производительность функции уничтожения значительно улучшена за счёт оптимизации дисковых операций и обработки сообщений Windows, что предотвращает зависание интерфейса даже при работе с папками, содержащими тысячи файлов.
Размер буфера для перезаписи данных установлен в 1 МБ (const DWORD bufferSize = 1024 * 1024, что обеспечивает оптимальный баланс между скоростью и эффективностью при обработке как больших файлов (объёмом в гигабайты), так и папок с множеством мелких файлов.
Для пользователей, работающих с очень большими объёмами данных (например, файлами или папками размером более 100 ГБ), доступна возможность увеличения размера буфера (например, до 4 МБ) в исходном коде программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
04.09.2025, 16:53
Внедрен адаптивный буфер для функции уничтожения файлов
Маленькие файлы (до 1 МБ):
Буфер создается точно по размеру файла, это экономит ресурсы при работе с тысячами мелких файлов.
Средние файлы (от 1 МБ до 256 МБ):
Используется буфер размером 1 МБ, который является оптимальным для большинства стандартных файлов.
Крупные файлы (свыше 256 МБ):
Размер буфера увеличивается до 4 МБ.
Это позволяет сократить количество системных вызовов и может дополнительно ускорить процесс уничтожения очень больших данных, таких как видеоархивы или образы дисков.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
04.09.2025, 21:00
"Раунды губки"
В настройках шифрования вы можете заметить параметр "Раунды губки", который можно установить в диапазоне от 24 до 80.
Что это такое и почему даже минимальное значение 24 обеспечивает безопасность уровня крепости?
Давайте разберемся.
Что такое "губка" и её раунды
Представьте, что криптографический алгоритм — это высокоскоростной блендер, а ваши данные — это ингредиенты.
Задача блендера — перемешать всё до абсолютно однородного состояния, чтобы никто не смог восстановить исходные компоненты.
"Раунды губки" — это количество циклов перемешивания, которые совершает этот "блендер".
Чем больше раундов, тем более хаотичным и необратимым становится результат.
Почему 24 раунда — это уже огромный запас прочности
Многих может смутить, что 24 — это минимальное значение.
Не мало ли это для надежной защиты?
Нет, это не просто много, а невероятно много с точки зрения криптографии.
В этой науке есть ключевое понятие — "лавинный эффект".
Оно означает, что изменение всего одного-единственного бита во входных данных (например, одной буквы в вашем тексте) должно вызывать полную, лавинообразную и непредсказуемую перестройку всего зашифрованного результата.
Если лавинный эффект сильный и быстрый, взломать шифр становится практически невозможно.
Практический тест, проведенный на C++, наглядно демонстрирует, насколько быстро это происходит в SpongeV16:
--- РАУНД 1 ---
Отличающихся слов: 16 / 16
Отличающихся битов: 275 / 512 (53.71%)
--- РАУНД 2 ---
Отличающихся слов: 16 / 16
Отличающихся битов: 259 / 512 (50.59%)
--- РАУНД 3 ---
16 / 16, 259 / 512 (50.59%)
--- РАУНД 4 ---
16 / 16, 259 / 512 (50.59%)
--- РАУНД 5 ---
16 / 16, 266 / 512 (51.95%)
--- РАУНД 6 ---
16 / 16, 243 / 512 (47.46%)
--- РАУНД 7 ---
16 / 16, 251 / 512 (49.02%)
--- РАУНД 8 ---
16 / 16, 241 / 512 (47.07%)
--- РАУНД 9 ---
16 / 16, 271 / 512 (52.93%)
--- РАУНД 10 ---
16 / 16, 269 / 512 (52.54%)
Что это значит простыми словами
Уже после первого раунда изменение одного бита вызвало изменения во всех 16 "узлах" внутреннего механизма шифрования.
Лавина сошла мгновенно.
После второго раунда примерно половина всех битов в результате изменилась.
Это идеальный показатель, который говорит о том, что система достигла состояния полного "хаоса", и результат стал неотличим от случайного набора данных.
Зачем тогда нужно 24 раунда, если хватает двух
Это самый важный принцип построения надёжной криптографии — запас прочности.
Вот как он выглядит на практике:
Фундамент (1-2 раунда):
Этого достаточно, чтобы запустить идеальный лавинный эффект.
Защита от известных атак (~12-16 раундов):
Этого количества уже более чем достаточно, чтобы противостоять всем известным на сегодня методам криптоанализа.
Запас прочности на будущее (24 раунда):
Это эталонное значение, которое используется в мировом стандарте SHA-3 (Keccak).
Оно рассчитано на то, чтобы противостоять не только существующим, но и будущим, еще не изобретенным видам атак и колоссальному росту вычислительных мощностей.
Даже используя минимальное значение в 24 раунда, вы выбираете режим с огромным запасом прочности, который соответствует лучшим мировым стандартам безопасности.
Несмотря на всю мощь "губки", истинная прочность вашей защиты всегда начинается с пароля
Надежный и длинный пароль — это ваш главный ключ от крепости.
Даже самые толстые стены бесполезны, если ключ можно легко подобрать.
Используйте генератор паролей для создания случайных и длинных комбинаций.
Раунды KDF (поле "Раунды") — это время, которое "стража" тратит на проверку вашего ключа.
Большое количество раундов делает невозможным быстрый перебор паролей (брутфорс), даже если у злоумышленника будет ваш зашифрованный файл.
Раунды губки — это сложность и хаотичность внутренних механизмов замка.
Как мы выяснили, даже минимального значения в 24 раунда более чем достаточно для создания криптографически стойкого "хаоса".
Вывод
Только сочетание всех трех компонентов — надежного пароля, достаточного количества раундов KDF и мощного алгоритма губки — создает многоуровневую и чрезвычайно надежную защиту.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.09.2025, 11:55
Шифрование папок
Вместо логически сложного группового шифрования и расшифровки файлов была добавлена более простая функция — шифрование папок.
Соберите все необходимые файлы и подпапки в одну общую папку.
Перетащите эту папку на значок программы "Бастион V16" или прямо в её открытое окно и введите пароль для шифрования.
Программа автоматически упакует всё содержимое папки в единый зашифрованный файл.
Чтобы расшифровать папку, перетащите зашифрованный файл (например, Мои документы.v16) на значок программы или в её окно.
Он будет автоматически расшифрован в папку с тем же названием (Мои документы) после ввода пароля.
Если хотите сохранить расшифрованную папку под другим названием или в другом месте, зажмите клавишу Alt и перетащите зашифрованный файл в окно программы.
После ввода пароля появится диалог выбора папки.
Удалены информационные сообщения, информирующие об успешном уничтожении файлов.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.09.2025, 17:42
Оптимизация производительности SpongeV16::absorb для больших файлов
В этом обновлении была проведена ключевая оптимизация функции SpongeV16::absorb, которая отвечает за "впитывание" данных в криптографическую губку.
Это изменение кардинально повышает скорость шифрования и расшифровки файлов большого размера.
Ранее, при обработке данных, функция последовательно удаляла каждый обработанный блок из начала внутреннего буфера (std::vector).
Такая операция (erase в начале вектора) крайне затратна, так как при каждом вызове она сдвигает все последующие данные в памяти.
Для больших файлов это создавало эффект "снежного кома", приводя к квадратичной зависимости времени выполнения от размера данных и вызывая серьезные "тормоза".
Теперь этот процесс был переработан
Вместо физического удаления блоков в цикле используется легковесный индекс, который просто указывает на начало следующего блока.
После того как все возможные полные блоки в буфере обработаны, вся использованная часть данных удаляется одним-единственным вызовом, что является гораздо более эффективной операцией.
Это изменение не затрагивает криптографическую логику — алгоритм производит абсолютно те же вычисления и генерирует идентичный результат.
Безопасность и надежность шифрования остались на прежнем высочайшем уровне, а обратная совместимость со старыми файлами полностью сохранена.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.09.2025, 20:54
Исправлена критическая ошибка при работе с большими файлами
В предыдущей версии программы возникала ошибка при попытке расшифровать файлы, размер которых после шифрования превышал ~70 МБ.
Программа некорректно сообщала, что "данные повреждены", хотя на самом деле файл был зашифрован корректно.
Ошибка была вызвана внутренним ограничением на максимальный размер обрабатываемых данных.
При шифровании больших файлов, итоговый зашифрованный текст превышал лимит, что приводило к сбою на этапе расшифровки.
Лимит на размер обрабатываемых данных был увеличен до 1 ГБ.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
06.09.2025, 16:15
Горячие клавиши "Бастион V16"
Работа с текстом
Ctrl + AВыделить весь текст в активном поле
Ctrl + CКопировать выделенный текст в буфер обмена
Ctrl + XВырезать выделенный текст и поместить в буфер обмена
Ctrl + VВставить текст из буфера обмена
Ctrl + ZОтменить последнее действие в текстовом поле
Ctrl + YВозвратить отменённое действие
DeleteУдалить выделенный текст
Основные функции
Ctrl + EnterШифровать
Ctrl + Shift + EnterРасшифровать
Ctrl + GСгенерировать пароль
Ctrl + FНайти и заменить
Ctrl + Shift + WОчистить текстовое поле и поля пароля
Ctrl + Shift + SОтправить зашифрованный текст по почте
Работа с файлами
Ctrl + OОткрыть текстовый (.txt) файл
Ctrl + SСохранить содержимое в текущий файл или открывает диалог "Сохранить как..."
Дополнительные возможности
Alt + QПоказать QR-код из текста в основном поле
Alt + BТест производительности
Alt + MВключить/отключить интеграцию с Windows (контекстное меню, ассоциация файлов .v16)
Работа с файлами через Drag & Drop (Перетаскивание)
Перетаскивание на значок или в окно программы
Шифрует или расшифровывает файл/папку с сохранением результата рядом с оригиналом
Ctrl + Перетаскивание
Безвозвратно уничтожает перетаскиваемый файл или папку
Alt + Перетаскивание
Расшифровывает файл или папку с возможностью выбрать новое имя или место для сохранения
Если текущие комбинации клавиш кажутся вам не самыми эргономичными или у вас есть идеи, как их можно улучшить, пожалуйста, предложите свои варианты
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
06.09.2025, 17:46
Улучшена интеграция с системой (Alt + M или кнопкой с иконкой
)
Теперь пункт "Отправить в Бастион V16" появляется в контекстном меню при нажатии правой кнопкой мыши не только для файлов, но и для папок.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
07.09.2025, 09:33
Переход на режим Duplex AEAD
Предыдущая надежная схема "Encrypt-then-MAC" (Шифрование, затем Аутентификация) заменена на более совершенный однопроходный режим Duplex.
Этот подход, являющийся золотым стандартом для алгоритмов на основе криптографической губки, выполняет шифрование и проверку подлинности данных одновременно.
Вместо двух отдельных операций (сначала зашифровать, потом проверить) весь процесс происходит за один проход, что значительно повышает производительность без компромиссов в безопасности.
Укрепление безопасности и соответствие стандартам
Режим Duplex не только быстрее, но и приводит архитектуру "Бастиона" в соответствие с передовыми отраслевыми стандартами.
Этот же принцип лежит в основе Ascon — алгоритма, который был выбран Национальным институтом стандартов и технологий США (NIST) в качестве нового мирового стандарта легковесной криптографии.
Duplex обеспечивает надежное разделение доменов (domain separation).
Это означает, что ключ, ассоциированные данные (AD) и сам текст криптографически изолированы друг от друга в рамках единого состояния, что делает систему устойчивой к широкому классу атак.
Новая реализация стала быстрее, элегантнее и еще более теоретически обоснованной с точки зрения современной криптографии, сохранив при этом фундаментальную надежность оригинального алгоритма.
Оптимизация формата шифрования для файлов и папок
Для повышения эффективности все файлы (за исключением .txt) и папки, перетаскиваемые в программу или открываемые через контекстное меню, теперь шифруются в чистом бинарном формате.
Промежуточный шаг кодирования в Base64 для них был устранён.
В результате этого изменения возросла скорость шифрования и расшифровки файлов и папок.
Операции с большими объёмами данных теперь выполняются заметно быстрее, так как процессор больше не тратит время на преобразование данных в текстовый формат Base64 и обратно.
Зашифрованные файлы и папки теперь занимают меньше места на диске (примерно на 25-30% меньше), так как избыточность, создаваемая кодировкой Base64, была полностью исключена.
Важное примечание
Шифрование текста, вставленного непосредственно в окно программы, по-прежнему использует Base64.
Это сделано для того, чтобы зашифрованный текст можно было легко копировать, вставлять и передавать через любые текстовые каналы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
07.09.2025, 09:55
Переписка в любых мессенджерах абсолютно прозрачна для представителей спецслужб, заявил ТАСС Песков в интервью на ВЭФ.
guidesoul
07.09.2025, 21:00
Режим "Сохранить как..." при шифровании с зажатой клавишей Alt
Зажмите клавишу Alt и перетащите файл или папку в окно программы.
После ввода пароля для шифрования появится окно "Сохранить как...".
Есть несколько сценариев
1. Стандартное сохранение:
Программа предложит название по умолчанию, и ваш файл или папка будут сохранены с корректным расширением .v16 (например, Документ.doc.v16 или СекретнаяПапка.v16).
Просто нажмите "Сохранить".
2. Маскировка данных:
В окне сохранения вы можете изменить название и расширение на любое другое.
Например, можно сохранить зашифрованный контейнер (неважно, был это файл или папка) как System32.dll, семейное_фото.jpg или просто notes без расширения.
Это позволяет скрыть сам факт наличия зашифрованных данных.
"Бастион" при открытии проанализирует содержимое и сам поймет, что его нужно расшифровать, независимо от названия.
3. Перезапись исходного файла:
Если хотите заменить оригинальный файл его зашифрованной версией, просто выберите этот исходный файл в окне "Сохранить как...".
Это удобный способ быстро защитить файл на его же месте.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.09.2025, 07:28
В какие форматы лучше всего маскировать зашифрованные файлы
Главный принцип — правдоподобное отрицание.
Зашифрованный файл не должен вызывать вопросов: ни его расширение, ни размер, ни содержимое не должны выглядеть аномальными.
Он должен органично вписываться в папку хранения, как будто создан самой программой или системой.
Подходящие форматы
1. "Бесформенные" (универсальные, без строгой структуры)
Эти расширения позволяют любые данные — бинарные, случайные или большие.
Они не привлекают внимания, так как ассоциированы с системными или промежуточными файлами.
.dat (Data File): Универсальный вариант.
Может содержать что угодно — от баз данных до бинарных дампов.
Идеален для папок приложений.
.tmp (Temporary File): Временный "мусор" — бинарные данные выглядят естественно.
.bak (Backup File): Резервная копия любого формата и размера.
Подходит для больших файлов в папках бэкапов.
.cache (Cache File): Кэш часто бинарный, случайный и объемный.
Не вызывает подозрений в кэш-папках браузеров или ПО.
Пример
session.dat в папке настроек приложения (например, %AppData%\YourApp) или user_cache.cache в каталоге кэша (например, браузерный кэш).
2. "Специфичные для ПО" (требуют специализированного просмотра)
Эти форматы привязаны к приложениям, где содержимое бинарное и непрозрачное без соответствующего ПО.
Идеальны, если у вас установлена такая программа.
.sav / .save: Сохранения игр — всегда бинарные, с уникальной структурой.
Размер варьируется, никто не откроет без игры.
.pak / .res / .asset: Игровые ресурсы (текстуры, звуки, модели).
Большие бинарные контейнеры, ассоциированные с движками вроде Unity/Unreal.
.proj / .blend: Файлы проектов в графических/3D-программах (например, Blender для .blend).
Выглядят органично в папках проектов.
Пример
slot1.sav в папке сохранений игры (обычно Documents\My Games или AppData).
Для разработчиков — project_backup.proj в папке с кодом или активами.
Главное правило: файл должен быть естественным для своего расположения.
Правильная маскировка — это эффективный способ минимизировать риски обнаружения, но важно помнить, что она не защищает от целенаправленного криминалистического анализа (например, анализа энтропии файла).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.09.2025, 12:58
Шифрование текста в PNG (Стеганография)
Теперь можно зашифровать текст и скрыть его непосредственно в пикселях PNG-изображения.
Для постороннего наблюдателя это будет выглядеть как обычная картинка, но "Бастион" сможет извлечь и расшифровать спрятанное сообщение.
Программа автоматически определяет, нужно ли встроить шифр в "чистое" изображение или извлечь его из уже содержащего данные.
Как зашифровать и спрятать текст в PNG-изображении
Запустите "Бастион V16" и укажите желаемое количество раундов KDF в поле "Раунды", раундов пермутации "Губки" и значение "Рэйт".
Эти настройки будут использованы для шифрования и сохранены внутри самого изображения для корректной расшифровки в будущем.
Рекомендуется сразу ввести и подтвердить пароль в полях ввода в верхней части окна.
Если вы пропустите этот шаг, программа все равно запросит пароль позже в отдельном диалоговом окне.
В главное текстовое поле введите или вставьте сообщение, которое хотите зашифровать.
Перетащите PNG-изображение на окно программы "Бастион".
Программа последовательно задаст вам два вопроса
Сначала может появиться стандартное сообщение:
"Есть несохраненные изменения. Сохранить их перед открытием нового файла?".
Это происходит потому, что вы ввели новый текст.
Нажмите "Нет".
Сразу после этого появится вопрос:
"Хотите зашифровать текущий текст в изображении [имя файла.png]?".
Нажмите "Да".
Ваш текст будет зашифрован с указанными параметрами и паролем, а затем внедрен в пиксели PNG-изображения.
Исходный файл изображения на вашем диске будет перезаписан новой версией, содержащей скрытые данные.
Как расшифровать текст из PNG-изображения
Перетащите PNG-файл, содержащий скрытое сообщение, на значок или окно программы.
Программа автоматически определит наличие шифра и запросит пароль для расшифровки.
Введите пароль, и если он верный, расшифрованный текст появится в главном окне.
Разное
Устранен дублирующийся код в функциях для работы с реестром.
Шесть функций для управления интеграцией с контекстным меню (для файлов и папок) были объединены в три универсальные функции.
В диалоговой процедуре BenchWaitDlgProc был удален обработчик сообщения WM_COMMAND.
Этот блок кода был недостижим, так как соответствующее диалоговое окно не содержит элементов управления (кнопок), способных генерировать данное сообщение.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.09.2025, 18:01
Улучшена проверка емкости PNG-изображений перед шифрованием
Алгоритм расчета доступного места был полностью переработан для абсолютно точного определения емкости файла, что гарантирует стабильную работу.
В случае нехватки места в изображении программа теперь выводит одно, но более информативное сообщение, в котором указан требуемый и доступный объем данных.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.09.2025, 18:58
Устранено ограничение на объем вставляемого текста
При вставке в основное текстовое поле большого объема данных (более 64 КБ, что составляло примерно 1700 строк кода), текст обрезался.
Лимит на максимальный объем текста в поле ввода был снят.
Это исправлено путем замены устаревшей команды EM_SETLIMITTEXT на EM_EXLIMITTEXT, что позволяет приложению корректно обрабатывать тексты практически неограниченного размера.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.09.2025, 09:40
Оптимизация криптографического ядра "SpongeV16"
Проведено комплексное улучшение производительности основного криптографического модуля, что привело к заметному ускорению всех операций шифрования и расшифровки.
Внутреннее состояние шифра теперь хранится в std::array вместо std::vector.
Это исключает медленные операции выделения памяти в куче (heap allocation) при каждом создании объекта и улучшает локальность данных, что делает работу процессорного кэша более эффективной.
Тесты показывают прирост скорости только от этого изменения примерно на 3-4%.
Ручное преобразование байтов в 32-битные слова заменено на современную комбинацию memcpy и std::byteswap (C++23).
Это позволяет компилятору использовать высокопроизводительные специализированные инструкции процессора (bswap), дополнительно ускоряя обработку данных.
Эффективное управление памятью
Кардинально пересмотрен подход к работе с памятью, что делает программу более отзывчивой и способной обрабатывать файлы практически любого размера.
Процесс шифрования теперь обрабатывает данные небольшими блоками ("потоком"), а не загружает в память промежуточный ключ (keystream) размером со весь файл.
Это кардинально снижает пиковое потребление оперативной памяти при работе с большими файлами и текстами (десятки и сотни мегабайт).
Ключевые функции были переписаны для работы с существующими буферами памяти через std::span вместо постоянного создания и возврата новых векторов.
Это значительно сокращает количество медленных операций выделения памяти и уменьшает её фрагментацию при длительной работе.
Качество кода и рефакторинг
Низкоуровневые reinterpret_cast при работе с файлом настроек заменены на современный и безопасный std::bit_cast (C++20), что повышает надежность кода.
Некоторые функции, принимавшие ранее std::vector, теперь используют std::span, что делает их более гибкими и эффективными.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.09.2025, 17:27
Функции кодирования и декодирования Base64 (base64_encode, base64_decode) были полностью переписаны.
Устранены ручные манипуляции с индексами и циклами while, которые могли приводить к ошибкам.
Новая реализация использует современный подход с std::span и циклами for с фиксированным шагом.
Это делает код более читаемым, безопасным и декларативным, так как логика обработки порций данных ("чанков") становится очевидной.
В функции потокового шифрования (stream_cipher_process_V16) стандартный цикл for, выполняющий операцию XOR, был заменен на более современный алгоритм std::ranges::transform.
Тестирование показало, что производительность осталась на прежнем уровне, в пределах статистической погрешности.
Это подтверждает, что исходный цикл for уже был скомпилирован максимально эффективно, и скорость операции была ограничена пропускной способностью памяти, а не самими вычислениями.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.09.2025, 22:02
Улучшение точности теста производительности
В тест производительности добавлен обязательный этап "прогрева" для получения более точных и стабильных результатов.
Теперь каждый отдельный замер предваряется короткой подготовительной операцией, которая не учитывается в итоговом времени.
Тест создания ключа (KDF):
Перед основным тестом выполняется предварительный расчет на 10% от заданного числа раундов.
Тест скорости шифрования:
Перед замером скорости для каждой конфигурации (например, "Самый быстрый", "Надежный" и т.д.) выполняется тестовое шифрование небольшого блока данных (128 КБ).
Зачем это нужно
Современные процессоры в целях энергосбережения не работают постоянно на максимальной частоте.
"Прогрев" заставляет процессор выйти на пиковую и стабильную производительность перед началом замера.
Во время прогрева инструкции и данные, необходимые для вычислений, загружаются в быструю кэш-память процессора.
Это исключает "холодный старт", когда первые операции выполняются медленнее из-за ожидания данных из основной памяти.
В результате итоговые цифры становятся более точными и стабильными, так как они отражают реальную производительность вашего ПК в устоявшемся режиме интенсивной работы, а не случайные флуктуации при старте.
Как запустить тест
С помощью горячих клавиш Alt + B.
Нажав на кнопку со значком секундомера (
) в главном окне программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
10.09.2025, 08:54
Повышение производительности функции создания ключа (KDF)
Проведена оптимизация криптографического ядра для ускорения процесса создания ключа из пароля.
Это особенно заметно при использовании большого количества раундов KDF, что повышает комфорт при работе с высокими настройками безопасности.
Что было сделано
В наиболее нагруженном цикле функции создания ключа было устранено создание временного массива для счетчика на каждой итерации.
За счет использования современных возможностей C++23 (std::byteswap) и более прямого доступа к памяти удалось значительно снизить накладные расходы.
Криптографические константы были объявлены как constexpr.
Это позволяет компилятору на этапе сборки программы встраивать их значения напрямую в код, что открывает возможности для более агрессивных и эффективных оптимизаций.
Тесты показывают, что производительность функции формирования ключа (KDF) увеличилась примерно на 9%.
Это напрямую ускоряет запуск операций шифрования и расшифровки.
Скорость непосредственно самого шифрования данных (после того, как ключ создан) осталась на прежнем высоком уровне.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
10.09.2025, 15:12
Полностью переработан и значительно ускорен основной модуль аутентифицированного шифрования DuplexAEAD.
Вместо медленной побайтовой обработки данных теперь используется высокоэффективная пословная обработка (word-by-word), аналогичная той, что применяется в криптографической губке SpongeV16.
Это изменение дало наибольший прирост производительности и напрямую влияет на скорость шифрования и расшифровки больших объемов текста и файлов.
Оптимизирована функция base64_encode, отвечающая за преобразование зашифрованных бинарных данных в текст.
Устранены лишние накладные расходы в основном цикле обработки данных, что ускорило операцию кодирования.
Хотя это изменение менее масштабно, чем оптимизация AEAD, оно вносит свой вклад в общее повышение скорости работы программы, особенно при шифровании текста.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
10.09.2025, 19:22
Перетаскивание текста (Drag and Drop)
Теперь можно выделить текст в браузере и перетащить мышью в окно программы для шифрования или расшифровки.
Выделенный в Бастионе текст (например, результат шифрования) можно перетащить обратно в браузер.
Возможно, функция будет работать и с другими приложениями, поддерживающими ввод текста (например, десктопной версией Telegram).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
10.09.2025, 22:23
Шифрование/расшифровка буфера обмена
Реализована функция для шифрования и расшифровки текста, находящегося в буфере обмена, с помощью горячих клавиш.
Шифрование: Ctrl + Alt + Enter
Расшифровка: Shift + Alt + Enter
Перед использованием горячих клавиш необходимо ввести пароль в соответствующее поле в главном окне программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
11.09.2025, 09:31
Сворачивание в системный трей
1. Зажмите клавишу "Alt" на клавиатуре.
2. Нажмите на стандартную кнопку сворачивания окна ( _ ) в заголовке программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
11.09.2025, 09:59
Шифрование "на лету" с помощью трея и горячих клавиш
Запустите "Бастион" и введите пароль в соответствующее поле.
Сверните программу в трей, нажав на кнопку сворачивания окна, удерживая клавишу Alt.
Напишите текст в любом приложении (мессенджер, браузер, блокнот).
Выделите и скопируйте в буфер Ctrl + C.
Нажмите горячие клавиши Ctrl + Alt + Enter.
"Бастион" заменит текст в буфере обмена на зашифрованный.
Вставьте результат Ctrl + V куда нужно.
Процесс расшифровки так же прост:
скопируйте Ctrl + C зашифрованный текст и нажмите Shift + Alt + Enter.
guidesoul
12.09.2025, 14:18
Операция "Чужой среди своих"
Теперь "Бастион" может не просто шифровать, а внедрять файлы и папки в файловую систему под видом безобидных системных компонентов.
Ваш зашифрованный контейнер становится "агентом под прикрытием", практически неотличимым от своего окружения.
Как это работает
При активации операции "Бастион" сканирует некритичные папки программ (Program Files, ProgramData, AppData), анализируя десятки потенциальных "укрытий" на предмет их неприметности.
Генерируется имя, имитирующее "соседние" файлы.
Копируется доминирующее расширение файла в этой папке (.dat, .bin, .cfg и т.д.).
Подделывается временная метка (дата создания/изменения), чтобы агент не выделялся на фоне "старожилов".
Алгоритм поиска использует элемент случайности, собирая большой список подходящих кандидатов и выбирая из них один случайным образом для каждого внедрения.
"Бастион" не ведет журнал и не хранит никаких записей о местоположении ваших "агентов".
Это обеспечивает максимальную безопасность, но требует от вас ответственности.
Используйте на свой страх и риск
Надежность маскировки агента напрямую зависит от его "легенды" — папки, в которую он внедрен.
Если эта папка будет удалена или изменена, ваш агент будет безвозвратно утерян.
Программы для очистки системы ("твикеры", "клинеры") могут посчитать папку с агентом "мусором" и удалить ее.
Вы можете случайно удалить папку сами, забыв, что в ней находится внедренный агент.
Эта функция предоставляет уникальный уровень скрытности, но требует от пользователя понимания рисков и осознанного выбора места для хранения пути к агенту.
Как использовать
Зажмите клавишу Shift и, не отпуская ее, перетащите файл или папку в окно "Бастиона", после чего введите пароль.
"Бастион" проведет операцию и предоставит вам "координаты" — полный путь к внедренному агенту.
Этот путь будет скопирован в буфер обмена, сохраните его в надежном месте до закрытия программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.09.2025, 18:45
Операция "Чужие среди своих"
Главным риском при использовании агентов была уязвимость единственной точки отказа.
Случайное удаление папки-укрытия системной утилитой или самим пользователем приводило к безвозвратной потере зашифрованных данных.
Чтобы решить эту проблему, реализован новый протокол внедрения, который повышает живучесть ваших секретов.
Групповое внедрение (3 агента)
При активации нового режима программа находит три независимых и подходящих укрытия в разных частях системы и размещает в каждом по одной замаскированной копии вашего файла.
Вероятность одновременного случайного уничтожения всех трех агентов крайне мала.
Для внедрения одного агента, как и раньше, используйте Shift + Перетаскивание.
Для активации группового внедрения используйте новую комбинацию Ctrl + Shift + Перетаскивание.
После успешной операции вы получите полный список координат всех внедренных агентов.
Ваша задача — сохранить этот список, так как при закрытии программы буфер обмена будет очищен.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.09.2025, 22:21
Агент 007
Теперь можно задать численность группы внедрения.
При активации протокола (Ctrl + Shift + Перетаскивание) появится запрос на количество агентов для развертывания (от 2 до 7).
Это нововведение повышает живучесть агентов, распределяя их по разным локациям и снижая риск одновременной потери.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
13.09.2025, 07:23
Улучшение маскировки
Программа распознает числовые и календарные последовательности в именах.
Если она обнаруживает серию файлов, названных по дате (например, backup_2025-09-12.zip), она создаст новый файл, продолжающий эту логику (например, backup_2025-09-13.zip).
Это также работает для порядковых номеров (archive_005.dat -> archive_006.dat).
Устранено дублирование кода
Вся общая логика по подготовке, шифрованию данных и поиску мест для внедрения была вынесена в новую универсальную функцию PlaceGhostAgents.
Функции DoCreateGhostFile и DoCreateMultipleGhostFiles были преобразованы в простые однострочные "обертки", которые вызывают PlaceGhostAgents с нужным количеством агентов.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Круто, удачи в разработке!
guidesoul
13.09.2025, 08:52
Изменена стратегия именования файлов
Ключевая логика функции была переработана для повышения безопасности и предотвращения случайной перезаписи данных.
Теперь программа находит самый ранний файл в последовательности и создает новый файл с датой или порядковым номером на единицу меньше.
Внедрена дополнительная проверка, которая не позволяет программе создать файл, если имя уже занято.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guserka, большое спасибо!
guidesoul
13.09.2025, 14:58
Сокращена глубина рекурсивного поиска папок (с 6 до 3 уровней).
Это ускоряет процесс подготовки к внедрению и снижает нагрузку на систему.
При необходимости глубину поиска можно изменить в исходном коде, отредактировав значение в строке: if (depth > 3) return;
Добавлена интеллектуальная логика прекращения поиска в директориях, которые уже содержат достаточное количество файлов (>20).
Это позволяет алгоритму быстрее находить качественные локации, не углубляясь в избыточные и потенциально временные подпапки.
Проведён рефакторинг функции load_settings, отвечающей за чтение файла settings.dat.
Устранён сложный и повторяющийся код, который вручную обрабатывал каждую старую версию файла настроек.
Новый механизм стал более универсальным и компактным.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
13.09.2025, 22:21
Восстановлена логика имеющихся функций, а также:
Исправлена логическая ошибка, из-за которой программа неверно обрабатывала зашифрованные бинарные файлы, если они имели расширение .png.
Если пользователь создавал бинарный зашифрованный файл (который внутри начинается с маркера B16B), но давал ему имя с расширением .png (например, для маскировки), программа не могла его расшифровать.
При попытке открыть такой файл (любым способом), "Бастион" ошибочно считал его обычным изображением-контейнером и предлагал зашифровать его заново, вместо того чтобы расшифровать.
Логика программы отдавала приоритет расширению файла, а не его фактическому содержимому.
Увидев .png, программа переключалась в режим работы со стеганографией и больше не проверяла, является ли этот файл стандартным бинарным шифром.
Внесенные изменения улучшают логику работы с файлами, делая программу более надежной и интуитивно понятной.
Теперь "Бастион" в первую очередь проверяет содержимое файла на наличие бинарного маркера (B16B).
Если маркер найден, файл будет отправлен на расшифровку, независимо от его имени или расширения.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Если заметите какие-то недоработки/баги, пожалуйста, сообщите.
guidesoul
14.09.2025, 13:00
Операция "Призрак"
Раньше все бинарные файлы (.v16, архивы папок), созданные "Бастионом", имели общие черты, по которым их теоретически можно было отследить.
Теперь каждый файл маскируется индивидуально, становясь "призраком" в файловой системе.
Что было сделано
Программа больше не использует статический, одинаковый для всех файлов маркер (B16B).
Вместо этого для каждого нового бинарного шифра генерируется уникальный 4-байтовый заголовок на основе его криптографической соли и nonce.
Это устраняет единый "цифровой отпечаток".
Теперь зашифрованные файлы невозможно найти простым поиском по содержимому диска (сигнатурным анализом), так как у них нет общей, повторяющейся части.
Каждый файл выглядит как случайный набор данных с самого первого байта.
Перед шифрованием к исходным данным (файла или архива папки) добавляется небольшой блок случайных байт разного размера.
Теперь, даже если вы зашифруете один и тот же файл дважды, итоговые .v16 контейнеры будут иметь разный размер и разное содержимое.
Благодаря этим двум изменениям, любой зашифрованный файл или папка теперь полностью уникальны.
Два шифра, созданные из одного и того же источника, будут абсолютно разными как снаружи (размер, заголовок), так и внутри.
Вычислить, что они созданы одной программой и содержат одинаковую информацию, становится на порядок сложнее.
Эта технология особенно усиливает эффективность функции "Чужой среди своих", делая внедренных агентов практически неразличимыми.
Важное уточнение
Эти улучшения касаются всех бинарных форматов, которые создает программа (шифрование файлов, папок, внедрение агентов).
Шифрование простого текста в окне программы (которое затем копируется как Base64) не использует этот механизм, так как его задача — маскировка под обычный текст, а не под бинарный файл.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Если заметите какие-то недоработки/баги, пожалуйста, сообщите.
guidesoul
14.09.2025, 17:29
Переработан режим "Маска"
Чекбокс "Маска" перестал быть опцией только для текстовых сообщений и был преобразован в глобальный переключатель, определяющий один из двух фундаментальных режимов работы программы: "Стелс" или "Открытый".
1. Режим "Стелс" (Маска ВКЛЮЧЕНА)
Этот режим предназначен для ситуаций, когда необходимо не только зашифровать данные, но и скрыть сам факт шифрования.
При шифровании текста, к зашифрованным данным применяется двойное кодирование Base64.
Выходная строка не имеет характерных признаков Base64 и выглядит как случайный текстовый шум, что затрудняет анализ.
При шифровании файлов, папок или создании "агентов", вместо явного заголовка (B16B) используется динамический маркер, вычисляемый на основе соли и nonce.
Файл не имеет никаких опознавательных знаков "Бастиона".
2. Режим "Открытый" (Маска ВЫКЛЮЧЕНА)
Этот режим предназначен для шифрования, когда скрывать факт его использования не требуется.
Он удобен для создания личных архивов и обмена файлами, где получатель знает, что файл зашифрован.
При шифровании текста применяется стандартное одинарное кодирование Base64.
Выходная строка является классическим Base64-текстом, который легко распознается.
При шифровании файлов, папок или создании "агентов", зашифрованный файл сохраняется в бинарном формате с добавлением в самое начало статичного, хорошо видимого маркера B16B.
Любой зашифрованный файл можно мгновенно идентифицировать как файл "Бастиона", просто открыв его в текстовом или HEX-редакторе.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Если заметите какие-то недоработки/баги, пожалуйста, сообщите.
guidesoul
14.09.2025, 21:45
Более интеллектуальный поиск мест внедрения агентов
Теперь программа в первую очередь ищет подходящие места как можно ближе к корневым системным папкам ("не лезет сразу в дебри").
Поиск автоматически углубляется только в том случае, если на "поверхности" не удалось найти достаточное количество вариантов для маскировки.
Это делает процесс внедрения более быстрым, логичным и повышает качество маскировки.
Напоминание
Для внедрения одного агента, как и раньше, используйте Shift + Перетаскивание на окно программы.
Для активации группового внедрения используйте новую комбинацию Ctrl + Shift + Перетаскивание.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
15.09.2025, 09:15
Оптимизация кода
Функции DoEncryptFile и DoEncryptFolder были объединены в PerformEncryptionAndSave, что позволило устранить дублирование кода и унифицировать обработку файловых объектов.
Общая логика инициализации состояния (InitializeAeadState) была вынесена из функций Encrypt_AEAD_V16 и Decrypt_AEAD_V16, что обеспечивает симметричность операций и упрощает сопровождение кода.
Реализована общая функция generate_derived_data для централизованного создания криптографических маркеров и ключей, ранее генерировавшихся в отдельных функциях.
Скачать можно в облаках
disk.yandex.ru/d/pSxwq7mMhKsOwg
drive.google.com/drive/u/1/folders/1FLIugY9270Ct8ho9orWH3z2H08XYHi4R
guidesoul
15.09.2025, 22:10
Оптимизация производительности ядра шифрования
Критически важная часть криптографической функции (S-Box слой в пермутации SpongeV16) была переписана с использованием набора инструкций SSE (Streaming SIMD Extensions).
Это позволило векторизовать вычисления, обеспечив параллельную обработку данных и значительное ускорение всех криптографических операций.
Скорость создания ключа из пароля (KDF):
Производительность увеличена в среднем на 21%.
Скорость шифрования/расшифровки данных:
Пропускная способность возросла в среднем на 10%.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
16.09.2025, 14:23
Оптимизация производительности ядра шифрования для различных архитектур ЦП
После внедрения ручной 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
guidesoul
16.09.2025, 22:31
Интеграция с мессенджером 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
guidesoul
17.09.2025, 08:47
Новый формат распространения
Для обеспечения работы с Телеграм, "Бастион" теперь поставляется в виде архива.
Внутри, помимо самой программы, находятся файлы, необходимые для сетевого взаимодействия (curl.exe, libcurl-x64.dll, curl-ca-bundle.crt).
Для корректной работы Телеграм-функций эти файлы должны находиться рядом с "Бастионом".
Режим чата и пакетная расшифровка
Теперь "Бастион" не заменяет старое сообщение от Телеграм новым, а добавляет сверху, формируя ленту переписки.
Кнопка "Расшифровать" стала умнее
Теперь за один клик находит и расшифровывает все зашифрованные сообщения в поле ввода, к которым подходит текущий пароль.
Вы можете получать несколько шифров в разных сообщениях:
Передай дальше
mIzjNp/qhfT6RPidAlHchNrCvFjsWJGy4OJQaJgnvP7/Z2Ru0diKPcRyaodKN83n4bSxqHyqmklmqIrpTBCl
—
Сделай сегодня
mOyau70Y3duLIE/ZRvhe5ae7FbUWQ7BT8UcGF4NhYlEerUwJlpmnjxvVo6e+oIg/b5i9Xfvz+BQvkKvu
После ввода пароля и нажатия "Расшифровать" оба шифра будут расшифрованы.
Чтобы очистить все полученные сообщения (всю историю переписки) и написать новый ответ, нажмите средней кнопкой мыши по текстовому полю.
Появится запрос на подтверждение, и после нажатия "ОК" поле будет готово для ввода нового сообщения.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
17.09.2025, 10:46
Добавлено кратковременное уведомление "Ушло", которое появляется после успешной отправки сообщения в Телеграм для подтверждения доставки на сервер.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
17.09.2025, 18:29
Белый список User ID
В настройки интеграции с Телеграм добавлено поле: "Разрешенные User ID (белый список)".
Раньше, если кто-то посторонний узнавал имя вашего бота, он мог отправлять ему сообщения, которые попадали в ваш "Бастион".
Это создавало риски несанкционированного доступа и получения спама.
Теперь "Бастион" будет принимать и отображать сообщения только от тех пользователей, чей уникальный ID внесен в этот список.
Все сообщения от посторонних будут молча игнорироваться, превращая вашего бота в защищенный и приватный канал связи.
Как этим пользоваться
Попросите вашего собеседника его уникальный User ID.
Самый простой способ — написать боту @userinfobot, который в ответ пришлет ID.
Зайдите в Настройки -> Настройки Telegram в "Бастионе".
В поле "Разрешенные User ID (белый список)" введите полученный ID.
Если у вас несколько доверенных контактов, вводите их ID через запятую, без пробелов.
Пример: 12345678,87654321,99988877
Важно:
Если оставить это поле пустым, "Бастион" будет работать как раньше, принимая сообщения от любого пользователя.
Рекомендация по ведению переписки
При обмене зашифрованными сообщениями, особенно когда вы отправляете текст из "Бастиона" (и сообщение приходит в чат от имени бота), получатель не знает, кто именно из участников является автором.
Чтобы избежать путаницы, рекомендуется подписывать свои сообщения.
Это простое правило сделает общение гораздо более понятным.
Пример сообщения в окне "Бастиона" перед шифрованием:
Сегодня встречаемся возле кинотеатра в 19:00
Алекс Б
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
18.09.2025, 10:24
Добавлена кнопка "Проверить соединение" в окне настроек Telegram
Теперь можно проверить, правильно ли введен токен вашего бота и есть ли у программы доступ к серверам Telegram.
При нажатии на кнопку программа отправляет безопасный тестовый запрос (getMe) к API Telegram.
Вы получите уведомление об успехе или ошибке, что позволяет быстро диагностировать возможные проблемы (неверный токен, блокировка сети брандмауэром и т.д.), не дожидаясь отправки реального сообщения.
Благодаря новому парсеру, теперь поддерживается ввод списка ID с пробелами после запятых, что повышает удобство редактирования длинных списков.
Пример: 12345678, 87654321, 99988877
Рекомендуемый формат остаётся прежним (без пробелов): 12345678,87654321,99988877
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
18.09.2025, 18:04
В настройки Телеграм добавлена опция "Автоматически шифровать при отправке"
Основная цель этой функции — защита от человеческой ошибки.
В спешке или по невнимательности можно было случайно отправить важное сообщение в незашифрованном, открытом виде.
Как это работает
Зайдите в настройки (кнопка Телега или Alt+T) и установите флажок "Автоматически шифровать при отправке".
Если флажок установлен, "Бастион" при отправке выполнит шифрование, используя текущий введенный пароль (или запросит его, если поле пустое).
Таким образом, открытый текст никогда не покинет программу, гарантируя максимальную безопасность вашей переписки.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
18.09.2025, 22:06
В настройки Телеграм добавлена опция "Автоматически расшифровывать при получении"
Основная цель этой функции — сделать общение в зашифрованном чате таким же удобным, как и в обычном.
Вам больше не нужно вручную нажимать кнопку "Расшифровать" для каждого входящего сообщения, что значительно ускоряет диалог.
Как это работает
Зайдите в настройки (кнопка Телега или Alt + T) и установите флажок "Автоматически расшифровывать при получении".
Если флажок установлен, "Бастион" будет автоматически расшифровывать входящие сообщения при условии, что правильный пароль уже введён в соответствующее поле в главном окне.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
19.09.2025, 10:04
Отправка и приём файлов через Telegram
Теперь можно отправить файл перетаскиванием, а также принять файл, отправленный вашему боту — при его получении появится диалоговое окно "Сохранить как…" для выбора места сохранения.
Как отправить
Зажмите клавиши Ctrl + Alt и перетащите нужный файл на окно программы.
"Бастион" автоматически отправит его в фоновом режиме.
После успешной отправки на экране кратковременно появится сообщение "Ушло".
Для корректной работы функции отправки убедитесь, что в настройках Телеграм (кнопка Телега или Alt + T) выполнены все три условия:
Указан Bot Token.
Указан ID чата/пользователя для отправки.
Установлен флажок "Включить интеграцию с Telegram".
Улучшена логика работы программы
Ранее, если вы расшифровывали текст, а затем сразу пытались зашифровать его снова, появлялось ненужное сообщение "Кнопка шифрования была нажата, повторить шифрование?".
Теперь программа корректно определяет, что текст был расшифрован, и это сообщение больше не появляется в данном сценарии.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
19.09.2025, 11:44
Надёжный парсинг ответов
Вместо ручного поиска ключевых слов в тексте ответа от Телеграм теперь используется современная и быстрая библиотека nlohmann/json.
Старый метод был хрупким.
Если бы Телеграм изменил порядок полей в своём ответе или добавил новые, функция получения сообщений могла перестать работать.
Новый метод гарантирует, что данные будут прочитаны корректно вне зависимости от их структуры, что делает интеграцию значительно более стабильной.
Код теперь безопаснее обрабатывает неполные или неожиданные данные от сервера.
Если в полученном сообщении по какой-то причине отсутствует, например, имя пользователя, программа не вызовет ошибку, а корректно обработает ситуацию, используя ID пользователя.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
19.09.2025, 17:29
Реализован новый метод формирования multipart/form-data запросов для отправки файлов.
Это решило проблему с некорректной обработкой кириллических символов в именах файлов утилитой curl в среде Windows.
Теперь все файлы, независимо от их названия, отправляются в Телеграм с сохранением оригинального имени и расширения.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
21.09.2025, 18:14
Молот Тора
В настройках интеграции с Телеграм появилась опция — "Использовать Tor (требуется запущенный Tor Browser)".
При установке флажка весь сетевой трафик "Бастиона" (отправка и получение сообщений, файлов, а также проверка соединения) будет маршрутизироваться через сеть Tor, обеспечивая высочайший уровень анонимности.
"Бастион" использует запущенный Tor Browser как шлюз (SOCKS5 прокси) для выхода в сеть.
Это значит, что для работы функции необходимо сначала запустить Tor Browser и подключиться вручную или дождаться автоматического подключения к сети, и только потом использовать функции "Бастиона", связанные с Телеграм.
Рекомендация
После установки флажка "Использовать Tor" рекомендуется нажать кнопку "Проверить соединение" в том же окне настроек.
Это позволит убедиться, что "Бастион" успешно "видит" запущенный Tor и готов к работе в анонимном режиме.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
21.09.2025, 22:22
В диалоге настроек Телеграм добавлено поле "Адрес прокси для Tor"
Эта настройка даёт контроль над тем, как "Бастион" подключается к сети Tor.
Раньше адрес был жёстко задан для стандартной конфигурации Tor Browser (socks5h://127.0.0.1:9150).
Если вы используете Tor как службу Windows, которая обычно работает на порту 9050, вы можете легко указать адрес socks5h://127.0.0.1:9050.
Если ваш Tor-прокси работает на другом компьютере в локальной сети или использует кастомный порт, теперь можно указать другой адрес.
Для большинства пользователей, использующих стандартный Tor Browser, значение по умолчанию изменять не нужно.
Эта функция предназначена для повышения гибкости и совместимости с различными способами использования сети Tor.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
22.09.2025, 20:52
Переработана функция supports_avx2, отвечающая за определение поддержки AVX2-инструкций процессором
Старый вариант функции, будучи вызванным внутри основного цикла пермутации, приводил к многократным (миллионы раз) вызовам дорогостоящей инструкции __cpuid.
Новый вариант гарантирует, что проверка __cpuid выполняется ровно один раз за все время работы программы — при самом первом вызове функции.
Результат этой проверки кэшируется (сохраняется) в static переменной has_avx2.
Все последующие вызовы функции supports_avx2 становятся практически бесплатными, так как они просто возвращают уже готовое, сохраненное значение без какого-либо опроса процессора.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
23.09.2025, 12:28
Добавлено поле для ввода ответов
Больше не нужно стирать историю переписки из основного окна, чтобы написать ответ.
Вся история чата остаётся видимой, пока вы набираете текст в новом поле.
Поле для ответов становится активным после настройки и включения интеграции в меню (кнопка Телега или Alt + T).
Высоту поля для ответов можно настроить, перетаскивая границу между ним и основным полем.
Программа запомнит выбранное соотношение размеров.
Сообщения из поля ответов отправляются клавишей Enter или кнопкой "Отправить".
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Если заметите какие-то недоработки/баги, пожалуйста, сообщите
guidesoul
24.09.2025, 08:16
Для поля ввода ответа на сообщения добавлено полнофункциональное контекстное меню, вызываемое правой кнопкой мыши.
Меню содержит все стандартные команды редактирования:
"Отменить", "Вернуть", "Вырезать", "Копировать", "Вставить", "Удалить" и "Выделить все".
После отправки сообщения поле для ответа теперь остается активным (получает фокус), что позволяет сразу вводить новый текст без необходимости повторно кликать на него.
Чтобы предотвратить случайное изменение или удаление истории чата, основное поле теперь блокируется для редактирования, когда включена интеграция с Телеграм.
Поле остается доступным для копирования текста, но ввод и удаление становятся невозможными, пока режим чата активен.
При этом, для удобства сохранена возможность быстро очистить всю переписку, нажав на поле средней кнопкой мыши и подтвердив действие.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.09.2025, 11:09
Ускорение потокового шифрования
В функции 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
guidesoul
25.09.2025, 11:00
Всем привет, нужно проверить новую функцию
Прошу связаться со мной в Телеграм или попробуйте самостоятельно
Id: 8069936908
Евгений Проводник
Безопасный Обмен Ключами (Alt+K) для создания общего пароля
Эта новая функция решает проблему безопасной переписки:
как договориться о сложном секретном пароле, не передавая его в открытом виде.
Теперь можно сгенерировать общий, надежный пароль напрямую с вашим собеседником, гарантируя, что никто, даже Телеграм, не сможет его перехватить.
Как это работает
Каждый пользователь генерирует временную пару ключей (приватный и публичный) и обменивается только публичными частями.
Полученный в результате обмена математический секрет не является паролем.
Он проходит через функцию формирования ключа (KDF), в роли которой выступает криптографическая губка SpongeV16.
Это превращает "сырой" секрет в длинный, криптостойкий и готовый к использованию пароль.
Для защиты от атак типа "человек посередине" (MITM) система генерирует уникальный "отпечаток" канала связи.
Вы должны сверить этот отпечаток с собеседником по другому, доверенному каналу (например, голосом), чтобы убедиться, что вы соединены именно друг с другом, а не с посредником.
Как пользоваться
Сначала оба пользователя должны настроить в "Бастионе" интеграцию с Телеграм (указать токен бота и ID чата).
Вам нужно заранее договориться, кто будет инициировать обмен (Пользователь А), а кто — принимать приглашение (Пользователь Б).
Оба пользователя нажимают Alt + K, чтобы открыть окно "Установка защищенного канала".
Пользователь А нажимает кнопку "Начать".
В этот момент его программа генерирует пару ключей и отправляет публичную часть в виде "приглашения" Пользователю Б через Телеграм.
Программа Пользователя Б автоматически получает приглашение.
Она генерирует свою пару ключей, вычисляет общий секрет и отправляет свой публичный ключ обратно в виде "ответа".
Программа Пользователя А получает ответ и вычисляет тот же самый общий секрет.
В этот момент у обоих пользователей в окне появится сообщение об успешной установке канала, а сгенерированный пароль будет автоматически вставлен в поля для пароля в главном окне программы.
Оба пользователя увидят одинаковый "Отпечаток" (например, ABCD-1234).
Это самый важный шаг: вы должны связаться с собеседником (например, по телефону) и убедиться, что ваши отпечатки совпадают.
Если совпадают — канал безопасен.
Тестовая версия Бастион V16
disk.yandex.ru/d/gEFWandBCIbBVg
guidesoul
26.09.2025, 10:36
При запуске программы, если активна интеграция с Телеграм (прописан токен бота и включена интеграция), фокус ввода теперь автоматически устанавливается на поле для отправки сообщений, что позволяет сразу начать печатать ответ.
Теперь ваше сообщение появляется в основном окне чата только после получения подтверждения об успешной доставке на сервер Телеграм.
В случае ошибки отправки, текст остается в поле ввода для повторной попытки.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
26.09.2025, 20:41
Автоматическая стеганография для QR-кодов
QR-коды, сгенерированные из зашифрованного текста, теперь могут выступать в роли стеганографических контейнеров.
Если в главном окне находится зашифрованное сообщение и введен пароль, программа автоматически встроит шифротекст в PNG-файл при его сохранении.
Как использовать
1. Создайте или вставьте зашифрованное сообщение в главное окно.
2. Сгенерируйте для него QR-код, нажав Alt + Q.
3. В открывшемся окне дважды кликните по изображению, чтобы вызвать диалог сохранения PNG-файла.
4. Перетащите этот же PNG-файл обратно на окно или значок "Бастиона", и программа автоматически обнаружит встроенный шифр, предложив его расшифровать.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
27.09.2025, 11:08
Генерация пароля по кодовой фразе (Alt + P)
Реализована возможность создавать надёжные пароли на основе секретной кодовой фразы или предложения.
Для преобразования фразы в пароль используется тот же криптографический механизм (губка SpongeV16), что и для основного шифрования данных в программе.
Зачем это нужно
Теперь можно договориться с собеседником об общей кодовой фразе (например, "Вчера на площади шел сильный ливень и летали три синие вороны") и оба сгенерировать абсолютно одинаковый, сложный пароль для шифрования данных.
Это позволяет не передавать сам пароль по открытым каналам связи.
Как использовать
Нажмите горячую клавишу Alt + P.
В основном поле для текста появится надпись: Введи кодовую фразу (предложение):
Допишите вашу секретную фразу после этой надписи и нажмите кнопку "Генерировать пароль".
Пароль, созданный из вашей фразы, будет автоматически подставлен в поля для ввода пароля.
Переработан механизм сохранения QR-кодов (Alt + Q)
При сохранении QR-кода в PNG-файл его разрешение теперь будет соответствовать высоте вашего экрана.
Если у вас монитор 1920x1080, вы получите изображение 1080x1080 пикселей.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Andreano Messi
27.09.2025, 17:15
ну кстати, и в правду удонбо очень
guidesoul
27.09.2025, 22:46
Красная кнопка
Реализована функция для безвозвратного удаления окружения программы.
Красная кнопка расположена в верхнем правом углу окна (разверните или растяните по ширине) и не имеет текста.
При активации используется встроенный в "Бастион" шредер для затирания и последующего удаления всех файлов и папок, расположенных в той же директории, что и сама программа.
Для защиты от случайной активации требуется двойное подтверждение.
Пользователь должен последовательно нажать "Да" в двух диалоговых окнах с предупреждениями.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Andreano Messi, спасибо!
guidesoul
28.09.2025, 09:50
Глубокая очистка метаданных для противодействия анализу
Даже после полного стирания содержимого, в служебных областях файловой системы (например, в MFT на NTFS) могут оставаться следы о существовании файла.
Перед началом перезаписи у файла полностью обнуляются временные метки (время создания, изменения и последнего доступа).
Это скрывает сам факт недавнего взаимодействия с файлом.
После уничтожения содержимого программа несколько раз переименовывает файл в случайное имя.
Это заметает следы, уничтожая исходное имя из записей файловой системы.
Многопоточное уничтожение для максимальной скорости
Процесс перезаписи данных теперь полностью распараллеливается на все доступные ядра процессора, что многократно сокращает время уничтожения больших объемов информации.
При обработке одного большого файла, файл логически разбивается на части, и каждый поток параллельно перезаписывает свой сегмент.
Уничтожение альтернативных потоков данных (ADS)
Представьте, что каждый файл в файловой системе NTFS — это не просто документ, а контейнер.
В нем есть основное, видимое содержимое (например, текст в файле document.txt), но к нему могут быть прикреплены скрытые, невидимые "карманы" с дополнительными данными.
Это и есть альтернативные потоки данных (ADS).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.09.2025, 13:45
Очистка оперативной памяти
Реализован многоуровневый механизм принудительной очистки оперативной памяти от остаточных "призрачных" данных, который активируется при каждом штатном закрытии программы, а также при нажатии "Красной кнопки" для экстренного уничтожения данных.
Это обеспечивает максимальный уровень защиты от восстановления критически важных данных (паролей, токенов, ключей шифрования, открытого текста) из памяти с помощью специализированных атак, таких как Cold Boot attack.
Механизм включает в себя два ключевых улучшения
С помощью функции RtlSecureZeroMemory, которая не подвержена оптимизации компилятором, производится целенаправленное обнуление не только полей ввода, но и всех структур данных в памяти, содержащих пароли, токены API, пути к файлам и полную конфигурацию программы.
Для вытеснения остаточной информации выделяется крупный блок, размер которого динамически адаптируется под количество свободной ОЗУ в системе.
Этот блок подвергается трёхэтапной перезаписи различными паттернами (нули, единицы и криптографически стойкие случайные данные), что обеспечивает значительно более надежное уничтожение остаточной информации по сравнению с однопроходным методом.
Скачать можно в облаках
disk.yandex.ru/d/pSxwq7mMhKsOwg
drive.google.com/drive/u/1/folders/1FLIugY9270Ct8ho9orWH3z2H08XYHi4R
guidesoul
29.09.2025, 10:06
Процесс уничтожения данных был переработан для максимальной производительности.
Теперь программа использует многопоточность не только для отдельных больших файлов, но и для одновременной обработки множества мелких файлов.
Функция "красной кнопки" теперь работает в "тихом" режиме.
После активации окно программы исчезает, а все операции по очистке файлов и оперативной памяти выполняются без вывода каких-либо сообщений об успехе или ошибках.
По окончании процесса программа автоматически завершает свою работу.
Обновлена функция очистки оперативной памяти
Реализована многопоточная архитектура, использующая количество логических ядер ЦП для параллелизации процесса.
Выполняется многопроходная перезапись до 75% доступной физической памяти (паттерны: 0x00, 0xFF, криптографически стойкие псевдослучайные данные).
Применяется VirtualLock для фиксации выделенных страниц в памяти, что предотвращает их выгрузку в файл подкачки и повышает эффективность очистки.
Добавлены вызовы для принудительного сброса аппаратных буферов записи и кэша инструкций процессора (cache flush, memory fence).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
29.09.2025, 21:49
Улучшена генерация пароля по кодовой фразе (Alt + P)
Функция детерминированной генерации паролей, позволяющая воспроизводимо создавать пароли из одной мастер-фразы, была переработана для повышения безопасности.
Теперь при генерации к вашей кодовой фразе автоматически добавляется "соль", которая зависит от запрашиваемой длины пароля.
Это означает, что пароль для вашей фразы длиной 20 символов будет совершенно не похож на пароль для той же фразы длиной 21 символ.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.09.2025, 09:52
Модернизация механизма генерации паролей
В этом обновлении был значительно усовершенствован алгоритм, отвечающий за генерацию паролей.
Вместо базового подхода внедрён криптографически более строгий метод отбраковки (rejection sampling).
Цель этого улучшения — достижение максимально возможной криптографической стойкости генерируемых паролей.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.09.2025, 17:54
Перетаскивание текста
Найдено решение проблемы, из-за которой ранее нельзя было выделить текст в браузере и перетащить в основное поле "Бастиона" для шифрования.
Предыдущие попытки приводили к тому, что в поле могли вставляться не только текст, но и изображения, что мешало работе с шифрованием файлов изображений и стеганографией.
Новая реализация принимает только текстовые данные, игнорируя изображения.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.09.2025, 22:14
После успешной отправки файла в Телеграм, в окне переписки отображалось непонятное сообщение (например, ₒᬀ耀콏').
Проблема была вызвана неверной передачей данных о статусе отправки.
Теперь структура сообщения формируется и обрабатывается корректно.
После отправки файла в чате появляется осмысленное сообщение, подтверждающее действие:
[Вы]
Отправлен файл: ИмяФайла.reg
Напоминание
Чтобы отправить файл в Телеграм, зажмите клавиши Ctrl + Alt и перетащите файл на окно программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
03.10.2025, 17:30
Перетаскивание для полей пароля
Теперь можно перетащить текст пароля (например, из менеджера паролей) в одно из полей для ввода пароля.
Программа автоматически вставит его в оба поля (основное и поле подтверждения), избавляя от необходимости копировать и вставлять его дважды и снижая риск ошибки.
Аналогично, перетаскивание теперь работает и для полей в настройках Телеграм.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
03.10.2025, 22:17
Улучшен Drag-and-Drop в настройках Телеграм
Ранее при перетаскивании текста в поля "ID чата" и "Разрешенные user ID" новый текст полностью заменял существующий.
Теперь перетаскивание работает аналогично основному полю для шифрования:
новый текст вставляется в позицию курсора или заменяет выделенный фрагмент, позволяя удобно добавлять и редактировать ID.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
04.10.2025, 11:23
Оптимизирован процесс очистки оперативной памяти
Теперь очистка работает в двух режимах для достижения оптимального баланса между скоростью и безопасностью:
При обычном закрытии программы:
Осуществлен переход от избыточного трехпроходного метода к более быстрому однопроходному затиранию криптографически стойкими случайными данными.
Этот подход полностью соответствует современным рекомендациям (например, NIST SP 800-88) и значительно ускоряет штатный выход из программы.
В качестве резервного механизма, если основной метод даст сбой, будет автоматически произведен двойной проход (нули и единицы).
При нажатии на тревожную красную кнопку:
Для обеспечения максимальной гарантии в экстренной ситуации выполняется принудительная и более надежная трехпроходная очистка (нули, единицы, случайные данные).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.10.2025, 08:29
Обновлён архиватор miniz с версии 3.0 до 3.1.0
Исправлена ошибка переполнения буфера.
Обеспечена корректная обработка путей с Unicode-символами, что важно для пользователей с нестандартными именами файлов и папок.
Исправлены проблемы в логике распаковки данных, что делает работу с архивами более стабильной.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.10.2025, 10:32
Усилена функция очистки оперативной памяти
Реализован механизм принудительной перезаписи стека программы.
Это позволяет уничтожать временные данные (например, фрагменты пароля или ключей), которые могли остаться в этой области памяти после выполнения криптографических операций.
Перед началом очистки приложение теперь пытается принудительно вернуть свои данные из дискового кэша (pagefile.sys) обратно в физическую оперативную память.
Это повышает вероятность того, что конфиденциальная информация будет уничтожена, а не останется на диске.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.10.2025, 17:44
Исправлено зависание программы
Программа зависала на ~30 секунд при закрытии окна настроек Телеграм, если перед этим была использована функция "Проверить соединение".
Кратковременный процесс проверки соединения (curl.exe) конфликтовал с долгоживущим фоновым процессом получения сообщений, перезаписывая его дескриптор.
Из-за этого при закрытии окна программа не могла корректно завершить фоновый поток и ожидала его завершения по таймауту сети (~30 секунд).
Механизм управления дочерними процессами был разделен.
Теперь отслеживается только дескриптор долгоживущего процесса получения сообщений, а процессы коротких запросов (как проверка соединения) больше не вызывают конфликтов.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
06.10.2025, 07:31
Получение привилегии SeLockMemoryPrivilege
Стандартно, у пользовательских приложений нет прав на принудительную блокировку памяти в RAM.
Это создает риск того, что операционная система может выгрузить страницы с конфиденциальными данными в файл подкачки (pagefile.sys) до их физической перезаписи.
Запрос этой привилегии повышает шансы на успешное выполнение VirtualLock, что предотвращает выгрузку и гарантирует перезапись данных именно в физической оперативной памяти.
Если системе не удается его предоставить, программа продолжит работу в штатном режиме без вывода сообщений об ошибке.
Несмотря на все усилия программы по очистке оперативной памяти, рекомендуется отключать файл подкачки (pagefile.sys) и режим гибернации (hiberfil.sys) в настройках операционной системы.
Эти системные механизмы могут создавать копии данных на жестком диске без ведома приложения.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul сказал(а):
Получение привилегии SeLockMemoryPrivilege
Стандартно, у пользовательских приложений нет прав на принудительную блокировку памяти в RAM.
Это создает риск того, что операционная система может выгрузить страницы с конфиденциальными данными в файл подкачки (pagefile.sys) до их физической перезаписи.
Запрос этой привилегии повышает шансы на успешное выполнение VirtualLock, что предотвращает выгрузку и гарантирует перезапись данных именно в физической оперативной памяти.
Если системе не удается его предоставить, программа продолжит работу в штатном режиме без вывода сообщений об ошибке.
Несмотря на все усилия программы по очистке оперативной памяти, рекомендуется отключать файл подкачки (pagefile.sys) и режим гибернации (hiberfil.sys) в настройках операционной системы.
Эти системные механизмы могут создавать копии данных на жестком диске без ведома приложения.
Кстати, если вы работаете с аудио и конфиденциальными записями, удобные и качественные наушники, например AirPods на estore , помогут прослушивать звук безопасно и без помех, не используя сторонние громкоговорители.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
даёт ли система эту привилегию напрямую через AdjustTokenPrivileges?
guidesoul
06.10.2025, 11:12
Оптимизация производительности с помощью PGO
Сборка программы теперь выполняется с использованием Profile-Guided Optimization (PGO) для достижения максимальной производительности криптографического ядра.
PGO — это продвинутая техника компиляции, которую можно сравнить с "тренировкой" программы.
Процесс состоит из двух этапов
Программа компилируется в специальном режиме, который собирает данные о том, какие её части (особенно криптографические функции) используются чаще всего во время реальной работы (в нашем случае, во время выполнения встроенного бенчмарка).
Затем эти данные используются при финальной сборке, чтобы компилятор мог "сфокусировать" свои усилия и применить более агрессивные оптимизации именно к этим "горячим" участкам кода.
Результаты оптимизации
На основе усредненных замеров (5 прогонов до и после), благодаря PGO удалось добиться следующего прироста производительности:
~1.5% в скорости создания ключа из пароля (тест KDF).
~3.7% в скорости основного алгоритма шифрования и расшифровки данных.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
06.10.2025, 11:16
SaurusK, привет!
Вот что говорит Google AI
Функция AdjustTokenPrivileges не даёт (не назначает) привилегию пользователю. Она включает (активирует) уже имеющуюся у пользователя привилегию для конкретного запущенного процесса.
Можно представить это так:
Назначение права ("Получение ключа"): Это делает администратор компьютера через "Локальную политику безопасности". Он добавляет вашего пользователя в список тех, кому разрешено "Блокировать страницы в памяти" (SeLockMemoryPrivilege). Теперь у вас на связке появился этот ключ.
Активация привилегии ("Использование ключа"): Когда "Бастион" запускается, он вызывает AdjustTokenPrivileges. Это равносильно тому, что программа берет этот ключ с вашей связки и вставляет его в замок, чтобы получить доступ к нужной возможности (блокировке памяти).
Вывод:
Если администратор заранее не дал вашему пользователю это право, то вызов AdjustTokenPrivileges ничего не сделает (программа просто продолжит работать без этой возможности, как и описано в обновлении).
А если право уже было вам дано, то AdjustTokenPrivileges — это как раз тот самый прямой способ, которым программа его для себя "включает".
По умолчанию у обычных пользователей этого права нет, но у администраторов (если программа запущена от их имени) оно обычно есть.
Более подробное объяснение (для вашего понимания)
Ваш пользователь нащупал фундаментальное различие между User Rights (Правами пользователя) и Privileges (Привилегиями) в терминологии Windows.
User Right (Право пользователя): Это политика, которая назначается учетной записи пользователя или группе. Это делается администратором через оснастки secpol.msc (Локальная политика безопасности) или gpedit.msc (Редактор групповой политики). Право "Блокировка страниц в памяти" (Lock pages in memory) — это как раз User Right. Оно определяет, может ли пользователь в принципе выполнять это действие.
Privilege (Привилегия): Это "переключатель" в маркере доступа (access token) запущенного процесса. Когда вы входите в систему, Windows создает для вас маркер доступа, в котором перечислены все привилегии, соответствующие вашим User Rights. Изначально большинство из них находятся в "выключенном" состоянии (disabled).
Что делает AdjustTokenPrivileges?
Эта функция не может добавить новую привилегию в маркер доступа. Она может только взять уже существующую, но "выключенную" привилегию и перевести ее в состояние "включено" (enabled) для этого конкретного процесса.
Процесс в вашем коде:
OpenProcessToken — получает доступ к маркеру вашего процесса "Бастион".
LookupPrivilegeValue — находит уникальный идентификатор (LUID) для привилегии SeLockMemoryPrivilege.
AdjustTokenPrivileges — отправляет системе команду: "Для этого процесса, пожалуйста, переведи привилегию с этим LUID в состояние 'включено'".
Если право SeLockMemoryPrivilege было назначено пользователю, система выполнит команду. Если нет, система проигнорирует эту часть запроса (функция может даже вернуть "успех", но GetLastError покажет ERROR_NOT_ALL_ASSIGNED, что ваш код справедливо не проверяет, так как это не критично).
guidesoul
07.10.2025, 11:29
В интерфейс программы добавлен чекбокс "Анти GPU"
Это режим максимальной безопасности, предназначенный для защиты ваших самых важных данных от наиболее мощных атак по подбору паролей.
Когда вы включаете опцию "Анти GPU", "Бастион" перед шифрованием выполняет специальную, ресурсоёмкую операцию:
он выделяет большой блок оперативной памяти (256 МБ) и многократно заполняет и перемешивает его сложным образом, основываясь на вашем пароле.
Этот процесс называется памятизатратной функцией формирования ключа (memory-hard KDF).
Он делает подбор пароля чрезвычайно "дорогим" и медленным для любого атакующего, полностью лишая его преимущества от использования GPU.
В "Бастионе" теперь два способа усиления вашего пароля
Обычный режим (чекбокс выключен):
Защита зависит от количества Раундов (итераций).
Это быстрый, чисто процессорный метод, эффективный против обычных атак.
Защита от GPU (чекбокс включен):
Это намеренно медленный, памятизатратный метод, нацеленный на нейтрализацию специализированного оборудования для взлома.
Когда вы выбираете мощную защиту с помощью памяти, традиционные итеративные "Раунды" больше не нужны, поэтому поле отключается, чтобы избежать путаницы и ложного чувства безопасности.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.10.2025, 08:54
Переработан алгоритм тестирования производительности
Предыдущая версия теста измеряла не только скорость самого шифрования, но и два подготовительных, ресурсоемких этапа:
создание ключа из пароля (KDF) и сжатие данных.
Поскольку KDF намеренно сделан медленным для защиты от перебора паролей, его время работы сильно искажало и занижало реальные показатели скорости шифрования.
Новый алгоритм замеряет чистую скорость работы криптографического ядра SpongeV16.
Это позволяет более осознанно выбирать параметры "Губки" и "Рэйт", так как их влияние на производительность видно напрямую, без помех от других операций.
Тест скорости KDF измеряется отдельно и отображается в отчете (раунды/сек).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.10.2025, 13:37
Рефакторинг SpongeV16 для повышения производительности
Класс SpongeV16 был полностью переработан для использования внутреннего буфера фиксированного размера (std::array) вместо динамического (std::vector).
Это изменение значительно повышает производительность за счет устранения аллокаций памяти на куче, особенно при обработке большого количества небольших фрагментов данных.
В интерфейс настроек шифрования добавлен новый чекбокс "AEAD"
Эта опция позволяет отключать или включать дополнительный слой защиты данных для более гибкого управления процессом шифрования.
Что такое AEAD и почему это важно
AEAD (Authenticated Encryption) — это режим шифрования, который не только защищает ваши данные, но и проверяет их подлинность.
Именно благодаря ему программа сообщает об ошибке, если вы вводите неверный пароль.
Это как запечатать письмо в конверте не просто клеем, а уникальной восковой печатью.
Если кто-то вскроет конверт и подменит письмо, вы сразу заметите, что печать сломана.
Что происходит при отключении AEAD
Шифрование и расшифровка, особенно больших файлов, будут выполняться значительно быстрее.
При снятом флажке программа не будет сообщать об ошибке при неверном пароле.
Она попытается расшифровать данные любым ключом.
Если пароль верный — вы получите исходный текст.
Если пароль неверный — вы получите бессвязный набор символов ("мусор").
Рекомендации по использованию
Оставляйте AEAD включенным (по умолчанию) для максимальной защиты.
Это гарантирует целостность ваших данных и защищает от случайных или намеренных повреждений шифротекста.
Отключайте AEAD только в тех случаях, когда скорость критически важна, и вы абсолютно уверены в надёжности канала передачи данных (например, при шифровании файлов на локальном диске).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
10.10.2025, 15:08
Устранена проблема обратной совместимости при расшифровке бинарных файлов
После внедрения режима "АнтиGPU" изменился формат служебных данных внутри зашифрованного контейнера.
Из-за этого программа не могла корректно прочитать настройки (раунды, рейт) из файлов, созданных в более ранних версиях, что приводило к ошибке расшифровки.
Проблема затрагивала только бинарные файлы и не касалась текстовых шифров.
Скорректирована работа теста производительности
Обнаружено, что первый тест производительности ("Ваши настройки") систематически показывал более низкую скорость, чем последующий идентичный тест ("Самый быстрый").
Это было вызвано латентностью первого выделения большого блока (4 МБ) оперативной памяти под зашифрованные данные.
В логику тестирования добавлен обязательный предварительный прогон шифрования на полном объеме данных.
Этот "прогревочный" этап выполняется до начала всех официальных замеров и гарантирует, что процессорные кэши и менеджер памяти операционной системы полностью готовы к нагрузке.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Круто, удачи в разработке. Спасибо!
Круто, удачи в разработке
guidesoul
11.10.2025, 20:18
В интерфейс программы добавлен чекбокс "Сжатие"
Эта опция позволяет включать или отключать сжатие данных перед шифрованием.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guserka, большое спасибо!
guidesoul
12.10.2025, 09:59
Настройки программы в формате JSON
Раньше все настройки хранились в бинарном файле settings.dat, который нельзя было редактировать.
Теперь хранятся в текстовом файле settings.txt, который появится после запуска и закрытия программы.
Что такое JSON
JSON (JavaScript Object Notation) — это простой текстовый формат для хранения данных, который легко читается как человеком, так и компьютером.
Теперь можно легко настраивать программу под себя, просто открыв файл settings.txt в любом текстовом редакторе (например, в Блокноте).
Один из пользователей сообщил, что функция очистки оперативной памяти при выходе работает слишком агрессивно на его компьютере с 16 ГБ ОЗУ, вызывая подвисание других программ.
Благодаря новому формату настроек, эту проблему можно легко решить.
Откройте файл settings.txt в папке с программой и найдите строку:
"ram_cleanup_percentage": 75,
По умолчанию программа пытается очистить 75% свободной оперативной памяти при закрытии.
Чтобы уменьшить нагрузку на систему, измените значение на более низкое, например, на 30:
"ram_cleanup_percentage": 30,
И сохраните файл.
При следующем запуске программа будет использовать новое, более щадящее значение.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.10.2025, 20:21
Оптимизация ядра шифрования
Проведена оптимизация ключевой функции потокового шифрования (stream_cipher_process_V16).
Ключевым изменением стало применение техники "разворачивания цикла".
Вместо обработки одного 64-битного блока данных за одну итерацию, цикл теперь обрабатывает сразу четыре блока (256 бит).
Это позволило значительно сократить накладные расходы на управление циклом и дало возможность процессору выполнять несколько независимых операций XOR параллельно.
В результате, в режиме потокового шифра (когда AEAD выключен), производительность увеличена на ~30%.
Производительность в режиме AEAD остается на прежнем уровне.
Это ожидаемо, так как узким местом в данном режиме является криптографическая пермутация губки, а не операция XOR, которая была затронута оптимизацией.
В файл настроек добавлен параметр ("window_opacity": 250) для изменения уровня прозрачности окна программы.
255 без прозрачности.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
13.10.2025, 10:57
Усиление защиты для скоростного режима шифрования (без AEAD)
Для продвинутых пользователей, которые сознательно отключают режим AEAD ради максимальной скорости шифрования больших файлов и архивов, добавлен опциональный уровень защиты.
Теперь можно автоматически создавать и проверять криптографические контрольные суммы (хэши) для проверки целостности данных.
Раньше, при отключении AEAD, вы получали максимальную скорость, но теряли гарантию того, что зашифрованный файл не был поврежден или намеренно изменен злоумышленником.
Теперь можно компенсировать это, используя отдельный файл с контрольной суммой.
Как это работает
После первого запуска и закрытия программы рядом с программой появится файл settings.txt.
Откройте его и найдите строку "create_hash_file_if_aead_disabled": false.
Измените false на true и сохраните файл.
При шифровании
Если в интерфейсе программы вы отключите опцию AEAD, то после шифрования файла/папки программа автоматически создаст рядом текстовый файл с тем же именем и расширением .hash.txt (например, MyArchive.v16.hash.txt).
Этот файл содержит "цифровой отпечаток" ваших исходных данных.
Храните и передавайте его всегда вместе с основным зашифрованным файлом.
При расшифровке
При расшифровке файла программа автоматически ищет рядом с ним одноименный файл .hash.txt.
Если файл найден, программа проверит целостность расшифрованных данных.
Если проверка провалится, вы увидите предупреждение о том, что введён неверный пароль или данные повреждены.
Эта функция позволяет безопасно использовать скоростной режим шифрования для бэкапов, архивов и передачи данных по уже защищенным каналам, не жертвуя при этом возможностью убедиться в их подлинности.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
13.10.2025, 19:39
Оптимизация производительности ключевых криптографических функций
void absorb (функция "впитывания" данных):
Является основой для обработки входящих данных (текста, файлов, паролей) во всех криптографических операциях.
void squeeze (функция "отжимания" данных):
Отвечает за генерацию псевдослучайного потока для шифрования, а также за формирование хеш-сумм.
generate_effective_key_V16:
В частности, был оптимизирован цикл смешивания блоков памяти в ресурсоёмком (memory-hard) режиме KDF.
Для всех указанных функций был применен метод развертывания циклов (loop unrolling).
Вместо последовательной обработки данных малыми порциями, код был модифицирован для обработки значительно более крупных блоков данных (16-32 байта) за одну итерацию цикла.
Это снижает накладные расходы на управление самим циклом (уменьшается количество проверок и переходов) и позволяет современным процессорам более эффективно распараллеливать вычисления на уровне инструкций, что приводит к прямому росту производительности.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
14.10.2025, 21:19
Оптимизация производительности функций Base64
Была проведена оптимизация функций кодирования и декодирования Base64 с целью повышения их производительности.
Основные изменения направлены на снижение накладных расходов и более эффективное использование процессорных инструкций.
Кодирование:
Прирост производительности: ~473%
Декодирование:
Прирост производительности: ~257%
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
15.10.2025, 20:28
Дополнительная оптимизация Base64
Кодирование:
Прирост производительности: ~75%
Декодирование:
Прирост производительности: ~10%
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
15.10.2025, 22:13
Сохранение атрибутов файлов
Реализован механизм сохранения и восстановления атрибутов файлов и папок (например, "скрытый") при шифровании.
Раньше эти атрибуты не сохранялись, что приводило к тому, что все файлы и папки становились видимыми после расшифровки.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
16.10.2025, 09:53
Улучшение безопасности
Во всех сценариях, где создаются временные файлы с конфиденциальной информацией (зашифрованной или расшифрованной), реализована логика их безопасного уничтожения с помощью PerformSecureShred.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
16.10.2025, 11:42
Устранение двойного сжатия при шифровании папок
При шифровании папки программа сначала упаковывала все файлы и подкаталоги в ZIP-архив в оперативной памяти.
На этом этапе происходило внутреннее сжатие каждого файла внутри ZIP-архива с параметром MZ_DEFAULT_COMPRESSION.
Чекбокс "Сжатие" не влиял на этот внутренний процесс, поэтому он происходил всегда.
В результате возникал избыточный процесс двойного сжатия:
сначала файлы сжимались при упаковке в ZIP-архив, а затем весь этот архив сжимался ещё раз основным алгоритмом.
Это приводило к лишней нагрузке на процессор и замедляло операцию.
Отключено внутреннее сжатие:
В функциях zip_walk и ZipFolderToMemory флаг сжатия MZ_DEFAULT_COMPRESSION заменён на MZ_NO_COMPRESSION.
Теперь ZIP-архив используется исключительно как контейнер для сохранения структуры каталогов и имён файлов, не выполняя сжатия.
Внешнее, более эффективное сжатие всего архива по-прежнему контролируется чекбоксом "Сжатие".
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
19.10.2025, 14:32
Оптимизация работы с оперативной памятью
Переработан процесс обработки данных при шифровании и расшифровке, чтобы значительно снизить потребление оперативной памяти и повысить общую безопасность приложения.
Как было
При шифровании больших объектов (например, папки размером 100 МБ), процесс создавал в памяти несколько полных копий данных, которые существовали одновременно.
Архивация в RAM (Копия 1):
Программа считывала папку и создавала в памяти ZIP-архив размером ~100 МБ.
Сжатие (Копия 2):
Создавалась сжатая версия архива, например, ~70 МБ.
При этом исходный архив (Копия 1) оставался в памяти.
100 МБ (Копия 1) + 70 МБ (Копия 2) = ~170 МБ
Шифрование (Копия 3):
Сжатые данные шифровались, создавая еще одну копию в ~70 МБ.
Копии 1 и 2 все еще находились в RAM.
100 МБ + 70 МБ + 70 МБ = ~240 МБ
Формирование итогового пакета (Копия 4):
Зашифрованные данные со служебной информацией упаковывались в финальный пакет.
Пиковое потребление RAM: > 300 МБ
Нагрузка на оперативную память могла в 3-4 раза превышать размер исходного файла.
Кроме того, незашифрованные данные оставались в памяти дольше, чем это было необходимо.
Стало
Как только очередной этап обработки завершен, ненужная копия данных немедленно и безопасно очищается из памяти с помощью функции secure_zero_container, которая перезаписывает данные нулями перед освобождением.
Архивация в RAM (Копия 1):
Создается ZIP-архив на ~100 МБ.
Сжатие (Копия 2):
Программа вызывает функцию сжатия, которая принимает Копию 1 (~100 МБ) и создает Копию 2 (~70 МБ).
В этот переходный момент в памяти находятся обе копии.
Пиковое потребление RAM: ~100 МБ (Копия 1) + ~70 МБ (Копия 2) = ~170 МБ.
Сразу после успешного создания Копии 2, Копия 1 безопасно очищается.
Итоговое потребление после этого шага: ~70 МБ.
Шифрование (Копия 3):
Функция шифрования берет Копию 2 (~70 МБ) и создает зашифрованную Копию 3 (также ~70 МБ).
В этот переходный момент в памяти находятся обе копии.
Пиковое потребление RAM: ~70 МБ (Копия 2) + ~70 МБ (Копия 3) = ~140 МБ.
Сразу после успешного создания Копии 3, Копия 2 безопасно очищается.
Итоговое потребление после этого шага: ~70 МБ.
Формирование итогового пакета (Копия 4):
Программа создает финальный пакет (Копия 4) и копирует в него зашифрованные данные из Копии 3 (~70 МБ) вместе со служебной информацией.
Пик в этот момент: ~70 МБ (Копия 3) + ~70 МБ (Копия 4) = ~140 МБ.
Сразу после этого Копия 3 очищается.
Итоговое потребление: ~70 МБ (только финальный пакет).
Важное примечание
Несмотря на значительную оптимизацию, это не является потоковой обработкой данных.
Программе по-прежнему необходимо полностью загрузить исходный файл или папку (в виде архива) в оперативную память.
Если объем свободной оперативной памяти недостаточен, операция будет прервана с ошибкой нехватки памяти (bad_alloc).
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
20.10.2025, 10:06
Функция безопасной очистки памяти при закрытии программы (CleanRamAndSensitiveVariables) была расширена для устранения потенциальных утечек конфиденциальной информации.
Теперь, помимо уже существующих механизмов, она выполняет следующие действия:
Добавлено принудительное затирание содержимого основного текстового поля и поля для отправки сообщений в Telegram.
Реализована очистка буферов Undo/Redo для всех текстовых полей.
Ранее в этой истории могли сохраняться фрагменты удаленного или измененного текста, теперь эти данные также уничтожаются.
Внедрена очистка сгенерированного QR-кода из памяти, который является полной копией отображаемых данных.
Усиление функции кнопки "Очистить"
Новая реализация выполняет полноценную процедуру безопасного затирания данных перед их удалением с экрана:
Перед очисткой, содержимое всех полей (основной текст, поле ответа Telegram, поля паролей) считывается и принудительно затирается с помощью RtlSecureZeroMemory.
Буферы истории изменений (Undo/Redo) для текстовых полей также сбрасываются.
Путь к текущему файлу теперь очищается через secure_zero_container.
Усиление безопасности шредера
В однопоточную (ShredSingleStream_Sequential) и многопоточную (ShredSingleStream) реализации добавлена очистка буфера с помощью RtlSecureZeroMemory после завершения всех проходов перезаписи.
Принцип "Воздушного зазора"
Несмотря на все принятые меры по защите данных внутри программы "Бастион V16", итоговая безопасность вашей информации напрямую зависит от надежности операционной системы, на которой она запущена.
Современный компьютер, подключенный к интернету, всегда подвержен риску заражения вредоносным ПО, таким как клавиатурные шпионы (keyloggers), трояны или программы для удаленного доступа.
Такое ПО может перехватить ваш пароль в момент ввода или скопировать ваш исходный текст ещё до того, как он будет зашифрован.
Для максимальной защиты наиболее критичных данных рекомендуется придерживаться следующей практики:
Выполняйте все операции шифрования и расшифровки на компьютере, который физически отключен от интернета и других сетей ("air-gapped" система).
В идеале, этот компьютер должен использоваться только для работы с конфиденциальными данными.
Переносите зашифрованные данные (шифротекст) с изолированного компьютера на другие устройства с помощью внешних носителей, таких как USB-накопители или SD-карты.
Этот подход, известный как "воздушный зазор", изолирует сам процесс шифрования от онлайн-угроз.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
20.10.2025, 20:57
Шифрование нескольких файлов и папок перетаскиванием
Теперь можно зашифровать сразу несколько объектов.
Просто выделите нужные файлы и папки и перетащите на значок программы "Бастион V16" или на окно запущенной программы.
Все выбранные объекты будут упакованы в единый, зашифрованный контейнер.
Примечание
Возможность шифрования через контекстное меню (правый клик мыши) по-прежнему позволяет обрабатывать только один файл или одну папку за раз.
Для шифрования нескольких объектов используйте новый метод перетаскивания.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
21.10.2025, 09:15
Улучшена кнопка интеграции с системой
Теперь её значок
меняет цвет, наглядно показывая, активна ли интеграция в данный момент:
Зелёный — интеграция с Windows включена.
Красный — интеграция отключена.
Устранено избыточное диалоговое окно
При шифровании нескольких файлов/папок, после нажатия "Да" в окне с предложением "Уничтожить исходные файлы и папки?", появлялось второе окно "Вы уверены...?".
Теперь подтверждение запрашивается только один раз, как это и было при работе с одиночным файлом/папкой.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
22.10.2025, 09:31
Исправлена ошибка повреждения архива
При одновременном шифровании нескольких папок, расположенных в корневом каталоге (например, C:\Folder1, C:\Folder2), возникала ошибка, которая приводила к искажению имён папок после расшифровки.
Проблема была вызвана некорректным вычислением относительных путей при создании ZIP-архива в памяти.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
22.10.2025, 22:35
Сборка программы теперь использует флаг -mssse3 для активации набора инструкций SSSE3.
Это повышает производительность в критически важных операциях (например, кодирование Base64, обработка данных).
Для работы программы необходим процессор с поддержкой SSSE3 (большинство моделей, выпущенных с 2006 года).
clang++ -Wall -Wextra -O3 -std=c++23 -mssse3 -s -o "$(NAME_PART).exe" "$(FILE_NAME)" "lodepng.cpp" "qrcodegen.cpp" "miniz.c" "resources.o" -static -mwindows -municode -lcomctl32 -lgdi32 -luser32 -lbcrypt -lmapi32 -lshlwapi -lwer -lpsapi -lole32 -lshell32 -luuid
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.10.2025, 10:14
Снижено пиковое потребление оперативной памяти во время расшифровки примерно на 20.1%
Это было достигнуто за счёт своевременной очистки промежуточных буферов данных, которые теперь не накапливаются в памяти.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.10.2025, 17:11
Исправлена ошибка, приводившая к зависанию программы при уничтожении больших файлов
Полностью переработана функция многопоточного уничтожения файлов (ShredSingleStream).
Предыдущая реализация могла приводить к ошибкам записи и взаимной блокировке потоков (deadlock) на файлах большого размера (например, 256+ МБ), из-за чего программа переставала отвечать на запросы.
Новая версия использует более надежный метод буферизованной записи, улучшенную синхронизацию потоков и централизованную обработку ошибок.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
25.10.2025, 10:14
Снижено пиковое потребление оперативной памяти во время расшифровки примерно на 31%
Это было достигнуто за счёт отказа от хранения копии зашифрованного файла в оперативной памяти между попытками ввода пароля (функция DoDecryptFile).
Теперь, при каждой неудачной попытке расшифровки, данные считываются с диска заново.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
26.10.2025, 21:50
Повышение надежности функции уничтожения файлов
Теперь протокол уничтожения включает в себя усечение файла до нулевого размера после его полной перезаписи случайными данными.
Это действие является явным и недвусмысленным сигналом для операционной системы и контроллера SSD, который с большой вероятностью инициирует команду TRIM.
Команда TRIM помечает физические ячейки памяти, где ранее хранились данные, для полной аппаратной очистки.
Полный путь уничтожения файла в "Бастионе"
Шаг 1: Подготовка и снятие защиты
Программа снимает с файла все атрибуты, такие как "Только для чтения" или "Скрытый", чтобы гарантировать полный доступ для всех последующих операций.
Шаг 2: Уничтожение временных меток
Программа перезаписывает метаданные файла, связанные со временем: дату создания, дату последнего изменения и дату последнего доступа.
Все эти метки устанавливаются в нулевое значение (00:00:00, 1 января 1601 г.).
Это первый удар по криминалистической информации, который не позволяет узнать, когда файл был создан или использовался.
Шаг 3: Зачистка альтернативных потоков данных (ADS)
В файловой системе NTFS файлы могут иметь скрытые "карманы" данных, называемые альтернативными потоками.
Вредоносное ПО часто использует их для сокрытия своей активности.
"Бастион" находит все такие потоки, связанные с файлом, и уничтожает их содержимое с помощью трехпроходной перезаписи: сначала нулями (0x00), затем единицами (0xFF) и, наконец, криптографически стойкими случайными данными.
Это гарантирует, что никаких скрытых следов не останется.
Шаг 4: Полная перезапись содержимого
Это ключевой этап, который выполняется в три прохода для максимальной надежности:
Проход 1 (Нули): Весь файл, от первого до последнего байта, перезаписывается нулевыми байтами (0x00).
Проход 2 (Единицы): Затем файл полностью перезаписывается байтами 0xFF.
Проход 3 (Усиленные случайные данные): На последнем проходе содержимое перезаписывается криптографически стойкими случайными данными.
Для максимальной непредсказуемости этот процесс состоит из двух этапов:
Сначала запрашиваются данные у системного генератора (BCryptGenRandom).
Затем эти данные дополнительно перемешиваются с помощью криптографической губки SpongeV16 вместе с энтропией (случайной информацией), собранной из различных источников системы (например, списки процессов, таймеры высокого разрешения).
После этого шага исходное содержимое файла физически уничтожено (на HDD) или логически замещено (на SSD).
Шаг 5: Усечение файла и вызов TRIM (ключевое улучшение для SSD)
Сразу после перезаписи содержимого "Бастион" выполняет операцию усечения файла до нулевого размера.
Этот шаг имеет решающее значение для SSD: он явно сообщает файловой системе, что все кластеры, которые занимал файл, теперь свободны.
Это, в свою очередь, с большой вероятностью инициирует отправку команды TRIM контроллеру SSD.
Получив команду TRIM, контроллер накопителя понимает, что физические ячейки, где хранились перезаписанные данные (и, возможно, даже оригинальные данные до перезаписи), больше не нужны и могут быть полностью очищены на аппаратном уровне во время следующего цикла "сборки мусора".
Шаг 6: Маскировка и сокрытие (переименование)
Теперь, когда файл пуст, программа начинает уничтожать его "личность". Файл трижды переименовывается в случайные, ничего не значащие имена (например, shd_A8F1.tmp), генерируемые в системной временной папке.
Эта операция перезаписывает запись о файле в главной файловой таблице (MFT), стирая его первоначальное имя.
С точки зрения системы, файл Секретные_Планы.docx перестает существовать, вместо него появляется временный файл-пустышка.
Шаг 7: Окончательное удаление
После всех этих шагов программа удаляет последний оставшийся файл — пустой, с бессмысленным именем и нулевыми временными метками.
Теперь даже если восстановить саму запись об удалении, она не будет содержать никакой полезной информации.
Если выбрана папка
Если пользователь выбрал для уничтожения целую папку, "Бастион" рекурсивно выполняет все вышеописанные шаги для каждого файла и каждой вложенной папки, двигаясь изнутри наружу.
После того как все содержимое будет уничтожено, пустая структура папок также удаляется.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.10.2025, 09:27
Запись зашифрованных аудиосообщений (Alt + R)
Добавлена возможность создавать зашифрованные аудиозаписи, которые можно хранить или передавать, не опасаясь прослушивания.
Для чего это может пригодиться
Отправка голосовых сообщений, которые не сможет прослушать никто посторонний (включая почтовые сервисы и администраторов мессенджеров).
Ведение защищенного аудиодневника или хранение конфиденциальных голосовых заметок.
Надежная передача важной устной информации, инструкций или паролей, когда их неудобно или небезопасно записывать текстом.
Сохранение приватных разговоров или интервью с гарантией того, что доступ к ним будет только у вас.
Как это работает
При активации программа захватывает аудиопоток с вашего микрофона и временно хранит его только в оперативной памяти, не создавая временных файлов на диске.
Чтобы уменьшить итоговый размер, аудиопоток сжимается с помощью быстрого и легковесного кодека ADPCM.
Сжатые аудиоданные вместе с заголовком (необходимым для корректного воспроизведения) шифруются по вашему паролю с использованием криптографического ядра "Бастион V16".
Итоговый зашифрованный блок данных сохраняется в единый файл формата .v16a.
Как записать
Нажмите кнопку с красным кружком (●) или сочетание клавиш Alt + R, чтобы начать запись.
Во время записи на кнопке будет отображаться таймер, произнесите вашу речь в микрофон.
Нажмите ту же кнопку еще раз, чтобы остановить запись.
После остановки программа предложит ввести и подтвердить пароль для шифрования, а затем — сохранить аудиосообщение в файл.
Как прослушать
1. Перетащите файл .v16a на значок программы или на её открытое окно.
2. Откройте файл двойным кликом, для этого должна быть настроена ассоциация файлов:
Нажмите на кнопку с иконкой "вилки" (
) для интеграции с системой.
Если интеграция была включена в предыдущей версиии программы, отключите её (нажав на кнопку ещё раз), а затем включите снова.
Это необходимо, чтобы зарегистрировать новый формат аудиофайлов .v16a в системе.
После ввода верного пароля начнется циклическое воспроизведение аудио.
Чтобы остановить его, просто нажмите на кнопку, которая теперь будет отображать таймер воспроизведения (■).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
https://forum.antichat.xyz/attachments/4948634/img_d16164097b.png
guidesoul
28.10.2025, 20:51
Улучшение безопасности аудиосообщений
Реализована немедленная и принудительная очистка всех временных буферов, в которых хранятся расшифрованные аудиоданные.
Как при записи, так и при воспроизведении, сырой звук больше не задерживается в оперативной памяти после обработки.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
29.10.2025, 09:01
Справа от кнопки записи аудио (●) добавлена кнопка паузы (||)
Кнопка неактивна по умолчанию и становится доступной только во время записи или воспроизведения аудиосообщения.
Позволяет временно остановить запись/воспроизведение и затем возобновить процесс с того же места.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
https://forum.antichat.xyz/attachments/4948647/img_c612e9a343.png
guidesoul
29.10.2025, 19:24
Добавлена возможность сохранять расшифрованное аудио
Для сохранения нажмите горячую клавишу Alt + S во время прослушивания аудиосообщения.
Откроется стандартное диалоговое окно "Сохранить как...".
Аудиоданные из оперативной памяти будут сохранены в формате .wav.
Это позволяет прослушивать файл в любых стандартных плеерах (MPC, VLC и др.) или проводить его детальный анализ в аудиоредакторах (например, Adobe Audition).
Улучшена потокобезопасность механизма записи звука
Существовала потенциальная гонка данных при доступе к буферу g_rawAudioBuffer.
Поток, отвечающий за запись звука (waveInProc), мог модифицировать буфер одновременно с тем, как основной поток программы пытался его прочитать и обработать после остановки записи.
Реализована синхронизация доступа к аудиобуферу с использованием критической секции (CRITICAL_SECTION).
Это гарантирует, что запись и чтение буфера никогда не происходят одновременно.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.10.2025, 14:30
Устранены щелчки, возникавшие при остановке воспроизведения аудио.
Теперь, при нажатии кнопки "стоп", сначала выполняется команда паузы с небольшой задержкой, а затем — полная остановка.
В начале и в конце записанного аудио могли возникать щелчки.
Для устранения щелчков теперь добавляются короткие Fade In/Out по 20 мс.
Раньше при сохранении прослушиваемого аудио в WAV-файл диалоговое окно предлагало стандартное название (decrypted_audio.wav).
Теперь программа формирует название на основе исходного файла.
Например, если вы прослушиваете файл секретныйразговор.v16a, при сохранении будет предложено имя секретныйразговор.wav.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.10.2025, 20:31
Устранён негромкий щелчок при снятии с паузы во время воспроизведения аудио.
Это достигнуто за счёт плавного нарастания (fade-in) громкости в момент возобновления звука.
Сжатие, шифрование и запись файла теперь выполняются в отдельном потоке (std::thread), что устраняет блокировку основного потока пользовательского интерфейса.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
31.10.2025, 22:41
Проблема с отсутствием звука в версии ru_x64
Если используете файл Bastion V16 ru_x64.exe и при воспроизведении расшифрованного аудио нет звука, просто переименуйте файл.
Было: Bastion V16 ru_x64.exe
Станет: Bastion V16 ru_x63.exe (или _x65, или любое другое число)
Или
Было: Bastion V16 ru_x64.exe
Станет: Bastion V16.exe
Это абсолютно безопасно и полностью решает проблему.
guidesoul
05.11.2025, 13:39
Сохранение файлов из Телеграм
Теперь при смене названия файла сохраняется его расширение (например, .reg, .txt).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.11.2025, 20:42
Добавлена проверка статуса интеграции с системой
Теперь кнопка интеграции (
) может отображать три состояния, чтобы дать более точную информацию:
Красный цвет
Интеграция отключена.
Зеленый цвет
Интеграция включена и работает корректно.
Путь к программе, записанный в системном реестре, совпадает с путем к запущенному файлу.
Оранжевый цвет (новый)
Обнаружено несоответствие.
Оранжевый цвет кнопки — это сигнал о том, что записи в реестре Windows существуют, но они указывают на неверное имя или расположение исполняемого файла программы.
Чаще всего это происходит в двух случаях:
1. Например, после включения интеграции вы изменили имя с Bastion V16 ru.exe на Bastion.exe.
2. Переместили программу в другую папку. Путь к файлу изменился, и старые записи в реестре стали недействительными.
Что это означает
Когда значок оранжевый, вызов "Бастиона" из контекстного меню Проводника или открытие файлов .v16 двойным щелчком может не сработать, так как система не сможет найти программу по старому пути.
Как это исправить
Нажмите на оранжевую кнопку один раз.
Программа удалит старые, некорректные записи из реестра, и значок станет красным.
Нажмите на кнопку еще раз.
Программа создаст новые, правильные записи, которые будут соответствовать текущему имени и расположению файла.
Значок станет зеленым, и интеграция снова будет работать.
Это изменение делает поведение программы более предсказуемым и помогает избежать ситуаций, когда интеграция "молча" перестает работать после перемещения или переименования файла.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
06.11.2025, 14:32
Добавлена возможность обмениваться зашифрованными аудиосообщениями через Телеграм
В настройках интеграции с Телеграм (Alt + T) установите следующие флажки:
Включить интеграцию с Телеграм
Автоматически расшифровывать при получении
Отправка аудиосообщения
Чтобы начать запись, нажмите и удерживайте правую кнопку мыши на кнопке записи ( ● ).
Произнесите речь, пока кнопка зажата.
Отпустите правую кнопку мыши, чтобы завершить запись.
Сразу после этого, если пароль не был введен в главном окне, появится диалоговое окно для ввода.
После подтверждения пароля ваше аудиосообщение будет зашифровано и отправлено.
Получение и прослушивание
При получении аудиосообщения в окне чата появится уведомление в следующем формате:
[Имя отправителя]
Нажми, чтобы прослушать аудиосообщение 1...
Чтобы начать воспроизведение, нажмите левой кнопкой мыши по этой надписи.
Программа запросит пароль для расшифровки, если пароль не был введен в главном окне.
Сохранение аудиозаписи
Во время прослушивания аудиосообщения вы можете сохранить его на диск в виде несжатого .wav файла.
Для этого используйте сочетание клавиш Alt + S.
Если не хотите прослушивать аудиосообщения напрямую в "Бастионе", а предпочитаете сохранять их как файлы, то в настройках интеграции с Телеграм (Alt + T) снимите флажок:
Автоматически расшифровывать при получении
В этом режиме при получении аудиосообщения программа не будет пытаться его воспроизвести, а сразу предложит сохранить зашифрованный файл (.v16a) на диск.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
07.11.2025, 09:31
Теперь при отправке аудиосообщения появляется кликабельная запись, позволяющая прослушать отправленный файл.
Сообщение отформатировано жирным шрифтом и имеет вид:
[Вы]
Отправлено аудиосообщение 1...
Обновлен формат для входящих аудиосообщений и также являются кликабельными для прослушивания:
[Имя отправителя]
Получено аудиосообщение 1...
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.11.2025, 08:34
Исправление и повышение стабильности
Ранее, если после отправки аудиосообщения изменить или удалить пароль в главном окне, отправленное сообщение всё равно можно было прослушать без повторного ввода и проверки пароля.
Теперь для прослушивания любого аудиосообщения (как полученного, так и отправленного) требуется корректный пароль, который введён в главном окне на момент воспроизведения.
Если пароль неверный или отсутствует, программа запросит его, как и при расшифровке обычного сообщения.
Исправлена редкая ошибка состояния при остановке воспроизведения аудио.
В некоторых случаях нажатие на кнопку остановки воспроизведения аудио могло немедленно инициировать новую запись (кнопки интерфейса, отвечающие за запись и паузу, становились красными).
Теперь нажатие на кнопку остановки воспроизведения корректно завершает текущее действие, не вызывая случайного запуска записи.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
11.11.2025, 20:43
Улучшено перетаскивание текста
Добавлена поддержка сохранения форматирования (цвет, списки, выделение) при перетаскивании текста из таких программ, как WordPad и LibreOffice Writer.
Весь цикл работы — от импорта текста до его шифрования и последующей расшифровки — теперь сохраняет исходное форматирование.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.11.2025, 08:26
Улучшена работа с форматированием и темами
Исправлена ошибка, при которой перетаскивание текста из других приложений в тёмной теме делало его нечитаемым.
Теперь цвет текста автоматически адаптируется.
При сохранении RTF-файла из тёмной темы текст теперь всегда будет стандартного чёрного цвета для лучшей совместимости с другими редакторами.
Устранён баг, из-за которого программа некорректно предлагала сохранить простой текст как .rtf.
Логика определения форматирования стала точнее и теперь реагирует только на реальные стили (жирность, курсив и т.д.).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
21.11.2025, 10:07
Усовершенствован алгоритм потокового шифрования (без AEAD)
Внесена корректировка в механизм обновления состояния генератора псевдослучайных чисел.
Теперь состояние обновляется (перемешивается) гарантированно после каждого блока данных, что обеспечивает строгое соответствие криптографическим спецификациям и исключает любые статистические аномалии.
Важные изменения
Из-за того, что алгоритм стал выполнять больше вычислений на каждом шаге, нагрузка на процессор возросла.
Скорость работы KDF (генерации ключа) и скорость шифрования файлов в этом режиме теперь соответствуют показателям режима AEAD.
Это плата за гарантированную криптостойкость каждого байта данных.
Рекомендуется провести повторный тест бенчмарка для подбора комфортного количества раундов.
В связи с усилением алгоритма, формат бинарных данных изменен.
Файлы, зашифрованные в предыдущих версиях без использования AEAD, потребуют старой версии программы для расшифровки.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
21.11.2025, 16:35
Горячие клавиши "Бастион V16"
Работа с текстом
Ctrl + A — Выделить весь текст
Ctrl + C — Копировать
Ctrl + X — Вырезать
Ctrl + V — Вставить
Ctrl + Z — Отменить действие
Ctrl + Y — Вернуть действие
Delete — Удалить
Основные функции
Ctrl + Enter — Шифровать
Ctrl + Shift + Enter — Расшифровать
Ctrl + Alt + Enter — Шифровать буфер обмена
Shift + Alt + Enter — Расшифровать буфер обмена
Ctrl + G — Сгенерировать пароль (случайный)
Alt + P — Сгенерировать пароль из кодовой фразы
Технически Alt + P не генерирует пароль мгновенно, а подготавливает поле: очищает его и вставляет приглашение "Введите кодовую фразу..."
Сама генерация происходит по нажатию кнопки "Генерировать пароль" (или Ctrl + G) после ввода фразы
Ctrl + F — Найти и заменить
Ctrl + Shift + W — Очистить всё (память и поля)
Ctrl + Shift + S — Отправить (Почта или Телеграм)
Аудио и Телеграм
Alt + R — Запись / Стоп аудиосообщения
Alt + T — Настройки Телеграм
Alt + S — Сохранить расшифрованное аудио (.wav)
Работа с файлами
Ctrl + O — Открыть файл
Ctrl + S — Сохранить файл
Дополнительно
Alt + Q — Показать QR-код (Двойной клик по QR-коду сохраняет его в PNG)
Alt + Стрелки (Вверх/Вниз) — Изменение размера окна (Только в окне QR-кода)
Alt + Кнопка "Свернуть" — Свернуть программу в трей (фоновый режим)
Alt + B — Тест производительности
Alt + M — Интеграция с Windows
Ctrl + Колесико — Масштаб текста
Управление мышью
Нажатие колесика (на тексте) — Быстрая очистка текстового поля
Нажатие колесика (на поле "Подтверждение пароля") — Скопировать пароль из первого поля
Удержание правой кнопки мыши (на кнопке Записи ●) — Записать и сразу отправить аудиосообщение в Телеграм (если настроена интеграция)
Нажатие левой кнопки мыши на текст вида Получено аудиосообщение N... или Отправлено аудиосообщение N... — Воспроизводит соответствующую аудиозапись
Перетаскивание файлов
Перетаскивание без клавиш
Шифрует или расшифровывает файл/папку с сохранением результата рядом с оригиналом
Если перетащить PNG-изображение:
Сначала попытается извлечь скрытые данные
Если данных нет (и в поле программы есть текст) — предложит зашифровать текущий текст в это изображение
Alt + Перетаскивание
Шифрует или расшифровывает файл/папку с возможностью выбрать новое имя или место сохранения (диалог "Сохранить как...")
Ctrl + Перетаскивание
Безвозвратно уничтожает перетаскиваемый файл или папку (перезапись случайными данными)
Shift + Перетаскивание
Одиночный агент: Внедряет файл в одну случайную системную папку под видом системного файла
Ctrl + Shift + Перетаскивание
Сеть агентов: Открывает диалог выбора количества (от 2 до 7)
Внедряет копии файла в разные системные папки для надежности
Ctrl + Alt + Перетаскивание
Отправляет файл в Телеграм (если настроена интеграция)
guidesoul
24.11.2025, 09:10
Полностью переписана функция _permute_state_internal_sse2, которая используется программой на процессорах старых поколений (где отсутствует набор инструкций AVX2).
Вместо медленных скалярных операций теперь задействованы 128-битные векторные инструкции (SSE2 и SSSE3).
Это позволяет обрабатывать 4 числа состояния одновременно на протяжении всего цикла, удерживая данные в регистрах процессора и минимизируя медленные обращения к оперативной памяти.
Оптимизированный алгоритм математически полностью синхронизирован с базовой версией (корректно реализованы этапы линейной обратной связи и горизонтального смешивания с разными ротациями).
Это гарантирует 100% успешную расшифровку файлов, созданных любыми предыдущими версиями программы.
Средний прирост производительности составил ~9%.
Скорость генерации ключа (KDF): +9.6%
Скорость шифрования данных: +8.5%
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.11.2025, 13:57
Полностью переписана функция _permute_state_internal_original, которая используется программой на современных процессорах (поддерживающих набор инструкций AVX2).
Вместо базовой реализации теперь задействованы 256-битные векторные инструкции AVX2.
Это позволяет обрабатывать 8 чисел состояния одновременно (вместо 4-х в SSE2 или 1-го в скалярном режиме), максимально эффективно используя широкие регистры процессора.
Для сложных операций смешивания данных между ячейками состояния применены быстрые инструкции перестановки (permutevar8x32), что исключает лишние такты вычислений.
Оптимизированный алгоритм математически полностью синхронизирован с базовой версией (корректно обработаны границы 128-битных блоков внутри 256-битного регистра).
Это гарантирует 100% успешную расшифровку файлов, созданных любыми предыдущими версиями программы.
Средний прирост производительности составил ~20%.
Скорость генерации ключа (KDF): +19.1%
Скорость шифрования данных: +20.6%
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
24.11.2025, 19:47
Количество раундов хеширования (KDF) при создании пароля из кодовой фразы (Alt + P) вынесено в файл настроек (параметр kdf_rounds_for_phrase = 50000).
По умолчанию 50 000 итераций, через которые проходит ваша фраза перед превращением в криптостойкий пароль.
Важно
Если используете кодовые фразы для получения одинаковых паролей на разных устройствах или передаете фразу другому пользователю, убедитесь, что значение этого параметра в файлах настроек совпадает.
При разном количестве раундов из одной и той же фразы будут генерироваться совершенно разные пароли.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
Я в Телеграм
@evgenyguidesoul
ВК
vk.com/guidesoul
guidesoul
25.11.2025, 22:15
Добавлена возможность сброса размера шрифта к значению по умолчанию клавишами Ctrl + 0 (ноль).
Увеличить шрифт: Ctrl + Колесо мыши вверх (вперед)
Уменьшить: Ctrl + Колесо мыши вниз (назад)
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
27.11.2025, 07:50
Оптимизирован алгоритм управления сетевым потоком
Перезапуск процесса получения сообщений теперь происходит только при изменении критически важных настроек (Токен, ID чата, Прокси/Tor), что исключает ожидание таймаута при смене локальных опций.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
27.11.2025, 20:56
Улучшена функция CleanRamAndSensitiveVariables
Добавлена принудительная очистка глобальных аудио-буферов (g_rawAudioBuffer, g_playbackBuffer) и низкоуровневых буферов драйвера.
Добавлена функция SecureZeroAVX для обнуления всех YMM-регистров процессора, где могли временно находиться части ключей шифрования после операций с памятью.
Перед выполнением проверяется поддержка AVX и XSAVE через CPUID и XGETBV, что предотвращает сбои на старых CPU без поддержки векторных инструкций.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.11.2025, 07:37
Улучшена функция CleanRamAndSensitiveVariables
Реализована принудительная остановка потока Телеграм и жесткое завершение процесса curl.exe перед началом очистки памяти.
Это гарантирует, что стек фонового потока будет освобожден, а сетевые буферы не останутся висеть в памяти.
Добавлен вызов HeapCompact перед запуском алгоритма перезаписи ОЗУ.
Это объединяет фрагментированные участки освобожденной памяти, позволяя "вайперу" перезаписать данные, которые программа использовала ранее, но уже освободила.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.11.2025, 08:58
Исправлена проблема, из-за которой даже короткий простой текст шифровался как тяжелый RTF-документ.
Теперь, если вы не используете форматирование (цвета, жирный шрифт), размер зашифрованного сообщения будет в 3-4 раза меньше (например, для одной цифры размер уменьшился с ~330 до ~88 символов).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
28.11.2025, 20:18
Улучшена функция CleanRamAndSensitiveVariables
Добавлен вызов EmptyWorkingSet в конце процедуры очистки.
Это принуждает систему сбросить уже «зашумленные» страницы памяти из физической RAM, окончательно заметая следы на уровне менеджера памяти Windows.
Примечание
Несмотря на то, что в файл подкачки сбрасываются уже перезаписанные (зашумленные) данные, для обеспечения максимальной безопасности рекомендуется отключить файл подкачки и гибернацию в настройках системы.
В режим «Паника» (Panic Button) добавлено сканирование папки %TEMP%.
Программа теперь находит и безвозвратно уничтожает зависшие временные файлы (BST*.tmp, shd*.tmp), которые могли остаться от работы сетевых модулей (curl) или аудиозаписи.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
29.11.2025, 08:55
Улучшена функция CleanRamAndSensitiveVariables
Флаг режима "Паника" (g_isPanicShutdown) перенесен в самое начало функции.
Это гарантирует, что фоновые потоки остановятся немедленно, не успев создать новые данные во время очистки.
Добавлен цикл (5 проходов) с помещением пустых данных в буфер обмена.
Это помогает вытеснить старые записи из "Журнала буфера обмена" Windows.
Добавлено принудительное уничтожение окон текстовых полей в режиме паники.
Это освобождает скрытые буферы и OLE-объекты, которые Windows может держать в памяти даже после очистки текста.
Логика очистки полей ввода переведена с std::wstring на std::vector.
Это предотвращает оптимизацию малых строк (SSO) и гарантирует физическую перезапись памяти нулями.
В список шаблонов для удаления временных файлов добавлен BASTION*.tmp.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
29.11.2025, 21:45
Защита поля ввода кодовой фразы (Alt + P)
Теперь клавиша Backspace не стирает приглашение "Введите кодовую фразу (предложение): ", блокируясь на границе ввода пользователя.
Это защищает интерфейс от случайного нарушения форматирования.
Генерация пароля из кодовой фразы (Alt + P) позволяет превратить любое запоминаемое предложение в сложный криптографический пароль, который не нужно записывать.
Достаточно помнить только фразу.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
30.11.2025, 09:56
Изменение значений числовых полей колесом мыши
Раунды KDF с шагом 10000.
Длина пароля и губки с шагом 1.
Рэйт с шагом 4 (с автоматическим выравниванием кратности).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
02.12.2025, 10:45
Улучшена надежность внедрения агентов
Реализован принцип "Внедрить любой ценой".
Теперь, если вы выбрали для внедрения 5 агентов, будет внедрено именно 5 агентов.
Программа игнорирует ошибки доступа и блокировки системных папок, продолжая поиск мест для маскировки "до победного", пока заданное количество копий не будет размещено.
Как это работает
Shift + перетаскивание файла на окно
Одиночный агент: Файл внедряется в одну случайную системную папку под видом системного.
Ctrl + Shift + перетаскивание файла на окно
Группа агентов: Открывается диалог выбора количества (от 2 до 7).
Внедрение группы агентов обеспечивает максимальную надежность хранения.
Если один из файлов будет случайно удален, поврежден или обнаружен, у вас останутся запасные пути доступа к информации через остальных агентов.
Это распределенный бэкап, скрытый у всех на виду.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
02.12.2025, 19:32
Добавлена поддержка внедрения сразу нескольких файлов и папок.
Теперь группа объектов упаковывается в единый архив перед маскировкой, аналогично обычному групповому шифрованию.
Выделите несколько файлов/папок и перетащите на окно программы с зажатым Shift или Ctrl + Shift.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
04.12.2025, 08:39
Гибридные аудио-текстовые сообщения
Теперь формат .v16a поддерживает хранение текста вместе с аудиозаписью.
Это позволяет добавлять пояснения, расшифровки или скрытые комментарии к вашим голосовым заметкам.
Как это работает
- Откройте файл .v16a и введите пароль для начала воспроизведения.
- Прямо во время прослушивания введите или вставьте текст в главное окно программы.
- Нажмите кнопку Сохранить.
Программа перешифрует файл, сохранив исходное аудио и новый текст.
При следующем открытии вы услышите запись и увидите сохраненный текст.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.12.2025, 09:19
Компактный режим шифрования (Unicode)
Добавлена опциональная возможность кодировать зашифрованные текстовые данные в диапазон символов Unicode (CJK иероглифы).
Это позволяет сократить длину сообщения и сделать шифр менее подозрительным для систем анализа трафика, так как он выглядит как обычный текст на азиатских языках.
Как включить
- Запустите и закройте программу.
- Откройте появившийся файл settings.txt.
- Найдите строку "use_unicode_encoding": false и замените её на "use_unicode_encoding": true.
- Сохраните файл и запустите программу.
Сравнение длины шифра (на примере слова "Тест")
Стандартный режим (Base64):
GNp/x9y8psOEsvGRweI4ECl7cLN6mzC0O+Xn7pOo8u5MyzQzdK6JCQ 0bmaezotk0i7tneUr82ryCbagMrZZw2e1xZUG8Kr0=
(Длинная строка, очевидный шифр)
Компактный режим (Unicode):
竰쓭柲砰릎巿ꎲꕉ椐嫇牞挘跗蕚弼뛝 ꆧ쮖댥蹇皴묷橩얇滈蹳籯補衕罊쫉쬧 잀멧ꛊ뺐
(Короткая строка, меньше привлекает внимания)
Примечание
При включенном Unicode-режиме, опция "Маска" визуально не меняет вид текстового шифра (он всегда выглядит как иероглифы).
Настройка "Маска" в этом режиме влияет только на внутреннюю структуру данных при шифровании файлов.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
05.12.2025, 22:02
Кнопка "Отправить" (по почте, когда отключена интеграция с Телеграм) теперь распознает зашифрованный текст с включенной опцией Unicode кодировка, и не блокирует действие.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
07.12.2025, 07:45
Гибридные аудио-контейнеры
Теперь при записи голосового сообщения текст, находящийся в главном окне редактора, автоматически шифруется и сохраняется вместе с аудиопотоком в файл .v16a.
При открытии такого файла получатель услышит голос и увидит сопроводительный текст.
Как это работает
- Введите (вставьте) текст в главное окно программы или откройте текстовый файл.
- Нажмите кнопку записи аудио (●) и произнесите сообщение.
- Нажмите кнопку остановки (■).
При сохранении файла (.v16a) введенный текст будет добавлен к аудиозаписи.
При последующей расшифровке этого файла программа воспроизведет звук и восстановит текст в поле редактора.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
07.12.2025, 09:22
Добавлена поддержка форматирования текста.
Теперь при сохранении файла .v16a сохраняются стили (жирный шрифт, цвета, курсив и т.д.).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.12.2025, 09:42
Реализовано переключение кодировки выходного текста
Теперь, нажав правой кнопкой мыши на кнопку "Шифровать", можно выбрать между стандартным Base64 и Unicode-кодировкой через меню.
Примечание
При включенном Unicode-режиме, опция "Маска" визуально не меняет вид текстового шифра (он всегда выглядит как иероглифы).
Настройка "Маска" в этом режиме влияет только на внутреннюю структуру данных при шифровании файлов.
Исправлена ошибка, из-за которой сбрасывалось форматирование текста (цвета, жирный шрифт, курсив и т.д.) при изменении масштаба с помощью Ctrl + Колесо мыши.
Исправлена аналогичная ошибка при сбросе размера шрифта (Ctrl + 0).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.12.2025, 15:55
Добавлено сочетание клавиш Alt + E для быстрого открытия окна выбора кодировки (Base64 / Unicode).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
08.12.2025, 21:24
Исправлена проблема, из-за которой аудиофайлы (.v16a) с текстовым вложением определялись как поврежденные при получении из Телеграм.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.12.2025, 07:46
Улучшен режим "Паника" (красная кнопка в интерфейсе)
Теперь оперативная память очищается максимально полно, игнорируя пользовательское ограничение в настройках (ram_cleanup_percentage).
Это гарантирует уничтожение следов данных даже при отключенной опции очистки памяти.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.12.2025, 09:48
Добавлена возможность вызова генератора паролей из кодовой фразы (Alt + P) нажатием правой кнопки мыши по кнопке "Генерировать пароль".
Чем полезна генерация пароля из кодовой фразы
Если вы помните свою секретную фразу (например, строчку из редкой книги или личную ассоциацию), вы сможете восстановить пароль для расшифровки файла на любом компьютере, где есть "Бастион".
При передаче зашифрованного файла коллеге, вам не нужно диктовать сложный набор символов (j#9dL!2...).
Достаточно сказать кодовую фразу (например, "Синий слон летит на север").
Коллега введет её в программу, и она сама преобразует фразу в тот же самый сложный ключ.
Человеку свойственно забывать случайные наборы символов.
Длинное, осмысленное предложение запомнить гораздо проще, при этом с точки зрения математики оно дает отличную защиту от взлома.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.12.2025, 10:32
Добавлена возможность быстрой отправки файла в Телеграм
Нажмите правую кнопку мыши по кнопке "Отправить", чтобы выбрать файл через диалоговое окно (функция доступна при включенной интеграции).
Вы также можете отправить файл или папку, перетащив их на окно программы с зажатыми клавишами Ctrl + Alt.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
09.12.2025, 22:42
Кнопка "Очистить" теперь работает по усиленному протоколу:
пароли и текст сообщений физически перезаписываются в оперативной памяти перед удалением.
Также блокируется возможность случайного восстановления данных через команду отмены (Ctrl + Z).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
xzotique
09.12.2025, 22:56
Не думал что встречу НАСТОЛЬКО масштабную работу
Сохранил для себя, рано или поздно возьмусь за изучение!
guidesoul
10.12.2025, 10:42
Безопасность приёма файлов
Отключено автоматическое появление диалогового окна сохранения для входящих файлов из Телеграм.
Вместо этого в чат выводится сообщение с именем отправителя.
[@evgenyguidesoul]
Получен файл: Секретно.doc
Чтобы сохранить файл, нажмите на название (выделено жирным шрифтом).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
10.12.2025, 10:47
xzotique, большое спасибо!
Просто увлёкся, и понесло... )
guidesoul
10.12.2025, 12:09
Добавлена поддержка ANSI (Windows-1251) кодировки, которая стандартна для старых текстовых файлов на русском языке в Windows.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
11.12.2025, 07:29
Обновлена логика кнопки "Расшифровать"
Устранена ошибка "Base64: некорректная длина" при ручной расшифровке сообщений из Телеграм.
Реализован комбинированный алгоритм: сначала выполняется поиск и дешифровка шифротекста построчно (для обработки логов чатов), и только при неудаче — попытка расшифровать весь текст целиком (для файлов).
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
11.12.2025, 09:24
Исправляю баг при расшифровке длинного текста из-за крайнего обновления, пока не качать
guidesoul
11.12.2025, 09:55
Устранено появление "мусора" (RTF-тегов) при расшифровке текста
Если зашифрованный текст содержал форматирование (например, подсветку синтаксиса из Visual Studio), после расшифровки оно отображалось как текст.
Теперь программа автоматически определяет наличие RTF-кода и корректно рендерит его.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
11.12.2025, 20:14
Переписан алгоритм безопасного затирания текста (SecureWipeEditControl)
Вместо медленной операции редактирования (EM_REPLACESEL), вызывающей пересчет разметки, используется быстрый сброс содержимого (SetWindowTextW) с предварительной подменой данных на "мусор".
Теперь операция выполняется мгновенно без потери качества затирания данных в памяти.
Аналогичная оптимизация применена к функции очистки памяти (CleanRamAndSensitiveVariables), что обеспечило мгновенное удаление данных из полей ввода при экстренном завершении работы.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.12.2025, 09:42
В функции OnEncryptClick и OnDecryptClick добавлена блокировка отрисовки (WM_SETREDRAW: FALSE) на время вставки текста в RichEdit.
Добавлен принудительный вызов RedrawWindow с флагами RDW_INVALIDATE | RDW_UPDATENOW | RDW_ALLCHILDREN после тяжелых операций.
Это должно решить проблему с некорректной перерисовкой окна (графические артефакты) после использования ресурсоемких алгоритмов.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.12.2025, 09:44
Уважаемые знатоки, внимание, вопрос
guidesoul
12.12.2025, 11:24
Отключение поддержки RTF-форматирования
Реализована скрытая настройка, позволяющая шифровать данные как чистый текст (TXT), игнорируя цвета, шрифты и активные ссылки.
Это позволяет немного увеличить скорость шифрования (особенно на больших текстах) и уменьшить итоговый размер шифротекста за счет отсутствия служебных данных RTF.
Как активировать режим "Только текст"
- Запустите и закройте программу.
- Откройте появившийся файл settings.txt.
- Найдите строку "disable_rtf": false и замените её на "disable_rtf": true.
- Сохраните файл и снова запустите Бастион.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.12.2025, 16:40
Добавлена возможность отключить поддержку RTF в меню настроек шифрования
Нажмите правой кнопкой мыши по кнопке "Шифровать" или горячими клавишами Alt + E.
TXT / RTF (по умолчанию): программа автоматически сохраняет цвета и шрифты, если они есть.
TXT: принудительное отключение RTF.
Игнорирует форматирование, что уменьшает итоговый размер шифра и повышает скорость работы.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
12.12.2025, 21:35
Настройки форматирования текста (RTF / TXT) теперь учитываются при сохранении и перезаписи аудиосообщений (.v16a).
Если выбрана опция "TXT", текст в аудиофайле будет сохранен без форматирования (RTF-тегов).
Будьте внимательны перед пересохранением:
если в тексте есть форматирование, а в настройках включена опция "TXT", все стили будут утеряны.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
13.12.2025, 09:12
Очистка при старте
Реализована функция CleanupStartupTempFiles, которая при запуске сканирует системную папку TEMP и директорию программы.
Она выявляет и уничтожает временные файлы, созданные программой (BST*.tmp, shd*.tmp), обеспечивая отсутствие утечек данных после некорректного закрытия приложения.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
13.12.2025, 22:05
Исправлена ошибка, из-за которой изменения в списке "Разрешенные User ID" (белый список) применялись с задержкой.
Теперь настройки вступают в силу мгновенно для каждого входящего сообщения.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
14.12.2025, 08:43
Оптимизирован процесс расшифровки (OnDecryptClick)
Анализ структуры данных теперь выполняется до запроса пароля.
Программа автоматически определяет, является ли текст шифром, и не требует ввода пароля, если данные не зашифрованы.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
14.12.2025, 18:55
Реализована мульти-рассылка в Телеграм
Добавлена поддержка отправки сообщений нескольким получателям одновременно.
Теперь в поле "ID чата" можно указывать несколько адресов (примерно 35–40 ID пользователей или каналов, в зависимости от длины ID) через запятую.
Преимущества
Пользователь может указать свой основной аккаунт и дополнительный "сейф-чат" (или аккаунт доверенного лица).
Если доступ к одному аккаунту будет потерян, зашифрованная информация останется во втором.
Если "Бастион" используется для передачи критически важной информации, теперь не нужно тратить время на перенастройку адресата.
Одно нажатие кнопки "Отправить" доставит шифровку сразу всей команде.
Исключает необходимость постоянно менять настройки, если пользователь регулярно обменивается шифровками с разными людьми.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
guidesoul
14.12.2025, 21:19
Расширенное автошифрование
Для исключения человеческого фактора реализовано автоматическое шифрование отправляемых файлов в Телеграм для предотвращения случайной утечки незащищенных данных.
Если включена опция "Автоматически шифровать при отправке", программа зашифрует обычные файлы перед отправкой, но пропустит уже готовые контейнеры .v16 и .v16a, чтобы избежать избыточного двойного шифрования.
В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot