Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Мат Базис КП.pptx
Скачиваний:
9
Добавлен:
25.06.2024
Размер:
1.48 Mб
Скачать

Квадратичные вычеты. Рассмотрим поле 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. Генерирование случайных простых чисел

Соседние файлы в предмете Криптографические протоколы