Тесты для самопроверки для раздела «Операции с большими числами» представляет собой две таблицы (в первой таблице длина чисел не превышает 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», «amodb», «a2», «ab» это результаты которые должна вернуть программа при данных операциях (т.е. на основе этих данных студент делает вывод о корректности, реализованной им операции). Следует отметить, что в таблице числа записаны «0 210» это следует понимать как старшую и младшую часть числа.
Также следует реализованные операции проверять сначала на данных из таблицы с малыми значениями (64 бита), при успешном результате следует проверить на данных из второй таблицы(128 бит).
Тесты для самопроверки для раздела «Вероятностные тесты на простоту» представляют собой таблицы, в которых указаны входные данные и реакция теста на эти входные данные (то есть число определяется как простое или как составное). Перед тем как использовать таблицы по назначению, следует установить количество итераций теста равным одному. Также следует отметить, что проверяемое число следует проверять тестом не менее десяти раз и результат проверки сверять с данными из таблицы. Это обусловлено тем, что данные тесты всегда простое число принимает за простое, но каждый тест может принять составное число за простое (при использовании некоторых случайных оснований чисел). Поэтому если мы будем проверять составные числа тестом, то иногда результат будет «простое» но чаще «составное». Стоит отметить, что для теста Ферма существует класс чисел Кармайкла, которые являются составными, но всегда принимаются за «простые». Такие числа также внесены в таблицу для самопроверки.
Числа для проверки | Результат теста | |
Простые числа | 0 83630 16570 9781 | Всегда «простое» |
Числа Кармайкла | 0 11050 2465 | Для теста Ферма -Всегда «простое»,для тестов Миллера-Рабина и Соловея-Штрассена- чаще «составное»,чем «простое» |
Составные, нечетные, не Кармайкла | 0 6250 7910 3871 | Чаще «составное»,чем «простое» |
Всего в пособии насчитывается 30 наборов.
Тесты для самопроверки для раздела «Доказуемо простые числа» представляют собой таблицы, в которых указаны входные данные и реакция теста на эти входные данные. Для тестов Миллера и Поклингтона проверка проводиться в два этапа первый этап заключается в проверке данных тестов таблицей составных чисел, второй проверкой таблицей ориентированной на каждый из тестов. (Стоит отметить, что перед проверкой следует установить значение параметра надежности равным единицы).
Таблица составных чисел:
Числа для проверки (p) | Разложение p-1 | Разложение F | R | Результат теста |
0 3350 4370 6570 779 | 2*16722*10924*412*389 | 16710941389 | 24162 | Всегда отвергаются |
Тест Миллера:
Простое число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 года. Апробация проводилась по уже отлаженной схеме, которая ранее применялась в Тюменском государственном университете. В результате апробации были внесены следующие изменения в методическом пособии: