Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рожков_Ниссенбаум_ТЧМК_лекции.doc
Скачиваний:
1310
Добавлен:
27.03.2016
Размер:
2.55 Mб
Скачать

7.5. Теорема Диемитко и процедура генерации простых чисел заданной длины гост р 34.10-94.

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

Теорема Диемитко.

Пусть n=qR+1, где q – простое число, R – четное, R<4(q+1).

Если найдется a<n: 1) an—1≡1(mod n); 2) 1(mod n), то n – простое число.

Итак, если имеем простое число q, то, перебирая четные числа R, строим числа n=qR+1 и испытываем их на простоту согласно теореме Диемитко, пока не получим простое число. По полученному числу можно построить еще одно простое число и т.д.

Приведем алгоритм перехода от меньшего простого числа q: |q|=к большемуp: |p|=t, использующийся в ГОСТе. Фигурирующая в процедуре ξ есть равномерно распределенная на (0,1) случайная величина, получаемая с помощью линейного конгруэнтного генератора. Каждый раз на Шаге 1 получают новое значение ξ.

Алгоритм перехода от меньшего простого числа к большему:

Вход: t – требуемая размерность простого числа, q – простое число : |q|=.

Ш.1. Вычисляем N=. Если N – нечетное, то N=N+1.

Ш.2. u=0.

Ш.3. Вычисляем p=(N+u)q+1 – кандидат в простые.

Ш.4. Если p>2t, возвращаемся на Ш.1.

Ш.5. Если 2n—1≡1(mod n) и 2N+u1(mod n), то идем на Выход.

Ш.6. Вычисляем u=u+2. Возвращаемся на Ш.3.

Выход. p – простое число.

Первое слагаемое в построении числа N обеспечивает минимальный требуемый размер числа p, а второе вносит в процедуру поиска новых простых чисел необходимый элемент случайности.

Проверка на Шаге 4 необходима, чтобы число p не превышало своей верхней границы, а проверка на Шаге 5 есть проверка условия теоремы Диемитко при a=2.

Пример:

Вход: t=4, q=3=[11]2

  1. N==3. N=N+1=4.

  2. u=0.

  3. p=4·3+1=13.

  4. 13<24=16.

  5. 212 mod 13 =1, 24 mod 13 = 3.

Выход. р=13=[1011]2

Замечание

Поскольку на Шаге 5 условие теоремы Диемитко проверяется не для всех a<p, а только для 2, то некоторые простые числа, сгенерированных этим алгоритмом, не опознаются как простые. Но вероятность того, что для простого числа n наугад выбранное число a будет удовлетворять условиям теоремы Диемитко, есть (1—1/q), а q – достаточно большое число. Таким образом, проверки при a=2 вполне достаточно, чтобы не отсеивать слишком много простых чисел. Выбор a=2 обусловлен тем, что возведение числа 2 в степень в двоичном представлении является простой операцией.

Глава 2. Алгебраические основы теории чисел.

Долгое время арифметика (наука о числах) развивалась как наука о свойствах конкретных чисел. И только Франсуа Виет (1540-1603) ровесник первого Бурбона Генриха IV Наваррского и его жены королевы Марго, систематически стал применять для обозначения произвольных чисел буквы. (В России в это время правил Иван Грозный и было не до алгебры). С помощью таких обозначений уже можно было формулировать утверждения о числах вообще, поэтому Виета называют отцом алгебры.

Алгебра возникла как наука о математических системах, в которых можно производить алгебраические операции. Операции эти обычно, что бы не придумывать новых терминов, называют сложением и умножением. Первым и главным объектом изучения алгебры первое время были числа, позже к ним добавились многочлены и матрицы.

Было обнаружено, что у чисел, многочленов и матриц, самых полезных для естествознания математических объектов, много общего. Поэтому проще изучать их все разом, используя обще алгебраические обозначения, позволяющие точнее и яснее пояснить основную идею, лежащую в основе упомянутых общих свойств.

Образно говоря, не стоит отдельно развивать науку о столах, отдельно о табуретках, отдельно о тумбочках. Лучше изучать предмет из дерева на четырех ножках, с несущей поверхностью и дополнительными отделами. Если налагать некоторые дополнительные условия, то будет получаться стол, стул или шкаф соответственно. Ведь с точки зрения математики спагетти и блины почти неразличимы – это цилиндры, у которых разное отношение высоты цилиндра к радиусу основания: у спагетти 100:1, а у блина 1:100.