Некоторые алгоритмы, используемые в Криптографии Содержание

Скачать презентацию Некоторые алгоритмы, используемые в Криптографии  Содержание Скачать презентацию Некоторые алгоритмы, используемые в Криптографии Содержание

Криптография.ppt

  • Количество слайдов: 27

>Некоторые алгоритмы, используемые в Криптографии Некоторые алгоритмы, используемые в Криптографии

>Содержание  Арифметика остатка  Группы и конечные поля  Основная техника (Алгоритм Евклида, Содержание Арифметика остатка Группы и конечные поля Основная техника (Алгоритм Евклида, китайская теорема об остатках и символ Лежандра) Парадокс дней рождения

>1. 1. Арифметика остатка     N >0 – модуль Если b-a 1. 1. Арифметика остатка N >0 – модуль Если b-a делится на N нацело то пишут a b (mod N), a и b сравнимы по модулю, тогда a и b имеют один и тот же остаток от деления на N. (mod N) - обозначение оператора модуля на множестве целых чисел, кот. вычисляет наим. нат. число сравнимое с данным по модулю N. Z/NZ={0, …, N -1} - остатки от деления чисел на N

>1. 1. Арифметика остатка Z/NZ- множество значений оператора модуля (mod N). На множестве Z/NZ 1. 1. Арифметика остатка Z/NZ- множество значений оператора модуля (mod N). На множестве Z/NZ есть две основные операции- сложение и умножение. Пример: (11+13)(mod 16)=24(mod 16) =(1*16+8)(mod 16)=8 (11*13)(mod 16)=143(mod 16)=(8*16+15)(mod 15)= 15

>1. 1. 2 Функция Эйлера    a  x=b (mod N), 1. 1. 2 Функция Эйлера a x=b (mod N), поиск x Z/NZ, удовлетворяющего этому равенству. Критерий: 1. НОД(a, N)=1 - одно решение. Находится c : a c=1(mod N), x= b c(mod N). 2. НОД(a, N) 1 и g= НОД(a, N) делит b, то уравнение имеет g решений. a x =b (mod N ) где a =a/g, b =b/g, N =N/g а x=x +i N , где i= 0, 1, … g -1. 3. В других случаях решений нет. Если НОД(a, N)=1, то числа a и N взаимно просты.

>1. 1. 2 Функция Эйлера Примеры:   7 x=3(mod 143)   Одно 1. 1. 2 Функция Эйлера Примеры: 7 x=3(mod 143) Одно решение 11 x=3(mod 143) Нет решений 11 x=22(mod 143) 11 решений

>1. 1. 2 Функция Эйлера    (Z/NZ )*={x  Z/NZ : НОД(x, 1. 1. 2 Функция Эйлера (Z/NZ )*={x Z/NZ : НОД(x, N)=1}. Def. Число элементов кольца (Z/NZ)*, значение функции Эйлера - (N). Если N= pi deg ei, где pi различные простые числа, то (N)= [(pi deg (ei-1)) (pi -1)]. По разложению числа N на простые можно найти значения (N). Два частных случая: 1. Если p простое то (p) =p-1 2. Если p и q простые числа и p q, то (p q)=(p-1)(q-1)

>1. 1. 2 Функция Эйлера Лемма.  = (N) дает эффективное разложение N на 1. 1. 2 Функция Эйлера Лемма. = (N) дает эффективное разложение N на множители. Д-во: = (p - 1)(q - 1) = N - (p +q)+1 S = N +1 - S=p+q f (X)=(X-p)(X-q)=X deg 2 – SX +N p = (S + S deg 2 – 4 N)/2 q = (S – S deg 2 – 4 N)/2

>1. 1. 3 Мультипликативные обратные по модулю N    a  x=b 1. 1. 3 Мультипликативные обратные по модулю N a x=b (mod N) ? c : ac ca 1(mod N). с a deg (-1). Обратный к а существует т. и т. т. , НОД (а, N ) =1. N=p , тогда a Z/NZ (a 0) x : a x=1(mod p). p простое число то ненулевой элемент в Z/p. Z обладает мультипликативным обратным. Кольца с такими свойствами называются полями. Def. Полем называется множество (F, , +) c двумя операциями, обладающими дополнительными свойствами: -(F, +)-абелева группа с единичным элементом 0 -(F{0}, )- абелева группа с единичным элементом 1 - (F, , +) удовлетворяет закону дистрибутивности

>1. 1. 3 Мультипликативные обратные по модулю N    (Z/NZ )*={x 1. 1. 3 Мультипликативные обратные по модулю N (Z/NZ )*={x Z/NZ : НОД(x, N)=1}. Def. Z/p. Z является конечным полем, которое называется полем вычетов по модулю p и обозначается Fp. Fp*= (Z/NZ )*={1, …p -1} Th Лагранжа. Если (G, )-группа порядка (с числом элементов) n=#G , то каждый ее элемент a G удовлетворяет соотношению a deg n =1. Таким образом, для x (Z/NZ )* выполнено соотношение x deg (N) = 1(mod N), поскольку # (Z/NZ )*= (N). Th. Малая теорема Ферма. Предположим, что число p простое и a F*p, тогда a deg p = 1(mod p).

>1. 2 Конечные поля   p простое число, множество многочленов от переменной x 1. 2 Конечные поля p простое число, множество многочленов от переменной x с коэффициентами из Fp. - Fp[x] (кольцо относительно сложения и умножения многочленов). p =2. Пример: в F 2[x] выполнено: (1+x+x(deg 2))+(x+x(deg 3)) = 1+ x(deg 2)+ x(deg 3) (1+x+x(deg 2))(x+x(deg 3)) = x+x(deg 2)+x(deg 4)+ x(deg 5) Зафиксируем многочлен f (x) и остальные элементы кольца Fp[x] по модулю f ( x). Возможные остатки будут образовывать кольца, они обозначаются Fp[x]/f (x) Fp[x] или Fp[x]/(f (x)) a, b и f многочлены из Fp[x] ? решение a = b (mod f ) относительно неизвестной . Def. Многочлен называется неприводимым если у него нет делителей отличных от него самого и констант.

>1. 2 Конечные поля      Пусть p = 2 1. 2 Конечные поля Пусть p = 2 неприводимые многочлена, f 1(x)=x deg 7+x+1 и f 2(x)= x deg 7+ x deg 3 +1 возникает два конечных поля, F 1 = F 2[x]/(f 1 (x)) и F 2 = F 2[x]/(f 2 (x)) умножение элементов в этих полях (x deg 3+1)(x deg 4+1)(mod f 1(x)) = x deg 4+ x deg 3+x (x deg 3+1)(x deg 4+1)(mod f 2(x)) = x deg 4 ? Различны ли эти поля. Def. Поля изоморфны если существует отображение : F 1 F 2 называемое изоморфизмом: (a+b)= (a)+ (b), (a b)= (a) (b). Изоморфизм существует между двумя конечными полями с одинаковым числом элементов. Th. Существует единственное(с точностью до изоморфизма) конечное поле с числом элементов, равным степени простого числа.

>1. 3 Основные алгоритмы  Алгоритм Евклида  Китайская теорема об остатках  Вычисление 1. 3 Основные алгоритмы Алгоритм Евклида Китайская теорема об остатках Вычисление символов Якоби и Лежандра.

> 1. 3. 1. 1 Алгоритм Евклида Разделить целое число a на число b 1. 3. 1. 1 Алгоритм Евклида Разделить целое число a на число b с остатком это значит найти такие числа q и r что бы было возможно разложение такого вида a =q b+r (0<= r <| b |). Для многочлена f с остатком g надо найти многочлены q и r , такие что 0<= deg r

>1. 3. 1. 2 Расширенный алгоритм Евклида С помощью алгоритма Евклида вычисляя НОД(a, N) 1. 3. 1. 2 Расширенный алгоритм Евклида С помощью алгоритма Евклида вычисляя НОД(a, N) можно выяснить обратимо ли число a по модулю N. ? Как найти обратный к a если он существует. Перепишем формулы из алгоритма Евклида по такому принципу: Т. к. r i – 2 = q i - 1 r i - 1+ ri i = 0, 1…m , можно переписать в виде r 2 = r 0 -q 1 r 1 = a - q 1 b, r 3 = r 1 -q 2 r 2 = b - q 2 (a- q 1 b)= - q 2 a+ b(1+ q 2 q 1 ), ………… r i – 2 = s i – 2 a +t i - 2 b r i – 1 = s i – 1 a +t i - 1 b ri = a (s i – 2 -q i - 1 s i – 1)+ b(t i - 2 -q i - 1 t i – 1) r m = НОД(a, b)=s m a +t m b

>1. 3. 1. 2 Расширенный алгоритм Евклида Сначала расширенный алгоритм Евклида применяется к числам 1. 3. 1. 2 Расширенный алгоритм Евклида Сначала расширенный алгоритм Евклида применяется к числам a и N и получаются такие числа d, s, t, что d = НОД(a, N) = sa+t. N. Значит, d = sa+t. N = sa (mod N). Уравнение ax = 1 (mod N) имеет решение тогда и только тогда когда d = 1. Решение имеет вид x = a deg (-1) = s

>1. 3. 2 Китайская теорема об остатках (КТО)     x = 1. 3. 2 Китайская теорема об остатках (КТО) x = a (mod N) x = b (mod M) Имеет единственное решение по модулю M N т. и т. к. M и N взаимно простые Общая формула решения: Определяется T = N deg (-1)(mod M). Затем вычисляется u = (b - a)T (mod M ) Решение по модулю M N задается формулой x = a+u. N. Сделаем проверку: x (mod N) = a+u. N (mod N) = a x (mod M) = a+u. N (mod M) = a+(b - a)T N (mod M) = a+(b - a)N deg(-1) N ( mod M) = b

>1. 3. 2 Китайская теорема об остатках (КТО) Общий случай - система из более 1. 3. 2 Китайская теорема об остатках (КТО) Общий случай - система из более чем двух уравнений. Пусть m 1, m 2 … mr и a 1, a 2 … ar - целые числа, все mi попарно простые. Нужно найти такой x по модулю M = m 1 m 2 …mr что x = ai (mod mi) для всех i по КТО существует единственное решение x = ai. Miyi ( mod M) где Mi=M/mi yi=Mi deg (-1) (mod mi)

>1. 3. 2 Китайская теорема об остатках (КТО)  Пример:   x =5 1. 3. 2 Китайская теорема об остатках (КТО) Пример: x =5 (mod 7) x =3 (mod 11) x =10(mod 13) M =7 11 13=1001 M 1 =143=1001/7 y 1 =143(deg-1)(mod 7)=5 M 2 =91=1001/11 y 2 =91(deg-1)(mod 11)=4 M 3 =77=1001/13 y 3 =77(deg-1)(mod 13)=12 x = (143 5 5+91 3 4+77 10 12)(mod 1001) = 894

>1. 3. 3 Символы Лежандра и Якоби    p простое число, p 1. 3. 3 Символы Лежандра и Якоби p простое число, p 2. F p, a a deg 2, сопоставляет каждому элементу поля его квадрат. Def. Полные квадраты в Fp называются квадратичными вычетами по модулю p Множество всех квадратичных вычетов по модулю p является подгруппой порядка (p-1)/2 в мультипликативной группе Fp . Def. Элементы группы Fp из которых нельзя извлечь квадратный корень, называются квадратичными невычетами. Для выявления полных квадратов по простому модулю p вводится символ Лежандра 0 если а делится на p a /p = +1 если а квадратный вычет по модулю p - 1 если а квадратный невычет

>1. 3. 3 Символы Лежандра и Якоби Формула для вычисления символа Лежандра:  1. 3. 3 Символы Лежандра и Якоби Формула для вычисления символа Лежандра: (a/p) = a deg((p -1)/2)(mod p). Закон квадратичной взаимности: (1) (q/p) = (p/q)[(-1)deg((p-1)(q-1)/2)], т. е. (q/p) = -(p/q), если p = q = 3(mod 4) (p/q) в других случаях. Дополнительные формулы: (2) (q /p)=([q (mod p)]/p); (3) (qr /p)=(q /p)(r /p); (4) (2/p)=(-1) deg ((pdeg 2 -1)/8) Пример: (15/17)=(3/17)(5/17)=(17/3)(17/5)=(2/3)(2/5)= = (-1)((-1) deg 3)=1

>1. 3. 3 Символы Лежандра и Якоби Алгоритм Шэнкса - метод извлечения квадратного корня 1. 3. 3 Символы Лежандра и Якоби Алгоритм Шэнкса - метод извлечения квадратного корня из квадратичного вычета a по модулю p Выбираем n : (n /p) =-1 Пусть e, q – целые числа с нечетным q, удовлетворяющие соотношению p – 1= (2 deg e)q Положим y = n degq (mod p), r = e, x = [a deg ((q -1)/2)](mod p) Положим b =[a (x deg 2)](mod p), x = ax (mod p) Пока b 1(mod p) делать: 1. найти наименьшее число m, такое что b (deg 2(deg m)) = 1(mod p) 2. положить t = [y (deg 2(deg(r – m - 1)))](mod p), y = t (deg 2)(mod p), r =m 3. положить x = xt (mod p), b = by (mod p) Вывести x

>1. 3. 3 Символы Лежандра и Якоби Если p = 3(mod 4), то для 1. 3. 3 Символы Лежандра и Якоби Если p = 3(mod 4), то для извлечен 6 ия корня из a x = [ a (deg [(p+1)/4])] (mod p). Проверка формулы: x deg 2 = a deg[(p+1)/2] = a a deg[(p - 1)/2] = (a/p) a = a Символ Лежандра определен только в случае простого знаменателя, если же знаменатель составной то вводится символ Якоби, обобщающий символ Лежандра. Пусть n 2 нечетное n = (p 1 deg e 1)(p 2 deg e 2)…(pk deg ek). Символ Якоби через символ Лежандра (a/n) =[ (a/p 1) deg e 1][(a/p 2) deg e 2]… [(a/pk) deg ek] так же символ Якоби выводится из тождества опирающегося на закон квадратичной взаимности (a/n) =[ (2/n) deg e][n (mod a 1)/a 1](-1)( deg (a 1 -1)(n-1)/4) где a = a 1 (2 deg e) и a 1 нечетные.

>1. 3. 3 Символы Лежандра и Якоби Формулы справедливые при нечетном n:  1. 3. 3 Символы Лежандра и Якоби Формулы справедливые при нечетном n: (1/n) = 1; (2/n) = (-1) deg ((n deg 2 - 1)/8); (-1/n) = (-1) deg ((n - 1)/2). Быстрый алгоритм вычисления символа Якоби. Пусть n 3 – нечетно. Qn подмножество полных квадратов в (Z/NZ )*: Qn = {x deg 2 (mod n)|x (Z/NZ )*}. Пусть Jn множество элементов в (Z/NZ )* чей символ Якоби равен 1 (). Jn = {x (Z/NZ )*| (a/n)=1}. Множество всех псевдо квадратов – т. е. квадратных невычетов чей символ Якоби равен 1 - Jn /Qn.

>1. 3. 3 Символы Лежандра и Якоби В криптографии интересен вопрос когда n простое 1. 3. 3 Символы Лежандра и Якоби В криптографии интересен вопрос когда n простое число или произведение простых чисел. Если n простое число, то a) Qn = J n b) #Qn = (n -1)/2 Если n = pq – произведение двух простых чисел, то a) Qn Jn b) #Qn = #(Jn - Qn ) = (p-1)(q-1)/4.

>1. 3. 3 Символы Лежандра и Якоби ? Как извлечь корень из числа по 1. 3. 3 Символы Лежандра и Якоби ? Как извлечь корень из числа по модулю составного n =pq. Надо найти квадратный корень из a по модулю n. Считаем разложение n на простые множители известно, a полный квадрат по модулю n т. е. (a/p) = (a/q) = 1. sp – корень из a по модулю p sq – корень из a по модулю q Применяем КТО к системе x = sp (mod p) x = sq (mod q)

>1. 4 Парадокс дней рождений В ящике находится m шариков разного цвета не глядя 1. 4 Парадокс дней рождений В ящике находится m шариков разного цвета не глядя достают один, записывают его цвет и кладут на место, тянут снова. Вероятность того, что после n вытаскиваний будет хотя бы два шарика одного цвета равна 1 – (m (n))/(m deg n ), где m (n) = m(m -1)(m -2)…(m –n +1) Если m достаточно большое, то ожидаемое число шариков до первого совпадения – m/2 Для проверки вероятности двух одинаковых дней рождений в группе из 23 человек - 1 - 365(23)/365 deg 23 =0, 507, Для группы из 30 человек – 0, 706 а для 100 – 0, 999 6