Release notes
Фичи- Реализована поддержка ЭЦП Hypericum;
- Реализована поддержка ЭЦП Kryzhovnik;
- Реализована поддержка ЭЦП Shipovnik.
Платформы- Реализована поддержка Android ARM64-v8a;
- Реализована экспериментальная поддержка WebAssembly.
Пакет- PQLR обновлен до версии v1.6;
- OpenSSL 1.1.1 обновлен до версии v1.4;
- Прекращена поддержка OpenSSL 1.0.2;
- Прекращена поддержка патча OpenSSL 1.1.1c;
- pqlr-engines обновлен до версии v0.5;
- Пакет pqlr-android добавлен как отдельный пакет, версия v0.1;
- Обновлена пользовательская документация.
PQLR v1.6Платформы- Реализована поддержка платформ Android ARM64-v8a;
- Реализована экспериментальная поддержка платформы WebAssembly.
Алгоритмы- Реализован алгоритм ЭЦП Kryzhovnik;
- Реализован алгоритм ЭЦП Shipovnik;
- Реализован алгоритм ЭЦП Hypericum;
- Добавлена реализация алгоритма отечественной криптографической хэш-функции ГОСТ 34.11 "Стрибог";
- Реализации отечественных алгоритмов используют ГПСЧ, совместимый с рекомендацией Р 1323565.1.006-2017.
Пакет- Обновлены интерфейсы публичного API;
- Улучшена пользовательская документация.
OpenSSL_1_1_1_pqlr_v1.4API- Реализована поддержка ЭЦП Kryzhovnik в PKI, TLS 1.2 и TLS 1.3;
- Реализована поддержка ЭЦП Hypericum в PKI, TLS 1.2 и TLS 1.3;
- Добавлен публичный API для использования наборов параметров fast_sign, universal и small_sign алгоритма Hypericum в PKI;
- Реализована поддержка ЭЦП Shipovnik в PKI;
- Изменены NID поддерживаемых квантово-устойчивых алгоритмов;
- Реализовано использование PQLR 1.6 в OpenSSL.
Безопасность- Интегрированы патчи безопасности для 1.1.1s и более ранних версий.
Другое- Удален патч-пакет 1.1.1c;
- Добавлены метаданные пакета;
- Произведено дифференцирование документации пакета в зависимости от платформы;
- Улучшена структура пакета.
PQLR-engines v0.5Алгоритмы- Реализован алгоритм ЭЦП Hypericum;
- Реализована поддержка наборов параметров fast_sign, universal и small_sign для алгоритма Hypericum;
- Реализован алгоритм ЭЦП Kryzhovnik;
- Реализован алгоритм ЭЦП Shipovnik;
- Выполнено переключение на PQLR 1.6.
Документация- Пользовательская документация переведена на русский язык;
- Улучшена документация пакета.
PQLR Android v0.1Изменения- Реализована поддержка ЭЦП Falcon для TLS 1.2 и TLS 1.3;
- Реализована поддержка ЭЦП SPHINCS+ для TLS 1.2 и TLS 1.3;
- Реализована поддержка ЭЦП Dilithium для TLS 1.2 и TLS 1.3;
- Реализована поддержка ЭЦП Hypericum для TLS 1.2 и TLS 1.3;
- Реализована поддержка ЭЦП Kryzhovnik для TLS 1.2 и TLS 1.3;
- По умолчанию включена проверка списков отзыва сертификатов (CRL);
- Интегрированы исправления безопасности из upstream.
Пакет- Добавлен пакет pqlr-android;
- В пакет включена пользовательская документация.
Фичи- Добавлен PQLR v1.5;
- Добавлен OpenSSL 1.1.1 v1.3;
- Добавлен OpenSSL 1.0.2 v1.0;
- Добавлен патч OpenSSL 1.1.1c;
- Добавлены движки PQLR v0.4;
- Добавлена пользовательская документация.
PQLR v1.5Алгоритмы- Внедрена реализация алгоритма цифровой подписи Dilithium;
- Добавлен ГПСЧ, совместимый с NIST SP 800-90A. Все алгоритмы переключены на использование этого ГПСЧ в качестве источника энтропии.
Пакет- Добавлена документация для примеров использования;
- Улучшена документация пакета;
- Добавлены отсутствующие метаданные пакета для систем, основанных на gnu/linux;
- Улучшено форматирование результатов тестов производительности.
Платформы- Реализована экспериментальная поддержка платформы Baikal-M.
OpenSSL_1_1_1_pqlr_v1.3API- Реализована поддержка KEM McElice в TLS 1.2;
- Реализована поддержка ЭЦП Dilithium в TLS 1.2 и TLS 1.3;
- Реализована поддержка ЭЦП Falcon в TLS 1.2 и TLS 1.3;
- Выполнено переключение на PQLR 1.5;
- Изменены идентификаторы постквантовых алгоритмов. См. файл openssl/include/openssl/obj_mac.h для фактических значений;
- Добавлены новые наборы шифров с алгоритмом аутентификации SPHINCS+ для OpenSSL 1.1.1 (TLS 1.2);
- Добавлен механизм обмена ключами Saber для OpenSSL 1.1.1 (как для TLS 1.2, так и для TLS 1.3).
Безопасность- Интегрированы патчи безопасности для 1.1.1l и более ранних версий.
Исправление ошибок- Исправлено неожиданное завершение s_server при пустом stdin;
- Исправлен конфликт NID квантово-устойчивых алгоритмов с общей реализацией ГОСТ18;
- Исправлен сбой аутентификации клиента TLS 1.3 через SPHINCS+.
Совместимость- Улучшена совместимость ABI с более старыми версиями glibc.
Другое- В пакет Windows включена пользовательская документация;
- Открытые и секретные ключи печатаются в корректно отформатированном виде;
- Добавлен пакет патча 1.1.1c;
- Улучшен формат пакета;
- Добавлена поддержка квантово-устойчивых алгоритмов в тестовый фреймворк оригинального OpenSSL;
- Обновлена информация о названии компании.
PQLR-engines v0.4Алгоритмы- Реализован алгоритм ЭЦП Dilithium;
- Реализован алгоритм ЭЦП Falcon.
Исправление ошибок- Исправлена проблема с аутентификацией клиента через Sphincs+.
Документация- В пакет включена пользовательская документация;
- Обновлена информация о названии компании.
Совместимость- Улучшена совместимость ABI с более ранними версиями glibc;
- Улучшена регистрация движка для стандартных и исправленных версий OpenSSL.
Другое- Добавлен API для вывода на экран открытых и секретных ключей в корректно отформатированном виде.
PQLR v1.4АлгоритмыClient API- Добавлен новый API для дублирования контекста алгоритма. См. функции <algorithm_name>_duplicate для получения более подробной информации.
Пакет- Упрощены инструкции по установке пакета на Unix-подобных операционных системах.
Исправление ошибок- Удалена документация по внутреннему API;
- Устранен сбой в примере common;
- Уточнены методы обработки фатальных ошибок.
OpenSSL_1_1_1_pqlr_v1.2- Добавлена поддержка Debian9 (stretch);
- Выполнено переключение на PQLR v1.4
Синхронизация с upstream- Интегрированы актуальные патчи из upstream;
- Реализовано использование PQLR v1.0 в OpenSSL.
Документация- Добавлен CHANGELOG.md;
- Добавлен VERSION.txt;
- В имя пакета добавлена версия.
Платформы- Добавлен пакет с бинарными файлами для win32;
- Добавлен пакет с бинарными файлами для gnu/linux.
Алгоритмы- Реализована поддержка алгоритма KEM NewHope в TLS 1.3;
- Реализована поддержка алгоритма ЭЦП SPHINCS+ в TLS 1.3;
- Реализована поддержка алгоритма ЭЦП SPHINCS+ в X.509.
PQLR-engines v0.3- Движки используют OpenSSL, собранный с PQLR v1.4;
- Реализована поддержка Debian9 (stretch).
PQLR v1.3Client API- Добавлена экспериментальная реализация KEM SABER;
- Добавлена экспериментальная реализация ЭЦП Falcon.
Документация- Обновлена контактная информация.
PQLR-engines v0.2- Движки используют OpenSSL, собранный с PQLR v1.3.
PQLR V1.2Алгоритмы- Добавлена схема подписи XMSS^MT.
Пакет- Доступен исходный пакет OpenSSL с алгоритмом NewHope;
- Упрощены инструкции по установке пакета на Unix-подобных операционных системах.
Конфигурация API- Уточнена документация по конфигурации.
Client API- Источник энтропии больше не может быть установлен пользователем; библиотека будет использовать /dev/urandom (в Linux) или CryptoAPI (в Windows);
- Функции инициализации PQLR и контекста алгоритмов возвращают NULL при нехватке памяти;
- Реализована поддержка OpenSSL с алгоритмами распределения ключей и электронно-цифровой подписи в TLS, NewHope и SPHINCS+ соответственно;
- Каждое перечисление содержит поле _LAST для улучшения обработки перечислений.
Исправление ошибок- Добавлена возможность использования PQLR в стороннем проекте CMake.
Производительность- Повышена точность замеров производительности.
Безопасность- Использование источника энтропии было упрощено для избежания потенциальных ошибок;
- Исправлена потенциальная уязвимость к атаке по времени в newhope_initiator_finalize.
Документация- Разработана политика тестирования;
- В документацию пакета добавлена версия пакета;
- Разработана и опубликована методология проведения тестов производительности;
- Обновлены инструкции по установке, метаданные и изменено расположение документации в пакете Windows.
PQLR-engines v0.1- PQLR-engines вынесен из кодовой базы PQLR в отдельный проект;
- Добавлены инструкции по установке SPHINCS+ OpenSSL engine;
- Реализация Sphincs+ совместима с TLS 1.3;
- В пакет добавлен демонстрационный пример;
- Sphincs+ OpenSSL engine вынесен в отдельный пакет pqlr-engines;
- Структура пакета SPHINCS+ OpenSSL engine была изменена для работы "из коробки".
PQLR v1.1Алгоритмы- Из кодовой базы удалена реализация алгоритма SPHINCS.
Client API- Добавлена реализация схемы подписи XMSS;
- Добавлены примеры использования API PQLR;
- Константа NEWHOPE_NUM_KEYBYTES была заменена на функцию newhope_get_keybytes_num();
- Добавлен пример использования Sphincs+ OpenSSL engine;
- Добавлен XMSS кэш;
- В документации расширено описание назначения генераторов случайных чисел;
- SPHINCS+ можно использовать как алгоритм цифровой подписи через интерфейс OpenSSL EVP;
- В пакет добавлен движок SPHINCS+ OpenSSL.
Исправление ошибок- Из диагностических сообщений удалены избыточные кавычки;
- Исправлен сбой при закрытии соединения TLS.
Безопасность- Исправлена проблема исчерпания криптопотока в newhope_initiator_prepare;
- Проведена первоначальная проверка базового кода на соответствие стандартам CERT;
- Буферы с чувствительными данными безопасно стираются;
- Повышена безопасность алгоритмов DRBG: системные источники энтропии используются только для инициализации внутренних генераторов случайных чисел;
- Улучшены механизмы проверки целостности KEM NewHope.
Производительность- Улучшены нефункциональные характеристики алгоритма XMSS (размер секретного ключа составляет 132 байта);
- Реализация алгоритма Newhope ускорена на 28%;
- Добавлено кеширование для алгоритма XMSS.
Платформы- Добавлена поддержка android armv7a;
- Выполнена экспериментальная интеграция KEM NewHope в OpenSSL 1_1_1 и TLS 1.3;
- Реализовано тестирование на android armv7a;
- Добавлена поддержка Windows для OpenSSL.
Пакет- Для работы библиотеки больше не требуется OpenSSL;
- В название пакета добавлена дополнительная информация о его конфигурации;
- В пакет добавлен журнал изменений;
- Пакет содержит метаинформацию с расширенным описанием конфигурации;
- OpenSSL engine перемещен в пакет PQLR.
OpenSSL 1.1.x- Добавлена поддержка алгоритма SPHINCS+ при установлении TLS 1.3; соединения с использованием OpenSSL.
Документация- Улучшена пользовательская документация;
- Обновлен стиль документации doxygen.
PQLR v1.0Алгоритмы- Повышена совместимость алгоритма KEM NewHope с его референсной реализацией.
Client API- Унифицирован интерфейс конфигурации алгоритмов;
- Скрыты детали реализации;
- Стабилизирован и ограничен внутренний интерфейс.
Безопасность- Повышена устойчивость NewHope к атакам по времени;
- Проведено исследование устойчивости алгоритма SPHINCS+ к атакам по времени.
Платформы- Реализована поддержка 32- и 64-разрядных систем.
Производительность- Реализация алгоритма NewHope ускорена на 15%.
OpenSSL 1.1.x- Добавлена поддержка OpenSSL версии 1.1.x.
Документация- Исправлены опечатки;
- Исправлены ошибки в примерах кода.
PQLR v0.9Client API- Алгоритмы доступны в виде единой библиотеки;
- Обновлены файлы CMake в примерах;
- Унифицирован API;
- Для всех алгоритмов добавлена возможность конфигурации генератора случайных чисел.
Алгоритмы- Добавлен прототип KEM McEliece;
- Добавлена реализация алгоритма распределения ключей NewHope;
- Добавлена реализация схемы подписи SPHINCS+;
- Произведена оптимизация алгоритма ГОСТ Streebog;
- Произведена незначительная оптимизация алгоритма SPHINCS+.
Платформы- Добавлена поддержка win32/64 (MSVC).