Если р - простое число, то
xp -1 = 1 (mod p) (1)
для любого х, простого относительно p,
и
xp = х (mod p) (2)
для любого х.
Определение. Функцией Эйлера φ(n) называется число положительных целых, меньших n и простых относительно n.
n | |||||||||||
φ (n) |
Теорема 2. Если n = pq, (p и q - отличные друг от друга простые числа), то
φ(n)=(p -1)(q -1).
Теорема 3. Если n = pq, (p и q - отличные друг от друга простые числа), то для любого x имеет место равенство:
x(p-1)(q-1) mod n = 1.
Следствие. Если n = pq, (p и q - отличные друг от друга простые числа) и е простое относительно j(n), то отображение
Еe,n: x ® x e (mod n)
является взаимно однозначным на Z n.
Очевиден и тот факт, что если е - простое относительно j(n), то существует целое d, такое, что
ed = 1 (mod j(n)) (3)
На этих математических фактах и основан популярный алгоритм RSA.
Пусть n = pq, где p и q - различные простые числа. Если e и d удовлетворяют уравнению (3), то отображения Еe,n и Еd,n являются инверсиями на Zn. Как Еe,n, так и Еd,n легко рассчитываются, когда известны e, d, p, q. Если известны e и n, но p и q неизвестны, то Еe,n представляет собой одностороннюю функцию; нахождение Еd,n по заданному n равносильно разложению n. Если p и q - достаточно большие простые, то разложение n практически не осуществимо. Это и заложено в основу системы шифрования RSA.
|
|
Для расшифровки RSA-сообщений воспользуемся этой формулой. Возведем обе ее части в степень (-y):
x(-y)(p-1)(q-1) mod n = 1(-y) = 1.
Теперь умножим обе ее части на x:
x(-y)(p-1)(q-1)+1 mod n = 1 * x = x.
Вспомним, как мы создавали открытый и закрытый ключи. Мы подбирали с помощью алгоритма Евклида e такое, что
e · d + (p-1)(q-1) · y = 1,
то есть
e · d = (-y)(p-1)(q-1) + 1.
А следовательно в последнем выражении предыдущего абзаца мы можем заменить показатель степени на число (e·d). Получаем
xe*d mod n = x.
То есть для того чтобы прочесть сообщение ci = mie mod n достаточно возвести его в степень d по модулю n:
cid mod n = mie*d mod n = mi.
После шифрования, сообщение невозможно раскрыть с помощью открытого ключа. Даже если злоумышленник знает числа e и n, то по ci прочесть исходные сообщения mi он не может никак, кроме как полным перебором mi и возведением его в степень e или отысканием d путем разложения n на множители. Владелец же закрытого ключа без труда может расшифровать принятое сообщение.