Ключевое расписание PGPdisk


В нескольких версиях PGPdisk присутствует баг в ключевом расписании симметричного шифра. Уязвима версия PGPdisk for Windows 1.0 и Windows-версия PGPdisk, шедшая в составе PGP 6.0.1. Версия из дистрибутива PGP 6.0.2 исправлена.

PGPdisk — это программа, позволяющая зашифровать часть жёсткого диска, чтобы её нельзя было использовать без знания парольной фразы. PGPdisk функционирует независимо от основной части PGP. Баг заключается в процедуре ключевого расписания шифровального алгоритма CAST. Как и IDEA[link1], CAST вычисляет большой набор подключей из основного ключа, разворачивая его до 1024 бит. Однако, вместо следования спецификации, ключ всего лишь копируется в буфер. Таким образом, инициализируются только 128 бит подключей, остальные остаются забиты нулями. Это означает, что стойкость шифрования эквивалентна двухраундовому CAST, а это не есть очень здорово. Ключ может быть легко восстановлен через атаку с известным открытым текстом.

Баг обнаружила сама NAI. Подобная уязвимость не могла бы просочиться в PGP, поскольку любая ошибка в функционировании шифров привела бы к появлению сообщений, которые другие пользователи не смогли бы прочитать. Контейнеры PGPdisk не создаются с расчётом, чтобы пересылать их между пользователями, но, подозреваю, что после этого случая NAI ввела в этап тестирования дополнительные тесты на кросс-совместимость.

Назад[link2] | Дальше[link3]

Ссылки
[link1] https://www.pgpru.com/biblioteka/statji/analiznadezhnostipgp/algoritmypgp/simmetrichnyeblochnyeshifry#p2

[link2] https://www.pgpru.com/biblioteka/statji/analiznadezhnostipgp/bagiataki/baglinux

[link3] https://www.pgpru.com/biblioteka/statji/analiznadezhnostipgp/bagiataki/bagadk