В процессорах AMD на базе новой микроархитектуры Zen 5 обнаружена аппаратная ошибка, затрагивающая работу инструкции RDSEED, которая предоставляет доступ к криптографическому генератору случайных чисел. Проблема была выявлена инженером компании Meta в ходе тестирования и подтверждена разработчиками ядра Linux.
Согласно техническим данным, инструкция RDSEED в процессорах AMD Zen 5 в примерно 10% случаев возвращает значение 0 с установленным флагом успешного завершения операции (CF=1). Это противоречит ожидаемому поведению, поскольку значение 0 должно возвращаться только при невозможности сгенерировать случайное число, что отмечается сброшенным флагом завершения (CF=0). Такое расхождение указывает на наличие аппаратной ошибки, приводящей к некорректному определению состояния операции.
Изначально проблема была зафиксирована в серверных процессорах AMD EPYC Turin, однако последующее тестирование показало, что аналогичное поведение наблюдается и на других моделях CPU с микроархитектурой Zen 5. В связи с этим разработчики предложили полностью отключить использование инструкции RDSEED на всех процессорах данного семейства, вместо выборочной блокировки только для конкретных моделей.
Интересно, что проблема была обнаружена случайно в ходе анализа другой неисправности RDSEED в процессорах AMD Zen 2 Cyan Skillfish, где инструкция в определенных ситуациях возвращала только значение 0xffffffff. Это не первый случай проблем с генераторами случайных чисел в процессорах AMD - ранее уже фиксировались нарушения работы инструкции RDRAND после выхода из спящего режима.
Для ядра Linux уже подготовлен соответствующий патч, который отключает использование RDSEED на системах с процессорами AMD Zen 5. Важно отметить, что в ядре Linux инструкция RDSEED является лишь одним из нескольких источников энтропии для программного генератора псевдослучайных чисел, поэтому данная проблема не оказывает существенного влияния на общее качество генерируемых случайных чисел.
Разработчики также отмечают, что в процессе тестирования выявили аномально низкий процент успешных операций RDSEED в процессорах Zen 5 даже в нормальных условиях - всего 0,33-3,48% в многопоточном и однопоточном режимах соответственно, по сравнению с 99,99-100% для инструкции RDRAND. Это дополнительно подтверждает целесообразность отключения проблемной инструкции.
Проблема затрагивает как серверные, так и, потенциально, потребительские процессоры AMD на базе микроархитектуры Zen 5. На текущий момент компания AMD не предоставила официальных комментариев относительно данной ошибки и возможных путей ее устранения на аппаратном уровне.
Ситуация демонстрирует продолжающиеся вызовы, связанные с обеспечением надежности криптографических примитивов в современных процессорах, где аппаратные генераторы случайных чисел играют ключевую роль в системах безопасности.