Насколько сложно злоумышленнику-хакеру создать поддельный ключ PGP с заданным идентификатором ключа

#key #pgp

Вопрос:

Может ли кто-нибудь дать мне представление о том, сколько работы потребуется для создания ключа PGP с моим именем, адресом электронной почты и коротким идентификатором ключа (8EFB369B)?

Моя идея заключается в том, что если для этого потребуется много работы, то злоумышленник потрудится сделать это только в некоторых редких случаях.

Кроме того, тот же вопрос касается длинного ключевого идентификатора 7F66ABD5 8EFB369B. Сколько времени потребуется, чтобы создать поддельный ключ с длинным идентификатором ключа. Возможен ли поддельный идентификатор длинного ключа?

Ответ №1:

Учитывая, что идентификатор ключа является (частью) хэша ключевых данных, который по определению должен быть случайным, каждая попытка генерации ключа может рассматриваться как создание случайного идентификатора ключа. Таким образом, злоумышленник должен сгенерировать ~2^32 ключа для первого случая и ~2^64 для второго.

Из https://ed25519.cr.yp.to мы можем получить, что возможно иметь около ~100 тысяч ключей в секунду. Пренебрегая временем вычисления хэша SHA1, короткий идентификатор ключа EdDSA может быть продублирован за ~ 2^32/100000/60/60 ~= 10 часов.

Не так много для генерации ключа с хорошим коротким идентификатором ключа, таким как 0xDEADBEEF 🙂

Другое дело, что OpenPGP использует SHA1 для вычисления отпечатков пальцев, поэтому теоретически могут быть использованы некоторые коллизии.