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

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

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

Переработан алгоритм тестирования производительности

Предыдущая версия теста измеряла не только скорость самого шифрования, но и два подготовительных, ресурсоемких этапа:
создание ключа из пароля (KDF) и сжатие данных.

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

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

Тест скорости KDF измеряется отдельно и отображается в отчете (раунды/сек).

Ссылка та же

Рефакторинг SpongeV16 для повышения производительности

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

В интерфейс настроек шифрования добавлен новый чекбокс "AEAD"

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

Что такое AEAD и почему это важно

AEAD (Authenticated Encryption) — это режим шифрования, который не только защищает ваши данные, но и проверяет их подлинность.
Именно благодаря ему программа сообщает об ошибке, если вы вводите неверный пароль.

Это как запечатать письмо в конверте не просто клеем, а уникальной восковой печатью.
Если кто-то вскроет конверт и подменит письмо, вы сразу заметите, что печать сломана.

Что происходит при отключении AEAD

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

При снятом флажке программа не будет сообщать об ошибке при неверном пароле.
Она попытается расшифровать данные любым ключом.

Если пароль верный — вы получите исходный текст.
Если пароль неверный — вы получите бессвязный набор символов ("мусор").

Рекомендации по использованию

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

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

Ссылка та же

Лайкнул OnePunchMan
OnePunchMan

Устранена проблема обратной совместимости при расшифровке бинарных файлов

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

Скорректирована работа теста производительности

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

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

Ссылка та же

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

Ссылка та же

Привет. Можно как нибудь снизить % очистки оперативки при выходе? У меня 16 гб, и забивается на 77% в среднем. Приходится сталкиваться с подвисанием запущеных программ. Поэтому использую версию без этого нововведения.

Настройки программы в формате 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,

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

Ссылка та же

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

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

Проведена оптимизация ключевой функции потокового шифрования (stream_cipher_process_V16).

Ключевым изменением стало применение техники "разворачивания цикла".
Вместо обработки одного 64-битного блока данных за одну итерацию, цикл теперь обрабатывает сразу четыре блока (256 бит).

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

В результате, в режиме потокового шифра (когда AEAD выключен), производительность увеличена на ~30%.

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

В файл настроек добавлен параметр ("window_opacity": 250) для изменения уровня прозрачности окна программы.
255 без прозрачности.

Ссылка та же

Усиление защиты для скоростного режима шифрования (без AEAD)

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

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

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

После первого запуска и закрытия программы рядом с программой появится файл settings.txt.

Откройте его и найдите строку "create_hash_file_if_aead_disabled": false.
Измените false на true и сохраните файл.

При шифровании

Если в интерфейсе программы вы отключите опцию AEAD, то после шифрования файла/папки программа автоматически создаст рядом текстовый файл с тем же именем и расширением .hash.txt (например, MyArchive.v16.hash.txt).

Этот файл содержит "цифровой отпечаток" ваших исходных данных.
Храните и передавайте его всегда вместе с основным зашифрованным файлом.

При расшифровке

При расшифровке файла программа автоматически ищет рядом с ним одноименный файл .hash.txt.
Если файл найден, программа проверит целостность расшифрованных данных.

Если проверка провалится, вы увидите предупреждение о том, что введён неверный пароль или данные повреждены.

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

Ссылка та же

Оптимизация производительности ключевых криптографических функций

void absorb (функция "впитывания" данных):
Является основой для обработки входящих данных (текста, файлов, паролей) во всех криптографических операциях.

void squeeze (функция "отжимания" данных):
Отвечает за генерацию псевдослучайного потока для шифрования, а также за формирование хеш-сумм.

generate_effective_key_V16:
В частности, был оптимизирован цикл смешивания блоков памяти в ресурсоёмком (memory-hard) режиме KDF.

Для всех указанных функций был применен метод развертывания циклов (loop unrolling).
Вместо последовательной обработки данных малыми порциями, код был модифицирован для обработки значительно более крупных блоков данных (16-32 байта) за одну итерацию цикла.

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

Ссылка та же

Лайкнул OnePunchMan
OnePunchMan

Оптимизация производительности функций Base64

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

Кодирование:
Прирост производительности: ~473%

Декодирование:
Прирост производительности: ~257%

Ссылка та же

Лайкнул OnePunchMan
OnePunchMan

Привет. Не знаю, насколько это важно, но заметил такое. Если я шифрую папку, которой присвоина собственная иконка, файл desktop.ini с атрибутом "скрытый". После расшифровки у этого файла сбрасывается этот атрибут. Хотелось, что бы после расшифровки, атрибуты сохранялись. (если это возможно).

Дополнительная оптимизация Base64

Кодирование:
Прирост производительности: ~75%

Декодирование:
Прирост производительности: ~10%

Ссылка та же

Андрей привет, сейчас гляну

Сохранение атрибутов файлов

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

Ссылка та же

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

Лайкнул Андрей
Андрей
1◄Страница 15 из 24► 24