3.7. Применение теоремы Эйлера в rsa:
Если известно разложение числа на простые сомножители a = p1p2… pn, то легко вычислить функцию Эйлера φ(a).
Отсюда вывод: сложность вычисления функции Эйлера не выше сложности задачи факторизации .
Покажем, что в случае n=pq (p,q – простые числа, pq) задачи нахождения функции Эйлера и факторизации эквивалентны. (то есть в случае, когда 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 может быть просто свободно от квадратов, то есть произведением произвольного количества различных простых чисел)
Доказательство:
Возможны два случая:
(a, n) = 1 по теореме Эйлера aφ(n) ≡ 1 (mod n)
akφ(n)+1 = 1k ∙a ≡ a (mod n).
(a, n) ≠ 1, n не делит a в силу основного свойства простых чисел, либо p\ a, либо q \ a.
Не нарушая общности, предположим, что 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\a a≡0(mod n) akφ(n)+1≡0≡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 экономия оказывается более существенной.
- Теоретико-числовые методы в криптографии
- Аннотация.
- Предисловие
- Введение
- Глава 1. Основы теории чисел. §1. Теория делимости.
- 1.1. Основные понятия и теоремы.
- 1.2. Наибольший общий делитель.
- 1.3 Нок (наименьшее общее кратное)
- 1.4. Простые числа
- Решето Эратосфена
- 1.5. Единственность разложения на простые сомножители.
- 1.6. Асимптотический закон распределения простых чисел.
- §2. Функция Эйлера.
- 2.1. Мультипликативные функции.
- 2.2. Функция Эйлера.
- §3. Теория сравнений
- 3.1. Свойства сравнений:
- 3.2. Полная система вычетов.
- 3.3. Приведенная система вычетов
- 3.4. Обратный элемент.
- 3.5. Алгебраические структуры на целых числах.
- 3.6. Теоремы Эйлера и Ферма. Тест Ферма на простоту.
- Тест Ферма на простоту
- 3.7. Применение теоремы Эйлера в rsa:
- §4. Сравнения с одним неизвестным
- 4.1. Сравнения первой степени.
- 4.2. Система сравнений первой степени. Китайская теорема об остатках.
- 4.3. Применения китайской теоремы об остатках.
- 4.4. Сравнения любой степени по простому модулю.
- 4.5. Сравнения любой степени по составному модулю.
- §5. Теория квадратичных вычетов
- 5.1. Квадратичные вычеты по простому модулю.
- 5.2. Символ Лежандра. Символ Якоби.
- Свойства символа Лежандра:
- Свойства символа Якоби:
- 5.3. Тест на простоту Соловея-Штрассена.
- Тест Соловея-Штрассена:
- 5.4. Решение квадратичных сравнений по простому модулю.
- 5.5. Квадратичные сравнения по составному модулю.
- 5.6. Тест на простоту Миллера-Рабина.
- 5.7. Связь задач извлечения квадратных корней и факторизации по модулю rsa. Криптосистема Рабина.
- 5.8. Квадраты и псевдоквадраты.
- 5.9. Числа Блюма.
- §6. Первообразные корни и индексы. Порождающий элемент и дискретный логарифм.
- 6.1. Основные понятия и теоремы.
- 6.2. Существование первообразных корней по модулю p.
- 6.3. Первообразные корни по модулям pα, 2pα.
- 6.4. Нахождение первообразных корней по простому модулю.
- 6.5. Существование и количество первообразных корней.
- 6.6. Дискретные логарифмы.
- 6.7. Проблема Диффи-Хеллмана.
- 6.8. Условная стойкость шифра Эль Гамаля.
- §7. Построение доказуемо простых чисел общего и специального вида.
- 7.1. Теорема Сэлфриджа и доказуемо простые числа общего вида на основании полного разложения (n—1).
- 7.2. Теорема Поклингтона и доказуемо простые числа общего вида на основании частичного разложения (n—1).
- 7.3. Числа Ферма. Теорема Пепина.
- 7.4. Числа Мерсенна.
- 7.5. Теорема Диемитко и процедура генерации простых чисел заданной длины гост р 34.10-94.
- Глава 2. Алгебраические основы теории чисел.
- §1. Основные понятия алгебры.
- 1.1. Начальные понятия.
- 1.2. Делимость в кольцах.
- 1.3. Деление с остатком.
- 1.4. Основная теорема арифметики.
- §2. Конечные поля и неприводимые многочлены.
- §3. Кольца многочленов.
- 3.1. Кольца многочленов.
- 3.2. Кольцо многочленов Zp[X].
- 3.3. Конечные поля многочленов.
- Глава 3. Алгоритмы в криптографии и криптоанализе. §1. Элементы теории сложности.
- §2. Алгоритмы факторизации.
- 2.1. Метод пробных делений.
- 2.2. Метод Ферма.
- 2.3. Метод квадратичного решета.
- 2.6. Методы случайных квадратов.
- §3. Алгоритмы дискретного логарифмирования.
- 3.1. Метод прямого поиска.
- 3.2. Шаг младенца – шаг великана.
- 3.4. Алгоритм Полига-Хеллмана.
- 3.5. Алгоритм исчисления порядка (index-calculus algorithm).
- Задачи и упражнения.
- Упражнения к Главе 2.
- Ответы к упражнениям.
- 1. Пояснительная записка
- 1.1. Цели и задачи дисциплины
- 1.2. Требования к уровню освоения содержания дисциплины
- 2. Объем дисциплины и виды учебной работы
- 3. Тематический план изучения дисциплины
- 4. Содержание разделов дисциплины
- 6. Вопросы к экзаменам
- 7.Литература основная:
- Дополнительная:
- Оглавление