Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по криптографии-2006!.doc
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
1.28 Mб
Скачать

Полная таблица зашифрования

А

Б

В

Г

Д

Е

Ж

3

И

И

К

Л

М

Н

О

П

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

00

01

29

09

16

14

30

28

02

15

10

11

12

07

20

27

Р

С

Т

У

Ф

X

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

25

08

06

13

26

21

22

23

18

31

05

03

19

17

24

04

32

Из этой таблицы зашифрования легко получить таблицу расшиф­рования (табл. 2.11), отсортировав столбцы таблицы 2.10 по последней строке.

Таблица 2.11

Таблица дешифрования

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

00

01

08

27

31

26

18

13

17

03

10

11

12

19

05

09

04

А

Б

И

Ы

Я

Ъ

Т

Н

С

Г

К

Л

М

У

Е

И

Д

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

29

24

28

14

21

22

23

30

16

20

15

07

02

06

25

32

Э

Ш

Ь

О

X

Ц

Ч

Ю

Р

Ф

П

3

В

Ж

Щ

Сложность составления такой таблицы дешифрования пропорцио­нальна количеству различных блоков, которые могут встретиться в шиф­руемом сообщении. Поэтому, для того чтобы шифр, основанный на крип­тосистеме RSA, не допускал дешифрование при неизвестном ключе, необ­ходимо (но не достаточно) выполнение следующих двух условий. Во-первых, должно быть большим число п, которое ограничивает макси­мальный размер блока, а следовательно, и количество различных блоков. Во-вторых, шифруемые сообщения должны быть достаточно разнообраз­ны. Недопустимо использование системы RSA (а также других криптоси­стем с открытым ключом) в случае, если сообщения являются комбинаци­ей относительно небольшого количества стандартных фраз. При выпол­нении указанных выше требований невозможно будет также дешифрова­ние на основе анализа частоты встречаемости и взаимного расположения различных блоков шифрованного сообщения.

Возможность описанной выше атаки служит дополнительным ар­гументом в пользу того, чтобы системы с открытым ключом применять не для шифрования непосредственно сообщений, а только для передачи сек­ретного ключа, на котором сообщение шифруется с помощью обычной системы шифрования с симметричным ключом.

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

Доказано, что вероятность успешной атаки методом дешифрования итерациями маловероятна, если p-1 и q-1 имеют большие простые сомно­жители p' и q' и, в свою очередь, р'-1 и q'-1 также имеют большие простые сомножители.

Рассмотрим теперь "лобовой метод" вскрытия системы RSA, кото­рый заключается в нахождении числа d, мультипликативного обратного e по модулю (р-1)(q-1). Это легко сделать, если известны числа p и q. Сле­довательно, решив задачу разложения на сомножители целого числа п, можно дешифровать систему RSA. Для того чтобы усложнить задачу раз­ложения п на простые сомножители, числа р и q должны выбираться слу­чайным образом и иметь достаточно большие значения. Кроме того, числа р и q не должны быть "слишком близкими" друг к другу.

Покажем, каким образом можно использовать близость значений р и q. Без ограничения общности можно считать, что p>q. Для величин x=(p+q)/2 и y=(p-q)/2 справедливо соотношение

x2 –у2 = п. (2.5)

Для того чтобы найти разложение n на простые сомножители, дос­таточно подобрать целые числа х и у, удовлетворяющие соотношению (2.5). Данное уравнение в нашем случае имеет единственное решение, так как (х+у)(х-у)=п, а п единственным образом раскладывается на простые сомножители. Перебирая в порядке возрастания варианты х > , легко найти это решение, так как x=(p+q)/2 будет близким к при условии, что р и q близки. В итоге находим: р=х+у, q=x-y.

Рассмотрим еще один пример. Пусть n=pq = 851. Воспользуемся описанным выше способом, чтобы разложить n на простые сомножители р и q. Так как ≈29.17, берем х=30, вычисляем 302 - 851 = 49 и с первой попытки находим решение уравнения (2.5): х=30, у=7. Отсюда p=30+7=37, q=30 - 7=23.

Кроме указанных выше ограничений на выбор р, q, e и d к данным параметрам предъявляются и другие требования, влияющие на стойкость криптосистемы RSA. Более подробно эти требования изложены в [20].

Далее в учебном пособии объясняется, каким образом можно использовать криптосистему RSA для построения системы цифровой подписи.

В этом случае параметры р, q, e и d должен вырабатывать не полу­чатель, а отправитель сообщений (придерживаясь ранее введенных обо­значений, будем считать, что e является ключом зашифрования, a d -расшифрования). Чтобы подписать сообщение М, отправитель вычисляет P=(Me)mod n. Получатель, имея М и Р, вычисляет РdМ(mod n) и убеж­дается таким образом в подлинности документа.

Пример. Пусть р=3, q=11, n=33, e=7 и d=3. Отправитель сооб­щения M="02" вычисляет цифровую подпись 29=(27)mod 33 и посылает получателю пару "02, 29". Чтобы проверить подлинность сообщения "02", получателю достаточно убедиться в том, что 2=(293)mod 33.

Для приведенного алгоритма цифровой подписи противник может использовать следующий способ атаки: взять произвольное Р1 и вычис­лить сообщение М1=(P1) mod n, имеющее цифровую подпись Р1. Одна­ко при таком способе атаки он не сможет предвидеть полученное значе­ние М1. Скорее всего, сообщение М1, будет совершенно не похоже на от­крытый текст и, следовательно, противник не сможет ввести получателя в заблуждение. Данная атака представляет реальную опасность в случае передачи каких-либо числовых данных, для которых допустимы все воз­можные значения подписываемых блоков (или, по крайней мере, сущест­венная доля). Использование хорошей хеш-функции не позволит осуще­ствить данный способ подделки сообщений, так как противник не сможет подобрать текст, имеющий подписанный им хеш-код.