Битлента
Словарь терминов3 мин чтения·

Асимметричное шифрование: пара ключей и обмен

Асимметричное шифрование опирается на пару связанных ключей: открытый и закрытый. Как оно решает обмен ключами, подписи и где применяется.

Ключи, которые не совпадают

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

Роли ключей подробнее описаны на странице otkrytyy-i-zakrytyy-klyuch.

Две основные задачи

Первая задача: конфиденциальность. Сообщение шифруют открытым ключом получателя, и прочитать его сможет только владелец закрытого. Вторая: подлинность. Отправитель подписывает данные своим закрытым ключом, любой человек проверяет подпись его открытым и убеждается, что данные не менялись и подписаны владельцем ключа; читайте elektronnaya-podpis. Третья, связанная задача — договориться об общем секрете через открытый канал: этим занимаются алгоритмы обмена ключами, например diffie-hellman и его варианты на эллиптических кривых (ellipticheskaya-kriptografiya).

Не путайте асимметричное шифрование с односторонним хешированием: у пары ключей есть обратная операция, у хеша нет. И не считайте открытый ключ секретом: его как раз распространяют, а закрытая часть остаётся у владельца.

Известные алгоритмы

Алгоритм RSA основан на сложности разложения больших чисел на простые множители, подробнее на странице rsa-algoritm. Криптография на эллиптических кривых обеспечивает сопоставимую стойкость при более коротких ключах, поэтому широко применяется в современных протоколах и на мобильных устройствах. Для подписей используют и схемы вроде Ed25519. Ключи здесь значительно длиннее симметричных: для RSA сегодня обычно берут 2048 бит и более, для эллиптических кривых 256 бит, но сравнивать длины напрямую нельзя.

В будущем угрозой для этих алгоритмов могут стать квантовые компьютеры; над устойчивыми схемами работают, см. postkvantovaya-kriptografiya.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Почему её почти всегда комбинируют с симметричной

Асимметричные операции ощутимо медленнее и подходят для небольших объёмов. Поэтому на практике схема гибридная: асимметричный этап нужен для аутентификации сторон и выработки общего ключа, а сами данные шифруются быстрым симметричным алгоритмом. Именно так устроено установление защищённого соединения в TLS: сервер предъявляет сертификат, в котором заверен его открытый ключ, и стороны договариваются о сеансовом ключе; см. страницы tls и tsentr-sertifikatsii.

Аналогично работает почтовая защита PGP: сообщение шифруется случайным сеансовым ключом, а он, в свою очередь, шифруется открытым ключом адресата.

Слабые места и заблуждения

Асимметричные методы не отменяют проблему доверия: надо убедиться, что открытый ключ действительно принадлежит нужному человеку или серверу. Для этого существуют сертификаты и цепочки доверия. Другая ошибка — думать, что «асимметричное» значит «надёжнее»: при небрежном хранении закрытого ключа вся защита теряет смысл. Ещё одно заблуждение: будто шифрование закрытым ключом называется «шифрованием», хотя по существу это подпись. Защищайте закрытый ключ паролем, храните отдельно и делайте резервную копию в надёжном месте.

Пример: как браузер и сайт договариваются

Проследим упрощённо. Браузер подключается к сайту и получает сертификат с открытым ключом. Он проверяет цепочку подписей до доверенного корня и сверяет имя. Затем стороны выполняют обмен ключами: каждая создаёт временную пару, обменивается открытыми частями и вычисляет одинаковый общий секрет, который посторонний восстановить не может. Из этого секрета выводятся симметричные ключи сеанса, и дальше данные идут зашифрованными быстро.

Постоянный закрытый ключ сервера служит для подтверждения подлинности: он подписывает часть обмена, доказывая, что сервер владеет ключом из сертификата. Поскольку сеансовые ключи временные, компрометация постоянного ключа не раскрывает прошлые записанные сеансы. Это свойство разобрано на странице pfs-sovershennaya-pryamaya-sekretnost, а полная схема на странице tls-1-3.

Ещё один пример из практики: вход на сервер по ключу вместо пароля. Сервер хранит только открытый ключ и проверяет, что клиент владеет парным закрытым, не получая при этом никаких секретов, которые можно было бы перехватить.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
шифрованиеrsaключи

Часто задаваемые вопросы

Читайте также