Введение: когда казалось, что RSA уже изучен вдоль и поперек

Представьте, что вы годами выстраивали железобетонную крепость, рассчитывая отразить атаку драконов из квантового измерения, а злоумышленники просто подобрали ключ к парадной двери обычной отмычкой. Именно такой шок испытало криптографическое сообщество, когда классические ПК неожиданно обошли многолетние барьеры защиты. Криптосистема с открытым ключом RSA на протяжении десятилетий остается фундаментом цифровой безопасности. На ней держится шифрование веб-трафика, безопасная передача данных, цифровая подпись и механизмы аутентификации. Долгое время считалось, что классические алгоритмы взлома уперлись в непреодолимую математическую стену. Любые разговоры о реальной угрозе RSA сводились либо к гипотетическому квантовому компьютеру с алгоритмом Шора, либо к астрономическим затратам на классическую факторинг-атаку, которая по силам только спецслужбам и техгигантам.

Однако академическое сообщество было потрясено: исследователи продемонстрировали новый метод взлома RSA, который работает на классических компьютерах и обходит стороной трудоемкую процедуру факторизации ключа. Вместо этого атака бьет по уязвимости архитектуры подписи данных, используя метод подделки (signature forgery).

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

Парадигмальный сдвиг: отказ от факторизационного подхода

Базовая математика алгоритма RSA строится на умножении двух больших простых чисел p и q для получения модуля N. Открытый ключ состоит из модуля N и экспоненты e, а секретный включает экспоненту d. Безопасность исторически опиралась на „задачу факторизации целых чисел“: зная только открытый ключ, вычислить множители на классическом железе за разумное время считалось невозможным (хотя Stack Overflow утверждает, что решить любую задачу можно копированием ответа из соседнего треда).

Десятилетиями криптографы совершенствовали методы факторизации, такие как общий метод решета числового поля (GNFS). Эти методы требуют колоссальных мощностей:

  • Факторизация 768-битного ключа требовала распределенных усилий сотен машин.
  • Для 1024-битного ключа нужны ресурсы, доступные лишь государствам.
  • 2048-битные ключи и выше в обозримом прошлом считались абсолютно защищенными от классического подбора.

Новое исследование меняет правила игры. Ученые доказали, что RSA можно скомпрометировать, вообще не находя простые числа p и q.

Анатомия уязвимости: как работает новый вектор атаки

Вместо того чтобы ломать математическую основу модуля N, исследователи сфокусировались на реализации схем подписи и особенностях обработки хэш-функций в ряде популярных библиотек. Суть уязвимости сводится к манипуляциям с дополнениями (padding schemes), такими как PKCS#1 v1.5.

Ниже представлен псевдокод, демонстрирующий концептуальную уязвимость в логике проверки некоторых старых реализаций подписей:


// Упрощенная демонстрация уязвимости валидации подписи
bool verify_signature(PublicKey pk, Message m, Signature s) {
    // Уязвимое место: неполная проверка структуры PKCS#1 padding
    BigInt computed_m = power_mod(s, pk.e, pk.n);
    
    // Ошибка: некорректное сравнение байтовых последовательностей хэша
    return compare_padding_and_hash(computed_m, m);
}

Атака эксплуатирует математические особенности структуры дополнения, позволяя злоумышленнику сформировать коллизию или математически эквивалентную подпись без знания закрытого ключа d. Для этого используются стандартные кластеры из GPU или даже мощные десктопные процессоры — квантовый компьютер здесь не нужен вовсе.

Практические последствия для разработчиков и DevOps

Представьте, что вы деплоите критический ми