Проверка больших простых чисел
Изучение криптографических методов защиты информации. Алгоритм цифровой подписи стандарта ГОСТ Р 34.11-94. Получение случайных простых чисел. Процедура выработки ключей в криптографических алгоритмах. Тесты на простоту для чисел специального вида.
Рубрика | Математика |
Вид | реферат |
Язык | русский |
Дата добавления | 15.05.2013 |
Размер файла | 144,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
криптографический простой число цифровой
Тематика проверки больших простых чисел является ключевой для изучения криптографических методов защиты информации. Почти каждый криптографический алгоритм с открытым ключом требует генерации простого числа размером не менее 512 бит. В процессе использования таких алгоритмов приходится многократно создавать такие числа, причем некоторые алгоритмы требуют простые числа специального вида. Например, алгоритм цифровой подписи (ЦП) стандарта ГОСТ Р 34.11-94 требует генерации двух простых чисел и таких, что является делителем числа
В криптографии под случайным простым числом понимается простое число, содержащее в двоичной записи заданное количество битов , на алгоритм генерации которого накладываются определенные ограничения. Получение случайных простых чисел является неотъемлемой частью процедур выработки ключей во многих криптографических алгоритмах, включая и .
Ввиду того, что тестирование простоты больших чисел требует существенных временных затрат, требование простоты получаемого числа часто ослабляют до сильной псевдо простоты по нескольким различным случайным основаниям. Существующие алгоритмы тестирования сильной псевдо простоты на порядки быстрее лучших известных алгоритмов тестирования простоты. В то же время, числа, успешно прошедшие тестирования сильной псевдо простоты по нескольким случайным основаниям, с большой вероятностью являются простыми, причем эта вероятность растет с ростом количества оснований, по которым проводится тестирование.
Рекордно большое простое число
Американские математики, участвующие в проекте GIMPS, получили самое большое известное простое число -- оно состоит из 17 миллионов цифр, его открытие позволит получить новые стойкие шифры, говорится в сообщении на сайте проекта.
Новое простое число, относящееся к классу простых чисел Мерсенна, записывается как , в нем цифр. Оно было получено 25 января 2013 года на компьютере одного из участников проекта -- профессора университета центрального Миссури Кертиса Купера (Curtis Cooper). Прежнее самое большое простое число, полученное в 2008 году, содержало цифр.
"Простые числа очень интересны не только математикам, но и обычным людям, потому что они применяются в криптографии, например, для банковских кодов. Все они основаны на больших простых числах. Чем больше простое число, тем устойчивее шифр. Поэтому есть большой интерес к ним" -- сотрудник Математического института имени Стеклова РАН (МИАН) Николай Андреев.
Проект (Great Internet Mersenne Prime Search), созданный в 1996 году, представляет собой сеть распределенных вычислений, к которой может присоединиться любой желающий. Его цель -- поиск так называемых простых чисел Мерсенна, впервые описанных в 17 веке французским математиком Мареном Мерсенном. "Обычные" простые числа делятся без остатка только на самих себя и на единицу, а простые числа Мерсенна могут быть представлены в виде .
"Числа Мерсенна -- это один из хороших способов получения больших простых чисел, поэтому их изучают. Для практических применений не важно, является ли простое число числом Мерсенна, но математикам так проще находить простые числа, там более простые алгоритмы", сказал Андреев.
Тесты на простоту для чисел специального вида
Натуральное число , большее единицы, называется простым, если оно делится нацело только на 1 и на себя. Основная теорема арифметики гласит, что любое натуральное число , большее единицы, может быть разложено в произведение простых чисел, причем это разложение единственно с точностью до порядка простых сомножителей. Каноническое разложение натурального числа имеет вид
,
где - различные простые числа, .
Тесты строятся на основе определенных теорем из теории чисел, сформулированных и доказанных для простых чисел. Если число не удовлетворяет тесту, то оно не является простым и отбрасывается. Для проверки берется следующее случайное число требуемого размера. Если число проходит тест, то некоторый переменный параметр, используемый для тестирования, изменяется и тест повторяется снова. Число прошедшее большое число опытов определенного типа считается псевдо простым, поскольку вероятность, что составное число может пройти все тесты пренебрежимо мала. Для того, чтобы исключить некоторые возможные классы составных чисел, которые могут проходить тесты конкретного типа, используют несколько различных тестов, по каждому из которых выполняется большое число опытов. Достоинством нахождения псевдо простых чисел является сравнительная простота процедуры. Недостатком первого подхода является то, что после нахождения большого псевдо простого числа может оказаться достаточно сложным определение разложения числа , которое необходимо, например, в случае электронной цифровой подписи на основе сложности задачи дискретного логарифмирования с сокращенной длиной подписи. Разложение числа представляет интерес также и для отсеивания некоторых классов слабых простых чисел.
Тесты чисел на простоту
1. Перебор делителей
Перебор делителей - алгоритм факторизации или тестирования простоты числа путем полного перебора всех возможных потенциальных делителей. Обычно перебор делителей заключается в переборе всех целых (как вариант: простых) чисел от 2 до квадратного корня из факторизуемого числа и в вычислении остатка от деления n на каждое из этих чисел. Если остаток от деления на некоторое число равен нулю, то является делителем . В этом случае либо объявляется составным, и алгоритм заканчивает работу (если тестируется простота ), либо сокращается на и процедура повторяется (если осуществляется факторизация ). По достижении квадратного корня из и невозможности сократить ни на одно из меньших чисел, n объявляется простым.
Теорема Вильсона
Теорема Вильсона - теорема теории чисел, которая утверждает, что - простое число тогда и только тогда, когда делится на . Практическое использование теоремы Вильсона для определения простоты числа нецелесообразно из-за сложности вычисления факториала.
Тест Миллера - Рабина
Тест Миллера -- Рабина -- вероятностный полиномиальный тест простоты. Позволяет эффективно определять, является ли данное число составным. Однако, с его помощью нельзя строго доказать простоту числа. Тем не менее, тест Миллера -- Рабина часто используется в криптографии для получения больших случайных простых чисел. Алгоритм был разработан Гари Миллером в 1976 и модифицирован Майклом Рабином в 1980 году. Пусть -- нечётное число большее . Число однозначно представляется в виде , где нечётно. Целое число , 1 , называется свидетелем простоты числа , если выполняются два условия:
1. не делится на ;
2. существует целое , , такое, что
Теорема Рабина утверждает, что составное нечётное число имеет не более различных свидетелей простоты, где - функция Эйлера.
Тест Соловея -Штрассена
Тест Соловея -- Штрассена -- вероятностный тест простоты, открытый в 1970-х годах Робертом Мартином Соловеем совместно с Фолькером Штрассеном. Тест всегда корректно определяет, что простое число является простым, но для составных чисел с некоторой вероятностью он может дать неверный ответ. Основное преимущество теста заключается в том, что он не «реагирует» и отсеивает как составные числа Кармайкла, на которых всегда ошибается тест Ферма.
Тест Соловея -- Штрассена опирается на малую теорему Ферма и свойства символа Лежандра. Основан на следующем утверждении:
Если -- нечетное составное число, то количество целых чисел, взаимнопростых с , удовлетворяющих сравнению , и таких, что не превосходит .
Тест Люкам - Леммера
Тест Люкам -- Леммера -- эффективный тест простоты для чисел Мерсенна. Этот тест был предложен Люка в 1878 году и в 1930 году усовершенствован Лемером (Lehmer).
Тест Люка -- Лемера базируется на том наблюдении, что простота числа Мерсенна влечёт простоту числа .
Благодаря тесту Люка -- Лемера простые числа Мерсенна удерживают лидерство как самые большие известные простые числа. Именно тест Люка -- Лемера лежит в основе проекта распределённых вычислений, занимающимся поиском новых простых чисел Мерсенна.
Тест Пепина
Тест Пепина состоит в возведении числа 3 в степень (серией из последовательных возведений в квадрат) по модулю Fn. Если результат сравним с -1 по модулю Fn, то Fn является простым, а в противном случае -- составным.
Тест Ферма
Тест Ферма позволяет эффективно определять, является ли данное число простым, однако, с его помощью нельзя строго доказать составность числа.
В основе теста Ферма лежит теорема Ферма. Ее формулировка приведена ниже:
Теорема Ферма (малая)
Если - простое, и не делит a, для любого .
Таким образом, если простое число, то для любого основания a будет выполняться сравнение . Если - составное число, то такое сравнение будет выполняться лишь для некоторых в силу случайного совпадения. На этом факте основан тест Ферма, который проверяет данное сравнение для случайным образом выбранных оснований .
Также следует отметить тот факт что, для данного теста существуют такие составные числа, для которых сравнение выполняются при любом основании . Поэтому, каково бы ни было значение параметра надежности (то есть количество перебранных оснований ), тест Ферма будет принимать такое составное число за простое. Такие числа называются числами Кармайкла.
Тест Конягина-Померанса
Если для известно полное разложение на простые множители или достаточно большая часть этого разложения, то можно с полиномиальной сложностью проверить, простое n или составное.
Алгоритм проверки простоты числа:
1. Заготавливаем таблицу всех простых чисел, не превосходящих ..
2. В цикле по от до осуществляем шаги 1) - 8) до тех пор, пока не докажем, что - простое или что - составное число:
1) если - составное (см. таблицу ), то F(a) = a - 1 и идём на шаг 8);
2) если - простое и , и идём на шаг 8);
3) иначе проверяем, выполняется ли сравнение: . Если нет, то - составное;
4) используя разложение на простые сомножители, находим порядок числа , т.е. наименьшее натуральное число, такое, что ;
5) проверяем, выполняется ли условие . Если оно не выполняется, то - составное;
6) вычисляем ;
7) если , то - простое;
8) если , то возвращаемся на шаг 1) для следующего значения. Если же , то - составное.
Заключение
Для создания программы была использована интегрированная среда разработки программного обеспечения NetBeans.
Для написания программы, реализующий алгоритм проверки на простоту больших чисел, был использован объектно-ориентированный язык программирования Java.
Для проверки числа на простоту среди многих существующих тестов, таких, как:
Перебор делителей
Теорема Вильсона
Тест Ферма
Тест Миллера-Рабина
Тест Соловея-Штрассена
Тест Люка-Лемера
Тест Пепина
Тест Агравала-Каяла-Саксены
Тест Конягина-Померанса
Был выбран Тест Конягина-Померанса, основанный на следствие из методе.
Программа полностью реализует предоставленный ранее алгоритм проверку простоты большого числа, используя алгоритм Конягина-Померанса. В ходе выполнения задания курсового проекта были сделаны следующие выводы:
Распределение получаемых простых чисел должно быть близко к равномерному на множестве всех простых чисел, содержащих битов.
Процесс проверки простоты числа занимает большие простые числа являются неотъемлемой частью многих современных алгоритмов шифрования, повышают эффективность работы криптосистемы с открытыми ключами. Размещено на Allbest.ru
...Подобные документы
Характеристика истории изучения значения простых чисел в математике путем описания способов их нахождения. Вклад Пьетро Катальди в развитие теории простых чисел. Способ Эратосфена составления таблиц простых чисел. Дружественность натуральных чисел.
контрольная работа [27,8 K], добавлен 24.12.2010Исторические факты исследования простых чисел в древности, настоящее состояние проблемы. Распределение простых чисел в натуральном ряде чисел, характер и причина их поведения. Анализ распределения простых чисел-близнецов на основе закона обратной связи.
статья [406,8 K], добавлен 28.03.2012Изучение основных подгрупп алгоритмов проверки простоты больших чисел: детерминированные и вероятностные проверки. Исследование методов генерации и проверки на простоту больших чисел с помощью метода Ферма (малая теорема Ферма), составление программы.
лабораторная работа [11,7 K], добавлен 27.12.2010Проблема универсального генератора простых чисел. Попытки создания формул для нахождения простых чисел. Сущность теоремы сравнений. Доказательство "Малой теоремы Ферма". "Золотая теорема" о квадратичном законе взаимности. Генераторы простых чисел Эйлера.
реферат [22,8 K], добавлен 22.03.2016Применение способа решета Эратосфена для поиска из заданного ряда простых чисел до некоторого целого значения. Рассмотрение проблемы простых чисел-близнецов. Доказательство бесконечности простых чисел-близнецов в исходном многочлене первой степени.
контрольная работа [66,0 K], добавлен 05.10.2010Важная роль простых чисел (ПЧ) в криптографии, генерации случайных чисел, навигации, имитационном моделировании. Необходимость закономерности распределения ПЧ в ряду натуральных чисел. Цель: найти закономерность среди ПЧ + СЧ, а потом закономерность среди
доклад [217,0 K], добавлен 21.01.2009Поиски и доказательства простоты чисел Мерсенна. Окончание простых чисел Мерсенна на цифру 1 и 7. Вопрос сужения диапазона поиска. Эффективный алгоритм Миллера-Рабина. Разделение алгоритмов на вероятностные и детерминированные. Числа джойнт ряда.
статья [127,5 K], добавлен 28.03.2012Свойства чисел натурального ряда. Периодическая зависимость от порядковых номеров чисел. Шестеричная периодизация чисел. Область отрицательных чисел. Расположение простых чисел в соответствии с шестеричной периодизацией.
научная работа [20,2 K], добавлен 29.12.2006Разработка индийскими математиками метода, позволяющего быстро находить простое число. Биография Эратосфена - греческого математика, астронома, географа и поэта. Признаки делимости чисел. Решето Эратосфена как алгоритм нахождения всех простых чисел.
практическая работа [12,2 K], добавлен 09.12.2009Закон сохранения количества чисел Джойнт ряда в натуральном ряду чисел как принцип обратной связи чисел в математике. Структура натурального ряда чисел. Изоморфные свойства рядов четных и нечетных чисел. Фрактальная природа распределения простых чисел.
монография [575,3 K], добавлен 28.03.2012Числа натурального ряда, их закономерное периодическое изменение: сведение бесконечного к конечному путем выявления периодичности. Обоснование метода поиска простых чисел с помощью "решета" Баяндина. Закон динамического сохранения относительных величин.
книга [359,0 K], добавлен 28.03.2012Первая таблица простых чисел, составленная математиком Эратосфеном. Периодические цикады как род цикад с 13- и 17-летними жизненными циклами, распространенных в Северной Америки. Принцип действия кредитной карты. Закономерности и свойства простых чисел.
научная работа [25,8 K], добавлен 28.01.2014Свойства делимости целых чисел в алгебре. Особенности деления с остатком. Основные свойства простых и составных чисел. Признаки делимости на ряд чисел. Понятия и способы вычисления наибольшего общего делителя (НОД) и наименьшего общего кратного (НОК).
лекция [268,6 K], добавлен 07.05.2013Структура и содержание учебно-методического пособия. Наполнение разделов "Операции с большими числами", "Вероятностные тесты на простоту", "Доказуемо простые числа". Разработка заданий для лабораторных и самостоятельных работ. Тесты для самопроверки.
дипломная работа [72,6 K], добавлен 25.02.2009Методи перевірки чисел на простоту: критерій Люка та його теореми, їх доведення. Теорема Поклінгтона та її леми. Метод Маурера - швидкий алгоритм генерації доведених простих чисел, близьких до випадкового та доведення Д. Коувером і Дж. Куіскуотером.
лекция [138,8 K], добавлен 08.02.2011Теорема Бернулли как простейшая форма закона больших чисел. Предельные теоремы теории вероятностей и объяснение природы устойчивости частоты появлений события. Качественные и количественные утверждения закона больших чисел, его практическое применение.
курсовая работа [75,2 K], добавлен 17.12.2009- Закон больших чисел. Проверка статистических гипотез (критерий согласия w2 Мизеса: простая гипотеза)
Предельные теоремы теории вероятностей. Сходимость последовательностей случайных величин и вероятностных распределений. Метод характеристических функций. Закон больших чисел. Особенности проверки статистических гипотез (критерия согласия w2 Мизеса).
курсовая работа [1,0 M], добавлен 27.01.2012 Вивчення властивостей натуральних чисел. Нескінченість множини простих чисел. Решето Ератосфена. Дослідження основної теореми арифметики. Асимптотичний закон розподілу простих чисел. Характеристика алгоритму пошуку кількості простих чисел на проміжку.
курсовая работа [79,8 K], добавлен 27.07.2015Понятие математического моделирования: выбор чисел случайным образом и их применение. Критерий частот, серий, интервалов, разбиений, перестановок, монотонности, конфликтов. Метод середины квадратов. Линейный конгруэнтный метод. Проверка случайных чисел.
контрольная работа [55,5 K], добавлен 16.02.2015Алгоритм Миллера-Рабина и малая теорема Ферма. Псевдопростые числа, тест на простоту. Криптографический алгоритм шифрования с открытым ключом и цифровой подписью. Создание открытого и секретного ключей. Режим подписи сообщения и способы ее проверки.
реферат [65,1 K], добавлен 12.12.2009