Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 4 - Анализ стойкости КС РША.ppt
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
1.14 Mб
Скачать

Атака Винера (Wiener)

При выборе малого d существенно упрощается алгоритм дешифрования. («малое d» в данном случае означает, что d N ) . Эта атака основывается на следующей

Теореме.

Пусть p, q – простые числа, N=pq - модуль; d – секретный ключ; e

ed 1mod (N)

и пусть

ключ шифрования;

Тогда значение d может быть легко вычислено как знаменатель одной из подходящих дробей k/d – разложения e/N в цепную дробь.

e

 

k

 

 

1

 

 

 

N

d

2d

2

 

 

 

Пусть N=160523347, e=60728973

Получаем следующие подходящие дроби

Вспомним, что ed 1mod (N) , то есть ed k (N ) 1 Тогда легко найти p и q следующим образом.

Перебором для каждой подходящей дроби (k/d), вычисляется

(N) (ed 1) / k , вычисляется сумма p+q и решается квадратное

уравнение,

x2 (N (N) 1)x N 0

x2 ( p q)x pq 0

x1=p, x2=q.

 

 

 

Предположим k/d=14/37, тогда

 

 

(N) ed 1

60728973 37 1

160498000

 

k

14

 

Далее решается квадратное уравнение, корни которого есть искомые p и q.

p=12347, q=13001 , проверка рq= 12347*13001=160523347=N

Значения p и q найдены успешно.

Знание φ позволяет просто факторизовать n, и, следовательно, задача нахождения φ вычислительно эквивалентна задаче факторизации. (стр. 150).

Утверждение. Пусть n p q

, где p q – простые числа. p q

.

Тогда числа p и q можно найти, если известно n иn p 1 q 1

 

Доказательство. Будем рассматривать p, q как пару неизвестных целых чисел, для которых задано их произведение p q n и известна сумма,

p q n 1 n p q 1 p 1 q 1 2b

, где b – некоторое целое число.

Два числа, сумма которых равна 2b , а произведение равно n, являются очевидно корнями квадратногоь уравнения (теорема Виета).

x 2 2bx n 0

Корни уравнения и есть необходимые числа p и q: p b b2 n2 ; q b b2 n2

Сложность решения этого уравнения – O log3 n

Четвертая побочная атака.

Атака с использованием мультипликативного свойства шифра РША.

Из описания КС РША следует, что для любых сообщений M1 , M2

M1 M 2 e M1e M 2e C1 C2 mod n

где C1 = M1e mod n, C2 = M2e mod n. Это свойство может использовать злоумышленник. Предположим, что злоумышленник E хочет дешифровать сообщение C, предназначенное для пользователя A, и предположим, что A согласен дешифровать любую другую криптограмму для E, помимо C (например, в другом сеансе).

Тогда E может дешифровать C, действуя следующим образом:

~e

1)E выбирает и вычисляет C C x.AЗатемmod nE просит Ax Zn

 

~

 

 

 

 

 

 

 

 

 

 

 

 

дешифровать ;C

 

 

 

 

 

 

 

 

~

~ d

 

2) А выполняет эту просьбу – дешифрует:

 

 

, затем передает

 

 

 

 

 

 

 

 

 

M C

mod n

 

результат злоумышленнику E. Поскольку

 

 

 

 

~

~ d

 

C

d

e

A

d A

mod n Mx mod n

 

M C

A

 

A x

 

 

 

 

 

 

 

 

 

 

 

 

x

то Е может выполнить следующий шаг;

 

~

 

~

1

 

3) E, зная

M ,

определяет

M M x

, т. е. дешифрует криптограмму С.

 

 

 

 

mod n

Чтобы защититься от такой атаки, нельзя дешифровать чужие сообщения. Если все же от этого нельзя отказаться, то после дешифрования надо проверить, что получилось – случайный или осмысленный текст. Если получился случайный текст, то не передавать по запросу дешифрованное сообщение E.

Пятая побочная атака.

Атака на систему РША, использующую общие модули для нескольких пользователей.

Это типичная ситуация при генерировании пар ключей для пользователей некоторым общим для них «центром распределения ключей» (рис. 1).

Рис. 1. Атака на КС РША, использующую общие модули

В этом случае любой пользователь i, имеющий ключи (ei , di ), способен определить любую другую пару ключей. Действительно, знание своего секретного ключа di позволяет записать

ed k (N) 1

выбираем вариант (n)

Откуда следует (N) (ed 1) / k . Подбором k

Зная ej (открытый ключ другого, j-го пользователя),

i

пользователь может вычислить секретный ключ dj любого другого

 

пользователя как обратный элемент ej по mod (n) .

 

e j d j 1mod p 1 q 1

 

Шестая побочная атака. Циклическая атака.

Предположим, что известна лишь одна криптограмма C, полученная в криптосистеме РША. Тогда злоумышленник может легко найти ее преобразования:

C1 C e1 mod n; C2 C e2 mod n; C3 C e3 mod n, ..., Cr C er mod n

Эти вычисления он продолжает до тех пор, пока результат не совпадет с исходной криптограммой C. (Это событие должно произойти рано или

поздно на каком-то шаге k, так как шифрование – это по существу перестановка чисел {0, 1, 2, … , n – 1}.) Тогда он может найти

сообщение как

M C

ek ,1 поскольку

M

e .

ek

C

 

mod n

C

 

  Однако в [3] доказывается, что такой метод дает и факторизацию числа n, и поэтому при больших n этот подход не лучше прямого метода факторизации модуля КС РША.

Седьмая побочная атака. Отсутствие шифрования.

Этот случай возможен, если в результате шифрования получаем открытое сообщение, т. е. M e mod n = M. Такое условие должно выполниться хотя бы для одного из сообщений, например, для сообщений M = 0, 1, n – 1 . На самом деле таких сообщений, которые вообще! не шифруются [3], существует в точности

[1 + gcd (e – 1, p – 1)][1 + gcd (e – 1, q – 1)] . Их число всегда не менее 9. Однако при случайном выборе q и p доля таких сообщений будет ничтожно мала и они почти никогда не встретятся на практике.