Проверенная криптографическая арифметика и согласование ключей

Версия 2.955.1 сохраняет существующие API SHA3, SHAKE и согласования ключей с включёнными проверками целочисленного переполнения и диапазона в Delphi и Free Pascal

SHA3-256, SHA3-384, SHA3-512 и SHAKE256 сохраняют существующие выходы на пустых входах, границах rate, множестве блоков, потоковых обновлениях и повторном извлечении SHAKE

Обмены P-256, P-384 и P-521 используют явные операции младшего слова там, где реализация поля намеренно работает по модулю 2^64; константы старшего бита и операции Montgomery остаются пригодными в проверяемых 32-битных сборках

Допуск общих секретов Montgomery

HPDFX25519 и HPDFX448 проверяют полные байты канонического вывода и выбрасывают EInvalidOpException, когда общий секрет состоит из одних нулей, включая слабые представления поля с ненулевыми внутренними limbs

HPDFComputeKeyAgreementSecret переводит это отклонение в False, пустой SharedSecret и свежий Issue; последующая валидная операция остаётся пригодной

Неканонические u-координаты продолжают следовать декодированию RFC 7748, включая правило старшего бита X25519; проверка нулевого секрета следует необязательной проверке допуска из раздела 6 RFC 7748

Приёмка

Шесть фактических нативных целей проходят по 360 независимых сравнений SHA3/SHAKE и 101 случай согласования ключей, включая полноразмерные приватные скаляры NIST в обоих направлениях, векторы RFC и 1,000 итераций, отклонение низкого порядка, неканонические входы и восстановление

Обе архитектуры Delphi также проходят 11 неизменённых исходных методов потребления ladder и recipient-envelope; фактические закрытия компилятора сверяются с текущей композицией релиза

Запускайте Tests/Linux/Run-CheckedCryptoAcceptance.py для обычной проверенной консольной приёмки; Tests/Linux/CheckedCryptoAcceptance.en-us.md описывает команды компилятора и независимый генератор векторов

Эти проверки устанавливают документированное поведение векторов и отклонения; они не устанавливают выполнение за константное время или сертификацию отсутствия side-каналов

Завершение оставшихся возможностей