
- •Лекция 1 Математический базис КП
- •Изучено в прошлом семестре (ассиметричные криптосистемы)
- •Планируется изучить в этом семестре
- •Литература по курсу
- •Дополнительная
- •• 1. Математический базис криптопротоколов
- •Малая теорема Ферма
- •Функция Эйлера
- •Теорема Эйлера (обобщение теоремы Ферма)
- •Утверждение 2. (Полезное для анализа стойкости криптосистем с открытым
- •1.2 Решение системы линейных уравнений на основе китайской теореме об остатках
- •Обозначим
- •Пример решения системы уравнений
- •1.3.Цепные дроби
- •Пример цепной дроби
- •Пример подходящих дробей
- •Вычисление цепной дроби
- •• Подходящие дроби можно представить рациональными
- •Применение цепных дробей
- •Применение цепных дробей (продолжение)
- •Квадратичные вычеты. Рассмотрим поле GF(p), где p – простое число, GF(p) состоит из
- •Чтобы определить, является ли элемент a GF p квадратичным вычетом, используются символы Лежандра
- •Нахождение вычетов
- •2.Генерирование простых чисел
- •1. Конструирование простых чисел
- •2. Генерирование случайных простых чисел
- •Ответом на данный вопрос является следующая теорема. Теорема [5]. Пусть П(n) – число
- •Из этой теоремы можно получить аппроксимацию доли нечетных l-разрядных простых чисел в виде
- •Важнейшие тесты по проверке простоты чисел
- •Если n простое, то оно всегда проходит тест (т. е. то, что оно
- •Тест Ферма
- •Тест Миллера–Рабина.
- •Тест проверка квадратным корнем
- •Примеры
- •Тест Миллера-Рабина - комбинация теста Ферма и квадратного корня
- •Идея алгоритма РМ
- •Итог
- •Доказывается [2, 3], что вероятность ошибки при использовании теста Миллера–Рабина аппроксимируется величиной 1/4t
- •Полиномиальный тест AKS
- •Алгоритм AKS
- ••Теорема 2. Пусть натуральное n и простое r таковы, что
- •Комментарий к алгоритму AKS
Квадратичные вычеты. Рассмотрим поле GF(p), где p – простое число, GF(p) состоит из элементов: 0, 1, 2, 3, … , p - 1 . Предположим, что p>2 . Ставится вопрос: какие из элементов этого поля являются квадратами этих или других элементов этого поля?
Определение 1. Если a GFявляетсяp квадратом некоторого элемента , т. е. a=b bGF2, p , то такой элементb GF pполя a называется
квадратичным вычетом. Остальные элементы поля, не представимые в таком виде, называются квадратичными
невычетами.
Если записать ненулевые элементы поля GF(p) как степени примитивного элемента , 1 , 2 , 3 , , тоp в1 этом1 случае квадратичные вычеты имеют вид: j , где j – четное число.
12 = 1,.
22 = 4 ,
32 = 9,
42 = 5,
52 = 3.
62 = 3,
72 = 5 ,
82 = 9,
92 = 4,
102 = 1.
Вычеты по mоd11
. Если p = 11, то вычетами в таком поле являются 1, 4, 9, 5, 3, так как 12 = 1, 22 = 4 , 32 = 9, 42 = 5, 52 = 3. Элементы 2, 6, 7, 8, 10 (как легко проверить) будут невычетами.

Чтобы определить, является ли элемент a GF p квадратичным вычетом, используются символы Лежандра
Определение 2. Символом Лежандра числа a и простого числа p
называется |
|
|
|
0, если p | a; |
|
a |
|
||
|
1, еслиa квадратичный вычет в GF( p); |
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
1, еслиa невычет в GF( p). |
Утверждение 4. Символ Лежандра может быть вычислен по формуле
|
a |
a |
p 1 |
mod p |
|
|
|
|
2 |
||
|
|||||
|
|
|
|
|
[2, 3]. |
|
p |
|
|
Однако данный метод не позволяет найти квадратный корень из a по mod p, даже если известно, что a – вычет.

Нахождение вычетов
Пусть НОД(а,p)=1. Тогда а называют квадратичным вычетом по модулю р, если квадратное сравнение r2 a(mod p) имеет некоторое решение r.
Поэтому нахождение вычета равносильно решению задачи нахождения квадратного корня уравнения r=modp.
Решение уравнения зависит от представления числа p
Простое число p может быть представлено
либо как p=4k+3, либо как p=4k+1, где k положительное целое число.
В первом случае корень находится просто: |
||
-найти |
r a( p 1)/4modp |
, |
|
-выдать в качестве ответа (r,-r).

•Пример для 1-го случая. =3mod23,
проверяем 23=4*5+3
Находим 324/4 36 mod 23 16
r=+16, r=-16.
Проверка =256mod23=3

Во втором случае (p=4k+1) задача усложняется.
Для решения задачи |
|
mod p , необходимо найти некоторое |
||||
a |
||||||
другое число b GF p |
|
, которое дает |
|
b |
1 , |
|
|
|
|
|
|||
|
|
|||||
|
|
|
|
|
|
|
т. е. b – невычет. |
|
|
|
p |
|
|
|
|
|
|
|
|
Хотя сейчас не известен полиномиальный алгоритм, решающий задачу нахождения невычета, однако с вероятностью 50% при случайном выборе элемента
будем попадать на невычет. Следовательно, b GF p несколько попыток случайного выбора b с высокой вероятностью даст невычет.

|
Тогда, имея в своем распоряжении метод генерирования невычетов b, |
||||||||||
|
можно использовать следующую конструкцию для нахождения |
|
mod p |
||||||||
|
a |
||||||||||
[2, 3]: |
|
|
|
|
|
|
|
0, 1, 2, 3, , p 1 |
|||
|
1) генерировать случайные числа |
b Z p |
, |
Z |
p |
||||||
|
|
, до тех пор, |
|||||||||
|
пока b2 – 4a не окажется квадратичным невычетом по mod p, т. е. |
||||||||||
|
|
2 |
4a |
|
|
|
|
|
|
|
|
|
b |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2) найти r x p 1 |
2 |
mod x2 |
,bx a |
||
|
где x |
2 |
bx a |
|
|
GF p |
|
|
|
- полином над полем |
3) выдать ответ: r, -r – как решение задачи a mod p .
Сложность нахождения a mod p составляет битовых операций O log p 3

Второй способ решения квадратного уравнения при (p=4k+1) (алгоритм Чипполы)
r (b |
b2 |
a) p 1 |
2 mod p |
||
Где ( b2 -a)– невычет. |
b2 |
|
a |
1 |
|
|
p |
|
|
||
|
|
|
|
|
|
ПРИМЕР r2 10 mod13 |
62 36 mod13 10 |
Можно проверить, что значение символа Лежандра для 10 равно 1,т.е. в поле GF(13) корень из 10 существует.
Шаг 1. подбором находим число b такое, что (b^2-10) оказывается невычетом. Например, b=2.
Шаг 2. вычисляем |
(b b2 |
a) 2 |
4 10 2 |
6. |
|
|
|
Далее находим |
|
|
|
|
|
|
|
(2 |
6)7 |
mod13 (2 |
6)2 (2 |
6)2 (2 |
6)2 (2 |
6) mod13 |
|
( 2 4 |
6)( 2 4 6)( 2 4 6)(2 |
6) mod13 |
|
||||
(9 2 |
6)(2 |
6) mod13 6 |
|
|
|
Делаем проверку 62 36vod13 10

Решение уравнения r=√a modp, когда р- составное
|
|
n p q |
|
mod n |
|
Когда n составное число |
a |
||
|
, нахождение |
|
является весьма |
|
|
трудной задачей, и до сих пор не известно ни одного полиномиально |
|||
|
сложного алгоритма ее решения, если p и q неизвестно. |
|||
• |
Если p и q известны, то общий порядок такой. |
|
|
|
• |
1. сначала нужно найти решения уравнения по простым модулям p и q (сомножителям n)- |
|||
|
(+r,-r) , (+s,-s). |
|
|
|
2. затем, используя китайскую терему о остатках, получить решение систем уравнений .
(Нужно решить 4 системы из двух уравнений, составленных из корней (+r,-r) , (+s,-s) ) и путем подстановки в исходное уравнение найти правильное решение.
Доказано, что по сложности задача нахождения вычета по составному модулю с неизвестными множителями p, q эквивалентна задаче факторизации чисел. Если p и q известны, то задача извлечения решается довольно просто по алгоритму, рассмотренному выше. Данный факт эффективно используется в криптосистемах с открытым ключом.
2.Генерирование простых чисел
Вкриптографии с открытым ключем необходимо уметь находить простые числа. Обычно эта задача решается двумя способами:
1. Конструирование простых чисел;
2. Генерирование случайных простых чисел