Учебно-методическое пособие для студентов специальностей «Компьютерная безопасность» - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1страница 2 ... страница 4страница 5
Похожие работы
Название работы Кол-во страниц Размер
Учебно-методическое пособие по специальности 1-08 01 01 «Профессиональное... 4 1608.91kb.
Методическое пособие к семинарским занятиям для студентов экономических... 1 156.27kb.
Учебно-методическое пособие Н. Новгород 2011 ббк 74. 5 В 12 2 591.49kb.
Учебно-методическое пособие для студентов исторического факультета... 2 485.1kb.
Учебно-методическое пособие для студентов специальности 5В073100... 4 1356.67kb.
Учебно-методическое пособие Ижевск 2012 резьбовые соединения учебно-методическое... 1 403.92kb.
Методическое пособие для студентов экономических специальностей бнту/... 4 881.79kb.
Учебно-методическое пособие для студентов I курса учетно-финансового... 3 492.89kb.
Учебно-методическое пособие для специальностей : 240136 Коксохимическое... 1 221.58kb.
Учебно-методическое пособие для студентов лечебного, педиатрического... 12 3706.38kb.
Учебно-методическое пособие по проведению тестирования по дисциплине... 1 417.26kb.
Условия предоставления услуг с использованием системы «ИнтернетБанк» 1 382.26kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Учебно-методическое пособие для студентов специальностей «Компьютерная безопасность» - страница №1/5



РОССИЙСКАЯ ФЕДЕРАЦИЯ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение

высшего профессионального образования

ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ


ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК

КАФЕДРА ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ




О.В. Ниссенбаум, А.Г. Овсянко
КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ.

ГЕНЕРАЦИЯ БОЛЬШИХ ПРОСТЫХ ЧИСЕЛ В КРИПТОСИСТЕМАХ С ОТКРЫТЫМ КЛЮЧОМ


Учебно-методическое пособие

для студентов специальностей

«Компьютерная безопасность» и «Комплексное обеспечение информационной безопасности автоматизированных систем»

Издательство

Тюменского государственного университета

2009

УДК 003.26:519(075.8)

ББК 3973.26-018.2я73+В13я73


АЗ Н691

Ниссенбаум О.В., Овсянко А.Г. Криптографические методы защиты информации. Генерация больших простых чисел в криптосистемах с открытым ключом: Учебно-методическое пособие для студентов IV курса ОДО специальностей «Компьютерная безопасность» и «Комплексное обеспечение информационной безопасности автоматизированных систем» Тюмень: Издательство Тюменского государственного университета, 2009, 41 стр.

Учебно-методическое пособие включает теоретический материал, задания к лабораторным занятиям, данные для самостоятельной проверки заданий, список основной и дополнительной литературы. Материал разбит на три раздела, соответствующие темам трех лабораторных работ по предмету «Криптографические методы защиты информации». Пособие также может быть использовано для организации самостоятельной работы студентов.

Рекомендовано к изданию кафедрой информационной безопасности. Утверждено проректором по учебной работе Тюменского государственного университета.

ОТВЕТСТВЕННЫЙ РЕДАКТОР: А.А. Захаров, зав.кафедрой


информационной безопасности,

д.т.н., профессор


РЕЦЕНЗЕНТЫ: А.В. Широких, доцент каф. информац.

безопасности ГОУ ВПО ТюмГУ, к.т.н.

С.Д. Захаров, зав. каф. МиИ ГОУ ВПО

ТО ТГАМЭУП, к.ф.-м.н., доцент.

 ГОУ ВПО Тюменский государственный университет, 2009.

 О.В. Ниссенбаум, А.Г. Овсянко, 2009.

СОДЕРЖАНИЕ


УДК 003.26:519(075.8) 3

ББК 3973.26-018.2я73+В13я73 3

Ниссенбаум О.В., Овсянко А.Г. Криптографические методы защиты информации. Генерация больших простых чисел в криптосистемах с открытым ключом: Учебно-методическое пособие для студентов IV курса ОДО специальностей «Компьютерная безопасность» и «Комплексное обеспечение информационной безопасности автоматизированных систем» Тюмень: Издательство Тюменского государственного университета, 2009, 41 стр. 3

Учебно-методическое пособие включает теоретический материал, задания к лабораторным занятиям, данные для самостоятельной проверки заданий, список основной и дополнительной литературы. Материал разбит на три раздела, соответствующие темам трех лабораторных работ по предмету «Криптографические методы защиты информации». Пособие также может быть использовано для организации самостоятельной работы студентов. 3

Рекомендовано к изданию кафедрой информационной безопасности. Утверждено проректором по учебной работе Тюменского государственного университета. 3

ОТВЕТСТВЕННЫЙ РЕДАКТОР: А.А. Захаров, зав.кафедрой 3

РЕЦЕНЗЕНТЫ: А.В. Широких, доцент каф. информац. 3

безопасности ГОУ ВПО ТюмГУ, к.т.н. 3

С.Д. Захаров, зав. каф. МиИ ГОУ ВПО 3

ТО ТГАМЭУП, к.ф.-м.н., доцент. 3

РАЗДЕЛ 1. ОПЕРАЦИИ С БОЛЬШИМИ ЧИСЛАМИ 9

1.1. Сложение 10

1.2. Вычитание (меньшего числа из большего) 12

1.3. Вычисление остатка от деления (r = x mod m) 13

1.4. Умножение двух чисел по модулю (uv mod m) 15

1.5. Возведение в квадрат 18

1.6. Возведение в степень (дихотомический алгоритм) 19

Задания к разделу 1 21

Тесты для самопроверки к разделу 1 22

34359738368 23

45035 23

11529215 23

562949 23

1 23


510 23

34371267583 23

607984 23

0 23


1294203663747470435 23

2677667 18446744072032008631 23

512 18446744073709551615 23

511 23


1 23

1 23


0 23

1024 23


0 23

0 23


18446744073709551615 23

1 23


18446744073709551614 23

4651324165 1556165165165 23

4858854882463726 78541332185158452 23

454156 45646654651099456 23

4858859533787891 78542888350323617 23

359835 3669991927452658148 23

4651324165 1556165165165 23

8989324852324 23

0 23

0 23


1226562241422021 23

992855210300548881 23

0 23

8989324852324 1226562241422021 23



344562850575006849 23

0 23


0 23

135424109458522 23

554122846533315 146550400854885050 23

748583218579244445 9112522465576 23

300548881 23

992855210 23

749137341425777760 146559513377350626 23

24694436 14608925734601816514 23

554122846533315 146550400854885050 23

8542 23


8452018584 23

6884123321 23

0 23

300548881 23



0 23

6884131863 23

8452018584 23

4276586 23

0 23

8542 23


8452018584 23

185848542 23

68412412888 23

6884123321 559513377350 23

30039098548881 23

1520 23


7069971863 627925790238 23

17517588859265 15035313948088480208 23

185848542 23

68412412888 23

887791306 23

56224142202 23

699919274526581 291878877913063 23

30029187887791306381 1132130015149877520 23

699920162317887 291935102055265 23

15138388888363010630 3130807981446738870 23

887791306 23

56224142202 23

1 23

1844674407375 23



18446744073709551614 291878877913063 23

100 23


0 23

18446744073709551615 293723552320438 23

24 14598205402907564233 23

1 23


1844674407375 23

467073709551614 23

1 23

56091452337071 23



100 23

1204 23


698520 23

523165161888685 23

101 23

545 23


16126752540207185164 23

18342090855045 18446744073709550817 23

РАЗДЕЛ 2. ВЕРОЯТНОСТНЫЕ ТЕСТЫ НА ПРОСТОТУ 24

34359738368 24

45035 24

11529215 24

562949 24

1 24


510 24

0 24


16868405433497101751 24

0 24


528072488794832589 24

512 24


18446744073709551615 24

511 24


1 24

1 24


0 24

0 24


1 24

0 24


18446744073709551615 24

4651324165 24

1556165165165 24

4858854882463726 78541332185158452 24

454156 24

45646654651099456 24

350936 24

12351013009497868457 24

121671 24

5586247898761727953 24

8989324852324 24

0 24


0 24

1226562241422021 24

992855210300548881 24

0 24


542918788779130633 24

0 24


93173857967455675 24

0 24


554122846533315 146550400854885050 24

748583218579244445 24

9112522465576 24

300548881 24

992855210 24

80832899 24

6009750461050251716 24

251473001 24

4313213001514987700 24

8542 24


8452018584 24

6884123321 24

0 24

300548881 24



0 24

76306820 24

16096385923152710208 24

176239098 24

0 24

185848542 24



68412412888 24

6884123321 24

559513377350 24

30039098548881 24

1520 24

9986356426635 24



537785510387700768 24

14740036803368 24

13349282089952799472 24

887791306 24

56224142202 24

699919274526581 24

291878877913063 24

30029187887791306381 1132130015149877520 24

12529055452848554420 5471699724163552772 24

18106073380260734989 5072051649576642416 24

1 24

1844674407375 24



18446744073709551614 291878877913063 24

100 24


0 24

33 24


8130179327596441953 24

60 24


297973091452337071 24

467073709551614 24

1 24

56091452337071 24



100 24

1204 24


698520 24

210 24


3008638853380682193 24

21 24


6697860345537554609 24

2.2. Вероятностные тесты на простоту 26

2.2.1. Тест Ферма на простоту 26

2.2.2. Тест Соловея-Штрассена 27

2.2.3 Тест на простоту Миллера-Рабина. 29



Задания к разделу 2 32

Данные для самопроверки к разделу 2 32

Тип числа 33

РАЗДЕЛ 3. ДОКАЗУЕМО ПРОСТЫЕ ЧИСЛА 34

3.1. Тест Миллера на простоту 34

3.2. Тест Поклингтона 36

3.3. Процедура генерации простых чисел ГОСТ Р 34.10-94 38

Данные для самопроверки к разделу 3 41

ОБОЗНАЧЕНИЯ 45

СПИСОК ЛИТЕРАТУРЫ 46




РАЗДЕЛ 1. ОПЕРАЦИИ С БОЛЬШИМИ ЧИСЛАМИ

Простым числам в криптографии отведена одна из ведущих ролей. Большинство современных алгоритмов, такие как алгоритмы ГОСТ Р 34.11-94, ГОСТ Р 34.11-2001, DSA и EСDSA, используют простые числа. Криптографические стандарты накладывают условия на длину простого числа, например в ГОСТ Р 34.11-2001 значение простого числа должно быть больше 2255 , а по стандарту DSA – от 2512 до 21024.

Ключи и блоки данных такой длины не могут быть обработаны за один такт процессора, так как размер регистра процессора ограничен 64 битами. Одним из способов решения данной проблемы является создание классов больших чисел на основе существующих классов 64-битных чисел. Большое число создается на основе упорядоченного массива 64-битных чисел путем задания операций сложения, вычитания, умножения, и т.п.

В основном над классами больших чисел реализуют следующие операции:



  1. Сложение и вычитание целых положительных чисел по положительному модулю (x=(a+b) mod m, x=(a-b) mod m);

  2. Возведение целого положительного числа в квадрат по модулю (x=a2 mod m);

  3. Возведение целого положительного числа в целую положительную степень по модулю (x=ab mod m);

  4. Умножение двух целых положительных чисел по модулю (x=ab mod m);

  5. Вычисление обратного к целому положительному числу по целому положительному модулю (x=a-1 mod m, где 0am).

Рассмотрим методы, с помощью которых реализуются вышеперечисленные операции.

1.1. Сложение


Реализацию операции сложения рассмотрим на примере сложения чисел A и B длины 128 бит. Каждый операнд представлен в виде массива, состоящего из 2-х чисел, каждое из которых имеет длину 64_бита. Результатом данной операции будет являться число С, также представленное в виде массива из 2-х чисел длиной 64 бита каждое.
Для реализации операции сложения вам понадобится объявить класс больших чисел, объектами которого являются массивы, состоящие из двух беззнаковых целых чисел по 64 бита каждое.

  • A и B – входные параметры процедуры сложения, принадлежащие классу больших чисел;

  • C – переменная этого же класса, в которую будет записан результат сложения;

  • булева переменная s, которая будет использована для хранения бита переноса (изначально следует присвоить ей нулевое значение s=0).

Младшая часть числа A обозначена как A0, старшая часть – как A1. Аналогичные обозначения вводятся для чисел B и C. Запись A0(i) означает «i-й бит младшей части числа A». Нумерация бит производится справа налево.

Поскольку для класса 64-битных чисел уже заданы операции сложения, умножения и т.п., целесообразно воспользоваться ими для задания операций над 128-битными числами.

Операцию сложения начинаем со сложения младших частей чисел. При сложении двух 64-битных чисел результат может составить до 65_бит. Стандартная операция сложения 64-битных чисел может привести к переполнению регистра. Поэтому будем выделять следующие случаи:

I) A0(64) =0 и B0(64)=0. Тогда переполнения регистра не произойдет, и мы можем сразу воспользоваться стандартной операцией сложения (C0=A0+B0);

II) A0(64)=1 и B0(64)=1. Тогда результат наверняка займет 65 бит. В этом случае запоминаем значение старшего, 65-го бита: s=1, присваиваем старшим битам нулевые значения (A0(64)=0, B0(64)=0) и применяем стандартную операцию сложения (C0=A0+B0);

III) (A0(64)=1 и B0(64)=0) либо (A0(64)=0 и B0(64)=1). Тогда:

1) значению старшего бита присваиваем нулевое значение (A0(64)=0, B0(64)=0), пользуемся стандартной операцией сложения (C0=A0+B0);

2) проверяем старший бит результата:

а) если C0(64)=0, то присваиваем C0(64)=1,

б) если C0(64)=1, то присваиваем C0(64)=0 и запоминаем значение 65-го бита s=1.

Затем производится сложение старших частей – A1 и B1, идентичное сложению младших частей за исключением следующего нюанса: в качестве завершающего шага к старшей части следует прибавить бит переноса (С11+s).

При сложении старших частей также может возникнуть бит переноса. Его желательно сохранить, чтобы не допускать переполнения ни при каких входных значениях A и B. Каждый раз после сложения чисел желательно выполнять процедуру вычисления остатка от деления, описанную в пункте 1.3.


следующая страница >>