
Комментарии 6
Здорово! А какой хи-квадрат?
Выглядит интересно (не считая того что я не особо верю в будущее у квантовых компьютеров), но вот этого прикола я не понял.
Небольшая сноска. В моей реализации на TypeScript, поскольку встроенной поддержки SHAKE-256 в Web Crypto API нет, я эмулирую его через многократный вызов SHA‑256 в режиме счётчика (чего в целом достаточно для целей библиотеки).
Какой смысл везде писать что используем один алгоритм, но вскользь упомянуть что по факту вместо него используем другой.
Согласен. Не совсем красиво получилось. По итогу реализовал SHAKE-256 на основе Keccak и обновил сноску в статье, чтобы реализация и идея алгоритма были всё же без расхождений. Спасибо за реакцию!
Еще из замечаний - использование Math.random в smallPoly(), при том что в соседнем uniformPoly используется безопасный crypto.getRandomValues. Хотя я недостаточно понимаю алгоритм чтобы судить насколько уязвимость smallPoly важна для системы в целом, но в любом случае выглядит стремно.
Пост-квантовый гибридный алгоритм шифрования для высоко-нагруженных систем с реализацией на TypeScript