Что такое шифрование открытым ключом
Шифрование с открытым ключом: Наглядная иллюстрация
Просто и наглядно о сложном: Асимметричная криптография с открытым ключом.
Долгое время традиционная криптография использовала шифрование с тайным или симметричным ключом — один и тот же ключ использовался как для зашифровывания, так и для расшифровки (дешифрования) данных.
Наглядно это можно представить в виде замка, которым запирался сундук с тайным сообщением. Пара одинаковых ключей к этому замку была как у отправителя сообщения ( шифровальщика), так и у получателя ( дешифровальщика).
Разумеется, в действительности никто не отправлял сообщения в запертых сундуках. Тексты, которые надо было зашифровать, особым образом видоизменялись с использованием тайного ключа (шифра) — последовательности символов, которая смешиваясь с передаваемым сообщением особым образом (называемым алгоритмом шифрования), приводила к получению шифровки ( шифротекста) — сообщения, которое невозможно было прочитать, не зная алгоритма и шифра (ключа).
Но для наглядности процесса, мы представим, что наше сообщение помещалось в некий прочный сундук и закрывалось надежным навесным замком, одинаковые ключи от которого были у обеих сторон — отправителя и получателя.
Вот этот ключ, которым запиралось (зашифровывалось) и открывалось (дешифровывалось) сообщение, назывался шифром или тайным симметричным ключом.
Проблема была в том, что при смене ключа (шифра) в целях безопасности, его необходимо было доставить получателю, который зачастую находился далеко и на враждебной территории. Передавать шифр открытыми каналами связи было небезопасно.
Долгое время проблема безопасной передачи нового ключа (шифра) оставалась неразрешенной. Как правило, для этого использовали тайных курьеров, что не гарантировало на 100% того, что шифр (ключ) не попадет к нежелательным лицам, которые смогут им воспользоваться для дешифрования тайных сообщений.
Проблема с ключами была решена только в 1975 году, когда Уитфилд Диффи (Bailey Whitfield ‘Whit’ Diffie) и Мартин Хеллман (Martin E. Hellman) предложили концепцию шифрования с парой ключей: открытым (публичным — public key), который зашифровывает данные, и соответствующим ему закрытым (приватным — private key).
Эта асимметричная система шифрования получила название криптографии с открытым ключом.
Работает эта система так:
Следует отметить, что открытым (публичным) ключом можно только зашифровать сообщение, но расшифровать его уже этим ключом не получится. Для дешифрования нужен только закрытый (приватный) ключ из пары. Так работает алгоритм с асимметричным шифрованием.
Но, вернемся к нашему сундуку с сообщением. Как же теперь наглядно представить асимметричное шифрование? Как так можно — запирать одним ключом, а отпирать другим?
Представим себе навесной замок с двумя замочными скважинами и двумя ключами (см.рис. ниже) — левый ключ (1) через левую замочную скважину (1) может снимать фиксацию с левой половинки дуги замка, освобождая ее и открывая весь замок. Правый ключ (2) через правую замочную скважину (2) может фиксировать правую половинку дуги в замке, тем самым закрывая замок. Но, после закрытия, этот ключ (2) не может уже освободить от фиксации правую часть дуги и тем самым открыть замок.
Первоначально замок с зафиксированной левой половинкой дуги (1) и расфиксированной правой (2), а также с ключом 2 (открытым) доставляется лицу, которое должно отправить тайное послание.
Получив замок и открытый ключ (2), отправитель навешивает его на сундук с тайным посланием и запирает его полученным ключом 2. Теперь сундук закрыт и даже отправитель не может его открыть, поскольку его ключ (2) может только зафиксировать правую часть дуги в замке, но не может освободить от фиксации.
Запертый замком сундук с тайным посланием отправляется получателю, у которого есть ключ (1), снимающий фиксацию правой половинки дуги и тем самым отпирающий замок. Но, другие лица, даже если они будут иметь копию публичного ключа (2), открыть замок не смогут.
Получатель открывает замок ключом (1) и тайное послание прочитано!
Пользуясь терминологией асимметричной криптографии с открытым ключом, ключ 1 — это закрытый (приватный) ключ, а ключ 2 — это открытый (публичный) ключ.
В заключение отметим, что асимметричная криптография с открытым ключом получила широкое распространение, и не только в шифровании шпионских и дипломатических посланий. Асимметричную криптографию используют сайты с поддержкой протокола HTTPS, мессенджеры, wifi-роутеры, банковские системы и многое другое. На основе асимметричной криптографии базируется электронная подпись. Также на асимметричной криптографии построен алгоритм блокчейна, на котором, в свою очередь построены все криптовалюты, включая биткоин.
© Иллюстрации к тексту:
Криптография с открытым ключом
Основные требования к алгоритмам асимметричного шифрования
Создание алгоритмов асимметричного шифрования является величайшим и, возможно, единственным революционным достижением в истории криптографии.
Диффи и Хеллман достигли значительных результатов, предложив способ решения обеих задач, который радикально отличается от всех предыдущих подходов к шифрованию.
Будем предполагать, что все участники имеют доступ к открытым ключам друг друга, а закрытые ключи создаются локально каждым участником и, следовательно, распределяться не должны.
Можно добавить шестое требование, хотя оно не выполняется для всех алгоритмов с открытым ключом :
Криптоанализ алгоритмов с открытым ключом
Основные способы использования алгоритмов с открытым ключом
Шифрование с открытым ключом состоит из следующих шагов:
Создание и проверка подписи состоит из следующих шагов:
Важно подчеркнуть, что описанный процесс создания подписи не обеспечивает конфиденциальность. Это означает, что сообщение, посланное таким способом, невозможно изменить, но можно подсмотреть. Это очевидно в том случае, если подпись основана на аутентификаторе, так как само сообщение передается в явном виде. Но даже если осуществляется шифрование всего сообщения, конфиденциальность не обеспечивается, так как любой может расшифровать сообщение, используя открытый ключ отправителя.
Некоторые алгоритмы можно задействовать тремя способами, в то время как другие могут использоваться одним или двумя способами.
Перечислим наиболее популярные алгоритмы с открытым ключом и возможные способы их применения.
Асимметричное шифрование
Асимметричное шифрование — это метод шифрования данных, предполагающий использование двух ключей — открытого и закрытого. Открытый (публичный) ключ применяется для шифрования информации и может передаваться по незащищенным каналам. Закрытый (приватный) ключ применяется для расшифровки данных, зашифрованных открытым ключом. Открытый и закрытый ключи — это очень большие числа, связанные друг с другом определенной функцией, но так, что, зная одно, крайне сложно вычислить второе.
Асимметричное шифрование используется для защиты информации при ее передаче, также на его принципах построена работа электронных подписей.
Принцип действия асимметричного шифрования
Схема передачи данных между двумя субъектами (А и Б) с использованием открытого ключа выглядит следующим образом:
В такой схеме перехват любых данных, передаваемых по незащищенным каналам, не имеет смысла, поскольку восстановить исходную информацию возможно только при помощи закрытого ключа, известного лишь получателю и не требующего передачи.
Применение асимметричных алгоритмов
Асимметричное шифрование решает главную проблему симметричного метода, при котором для кодирования и восстановления данных используется один и тот же ключ. Если передавать этот ключ по незащищенным каналам, его могут перехватить и получить доступ к зашифрованным данным. С другой стороны, асимметричные алгоритмы гораздо медленнее симметричных, поэтому во многих криптосистемах применяются и те и другие.
Например, стандарты SSL и TLS используют асимметричный алгоритм на стадии установки соединения (рукопожатия): с его помощью кодируют и передают ключ от симметричного шифра, которым и пользуются в ходе дальнейшей передачи данных.
Также асимметричные алгоритмы применяются для создания электронных подписей для подтверждения авторства и (или) целостности данных. При этом подпись генерируется с помощью закрытого ключа, а проверяется с помощью открытого.
Асимметричные алгоритмы
Наиболее распространенные алгоритмы асимметричного шифрования:
Надежность асимметричного шифрования
Теоретически приватный ключ от асимметричного шифра можно вычислить, зная публичный ключ и механизм, лежащий в основе алгоритма шифрования (последнее — открытая информация). Надежными считаются шифры, для которых это нецелесообразно с практической точки зрения. Так, на взлом шифра, выполненного с помощью алгоритма RSA с ключом длиной 768 бит на компьютере с одноядерным процессором AMD Opteron с частотой 2,2 ГГц, бывшем в ходу в середине 2000-х, ушло бы 2000 лет.
При этом фактическая надежность шифрования зависит в основном от длины ключа и сложности решения задачи, лежащей в основе алгоритма шифрования, для существующих технологий. Поскольку производительность вычислительных машин постоянно растет, длину ключей необходимо время от времени увеличивать. Так, в 1977-м (год публикации алгоритма RSA) невозможной с практической точки зрения считалась расшифровка сообщения, закодированного с помощью ключа длиной 426 бит, а сейчас для шифрования этим методом используются ключи от 1024 до 4096 бит, причем первые уже переходят в категорию ненадежных.
Что касается эффективности поиска ключа, то она незначительно меняется с течением времени, но может скачкообразно увеличиться с появлением кардинально новых технологий (например, квантовых компьютеров). В этом случае может потребоваться поиск альтернативных подходов к шифрованию.
Публикации на схожие темы
Сквозное шифрование: что это и зачем оно нужно вам
Квантовые компьютеры и криптография для чайников
Квантовые компьютеры — для «чайников»
Эволюция шифровальщика JSWorm
Программы-вымогатели: пара хороших новостей
Дорога к «интернету вещей»: преимущества и риски смарт-езды
Ключевые понятия в шифровании
Иногда процесс шифрования является достаточно простым и автоматическим. Но иногда в нём случаются сбои. Чем больше вы знаете о шифровании, тем в большей безопасности вы будете при возникновении подобных ситуаций. Для начала, если вы этого ещё не сделали, рекомендуем ознакомиться с руководством «Что я должен знать о шифровании?»
В настоящем руководстве мы рассмотрим пять основных идей. Это важные понятия о процессе шифрования:
Шифр и ключ Anchor link
Вы наверняка сталкивались с чем-либо на первый взгляд непонятным. Это могло быть похоже на надпись на чужом языке или вовсе на какую-то бессмыслицу. Что-то препятствовало прочтению и пониманию. Но это вовсе не означает, что было использовано шифрование.
Каковы отличия чего-то зашифрованного от непонятного?
Шифрование — это математический процесс, используемый для превращения информации в нечитаемый (зашифрованный) вид. При этом восстановление первоначального вида информации (расшифровывание) возможно лишь с помощью специальных знаний. В процессе шифрования используются шифр и ключ.
Шифр — это набор правил (алгоритм), используемый при шифровании и расшифровывании. Это чётко определённые, выраженные в виде формулы правила, которым необходимо следовать.
Ключом является инструкция для шифра: как именно нужно шифровать и расшифровывать данные. Ключи являются одной из наиболее важных концепций в шифровании.
Один ключ или несколько? Anchor link
При использовании симметричного шифрования существует единственный ключ как для шифрования, так и расшифровывания данных.
Старые способы шифрования были симметричными. В «шифре Цезаря», использованном Юлием Цезарем, ключом для шифрования и для расшифровывания сообщений был сдвиг по алфавиту на три символа. Например, символ «A» будет изменён на «Г». Сообщение «ШИФРОВАНИЕ — ЭТО КРУТО» превратится с помощью этого ключа («три») в «ЫЛЧУСЕГРЛЗ АХС НУЦХС». Тот же самый ключ используется и для расшифровывания сообщения обратно в исходный вид. |
Симметричное шифрование все ещё применяется сегодня. Оно часто существует в форме «потоковых» и «блочных шифров», которые используют сложные математические процессы для усложнения взлома. В настоящее время процесс шифрования данных проходит в несколько этапов, максимально усложняя извлечение исходных данных при отсутствии подходящего ключа. Современные алгоритмы симметричного шифрования, такие как алгоритм Advanced Encryption Standard (AES), являются надёжными и быстрыми. Симметричное шифрование широко используется компьютерами для таких задач, как шифрование файлов, разделов жёстких дисков на компьютере, полного шифрования дисков и устройств, а также шифрования баз данных, например в менеджерах паролей. При расшифровывании информации, зашифрованной с помощью симметричного шифрования, у вас будут запрашивать пароль
. Именно поэтому мы рекомендуем использовать надёжные пароли и предоставляем пособие по созданию надёжных паролей для защиты зашифрованной информации.
Наличие лишь одного ключа может быть полезно, если вы единственный человек, нуждающийся в доступе к зашифрованной информации. Но обладание единственным ключом может стать проблемой при желании поделиться доступом к зашифрованной информации с другом, находящимся вдали от вас. Что, если вы не можете лично встретиться с ним для передачи ключа? И как поделиться ключом через небезопасное подключение к интернету?
Асимметричное шифрование, также называемое шифрованием с открытым ключом, решает эти проблемы. Асимметричное шифрование использует два ключа: закрытый ключ (для расшифровывания) и открытый ключ (для шифрования).
Симметричное шифрование
Асимметричное шифрование
Симметричное и асимметричное шифрование часто используются совместно для шифрования при передаче данных.
Асимметричное шифрование
: закрытые и открытые ключи Anchor link
Закрытый и открытый ключи создаются парами. Они математически связаны друг с другом. Вы можете представить их в виде камня, расколотого пополам. Если соединить обе половинки, то они идеально подойдут друг к другу, образуя единое целое. Ни одна часть никакого другого камня не подойдёт. Файлы открытого и закрытого ключей совпадают также. Они состоят из очень больших чисел, генерируемых компьютером.
Несмотря на своё название, открытый ключ не используется для открытия чего-либо (в отличии от реального ключа). Его предназначение заключается в другом. Более подробную информацию о работе открытых и закрытых ключей вы можете найти в нашем руководстве «Глубокое погружение в мир сквозного шифрования».