- •Лекция 1 Математический базис КП
- •Изучено в прошлом семестре (асимметричные криптосистемы)
- •Планируется изучить в этом семестре
- •Литература по курсу
- •Дополнительная
- •• 1. Математический базис криптопротоколов
- •1. Малая теорема Ферма
- •Функция Эйлера
- •Теорема Эйлера (обобщение теоремы Ферма)
- •2. Решение системы линейных уравнений на основе китайской теореме об остатках
- •Доказательство. Докажем однозначность решения по
- •Обозначим
- •Пример решения системы уравнений
- •3.Цепные дроби
- •Пример цепной дроби
- •Пример подходящих дробей
- •Вычисление цепной дроби
- •• Подходящие дроби можно представить рациональными
- •Применение цепных дробей
- •Применение цепных дробей (продолжение)
- •Квадратичные вычеты. Рассмотрим поле GF(p), где p – простое число, GF(p) состоит из
- •Квадратичные вычеты
- •Чтобы определить, является ли элемент a GF p квадратичным вычетом, используются символы Лежандра
- •Нахождение вычетов
- •5.1 Генерирование случайных простых чисел
- •Ответом на данный вопрос является следующая теорема. Теорема [5]. Пусть П(n) – число
- •Из этой теоремы можно получить аппроксимацию доли нечетных l-разрядных простых чисел в виде
- •Важнейшие тесты по проверке простоты чисел
- •Если n простое, то оно всегда проходит тест (т. е. то, что оно
- •Тест Ферма
- •Тест Миллера–Рабина.
- •Тест проверка квадратным корнем
- •Примеры
- •Тест Миллера-Рабина - комбинация теста Ферма и квадратного корня
- •Идея алгоритма РМ
- •Итог
- •Доказывается [2, 3], что вероятность ошибки при использовании теста Миллера–Рабина аппроксимируется величиной 1/4t
- •Полиномиальный тест AKS
- •При непосредственной проверке этого равенства требуется вычислить значения всех (п —2) коэффициентов. Поэтому
- •5.2. Конструирование простых чисел
Примеры
•n=7, x=1 найти mod7=? Перебором находим
=1mod7
=4mod7
=2mod7
=1mod7
=4mod 7 =2mod7 mod7=1 или -1
•
n=8, x=1 найти Перебором находим =1mod8
=4mod8
=1mod8
=0mod8
=1mod8
=4mod8
=1mod8
=1mod8==1mod8
корни: +1,-1, 3, 5,
Но с другой стороны не факт, что при не простом n будут дополнительные корни, см. пример
n=22, x=1 найти Перебором находим =1mod22
=1mod22
И все, других корней нет!
Тест Миллера-Рабина - комбинация теста Ферма и квадратного корня
•Запишем n-1= r
•Тест Ферма при основании a можно записать===
=(((…
k раз
Идея алгоритма РМ
•1шаг. Выбрать a такое, что НОД(a,n)=1 Проверить=
2 шаг Положить i=1. Найти
=
Когда i=k-1, перейти к шагу 1 , выбрав новое a.
Если T2=1, то 1 T Но, это означает Т не простое
Итог
1.Представить n - 1 в виде 2s ∙ r , где r – нечетное число.
2.Сгенерировать случайное число a, такое что 2 a n 1.
3.Вычислить y = ar mod n:
y 1
а) если , то n прошло тест и возможно является простым (повторяем этот тест для другого случайно выбранного числа a);
б) если y, то 1вычисляются y2 mod n, y4 mod n, y2j для j < s до тех пор, пока не получится -1 для некоторого j. Если такое событие происходит, повторить тест для следующего a.
4. Если ни при каких j не выполняется шаг 3б, то число n – составное и отбрасывается как не прошедшее тест.
.
Доказывается [2, 3], что вероятность ошибки при использовании теста Миллера–Рабина аппроксимируется величиной 1/4t . Видно, что этот показатель значительно лучше, чем для теста Ферма, и все операции, необходимые для проведения этого теста, имеют полиномиальную сложность.
Полиномиальный тест AKS
•Предложен в 2002г. индийскими математиками Agrawal M., Kayal N., Saxena N.
Центральная идея опирается на следующий факт. Натуральное n при условии НОД(a,n)=1, является простым в том случае, когда
)modn (1)
Когда n простое n
(x a)n Cnk xk ( a)n k mod n (xn an )modn
i 0
(xn a an 1) mod n (xn a 1) mod n
Если же n составное n=psq и q не делится на p, то не делится на n и (1) нарушается.
При непосредственной проверке этого равенства требуется вычислить значения всех (п —2) коэффициентов. Поэтому в алгоритме вместо сравнения (1) рассматриваются сравнения (по двум модулям) вида
) (modn, mod( , (2)
где значения а и г подбираются специальным образом: сначала ищется «подходящее» значение г, а затем для него проверяется сравнение (2) для всех «малых» значений a.
Равенство (2) означает существование такого полинома q(x) Z[x] , что все коэффициенты полинома
) - q(x) ( кратны n.
Доказано, что сложность алгоритма довольно высока поэтому практической ценности алгоритм пока не имеет.
5.2. Конструирование простых чисел
Доказуемо простые числа большего размера на основе простых чисел меньшего размера можно строить, используя теорему Н. Диемитко.
Теорема Диемитко (1988г.)
Пусть n=qR+1, где q – простое число, R – четное, R<4(q+1). Если найдется a<n такое, что
1) an—1≡1(mod n);
n 1
2) a q 1(mod n ) , то n – простое число.
Итак, если имеем простое число q, то, перебирая четные числа R,
строим число n=qR+1 и испытываем его на простоту согласно теореме Диемитко, пока не получим простое число. По полученному числу можно построить еще одно простое число и т.д.
Пример. q=5, выберем R<4*6=24. Пусть R=14, тогда n=5*14+1=71.
Проверяем условия: пусть а=2, тогда 270 mod 71 1 и |
270 / 5 214 mod 71 54 1 |
Условия выполняются n=71 –простое число, |
|
Дальше, положив q=71, можно получить новое простое число и.т.д. Этот алгоритм исаользуется в стандарте ЦП Р 34.10-2001г.
