Криптография —
это
наука о защите данных. Алгоритмы криптографии с помощью математических методов
комбинируют входной открытый текст и ключ шифрования, в результате чего получаются
зашифрованные данные. Применение криптографии обеспечивает надежную передачу
данных и предотвращение их получения несанкционированной стороной. Применяя
хороший алгоритм шифрования, можно сделать практически невозможным, с точки
зрения необходимых вычислительных и временных ресурсов, взлом защиты и получения
открытого текста подбором ключа. Для быстрого выполнения подобного преобразования
необходим
расшифровывающий ключ.
В традиционном
шифровании
с секретным ключом
(secret key) (симметричное шифрование) зашифровывающий
и расшифровывающий ключи, совпадают. Стороны, обменивающиеся зашифрованными
данными, должны знать общий секретный ключ. Процесс обмена информацией о секретном
ключе представляет собой брешь в безопасности вычислительной системы.
Фундаментальное отличие
шифрования с открытым ключом
(асимметричное шифрование) заключается в
том, что зашифровывающий и расшифровывающий ключи не совпадают. Шифрование информации
является односторонним процессом: открытые данные шифруются с помощью зашифровывающего
ключа, однако с помощью того же ключа нельзя осуществить обратное преобразование
и получить открытые данные. Для этого необходим расшифровывающий ключ, который
связан
с зашифровывающим ключом, но
не совпадает
с ним. Подобная
технология шифрования предполагает, что каждый пользователь имеет в своем распоряжении
пару ключей —
открытый ключ
(public key) и
личный
или
закрытый
ключ
(private key). Свободно распространяя открытый ключ, вы даете возможность
другим пользователям посылать вам зашифрованные данные, которые могут быть расшифрованы
с помощью известного только вам личного ключа. Аналогично, с помощью личного
ключа вы можете преобразовать данные так, чтобы другая сторона убедилась в том,
что информация пришла именно от вас. Эта возможность применяется при работе
с
цифровыми
или
электронными подписями.
Шифрование с открытым
ключом имеет все возможности шифрования с закрытым ключом, но может проходить
медленнее из-за необходимости генерировать два ключа. Однако этот метод безопаснее.
Появление пары "личный ключ/открытый
ключ" привело к возникновению нескольких новых технологий, наиболее важными
из которых являются цифровые подписи, распределенная аутентификация, соглашение
о секретном ключе, достигаемое с применением открытого ключа, и шифрование больших
объемов данных без предварительного соглашения о секретном ключе. Существует
несколько хорошо известных алгоритмов шифрования с открытым ключом. Некоторые
из них, например
RSA
(Rivest-Shamir-Adelman) и
шифрование с помощью
эллиптической кривой
(Elliptic Curve Criptography, ECC), являются алгоритмами
общего употребления в том смысле, что они поддерживают все упомянутые выше операции.
Другие алгоритмы поддерживают только некоторые операции. К ним относятся: алгоритм
цифровой подписи
(Digital Signature Algorithm, DSA), используемый только
для работы с цифровыми подписями, и алгоритм
DiJfie-Hetlman
(D-H), применяемый
только для соглашений о секретных ключах. Алгоритмы шифрования, используемые
безопасностью IP (IP Security), подробнее описаны в данной главе в разделе
"Безопасность
IP".
Ниже кратко
рассмотрены основные области применения шифрования с открытым ключом.