Методичні вказівки до практичних занять з дисципліни “Оcнови теорїї захисту інформації”, страница 21

3) або                                                                                  (6)

Якщо ми знайдемо такі x і y, які задовольняють (5) або (6), то

НСД (x-y,N) або НСД(x+y,N) дасть один з співмножників числа N.

Метод факторизації з використанням двійкового решета заключається в тому, що у якості деяких допоміжніх параметрів обирають числа Z, такі, що

Далі розглядають ряд

Решето організується за допомогою знаходження деякої бази в полі , де -добуток простих чисел, , і

Далі розкладається по базі . Потім знаходять числа x та y, які задовольняють вираз (1).

8.3. Приклади розв'язку задач

Задача 1

Факторизувати модуль N, використовуючи метод двійкового решета, якщо N = 377.

Розв’язок задачі:

Знаходимо

                                                                                                                       Таблиця 1

x

x+

Z 2  mod N

2

3

5

7

Залишок

1

20

23

-

-

-

-

23

2

21

64

6

-

-

-

3

22

107

-

-

-

-

4

23

152

3

-

-

-

19

5

24

199

-

-

-

-

199

6

25

248

3

-

-

-

31

7

26

299

-

-

-

-

299

8

27

352

5

-

-

-

11

9

28

30

1

1

1

-

10

29

87

-

1

-

-

29

11

30

146

1

-

-

-

73

12

31

207

-

2

-

-

23

13

32

270

1

3

1

-

14

33

335

-

-

1

-

67

15

34

25

-

-

2

-

У першому стовпчику задаємо значення x, у другому х+19, у третьому Z 2  mod N. Далі значення Z 2  mod N розкладається на співмножники бази Р¢, точніше робиться спроба, - це числа 2, 3, 5, 7, добуток цих чисел р¢ = 210. Із таблиці бачимо, що число 23 не розкладається на співмножники бази. Число 64 розкладається на співмножники – 2 (26 = 64).

Якщо Z 2  mod N повністю розкладається на співмножник або співмножники р¢, то таку спробу вважаємо позитивною та помічаємо рядок знаком “+”. Для успішної факторизації необхідно не менше k, k – де – число співмножників бази розкладу, позитивних експериментів. Потім, перемножуючи значення стовпців Z 2  mod N  та результати розкладу по базі, необхідно скласти порівняння виду

.

Наприклад, другий рядок (тільки одна) дає такий результат

або

Тоді x = 21, y = 8; x-y = 21-8 = 13.

Далі НCД (x-y, N) = НCД (13, 377) = 29

Тому, наприклад P = 13, Q = 29 і N = 13*29 = 377.

Аналогічно можна взяти 15 рядок. Тоді маємо

.

Задача №2.

Нехай відомо, що в RSA cистемі використовується відкритий ключ Dk = 107, а модуль перетворення N = 209. Необхідно знайти особистий (секретний) ключ Ek та оцінити складність криптоаналізу.

Розв’язок задачі.

Здійснимо в декілька етапів. На першому факторизуємо модуль N, використовуючи метод двійкового решета. Потім, розв’язавши ключове порівняння, знайдемо особистий ключ Dk. В завершення оцінимо складність криптоаналізу, основний етап якого складає факторизація.

Розрахунки зведемо в таблицю 2, при цьому НСД будемо знаходити, використовуючи алгоритм Евкліда. Сутність алгоритма Евкліда:

Нехай

a1 = x-y; a2 = N

1)  if a1 =a2 then НСД:= a2,

2)  a1 := max(a1, a2)

a2 := min(a1, a2)

3)a1/a2 ®a3 =r

4) if a3 = 0 then НСД :=a2, END

5) a1:= a2; a1:= a3; goto 3).