-
Понятие функции с секретом (функции с ловушкой).
Функцией с секретом называется функция f K : X Y, зависящая от параметра K и обладающая тремя свойствами:
-
существует полиномиальный алгоритм вычисления значения
f K (x) для любых K и x.
-
не существует полиномиального алгоритма инвертирования f K при неизвестном K.
-
существует полиномиальный алгоритм инвертирования f K при известном K.
Функции с ловушкой применяются в криптосистеме открытого шифрования RSA.
Криптосистема открытого шифрования RSA (R.L.Rivest, A. Shamir, L. Adleman, 1978)
Абоненты A и B независимо друг от друга выбирают два достаточно больших простых числа
p i и q i (i=A, B)
и вычисляют их произведения
N i = p i q i
и числа
F i = (p i – 1) (q i – 1).
Далее каждый из них выбирает по достаточно большому числу e i , взаимно простому с числом F i так, чтобы имело место равенство
e i d i = 1 (mod F i )
Итак, Абоненты A и B имеют свои наборы чисел
p i , q i , N i , F i , e i , d i (i= A, B)
и готовы к обмену конфиденциальной информацией.
Далее они помещают числа
N i , e i (i=A, B)
на открытом сервере, а числа
p i , q i , F i
обычно уничтожают, так как в дальнейшем они не понадобятся. Числа же
d i
каждый из них хранит у себя в качестве секретного ключа расшифрования.
В качестве односторонней функции с секретом в системе RSA используется функция:
e i
y= f(x)=x (mod N i)
Действие системы основано на равенстве, вытекающем из теоремы Эйлера и малой теоремы Ферма
d i
x = f -1 (y) = y (mod N i )
На доказательстве этой формулы не останавливаемся.
-
Пример на использование системы rsa
Для иллюстрации своего метода Ривест, Шамир и Адлеман записали английскую фразу:
The magic words are squeamish ossifrage.
Сначала они стандартным образом (a=01, b=02, …, z=26, пробел=00) записали её в виде целого числа
x= 2008050013010709030023151804190001180500191721051309190
800151919090618010705 (76 цифр),
а затем зашифровали при помощи отображения
e
y= f(x)=x (mod N )
при
e=9007
и
N=1438162575788886766932577997614661200218296721242362562561842935706935245733897830597123563958705058989075147599290026879543541 (127 цифр).
В результате получили зашифрованный текст:
f(x)=96869613754622061477140922254355882905759991124574319874695120930816298225145708356931476622883989628013391990551829945157815154 (128 цифр).
Текст f(x) и числа N, e были опубликованы, причём дополнительно сообщалось, что N=pq, где p и q – простые числа, записываемые соответственно 64 и 65 десятичными знаками. Тому, кто дешифрует сообщение F(x) была обещана награда в $100.
Эта история завершилась спустя 17 лет в 1994 г., когда D. Atkins, M. Graff, A.K. Lenstra и P.S. Leyand сообщили о дешифровании фразы f(x).
Числа p и q при этом оказались равными
p=3490529510847650949147849619903898133417764638493387843990820577 (64 цифры)
q=32769132993266709549961988190834461413177642967992942539798288533 (65 цифр)
В работе, возглавлявшейся четырьмя названными авторами проекта, после теоретической подготовки на заключительном этапе длительностью в 220 дней принимали участие около 600 человек и примерно 1600 компьютеров, объединённых сетью Internet. Премия в $100 была передана в Free Sofware Foundation.
