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

задняя часть алгоритм

Эта статья Источник: http://marklux.cn/blog/77

Автор: MarkLux, укажите источник для перепечатки

вводить

Технология асимметричного шифрования — это метод шифрования данных, который широко используется в современной интернет-индустрии.

Проблема с передачей конфиденциальной информации по сети заключается в том, что канал передачи открыт и прозрачен, в некотором смысле это похоже на использование открытки для передачи секрета.

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

Что такое секретный ключ?

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

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

Mark =每个字符向后移动3个距离=> Pdun

Это простой способ сделать шаг вперед, используяШифр ЦезаряДругими способами можно добиться дальнейшего шифрования.

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

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

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

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

Используйте смешанную краску

Теперь давайте представим сценарий:

В одной комнате находятся три человека A, B и C. A хочет передать личное сообщение (например, пароль своей банковской карты) B, а C является подслушивающим.

Без использования небольших заметок, личных сообщений и т. д., как A и B могут передавать сообщения, чтобы избежать прослушивания C?

Еще один момент, который следует отметить, это то, что A и B незнакомы, а это означает, что они не могут использовать пароли, такие как «Tianwang Gaidihu, демон реки Баота», для общения.

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

помещение

Теперь предположим, что А, В и С расположены в трех углах комнаты, и в каждом углу много-много разных цветов краски, и на каждый цвет приходится бесконечное количество краски.

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

Шаг 1: A и B выбирают свои собственные цвета

A и B выбирают цвет в своих соответствующих углах, мы называем это частным цветом A и B, что означает, что только A и B знают, какой это цвет, и никто другой не может.

Шаг 2: A и B выбирают соответствующие общедоступные цвета.

Теперь A и B должны выбрать цвет каждый.В отличие от предыдущего, на этот раз выбранный цвет является общедоступным, а это значит, что A и B должны поместить этот цвет в общую зону в центре комнаты: любой Любой может получить свой общедоступный цвет.

Шаг 3: A и B создают свои собственные смешанные цвета

Теперь A и B нужно выполнить некоторую «цветокоррекцию» в своих углах, что очень просто:

A смешивает свой собственный цвет со своим собственным общедоступным цветом, чтобы получить новый цвет, который мы называем «публично-частным смешанным цветом A».

Точно так же B смешивает свой собственный цвет с общедоступным цветом A, чтобы получить «публично-частный смешанный цвет B».

Обратите внимание, что их соответствующие смешанные цвета не совпадают.

Затем A и B выставят свои соответствующие смешанные цвета и разместят их в общей зоне в центре комнаты.

Шаг 4: A и B добавляют свои собственные цвета к смешанным цветам друг друга.

Теперь предположим, что A получает «смешанный общедоступный-частный цвет» B и перемещает его обратно в свой угол; аналогично, B также перемещает «общедоступно-частный цвет» A обратно в свой угол.

Итак, начинается волшебство, теперь A и B добавляют свои собственные цвета к смешанным цветам друг друга,В конце концов они получат тот же цвет, потому что они используютте же ингредиенты(общий цвет A + частный цвет A + частный цвет B), чтобы построить окончательный цвет.

Затем A и B нужно использовать только один и тот же цвет для шифрования/дешифрования передаваемой информации, и может быть реализована секретная передача сообщения (см. шифр сдвига).

Общий процесс может относиться к следующему рисунку:

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

Основы смешивания пигментов

Ключом к возможности использовать смешанные пигменты для достижения вышеуказанного волшебного эффекта является:

  • Смешение цветов — необратимый процесс.

    После создания «частно-общественного сочетания цветов» никто не может извлечь из него исходные два цвета.

  • Смешивание одних и тех же ингредиентов должно закончиться тем же результатом

    Хотя A и B не могут быть извлечены из «смешанного цвета» в исходный цвет, но пока они добавляют свои собственные собственные цвета, вы можете согласовать результаты смешивания цветов и, наконец, получить тот же цвет.

Алгоритм шифрования с открытым ключом в реальной сети

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

Прежде всего, нам нужен специальный метод числовых операций, который может выполнять необратимые операции, такие как смешивание пигментов, и в то же время может гарантировать, что одни и те же числа можно оперировать в разном порядке для получения одного и того же результата (то есть коммутативный закон доволен).

Теперь давайте представим метод расчета, который может удовлетворить вышеуказанным требованиям, который также является методом расчета, принятым в раннем алгоритме общего секретного ключа Диффи Хеллмана в сети:Модульная операция + операция возведения в степень

Модульная операция (mod)

Это не странные математические знания для людей, знакомых с помощью компьютерных знаний, мы принимаем модульA, то любое числоBправильноAРезультат модуляB / Aостаток.

по модулюA = 11Например:

13 mod 11 = 2
(3 + 6) mod 11 = 9
(2^4) mod 11 = 5 

С концепцией операции по модулю мы можем начать строить пригодный для использования алгоритм общего ключа.Следующее по-прежнему основано на сценарии трех человек A, B и C.

Шаг 1: A и B выбирают приватный номер

Для простоты чтения предположим, что и A, и B выбирают очень маленькое число: например, A выбирает 8, а B выбирает 9. Обратите внимание, что в практических приложениях это число намного больше.

Шаг 2: A и B выбирают два раскрытых номера

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

Предположим, что общедоступные числа A равны 11 (модуль) и 2 (основание).

Шаг 3: A и B создают свой собственный общедоступный номер (PPN)

Это важный шаг, мы собираемся объяснить эквивалент пигментасмешиваниеАрифметический процесс, результат, построенный этим процессом, будет необратим.

Теперь и A, и B будут использовать два общедоступных номера A и свой собственный частный номер, чтобы вычислить свой собственный общедоступный-частный номер, используя приведенную ниже формулу (назовем ееPPN):

PPN = 基数^私人数字 mod 模数

тогда:

A的PPN = 2^8 mod 11 = 3
B的PPN = 2^9 mod 11 = 6

Вы можете видеть, что процесс вычисления PPNнеобратимый, что в основном связано с операцией по модулю.

Шаг 4: A и B смешивают свои частные номера с PPN друг друга.

Метод расчета микширования аналогичен предыдущему, за исключением того, что публичная база заменяется PPN другой стороны:

A计算共享秘钥 = B的PPN^8 mod 11 = 6^8 mod 11 = 4
B计算共享秘钥 = A的PPN^9 mod 11 = 3^9 mod 11 = 4

Причина, по которой он может получить тот же результат, состоит в том, что власть действует в соответствии с законом обмена, т.е.:

(a^b)^c = (a^c)^b =  a^(bc)

Отлично, A и B успешно смешались и получили один и тот же общий секретный ключ! Теперь им нужно только использовать этот общий секретный ключ для цифрового шифрования/дешифрования, чтобы обеспечить частное общение.

И независимо от того, чей PPN получит перехватчик C, он не сможет получить окончательный общий секретный ключ, потому что он не может подмешать чужой закрытый ключ.

Мы можем обобщить описанный выше процесс в виде следующей диаграммы:

Истинный алгоритм Деффи-Хеллмана

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

Поэтому Деффи-Хеллман предъявляет следующие требования к общественным деятелям:

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

Для первообразных корней мы можем обратиться к числам, использованным выше.По модулю 11, 2 и 6 оба являются первообразными корнями, а 3 - нет:

Мощность 3 цикла по модулю 11 дает только3,9,5,4,1И не могу получить2,6,7,8,10.

Более

Шифрование с общим ключом, даАсимметричное шифрованиеТипичный пример использования , помимо алгоритма Деффи-Хеллмана, к этой же идее относится и знаменитый RSA.

Дополнительная информация об асимметричном шифровании будет обновлена ​​в следующих статьях.

Ссылка на эту статью:«Девять алгоритмов, изменивших будущее»Глава четвертая