В частности, если НОД (a
, b) = 1, это соотношение гарантирует существование целых чисел р и q, таких чтоpa
+ qb = 1.Работая по модулю n
, возьмем НОД (а, n) = 1, тогда обязательно существуют целые числа р и q, такие что pa + qn = 1. Так какЭлементы, имеющие обратный элемент по модулю n
, являются натуральными числами, которые меньше, чем n, и удовлетворяют условию НОД (а, n) = 1. Количество таких чисел называется функцией Эйлера и обозначается как ф(n).Если число
Например, если n
= 1600 = 26•52, тоБолее того, в случае, если n
— простое число, то для любого значения а выполняется НОД (а, n) = 1, и, следовательно, любое число а будет иметь обратное по модулю n, значит ф(n) = n — 1.Итак, подведем итог самым важным фактам.
1. ф(n)
называется функцией Эйлера и обозначает количество натуральных чисел, меньших n и взаимно простых с ним.2. Если n
= рq, где р и q простые числа, тоa(n)
= (p — 1)(q — 1).3. Из малой теоремы Ферма мы знаем, что если а
— целое число, большее нуля, и р — простое число, то а р4. Если НОД (а, n
) = 1, тогда имеем аф(n)Почему работает RSA-алгоритм?
Математические факты, изложенные выше, лежат в основе алгоритма шифрования RSA.
RSA-алгоритм зашифровывает численное представление m некоторого сообщения с помощью двух простых чисел р
и q. Возьмем n = pq. Обозначим за е любое значение, такое что НОД (е, ф(n)) = 1, и пусть d будет обратный элемент числа е по модулю ф(n). [Мы знаем, что он существует, так как НОД (е, ф(n)) = 1]. Тогда:d•е
= 1 по модулю ф(n).Зашифрованное послание М
шифруется следующим образом: М = mе (mod n).Алгоритм подразумевает, что исходное сообщение
Рассмотрим два случая.
1. Если (m
, n) = 1, то с функцией Эйлера имеем: mф(n) 1 (mod n).Начнем с того, что d
•е = 1 по модулю(me
)d = med = m kф(n)+1= m kф(n)•m = (m ф(n))k•mЭто и есть нужный нам результат.
2. Если НОД (m
,n)Пусть m
содержит только множитель р. Тогда, во-первых, m кратно р, то есть существует целое число r, такое, что m = rр. Поэтому mdemde
— m = Ар. (1)Во-вторых, мы имеем:
(me
)d = med = mk ф(n)+1 = m k ф(n)•m = (mф(n))k•m = (m(q-1))k(p-1)•m.Так как НОД (m
, n) = р, НОД (m, q) = 1, то по теореме Ферма m(q-1)Подставим это в предыдущее выражение.
(me
)d = med = mk ф(n)+1 = m k ф(n)•m = (mф(n))k•m = (m(q-1))k(p-1)•mОткуда мы заключаем, что существует значение В, такое что:
mde
— m = Вq. (2)Из (1) и (2) следует, что разность (mde
— m) делится на n = рq, поэтомуmde
— mАналогично это доказывается для случая, когда m
содержит только множитель q.В случае, когда m
кратно и р, и q одновременно, результат тривиален. Следовательно,(mе
)dТаким образом, мы продемонстрировали математическую основу алгоритма RSA.
Список литературы
Издание на русском языке:
Издание на русском языке:
Научно-популярное издание
Выходит в свет отдельными томами с 2014 года
Мир математики
Том 2
Жуан Гомес
Математики, шпионы и хакеры.
Кодирование и криптография.
РОССИЯ
Издатель, учредитель, редакция
: