Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним





НазваниеРабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним
страница6/16
Дата публикации18.08.2013
Размер3.85 Mb.
ТипУчебное пособие
100-bal.ru > Математика > Учебное пособие
1   2   3   4   5   6   7   8   9   ...   16

§5. Теория квадратичных вычетов



Рассмотрим сравнение xna(mod m) *, (a,m)=1. Если * имеет решение, то а называется вычетом степени n по модулю m. Если n=2, то вычеты называются квадратичными, если n=3 – кубическими, n=4 – биквадратичными. Если * решений не имеет, то а называется невычетом степени n по модулю m.

Далее будем рассматривать случай n=2, т.е. сравнения вида x2a(mod m), (a,m)=1.

  1. 5.1. Квадратичные вычеты по простому модулю.


В этом пункте будем рассматривать сравнения вида x2a(mod p), p>2 – простое число.

Теорема 1.

Если а – квадратичный вычет по простому модулю р, то сравнение x2a(modp) имеет ровно 2 решения.

Доказательство:

Если а – квадратичный вычет по модулю p, то найдется хотя бы одно решение исходного сравнения: xx1(mod p).

Но, поскольку (—x1)2=x12, то решением также является xx1(mod p), причем x1 x1(mod p), т.к. р – нечетное число.

Более двух решений данное сравнение иметь не может, так как является сравнением второй степени (§4, п.3, Теорема 2).

 

Теорема (о числе квадратичных вычетов)

Приведенная система вычетов по модулю p состоит из квадратичных вычетов и квадратичных невычетов.

Доказательство:

Среди вычетов приведенной системы по модулю p квадратичными вычетами являются только те, что сравнимы с квадратами чисел

…, –2, –1, 1, 2,…, , т.е. с числами 1, 22, 32,…,

При этом квадраты не сравнимы между собой по модулю p, т.к. иначе из того, что k2 l2 (mod p), 0 < k < l следовало бы, что сравнению x2l2(mod p) удовлетворяют 4 числа: –l, l, k, k, что противоречит Теореме 1.

Таким образом, квадратичных вычетов в приведенной системе по модулю p ровно штук. Остальные элементы приведенной системы являются квадратичными невычетами. А поскольку всего в приведенной системе по модулю p содержится p1 элементов, то квадратичными невычетами являются также элементов.

 

Множество квадратных вычетов по модулю p обозначается Q(p), множество квадратичных невычетов – .

  1. 5.2. Символ Лежандра. Символ Якоби.


Символом Лежандра называется символ (читается «символ Лежандра а по р»). а называется числителем, рзнаменателем символа Лежандра. Символ Лежандра отвечает на вопрос, является ли число а квадратичным вычетом по модулю р.

Вычислить символ Лежандра можно, пользуясь следующими свойствами.

Свойства символа Лежандра:

  1. Критерий Эйлера:

  2. aa1(mod p)











  3. 3акон взаимности: если p, q – нечетные простые числа


Докажем некоторые из этих свойств.

Теорема (Критерий Эйлера)

Если (p, a)=1

Доказательство:

По теореме Ферма, ap--1≡1(mod p). В этом сравнении перенесем единицу в левую часть: ap1—1≡0(mod p). Поскольку p – простое, а значит нечетное число, значит p—1 – число четное. Тогда можем разложить левую часть сравнения на множители: .

Из множителей в левой части один и только один делится на p, то есть либо

*, либо **

Если а – квадратичный вычет по модулю р, то а при некотором x удовлетворяет сравнению ax2(mod p) , тогда , а учитывая (по теореме Ферма), что xp1≡1(mod p), получаем сравнение (*).

При этом решения сравнения * исчерпываются квадратичными вычетами по модулю р. Следовательно, если а – квадратичный невычет по модулю р, то сравнение * не выполняется, а значит выполняется сравнение **.

 

Свойство 2:

Доказательство следует из того, что все числа одного класса вычетов по модулю р будут одновременно квадратичными вычетами или квадратичными невычетами.

 

Свойство 3:

Для любого p выполняется 1≡12(mod p), а значит «1» является квадратичным вычетом для любого модуля p.

 

Свойство 4:

Доказательство следует из критерия Эйлера при a=—1.

 

Свойство 5:

По критерию Эйлера, .

 

Доказательства прочих свойств можно произвести самостоятельно или найти в [5].

Итак, символ Лежандра можно найти, пользуясь либо критерием Эйлера, либо используя свойства 2-8:

Пример:

a)

10 – квадратичный вычет по модулю 13.

б)

.

1350 не является квадратичным вычетом по модулю 1381.
Пусть n – составное число, каноническое разложение которого есть . Положим (a,n)=1. Тогда символ Якоби определяется равенством:

Свойства символа Якоби:

1. aa1(mod n)

2.

3.

4.

5.

6. 3акон взаимности:

(n,m)=1, n, m>0, n, m — нечетные числа .

Эти свойства нетрудно доказать, воспользовавшись определением символа Якоби и свойствами символа Лежандра.

Очевидно, для символа Якоби выполняются те же свойства, что и для символа Лежандра, за исключением только критерия Эйлера. Критерий Эйлера для символа Якоби не выполняется.

Приведенные свойства символа Якоби позволяют составить алгоритм для вычисления символа Якоби и символа Лежандра:

  1. Выделяем из числителя все степени двойки:



  1. Пользуясь св-вом 4, понижаем степень k:



  1. Если k mod 2=1, то вычисляем пользуясь св-вом 5.

  2. Символ преобразуем, пользуясь законом взаимности, и затем приводим числитель m по модулю знаменателя n1 и повторяя для получившегося символа Якоби шаги 1-4, пока в числителе не останется 1 или —1.

В более формализованном виде алгоритм выглядит следующим образом:

Алгоритм вычисления символа Якоби:

Вход: n - числитель, m – знаменатель символа Якоби. m – нечетное число,

n, m>0, s=1.

Ш.1: Если (n,m)≠1, то s:=0. Идти на Выход.

Ш.2: n:=n mod m. Ш.3.

Ш.3: Представить n как n=2kn1 . k:=k mod 2, n:=n1.

Ш.4: Если k=1, то если m mod 8 = 3 или m mod 8 = 5, то s:=—s .

Ш.5: Если n=1, то идти на Выход.

Ш.6: Если n=m—1, и m mod 4 = 1, то идти на Выход.

Если n=m—1, и m mod 4 = 3, то s:=—s. Идти на Выход.

Ш.7: nm. s:=s·(—1) . Идти на Ш.2.

Выход. s – символ Якоби.

Пример:



.

  1. 5.3. Тест на простоту Соловея-Штрассена.



Символ Якоби отличается от символа Лежандра тем, что в первом знаменатель – составное число, а во втором – простое. Алгоритм вычисления символа Якоби и символа Лежандра одинаков, но для символа Якоби не выполняется критерий Эйлера.

Пусть мы имеем нечетное число n, о котором неизвестно, простое оно или составное. Символ является символом Лежандра, если n – простое, и тогда для него выполняется критерий Эйлера, то есть .

Если же n – составное число, то символ является символом Якоби, и тогда вышеуказанное сравнение, возможно, не выполняется. (Мы говорим «возможно», так как для некоторых a и n, в силу случайного совпадения, сравнение может оказаться верным.)

Поэтому если найдется такое a (1 < a < n), что , то можно наверняка утверждать, что число n – составное. На этом факте основан тест Соловея-Штрассена.

Тест Соловея-Штрассена:

Вход: n – нечетное, t – параметр надежности.

1. Повторять t раз:

1.1 Случайно выбираем a:

1.2. Если n – составное”. Выход.

1.3. Вычисляем ,

1.4. Если r ≠s n –составное ”. Выход.

2. “n –простое с вероятностью 1— εt ”. Выход.
Как и тест Ферма, этот тест может принять составное число за простое, но не наоборот. Вероятность ошибки (то есть вероятность принять составное число за простое) составляет εt, где t – число итераций теста, параметр надежности, а < .

Как видим, оценка надежности теста Соловея–Штрассена гораздо лучше, чем для теста Ферма, даже в том случае, когда φ(n) ненамного меньше n.

  1. 5.4. Решение квадратичных сравнений по простому модулю.


Пусть дано сравнение x2a(mod p), p>2 – простое и .

Данное сравнение имеет 2 решения. Укажем, как найти эти решения.

Для p возможны следующие случаи:

p:

p≡3(mod 4) p≡1(mod 4)
p≡5(mod 8) p≡1(mod 8)
p≡9(mod 16) p≡1(mod 16)
И т. д.

а)Пусть p≡3(mod 4), т.е. p=4k+3.

По критерию Эйлера, . Подставляя сюда p, получим



a2k+1≡1(mod p)

a2k+2a(mod p)

Вернувшись сравнению, которое требуется решить, заметим, что x2a2k+2(mod p), и тогда x±ak+1(mod p) – искомое решение.
б) p≡5(mod 8), т.е. p=8k+5.

Найдем какой-нибудь квадратичный невычет по модулю p. Согласно св-ву 7 для символа Лежандра, таким невычетом в случае p=8k+5 будет являться «2». Тогда, согласо критерию Эйлера, 24k+2≡—1(mod p).

Так как a – квадратичный вычет по модулю p, то по критерию Эйлера, .

Тогда возможны два варианта: a2k+1≡1(mod p) или a2k+1≡—1(mod p).

В первом случае дальнейшие рассуждения проводим как в пункте а, и получаем x≡±ak+1(mod p).

Рассмотрим подробнее второй случай. Имеем:

a2k+1≡—1(mod p)

Для того, чтобы избавиться от знака (—) в правой части, домножим левую часть этого сравнения на 24k+2, а левую – на –1.

24k+2a2k+1≡1(mod p)

24k+2a2k+2a(mod p)

x≡±22k+1ak+1(mod p)

Таким образом, имеются два кандидата на решение:

x≡±ak+1(mod p).

x≡±22k+1ak+1(mod p)

Вычислив и подставив каждое из них в исходное сравнение, выберем ту пару, которая удовлетворяет исходному сравнению.
в) p≡9(mod 16), т.е. p=16k+9.

Найдем N – какой-нибудь квадратичный невычет по модулю p. Тогда по критерию Эйлера, .

С другой стороны, поскольку a – квадратичный вычет по модулю p, то по критерию Эйлера, .

Тогда возникают два случая: a4k+2≡1(mod p) или a4k+2≡-1(mod p).

Рассмотрим первый случай: a4k+2≡1(mod p). Поскольку показатель степени в левой части сравнения – четный, то вновь возникают два варианта: a2k+1≡1(mod p) или a2k+1≡—1(mod p), первый из которых приводит, как ранее, к кандидату в решение x≡±ak+1(mod p), а второй вариант, рассуждая как в пункте б, приведем к кандидату в решения x≡±N4k+2ak+1(mod p).

Рассмотрим второй случай: a4k+2≡-1(mod p). Для того, чтобы избавиться от знака (—) в правой части сравнения, домножим правую часть на N8k+4, а левую – на –1. Получим N8k+4a4k+2≡1(mod p). Поскольку показатели степеней в левой части получившегося сравнения четны, то отсюда возникают два варианта: N4k+2a2k+1≡1(mod p) или N4k+2a2k+1≡-1(mod p).

Рассмотрим первый из вариантов:

N4k+2a2k+1≡1(mod p)

N4k+2a2k+2a(mod p)

x≡±N2k+1ak+1(mod p).

Рассмотрим второй из вариантов:

N4k+2a2k+1≡-1(mod p)

N12k+6a2k+1≡1(mod p)

N12k+6a2k+2a(mod p)

x≡±N6k+3ak+1(mod p)

Итак, получили четыре пары – кандидата на решение:

x≡±ak+1(mod p)

x≡±N2k+1ak+1(mod p)

x≡±N4k+2ak+1(mod p)

x≡±N6k+3ak+1(mod p)

Вычислив и подставив в исходное сравнение, выберем ту пару, которая удовлетворяет исходному сравнению.
Рассмотренным способом можно построить решение для любого простого модуля p. Если p=2hk+2h1+1, то при решении сравнения возникнет 2h2 пар – кандидатов в решение, каждая из которых будет иметь вид x≡±Nz(2k+1)ak+1(mod p), где .

Главная проблема здесь – отыскание квадратичного невычета N, но поскольку, как было доказано ранее, квадратичных вычетов и невычетов по простому модулю – одинаковое количество, то невычет обязательно найдется.

Пример:

Решить сравнение x2≡8(mod 17).

17 – простое число. Выясним, имеет ли данное сравнение решение:

. Сравнение имеет 2 решения. Отыщем их.

17=2·8+1=4·4+1=8·2+1=16·1+1=32·0+17=25·0+17.

h=5, k=0. Имеется 23=8 пар-кандидатов в решения.

Найдем какой-нибудь невычет по модулю 17:

.

Итак, N=3 – кв. невычет по модулю 17.

Имеются следующие кандидаты в решения сравнения:

1) x≡±8(mod 17) 5) x≡±348(mod p)

2) x≡±3·8(mod 17) 6) x≡±358(mod p)

3) x≡±328(mod 17) 7) x≡±368(mod p)

4) x≡±338(mod 17) 8) x≡±378(mod p)

Будем проверять каждую пару решений, пока не найдем верное решение.

1) x≡±8(mod 17). Тогда x2≡64≡13(mod 17).

2) x≡±3·8≡±24≡±7(mod 17). Тогда x2≡49≡15(mod 17).

3) x≡±328≡±72≡±4(mod 17). Тогда x2≡16(mod 17).

4) x≡±338≡±216≡±12(mod 17). Тогда x2≡144≡8(mod 17).

Ответ: x≡±12(mod 17), или x≡±5(mod 17).

  1. 5.5. Квадратичные сравнения по составному модулю.



Рассмотрим сравнение вида x2a(mod pα), где p – простое нечетное число. Как было показано в п.4 §4, решение этого сравнения можно отыскать, решив сравнение x2a(mod p). Причем сравнение x2a(mod pα) будет иметь два решения, если a является квадратичным вычетом по модулю p.

Пример:

Решить квадратичное сравнение x2≡86(mod 125).

125 = 53, 5 – простое число. Проверим, является ли 86 квадратом по модулю 5.

. Исходное сравнение имеет 2 решения.

Найдем решение сравнения x2≡86(mod 5).

x2≡1(mod 5).

Это сравнение можно было бы решить способом, указанным в предыдущем пункте, но мы воспользуемся тем, что квадратный корень из 1 по любому модулю есть ±1, а сравнение имеет ровно два решения. Таким образом, решение сравнения по модулю 5 есть

x≡±1(mod 5) или, иначе, x=±(1+5t1).

Подставим получившееся решение в сравнение по модулю 52=25:

x2≡86(mod 25)

x2≡11(mod 25)

(1+5t1)2≡11(mod 25)

1+10 t1+25 t12≡11(mod 25)

10 t1≡10(mod 25)

2 t1≡2(mod 5)

t1≡1(mod 5), или, что то же самое, t1=1+5t2.

Тогда решение сравнения по модулю 25 есть x=±(1+5(1+5t2))=±(6+25t2). Подставим получившееся решение в сравнение по модулю 53=125:

x2≡86(mod 125)

(6+25t2)2≡86(mod 125)

36+12·25t2+625t22≡86(mod 125)

12·25t2≡50(mod 125)

12t2≡2(mod 5)

2t2≡2(mod 5)

t2≡1(mod 5), или t2=1+5t3.

Тогда решение сравнения по модулю 125 есть x=±(6+25(1+5t3))=±(31+125t3).

Ответ: x≡±31(mod 125).

Рассмотрим теперь сравнение вида x2a(mod 2α). Такое сравнение не всегда имеет два решения. Для такого модуля возможны случаи:

  1. α=1. Тогда сравнение имеет решение только тогда, когда a≡1(mod 2), и решением будет x≡1(mod 2) (одно решение).

  2. α=2. Сравнение имеет решения только тогда, когда a≡1(mod 4), и решением будет x≡±1(mod 4) (два решения).

  3. α≥3. Сравнение имеет решения только тогда, когда a≡1(mod 8), и таких решений будет четыре. Сравнение x2a(mod 2α) при α≥3 решается так же, как сравнения вида x2a(mod pα), только в качестве начального решения выступают решения по модулю 8: x≡±1(mod 8) и x≡±3(mod 8). Их следует подставить в сравнение по модулю 16, затем по модулю 32 и т. д. вплоть до модуля 2α.

Пример:

Решить сравнение x2≡33(mod 64)

64=26. Проверим, имеет ли исходное сравнение решения. 33≡1(mod 8), значит сравнение имеет 4 решения.

По модулю 8 эти решения будут: x≡±1(mod 8) и x≡±3(mod 8), что можно представить как x=±(1+4t1). Подставим это выражение в сравнение по модулю 16

x2≡33(mod 16)

(1+4t1)2≡1(mod 16)

1+8t1+16t12≡1(mod 16)

8t1≡0 (mod 16)

t1≡0 (mod 2)

Тогда решение примет вид x=±(1+4t1)=±(1+4(0+2t2))=±(1+8t2). Подставим получившееся решение в сравнение по модулю 32:

x2≡33(mod 32)

(1+8t2)2≡1(mod 32)

1+16t2+64t22≡1(mod 32)

16t2≡0 (mod 32)

t2≡0 (mod 2)

Тогда решение примет вид x=±(1+8t2) =±(1+8(0+2t3)) =±(1+16t3). Подставим получившееся решение в сравнение по модулю 64:

x2≡33(mod 64)

(1+16t3)2≡33(mod 64)

1+32t3+256t32≡33(mod 64)

32t3≡32 (mod 64)

t3≡1 (mod 2)

Тогда решение примет вид x=±(1+16t3) =±(1+16(1+2t4)) =±(17+32t4). Итак, по модулю 64 исходное сравнение имеет четыре решения: x≡±17(mod 64) и x≡±49(mod 64).
Теперь рассмотрим сравнение общего вида: x2a(mod m), (a,m)=1, - каноническое разложение модуля m. Согласно Теореме из п.4 §4, данному сравнению равносильна система



Если каждое сравнение этой системы разрешимо, то разрешима и вся система. Найдя решение каждого сравнения этой системы, мы получим систему сравнений первой степени, решив которую по китайской теореме об остатках, получим решение исходного сравнения. При этом количество различных решений исходного сравнения (если оно разрешимо) есть 2k, если α=1, 2k+1, если α=2, 2k+2, если α≥3.

Пример:

Решить сравнение x2≡4(mod 21).

21 – составное число. Факторизуем его: 21=3·7. Проверим разрешимость исходного сравнения:

, . Сравнение разрешимо и имеет 22=4 решения.

Составим систему: . Решим каждое из уравнений этой системы. Получим . Итак, имеем 4 системы:

1) 2) 3) 4)

Решая каждую из этих систем по китайской теореме об остатках, получим четыре решения: x≡±2(mod 21), x≡±5(mod 21).

  1. 5.6. Тест на простоту Миллера-Рабина.


Теперь, наконец, мы располагаем достаточной информацией для того, чтобы привести тест Миллера-Рабина. Этот тест, как и тесты Ферма и Соловея-Штрассена, строит вероятно простые числа, то есть число, опознанное этим тестом как простое, может с некоторой малой вероятностью оказаться составным, однако вероятность ошибки у теста Миллера-Рабина гораздо ниже, чем у первых двух тестов. Как правило, для опознания простого числа достаточно одной итерации теста, но все же рекомендуемое количество итераций – пять.

Тест Миллера-Рабина основан на двух важных фактах:

1) Согласно теореме Ферма, если n – простое число, то для любого a: 0<a<n выполняется an1≡1(mod n);

2) Если n – простое число, то сравнение x2≡1(mod n) имеет только тривиальные корни x≡±1(mod n), а если n – составное, то такое сравнение имеет несколько корней помимо тривиальных.

Тест Миллера-Рабина:

Вход: n=2sr+1 – нечетное число, проверяемое на простоту, s≥0, r – нечетное.

t - количество итераций, параметр надежности.

1. Повторить t раз следующие шаги:

1.1. Случайным образом выбрать a: 1<a<n—1.

1.2. Строим последовательность b0, b1,…,bs, где bj= mod n, j=0,1,…,s.

1.3. Если в построенной последовательности не встретилась «1», то идти на Выход с сообщением «n - составное число».

1.4. Если перед первой единицей в последовательности стоит не «-1», то идти на Выход с сообщением «n - составное число».

2. Идти на Выход с сообщением «n – простое число с вероятностью εt».

Выход.

Обратим внимание на то, что в последовательности b0, b1,…,bs каждый последующий член является квадратом предыдущего по модулю n, а последний член есть ни что иное как an1 mod n.

Вероятность ошибки ε ≤ φ(n)/4n, то есть верхняя граница ошибки на одной итерации для теста Миллера-Рабина в 2 раза меньше аналогичной для теста Соловея-Штрассена и в 4 раза – для теста Ферма.

Пример 1.

n=65=64+1=26+1. r=1, s=6.

t=5.

1. 1-я итерация:

1.1. a=8.

1.2. Составляем последовательность: 8, 64=—1, 1, 1, 1, 1.

1.3. В последовательности встретилась «1».

1.4. Перед первой единицей стоит —1.

1. 2-я итерация:

1.1. a=11.

1.2. Составляем последовательность: 11, 56, 16, 61, 16, 61.

1.3. В последовательности не встретилась «1».

Выход: « n - составное число».
В том случае, когда тест Миллера-Рабина определяет составность числа n на шаге 1.4, появляется возможность частично факторизовать n.

Действительно, пусть в последовательности b0, b1,…,bs, где bj= mod n, нашлось такое i, что bi≠±1, bi+1=1. Обозначим для краткости bi=b. Тогда bi+1=b2≡1(mod n). Тогда n\(b2—1) n\(b+1)(b—1). Но в силу того, что b ±1(mod n), n не делит (b+1), n не делит (b—1). Следовательно,

1<НОД(n, b—1)<n, 1<НОД(n, b+1)<n.

Значит, НОД(n,b—1) и НОД(n,b+1) являются нетривиальными делителями числа n.

Пример 2

n=161=160+1=25·5+1. r=5, s=5.

1. 1-я итерация:

1.1. a=22. a5 mod 161 = 225 mod 161=22.

1.2. Составляем последовательность: 22, 1, 1, 1, 1, 1.

1.3. В последовательности встретилась «1».

1.4. Перед первой единицей стоит 22.

Выход: « n - составное число».

Факторизуем 161: b=22. b+1=23, b—1=21.

Вычислим НОД(161, 23): 161=23·7+0.

НОД(161,21): 161=21·7+14

21=14·1+7

14=7·2+0.

Итак, нашли два нетривиальных делителя 161, и получили 161=23·7.

Надо заметить, что на самом деле случай, когда в тесте Миллера-Рабина возникает возможность факторизации, происходит весьма редко. Гораздо чаще сообщение о составности мы получаем на шаге 1.3.

  1. 5.7. Связь задач извлечения квадратных корней и факторизации по модулю RSA. Криптосистема Рабина.


Пусть дано сравнение x2a(mod pq), p, q – различные большие простые числа. Как следует из предыдущего пункта, решение данного сравнения можно найти, решив систему , при этом необходимым условием существования решения является . В том случае, если решения существуют, исходное сравнение имеет четыре различных решения: x≡±x1(mod pq), x≡±x2(mod pq)

Утверждение.

Для модуля RSA (n=pq, p, q – различные большие простые числа) задачи факторизации и извлечения квадратных корней вычислительно эквивалентны.

(Напомним, что две проблемы называются вычислительно эквивалентными, если за полиномиальное время по решению одной из них находится решение другой и наоборот.)

Доказательство:

1) Действительно, если умеем факторизовать модуль, то сможем извлечь квадратные корни по этому модулю (разложив исходное сравнение в систему и решив ее за полиномиальное время).

2) Если же разложения модуля RSA на простые сомножители неизвестно, но известны 4 различных решения сравнения x2a(mod n), и эти решения суть ±x(mod n), ±y(mod n). Выберем пару чисел x, y. Заметим, что x2y2(mod pq), x ±y(mod pq).

x2y2(mod pq) x2y2 =(x+y)(xy)≡0 (mod pq), причем x+y 0(mod pq),

xy 0(mod pq). То есть pq\(x+y)(xy), но pq не делит x+y, pq не делит xy. Пользуясь основным свойствам простых чисел а также в силу равноправия сомножителей p и q, заключаем, что p\(x+y), q\(xy), и тогда

p=НОД(x+y, n)

q=НОД(xy, n).

Вычисление наибольшего общего делителя осуществляется при помощи полиномиального алгоритма – алгоритма Евклида.

 

Доказуемо стойкая криптосистема Рабина.

Криптосистема Рабина является асимметричной системой. Ее параметрами являются n=pq, p, q – различные большие простые числа. В качестве открытого ключа (ключа шифрования) выступает k1=n, в качестве секретного ключа (ключа расшифрования) – k2=(p,q).

Открытый текст x≠0 возводится в квадрат по модулю n, и получается криптограмма y=x2 mod n. Для расшифрования последней требуется вычислить квадратный корень из y по модулю n. При решении сравнения yx2 (mod n) возникнет четыре различных корня. Для того чтобы получатель мог выбирать нужный корень, в открытый текст x до шифрования вносится избыточность – участок текста определенного вида.

Для дешифрования криптограммы, то есть для вычисления x по y в отсутствие закрытого ключа требуется извлечь квадратный корень по составному модулю, не зная его разложения на простые сомножители.

Криптосистема называется доказуемо стойкой, если для нее доказана невозможность дешифрования без решения вычислительно трудной задачи. В силу доказанной вычислительной эквивалентности задач факторизации и извлечения квадратных корней, задача извлечения квадратных корней так же сложна, как задача факторизации, а последняя считается вычислительно сложной задачей. Поэтому криптосистема Рабина – доказуемо стойкая.

  1. 5.8. Квадраты и псевдоквадраты.


Пусть n – модуль RSA, то есть n=pq, p, q – различные большие простые числа.

Возьмем произвольное число a: (a,n)=1. Возможны следующие случаи:

1) . Тогда число a является квадратичным вычетом, или квадратом, по модулю n.

2) , , или , . Тогда , и a не является квадратом по модулю n. То есть, не зная разложения модуля RSA на простые сомножители и получив отрицательное значение символа Якоби, можем с определенностью сказать, что a – не квадрат по модулю n.

3) , тогда a не является квадратом по модулю n, но символ Якоби, как и для квадрата по модулю n, равен единице: . То есть, не зная разложения модуля n на простые сомножители и получив положительное значение символа Якоби, не можем наверняка определить, является ли a квадратом по модулю n. Числа a: называются псевдоквадратами по модулю n=pq. Множество псевдоквадратов по модулю n обозначается .

Утверждение (о мощности множеств квадратов и псевдоквадратов по модулю RSA).

n=pq, p, q – различные простые числа |Q(n)|=| |=φ(n)/4.

Доказательство:

Согласно доказанной в п.1. теореме о числе кавдратичных вычетов, |Q(p)|=| |=(p—1)/2, |Q(q)|=| |=(q—1)/2. В силу взаимной простоты чисел p и q, среди чисел 0,1, 2, … , n—1 окажется ровно |Q(p)|·|Q(q)|=φ(n)/4 квадратов и | |·| |=φ(n)/4 псевдоквадратов.

 

Задача различения квадратов и псевдоквадратов не сложнее задачи факторизации, так как, зная разложение n на простые сомножители, сможем вычислить и с помощью полиномиального алгоритма.

На момент написания этого пособия не имелось никакой информации о том, проще ли задача различения квадратов и псевдоквадратов, чем задача факторизации.

  1. 5.9. Числа Блюма.


Числа вида n=pq, p, q – различные простые числа, причем p≡3(mod 4), q≡3(mod 4), называются числами Блюма.

Пусть n – число Блюма, и a Q(n). Тогда сравнение x2a(mod n) имеет четыре решения, которые можно представить в виде системы: . Заметим, что . Аналогично получим . То есть один корень из пары b,b является, а другой не является квадратом по модулю p, один корень из пары c, c является, а другой не является квадратом по модулю q.

Таким образом, если n – число Блюма, то один из четырех корней сравнения x2a(mod n) является квадратом и один – псевдоквадратом по модулю n. Корень, являющийся квадратом по модулю n, называется главным корнем.

Итак, мы только что показали важное свойство квадратичных сравнений по модулю чисел Блюма: извлекая квадратный корень по модулю Блюма, получаем 4 решения, из одного из которых в свою очередь можно извлечь квадратный корень, и т. д. На этом важном свойстве построено несколько криптосистем.

BBS-генератор (генератор Blum-Blum-Shub):

Параметры генератора: n=pq, p, q – различные простые числа, причем p≡3(mod 4), q≡3(mod 4) (то есть n – число Блюма).

Начальное состояние (ключ генератора): s0 Q(n)

Генерируемая последовательность: BBS(s0)=z1, z2, …, zm, где zi=si mod 2, i=1,2,…,m, si+1=si2 mod n, i ≥ 0.

Теорема (об условной стойкости BBS-генератора)

Если существует алгоритм, вычисляющий z0=s0 mod 2 по BBS(s0) за полиномиальное время с вероятностью не меньше Ѕ+ε, ε>0, то для любого δ, Ѕ<δ<1, существует вероятностный алгоритм, который различает квадраты и псевдоквадраты по модулю n за полиномиальное время с вероятностью не меньшей δ.



Другими словами, если проблема распознавания квадратов и псевдоквадратов по модулю Блюма не решается за полиномиальное время, то BBS-генератор криптографически стоек. Проблему различения квадратов и псевдоквадратов по модулю Блюма действительно считают вычислительно сложной, поскольку в настоящее время она не решается эффективно без факторизации модуля, что служит основанием для признания BBS-генератора стойким.
Криптосистема Блюма-Гольдвассер (Blum-Goldwasser).

Пусть x1, x2, … , xm – последовательность бит открытого текста. В качестве параметров криптосистемы выбираем n=pq – число Блюма, s0 – случайное число из Zn, взаимно простое с n.

В качестве открытого ключа для шифрования выступает n, в качестве секретного ключа для расшифрования – пара (p, q).

Для того, чтобы зашифровать открытый текст, обладатель открытого ключа выбирает s0. На основе BBS-генератора по ключу s0 получает последовательность квадратов s1, s2, … , sm, по которой получает последовательность младших бит z1, z2, …, zm. Путем гаммирования с этой последовательностью битов открытого текста получает шифрованный текст yi=xi zi, i=1,2,…,m. Шифрограмма, которая пересылается обладателю секретного ключа, есть (y1,y2,…,ym, sm+1). После формирования шифрограммы последовательность si, i=0,1,…,m уничтожается, и при следующем сеансе связи отправитель выбирает новое s0.

Получатель шифрограммы восстанавливает по sm+1 последовательность главных корней sm, … , s1 и последовательность их младших бит z1, z2, …, zm, а затем расшифровывает шифрограмму: xi=yi zi , i=1,2,…,m.
Криптосистема Гольдвассер-Микали.

Параметры системы: n=pq – число Блюма, z – случайное число из .

Открытый ключ для шифрования – пара (n,z), секретный ключ для расшифрования – пара (p,q).

Пусть x1, x2, … , xm – последовательность бит открытого текста. Бит шифрованного текста вычисляем по биту открытого текста как , где ai – случайное число из Zn.

В итоге шифрования получается последовательность не бит, а чисел, причем yi является псевдоквадратом по модулю n, если xi =1, и квадратом, если xi=0.

Адресату, обладающему секретным ключом, отправляется последовательность чисел шифртекста y1, y2, …, ym , после чего параметр z может быть уничтожен.

Адресат осуществляет расшифрование следующим образом:

, i=1,2,…,m.

Условная стойкость криптосистемы Гольдвассер-Микали основана на предположительной сложности алгоритма распознавания квадратов и псевдоквадратов по модулю Блюма без знания разложения модуля на простые сомножители.

Данная криптосистема имеет существенный недостаток – размер шифртекста значительно превышает размер открытого текста, ведь каждый бит последнего при шифровании преобразуется в число такой же размерности, как n.
1   2   3   4   5   6   7   8   9   ...   16

Похожие:

Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconПрограмма дисциплины «Численные методы» для специальности 090102. 65 «Компьютерная безопасность»
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 090102 «Компьютерная...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconРабочая программа для студентов очной формы обучения специальности...
Иванов Д. И. Алгебра. Учебно-методический комплекс. Рабочая программа для студентов очной формы обучения, специальности 090301. 65...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconУчебно-методический комплекс рабочая программа для студентов специальности...
Учебно-методический комплекс. Рабочая программа для студентов специальности 090102. 65 – «Компьютерная безопасность», очной формы...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconРабочая программа для студентов направления 090301. 65 Компьютерная...
Хохлов А. Г. Математический анализ. Учебно-методический комплекс. Рабочая программа для студентов направления 090301. 65 Компьютерная...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconПрограмма дисциплины Операционные системы для специальности 090102....
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности «090102 Компьютерная...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconРабочая программа для студентов направлений: 090301. 65 «Компьютерная безопасность»
...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconЗадания для самостоятельного выполнения
Для успешной подготовки к сдаче итогового теста попробуйте выполнить задания по основным темам курса
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним icon6454 Задания к контрольной работе по дисциплине
Задания к контрольной работе по дисциплине «Педагогические коммуникации» (гос 2000) и методические указания для их выполнения для...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconУчебно-методический комплекс содержит учебно-методический план, темы...
В. И. Гренц. Безопасность жизнедеятельности. Учебно-методический комплекс, рабочая учебная программа для студентов специальности...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconУчебно-методический комплекс содержит учебно-методический план, темы...
В. И. Гренц. Безопасность жизнедеятельности. Учебно-методический комплекс, рабочая учебная программа для студентов очного и заочного...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconМетодические указания для ее выполнения по дисциплине Конфликтология...
Задания к контрольной работе и методические указания для ее выполнения по дисциплине «Конфликтология в профессиональной деятельности»...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconРабочая программа составлена в соответствии с требованиями фгос впо...
Платонов М. Л. Дополнительные главы теории чисел. Учебно-методический комплекс. Рабочая программа для студентов специальности 090900....
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconИнформационное письмо Уважаемые коллеги! Приглашаем Вас принять участие...
Задания к контрольной работе и методические указания для ее выполнения по дисциплине «Конфликтология в профессиональной деятельности»...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconМетодические указания для выполнения самостоятельных работ По учебной дисциплине
Методические указания и задания для студентов по выполнению самостоятельных работ по дисциплине «Бурение нефтяных и газовых скважин»для...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним icon«Компьютерная графика»
Рабочая программа по дисциплине «Компьютерная графика» предназначена для реализации Государственного образовательного стандарта спо...
Рабочая программа по дисциплине «Теоретико-числовые методы в криптографии» для студентов специальности «Компьютерная безопасность» ТюмГУ, и задания для самостоятельного выполнения с ответами к ним iconРабочая программа По дисциплине: сд. 05 П ожарная техника для специальности...
Рабочая программа составлена на основании гос спо №13-3203Б от 08. 02. 2002г и учебного плана для очной формы обучения стф 13-3203Б...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск