Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 2 - Математический базис КП.pptx
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
1.39 Mб
Скачать

Применение цепных дробей (продолжение)

П.3. Если НОД (a,b)=1, то подходящая дробь может быть

использована для решения диофантового уравнения

ax by d

Целочисленные решения уравнения можно найти как

x ( 1)n 1Q

, y ( 1)n 1 P

n 1

n 1

П.4. Для решения сравнения ax b(mod n) , полагая что (а,n)=1. Разложим n/a в цепную дробь [a0 , a1, , ak ] , тогда

x ( 1)k b Pk (mod n)

есть искомое решение уравнения.

4. Квадратичные вычеты

Квадратичные вычеты. Рассмотрим поле 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 (как легко проверить) будут невычетами.

Вычеты: 1,3,4,5,9

Невычеты: 2,6,7,8,10

Квадратичные вычеты

Обозначим QN множество квадратичных вычетов по модулю N, QN множество квадратичных невычетов по модулю N

Задача о квадратичном вычете:

Даны натуральные числа a и N, определить верно ли утверждение a QN ?

Если a вычет и НОД(a,N)=1, то существует решение квадратного уравнения

x2 a(mod N )

Считается, что решение задачи о квадратичном вычете эквивалентно решению задачи о разложении N на множители и

следовательно, эта задача является вычислительно неразрешимой.

Чтобы определить, является ли элемент 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) задача усложняется. Для решения задачи a mod p , необходимо найти некоторое

другое (вспомогательное) число 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) (алгоритм Чипполы)

1.

Выбираем случайно b так, что ( b2 -a)– невычет.

b2

 

a

1

 

p

 

2.

Находим r (b

b2 a) p 1

 

 

 

 

2 mod p

 

 

 

 

3. +r, -r –решения уравнения.

ПРИМЕР r2 10 mod13

Можно проверить, что значение символа Лежандра для 10 равно 1,т.е. в поле GF(13) корень из 10 существует.

Шаг 1. подбором находим число b такое, что (b2-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 modn, когда n- составное

Когда n составное число

n p q

a

mod n

, нахождение

 

является весьма трудной

задачей, и до сих пор не известно ни одного полиномиально сложного алгоритма ее решения, если p и q неизвестно.

• Если p и q известны, то общий порядок такой.

• 1. сначала нужно найти решения уравнения по простым модулям p и q (сомножителям n)- (+r,-r) , (+s,-s).

2. затем, используя китайскую терему о остатках, получить решение систем уравнений .

(Нужно решить 4 системы из двух уравнений, составленных из корней (+r,-r) ,

(+s,-s) ) и путем подстановки в исходное уравнение найти правильное решение.

Доказано, что по сложности задача нахождения вычета по составному модулю с неизвестными множителями p, q эквивалентна задаче факторизации чисел. Если p и q известны, то задача извлечения решается довольно просто по алгоритму, рассмотренному выше. Данный факт эффективно используется в криптосистемах с открытым ключом.