Есть много разных частей криптографии. Однако, если вы хотите зашифровать некоторые данные, вы можете использовать два типа алгоритмов: алгоритмы симметричного шифрования и алгоритмы асимметричного шифрования. Концепция та же: они могут шифровать данные, но работают по другим принципам и имеют другие варианты использования.
Однако разница в названии описывает ключи шифрования. Алгоритм симметричного шифрования использует один общий ключ для шифрования и дешифрования данных. Алгоритм асимметричного шифрования использует два связанных ключа, один для расшифровки, другой для расшифровки.
Терминология
Алгоритмы асимметричного шифрования основаны на использовании двух разных ключей. Один ключ можно использовать для шифрования данных, а другой — для расшифровки. Два ключа шифрования — это не просто два старых значения. Они неразрывно связаны и должны генерироваться алгоритмом генерации ключей.
Альтернативное название асимметричного шифрования — шифрование с открытым ключом. Это связано с тем, что предполагается, что один из двух ключей является открытым. Традиционная концепция заключается в том, что ключ шифрования является общедоступным, а ключ дешифрования хранится строго в секрете. По этой причине ключ шифрования называется открытым ключом, а ключ дешифрования — закрытым ключом.
Эта конфигурация позволяет любому зашифровать сообщение, поэтому только владелец закрытого ключа может его расшифровать. Это полезно, потому что любой может безопасно общаться с предполагаемым получателем с помощью одного опубликованного ключа шифрования. Для безопасной обратной связи получатель должен будет использовать открытый ключ исходного отправителя.
Теоретически нет никаких причин, по которым вы не могли бы поменять местами ключи и поделиться ключом дешифрования, сохраняя при этом секретный ключ шифрования. Это может быть использовано для проверки подлинности источника, если не обеспечивает какой-либо значимой безопасности. Однако на практике этого не делается, поскольку существуют и другие механизмы для достижения того же результата.
Свойства алгоритмов симметричного шифрования
Алгоритмы асимметричного шифрования требуют использования гораздо больших ключей, чем алгоритмы симметричного шифрования, при обеспечении того же уровня безопасности. Как правило, симметричный алгоритм шифрования со 128-битным ключом шифрования считается безопасным, хотя предпочтительны 256-битные ключи. В алгоритме асимметричного шифрования 2048-битные ключи считаются безопасными.
Пример 2048-битного ключа относится к RSA, который долгое время был стандартом асимметричного шифрования. Криптография на эллиптических кривых, однако, является более новой концепцией, которая также является асимметричной, но использует значительно меньшие ключи. 2048-битный ключ RSA обеспечивает безопасность, эквивалентную 224-битному ключу эллиптической кривой.
Кончик: Приведенные выше значения считаются безопасными для коммерческого использования, но АНБ требует более надежных ключей для сверхсекретного шифрования. Необходимы ключи RSA длиной не менее 3072 бит, в то время как необходимы 384-битные ключи эллиптической кривой. Стоит отметить, что 3072-битный ключ RSA слабее, чем 384-битный ключ эллиптической кривой.
Алгоритмы асимметричного шифрования имеют тенденцию быть относительно медленными по сравнению с алгоритмами симметричного шифрования. Безопасная связь может осуществляться по незащищенному каналу, если обе стороны генерируют пару асимметричных ключей, а затем обмениваются открытыми ключами. Таким образом, обе стороны могут отправлять сообщения, которые может расшифровать только другая сторона.
На практике хотя бы одна из сторон должна проверить целостность своего открытого ключа. Это делается через PKI или инфраструктуру открытых ключей. Это принимает форму центров сертификации, которые подписывают ключи других, чтобы показать, что их личность была проверена. В этой системе всем центрам сертификации следует доверять; без этого система развалится.
Использование на практике
Алгоритмы асимметричного шифрования обычно не используются для массового шифрования, особенно когда важны время или производительность. Они могут использоваться для шифрования одноразовых сообщений, таких как содержимое электронной почты. Однако их способность защищать небезопасный канал делает их отличным выбором для протокола обмена ключами, который передает симметричные ключи, которые затем можно использовать для более эффективного массового шифрования.
Это вариант использования в TLS, который обеспечивает безопасность в HTTPS. Пользователь подключается к веб-серверу; затем они обмениваются открытыми ключами для шифрования небольших сообщений друг другу. Затем сервер генерирует симметричный ключ, шифрует его открытым ключом пользователя и отправляет ему. Пользователь расшифровывает ключ и затем может использовать симметричный ключ для эффективного шифрования будущих соединений с сервером.
Центр сертификации в описанном выше процессе проверяет открытый ключ сервера. Это позволяет пользователю быть уверенным, что он общается с тем, с кем пытается общаться. В большинстве случаев пользователь генерирует одноразовый ключ, так как серверу не нужно проверять, с каким пользователем он общается.
Заключение
Алгоритмы асимметричного шифрования используют два разных ключа. Один ключ используется для шифрования, а другой — для расшифровки. Ключи математически связаны и должны генерироваться алгоритмом генерации ключей; случайные значения не работают. Как правило, ключ шифрования является общедоступным, что позволяет любому зашифровать сообщение, предназначенное для владельца пары ключей.
Пока ключ дешифрования остается закрытым, только владелец ключа может расшифровывать сообщения, зашифрованные с помощью открытого ключа. Таким образом, асимметричное шифрование часто также называют криптографией с открытым ключом.