24
Один из первых предложенных примеров таких функций основан на
степенной функции f(x)=x
m
(mod n), вычисление которой по известным n и m
производится достаточно эффективно. Преобразование, обратное к возведению
в степень x
m
(mod n) называется вычислением корня m-й степени по модулю n.
Например, 5
4
mod 21 = 16, поэтому 5 является корнем 4-й степени из 16 по мо-
дулю 21; 4
5
mod 25 = 24, 4 - есть корень 5-й степени из 24 по mod 25. В на-
стоящее время эффективный алгоритм этой операции известен, но требует зна-
ния специального разложения n по степеням простых чисел. Эта информация и
является секретным ключом. Определить такое разложение по значению n дос-
таточно сложно, но задав такое разложение мы однозначно определяем n.
Таким образом, криптосистема с
открытым ключом включает откры-
тый алгоритм E
k
шифрования и секретный алгоритм дешифрования D
k
, обрат-
ный к E
k
, но определение которого по E
k
вычислительно не осуществимо.
Иногда принято секретное преобразование D
k
называть секретным клю-
чем (private key), а открытое преобразование E
k
- открытым ключем (public key),
поэтому сами системы называют также двухключевыми
криптосистемами (two
key cryptosystem). Другое название таких криптосистем - асимметричные
крип-
тосистемы (asymmetric cryptosystem), в то время как обычные криптосистемы с
секретным ключом называются симметричными (symmetric criptosystem).
Так как в силу открытости любой злоумышленник имеет доступ к пре-
образованию зашифрования E
k
, то он может всегда выбрать любой открытый
текст и получить соответствующий ему шифртекст. Поэтому криптосистемы с
открытым ключом должны быть устойчивы к методам дешифрования по вы-
бранным открытому и шифрованному тексту.
Криптосистема RSA
Название криптосистемы образовано из первых букв фамилий предло-
живших ее авторов (Rivest R., Shamir A., Adleman L. A method for obtaining
digital signatures and pablic-key cryptosystems. Commun. ACM, v.21, N2, 1978).
Система относится к блочным экспоненциальным системам, так как
каждый блок М открытого текста рассматривается как целое число в интервале
(0,..., n-1) и преобразуется в блок С следующим открытым преобразованием
C = E (e,n) (M) = M
e
(mod n),
где E(e,n) - преобразование, а (e,n) - ключ зашифрования.
При расшифровании блок открытого текста М восстанавливается таким
же преобразованием, но с другим показателем степени.
M = D (d,n) (C) = C
d
(mod n),
где D(d,n) - преобразование, а (d,n) - ключ расшифрования.
В основе этого метода лежит довольно сложное теоретическое обосно-
вание. Числа e и d связаны с n определенной зависимостью и существуют реко-
мендации по выбору ключевых элементов на основе простых чисел. Если взять
два простых числа p и g, определить n = p х q, то можно определить пару чисел