Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мокроусов_ПЗ_КМЗИ

.pdf
Скачиваний:
38
Добавлен:
31.05.2015
Размер:
942.35 Кб
Скачать

Определение 4: Если п - простое число, то символ Якоби J(a,n) = 1, если а - квадратичный вычет по модулю п.

Определение 5: Если п - простое число, то символ Якоби ](а,п) = -1, если а не является квадратичным вычетом по модулю п.

Определение 6: Если п - составное число, то символ Якоби J(a,n) = J(a,p1)* ... * J(a,pm), где р1, ... , рт - это разложение п на простые сомножители.

Следующий алгоритм рекурсивно рассчитывает символ Якоби:

Правило 1: J(l,n) = 1

Правило 2: J(a*b,n) = J(а,п)* J(b,n)

Правило 3: J(2,n) =, если (n2-1) /8 нечетно, и -1 в противном случае

Правило 4: J(а,п)= J((a mod n),n)

Правило 5: J(a, b1*b2) = J(a, b1)* J(a, b2)

Правило 6: Если наибольший общий делитель а и b = 1, а также а и b нечетны:

Правило 6а: J(a,b)= J(b, а), если (a - 1)(b - l)/4 четно Правило 6b: J(a,b)= -J(b, а), если (а - 1)(b - 1)/4 нечетно

Если заранее известно, что n - простое число, вместо использования предыдущего алгоритма просто вычислите а((n-1)/2) mod n, в этом случае J(а,п) эквивалентен символу Лежандра.

Символ Якоби нельзя использовать для определения того, является ли а квадратичным вычетом по модулю п (если, конечно, п не является простым числом). Обратите внимание, что если J( а,п) = 1 и п - составное число, то утверждение, что а является квадратичным вычетом по модулю п, не обязательно будет истиной. Например:

J(7,143) = J(7, l l)* J(7,13) = (-1)(-1) = 1

39

Однако не существует таких целых чисел х, что

х2 = 7 (mod 143).

Если р и q - два простых числа, конгруэнтных 3 по модулю 4, то п = pq иногда называют целым числом Блюма. Если п - это целое число Блюма, у каждого квадратичного вычета ровно четыре квадратных корня, один из которых также является квадратом - это главный квадратный корень. Например, главный квадратный корень 139 mod 437 – это 24. Остальные три корня – это 185, 252 и 413.

Контрольные вопросы:

1.Как определяется символ Лежандра?

2.Что представляет из себя символ Якоби?

3.Что называют целым числом Блюма?

4.Определить время T генерации всех перестановок заданной длины.

5.Пусть длина пароля равна d, а для выбора одного символа на клавиатуре потребуется одна секунда. Оценить время T для разгадки пароля.

40

Практическое занятие № 11 Генераторы

Если р - простое число, и g меньше, чем р, то g называется генератором по модулю р, если для каждого числа b от 1 до р-1 существует некоторое число а, что ga = b (mod p) [6].

Иными словами, g является примитивом по отношению к р. Например, если р = 11, то 2 - это генератор по модулю 11:

2*6 = 12=1 (mod 11)

2*1 = 2 = 2 (mod 11)

2*7 = 14 = 3 (mod 11)

2*2 = 4 = 4 (mod l l)

2*8 =16 = 5 (mod l l)

2*3 = 6 = 6 (mod 11)

2*9 = 18 = 7 (mod 11)

2*4 = 8 = 8 (mod l l)

2*10 = 20 = 9 (mod l l)

2*5 = 32 = 10 (mod 11)

Каждое число от 1 до 10 может быть представлено как 2a (mod p). Для р = 11 генераторами являются 2, 6, 7 и 8. Другие числа не являются генераторами. Например, генератором не является число 3, потому что не существует решения для

3a = 2 (mod 11)

В общем случае проверить, является ли данное число генератором, нелегко. Однако задача упрощается, е сли известно разложение на множители для р - 1. Пусть q1, q2, ... , qn - это различные простые множители р - 1. Чтобы проверить, является ли число g генератором по модулю р, вычислите

g(p-1)/q mod p

для всех значений q = q1 q2,..., qn.

Если это число равно 1 для некоторого q, то g не является генератором. Если для всех значений q рассчитанное значение не равно 1, то g - это генератор.

Например, пусть р = 11. Простые множители р - 1 = 10 - это 2 и 5. Для проверки того, является ли число 2 генератором, вычислим:

2(11-1)/5 (mod 11) = 4

2(11-1)/2 (mod 11) = 10

Ни один из ответов не равен 1, поэтому 2 - это генератор. Проверим, является генератором ли число 3:

3141

3(11-1)/5 (mod 11) = 9 3(11-1)/2 (mod 11) = 1 Следовательно, 3 - это не генератор.

При необходимости обнаружить генератор по модулю р просто случайно выбирайте число от 1 до р - 1 и проверяйте, не является ли оно генератором. Генераторов достаточно, поэтому один из них вы, скорее всего, найдете быстро.

Контрольные вопросы:

1.Что называют генератором по модулю р?

2.Как упростить задачу проверки: является ли данное число генератором?

3.Как обнаружить генератор по модулю p?

4.Хакеру известно, что длина пароля не более чем 13разрядное десятичное число. Сколько ему необходимо времени, чтобы гарантированно вручную установить этот пароль?

5.Файл имеет внутренний 32-битовый ключ. Вызов и проверка для открытия замка файлов требуется 20 мкс. Определить ожидаемое безопасное время для раскрытия пароля методом проб и ошибок.

6.Разработать алгоритм определения любого пароля заданной длины для несанкционированного доступа к PC IBM.

42

Практическое занятие № 12 Диофантовы уравнения

Диофантовыми называются уравнения вида

P(x1, x2, ..., xn) = 0,

где P(x1, ..., xn) – многочлен с целыми коэффициентами. Рассмотрим алгоритм нахождения решения линейного

диофантового уравнения с двумя неизвестными вида a·x + b·y = c (далее для простоты будем опускать знаки умножения и писать просто ax + by = c) [5].

Теорема 1. Уравнение ax + by = c имеет решение в целых числах тогда и только тогда, когда c делится на НОД(a, b).

Теорема 2. Если пара (x0, y0) является решением уравнения ax + by = c, то все множество его решений (x, y) описывается формулой:

x = x0 + kb, y = y0 ka,

где k Є Z. Очевидно, что если ax0 + by0 = c, то a(x0 + kb) + b(y0 ka) = c для любого целого k.

Для нахождения частичного решения (x0, y0) уравнения ax + by = c следует сначала найти решение (x’, y’) уравнения ax + by = d (d – наибольший общий делитель a и b) при помощи расширенного алгоритма Евклида, после чего умножить его на c / d. То есть

x0 = x’ · c / d, y0 = y’ · c / d

Пример. Найти множество решений уравнения 5x + 3y = 7. 1. Уравнение имеет решение, так как 7 делится на

НОД(5, 3) = 1.

43

2.Находим решение уравнения 5x’ + 3y’ = 1 при помощи расширенного алгоритма Евклида: (x’, y’) = (-1, 2).

3.Находим решение (x0, y0) исходного диофантового уравнения:

x0 = -1 · 7 / 1 = -7, y0 = 2 · 7 / 1 = 14.

Согласно теореме 2 множество решений исходного диофантового уравнения имеет вид:

(x, y) = (-7 + 3k, 14 – 5k).

Контрольные вопросы:

1.Какие уравнения называют диофантовыми?

2.В каком случае уравнение ax + by = c имеет решение в целых числах?

3.Каков алгоритм нахождения решения линейного диофантового уравнения с двумя неизвестными вида a·x + b·y = c?

4.Пусть f(x) и g(x) есть односторонние функции. Приведите эвристические аргументы в пользу того, что ни одна из функций f(x) + g(x), f(x) * g(x) не обязательно должна быть односторонней.

5.Сколько существует упорядоченных пар натуральных чисел a и b, для которых известны их наибольший общий делитель d = 6 и их наименьшее общее кратное m = 6930. Сформулируйте ответ и в общем случае, используя канонические разложения d и m на простые множители.

44

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.Хамидуллин, Р. Р. Методы и средства защиты компьютерной информации [Текст]: учеб. пособие / Р. Р. Хамидуллин, И. А. Бригаднов, А. В. Морозов. – СПб: СЗТУ, 2005.

2.Романец, Ю. В. Защита информации в компьютерных системах и сетях [Текст]: 2-е изд., перераб. и доп. / Ю. В. Романец, П. А. Тимофеев, В. Ф. Шаньгин, под ред. В. Ф. Шаньгина. – М.: Радио и связь, 2001. – 190 с.

3.Мао, В. Современная криптография: теория и практика [Текст]: пер. с англ. / В. Мао. – М.: Вильямс, 2005. – 768 с.

4.Завгородний, В. И. Комплексная защита информации в компьютерных системах [Текст]: учеб. пособие

/В. И. Завгородний. – М.: Логос, 2001. – 264 с.

5.Маховенко, Е. Б. Теоретико-числовые методы в криптографии [Текст]: учеб. пособие / Е. Б. Маховенко. – М.:

Гелиос АРВ, 2006. – 320 с.

6.Зегжда, Д. П., Основы безопасности информационных систем / Д. П. Зегжда, А. М. Ивашко. – М.: Горячая линия - Телеком, 2000. – 452 с.

7.Информатика на пять [Электронный ресурс] –

Режим доступа: http://www.5byte.ru/

8.Защита информации [Электронный ресурс] –

Режим доступа: http://library.tuit.uz/skanir_knigi/book/zashita_ info/zash_info_10.htm.

9.Старооскольский технологический институт

[Электронный ресурс] – Режим доступа: http://sti.oskol.ru/ about/default.html

10.Лаборатория юного линуксойда [Электронный ресурс] – Режим доступа: http://younglinux.info

11.Интернет-портал организационно методического обеспечение дистанционных олимпиад по программированию для одаренной молодежи [Электронный ресурс] – Режим дос-

тупа: http://www.e-olimp.com.

45

12.Прикладная криптография. Протоколы, алгоритмы и исходные тексты на языке С: 2-е изд. [Электронный ресурс] – Режим доступа: http://www.a3print.ru/printer/214/62/index.html.

13.Нанобуква [Электронный ресурс] – Режим дос-

тупа: http://nanobukva.ru/09/febu/05_-_ibks_-_kniga_po_ kriptografii_46.html.

46

СОДЕРЖАНИЕ

 

Практическое занятие № 1

 

Алгоритм Евклида для нахождения общего делителя

............... 1

Практическое занятие № 2

 

Расширенный алгоритм Евклида..................................................

5

Практическое занятие № 3

 

Вычисление обратных величин ....................................................

8

Практическое занятие № 4

 

Квадратичные вычеты .................................................................

15

Практическое занятие № 5

 

Китайская теорема об остатках ..................................................

17

Практическое занятие № 6

 

Модулярная арифметика .............................................................

20

Практическое занятие № 7

 

Вычисления в конечных полях ...................................................

25

Практическое занятие № 8

 

Тестирование простоты числа методом перебора делителей. 34

Практическое занятие № 9

 

Разложение на множители ..........................................................

36

Практическое занятие № 10

 

Символы Лежандра и Якоби......................................................

38

Практическое занятие № 11

 

Генераторы ...................................................................................

41

Практическое занятие № 12

 

Диофантовы уравнения ...............................................................

43

БИБЛИОГРАФИЧЕСКИЙ СПИСОК ........................................

45

47

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к практическим занятиям по дисциплине «Криптографические методы защиты информации» для студентов специальностей

090301 «Компьютерная безопасность»,

090302 «Информационная безопасность телекоммуникационных систем», 090303 «Информационная безопасность автоматизированных систем»

очной формы обучения

Составитель Мокроусов Александр Николаевич

В авторской редакции

Подписано к изданию 11.11.2014 Уч.-изд. л. 2,9

ФГБОУ ВПО «Воронежский государственный технический университет»

394026 Воронеж, Московский просп., 14