Компьютерра, 2007 № 44 (712) | страница 19
Неслучайные случайности
Автор: Киви Берд
Одно из главных светил открытой криптографии, израильский профессор Ади Шамир (Adi Shamir), опубликовал работу без преувеличения взрывного характера. В ней показано, сколь гигантскую роль в стойкости компьютерных систем безопасности играет надежное выявление ошибок программирования, ибо даже мельчайший и почти незаметный баг может иметь роковые последствия. Вместе с ростом числа строк кода в программах, усложняющейся оптимизацией операций и нарастающей длиной слова в процессорах, становится все более вероятным появление ошибок в конечных продуктах, запускаемых в массовое производство. Примером тому может служить случайное открытие в середине 1990-х глубоко спрятавшегося "бага деления" в процессорах Pen-tium. Или совсем недавно обнаруженная ошибка умножения в программе Microsoft Excel.
Если какая-нибудь спецслужба, пишет Шамир, обнаружит (или тайно встроит) хотя бы лишь пару таких целых чисел, произведение которых микропроцессор вычисляет некорректно, то последствия ошибки (даже в единственном бите низкого разряда) будут сокрушительными с точки зрения криптографии и защиты информации в компьютере. Потому что тогда ЛЮБОЙ ключ в ЛЮБОЙ криптопрограмме на основе RSA, работающей на ЛЮБОМ из миллионов компьютеров с этим процессором, может быть взломан с помощью специально подобранного сообщения. Кроме того, по заключению Шамира, аналогичная атака может применяться против любых криптосхем на основе дискретных логарифмов и эллиптических кривых (где вдобавок можно эксплуатировать еще и баги деления). Иначе говоря, мелкий баг способен радикально подрывать стойкость практически всех современных криптосхем с открытым ключом.
Почти наверняка можно утверждать, что нет никакой связи между появлением работы Шамира и одновременной публикацией эссе другого известного криптографа, Брюса Шнайера. Статья посвящена вроде бы совсем другой теме, стандартам на генераторы случайных чисел, но и здесь звучит тот же самый мотив. Генераторы случайных чисел (RNG) играют в криптографии очень важную роль: они применяются для выработки ключей шифрования, векторов инициализации и запросов аутентификации, формирования общего ключа, генерации простых чисел и т. д. Если взломан генератор случайных чисел, то в большинстве случаев можно считать взломанной и всю систему безопасности. Шнайер забил тревогу, когда увидел, что в новый спецвыпуск Национального института стандартов США (NIST Special Publication 800-90), описывающий четыре одобренных к использованию схемы RNG, включен генератор Dual_EC_DRBG, разработанный в недрах американского Агентства национальной безопасности.