logo
Лекции_Информационная безопасность

13.4Атака 2. Подпись нотариуса на неверном документе.

Пусть А – нотариус. Если В хочет заверить документ, он отправляет его А, тот подписывает весь документ своим закрытым ключом. Но нотариус может отказаться подписать некоторый документ, так как он с его точки зрения не является законным. С хочет заставить нотариуса подписать этот документ.

Делает он это следующим образом: он передает нотариусу на подпись другой документ, зависящий от того, который хочет подписать и от некоторого подобранного документа, а затем «убирает» подобранный.

Для того чтобы сократить вычисления, возьмем те же n=33, закрытый ключ d=3, открытый ключ e=7. Нам также понадобится некоторое t, такое что, существует t^-1 mod n, то есть возьмем t =2, обратное по модулю 33 к которому равно 17.

Итак, С хочет подписать сообщение s = 5, но нотариус этого делать не будет. Тогда С вычисляет y = t^e mod n = 2^7 mod 33 = 29. Затем С рассчитывает m = y*s mod n = 29*5 mod 33 = 13 и посылает это m на подпись нотариусу. Понятно, что нотариусу число 13 нравится гораздо больше, чем число 5, и он с радостью подписывает его, то есть возвращает p = m^d mod n = 13^3 mod 33 = 19.

Теперь С вычисляет значение p*t^-1 mod n = 19*17 mod 33 = 26. Интересно то, что это – нужный нам подписанный документ.

p*t^-1 mod n = (m^d * t^-1) mod n = (y^d *s^d * t^-1) mod n. А так как y = t^e mod n, то y^d mod n = t^-1, сокращаем эти два выражения и получаем s^d mod n, то есть подписанное интересующее нас s.

Проверим результат в числах s^d mod n = 5^3 mod 33 = 26.