/>/>/>/>/>Содержание
Введение.
Глава 1. Структура и содержаниеучебно-методического пособия.
1.1. Теоретическое наполнение раздела«Операции с большими числами»
1.2. Теоретическое наполнение раздела«Вероятностные тесты на простоту»
1.3. Теоретическое наполнение раздела«Доказуемо простые числа»
1.4. Разработка заданий длялабораторных и самостоятельных работ
1.5. Тесты для самопроверки
Глава 2. Апробация методическогопособия.
2.1 Апробация в Тюменскомгосударственном университете
2.2 Апробация в Тюменскойгосударственной академии экономики, управления и права
Заключение
Список литературы
Приложение 1
/>/>/>/>/>Введение
Актуальность. Структуравысшего очного образования предполагает сочетание различных видов и методовобучения: аудиторные занятия, домашняя и самостоятельная работа студентов,выполнение курсовых работ по специальности, по предметам. Аудиторные занятия, всвою очередь, делятся на лекционные, практические, лабораторные и семинарскиезанятия. Для изучения каждого предмета ГОС ВПО (Государственный образовательныйстандарт высшего профессионального образования) по специальности определяетнеобходимое количество аудиторных занятий каждого вида, а также количествочасов, выделенных на самостоятельную работу студентов.
В учебном планеспециальности «Компьютерная безопасность» Тюменского государственногоуниверситета на изучение дисциплины «Криптографические методы защитыинформации» отводится 70 часов лекций и 35 часов лабораторных занятий. Объемсамостоятельной работы студента по дисциплине криптографические методы защитыинформации составляет 82 часа. На изучение других предметов криптографическойнаправленности – «Теоретико-числовые методы в криптографии» и «Криптографическиепротоколы» — также отведено в сумме 70 часов лекционных 35 часов практических занятий.В целом, на изучение криптографии в Тюменском государственном университетеотводится 210 часов аудиторной нагрузки. Таким образом, криптография какобщепрофессиональная и специальная дисциплина является одной из центральных вучебном процессе на специальности «Компьютерная безопасность».
Практические илабораторные занятия проводятся в виде выполнения студентами заданий вкомпьютерных классах под руководством преподавателя. Самостоятельная работастудентов осуществляется в виде реализации криптографических алгоритмов накаком-либо языке программирования. Целью практических, лабораторных занятий исамостоятельной работы студентов является лучшее усвоение материала, дающегосяна лекциях, через практику, самостоятельное, более глубокое изучение различныхаспектов криптографической защиты, вопросов практического применения иреализации криптографических алгоритмов и протоколов.
Методическое обеспечениеучебного процесса является одной из важнейших составляющих учебного процесса,особенно в части самостоятельной работы студентов. Связь между преподавателем истудентом не должна обрываться в тот момент, когда студент покидает аудиторию.Методические пособия, указания к выполнению лабораторных и самостоятельныхработ, разработанные как дополнение к лекционному материалу, призваны осветитьвопросы, встающие перед студентами в процессе выполнения ими самостоятельнойработы. Материал, даваемый на лекции, как правило, носит общий характер, ииз-за временных ограничений, а также различий в уровне подготовки студентов,различной мотивации к изучению предмета, интересу к различным разделам иаспектам данной дисциплины. В методическом пособии есть возможность рассмотретькаждое направление, каждый алгоритм более подробно, остановиться на вопросахего практической реализации, оговорить моменты, очевидные для одних студентов,но, возможно, представляющие существенные затруднения для других. Важныммоментом является возможность рассмотреть в методическом пособии темы, неотносящиеся непосредственно к изучаемой дисциплине, но использующиеся при ееосвоении. Например, в разработанное пособие вошел раздел «Операции с большимичислами», в котором не описано никаких криптографических алгоритмов, однаковесьма полезный для студента.
Тематика генерациибольших простых чисел, избранная для разработанного методического пособия,является ключевой для изучения криптографических методов защиты информации.Почти каждый криптографический алгоритм с открытым ключом требует генерациипростого числа размером не менее 512 бит. В процессе использования такихалгоритмов приходится многократно создавать такие числа, причем некоторыеалгоритмы требуют простые числа специального вида. Например, алгоритм цифровойподписи (ЦП) стандарта ГОСТ Р 34.11-94 требует генерации двух простых чисел p и q таких, что qявляется делителем числа (p-1). Такимобразом, прежде чем приступать к реализации алгоритмов с открытым ключом,студент должен освоить тему генерации больших простых чисел.
На данный моментсуществует несколько алгоритмов получения простого числа. В справочнойлитературе, в том числе такой популярной как [9], рассмотренные алгоритмыприведены без математического обоснования, что в свою очередь не позволяетизучить материал в полном объеме. Для получения наиболее полных знаний следуетпользоваться учебной литературой. Большинство изданий учебной литературысодержит не только описание самих алгоритмов, а также их математическиеобоснования, примеры и.т.п.
На данный момент средиучебной литературы достаточно слабо представлена тема генерации больших простыхчисел. Большинство авторов в своих работах не освещают данную тему в полномобъеме, а именно [1] осветил данную тему не в полном объеме, в работеприсутствуют описание алгоритмов и оценки их сложности и надежности. [3] осветилданную тему не в полном объеме, в работе присутствуют описание алгоритмов ихматематическое обоснование и примеры, отсутствуют оценки сложности и надежностиалгоритмов. [5] осветили тему не в полном объеме: в работе отсутствуетматематическое обоснование алгоритмов и их оценки сложности и надежности. [12]осветили данную тему достаточно полно, в работе присутствует описаниеалгоритмов их исчерпывающее математическое обоснование, присутствуют оценки сложностии надежности, примеры.
Таким образом, можносказать, что для студента является некоторой проблемой найти учебное илиучебно-методическое пособие на русском языке, в котором достаточно подробно,обоснованно были бы изложены основные алгоритмы генерации простых чисел спримерами.
/>/>/>/>/>Цельюданной работы является:
Разработать методическоепособие на тему «Генерация простых чисел» для специальности «Компьютернаябезопасность» Тюменского государственного университета, включающее в себятеоретический материал, задания к практическим работам, указания к ихвыполнению и материалы для проверки качества выполненных заданий.
/>/>/>/>/>Длядостижения данной цели пришлось решить следующие задачи:
1. Изучить материал потемам: арифметика больших чисел; асимптотический закон распределения простыхчисел; вероятностные тесты на простоту и генерация простых чисел случайнымпоиском; доказуемо простые числа и их построение.
2. Определить структуру исодержание методического пособия.
3. Оформить теоретическийматериал согласно структуре
4. Составить задания клабораторным работам по теме к каждому из разделов.
5. Составить задания длясамопроверки для каждой из глав пособия.
6. Апробироватьсоставленное методическое пособие с целью улучшения подачи материала.
/>/>/>/>/>Апробацияработы:
В 2007-2008 учебном годуданное методическое пособие впервые было предложено студентам 4 курсаспециальности «Компьютерная безопасность» групп 347 и 347 Института математикии компьютерных наук Тюменского государственного университета для выполнениялабораторных работ по дисциплине «Криптографические методы защиты информации».
В сентябре — декабре 2008года по материалу разработанного методического пособия в рамках преддипломнойпрактики в Тюменской государственной академии мировой экономики, управления иправа со студентами специальности «Прикладная информатика» были проведеныпрактические занятия по дисциплине «Информационная безопасность» в объеме 10часов аудиторных занятий и 12 часов самостоятельной работы студентов.
Данное методическоепособие включено в план издания учебно-методической литературы кафедры Информационнойбезопасности Тюменского государственного университета на 2009 г.
/>/>/>/>/>Глава 1. Структура исодержание учебно-методического пособия
Первоначальнопланировалось включить в пособие 2 раздела – «Вероятностные тесты на простоту»и «Доказуемо просты числа». Это обусловлено тем, что разные криптосистемыиспользуют разные типы простых чисел. Существует 2 основных подхода к генерациипростых чисел: методы, генерирующие число, являющееся простым с высокойстепенью вероятности (т.н. probability methods) и методы,генерирующие числа, являющиеся доказуемо простыми (т.н. provability methods).
В каждом разделе былиприведены несколько тестов на простоту.
После апробации пособия студентами4 курса специальности «Компьютерная безопасность» групп 347 и 347 Институтаматематики и компьютерных наук Тюменского государственного университета выяснилось,что многие студенты затрудняются самостоятельно описать класс больших чисел,поэтому было решено ввести в курс «криптографические методы защиты информации»дополнительную тему «Операции с большими числами» и провести по нейлабораторное занятие, а также включить данную тему в методическое пособие.
В каждом разделе выделенытеоретическая часть, задания для самостоятельной работы, также было решеновключить во второй и третий раздел тестовые данные для программ, разработанныхстудентами, чтобы каждый студент имел возможность самостоятельно проверитькорректность работы своей программы. Упрощенно, тестовые данные представляютсобой данные на вход программы и данные, которые должны быть получены навыходе. Также к каждой паре «вход-выход» приложено предположительноеопределение ошибки алгоритма в случае несовпадения полученного результата сожидаемым. Более подробно эти тестовые данные описаны в разделе 1.6./>/>/>/>/>/>1.1. Теоретическое наполнение раздела «Операции с большимичислами»
Большинство современныхалгоритмов такие как ГОСТ Р34.11-94, ГОСТ Р 34.11-2001, DSA и EСDSA накладываютусловия на длину простого числа, например в ГОСТ Р 34.11-2001 длина простогочисла должна быть больше 255 бит, а по стандарту DSA 512≤|p|≤1024. Для реализации данных алгоритмов необходимо умение работатьс «большими» числами, а именно знать, как они представляются в памятикомпьютера, и выполнять над ними арифметические операции.
Все алгоритмы, описанныев первой части пособия, приведены для случая, когда на основе класса 64-битныхцелых чисел описывается класс 128-битных целых. Пользуясь принципами,описанными для этого случая, студенту предоставляется самостоятельно построитькласс 256- или 512-, 1024-битных целых чисел.
В данной главе описаныалгоритмы, используя которые можно получить практически любую арифметическуюоперацию, а именно: сложение, умножения двух чисел (методом Карацубы),возведение в квадрат, вычисление остатка от деления, возведение в степень (дихотомическийалгоритм). Все операции над большими числами описаны через следующиестандартные операции над 64-битными целыми числами: сложение, вычитание,вычисление остатка от деления, возведение в квадрат, возведение в n-ю степень.
Операция сложения – этопервая операция, описываемая в пособии, поэтому она рассмотрена наиболееподробно. Предлагается метод с использованием стандартной операции сложения 64-битныхчисел. Результат сложения двух n-битных чисел предлагается помещать в 2n-битноечисло с тем, чтобы при выполнении криптографических преобразованийпромежуточный результат не выходил за размеры класса.
Вычисление остатка отделения. В пособии предлагается метод Барретта. В данном методе используются стандартные64-битные операции сложение, умножение, вычитание, возведение в n-ю степень, вычисление остатка отделения.
Умножение 2х чисел. Впособии предлагается метод Карацубы. В данном методе используются стандартные 64-битныеоперации сложение, умножение, вычитание, возведение в n-ю степень, вычисление остатка от деления. Данный метод даетпреимущество в скорости вычисления, так как позволяет сократить количествоопераций умножения с 4 до 3 по сравнению с традиционным подходом. Наряду сметодом Карацубы, описывается метод умножения «столбиком» (традиционный подход)и производится сравнение этих двух методов.
Возведение в квадрат. Впособии предлагается метод, основанный на стандартных 64-битных операцияхсложения, умножения и возведения в квадрат. Данный метод является болеевычислительно быстрым, чем возведение в квадрат через умножение, так как вданном методе доминирует операция возведения в квадрат, которая в свою очередьболее быстрая, чем операция умножения.
Возведение в степень. Впособии предлагается дихотомический алгоритм. Рассматриваются два вариантаэтого метода – «слева направо» и «справа налево». В данном алгоритмеиспользуются операции умножения и возведения в квадрат для 256-, 512- или 1024-битныхцелых чисел.
Изложение каждого изметодов сопровождается примерами./>/>/>/>/>1.2. Теоретическоенаполнение раздела «Вероятностные тесты на простоту»
В основном, учебники покриптографии упоминают или приводят именно вероятностные тесты на простоту.Простые числа, построенные случайным поиском с проверкой вероятностнымитестами, используются в криптосистемах RSA, Рабина (и других криптосистемах, основанных напроблеме факторизации).
В данной главе выделеныследующие разделы: асимптотический закон распределения простых чисел, тестФерма на простоту, тест Соловея-Штрассена, тест Миллера-Рабина.
Асимптотический законраспределения простых чисел. Данный раздел был включен во 2-ю главу для того, чтобыдать студенту представление об эффективности случайного поиска простых чисел,поскольку именно случайный поиск простых чисел используется в алгоритмахпостроения с использованием вероятностных тестов на простоту.
Вводитсятеоретико-числовая функция π(x) – количество простых чисел, меньших x. В пособии приводится собственно теорема (асимптотическийзакон), которая определяет предельные характеристики распределения простыхчисел среди целых положительных чисел, а также теорема Чебышева, определяющаяграницы интервала, на котором расположено π(x) для различных x.
Для иллюстрациииспользования приведенных теорем рассмотрен пример. В примере для множествацелых положительных 32-битных чисел (таких, что старший бит равен 1) сиспользованием асимптотического закона вычислена вероятность того, что наугадвыбранное из этого множества число окажется простым. Такая вероятность приняласледующее значение:
p»/>
Если сузить поиск донечетных чисел, то вероятность возрастет в 2 раза и составит p»/>.
После чего в методическомпособии сделан обоснованный вывод о том, что случайный поиск простых чиселцелесообразен.
Тест Ферма. В данном разделерассмотрен алгоритм теста Ферма на простоту. Данный тест позволяет эффективноопределять, является ли данное число простым, однако, с его помощью нельзястрого доказать составность числа.
В основе теста Фермалежит теорема Ферма. Ее формулировка приведена в тексте пособия (бездоказательства)
Теорема Ферма (малая)
Если р – простое, и p не делит a /> ap–1 ≡ 1 (mod p)
Таким образом, если n-простое число, то для любогооснования a будет выполняться сравнение an–1 ≡ 1 (mod n). Если n –составное число, то такое сравнение будет выполняться лишь для некоторых a в силу случайного совпадения. Наэтом факте основан тест Ферма, который проверяет данное сравнение для случайнымобразом выбранных оснований a.
Также в пособии отмеченотот факт что, для данного теста существуют такие составные числа, для которых сравнениеan–1 ≡ 1 (mod n) выполняются при любом основании a. Поэтому, каково бы ни было значение параметра надежности(то есть количество перебранных оснований a), тест Ферма будет принимать такое составное число запростое. Такие числа называются числами Кармайкла.
Следует отметить, что видчисел Кармайкла определяется теоремой Кармайкла.
Теорема Кармайкла:
n – число Кармайкла /> 1) n свободно от квадратов (т.е. n = p1∙p2∙…∙pk);
2) (pi – 1)\(n – 1), i =1,…,k ;
3) k />.
Теорема в пособии неприводится, однако была использована при создании тестовых данных длясамостоятельной проверки корректности работы приложения, созданного студентами.
Для данного тестаприводится оценка вероятности ошибки, равная εt, где ε />, где /> — функция Эйлера, n — испытуемое число, t — параметр надежности.
/> - функция Эйлера, где n —натуральное число, равна количеству натуральных чисел, не больших n и взаимнопростых с ним.
Если тест показал, чтоиспытуемое число является простым, то подразумевается, что данное числоявляется простым с вероятностью 1- εt.
В случае составногоиспытуемого числа, имеющего только большие делители, ε/>, то есть существуют числа, для которых вероятностьошибки при проверке их на простоту тестом Ферма близка к 1.
В качестве примераиллюстрирующего работу теста были приведены расчеты, в качестве испытуемогочисла было выбрано простое число 43, параметр надежности был выбран равный 2,основания, по которым проводилась проверка, были равны 35 и 13. При этомсравнение * выполнилось по основанию 35 и по основанию 13. Тест, таким образом,выдал ответ «43 – простое число».
Тест Соловея-Штрассена. Вданном разделе рассмотрен алгоритм теста на простоту Соловея-Штрассена. Так жекак и тест Ферма, данный тест позволяет эффективно определять, является лиданное число простым, однако, с его помощью нельзя строго доказать составностьчисла.
Этот тест основан наразличии между символами Якоби и Лежандра.
Символом Лежандраназывается символ /> , где p – простое число, Q(p) – множество квадратичных вычетов по модулю p, /> – множество квадратичных невычетов по модулю p, а называется числителем, р –знаменателем символа Лежандра.
Символ Якоби определяетсяравенством:/>,где n – составное число, каноническоеразложение которого есть />. Знаменатель символа Лежандра –простое число, а символа Якоби – составное.
Свойства символа Лежандраи символа Якоби совпадают, за исключением критерия Эйлера. Критерий Эйлеравыполняется для символа Лежандра, и не выполняется для символа Якоби.
Критерий Эйлера: Длясимвола Лежандра />
Алгоритм вычисления этихдвух символов одинаков, так как он основан на использовании свойств символовЯкоби и Лежандра.
В алгоритме теставстречается вычисление символа Якоби (/>). В пособии приведен алгоритмвычисления данного символа, без свойств, на которых основано вычисление данногосимвола. Студенту разъясняется роль данного символа в алгоритме.
Для данного тестаприводится оценка вероятности ошибки, равная εt, где t – число итераций теста, параметр надежности, а /> .
Из данной оценкинадежности теста сделан вывод о том, что оценка надежности для тестаСоловея–Штрассена гораздо лучше, чем для теста Ферма, даже в том случае, когдаφ(n) ненамного меньше n. Если на одной итерации вероятностьошибочного решения теста не превышает ½, то уже на двух итерациях –¼, на трех – 1/8, и т. д. Уже на 14 итерациях вероятность ошибочногорешения на превышает 0, 0001.
Также студентупредставлен пример, иллюстрирующий вычисление символа Якоби />. В заключении данногораздела студенту представлен пример работы алгоритма со следующими параметрами:испытуемое (простое) число равно 43, параметр надежности равен 2.
Тест Миллера-Рабина. ТестМиллера-Рабина, как и тесты Ферма и Соловея-Штрассена, строит вероятно простыечисла, то есть число, опознанное этим тестом как простое, может с некотороймалой вероятностью оказаться составным, однако вероятность ошибки у тестаМиллера-Рабина гораздо ниже, чем у первых двух тестов. Как правило, дляопознания простого числа достаточно одной итерации теста, но все же студентурекомендуется использовать не менее пяти итераций.
Данный тест основан натеореме ферма, которая гласит если n – простое число, то для любого a: 0
В пособии приведенаоценка вероятности ошибки ε ≤ />, то есть верхняя граница ошибкина одной итерации для теста Миллера-Рабина в 2 раза меньше аналогичной длятеста Соловея-Штрассена и в 4 раза – для теста Ферма. Если на одной итерациивероятность ошибочного решения в тесте не превышает ¼, то на двухитерациях – 1/16, на трех – 1/64. Для того, чтобы вероятность ошибки непревышала 0, 0001, требуется всего 7 итераций, что в 2 раза меньше, чем длятеста Соловея-Штрассена. На практике рекомендуется использовать не менее пятиитераций теста, что обеспечивает вероятность вынесения ошибочного решении неболее 0,001.
Студенту разъяснятся методпостроения последовательности b0, b1,…,bs, а именно то, что каждый последующий член данной последовательности являетсяквадратом предыдущего по модулю n, апоследний член есть ни что иное как an—1 mod n. То есть на одном из шагов теста строиться последовательностьквадратов по модулю n.
В качестве примера,иллюстрирующего работу теста, были приведены расчеты. В качестве испытуемогочисла было выбрано составное число 65, параметр надежности был выбран равный 5./>/>/>/>/>1.3. Теоретическоенаполнение раздела «Доказуемо простые числа»
В данном разделерассмотрены алгоритмы которые позволяют строить числа, простота которых невызывает сомнений, а именно тест Миллера на простоту, тест основанный натеореме Поклингтона, Процедура генерации простых чисел заданной длины ГОСТ Р34.10-94. Последний алгоритм используется в отечественном стандарте шифрованияГОСТ Р 34.10-94.
Данная тема редко и недостаточнополно затрагивается в учебно-методической литературе, несмотря на достаточнобольшую ее практическую значимость.
Подход к получениюдоказуемо простых чисел отличается от подхода, рассмотренного ранее. Дляпостроения таких чисел не используется случайный поиск. С использованиемтаблицы простых чисел небольшого размера, построенной заранее, строится число m (равное произведению несколькихпростых чисел либо произведению простых чисел и случайного числа), затем число n=2m+1 проверяется на простоту одним из нижеприведенных тестов.
Тест Миллера. Данныйтест, основанный на теореме Сэлфриджа, пригоден для доказательства простотылюбого нечетного числа, если известно разложение на простые сомножители числа,ему предстоящего. Однако этот тест достаточно трудоемок. Для некоторых чиселособого вида построены специальные доказательства простоты.
Теорема Сэлфриджа.
Пусть n—1=/>. n – простое, /> /> />a: 1) an—1≡1(modn);
2) />1(mod n).
Данная теорема приведенав пособии без доказательства.
Теорема Сэлфриджа даетудобный критерий для доказательства простоты числа. На основании этой теоремыпостроен алгоритм Миллера проверки чисел на простоту, который требуют полнойфакторизации числа n—1.
Алгоритм построенияпростого числа с помощью теста Миллера следующий:
1. Строится таблица малыхпростых чисел qi (илииспользуется готовая таблица);
2. Строится число m=/>(где qi—случайные простые числа из таблицы,αi – случайные целые числа), размеркоторого на 1 бит меньше требуемого размера для простого числа;
3. Вычисляется значениеn=2m+1;
4. Построенное число nиспытывается тестом Миллера с заданным параметром надежности.
Тест Миллера, приведенныйв пособии, осуществляет проверку сравнений (1) и (2) теоремы Сэлфриджа для всехqi по нескольким случайным основаниям a. Если для какого-то основания данныесравнения не выполняются, число отвергается (как, возможно, составное).Количество оснований, по которым производится проверка, есть параметрнадежности.
Следует заметить, чтопроверка условия (2) теоремы Сэлфриджа возможна благодаря тому, что проверяющемуизвестны все простые числа из разложения числа n-1, а именно числа 2 и qi.Для случайно выбранного (а не построенного) числа n проверка тестом Миллерабыла бы невозможна.
Числа qi изразложения числа m не должны бытьизвестны никому кроме лица, построившего данное число, иначе крипосистемы,построенные с использованием такого числа, станут уязвимыми для атак.
/>/>/>/>/>Тест, основанныйна Теореме Поклингтона. Теорема Сэлфриджа дает четкий критерий для проверкипростоты числа n, однако требуетзнания полного разложения числа (n—1)на простые сомножители. Следующая теорема позволяет ограничиться частичнойфакторизацией (n—1).
Теорема Поклингтона.
Пусть n=RF+1, F=/> — каноническоеразложение.
Если />a: 1) an—1≡1(modn);
2) />1(mod n) />.
/>p≡1(mod F) для любогопростого p\n.
Итак, если разложить n—1 на два сомножителя n—1=RF, где F>/>—1, то, еслидля некоторого a будут выполненыусловия Теоремы Поклингтона (1) и (2), то n – простое.
Таким образом, можнозначительно сократить количество проверок по сравнению с тестом Миллера.
Алгоритм построенияпростого числа с помощью теста на основании теоремы Поклингтона следующий:
1. Строится таблица малыхпростых чисел qi (илииспользуется готовая таблица);
2. Строится число F=/>(где qi—случайные простые числа из таблицы,αi – случайные целые числа), размеркоторого на 1 бит больше половины требуемого размера для простого числа;
3. Вычисляется значениеn=RF+1, где R – случайное четное число, размер которогона 1 бит меньше размера F;
4. Построенное число nиспытывается тестом на основании теоремы Поклингтона с заданным параметромнадежности.
Такой тест, приведенныйв пособии, осуществляет проверку сравнений (1) и (2) теоремы Поклингтона длявсех qi из разложения числа F по несколькимслучайным основаниям a.Если для какого-то основания данные сравнения не выполняются, число отвергается(как, возможно, составное). Количество оснований, по которым производитсяпроверка, есть параметр надежности.
Заметим, что число,построенное с помощью данного теста, более предпочтительно для использования вкачестве модуля криптосистем, поскольку никто, даже его создатель, не знаетполного разложения числа n—1.
Для иллюстрации алгоритмав пособии приведен пример расчета алгоритма со следующими параметрами:испытуемое число(n = RF+1) равно 4021, разложение n-1 — 22·3·5·67, R=67, F=22·3·5=60. Студенту разъясняется, что в данномпримере вероятность того, что наугад выбранное a будет удовлетворять условиям теоремы Поклингтона для данногопримера, есть (1—1/67)≈0,985.
Процедура генерациипростых чисел заданной длины ГОСТ Р 34.10-94. Данный процедура позволяетстроить доказуемо простые числа большего размера на основе простых чиселменьшего размера. Основана она на теореме Диемитко, которая гласит что для n=qR+1( где q –простое число, R – четное, R1(mod n), то n –простое число./>/>/>/>/>1.4. Разработка заданий для лабораторных и самостоятельныхработ
Для закрепления материалалекционных занятий нами были разработаны задания для лабораторных исамостоятельных работ. Всего разработано три комплекта заданий, соответствующиетрем темам: «Операции с большими числами», «Вероятностные тесты на простоту» и«Доказуемо простые числа». Предполагается последовательное выполнение этихзаданий, в порядке, изложенном в методическом пособии. На изучения каждой изтем, соответствующих разделам пособия, отводится по 2 часа лабораторных занятийи по 2 часа самостоятельной работы. Программная реализация алгоритмовосуществляется студентами в компьютерном классе под руководством преподавателя,отладка программы и оформление результата – в часы, отведенные для самостоятельнойработы.
Программные модулиразработанные в рамках перечисленных тем, описанные в них классы и функции,используются студентами в дальнейшем курсе предмета «Криптографические методызащиты информации» для выполнения лабораторных работ по реализации и использованиюасимметричных алгоритмов шифрования, алгоритмов цифровой подписи,криптографических протоколов, а также для выполнения курсовой работы попредмету.
Задание к первому разделу– «Операции с большими числами» не разделено на варианты, так как результатданной лабораторной работы подразумевает разработку класса для работы сбольшими числами, который используется при выполнении лабораторных работ ковторой и третьей главам. Выполнение задания к первому разделу, таким образом,является базовым элементом программ, которые разрабатываются студентами вдальнейшем, на протяжении всего курса предмета «КМЗИ».
Задания к разделу «Операциис большими числами» включают в себя создание класса больших чисел, в которомзаданы следующие операции: сложение, вычисление остатка от деления, умножениядвух чисел (методом Карацубы), возведение в квадрат, возведение в степень(дихотомический алгоритм). Используя данные операции можно получить практическилюбую арифметическую операцию.
Операция возведения встепень используется при шифровании данных в криптосистемах, основанных напроблеме дискретного логарифмирования, также данная операция используетсяпрактически во всех тестах на простоту.
Операции умножения ивозведения в квадрат используются при реализации операции возведение в степеньи.т.д. Исходя из вышеупомянутых критериев, мы сформулировали задания в порядкевозрастания сложности, а именно первой операцией, которую предстоит реализоватьстуденту, является операция сложения, как уже было описано выше, она является базовойоперацией, использующейся при реализации других операций. Далее студентупредстоит реализовать операцию умножения. При реализации данной операциииспользуется операция сложения. Следующим заданием является реализация операциивозведения в квадрат, в которой используются реализованные ранние операциисложения и умножения. Наконец, студенту предстоит реализовать операциювозведения в степень, для которой используются все ранее реализованныеоперации.
Существует большоеколичество различных вероятностных тестов на простоту. Из большинства тестовбыло выбрано три «основных», которые и стали предметом изучения в рамкахлабораторной работы к главе «Вероятностные тесты на простоту». Данные тестыбыли выбраны нами исходя из следующего: другие тесты либо гораздо сложнее, либоне имеют принципиальных отличий от выбранных нами тестов. Мы разработали триварианта лабораторной работы, в каждом из вариантов студенту предлагаетсяреализовать один из тестов, в зависимости от варианта, и закрепить свои знания,выполняя задания на использование Асимптотического закона распределения простыхчисел. Результат лабораторной работы предлагается оформить в виде таблицы, чтопозволило бы преподавателю сократить время, затрачиваемое на проверку даннойлабораторной работы (это связано с тем, что в данной лабораторной работеиспользуются алгоритмы, компьютерный расчет которых на больших числах занимаетдостаточно много времени (на персональном компьютере)). № 1 2 … 10 p n
Здесь №-номерэксперимента, p- найденное простое число, n- количество перебранных чисел дополучения простого.
Также следует отметить,что при заполнении таблицы число nимеет следующий смысл: количество перебранных чисел до получения простого, иесли взять среднее значение n подесяти экспериментам, то результат должен получиться достаточно близким крассчитанному числу ожидаемого количества перебранных чисел до полученияпростого числа. Если расхождение слишком велико, то можно сделать вывод, чтоданный вероятностный тест реализован не верно. Результат работы реализованногоалгоритма студент может проверить с помощью теста для самопроверки (тесты длясамопроверки будут детально рассмотрены в главе 1.5).
В задании к главе«Доказуемо простые числа» студенту предлагается реализовать три тестаоснованных на трех различных принципах (Данные тесты описаны в разделе 1.3).Исходя из этого, мы выделили три варианта лабораторной работы. В первом ивтором варианте лабораторной работы предлагается использовать тесты Миллера иПоклингтона для построения простых чисел, а для третьего варианта предлагаетсягенерировать простые числа при помощи процедуры ГОСТ 34.10-94. Результатлабораторной работы студенту предлагается оформить в виде таблицы, чтопозволяет преподавателю затрачивать минимум времени на проверку данной работы,а также, при отсутствии времени на проверку работы на занятии, проверить работыво внеурочное время. № 1 2 3 4 5 6 7 8 9 10 p Результат проверки вероятностным тестом k
В данной таблицу в первойстроке указывается номер эксперимента. Во второй строке – простое число,получившиеся в ходе эксперимента. В третьей строке – результат проверки этогочисла p, реализованного студентом к заданиюв главе «Вероятностные тесты на простоту». В четверную строку необходимо внестиколичество чисел, которые были проверенны детерминистическим тестом иопределены как составные, но вероятностным тест определил их, как простые.
Такой способ проверкитакже позволяет при необходимости студентам выполнять, а преподавателюпроверять задания, приведенные в пособии, дистанционно или полностью во время,отведенное для самостоятельной работы (например, в случае болезни студента илипри изучении данных тем в рамках других специальностей, где изучениекриптографии предусмотрено в качестве спецкурса или темы для самостоятельногоизучения). Следует отметить, что компьютерный расчет работы тестов,представленных в данном разделе, на больших числах занимает достаточно многовремени (на персональном компьютере)). Студенту предлагается сгенерировать десятьпростых чисел, алгоритм зависит от выбранного варианта, и затем проверитьданные числа одним из вероятностных тестов (реализованным в задании к главе«Вероятностные тесты на простоту»). Каждое число, отвергнутое при проверкедетерминистическим тестом, также проверять вероятностными тестами. Данноезадание показывает студенту, что некоторое количество простых чиселраспознаются детерминистическими тестами как составные.
Итак, в результатевыполнения комплекса заданий, предложенных в методическом пособии, студентдолжен получить следующие знания, умения и навыки:
· навыки реализациии использования класса больших чисел;
· навыки реализациии практического использования вероятностных тесов на простоту;
· знание опрактическом применении асимптотического закона распределения;
· умениерассчитывать необходимое количество итераций теста для достижения заданнойвероятности ошибки (если студенту представиться возможность, применимо кконкретной задачи, столкнуться с реализацией тестов на простоту, то он самостоятельносможет рассчитать необходимое количество итераций);
· представление оразличии вероятностных и детерминистических тестов на простоту (студент будетиметь четкое представление о том, что при реализации детерминистических тестовон строит число, простота которого не вызывает сомнений);
· знание онадежности тестов, об их быстродействии;
· знаниями о том,что не все числа определенные детерминистическими тестам, как составные насамом деле таковыми являются./>/>/>/>/>1.5. Тесты для самопроверки
Для того чтобы студентмог самостоятельно проверить корректность выполненных им работ, нами былиразработаны тесты для самопроверки. Тесты представляют собой наборы входных ивыходных данных, то есть студент подставляет в реализованный им тест наборвходных данных и делает вывод о корректности теста на основе сравненияполученных им выходных данных и данных «эталона». В пособии тесты выделены вотдельную главу, которая располагается после заданий к главам.
Тесты для самопроверкидля раздела «Операции с большими числами» представляет собой две таблицы (впервой таблице длина чисел не превышает 64 бит, во второй длина чисел непревышает 128бит), в столбцы которой занесены числа a и b,название операции и результат.
В таблице нами былиразработаны наборы входных и выходных данных для следующих арифметическихопераций: сложение, вычисление остатка от деления, умножение двух чисел,возведение в квадрат, возведение в степень. Студенту следует проверятьреализованные им арифметические операции в следующем порядке:
1. сложение, так какэто базовая операция, использующаяся при реализации всех остальных;
2. умножение, так какпри реализации данной операции используется только сложение, то для студента несоставит труда найти ошибку в алгоритме, зная, что операция сложения работаетверно;
3. вычислениеостатка от деления, так как при реализации данной операции используется битовыйсдвиг, сложение и вычитание;
4. возведение вквадрат, так как при реализации данной операции используются операции сложенияи умножения;
5. возведение встепень следует проверять последним, так как при реализации данной операциииспользуются почти все предыдущие проверяемые операции.
Пример тестовых данныхприведен в следующей таблице. a b a+b a*b a mod b
a2
ab 0 51 0 7 0 58 0 357 0 2 0 2601 0 897410677851 0 78 0 5 0 83 0 390 0 3 0 6084 0 2887174368 0 36 0 4 0 40 0 144 0 0 0 1296 0 1679616 0 21 0 10 0 31 0 210 0 1 0 441 0 16679880978201 0 5 0 12 0 18 0 60 0 5 0 25 0 244140625
Числа a и b подаются в программу, реализованную студентом, на вход, аданные в колонках «a+b», «a*b», «a mod b», «a2», «ab» это результаты которые должнавернуть программа при данных операциях (т.е. на основе этих данных студентделает вывод о корректности, реализованной им операции). Следует отметить, чтов таблице числа записаны «0 210» это следует понимать как старшую и младшуючасть числа.
Также следует реализованныеоперации проверять сначала на данных из таблицы с малыми значениями (64 бита),при успешном результате следует проверить на данных из второй таблицы(128 бит).
Тесты для самопроверкидля раздела «Вероятностные тесты на простоту» представляют собой таблицы, вкоторых указаны входные данные и реакция теста на эти входные данные (то естьчисло определяется как простое или как составное). Перед тем как использоватьтаблицы по назначению, следует установить количество итераций теста равнымодному. Также следует отметить, что проверяемое число следует проверять тестомне менее десяти раз и результат проверки сверять с данными из таблицы. Этообусловлено тем, что данные тесты всегда простое число принимает за простое, нокаждый тест может принять составное число за простое (при использованиинекоторых случайных оснований чисел). Поэтому если мы будем проверять составныечисла тестом, то иногда результат будет «простое» но чаще «составное». Стоитотметить, что для теста Ферма существует класс чисел Кармайкла, которыеявляются составными, но всегда принимаются за «простые». Такие числа такжевнесены в таблицу для самопроверки. Числа для проверки Результат теста Простые числа
0 8363
0 1657
0 9781 Всегда «простое» Числа Кармайкла
0 1105
0 2465
Для теста Ферма -Всегда «простое»,
для тестов Миллера-Рабина и Соловея-Штрассена- чаще «составное», чем «простое» Составные, нечетные, не Кармайкла
0 625
0 791
0 3871 Чаще «составное», чем «простое»
Всего в пособиинасчитывается 30 наборов.
Тесты для самопроверкидля раздела «Доказуемо простые числа» представляют собой таблицы, в которыхуказаны входные данные и реакция теста на эти входные данные. Для тестовМиллера и Поклингтона проверка проводиться в два этапа первый этап заключаетсяв проверке данных тестов таблицей составных чисел, второй проверкой таблицейориентированной на каждый из тестов. (Стоит отметить, что перед проверкойследует установить значение параметра надежности равным единицы).
Таблица составных чисел:Числа для проверки (p) Разложение p-1 Разложение F R Результат теста
0 335
0 437
0 657
0 779
2*167
22*109
24*41
2*389
167
109
41
389
2
4
16
2 Всегда отвергаются
Тест Миллера:
Простое число
p
Разложение
(p-1) Вероятность ошибки (вероятность того, что число будет принято за составное) 13
22*3 0,66666 29 2*2*7 0,57142 61 2*2*3*5 0,73333 97
25*3 0,66666
Тест Поклингтона:
Простое число
p Разложение F R Вероятность ошибки (вероятность того, что число будет принято за составное) 13 2*2 3 0,5 29 7 4 0,14285 61 3*5 4 0,46666 97
3*22 8 0,66666 157 13 8 0,125
Всего в пособии более 30тестовых примеров на каждый из тестов.
Для процедуры генерациичисел заданной длинны ГОСТ 31.10-94 предусмотрена отдельная таблица, в которойвходными данными являются числа q и t а результатом является построенноечисло p (Стоит отметить, что перед проверкойследует установить значение параметра ξ равным 0).
Процедура генерации чиселзаданной длинны ГОСТ 31.10-94:q t Построенное число p 3 4 13 5 6 41 7 5 29 5 5 31 11 7 67 11 8 199 13 7 79
Всего в пособии насчитывается20 наборов.
/>/>/>/>/>Глава2. Апробация методического пособия
В 2007-2008 учебном годуданное методическое пособие впервые было предложено студентам 4 курсаспециальности «Компьютерная безопасность» групп 347 и 347 Института математикии компьютерных наук Тюменского государственного университета для выполнениялабораторных работ по дисциплине «Криптографические методы защиты информации».Данный эксперимент проходил по следующей схеме: студенту предлагалось выполнитьлабораторные работы из методического пособия, после того как он прослушал материална лекционных занятиях. Лабораторные работы, разработанные для дисциплины«Криптографические методы защиты информации», предполагают реализациюалгоритмов на каком-либо языке программирования. После анализа программныхкодов студенческих лабораторных работ, нами была собраны статистические данныепо ошибкам допущенных студентами. На основе этих данных мы попытались выдвинутьгипотезы о причинах возникновения ошибок.
Во время проведенияданного эксперимента, проанализировав первые, полученные нами программные коды,мы выяснили, что студенты затрудняются в реализации класса больших чисел, чтопослужило поводом добавить материал по данной теме в пособие, оформленный ввиде главы, озаглавленной «Операции с большими числами».
Нами были доработанынекоторые иллюстрации к алгоритмам 1й главы («Операции с большими числами»),которые позволяют студенту сформировать более точное представление о механизмахпротекающих «внутри» алгоритма.
/>Для улучшения качества восприятия студентом материала,изложенного в методическом пособии, нами были добавлены комментарии калгоритмам и методам, в частности, достаточно подробно был описан алгоритмсложения двух больших чисел, так как данный алгоритма используется приреализации других алгоритмов, описанных в первой главе, именно поэтому онявляется первым алгоритмом раздела. Были переработаны и переформулированы некоторые задания клабораторным работам, для того чтобы обеспечить лучшее понимание студентом сутизадания и облегчить проверку их преподавателю.
По завершении апробацииметодического пособия в Тюменском государственном университете методическоепособие сильно изменилось в плане подачи материала, но основная концепция быласохранена. В основном изменения коснулись заданий лабораторных работ,наполнения глав теоретическим материалом. При анализе результатов мыосновывались на предположении, что студенты выполняли лабораторные работысамостоятельно, используя для достижения цели только материалы лекционныхзанятий и материалы, изложенные в методическом пособии. Для получения болееадекватных данных об эффективности методического пособия было принято решениепровести еще одну апробацию в одном из ВУЗов города Тюмени. Для апробациипособия была выбрана ГОУ ВПО Тюменская государственная академия экономики,управления и права специальность прикладная «информатика в экономике». Нашвыбор был обусловлен тем, что данная специальность в своем учебном плане имеетдисциплины, а именно «Информационная безопасность», схожие с дисциплинамиучебного плана ТюмГУ ИМиКН специальности «Компьютерная безопасность», а именно«Криптографические методы защиты информации». Методическое пособие былопредложено студентам 5го курса специальности «Прикладная информатика вэкономике» Тюменской государственной академии экономики, управления и права.
Данная апробация былапроведена в рамках преддипломной практики в период с сентября по декабрь 2008года. Апробация проводилась по уже отлаженной схеме, которая ранее применяласьв Тюменском государственном университете. В результате апробации были внесеныследующие изменения в методическом пособии:
Было принято решениеразработать тестовые задания для проверки работы алгоритмов, реализованныхстудентами. Данные тестовые задания представляют из себя наборы тестовыхданных, используя которые студент может оценить правильность работы реализованногоим алгоритма. В качестве примера таких тестовых данных приведем данные,предложенные студенту в главе «Вероятностные тесты на простоту» к тесту Ферма.Тестовые данные оформлены в виде таблицы. В первой колонке данной таблицыприсутствует описание чисел, которые представлены во второй колонки. В третьейколонке представлен результат теста при проверки чисел из второй колонки./> 2.1 Апробация в Тюменскомгосударственном университете
Первая апробация методическогопособия проходила в апреле 2008 года в институте Математики и компьютерных наукТюмГУ на специальности «Компьютерная безопасность» (группы 347, 348) в рамкахкурса «Криптографические методы защиты информации». К моменту апробации пособиесодержало только два раздела: вероятностные тесты на простоту» и «Доказуемопростые числа». Каждый раздел содержал теоретический материал по данномуразделу, а именно описание алгоритмов тестов на простоту и задания длявыполнения к каждому разделу. Студентам двух групп (347 и 348 группа) напротяжении двух лабораторных занятий (4 учебных часа) давались задания извторого и третьего разделов методического пособия. При выполнении этих заданийстуденты пользовались лекционным материалом и теоретическим материалом изметодического пособия. Задания выполнялись ими в аудитории под руководствомпреподавателя, а также во время, отведенное для самостоятельной работы.
Результаты сдавались ввиде таблиц, приведенных в заданиях к лабораторным работам. Кроме того, дляпроверки и анализа были собраны исходные коды программ, реализованныхстудентами.
Кроме того, студенты былиопрошены на предмет того, какие моменты в реализации алгоритмов генерациипростых чисел вызывали затруднение. Оказалось, что 7 из 11-ти человек, выполнявшихгенерацию простых чисел с помощью теста Соловея-Штрассена, затруднялись висполнении программной реализации вычисления символа Якоби, которыйиспользуется в данном тесте. Это тем более неожиданно, что большинствостудентов достаточно уверенно вычисляют подобные символы самостоятельно (припомощи ручки и бумаги). Поэтому было решено включить в текст пособия алгоритмвычисления символа Якоби. 6 из 11-ти студентов, реализовывавших тестМиллера-Рабина, заявили о необходимости примера в тексте пособия, демонстрирующегоработу алгоритма. Такой пример был добавлен в пособие.
Студенты, выполнявшиезадания по генерации простых чисел при помощи тестов Миллера и Поклингтона (1-йи 2-й варианты), затруднялись в построении числа p – кандидата в простые числа. Дело в том, что число p должно быть случайным, нечетным, ипри этом каноническое разложение числа (p—1) должно быть известно. 18 из 22-х студентов, выполнявших1-й и 2-й варианты, заявили о необходимости осветить в тексте пособия вопроссоздания такого числа подробнее. Поэтому в текст пособия были включеныинструкции по генерации таких чисел.
Кроме того, анализтекстов программ показал, что общим местом является неоптимальное выполнениеарифметических операций на больших числах, которые используются в тестах. В частности,алгоритм возведения в степень у 19 из 33 студентов был реализован черезпоследовательное умножение. Небольшое количество студентов (5 чел.) обращалиськ преподавателю за помощью, поскольку при возведении числа в степень по модулю(ak mod n) получали переполнение буфера. Оказалось, что все этистуденты пытались сначала возвести число в степень, и лишь затем вычислитьостаток от деления на n.Такого рода ошибки, возникающие из-за недопонимания процессов, происходящих впамяти компьютера при выполнении арифметических операций, встречалисьдостаточно часто, что послужило побудительным мотивом к включению в пособиераздела «Операции с большими числами», включающего в себя теоретическийматериал, задания к лабораторным работам.
В целом, апробацияпособия в ТюмГУ прошла успешно, студенты справились с предложенными имзаданиями, в текст пособия были внесены необходимые изменения, несколькоизменилась подача материала.
/>2.2 Апробация в Тюменской государственной академииэкономики, управления и права
Апробация пособия вТГФЭУП проводилась в рамках преддипломной практики в период с сентября подекабрь 2008 года. На апробацию пособия руководством вуза было выделено 10часов аудиторной нагрузки. В апробации участвовали студенты пятого курсаспециальности «Прикладная информатика в экономике». Дисциплина«Криптографические методы защиты информации» не является профильной на даннойспециальности, а выступает в качестве специального курса. На момент апробацииметодическое пособие содержало три главы: «Операции с большими числами»,«Вероятностные тесты на простоту», «Доказуемо простые числа» также задания длялабораторных и самостоятельных работ.
Апробация проводилась потой же схеме что и в ТюмГУ. Студентам двух групп на протяжении двух занятийпреподавателем было предложено выполнить первую лабораторную работу, т.е.реализовать класс для работы со 128битными числами. Изначально преподавательобъяснил студентам общетеоретический материал касающейся данной темы и реализовалсовместно с ними операцию сложения, а остальные операции было предложенореализовать самостоятельно. В ходе эксперимента выяснилось, что студенты имеютслабое представление о представлении чисел в памяти компьютера, что в своюочередь потребовало дополнительных объяснений. Несмотря на то, что операциюсложения студенты делали под руководством преподавателя, довольнораспространенной ошибкой стала ошибка связная с битом переноса. У студентовданной специальности отсутствует в программе дисциплина «Теория чисел», поэтомуперед тем как приступить к заданиям второй главы преподавателю пришлосьпрочитать лекцию (в частности о практическом применении Асимптотического законараспределения, вычислении символа Якоби и символа Лежандра и.т.д.). Несмотря нато что студентов ознакомили с теоретическим материалом непосредственно передвыполнением лабораторной работы студенты затруднялись в примененииасимптотического закона при генерации простых чисел. В результате анализалабораторных работ второй главы встречались разнообразные ошибки, но данныеошибки были настолько разные, что не представлялось возможным обледенить их вобщие группы. Несмотря на то, что на апробацию пособия руководством вуза быловыделено 10 часов, нам не удалось апробировать третью главу пособия, этосвязано с тем, что преподавателю приходилось отклоняться от темы работы иобъяснять сопутствующий материал из других дисциплин. В целом апробация прошлауспешно, в пособие были внесены некоторые корректировки. Также было приняторешение включить в пособие тесты для самопроверки для каждой из глав, чтопозволило бы студенту проверять правильность выполненных им работ без участияпреподавателя.
/>Заключение
Результатом даннойдипломной работы является методическое пособие довольно полно и подробноосвещающее тему генерации больших простых чисел. Поставленная цель — разработать методическое пособие на тему «Генерация простых чисел» дляспециальности «Компьютерная безопасность» Тюменского государственногоуниверситета, включающее в себя теоретический материал, задания к практическимработам, указания к их выполнению и материалы для проверки качества выполненныхзаданий, достигнута в полном объеме.
Материал, изложенный впособии, является вполне достаточным для выполнения работ, поскольку всенеобходимые алгоритмы описаны и приведены примеры. Материал изложен не вобщетеоретическом вида, а в виде инструкций и алгоритмов, что позволяетстуденту выполнять лабораторные работы, не обращаясь к другим источникам литературы.
Данное пособие подходиткак для контактного аудиторного обучения, так и для внеаудиторного обучения,что придает ему некоторую гибкость, т.е. оно может использоваться не только наспециальностях, на которых «Криптографические методы защиты информации» являетсяобязательной дисциплиной с выделенном аудиторным временем, но и дляспециальностей, где данная дисциплина изучается в рамках специализированногокурса. Также данное пособие может выступать в качестве дополнительнойлитературы при освоении данной темы студентами других специальностей (таких какспециальность «математика»). Поскольку оно позволяет не только дистанционнообучаться, но и позволяет преподавателю дистанционно проверять задания,выполненные студентом (это достигается путем использования таблиц результатов).Кроме того, данные для самопроверки позволяют студенту проверить корректностьвыполненных им работ без участия преподавателя.
В результате прочтениястудентом теоретической части, изложенной в пособии, студент должен получить следующиезнания:
· знание обосновных принципах создания класса больших чисел и работы с ним;
· знание о способахполучения простых чисел;
· знание отеоретико-числовых принципах, на которых основаны тесты на простоту;
· знание обасимптотическом законе распределения простых чисел;
· знание онадежности тестов, об их быстродействии;
· знания о том, чтоне все числа определенные детерминистическими тестам как составные на самомделе таковыми являются;
· представление оразличии вероятностных и детерминистических тестов на простоту (студент будетиметь четкое представление о том, что при реализации детерминистических тестовон строит число, простота которого не вызывает сомнений).
В результате выполнениякомплекса заданий, предложенных в методическом пособии, студент должен получитьследующие умения и навыки:
· навыки реализациии использования класса больших чисел;
· навыки реализациии практического применения вероятностных тесов на простоту;
· навыкипрактического применения асимптотического закона распределения;
· навыки реализациивероятностных тестов на простоту;
· умениерассчитывать необходимое количество итераций теста для достижения заданнойвероятности ошибки (если студенту представиться возможность, применимо кконкретной задачи, столкнуться с реализацией тестов на простоту, то онсамостоятельно сможет рассчитать необходимое количество итераций);
· навыки реализацииалгоритмов для построения доказуемо простых чисел.
Данное пособие позволяетстуденту изучить теоретическую часть, выполнить задания для лабораторных работи проверить свою работу на тестовых примерах. Данное пособие изначальноориентировано на использование при аудиторной работе и для самостоятельнойработы студентов дневного отделения, однако оно может быть использовано и придистанционном обучении, поскольку содержит материал, необходимый на всех этапахвыполнения самостоятельной работы при изучении темы «генерация больших простыхчисел». А именно: краткое изложение теории, задания для выполнения, подробноеруководство к выполнению заданий и наборы тестовых данных для самостоятельнойпроверки корректности реализованных программ.
/>/>/>/>/>Список литературы
1. Агибалов Г.П.Избранные теоремы начального курса криптографии: Учебное пособие. – Томск:Изд-во НТЛ, 2005. – 116 с.
2. Алферов А.П.,Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии: Учебное пособие.– М.: Гелиос АРВ, 2002. – 480 с.
3. Введение вкриптографию/Под общей ред. В.В. Ященко. – М.: МЦНМО, 1998. – 272 с.
4. Виноградов И. М.Основы теории чисел. – М.: Наука, 1972. – 402 с.
5. Молдовян Н.А.,Молдовян А.А. Введение в криптосистемы с открытым ключом. – СПб.:БХВ-Петербург, 2005. 288 с.: ил.
6. Молдовян А.А.,Молдовян Н.А., Советов Б.Я. Криптография. – СПб.: Изд-во «Лань», 2001. – 224с.
7. Рябко Б.Я.,Фионов А.Н. Криптографические методы защиты информации: учебное пособие длявузов. – М.: Горячая линия–Телеком, 2005. – 229 с.: ил.
8. Черемушкин А.В.Вычисления в алгебре и теории чисел. Курс лекций. — М.: 2002.
9. Шнайер Б.Прикладная криптография: Протоколы, алгоритмы, исходные тексты на языке Cи. –М.: Издательство ТРИУМФ, 2003 – 816 с., ил.
10. GoldwasserS., Bellare M. Lecture notes on cryptography. – Cambridge, Massachusetts, 2001.– 283 p.
11. Grundbegriffeder Kryptographie/ Vorlesungsscript von Eike Best — Oldenburg, 2005.
12. MenezesA., van Oorschot P., Vanstone S. Handbook of Applied Cryptography. – CRC Press,1996. – 661 p.
13. Анохин М.И.,Варновский Н.П., Сидельников В.М., Ященко В.В. Криптография в банковском деле. geo.com.ru/db/msg.html?mid=1161287&uri=all.html
14. ГОСТ Р34.10-94.Информационная технология. Криптографическая защита информации. Процедурывыработки и проверки электронной цифровой подписи на базе ассиметричногокриптографического алгоритма.
15. Баричев С.Г.,Гончаров В.В., Серов Р.Е. Основы современной криптографии. Учебное пособие дляВУЗов – М.: Горячая линия – Телеком, 2002 – 175с.
16. Саломаа А.,Криптография с открытым ключом.- М.: Мир, 1995