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