страница 1страница 2 ... страница 4страница 5
|
|
Похожие работы
|
Учебно-методическое пособие для студентов специальностей «Компьютерная безопасность» - страница №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 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 ОБОЗНАЧЕНИЯ 45 СПИСОК ЛИТЕРАТУРЫ 46 РАЗДЕЛ 1. ОПЕРАЦИИ С БОЛЬШИМИ ЧИСЛАМИПростым числам в криптографии отведена одна из ведущих ролей. Большинство современных алгоритмов, такие как алгоритмы ГОСТ Р 34.11-94, ГОСТ Р 34.11-2001, DSA и EСDSA, используют простые числа. Криптографические стандарты накладывают условия на длину простого числа, например в ГОСТ Р 34.11-2001 значение простого числа должно быть больше 2255 , а по стандарту DSA – от 2512 до 21024. Ключи и блоки данных такой длины не могут быть обработаны за один такт процессора, так как размер регистра процессора ограничен 64 битами. Одним из способов решения данной проблемы является создание классов больших чисел на основе существующих классов 64-битных чисел. Большое число создается на основе упорядоченного массива 64-битных чисел путем задания операций сложения, вычитания, умножения, и т.п. В основном над классами больших чисел реализуют следующие операции:
Рассмотрим методы, с помощью которых реализуются вышеперечисленные операции. 1.1. СложениеРеализацию операции сложения рассмотрим на примере сложения чисел A и B длины 128 бит. Каждый операнд представлен в виде массива, состоящего из 2-х чисел, каждое из которых имеет длину 64_бита. Результатом данной операции будет являться число С, также представленное в виде массива из 2-х чисел длиной 64 бита каждое. Для реализации операции сложения вам понадобится объявить класс больших чисел, объектами которого являются массивы, состоящие из двух беззнаковых целых чисел по 64 бита каждое.
Младшая часть числа 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, идентичное сложению младших частей за исключением следующего нюанса: в качестве завершающего шага к старшей части следует прибавить бит переноса (С1=С1+s). При сложении старших частей также может возникнуть бит переноса. Его желательно сохранить, чтобы не допускать переполнения ни при каких входных значениях A и B. Каждый раз после сложения чисел желательно выполнять процедуру вычисления остатка от деления, описанную в пункте 1.3. следующая страница >> |
|