Криптосистемы с открытым ключом (асимметричные).
Слабым местом криптографических систем, при их практической реализации, является проблема распределения ключей. Для того чтобы был возможен обмен конфиденциальной информацией между двумя субъектами информационной системы, ключ должен быть сгенерирован одним из них, а затем, в конфиденциальном порядке, передан другому. В общем случае для передачи ключа опять же требуется использование криптосистемы.
Для решения этой проблемы на основе результатов, полученных классической и современной математикой, были предложены системы с открытым ключом.
Суть их состоит в том, что каждым адресатом информационной системы генерируются два ключа, связанные между собой по определенному правилу. Один ключ объявляется открытым, а другой закрытым. Открытый ключ публикуется и доступен любому, кто желает послать сообщение адресату. Секретный ключ сохраняется в тайне.
Исходный текст шифруется открытым ключом и передается адресату. Зашифрованный текст не может быть расшифрован тем же открытым ключом. Дешифрование сообщение возможно только с использованием закрытого ключа, который известен только адресату рис. 6.4.
Асимметричные криптографические системы используют так называемые необратимые или односторонние функции, которые обладают следующим свойством: при заданном значении x относительно просто вычислить значение f(x), однако если y=f(x), то нет простого пути для вычисления значения x.
Алгоритмы шифрования с открытым ключом получили широкое распространение в современных информационных системах.
Алгоритмы криптосистем с открытым ключом можно использовать как:
· самостоятельные средства защиты передаваемых и хранимых данных.
· средства для распределения ключей.
· средства аутентификации пользователей.
Рис. 6.4. Криптосистема с открытым ключом.
Алгоритмы криптосистем с открытым ключом более трудоемки, чем традиционные криптосистемы, поэтому использование их в качестве самостоятельных средств защиты нерационально. Поэтому на практике рационально с помощью криптосистем с открытым ключом распределять ключи, объем которых как информации незначителен. А потом с помощью обычных алгоритмов осуществлять обмен большими информационными потоками.
Несмотря на довольно большое число различных криптосистем с открытым ключом, наиболее популярна – криптосистема RSA, разработанная в 1977 году и получившая название в честь ее создателей: Ривеста, Шамира и Эйдельмана.
Ривест, Шамир и Эйдельман воспользовались тем фактом, что нахождение больших простых чисел в вычислительном отношении осуществляется легко, но разложение на множители произведения двух таких чисел практически невыполнимо. Доказано (теорема Рабина), что раскрытие шифра RSA эквивалентно такому разложению. Поэтому для любой длины ключа можно дать нижнюю оценку числа операций для раскрытия шифра, а с учетом производительности современных компьютеров оценить и необходимое на это время.
Пусть n=p q, где p и q – различные простые числа, а e и d удовлетворяют уравнению
e d(mod (p-1) (q-1))=1
Если p и q – достаточно большие простые числа, то разложение ппрактически не осуществимо. Это и заложено в основу системы шифрования RSA.
{е,п}– образует открытый ключ, а {d,п}– закрытый (или наоборот).
Открытый ключ публикуется и доступен каждому, кто желает послать владельцу ключа сообщение, которое зашифровывается указанным алгоритмом. После шифрования, сообщение невозможно раскрыть с помощью открытого ключа. Владелец же закрытого ключа без труда может расшифровать принятое сообщение.
Шифрование осуществляется по формуле: Sшифр=Se mod N.
Дешифрование осуществляется по формуле: S = Sdшифр mod N.
Где S – исходный текст, Sшифр – преобразованный текст, при этом S < N.