Что такое шифрование с открытым ключом?

Криптография с открытым ключом (PKC), также известная как асимметричная криптография, представляет собой механизм, который использует как частный, так и открытый ключ, в отличие от единого ключа, используемого в симметричной криптографии. Использование пар ключей дает PKC уникальный набор характеристик и возможностей, которые можно использовать для решения проблем, присущих другим методам шифрования. Эта форма криптографии стала важным элементом современной компьютерной безопасности, а также жизненно важным компонентом для развития экосистемы криптовалюты.


Как работает шифрование с открытым ключом?

В схеме PKC открытый ключ используется отправителем для шифрования информации, а закрытый ключ используется получателем для ее расшифровки. Эти два ключа отличаются тем, что открытый ключ можно безопасно передавать, не влияя на безопасность закрытого ключа. Каждая пара асимметричных ключей уникальна, что гарантирует, что сообщение, зашифрованное открытым ключом, может быть прочитано только владельцем соответствующего закрытого ключа.

Поскольку алгоритмы асимметричного шифрования создают пары ключей, которые связаны математически, длина ключа намного больше, чем у пар ключей, созданных при симметричном шифровании. Такая большая длина — обычно от 1024 до 2048 бит — делает вычисление закрытого ключа из открытого ключа чрезвычайно трудным. Один из наиболее распространенных алгоритмов асимметричного шифрования, используемых сегодня, называется RSA. В схеме RSA ключи генерируются с использованием модуля, умножающего два числа (обычно два больших простых числа). Проще говоря, модуль генерирует два  ключа (открытый ключ, которым можно поделиться, и закрытый ключ, который необходимо хранить в секрете). Алгоритм RSA был впервые описан в 1977 году Ривестом, Шамиром и Адлеманом (RSA — это комбинация первых букв этих трех) и остается ключевым компонентом криптосистем с открытым ключом.


PKC — криптографический инструмент

Криптография с открытым ключом решает одну из давних проблем симметричных алгоритмов — проблему передачи ключа, используемого как для шифрования, так и для дешифрования. Отправка ключа через незащищенное соединение может привести к тому, что любые сообщения, зашифрованные с помощью общего ключа, будут раскрыты третьей стороне. Хотя существуют криптографические методы (например, протокол обмена ключами Диффи-Хеллмана-Меркла) для решения этой проблемы, риск атаки все еще возможен. Напротив, при криптографии с открытым ключом ключ, используемый для шифрования, может быть безопасно передан через любое соединение. В результате асимметричные алгоритмы обеспечивают более высокий уровень защиты, чем симметричные алгоритмы.


Приложение для создания цифровых подписей

Еще одним применением алгоритмов асимметричного шифрования является аутентификация данных с помощью цифровых подписей. По сути, цифровая подпись — это хэш, созданный с использованием данных в сообщении. Когда сообщение отправляется, получатель может проверить подпись, используя открытый ключ отправителя, чтобы подтвердить подлинность источника сообщения и убедиться, что сообщение не подделано. В некоторых случаях цифровые подписи и шифрование применяются в сочетании с шифрованием самого хеша как части сообщения. Однако следует отметить, что не все схемы цифровой подписи используют методы шифрования.


Ограничения

Хотя его можно использовать для повышения компьютерной безопасности и проверки целостности сообщений, PKC имеет некоторые ограничения. Из-за сложной математики, связанной с шифрованием и дешифрованием, асимметричные алгоритмы могут работать довольно медленно при обработке больших объемов данных. Этот тип криптографии также во многом зависит от предположения, что закрытый ключ будет храниться в секрете. Если закрытый ключ случайно будет передан или раскрыт, безопасность всех сообщений, зашифрованных с помощью соответствующего открытого ключа, будет поставлена ​​под угрозу. Пользователи также могут случайно потерять свои секретные ключи, и в этом случае они не смогут получить доступ к зашифрованным данным.


Приложения шифрования с открытым ключом

Этот тип криптографии используется многими современными компьютерными системами для обеспечения безопасности конфиденциальной информации. Например, электронная почта может быть зашифрована с использованием методов шифрования с открытым ключом, чтобы сохранить содержимое в секрете. Протокол Secure Sockets Layer (SSL) помогает защитить соединения с веб-сайтами, которые также могут использовать асимметричную криптографию. Системы PKC даже использовались как средство обеспечения безопасной среды электронного голосования, позволяющей избирателям участвовать в выборах со своих домашних компьютеров.

PKC также активно участвует в технологиях блокчейна и криптовалютах. При настройке нового криптовалютного кошелька генерируется пара ключей (открытый ключ и закрытый ключ). Публичный адрес создается с использованием открытого ключа и может быть безопасно передан другим. С другой стороны, закрытые ключи используются для создания цифровых подписей и проверки транзакций и, следовательно, должны храниться в секрете. После того как транзакция проверена путем подтверждения хэша, содержащегося в цифровой подписи, ее можно добавить в реестр блокчейна. Система проверки цифровой подписи гарантирует, что вывести средства сможет только тот человек, у которого есть закрытый ключ, привязанный к соответствующему криптовалютному кошельку. Следует отметить, что асимметричные шифры, используемые в приложениях криптовалют, отличаются от тех, которые используются в целях компьютерной безопасности. Например, Биткойн и Эфириум используют специализированную криптографию, называемую алгоритмом цифровой подписи эллиптической кривой (ECDSA), для проверки транзакций.

Криптография с открытым ключом играет жизненно важную роль в обеспечении безопасности современных цифровых систем — от компьютерной безопасности до проверки криптовалютных транзакций. Используя парный открытый и закрытый ключи, алгоритмы асимметричного шифрования решают основные проблемы безопасности, возникающие при симметричном шифровании. Хотя PKC используется уже много лет, для него регулярно разрабатываются новые применения и приложения, особенно в секторе блокчейнов и криптовалют.