Ключевое расписание PGPdisk
В нескольких версиях PGPdisk присутствует баг в ключевом расписании симметричного шифра. Уязвима версия PGPdisk for Windows 1.0 и Windows-версия PGPdisk, шедшая в составе PGP 6.0.1. Версия из дистрибутива PGP 6.0.2 исправлена.
PGPdisk — это программа, позволяющая зашифровать часть жёсткого диска, чтобы её нельзя было использовать без знания парольной фразы. PGPdisk функционирует независимо от основной части PGP. Баг заключается в процедуре ключевого расписания шифровального алгоритма CAST. Как и IDEA, CAST вычисляет большой набор подключей из основного ключа, разворачивая его до 1024 бит. Однако, вместо следования спецификации, ключ всего лишь копируется в буфер. Таким образом, инициализируются только 128 бит подключей, остальные остаются забиты нулями. Это означает, что стойкость шифрования эквивалентна двухраундовому CAST, а это не есть очень здорово. Ключ может быть легко восстановлен через атаку с известным открытым текстом.
Баг обнаружила сама NAI. Подобная уязвимость не могла бы просочиться в PGP, поскольку любая ошибка в функционировании шифров привела бы к появлению сообщений, которые другие пользователи не смогли бы прочитать. Контейнеры PGPdisk не создаются с расчётом, чтобы пересылать их между пользователями, но, подозреваю, что после этого случая NAI ввела в этап тестирования дополнительные тесты на кросс-совместимость.