Вы должны войти, чтобы создавать сообщения и темы.

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

1◄Страница 9 из 24► 24

Устранено дублирование кода шифрования файлов
Теперь вся эта логика вынесена в единую новую функцию "DoEncryptFile".

Ссылка та же

Лайкнул OnePunchMan
OnePunchMan

Улучшения функции уничтожения файлов

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

Производительность функции уничтожения значительно улучшена за счёт оптимизации дисковых операций и обработки сообщений Windows, что предотвращает зависание интерфейса даже при работе с папками, содержащими тысячи файлов.
Размер буфера для перезаписи данных установлен в 1 МБ (const DWORD bufferSize = 1024 * 1024;), что обеспечивает оптимальный баланс между скоростью и эффективностью при обработке как больших файлов (объёмом в гигабайты), так и папок с множеством мелких файлов.

Для пользователей, работающих с очень большими объёмами данных (например, файлами или папками размером более 100 ГБ), доступна возможность увеличения размера буфера (например, до 4 МБ) в исходном коде программы.

Ссылка та же

Лайкнул Nemiro56
Nemiro56

Внедрен адаптивный буфер для функции уничтожения файлов

Маленькие файлы (до 1 МБ):
Буфер создается точно по размеру файла, это экономит ресурсы при работе с тысячами мелких файлов.

Средние файлы (от 1 МБ до 256 МБ):
Используется буфер размером 1 МБ, который является оптимальным для большинства стандартных файлов.

Крупные файлы (свыше 256 МБ):
Размер буфера увеличивается до 4 МБ.
Это позволяет сократить количество системных вызовов и может дополнительно ускорить процесс уничтожения очень больших данных, таких как видеоархивы или образы дисков.

Ссылка та же

"Раунды губки"

В настройках шифрования вы можете заметить параметр "Раунды губки", который можно установить в диапазоне от 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 и мощного алгоритма губки — создает многоуровневую и чрезвычайно надежную защиту.

Ссылка та же

Шифрование папок

Вместо логически сложного группового шифрования и расшифровки файлов была добавлена более простая функция — шифрование папок.

Соберите все необходимые файлы и подпапки в одну общую папку.

Перетащите эту папку на значок программы "Бастион V16" или прямо в её открытое окно и введите пароль для шифрования.
Программа автоматически упакует всё содержимое папки в единый зашифрованный файл.

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

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

Удалены информационные сообщения, информирующие об успешном уничтожении файлов.

Ссылка та же

dehote9223, Привет.
Выставлены значения по умолчанию. Взял тестовую папку на 100 mb. Так и не дождался окончания шифрования, зависает наглухо. Может какие значения уменьшить?

Оптимизация производительности SpongeV16::absorb для больших файлов

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

Ранее, при обработке данных, функция последовательно удаляла каждый обработанный блок из начала внутреннего буфера (std::vector).
Такая операция (erase в начале вектора) крайне затратна, так как при каждом вызове она сдвигает все последующие данные в памяти.

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

Теперь этот процесс был переработан

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

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

Ссылка та же

Андрей, большое спасибо!

Лайкнули Андрей и OnePunchMan
АндрейOnePunchMan

dehote9223, 
Зашифровал папку размером 130mb (zip) достаточно быстро. Но при расшифровке опять требует двойной пароль для шифрования. Т.е не расшифровывает. С маленьким размером папки работает корректно.

Исправлена критическая ошибка при работе с большими файлами

В предыдущей версии программы возникала ошибка при попытке расшифровать файлы, размер которых после шифрования превышал ~70 МБ.
Программа некорректно сообщала, что "данные повреждены", хотя на самом деле файл был зашифрован корректно.

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

Лимит на размер обрабатываемых данных был увеличен до 1 ГБ.

Ссылка та же

Андрей, спасибо, тоже обратил внимание!

Лайкнул Андрей
Андрей

Горячие клавиши "Бастион 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 + Перетаскивание
Расшифровывает файл или папку с возможностью выбрать новое имя или место для сохранения

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

Лайкнул OnePunchMan
OnePunchMan

Улучшена интеграция с системой (Alt + M или кнопкой с иконкой 🔌)
Теперь пункт "Отправить в Бастион V16" появляется в контекстном меню при нажатии правой кнопкой мыши не только для файлов, но и для папок.

Ссылка та же

Переход на режим Duplex AEAD

Предыдущая надежная схема "Encrypt-then-MAC" (Шифрование, затем Аутентификация) заменена на более совершенный однопроходный режим Duplex.

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

Укрепление безопасности и соответствие стандартам

Режим Duplex не только быстрее, но и приводит архитектуру "Бастиона" в соответствие с передовыми отраслевыми стандартами.
Этот же принцип лежит в основе Ascon — алгоритма, который был выбран Национальным институтом стандартов и технологий США (NIST) в качестве нового мирового стандарта легковесной криптографии.

Duplex обеспечивает надежное разделение доменов (domain separation).
Это означает, что ключ, ассоциированные данные (AD) и сам текст криптографически изолированы друг от друга в рамках единого состояния, что делает систему устойчивой к широкому классу атак.

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

Оптимизация формата шифрования для файлов и папок

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

В результате этого изменения возросла скорость шифрования и расшифровки файлов и папок.
Операции с большими объёмами данных теперь выполняются заметно быстрее, так как процессор больше не тратит время на преобразование данных в текстовый формат Base64 и обратно.

Зашифрованные файлы и папки теперь занимают меньше места на диске (примерно на 25-30% меньше), так как избыточность, создаваемая кодировкой Base64, была полностью исключена.

Важное примечание

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

Ссылка та же


Комментарий модератора:
Здесь мы делимся тем, что нужно протестировать, а не обсуждаем новости.

Цитата: Андрей от 05.09.2025, 19:20

Но при расшифровке опять требует двойной пароль для шифрования. Т.е не расшифровывает.

dehote9223, 
Привет. Та же ошибка.

1◄Страница 9 из 24► 24