Асимметричное шифрование
medium

Асимметричное шифрование

Сложное, но очень полезное.

В отличие от симметричного шифрования, в котором всё шифруется и расшифровывается одним и тем же ключом, асимметричное устроено сложнее. В нём уже два ключа, и один из них можно показывать всем.

👉 Если совсем просто: в асимметричном шифровании данные шифруются одним ключом, а расшифровываются другим. Первый ключ можно держать у всех на виду, а вот второй нужно прятать. 

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

Теперь подробнее.

Принцип работы

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

Для расшифровки берут второе число — закрытый ключ. Он должен быть секретным. 

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

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

Пример: алгоритм RSA-2048

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

Разложение большого числа на множители, которое лежит в основе алгоритма RSA, — несложная задача, если таких множителей всего два. Например, если взять число 45, то оно легко раскладывается на множители так:

45 делится на 2? Нет.

45 делится на 3? Да, получается 15.

15 делится на 2? Нет.

15 делится на 3? Да, получается 5.

5 делится на 2, 3 или 4? Нет, остаётся только само число 5.

Получается 45 = 5 × 3 × 3.

 

Если мы возьмём число 474 689, то таких проверок и действий нам нужно будет выполнить ровно 479, потому что 474 689 = 479 × 991. Для человека это уже сложнее, но компьютер это сделает так же быстро, как и в случае с числом 45.

А вот для числа из 617 знаков — именно столько применяется в алгоритме RSA-2048  — потребуется сотни лет машинных вычислений, чтобы разложить его на два множителя.

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

Плюс таких алгоритмов в том, что для передачи зашифрованных сообщений можно использовать открытый канал связи. Даже если злоумышленник перехватит сообщение, он не сможет прочитать его без секретного ключа. Но чтобы всё было именно так, нужно, чтобы ключ был достаточно длинный — 1024 бит и выше.

Минус асимметричного шифрования очевиден — оно работает только в одну сторону. Чтобы такое общение было двусторонним, каждый должен предоставить другому свой открытый ключ.

Применение

Асимметричное шифрование применяют в двух случаях:

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

Что дальше

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

Текст

Михаил Полянин


Редактор

Максим Ильяхов


Художник

Даня Берковский


Корректор

Ирина Михеева


Вёрстка

Мария Дронова


Соцсети

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
medium