Шифрование с открытым ключом
Шифрование с открытым ключом
Криптография —
это наука о защите данных. Алгоритмы криптографии с помощью математических методов комбинируют входной открытый текст и ключ шифрования, в результате чего получаются зашифрованные данные. Применение криптографии обеспечивает надежную передачу данных и предотвращение их получения несанкционированной стороной. Применяя хороший алгоритм шифрования, можно сделать практически невозможным, с точки зрения необходимых вычислительных и временных ресурсов, взлом защиты и получения открытого текста подбором ключа. Для быстрого выполнения подобного преобразования необходим
расшифровывающий ключ.
В традиционном
шифровании с секретным ключом
(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".
Ниже кратко рассмотрены основные области применения шифрования с открытым ключом.