Асимметричное (несимметричное) шифрование и дешифрование
Асимметричное (несимметричное) шифрование - это шифрование с открытым ключом. Информация шифруется с помощью открытого ключа, а расшифровывается с использованием секретного ключа.
В несимметричных алгоритмах шифрования ключи зашифровывания и расшифровывания всегда разные (хотя и связанные между собой). Ключ зашифровывания является несекретным (открытым), ключ расшифровывания — секретным.
Примеры симметричного шифрования: RSA (базовый алгоритм шифрования, предложен Р. Ривестом, Э. Шамиром и Л. Адлманом), Эль-Гамаля (алгоритм использует простое число р, образующую группы g и экспоненту y = gx(modр)), Месси-Омуры (алгоритм использует простое число р, такое что р - 1 имеет большой простой делитель в качестве открытого ключа, секретный ключ определяется в процессе диалога между приемником и источником), DSS (алгоритм генерации цифровых подписей), Diffie-Hellman (алгоритм генерации открытого ключа, позволяющий передавать его по открытым линиям по частям).
Недостаток асимметричного шифрования — низкое быстродействие алгоритмов (из-за длины ключа и сложности преобразований); достоинство - применение асимметричных алгоритмов для решения задачи проверки подлинности сообщений, целостности, аутентификации (электронная цифровая подпись), скорость работы, а также секретный ключ известен только получателю информации и первоначальный обмен не требует передачи секретного ключа.
Привлекательность методов шифрования с использованием открытых ключей заключается в отсутствии необходимости рассылки секретных ключей. Распространение систем с открытыми ключами сдерживается отсутствием доказательств невозможности получения секретных ключей, кроме как путем их полного перебора.