Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзам крипто.docx
Скачиваний:
22
Добавлен:
24.09.2019
Размер:
94.98 Кб
Скачать
  1. Тестирование чисел Мерена

Числами Мерсенна называются числа вида М(p) = 2p - 1, pN.

Задача для чисел Мерсенна - поиск в ряду этих чисел простых.

Мерсенн рассматривал значения функции 2p - 1 только при простых p.

Действительно, если p - составное, то такое же и М(p). Предположим, что

p=r*s, 1 < r и s < p, тогда

М(p)=2p-1=2rs -1=(2r -l)(2r(s-1) +2r(s-2) +...+2r +1).

Следовательно, если r делит p, то и М(r) делит М(p).

В то же время, если p - простое, то М(p) не обязательно является простым.

Например, для простого числа p = 11 число Мерсенна М(p)=211−1=2047=23×89 получается составным.

При доказательстве простоты чисел Мерсена Ферма использовал метод разложения на множители. Более эффективен тест Люка-Лемера.

Тест Люка - Лемера

Тест создает последовательность натуральных чисел: S0, S1, S2, ..., Sp-2, определяемую рекуррентной формулой Sk+1 = Sk2 - 2, где S0 = 4. Пусть р – простое число. Число Мерсена является простым тогда и только тогда, когда Sp-2 mod M(p) ≡ 0, т.е. остаток равен 0.

Поясним, каким образом задается ряд Sk. Члены последовательности можно записать в виде сумм степеней некоторых иррациональных чисел. Пусть = 2 +√3 и =2 +√3 . Докажем индукцией по n, что 2^n + 2^n=Sn.

Очевидно, + =S0. Предположим, что 2^(n-1) + 2^(n-1)=Sn-1.

Возводя в квадрат обе части равенства, получаем 2^n +2( )2^(n-1)+ 2^n=S2n-1. Поскольку =1,то следует соотношение 2^n + 2^n=S2n-1-2, что, по определению, дает Sn.

Описание алгоритма.

1. Ввод p. Если p < 3, то выход (не удовлетворяет условиям алгоритма).

2.Вычисление M(p) = 2p-1

3. Установить S = 4.

4. Для i = 1…p-2 вычислить S = (S2 mod M(p)) - 2

5. Если S mod (M(p)-1)0, то M(p) является простым, иначе составным.

4. Функция Эйлера

Эйлер установил такую закономерность, что существует определенная формула, по которой можно вычислить число взаимно простых чисел. Эта формула определяется на основе разложения числа m=p1a1*…*pkak. Функция Эйлера устанавливает число взаимно простых чисел с заданным числом m.

Формулы для вычисления:

  1. (m)=m(1-1/p1)(1-1/p2)(1-1/pi)

  2. (m)=(p11-p11-1)(p22-p22-1)…(pkk-pkk-1)

где pi-числа, на которые мы делим, i-их степени

Классическое приложение этой функции такое: Заданно некоторое натуральное число a и заданно некоторое число m, пусть m-составное, натуральное, положительное. Если эти два числа взаимно просты, тогда для этой пары чисел справедлива следующая теорема (теорема Эйлера):

a(m)mod m = 1.

Берем число a, возводим в (m) , берем модуль от a(m): т.е. остаток будет равен всегда единице.

Частный случай: m- простое(p), то: ap-1modp 1

Мультипликативная функция

Имеем два натуральных числа a и b, если они взаимно просты, то мультипликативная функция устанавливает число взаимно простых чисел, для произведение двух взаимно простых чисел по формуле:(a*b)=(a)* (b) т.е. при больших a и b, эта формула позволяет уменьшить выч. сложность. Но если числа a и b не взаимно простые, то вычисления проводятся по обычной формуле.

Функция Мебиуса

Функция Мебиуса μ(n) служит характеристикой канонического разложения. Характеристики канонического разложения: кратность, четность, нечетность. μ(n) определена для всех положительных натуральных чисел n и принимает значения {-1, 0, 1} в зависимости от характера разложения числа n на простые сомножители:

  • μ(n) = 1 если n не делится на квадрат простого числа и разложение n на простые множители состоит из чётного числа сомножителей;

  • μ(n) = −1 если n не делится на квадрат простого числа и разложение n на простые множители состоит из нечётного числа сомножителей;

  • μ(n) = 0 если n делится на квадрат простого числа.

Принято считать что μ(1) = 1.

На основе Функции Мебиуса можно найти Функцию Эйлера: (m)=((m/di)μ(d))

Задано число m. 1) находим все делители di/m 2) находим числа m/di

3) μ(di) - находим функцию Мебиуса для каждого значения

делителя. В конце мы и получаем значение функции Эйлера.

Числовая функция [a]

Это функция устанавливающая целую часть от нек. рационального числа. Может быть как положительное, так и отрицательное число. [3,5]=3. Пример приложения этой функции в криптографии: разложение факториалов на простые сомножители чисел.

Пример: 1000!= p1*p2*...*pl. Мы не раскладывая факториал, можем проверить все сомножители. Допустим сколько раз сомножитель 3 входит в 1000! 1000/3+1000/9=498 раз