А.В. Рожков, О.В. Ниссенбаум - Теоретико-числовые методы в криптографии (1127102), страница 6
Текст из файла (страница 6)
Утверждение
<Zp,+(mod p), ∙ (mod p)> — поле, если p – простое число.
Доказательство:
Согласно утверждению 1, <Zp,+(mod p)> - абелева группа, причем в качестве нулевого элемента выступает 0 Zp. Поскольку Zp покрывает своими вычетами всё множество целых чисел, а операция умножения не выводит целые числа за пределы Z, то и операция умножения по модулю p не выводит за пределы Zp. То есть операция ∙ (mod p) задана на Zp.
Ассоциативность и коммутативность операции ∙ (mod p) следует из аналогичных свойств операции умножения, дистрибутивность умножения по модулю p относительно сложения по модулю p следует из дистрибутивности умножения относительно сложения.
В качестве единицы по операции ∙ (mod p) выступает 1 Zp.
Итак, <Zp,+(mod p), ∙ (mod p)> — коммутативное кольцо с единицей. А поскольку в силу простоты p все элементы, кроме нулевого, взаимно просты с модулем p, то, по теореме обратимости, обратим по операции ∙ (mod p).
Следовательно, по определению поля, <Zp,+(mod p),∙(mod p)> — поле.
□
Из курса алгебры мы знаем, что поле, содержащее конечное число элементов, называется конечным полем. Конечные поля называются полями Галуа по имени их первооткрывателя, Эвариста Галуа.
Число элементов в поле называется его мощностью. Все поля одинаковой мощности изоморфны друг другу. Таким образом, любое поле, мощность которого есть простое число, изоморфно <Zp,+(mod p),∙(mod p)> для подходящего p.
Поле <Zp,+(mod p),∙(mod p)> иначе обозначается GF(p), то есть поле Галуа мощности p.
Кроме полей GF(p) существуют поля составной мощности. Различают GF(2α), GF(pα) (где p – простое число, не равное 2 ). В настоящей главе мы будем рассматривать поля GF(p), получим для таких полей некоторые результаты, а затем, во второй главе, обобщим их и на другие конечные поля.
3.6. Теоремы Эйлера и Ферма. Тест Ферма на простоту.
В этом пункте будут доказаны важнейшие теоремы теории чисел и показаны их приложения к задачам криптографии.
Теорема Эйлера.
При m > 1, (a, m) = 1 aφ(m) ≡ 1 (mod m).
Доказательство:
Если x пробегает приведенную систему вычетов x = r1, r2,…,rc (c = φ(m)), составленную из наименьших неотрицательных вычетов, то в силу того, что (a,m)=1, наименьшие неотрицательные вычеты чисел ax = ρ1, ρ2,…, ρc будут пробегать ту же систему, но, возможно, в другом порядке (это следует из утверждения 2 пункт 3). Тогда, очевидно,
r1·…·rc = ρ1·… ·ρc *
Кроме того, справедливы сравнения
ar1 ≡ ρ1(mod m), ar2 ≡ ρ2(mod m), … , arc ≡ ρc(mod m).
Перемножая данные сравнения почленно, получим
ac ·r1 ·r2 ·…·rc ≡ ρ 1·…· ρ c(mod m)
Откуда в силу (*) получаем
ac ≡ 1 (mod m)
А поскольку количество чисел в приведенной системе вычетов по модулю m есть φ(m), то есть c = φ(m), то
aφ(m) ≡ 1 (mod m).
□
Теорема Ферма (малая)
р – простое, p не делит a ap–1 ≡ 1 (mod m)
Доказательство: по теореме Эйлера при m=p.
Важное следствие:
ap ≡ a (mod p) a, в том числе и для случая p\a.
Теорема Эйлера применяется для понижения степени в модулярных вычислениях.
Пример:
10100 mod 11 = 109∙11+1 = 109+1 mod 11 = (–1)10 mod 11 = 1.
Следствие:
Если a: 0 < a < p, для которого ap–1
1 (mod p)
p – составное.
Отсюда –
Тест Ферма на простоту
Вход: число n – для проверки на простоту, t – параметр надежности.
-
Повторяем t раз:
а) Случайно выбираем a [2, n-2]
б) Если an–1 1 (mod n)
«n – составное». Выход.
-
«n – простое с вероятностью 1– εt »
Этот тест может принять составное число за простое, но не наоборот.
Вероятность ошибки есть εt, где ε
В случае составного числа n, имеющего только большие делители, ε , то есть существуют числа, для которых вероятность ошибки при проверке их на простоту тестом Ферма близка к 1.
Для теста Ферма существуют так называемые числа Кармайкла – такие составные числа, что a: (a,n) = 1
an–1 ≡ 1(mod n). То есть числа Кармайкла – это такие составные числа, которые всегда принимаются тестом Ферма за простые, несмотря на то, как велико число t – параметр надежности теста.
Теорема Кармайкла
n – число Кармайкла 1) n свободно от квадратов (т.е. n = p1∙p2∙…∙pk);
2) (pi – 1)\(n – 1), i = 1,…,k ;
Наименьшее известное число Кармайкла n=561 = 3∙11·17
3.7. Применение теоремы Эйлера в RSA:
Если известно разложение числа на простые сомножители a = p1 p2
… pn
, то легко вычислить функцию Эйлера φ(a).
Отсюда вывод: сложность вычисления функции Эйлера не выше сложности задачи факторизации .
Покажем, что в случае n=pq (p,q – простые числа, p q) задачи нахождения функции Эйлера и факторизации эквивалентны. (то есть в случае, когда n – модуль RSA).
Учтем, что φ(n) = (p – 1)(q – 1). Тогда имеем систему
Зная n и φ(n), находим p и q из системы, приведенной выше, следующим образом:
Первое уравнение системы является квадратным уравнением относительно q,
q = , где Dq = [n– φ(n)+1]2 – 4n.
Подставляя полученное q во второе уравнение системы, находим p.
Видим, что при нахождении чисел p, q по известным n, φ(n) применяются только «дешевые» в смысле времени операции – сложение, деление на 2. Только при вычислении дискриминанта приходится применять возведение в степень, а при вычислении q – извлечение квадратного корня. Однако эти операции производятся однократно, поэтому временные затраты не столь существенны.
Итак, для модуля RSA задачи нахождения функции Эйлера и факторизации равносложны.
Формулировка теоремы Эйлера для RSA:
n = pq; p≠q; p, q – простые числа
a выполняется akφ(n)+1≡ a (mod n).
(на самом деле n может быть просто свободно от квадратов, то есть произведением произвольного количества различных простых чисел)
Доказательство:
Возможны два случая:
akφ(n)+1 = 1k ∙a ≡ a (mod n).
Не нарушая общности, предположим, что p\a, q не делит a.
Тогда по теореме Ферма, akφ(n)+1≡a(mod p),
qq–1≡1 (mod q) akφ(n)+1≡1k(p–1)·a ≡ a (mod q).
Итак, akφ(n)+1 ≡ a (mod p), akφ(n)+1≡ a (mod q). Отсюда по св-ву сравнений №12, akφ(n)+1≡ a(mod НОК(p,q)). В силу простоты p и q, НОК(p,q)=pq=n, значит
akφ(n)+1≡ a (mod n).
□
Примечание:
Если вместо φ(n) в теореме Эйлера для RSA взять НОК(p–1, q–1), теорема все равно будет верна.
Применение теоремы Эйлера в RSA:
Напомним, что криптосистема RSA является системой с открытым ключом. В качестве параметров системы выбираются различные большие простые числа p и q, вычисляется n=pq, φ(n)=(p–1)(q–1), выбирается число e: 2<e<n, (e, φ(n))=1 и вычисляется d=e-1(mod φ(n)). В качестве открытого ключа берется пара (n, e), в качестве закрытого, хранимого в секрете, четверка (p, q, φ(n), d).
Для того, чтобы зашифровать открытый текст x, абонент, пользуясь открытым ключом, вычисляет зашифрованный текст y по следующей формуле:
y = xe mod n.
Для того, чтобы осуществить расшифрование, владелец секретного ключа вычисляет
x = yd mod n.
В результате такого расшифрования действительно получится открытый текст, поскольку yd mod n=xed mod n=xed mod φ(n)mod n =x1 mod n=x.
Без знания простых сомножителей p и q сложно вычислить значение функции Эйлера φ(n), а значит, и степень d, в которую следует возводить зашифрованный текст, чтобы получить открытый.
Более того, знание простых сомножителей p и q может значительно облегчить процедуру возведения шифрованного текста y в степень d. Действительно, пользуясь теоремой Эйлера для RSA, можем понизить степень d. Разделим d на φ(n) с остатком:
d=kφ(n)+r
x=yd mod n= ykφ(n)+r mod n= yr mod n.
Еще более можно понизить степень, используя НОК(p–1,q–1)= вместо φ(n).
Пример:
n=19∙23=, φ(n)=18∙22=396, d=439.
НОК(18,22)=18∙22/2=198.
d mod φ(n)=43. d mod НОК(p–1,q–1)=43.
Число d=439 в двоичном представлении есть 110110111. Поэтому возведение в степень d c применением дихтономического алгоритма (см. гл.2) требует 8 возведений в квадрат и 6 умножений чисел.
Число 43 в двоичном представлении есть 101011. Возведение в степень 43 требует 5 возведений в квадрат и 3 умножения чисел. Кроме того, для вычисления φ(n) требуется 1 операция умножения.
Таким образом, для данного примера экономия времени составляет 2 сложные операции.
В случае больших простых делителей числа n экономия оказывается более существенной.
§4. Сравнения с одним неизвестным
Будем рассматривать сравнения вида a0xn + a1xn-1 + … + an≡ 0 (mod m) (*).
Если a0 не делится на m, то n называется степенью сравнения.
Решить сравнение – значит найти все x, ему удовлетворяющие. Два сравнения, которые удовлетворяют одни и те же значения x, называются равносильными.
Если сравнению (*) удовлетворяет какое-то x=x1, то ему же будут удовлетворять все числа, сравнимые с x1 по модулю m: x ≡ x1(mod m). Весь класс чисел, сравнимых с x1 по модулю m считается за одно решение. Таким образом, (*) будет иметь столько решений, сколько вычетов из полной системы ему удовлетворяет.
Пример:
x5+x+1=0 (mod 7) удовлетворяют x ≡ 2 (mod 7) и x ≡ 4 (mod 7) – 2 решения.
4.1. Сравнения первой степени.
Любое сравнение первой степени можно привести к виду ax ≡ b (mod m). Рассмотрим случай, когда (a, m)=1. Согласно утверждению 2 пункта 3 §3, когда x пробегает полную систему вычетов по модулю m, ax тоже пробегает полную систему вычетов по по модулю m. Следовательно, при одном и только одном значении x из полной системы вычетов, ax будет сравнимо с b, т.е. при (a, m)=1 сравнение имеет ровно 1 решение.