Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6_4_1__Pk_PZ_4_1_редактированное.docx
Скачиваний:
34
Добавлен:
13.03.2016
Размер:
1.72 Mб
Скачать

1.14 Криптоаналiз rsa методом квадратичного решета. Приклади розв’язку задач та задачі для самостійного розв’язання

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

Задача 1.

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

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

Знаходимо :

Таблиця 1.11 – Розрахунки

x

Z =  x+

Z 2  mod N

2

3

5

7

Залишок

1

20

23

-

-

-

-

23

2

21

64

6

-

-

-

+

3

22

107

-

-

-

-

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

Якщо Z2 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. На завершення оцінимо складність криптоаналізу, основний етап якого складає факторизація.

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

Нехай

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).

Аналогічно, як і в задачі 1, для факторизації використовується квадратичне решето.

При цьому

.

p = 2*3*5*7* = 210.

Значить N»P.

Таблиця 1.12 – Розрахунки

N/n

x

=ë  x+û

Z 2  mod N

2

3

5

7

Залишок

1

1

15

16

4

-

-

-

+

2

2

16

47

-

-

-

-

-47

3

3

17

80

4

1

-

+

4

4

18

115

-

-

1

-

-23

5

5

19

152

3

-

-

-

-19

6

6

20

191

-

-

-

-

-

7

7

21

23

-

-

-

-

-

8

8

22

66

1

1

-

-

-11

9

9

23

111

-

1

-

-

-37

10

10

24

158

1

-

-

-

-79

11

11

25

207

-

2

-

-

23-

12

12

26

47

-

-

2

+

13

13

27

102

1

1

-

-

17-

14

14

28

157

-

-

-

-

-

15

15

29

5

-

-

1

-

+

16

16

30

64

6

-

-

-

+

17

17

31

125

-

-

3

-

+

18

18

32

188

2

-

-

-

47

У таблиці 1.13 наведені позитивні рядки

Таблиця 1.13 – Позитивні рядки

x

=ë  x+û

Z 2  mod N

2

3

5

7

Залишок

1

15

16

4

-

-

-

+

3

17

80

4

1

-

+

12

26

47

-

-

2

+

15

29

5

-

-

1

-

+

16

30

64

6

-

-

-

+

17

31

125

-

-

3

-

+

Замінимо в таблиці всі парні числа 0, а непарні 1. У матриці розміром n x(n+1) із нулів та одиниць завжди можна обрати множину рядків, таку, що у всіх стовпцях буде парне число одиниць, а отже є сукупність рядків у яких

.

Наприклад, розв’язок дають рядки {3,15}, {3, 17}, {15, 17}, {1}, {12}, {16}.

1. 152 º 24(mod 209); 152 º 42(mod 209)

x=15, y=4.

НСД(15-4, 209) = 11,

P=11; Q=N:P=209:11=19.

2. {3,15}

172 292 º 5 242(mod 209); (17*29)2 º (20)2(mod 209).

x=75, y=20.

НСД(75-20, 209).

3. {15, 17}

292 º 51(mod 209)

312 º 53(mod 209)

(3129)2 º 5 4(mod 209); (2931)2 º 25 2(mod 209);

x=63; y=25; (x-y, 209) НСД=(38, 209)=(219, 209) = 19

Використовуючи алгоритм Евкліда маємо:

a1 = 209; a2 = 38

P=209:19=11;Q=19

209:38=5; r=19

a1 = 38; a2 = 19

39:19=2; r=0;

НСД (a1, a2)=a2 = 19

Тепер розв’яжемо ключове порівняння

Dk = 103; N=209; j(N)= 10*18 = 180

j(N) (-k)+DkEk = 1; 180(-k)+103Ek = 1

180x+103y = 1 x=(-1)m+1bm-1; y = (-1)mam-1;

.

r0 = 1;

r1 = 1;

r2 = 2;

r3 = 1;

r4 = 25;

m = 4;

am-1 = rm-1am-2+am-3; bm-1 = rm-1bm-2+bm-3;

a3 = r3a2 + a1; b3 = r3b2 + b1;

;

a2 = 1(1*2+1)+2 = 5; b2 = 3;

a3 = 7;

y = (-1)47 = 7.

Таким чином Ek = 7.

В таблиці 1.14 наведені значення складності криптоаналізу, I1 – методом Ленстри, І2 – з використанням квадратичного решета.

.

.

Таблиця 1.14 – Значення складності криптоаналізу

N

lnN

lnlnN

(lnN)1/3

(lnlnN)2/3

I1

I2

256

179,2

5,29

5,64

2,99

1,7×1013

8,2×1013

512

358,4

5,98

7,10

3,25

8,5×1019

1,2×1019

768

537,6

6,29

8,13

3,41

1,7×1024

7,4×1022

1024

716,8

6,57

8,94

3,51

6,3×1029

7,8×1025

2048

1433,6

7,26

11,27

3,74

2,4×1044

6×1034

4096

2867,2

7,96

14,20

3,99

4,1×1065

5,6×1046

8192

5734,4

8,65

17,89

4,21

5,3×1096

1,4×1062

Перевірка Ek*Dk = 103*7 = 721(mod 180)º1 (mod 180). Тоді розв’язок зроблено правильно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]