что такое алгоритм шифрования
Назначение и структура алгоритмов шифрования
Шифрование является основным методом защиты; рассмотрим его подробно далее.
Можно представить зашифрование в виде следующей формулы:
В стандарте ГОСТ 28147-89 (стандарт определяет отечественный алгоритм симметричного шифрования) понятие ключ определено следующим образом: «Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований».
Ключ может принадлежать определенному пользователю или группе пользователей и являться для них уникальным. Зашифрованная с использованием конкретного ключа информация может быть расшифрована только с использованием только этого же ключа или ключа, связанного с ним определенным соотношением.
Аналогичным образом можно представить и расшифрование:
При отсутствии верного ключа k2 получить исходное сообщение M’ = M с помощью правильной функции D невозможно. Под словом «невозможно» в данном случае обычно понимается невозможность вычисления за реальное время при существующих вычислительных ресурсах.
В алгоритмах симметричного шифрования для расшифрования обычно используется тот же самый ключ, что и для зашифрования, или ключ, связанный с ним каким-либо простым соотношением. Последнее встречается существенно реже, особенно в современных алгоритмах шифрования. Такой ключ (общий для зашифрования и расшифрования) обычно называется просто ключом шифрования.
В асимметричном шифровании ключ зашифрования k1 легко вычисляется из ключа k2 таким образом, что обратное вычисление невозможно. Например, соотношение ключей может быть таким:
Такое соотношение ключей используется и в алгоритмах электронной подписи.
Основной характеристикой алгоритма шифрования является криптостойкость, которая определяет его стойкость к раскрытию методами криптоанализа. Обычно эта характеристика определяется интервалом времени, необходимым для раскрытия шифра.
Рассмотрим, как выглядят изнутри алгоритмы блочного симметричного шифрования.Структура алгоритмов шифрования
Существует и более сложная структура сети Фейстеля, пример которой приведен на рис. 3.
В отличие от сети Фейстеля, SP-сети обрабатывают за один раунд целиком шифруемый блок. Обработка данных сводится, в основном, к заменам (когда, например, фрагмент входного значения заменяется другим фрагментом в соответствии с таблицей замен, которая может зависеть от значения ключа Ki) и перестановкам, зависящим от ключа Ki (упрощенная схема показана на рис. 4).
Впрочем, такие операции характерны и для других видов алгоритмов шифрования, поэтому, на мой взгляд, название «подстановочно-перестановочная сеть» является достаточно условным.
Для структуры «квадрат» характерно представление шифруемого блока данных в виде двумерного байтового массива. Криптографические преобразования могут выполняться над отдельными байтами массива, а также над его строками или столбцами.
На рис. 5 приведен пример операции над блоком данных, выполняемой алгоритмом Rijndael.
Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).
Шифрование: типы и алгоритмы. Что это, чем отличаются и где используются?
Многие до сих пор недооценивают важность SSL сертификатов, а ведь их технология лежит в основе безопасности и конфиденциальности любой информации в сети Интернет. Шифрование — преобразование данных в нешифруемый формат, таким образом, что только авторизованные пользователи могут получить доступ к информации.Процесс шифрования становится возможным благодаря криптографическим ключам в сочетании с различными математическими алгоритмами. В этой статье рассмотрим два основных типа шифрования — симметричное и асимметричное, а также 5 наиболее часто используемых алгоритмов шифрования.
Давайте разберемся со всем по порядку.
Тип шифрования № 1: Симметричное шифрование
Метод симметричного шифрования, как и следует из названия, использует один криптографический ключ для шифрования и дешифрования данных. Использование одного ключа для обеих операций делает процесс простым. Давайте разберемся с процессом симметричного шифрования на простом примере:
В Киеве живут два близких друга Антон и Алиса. По какой-то причине Алиса вынуждена покинуть город. Единственный способ общаться друг с другом — по почте. Но есть одна проблема: Антон и Алиса боятся, что кто-то сможет прочитать их письма.
Что делает симметричное шифрование хорошим решением
Наиболее выдающейся особенностью симметричного шифрования является простота процесса, так как используется один ключ как для шифрования, так и для дешифрования. Когда требуется зашифровать большой кусок данных, симметричное шифрование оказывается отличным вариантом. В результате алгоритмы симметричного шифрования:
3 алгоритма симметричного типа шифрования
“Шифр Цезаря” основан на особой логике шифрования данных, разгадав которую можно легко расшифровать информацию. Современные же методы шифрования, основаны на очень сложных математических функциях, которые взломать практически невозможно.
Существуют сотни алгоритмов симметричного типа! Наиболее распространенные из них — AES, RC4, DES, 3DES, RC5, RC6 и т. д. Давайте рассмотрим три самых популярных.
1. DES-алгоритм симметричного шифрования
DES (data encryption standard), представленный в 1976 году, является старейшей симметричных методов шифрования. Он был разработан IBM для защиты конфиденциальных правительственных данных и был официально принят в 1977 году для использования федеральными агентствами в США. Алгоритм шифрования DES был одним из тех, который был включен в версии 1.0 и 1.1 TLS (transport layer security).
DES преобразует 64-битные блоки данных открытого текста в зашифрованный текст путем разделения на два отдельных 32-битных блока, применяя процесс шифрования к каждому отдельно. Включает в себя 16 циклов различных процессов — таких как расширение, перестановка, замена или другие операции — через которые будут проходить данные в зашифрованном виде. В конечном итоге 64-битные блоки зашифрованного текста создаются в качестве выходных данных.
В 2005 году DES был официально объявлен устаревшим и был заменен алгоритмом шифрования AES. Самым большим недостатком DES была слишком маленькая длина ключа шифрования, что облегчало взлом. Протокол TLS 1.2, который широко используется сегодня не использует метод шифрования DES.
2. Алгоритм симметричного шифрования 3DES
3DES также известный как TDEA (triple data encryption algorithm), как следует из названия, является обновленной версией алгоритма DES. 3DES был разработан для преодоления недостатков алгоритма DES и был введен в эксплуатацию в конце 1990 года. Обновленный алгоритм применял циклы DES трижды к каждому блоку данных. В результате 3DES было намного сложнее взломать, чем его предшественника DES. TDEA стал широко используемым алгоритмом шифрования в платежных системах и других технологиях финансовой индустрии. Он также стал частью криптографических протоколов, таких как TLS, SSH, IPsec и OpenVPN.
Все алгоритмы шифрования в конечном итоге поддаются власти времени, и 3DES не стал исключением. Уязвимость Sweet32 алгоритма 3DES была обнаружена Картикеяном Бхаварганом и Гаэтаном Леурентом. Это открытие заставило индустрию безопасности рассмотреть вопрос об устаревании алгоритма, а Национальный институт стандартов и технологий США (англ. National Institute of Standards and Technology, NIST) объявил об этом официально в проекте руководства, опубликованном в 2019 году.
Согласно этому проекту, использование 3DES должно быть отменено во всех новых приложениях после 2023 года. Стоит также отметить, что TLS 1.3, новейший стандарт для протоколов SSL/TLS, также прекратил использование 3DES.
3. Алгоритм симметричного шифрования AES
AES(advanced encryption system) также известный как Rijndael, является одним из наиболее распространенных алгоритмов шифрования. Был разработан в качестве альтернативы DES и после утверждения NIST в 2001 году стал новым стандартом шифрования. AES — это семейство блочных шифров с различной длиной ключей и разными размерами блоков.
AES работает методами подстановки и перестановки. Сначала незашифрованные данные преобразуются в блоки, а затем шифрование применяется с использованием ключа. Процесс шифрования состоит из различных процессов, таких как сдвиги строк, смешивание столбцов и добавление ключей. В зависимости от длины ключа выполняется 10, 12 или 14 таких трансформаций (раундов). Стоит отметить, что последний раунд отличается от предыдущих и не включает подпроцесс микширования.
Преимущество использования алгоритма шифрования AES
Все это сводится к тому, что AES безопасен, быстр и гибок. Алгоритм AES — намного быстрее DES. Варианты с различными длинами ключей — это самое большое преимущество: чем длиннее ключи, тем сложнее их взломать.
На сегодняшний день AES является наиболее популярным алгоритмом шифрования — он используется во многих приложениях, включая:
Многие правительственные учреждения США, используют алгоритм шифрования AES для защиты своей конфиденциальной информации.
Тип шифрования № 2: асимметричное шифрование
Асимметричное шифрование, в отличие от симметричного, включает в себя несколько ключей для шифрования и дешифрования данных, которые математически связаны друг с другом. Один из этих ключей известен как «открытый ключ», а другой — как «закрытый ключ». Асимметричный метод шифрования также известен как «криптография с открытым ключом».
Симметричное шифрование прекрасно работает, когда наши Алиса и Антон хотели обмениваться информацией между собой. Но что, если Антон хочет безопасно общаться с сотнями людей? Непрактично и неудобно использовать разные ключи для каждого собеседника.
Чтобы решить эту проблему, Антон использует шифрование с открытым ключом, т.е. он дает открытый ключ каждому, кто отправляет ему информацию, а секретный ключ он хранит при себе. Он поручает им зашифровать информацию с помощью открытого ключа, чтобы данные можно было расшифровать только с помощью его личного ключа. Это исключает риск компрометации ключа, поскольку данные могут быть расшифрованы только с использованием закрытого ключа, который есть у Антона.
Что делает асимметричное шифрование отличной техникой
Первое (и наиболее очевидное) преимущество этого типа шифрования — безопасность, которую он обеспечивает. В этом методе открытый ключ — который является общедоступным — используется для шифрования данных, в то время как расшифровка данных выполняется с использованием закрытого ключа, который необходимо надежно хранить. Это гарантирует, что данные остаются защищенными от атак «человек посередине» (MiTM). Для веб-серверов и серверов электронной почты, которые постоянно подключаются к сотням тысяч клиентов нужно управлять только одним ключом и защищать его. Другой ключевой момент заключается в том, что криптография с открытым ключом позволяет создавать зашифрованное соединение без необходимости встречаться в автономном режиме, чтобы сначала обменяться ключами.
Вторая важная особенность, которую предлагает асимметричное шифрование, — это аутентификация. Как мы видели, данные, зашифрованные с помощью открытого ключа, могут быть расшифрованы только с помощью закрытого ключа, связанного с ним. Следовательно, он гарантирует, что данные видит и дешифрует только тот объект, который должен их получить. Проще говоря, это подтверждает, что вы разговариваете или обмениваетесь информацией с реальным человеком или организацией.
2 основных типа алгоритмов асимметричного шифрования
1. Алгоритм асимметричного шифрования RSA
В 1977 году алгоритм изобрели трое ученых из Массачусетского технологического института Рон Ривест, Ади Шамир и Леонард Адлеман (Ron Rivest, Adi Shamir, and Leonard Adleman отсюда «RSA»). На сегодняшний день является наиболее используемым алгоритмом асимметричного шифрования. Его эффективность заключается в методе «первичной факторизации». По сути, выбираются два различных случайных простых числа заданного размера (например, 1024 бита каждое) и умножаются, чтобы создать еще одно гигантское число. Задача состоит в том, чтобы определить исходные простые числа из умноженного гигантского. Оказывается, эта головоломка практически невозможна для современных суперкомпьютеров, не говоря уже о людях.
В 2010 году группа добровольцев провела исследование, и им потребовалось более 1500 лет вычислительного времени (распределенного по сотням компьютеров), чтобы взломать 768-битный ключ RSA, что намного ниже стандартного 2048-битного, который используется сегодня.
Преимущество использования алгоритма шифрования RSA
Большим преимуществом RSA является его масштабируемость, ключи могут быть разной длины шифрования: 768-битный, 1024-битный, 2048-битный, 4096-битный и т. д.
RSA основан на простом математическом подходе, поэтому его реализация в инфраструктуре открытых ключей (PKI) становится легкой. Адаптивность и безопасность сделали RSA наиболее используемым алгоритмом асимметричного шифрования для различных приложений, включая сертификаты SSL / TLS, криптовалюты и шифрование электронной почты.
2. Алгоритм асимметричного шифрования ECC
В 1985 году два математика по имени Нил Коблиц и Виктор Миллер предложили использовать эллиптические кривые в криптографии. Спустя почти два десятилетия их идея воплотилась в реальность, алгоритм ECC (Elliptic Curve Cryptography) начали использовать в 2004-2005 годах.
В процессе шифрования ECC эллиптическая кривая представляет набор точек, которые удовлетворяют математическое уравнение (y 2 = x 3 + ax + b).
Как и RSA, ECC также работает по принципу необратимости. Проще говоря, в ECC число, символизирующее точку на кривой, умножается на другое число и дает другую точку на кривой. Теперь, чтобы взломать эту головоломку, вы должны выяснить новую точку на кривой. Математика ECC построена таким образом, что найти новую точку практически невозможно, даже если вы знаете исходную точку.
Преимущество использования алгоритма шифрования ECC
Не смотря на то, что по сравнению с RSA, в ECC используется более короткая длина ключа обеспечивает он большую безопасность (от современных методов взлома).
Еще одним преимуществом использования более коротких ключей в ECC является более высокая производительность. Короткие ключи требуют меньшей сетевой нагрузки и вычислительной мощности, и это отлично подходит для устройств с ограниченными возможностями хранения и обработки. Использование алгоритма ECC в сертификатах SSL/TLS значительно сокращает время, необходимое для шифрования и дешифрования, что помогает быстрее загружать веб-сайт. Алгоритм ECC используется для приложений шифрования, цифровых подписей, в псевдослучайных генераторах и т. д.
Однако проблема массового использования ECC заключается в том, что многие серверные программы и панели управления еще не добавили поддержку сертификатов ECC SSL/TLS. Мы надеемся, что это изменится в скором будущем, а пока что RSA будет продолжать оставаться наиболее используемым алгоритмом асимметричного шифрования.
Гибридное шифрование: симметричное + асимметричное шифрование
Следует сразу же оговориться, что гибридное шифрование не является «отдельным методом», как симметричное или асимметричное, в нем используются все преимущества обоих методов и создается синергия надежных систем шифрования.
Каждый из алгоритмов шифрования имеет свои недостатки. Например, метод симметричного шифрования отлично подходит для быстрого шифрования больших объемов данных. Но он не обеспечивает проверку личности, что является необходимым, когда речь заходит о безопасности в Интернете. С другой стороны, асимметричное шифрование предоставляет доступ к данным предполагаемого получателя. Однако эта проверка делает процесс шифрования мучительно медленным.
Идея гибридного шифрования родилась, когда стало критично важно шифровать данные с высокой скоростью предоставляя при этом проверку личности.
Метод гибридного шифрования используется в SSL/TLS сертификатах во время последовательной связи между серверами и клиентами (веб-браузерами) в процессе, известном как “TLS handshake”. Сначала проверяется личность обеих сторон с использованием закрытого и открытого ключа. После того, как обе стороны подтвердят свою личность, шифрование данных происходит посредством симметричного шифрования с использованием эфемерного (сеансового) ключа. Это обеспечивает быструю передачу большого объема данных, которые мы отправляем и получаем в Интернете каждую минуту.
Типы методов шифрования
Если у вас возник вопрос: “Так какой же тип шифрования лучше?”, то явного победителя не будет.
С точки зрения безопасности, асимметричное шифрование, несомненно, лучше, поскольку оно обеспечивает аутентификацию. Однако производительность является аспектом, который не можно игнорировать, поэтому симметричное шифрование всегда будет необходимо.
Преимущества симметричного и асимметричного шифрования мы собрали в таблицу, с которой предлагаем ознакомится и вам:
Симметричное шифрование | Асимметричное шифрование |
Один ключ используется для шифрования и дешифрования данных. | Пара ключей используется для шифрования и дешифрования. Эти ключи известны как “открытый ключ” и “закрытый ключ”. |
Более простой метод шифрования, так как используется только один ключ. | В связи с тем, что используется пара ключей — процесс более сложный. |
Используется для шифрования большого объема данных. | Обеспечивает аутентификацию. |
Обеспечивает более высокую производительность и требует меньше вычислительной мощности. | Сложные процессы протекают медленнее и требуют большей вычислительной мощности. |
Для шифрования данных используется меньшая длина ключа (128-256 бит). | Используются более длинные ключи шифрования (1024-4096 бит). |
Идеально подходит для шифрования большого количества данных. | Используется при шифровании небольшого объема данных. |
Стандартные алгоритмы: RC4, AES, DES, 3DES и QUAD. | Стандартные алгоритмы: RSA, Diffie-Hellman, ECC, El Gamal и DSA. |
Большинство современных SSL сертификатов используют гибридный метод: асимметричное шифрование для аутентификации и симметричное шифрование для конфиденциальности. Такой сертификат не дает мошенникам перехватить или подменить личные данные пользователей: контактную информацию, номера банковских карт, логины, пароли, адреса электронной почты и т.д.
Специалисты техподдержки Hostpro помогут выбрать необходимый сертификат, ориентируясь на потребности вашего сайта. Также бесплатно установят и настроят работу по HTTPS. Свяжитесь удобным для вас способом в режиме телефонного звонка, on-line чата или тикет-системы 24/7.
Кодирование и Шифрование
В наш век интернет-технологий, когда мы доверяем все свои данные интернет-сервисам, нужно знать и понимать, как они их хранят и обрабатывают.
Но зачем это вообще нужно знать? Чтобы попросту не попасть в ситуацию, когда ваши личные данные, пароли от аккаунтов или банковских карт окажутся в руках мошенников. Как говорится: «Доверяй, но проверяй»
Важные аспекты в хранении данных, будь то на внешних серверах или домашнем компьютере, – это прежде всего кодирования и шифрование. Но чем они отличаются друг от друга? Давайте разбираться!
Ни для кого не секрет, что компьютер может хранить информацию, но он не может хранить её в привычной для нас форме: мы не сможем просто так написать на флешки реферат, не можем нарисовать на жестком диске картинку так, чтобы её мог распознать компьютер. Для этого информацию нужно преобразовать в язык понятный компьютеру, и именно этот процесс называется кодированием. Когда мы нажимаем на кнопку на клавиатуре мы передаем код символа, который может распознать компьютер, а не сам символ.
Определения и различия
Кодирование – процесс преобразования доступной нам информации в информацию понятную компьютерную.
Шифрование – процесс изменения информации таким образом, чтобы её смогли получить только нужные пользователи.
Шифрование применялось и задолго до создания компьютеров и информатики как таковой. Но зачем? Цели её применения можно было понять из определения, но я опишу их ещё раз более подробно. Главные цели шифрования это:
конфиденциальность – данные скрыты от посторонних
целостность – предотвращение изменения информации
идентифицируемость – возможность определить отправителя данных и невозможность их отправки без отправителя
Оценить стойкость шифра можно с помощью криптографической стойкости.
Криптографическая стойкость – это свойство шифра противостоять криптоанализу, изучению и дешифровки шифра.
Криптостойкость шифра делится на две основные системы: абсолютно стойкие системы и достаточно стойкие системы.
Абсолютно стойкие системы – системы не подверженные криптоанализу. Основные критерии абсолютно стойких систем:
Ключи должны генерироваться для каждого сообщения отдельно
Генерация ключей независима
Длина ключа должна быть не меньше длины сообщения
К сожалению, такие системы не удобны в своём использовании: появляется передача излишней информации, которая требует мощных и сложных устройств. Поэтому на деле применяются достаточно стойкие системы.
Достаточно стойкие системы – системы не могут обеспечить полную защиту данных, но гораздо удобнее абсолютно стойких. Надежность таких систем зависит от возможностей крипто аналитика:
Количества перехваченных сообщений
Времени и вычислительных способностей
А также от вычислительной сложности шифра.
Вычислительная сложность – совокупность времени работы шифрующей функции, объема входных данных и количества используемой памяти. Чем она больше, тем сложнее дешифровать шифр.
История шифрования
Шифрование берет своё начало ещё из древних времен. Примерно 1300 лет до нашей эры был создан один из первых методов шифрования – Атбаш. Принцип шифрования заключается в простой подставке символов по формуле:, где:
n – количество символов в алфавите
i – порядковый номер символа.
С тех самых пор шифрование активно развивалось вместе с развитием нашей цивилизации
Хоть шифры и менялись, но их принцип нет – для расшифровки сообщения требуется ключ. В случае с Абашем ключом может считать последовательность порядковых номеров исходных символов, но этот ключ ещё надо как-то передать. Методы шифрования, которые используются сейчас, научились-таки передавать ключи по открытым и незащищённым каналам связи. Казалось бы, передача ключей шифрования по обычным каналам — это добровольное жертвование своими данными, но не всё так просто. Разберём это на примере популярного алгоритма шифрования «RSA», разработанного в 1977 году.
Первым делом выбирается два случайный простых числа, которые перемножаются друг на друга – именно это и есть открытый ключ.
К слову: Простые числа — это те числа, которые могут делиться без остатка либо на 1, либо на себя.
Длина таких чисел может быть абсолютно любая. К примеру, возьмем два простых числа 223 и 13. Их произведение 2899 – будет являться открытым ключом, который мы и будем передавать по открытому каналу связи. Далее нам необходимо вычислить функцию «Эйлера» для произведения этих чисел.
Функция Эйлера – количество натуральных чисел, меньших чем само число и, которые будут являть взаимно простыми числами с самим числом.
Возможно, звучит непонятно, но давайте это разберем на небольшом примере:
φ (26) [фи от двадцати шести] = какому-то числу чисел, которое всегда будет меньше 26, а сами числа должны иметь только один общий делитель единицу с 26.
1 – подходит всегда, идем дальше;
7 – только на 1 – подходит;
Общее количество таких чисел будет равно 12. А найти это число можно по формуле: φ(n*k) = (n-1)(k-1) в нашем случае 26 можно представить как 2 * 13, тогда получим φ(26) = φ(2 * 13) = (2-1)*(13-1) = 1 * 12 = 12
Теперь, когда мы знаем, что такое функция Эйлера и умеем её вычислять найдем её для нашего открытого ключа – φ(2899) = φ(223 * 13) =(223 – 1)*(13-1) = 222 * 12 = 2664
После чего нам нужно найти открытую экспоненту. Не пугайтесь, тут будет гораздо проще чем с функцией «Эйлера».
Открытая экспонента – это любое простое число, которое не делится на функцию Эйлера. Для примера возьмем 13. 13 не делится нацело на число 2664. Вообще открытую экспоненту лучше выбирать по возрастанию простым перебором, а не просто брать случайную. Так для нашего примера разумнее было бы взять число 5, но давайте рассмотрим на примере 13
e – открытая экспонента
mod – остаток отделения
В обоих случаях у нас получится число 205
На этом подготовка отправки сообщения успешно завершается и начинается самое веселое – отправка данных для дешифрования сообщения. На этом шаге мы отправляем открытый ключ и открытую экспоненту человеку, сообщение которого хотим получить. Предположим, что в этот момент наш ключ и экспоненту перехватили 3-е лица, но до нужного нам человека они всё так же дошли
Теперь этому человеку нужно отправить нам сообщение, для простоты предположим, что это какое-то число, например: 92. Для этого ему нужно отправить нам остаток от деления 92 в степени открытой экспоненты на открытый ключ – T ^ e mod n , где
T – шифруемый текст
e – открытая экспонента
mod – остаток от деления
Предположим, что и в этот раз сообщение перехватили, но нам оно всё так же дошло
С – зашифрованный текст
d – закрытая экспонента
mod – остаток от деления
235 ^ 205 mod 2899 = 92.
Вуаля, и мы имеет исходное число. Но, что насчет перехваченных сообщений? У злоумышленника есть сообщение, ключ и экспонента, но как мы помни для дешифровки ему ещё нужна секретная экспонента, она же секретный ключ, но для того, чтобы вычислить её, ему придется разложить исходный ключ 2899 на множители, а сделать это не так уж и просто, особенно когда вместо двух чисел 223 и 13, будут использовать числа длиной несколько десятков символов
Но ничто в мире не идеально, в том числе и этот метод.
Его первый недостаток – это подборка пары чисел для открытого ключа. Нам нужно не просто сгенерировать случайно число, но ещё и проверить на то простое ли оно. На сегодняшний нет методов, которые позволяют делать это сверх быстро.
Второй недостаток – так же связан с генерацией ключа. Как мы с вами помним: «ключи должны генерировать независимо от каких-либо факторов», но именно это правило нарушается, когда мы пытается сгенерировать строго простые числа.
Третий недостаток – подбор и перебор чисел для экспонент.
Четвертый – длина ключей. Чем больше длина, тем медленнее идет процесс декодирования, поэтому разработчики пытаются использовать наименьшие по длиннее ключи и экспоненты. Даже я акцентировал на это внимание, когда говорил, что лучше взять число 5, вместо 13 для открытой экспоненты. Именно из-за этого и происходит большая часть взломов и утечек данных
Но не стоит печалиться, ведь как я и говорил: криптография и шифрование развивается вместе с развитием цивилизации. Поэтому довольно скоро все мы будем шифровать свои данные с помощью Квантового шифрование.
Этот метод основывается на принципе квантовой суперпозиции – элементарная частица может сразу находится в нескольких положениях, иметь разную энергию или разное направление вращения одновременно. По такому принципу и работает передача ключей шифрования по протоколу BB-84.
Есть оптоволокно, по которому передаются единичные фотоны света. Мы, как отправитель может сгенерировать абсолютно любой двоичный ключ, по тому же принципу квантовой супер позиции, ну или использовать обычные генераторы псевдослучайных чисел. Допустим мы хотим передать ключ 101001011. Для этого нам нужно принять за обозначение какое положение фотона соответствует единице, а какое нулю. Представим, что вертикальное положение – это 1, а горизонтальное – 0. Если оставить все так, то от передачи ключей таким образом не будет никакого смысла, ведь тогда злоумышленник всегда сможет измерить фотон, получить его значение, создать и отправить точно такой же обратно человеку, которому мы хоти передать ключ. Поэтому были введены ещё два положение – диагональные. Предоставим вертикальную волну, или же значение 1 и отклоним её на 45 градусов влево. Это будет вторая единица. Вернемся обратно и отклоним на 45 градусов вправо – это будет второй 0.
Вернемся к нашему ключу 101001011. Мы случайным образом выбираем направление – обычное или диагональное. Для удобства присвоим обычному номер 1, а диагональному 2.
Давайте отправим ключ – 1(1), 0(2), 1(1), 0(1), 0(1), 1(2), 0(2), 1(1), 1(2). Теперь человеку, которому мы отправляем ключ, нужно точно так же, совершенно случайно, выбрать случайное направление.
Допустим он выбрал направления: 221111212. Поскольку есть всего 2 плоскости отправки: 1 и 2, они же называются: канонический и диагональный базис, то шанс того, что он выбрал правильные направления 50%.
Если он угадал базис – он получил верное значение, если нет – неверное. Учитывая его направления, он получил: 001000011. Теперь нужно отсеять неправильные значения: можно сделать это обменом базисов по любому, даже не защищенному, каналу связи. После этого у нас обоих останется ключ: 0100011. Теперь с помощью его мы можем передавать и кодировать сообщения по обычному методу шифрования.
Заключение
Причитав и разобрав эту статью, мы с вами узнали, чем отличается кодирование от шифрования, их историю с будущим, узнали каким должен быть идеальный шифр и немного поговорили про крипто анализ. Уже с этими знаниями, которые были предоставлены в этой статье, можно спокойно идти и делать какую-нибудь систему авторизации или пытаться взломать какой-то сайт, главное не перебарщивать.