Введение
Прежде чем разобраться в принципе шифрования, давайте взглянем на такую историю.
Xiaohong и Xiaoming - это пара. Однажды Xiaohong отправил текстовое сообщение в Сяоминг и сказал: «Уважаемый, у меня нет денег на моей банковской карте. Пожалуйста, передайте мне 10 000 юаней». Любой, кто был обманут, знает, что это может Будь то вор украл сумочку Сяохонга и отправил текстовое сообщение с его мобильного телефона. Тем не менее, мы Сяоминг выучили принцип шифрования, поэтому он ответил: «Вы можете просто взять мою банковскую карту и проверить его. Пароль плюс дата нашей первой даты 663156.« Очевидно, только Xiaoming и Xiaohong знали, что их первый Дата было 663156. Когда следующая дата, предполагая, что это 1 апреля 2008 года, то Xiaohong может получить пароль банковской карты в соответствии с расчетом 663156-200841 = 462315, а затем она может потратить.
В этом суть шифрования: добавление информации к ключу для получения зашифрованной информации. Только тот, кто знает ключ, может его расшифровать.
2. Что такое секретный ключ
Поскольку для шифрования требуется ключ, что это за ключ?
Ключ представляет собой строку паролей, используемых для шифрования.Ключ используется для шифрования, передачи и достижения получателя и слушателя.Поскольку получатель также имеет ключ, получатель может расшифровать его в соответствии с ключом. Тем самым предотвращая утечку коммуникационной информации.
3. Что такое симметричное шифрование
История, рассказанная в предисловии, представляет собой симметричное шифрование: и Сяо Мин, и Сяохун знают дату своего первого свидания. Поэтому традиционное симметричное шифрование требует, чтобы обе стороны использовали один и тот же ключ для шифрования и дешифрования. Поэтому асимметричное шифрование также называют шифрованием с одним ключом.
Преимущество симметричного шифрования заключается в том, что скорость шифрования и дешифрования высокая, но безопасность низкая: после утечки ключа вся зашифрованная информация будет взломана. В то же время передача и секретность ключа также стали сложной проблемой. Чтобы решить проблему передачи ключей, появился метод установления общего ключа посредством обмена ключами. Как создать общий ключ? Давайте посмотрим вниз.
3.1 Создайте общий ключ
В мире трех человек Сяомин, Сяохун и вор, поскольку Сяомин изучил принципы шифрования и знает обмен ключами Диффи-Хеллмана, он знает, как установить общий ключ.
3.1.1 Пигментное смешивание Хитрость:
Далее Давайте посмотрим, как создать общий ключ через хитрость смешивания краски.
Предположим, в комнате три человека, Сяомин, Сяохун и вор, у каждого из которых краска одного цвета. Эти краски также лежат посреди комнаты. Затем Сяо Мин хочет установить общий ключ с Сяохуном. В это время Сяо Мин сказал всем: "Я хочу использовать синий цвет". Тогда Сяо Мин выбрал желтый цвет из своей собственной краски. Этот желтый цвет является закрытым ключом Сяо Мина, и ни Сяо Хун, ни вор не знали об этом. После того, как Сяомин смешивает свой закрытый желтый ключ с синим открытым ключом, он получает цвет, который не может быть разложен. Чей это смешанный цвет, он еще называется по имени плюс цвет открытого ключа), и тогда Сяо Мин объявил «Сяо Мин-Блю». Точно так же, услышав заявление Сяомина об использовании синего цвета, Сяохун также решила смешать свой собственный красный закрытый ключ с синим открытым ключом, получила «Сяохун-синий» и объявила об этом.
В это время, комнаты в комнате, Xiaohong, вор три человека знают немного информации.
1. Они использовали синий
2. Сяо Мин объявил «Сяо Мин-Синий» (Сяохун и вор не знают, какая краска смешана с синим)
3. Сяохун объявил «Маленький красно-синий» (Сяохун и вор не знают, что за краска смешана с синей)
Затем пришло время стать свидетелем чуда: Сяо Мин получил «Маленький красно-синий» и смешал его со своим закрытым ключом «Желтый», чтобы получить новую краску «Маленький красно-синий-Сяо Мин». Точно так же Сяохун получает «Xiaoming-Blue» и смешивает его со своим закрытым ключом «Red», чтобы получить «Xiaoming-Blue-Xiaohong». Вы узнали? «Маленький красный-синий-маленький Минг» и «Маленький Минг-синий-маленький красный» абсолютно одного цвета. Вор не знает цвета приватных ключей Сяомина и Сяохуна и не может смешивать один и тот же цвет с ними.
В этот момент общий ключ установлен. Разобравшись с процессом установки общего ключа, мы попрощаемся с физической краской и воспользуемся цифровым методом для установки общего ключа.
Примечание: Как вы уже догадались, вор может смешать свою собственную краску с открытым ключом «синий», чтобы попытаться получить «Сяо Мин-Синий» и «Сяо Красно-Синий». Такой метод называется исчерпывающим методом, то есть перепробовать все возможности для взлома информации, поэтому теоретически алгоритм шифрования может быть взломан исчерпывающим методом, но на самом деле суперкомпьютерам нужно рассчитать триллионы лет, чтобы исчерпать все возможности.
3.1.2 Трюк с умножением:
Во-первых, давайте предположим, что умножение, как и смешивание красок, нельзя разложить на части, и посмотрим, как можно использовать умножение и числа для установления общего ключа.
Сяомин показал число 5, затем Сяомин выбрал личное число 4, а затем смешал два с помощью умножения, чтобы получить «Сяомин-5» (20), а затем Сяохун также выбрал личное число 7, чтобы получить «Сяохун». (35), Сяомин получает 35*4=140, Сяохун получает 20*7=140. Общий ключ установлен.
Все также обнаружили, что после того, как вор узнает три числа 20, 35 и 5, он может вычислить закрытые ключи Сяо Мина и Сяохуна путем деления. Итак, далее мы увидим, как на практике используется трюк с умножением, чтобы предотвратить вычисление закрытого ключа.
3.2 Алгоритм обмена ключами Диффи-Хеллмана
Мы все знаем возведение в степень, но заставить компьютер делать это сложнее. Итак, мы будем использовать возведение в степень как трюк умножения для создания общего секрета. В то же время нам также необходимо понять принцип исчисления часов.Под часами здесь можно понимать часы, которые мы часто видим.Наши общие часы до 12.Если текущее время 10 часов,через 4 часа , будет полдень 2:00. То есть (10+4)mod12=2. Теперь, когда вы понимаете арифметику часов и возведение в степень, давайте приступим к делу.
Это все еще комната Сяомина, Сяохуна и вора. Сяомин заявил, что часы 11, а основание операции питания равно 2. Затем Сяомин и Сяохун выбрали свои закрытые ключи 4 и 7 соответственно.
первый шаг, Сяомин смешивает свой «Xiaoming-11,2», чтобы получить его, а Сяохун смешивает свой собственный «Xiaohong-11,2», чтобы получить его.
второй шаг, Сяомин получает для расчета «Сяохун-11,2» (7), Сяохун получает для расчета «Сяомин-11,2» (5).
Вы заметили, что Сяомин и Сяохун установили общий ключ 3, и вор не может вычислить ключ или закрытый ключ Сяомин Сяохун на основе известных чисел 11, 2, 5 и 7. С помощью общего ключа Xiaoming и Xiaohong могут безопасно шифровать передачу.
3.3 Процесс симметричного шифрования AES
Полное название AES — Advanced Encryption Standard, самый популярный алгоритм симметричного шифрования с высокой скоростью шифрования и дешифрования. AES поддерживает 128-битные, 192-битные и 256-битные ключи трех длин. Чем длиннее ключ, тем выше безопасность. Во время шифрования AES открытый текст будет разделен на множество небольших частей открытого текста, а затем каждая часть открытого текста будет зашифрована отдельно, и зашифрованный зашифрованный текст будет отправлен, а получатель затем разделит и расшифрует зашифрованный текст, чтобы получить открытый текст. .
Как показано ниже:
Предыдущий маленький ярко-красный и договорился с ключом 3. Тогда вы можете общаться через симметричное шифрование.
В комнате Сяомина, Сяохуна и вора Сяомин хотел сообщить Сяохуну пароль «462315», поэтому:
Шаг 1: Разделите пароль в соответствии с длиной одного бита (на практике он обычно делится на 128 бит); он становится «4», «6», «2», «3», «1» и « 5 дюймов;
Шаг 2: Зашифруйте каждый блок открытого текста с помощью ключа 3, результат будет «795648», а затем Сяомин скажет Сяохуну и вору: «Мой пароль — 795648»;
Шаг 3: После того, как Сяохун получает зашифрованный текст, она разрезает зашифрованный текст на части и расшифровывает каждую часть с помощью ключа 3 и получает правильный пароль «462315», и вор не может его расшифровать, потому что он не знает ключа. .
В-четвертых, что такое асимметричное шифрование
При симметричном шифровании шифрование и дешифрование используют одну и ту же копию. Поэтому при асимметричном шифровании, шифровании и дешифровании используются разные ключи. Ключ в асимметричном шифровании делится на открытый ключ и закрытый ключ. Открытый ключ, как и имя, раскрывается, и любой может зашифровать информацию с помощью открытого ключа, но только пользователь пользователя может завершить расшифровку информации. Асимметричное шифрование позволяет избежать проблем с необходимостью передачи и сохранения симметричного шифрования.
Сейчас самым популярным алгоритмом асимметричного шифрования является алгоритм шифрования RSA, конкретно как это сделать мы продолжаем смотреть вниз.
4.1 Процесс асимметричного шифрования RSA
Википедия объясняет это так: Алгоритм шифрования RSA — этоАлгоритм асимметричного шифрования,существуетшифрование с открытым ключомиэлектронная коммерцияшироко используется. RSA производитсяРональд Левист(Рон Ривест),Ади Саммер(Ади Шамир) иЛеонард АардманЛеонард Адлемен предлагается в 1977 году. В то время они были вМассачусетский технологический институтРабота. RSA — это сочетание первых букв их фамилий.
Ранее мы говорили о том, как установить необратимый (компьютер может вычислить закрытый ключ исчерпывающим методом, даже суперкомпьютер в практическом сценарии) установить необратимый общий ключ с помощью вычисления часов и функции мощности. Поскольку Сяохун — девушка Сяомина, Сяохун расскажет ей о принципе алгоритма шифрования RSA завтра перед Сяохун, так что Сяохун также знает, как получить свой собственный открытый ключ и закрытый ключ. Далее давайте пойдем по стопам Сяохуна, чтобы увидеть, как вычисляются открытый и закрытый ключи шифрования RSA.
Первый шаг: Сяохун выбирает два больших простых числа p и q, здесь для удобства расчета выбираем 2 и 11;
Шаг 2: Рассчитайте произведение p и q n=p*q=2*11=22;
Третья часть: Рассчитать функцию EULER Φ (N) = (P-1) * (Q-1) = 10;
Шаг 4: Выберите целое число E, которое меньше, чем φ (n) и Coprime до φ (n), {1, 3, 7, 9}, где выбрано e = 7;
Шаг 5: Вычислить элемент, обратный по модулю e для φ(n) (мода ed φ(n) = 1) d, d=3
На данный момент Сяохун получил свой собственный открытый ключ (n, e) и закрытый ключ (n, d). где n — размер часов, а e и d — мощности степенной функции. Далее данные шифруются и расшифровываются через рассчитанные открытый и закрытый ключи.
Это все еще Сяомин, Сяохун и вор. Сяохун говорит всем, что мой открытый ключ (22,7). После того, как Сяомин узнает открытый ключ Сяохуна, он хочет сообщить Сяохун свою информацию «14», поэтому она зашифрована открытым открытым ключом Сяохуна. ключ.
Конкретные шаги заключаются в следующем:
Первый шаг: Сяомин вычисляет в соответствии с зашифрованной информацией 14, получает зашифрованную информацию 20, а затем сообщает Сяохуну и вору 20;
Шаг 2: Сяохун имеет свой собственный закрытый ключ, расшифровывает зашифрованную информацию 20 и получает информацию, которую Сяомин хочет передать Сяохун. Что касается вора, то он знает 22, 7 и 20, но не знает ключа Сяохуна (22, 3), поэтому не может расшифровать правильную информацию.
Алгоритм шифрования RSA также играет огромную роль в цифровых подписях.Предположим, вор может выдать себя за Сяохуна, говоря, что открытый ключ Сяохун (22,9), но Сяомин не знает, что вор притворяется вором.После шифрования согласно к открытому ключу вора, результат был расшифрован вором. Функция цифровой подписи состоит в том, чтобы предотвратить подделку информации. Сяохун сказала, что ее открытый ключ (22,7). В то же время она использует закрытый ключ, чтобы добавить подпись к этой информации (обычно используя значение MD5 для вычисления подписи), а Сяомин получает открытый ключ (22, 7) и подпись 13, Сяо Мин использует открытый ключ, чтобы вычислить, была ли информация подделана после получения подписи.
5. Практическая роль шифрования
В этой статье используется очень небольшое число для объяснения принципа шифрования, чтобы читатель мог легко выполнить расчет. В реальном использовании (n, e) — очень большие числа, где длина n больше 768, а длина 1024 считается в принципе безопасной.
(1230186684530117755130494958384962720772853569595334792197322452151726400507263657518745202199786469389956474942774063845925192557326303453731548268507917026122142913461670429214311602221240479274737794080665351419597459856902143413=
33478071698956898786044169848212690817704794983713768568912431388982883793878002287614711652531743087737814467999489
×
36746043666799590428244633799627952632279158164343087642676032283815739666511279233373417143396810270092798736308917)
6. Резюме
Наконец, чтобы подвести итог, прежде всего, на примере мошеннических текстовых сообщений, принцип шифрования выводится из информации + ключ, а ключ представляет собой строку чисел для шифрования и расшифровки информации. Затем он демонстрирует, как установить общий ключ с помощью трюка со смешиванием красок. В процессе использования умножения для создания общего ключа мы изучили вычисление часов и возведение в степень, а затем мы изучили процесс алгоритма шифрования RSA, генерируя открытый ключ и закрытый ключ с помощью двух простых чисел, и, наконец, мы шифруем информация по открытому ключу, Затем завершите расшифровку информации с помощью закрытого ключа.
7. Пишите в конце
Наверное, увидев это, у каждого в душе осталось еще много сомнений. Почему Сяомин и Сяохун могут получить один и тот же общий ключ после нескольких возведений в степень и вычислений часов, когда они устанавливают общий ключ? Почему алгоритм шифрования RSA использует два простых числа? Почему информация, зашифрованная открытым ключом, может быть расшифрована закрытым ключом?
За алгоритмом шифрования это очаровательная математическая по математике, а причина, по которой широко используется алгоритм шифрования RSA, поскольку старая математическая задача называется целочисленной факторизацией, вы можете легко найти два больших простых числа, умноженными результатом N, N, но чтобы Поместите этот результат назад два простых числа разложения становится чрезвычайно трудным. Хотя эта так называемая «целочисленная факторизация» проблема изучена на протяжении веков, никто не может найти достаточно эффективный и универсальный способ решить его, а также размер вреда стандартного колокола.
История математики полна неразрешенных вопросов, хотя эти увлекательные проблемы не имеют никаких практических применений, но один математик привлекает эстетику. Удивительно, что многие из такого рода очаровательные, но, очевидно, бесполезные вопросы были очень практичны, эта ценность треснула только через несколько веков проблемы. Проблема целочисленного разложения длилась долго. Самое раннее серьезное исследование, похоже, в 17 веке математики Фермат и Мерсена. Эйлер и Гаусс Два математики «Тайский» также способствовали этому вопросу в следующем веке. Но пока открытый ключ не зашифрован в 1970-х годах, сложность разлагающихся больших чисел является ключом к фактическому применению.
8. Ссылки
4. «Девять алгоритмов, меняющих будущее»
Автор: Дэн Цянь, команда интернет-сервера vivo.