Методы шифрования с закрытым ключом

Простейшие методы шифрования с закрытым ключом

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

Общая схема симметричного шифрования

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

На передающей стороне имеются источник сообщений и источник ключей. Источник ключей выбирает конкретный ключ К среди всех возможных ключей данной системы. Этот ключ К передается некоторым способом принимающей стороне, причем предполагается, что его нельзя перехватить, например, ключ передается специальным курьером (поэтому симметричное шифрование называется также шифрованием с закрытым ключом). Источник сообщений формирует некоторое сообщение М , которое затем шифруется с использованием выбранного ключа. В результате процедуры шифрования получается зашифрованное сообщение Е (называемое также криптограммой). Далее криптограмма Е передается по каналу связи. Так как канал связи является открытым, незащищенным, например, радиоканал или компьютерная сеть , то передаваемое сообщение может быть перехвачено противником. На принимающей стороне криптограмму Е с помощью ключа расшифровывают и получают исходное сообщение М .

Если М – сообщение, К – ключ , а Е – зашифрованное сообщение, то можно записать

то есть зашифрованное сообщение Е является некоторой функцией от исходного сообщения М и ключа К . Используемый в криптографической системе метод или алгоритм шифрования и определяет функцию f в приведенной выше формуле.

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

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

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

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

Принципы построения современных блочных шифров сформулированы в «Принципы построения блочных шифров с закрытым ключом» , «Алгоритмы шифрования DES и AES» , «Алгоритм криптографического преобразования данных ГОСТ 28147-89» , а в этой лекции рассматриваются шифры подстановки и перестановки, применяемые человеком с древнейших времен. Мы должны познакомиться с этими шифрами, так как процедуры подстановки и перестановки используются в качестве составных операций и в современных блочных шифрах.

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

Приветствую вас, хабравчане!

Проблемы безопасности — это слабое место большинства из нас. Всем нам неприятно сталкиваться и тем более терять что—то ценное из—за случайного клика мышью. И именно поэтому я решила поделиться найденными материалами с вами.

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

Нужно учитывать, что атаковать вас может не только человек. Это может делать, например, бот.
Каждый из нас подключен к интернет провайдеру. А на него, скорее всего, происходят атаки буквально каждый день. Замечали у себя на почте раздел «спам»? В каждом таком письме потенциально есть фишинговая атака. Это атака не персонально на вас. Это масштабная атака, ориентированная на широкий круг лиц. Мы потенциально жертвы.

Чаще всего их цель — деньги. Как они могут их получить?

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

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

И поэтому первое, что нужно сделать — это ответить для себя на несколько вопросов:

  • В каких файлах хранятся наиболее важные данные?
  • Какие аккаунты в соц сетях вы не можете потерять?
  • Что может причинить наибольший вред?
  • А что может ударить по вашей репутации?

Ну, например, кража ноутбука. Да, это больно и печально. Но как это может угрожать вам?
Это может быть потеря данных для входа в соц сети. Это может быть конфиденциальная информация, полученная во время работы. А может это личные фотографии.

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

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

Что такое шифрование?

Чтобы сделать правильный выбор в области безопасности, вам нужно понимать, что такое шифрование. Не обязательно знать хардкорную математику. Достаточно понять на базовом уровне. Это один из лучших и незаменимых инструментов в нашем арсенале.

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

Дешифрование — обратная операция. Преобразование нечитаемых данных в читаемые.

Окей, где это применяется? На самом деле во многих местах. Например, обращали внимание на протокол «https»? Именно за счет него ваши данные не может перехватить 3-й человек во время вашего лазания в интернете. Объясню подробнее. Вы заходите на сайт «www.google.com», делаете любой запрос. При этом все данные, которые необходимы для отображения выдачи результатов, передаются с помощью протокола «https». А значит, если какой-либо человек решит просмотреть данные о вашем трафике (атака Man In the Middle), то он увидит лишь то, что вы зашли на Google. В придачу он получит множество зашифрованных пакетов. То есть можно сказать, что он не получит ничего.

Но вернемся к базовой теории. В процессе шифрования участвуют 2 основных компонента — алгоритм и ключ.

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

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

Хм, хорошо. Едем дальше. Слегка повысим напряжение.

Виды шифрования

Как еще мы можем использовать шифрование в своих, корыстных целях? Для простоты понимания мы рассмотрим шифрование архива. При архивации во многих архиваторах присутствует возможность установить пароль. При этом архиватор использует какой-либо алгоритм для шифрования. И чаще всего это симметричный алгоритм.

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

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

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

Например, при смещении в 5 символов, символ, который стоит на первой позиции заменить на символ 6 позиции и так далее.

Наиболее стойким на данный момент считается алгоритм AES (Advanced Encryption Standard).
Стоит упомянуть еще один момент — мощность пароля. Мощность пароля измеряется в битах. Одним из наиболее распространенных решений является 128 или 256 бит. Это то количество бит, которое будет выделено для пароля. Так же это число означает количество паролей, которое вы можете получить при данном алгоритме шифрования. Но чем больше длина ключа, тем медленнее протекает процесс шифрования или дешифрования.

Но чаще всего используется асимметричное шифрование

И так, мы зашифровали письмо, но как его отправить нашему другу? Отправлять в соц. сетях или текстовым сообщением — не самая лучшая затея. Как и говорить его по телефону.

И это приводит нас к новому типу шифрования.

В ассиметричном шифровании используется 2 ключа — открытый и закрытый(тайный).
Открытый ключ для шифрования, закрытый — для дешифрования.

Какие алгоритмы позволяют пользоваться этой технологией?

  • Rivest—Shamir—Adleman (RSA) (наиболее распространенный)
  • Elliptic curve cryptosystem (ECC)
  • Diffie—Hellman (DH)
  • El Gamal

Плюсы ассиметричных алгоритмов:

  • можно свободно делиться открытым ключом и любой может отправить тебе тайное сообщение.

Минусы:

Так как во мне есть жилка программиста, а также любовь к математике, то я просто не могу не рассказать о том, как все работает «под капотом»

Рассмотрим на примере алгоритма RSA.

Первое, что нам необходимо сделать — сгенерировать открытый и закрытый ключи. Последовательность действий примерно такая:

1) Мы выбираем два простых числа. Желательно, чтобы они были достаточно близкими

2) Вычисляем их произведение, а также функцию Эйлера

n = p * s
f = (p — 1) * (s — 1)

3) Теперь наиболее затратная по времени часть — выбор экспоненты и произвольного коэффициента.

Дело в том, что при выбранных коэффициентах значение «d» должно быть целым. «d» — необходимая составляющая алгоритма

e = 5
k = 9
d = (k * f + 1)/e

Теперь наш открытый ключ (для шифрования сообщения) состоит из значений переменных «e» и «n», а закрытый ключ (для дешифрования) из значений «d» и «n».
То есть в нашем случае…

Тогда шифрование сообщения происходит по формуле: crypt = m^e%n.
А дешифрование: decrypt = crypt^d%n.

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

  1. Создать массив соответствий символу и его коду (например, ASCII код)
  2. Применить алгоритм для каждого символа, создавая массив преобразованных значений
  3. Перевести полученный массив обратно в строковый вид
  4. Profit!

Как можно использовать асимметричное шифрование для своих целей?

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

Среди всех найденных программ, наиболее удобной мне показалась gpg4usb.

Данная программа использует PGP шифрование. Почему я рекомендую использовать именно его?

Все просто. Этот тип шифрования до сих пор еще не удалось взломать. Никому. Так что пользуйтесь.

Пользоваться программой достаточно просто. Нужно лишь знать куда нажимать.
И именно об этом сейчас пойдет речь.

Первое, что необходимо сделать — скачать программу. Вы можете это сделать по ссылке:
ссылка.

Скажу сразу — эта программа кросс—платформенная. То есть вы можете использовать ее как на Windows, так и на Linux.

Второе — это создание пары ключей шифрования.

Это можно сделать, выполнив следующую последовательность действий:

1) Переходим в раздел «Менеджер ключей»

2) Выбираем в верхней панели «Ключ», затем «Генерировать ключ»

Должно выглядеть примерно так:

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

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

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

Введя сообщение в поле, смело нажимаем в верхней панели «Зашифровать».

Поздравляю, вы умеете шифровать сообщения.

Дешифровка происходит аналогично, разве что вместо «Зашифровать» вы пользуетесь кнопкой «Расшифровать».

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

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

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

Чтобы решить эту задачу, мы вновь возвращаемся на главный экран, в правой боковой панели нажимаем правой кнопкой мыши на нужный ключ и выбираем «Показать свойства ключа». А в открывшемся окне выбираем «Экспортировать Секретный ключ».

Готово, теперь у вас «на руках» открытый и закрытый ключи шифрования, которыми вы можете распоряжаться по своему усмотрению.

Ну и в завершении статьи хочу поделиться полезной методикой: моделирование угроз и оценка рисков.

Первое, что нужно понять — нельзя обеспечить 100% безопасность, как и свести все риски к нулю. Нельзя получить 100% анонимность. Нельзя получить 100% безопасность (разве что не использовать телефон и ПК).

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

Мы должны использовать риск—ориентированный подход.

Риск = уязвимость * угрозы * последствия

Например, кража ноутбука. Что мы можем сделать? Зашифровать весь диск, добавить дополнительные этапы авторизации.

Для обеспечения качественной защиты нужно пройти несколько этапов:

  1. Выбираем
  2. Настраиваем
  3. Оцениваем. Проверяем, что диск зашифрован полностью
  4. Контролируем. Проверка обновлений систем безопасности

Криптография: объяснение алгоритмов симметричного и асимметричного ключей

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

Симметричная криптография или криптография с одним ключом

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

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

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

Алгоритм с симметричным ключом должен соответствовать нескольким пунктам, чтобы его можно было безопасно использовать:

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

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

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

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

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

Теперь мы собираемся подробно поговорить о двух симметричных алгоритмах, которые постоянно используются сегодня либо в HTTPS-соединениях с TLS 1.2 и TLS 1.3, либо в виртуальных частных сетях с IPsec, OpenVPN или WireGuard, а также в других областях, где используется шифрование данных, например, в VeraCrypt.

AES (улучшенный стандарт шифрования)

Симметричный алгоритм AES отвечал за замена DES , и в настоящее время используется во всех защищенных каналах и протоколах, таких как TLS, FTPES, виртуальные частные сети и многое другое. Шифрование AES может использоваться как в программном, так и в аппаратном обеспечении, AES — это алгоритм блочного шифрования, фиксированный размер блока 128 бит . Длину ключа можно выбрать, и мы имеем Доступны 128, 192 и 256 бит , являясь стандартной длиной 128 бит, но 256 бит также широко используются.

Очень важным аспектом является то, что AES отвечает за создание матрицы 4 × 4, а затем к ней применяется серия раундов шифрования. Для 128-битного ключа применяется 10 раундов шифрования, для 192-битного ключа применяется 12 раундов, а для 256-битного ключа применяется 14 раундов. С самого начала многие криптографы сомневаются в его безопасности, и это так. что атаки были зарегистрированы в нескольких раундах, близких к последнему раунду, в частности, было расшифровано 7 раундов для 128-битных ключей, 8 раундов для 192-битных ключей и 9 раундов для 256-битных ключей.

Режим шифрования — это способ обработки блоков сообщений с шифрованием AES, существуют разные типы, и каждый из них работает по-своему. Например, есть AES-CBC, AES-CFB и AES-OFB , мы собираемся объяснить, что именно появляется в криптографических библиотеках, таких как OpenSSL и LibreSSL.

  • CBC (цепочка блоков шифра) — Этот режим шифрования широко используется в сочетании с хэш-функцией для проверки подлинности данных и используется до сих пор. Этот режим шифрования состоит из операции XOR для каждого блока открытого текста с предыдущим блоком шифрования. Каждый зашифрованный блок зависит от предыдущего обработанного до этого момента. Чтобы выполнить эту опцию XOR с первым блоком текста, используется вектор инициализации IV. Этот режим шифрования выполняется последовательно, его нельзя обрабатывать параллельно для повышения производительности шифрования / дешифрования данных.
  • OFB (обратная связь по выходу) : в этом режиме секретный ключ используется для создания псевдослучайного блока, к которому применяется операция XOR с открытым текстом для создания зашифрованного текста. В этом случае также требуется вектор инициализации, который должен быть уникальным для каждого зашифрованного сообщения. Если не использовать другой IV, безопасность системы будет поставлена ​​под угрозу. Его также нельзя парелизировать.
  • CFB (Шифрованная обратная связь) : выполняется так же, как и в OFB, но для создания потока ключей он шифрует последний блок шифрования, а не последний блок потока ключей, как это делает OFB. Шифрование нельзя распараллелить, но можно расшифровать.
  • GCM ( Галуа / Режим счетчика) : Этот режим шифрования является одним из лучших с точки зрения безопасности и скорости, GCM допускает параллельную обработку и совместим с процессорами AES-NI для повышения производительности шифрования / дешифрования данных. Этот режим шифрования — AEAD, помимо шифрования данных, он также может аутентифицировать их и проверять целостность данных, чтобы гарантировать, что они не были изменены. GCM также может принимать случайные векторы инициализации.

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

ChaCha20

Алгоритм ChaCha20 — это симметричный алгоритм шифрования, который поддерживает 128-битные и 256-битные и высокоскоростные ключи, в отличие от AES, который является блочным шифром, ChaCha20 является потоковым шифром. Он имеет характеристики, аналогичные его предшественник Salsa20 но с примитивной функцией 12 или 20 различных раундов. Его код был опубликован, стандартизирован IETF в RFC 7539, и в программных реализациях он намного эффективнее и быстрее, чем AES, поэтому он быстро занял место среди наиболее часто используемых алгоритмов сегодня.

Чтобы выяснить, почему он стал таким известным, мы поместим Google посередине, чтобы все можно было понять гораздо быстрее. Соединения HTPPS нацелены на обеспечение максимальной безопасности на веб-сайтах, которые мы посещаем каждый день, это был следующий шаг протокола HTTP, который вообще не имел никакой защиты. Однако шифрование зависит от браузера. Еще несколько лет назад Chrome для Android использует AES-GCM в качестве алгоритма симметричного шифрования, однако Google много лет работает над более современным, безопасным и быстрым шифрованием.

Скачок популярности происходит, когда после запуска в настольной версии Chrome новый ChaCha20 для шифрования и Poly1305 для аутентификации прибывает на Android. Титаническая работа, воплощенная в симметричном алгоритме, обеспечивающем большую безопасность и невосприимчивом к различным типам атак. Однако самое замечательное то, что он обеспечивает производительность в три раза выше, чем несколько более старые протоколы, такие как AES, таким образом, возможности протокола CPU / ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР также лучше используются, а ширина используемой ленты уменьшена на 16%, что позволяет еще больше использовать преимущества соединения.

ChaCha20 широко используется в соединениях HTTPS, в соединениях SSH для управления серверами, и даже популярный протокол WireGuard VPN использует только ChaCha20 для симметричного шифрования данных. Вполне возможно, что вскоре мы также увидим ChaCha20 в соединениях IPsec, а пока вы должны использовать AES-GCM, когда это возможно.

Что касается объяснения симметричной криптографии, мы прокомментировали два алгоритма, которые часто используются сегодня, есть гораздо больше, которые в прошлом были очень актуальны, особенно для разработки текущих, поскольку основой новых являются они. остановились на опыте старых, их ошибках и их преимуществах. Такие алгоритмы, как DES, 3DES, RC5 или IDEA, проложили путь к новым, так что сегодня у нас есть действительно надежные алгоритмы шифрования, способные противостоять атакам и защищать всю нашу информацию от нежелательных и злонамеренных рук.

Асимметричная криптография или криптография с открытым ключом

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

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

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

  • Зашифруйте информацию.
  • Обеспечьте целостность передаваемых данных.
  • Гарантия подлинности эмитента.

Шифрование с асимметричным ключом

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

Математическая структура того, как работает асимметричное шифрование, такова:

  • Сообщение + открытый ключ = зашифрованное сообщение
  • Зашифрованное сообщение + закрытый ключ = расшифрованное сообщение
  • Сообщение + закрытый ключ = Подписанное сообщение
  • Подписанное сообщение + открытый ключ = аутентификация

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

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

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

Работа симметричной и асимметричной системы

Главный недостаток этот тип шифрования это его медлительность , использование этого типа ключей замедляет процесс шифрования связи. Решением этой проблемы является использование как асимметричного, так и симметричного шифрования (например, таких протоколов, как IPSec или OpenVPN для виртуальных частных сетей, HTTPS для безопасных веб-соединений или в соединениях SFTP / FTPES).

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

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

Вызов-ответ

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

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

Цифровая подпись

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

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

В цифровых подписях используются хэш-функции, такие как SHA2-256 и SHA2-512, поскольку, как мы объясняли ранее, асимметричное шифрование выполняется медленно. Отправитель сообщения применит функцию HASH к исходному сообщению, чтобы получить отпечаток пальца. Затем отпечаток пальца будет зашифрован закрытым ключом и отправлен получателю по незащищенному каналу для дешифрования. Получатель также будет хешировать ваши данные и сравнивать результаты (тот, который он получил, и тот, который они получили). Если результат сравнения этих данных отрицательный, то есть есть различия между тем, что было получено, и тем, что было получено, информация была изменена, и данные отпечатков пальцев будут изменены. Если результат будет таким же, общение пройдет без проблем.

При этом мы выполнили:

  • Подлинность, эмитент — это то, кем они себя называют . Подпись в пункте отправления и в пункте назначения одинакова.
  • Честность, сообщение не было изменено . То, что получено, и то, что получено, одно и то же.
  • Без отречения, отправитель не может отрицать, что отправил сообщение получателю . Цифровая подпись не меняется.

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

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

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

Диффи-Хеллмана

Сам по себе это не асимметричный алгоритм, это протокол установления ключа, он используется для генерации закрытого ключа на обоих концах незащищенного канала связи . Он используется для получения закрытого ключа, с помощью которого информация будет впоследствии зашифрована вместе с симметричным алгоритмом шифрования. Сила Диффи-Хеллмана заключается в том, что его безопасность заключается в сложности вычисления дискретного логарифма больших чисел (Диффи-Хеллман также допускает использование эллиптических кривых).

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

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

Преимущество:

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

Недостатки:

  • Безопасность зависит от эффективности компьютеров.
  • Это медленнее, чем алгоритмы с симметричным ключом.
  • Секретный ключ должен быть зашифрован каким-то симметричным алгоритмом.

Этот алгоритм также является чисто асимметричным, недостатком DSA является то, что ему требуется гораздо больше времени вычислений, чем RSA для аппаратного равенства. DSA широко используется в качестве алгоритма цифровой подписи, в настоящее время он является стандартом, но DSA не используется для шифрования данных, только как цифровая подпись. Этот алгоритм широко используется в соединениях SSH для проверки цифровой подписи клиентов, кроме того, существует вариант DSA на основе эллиптических кривых (ECDSA), и он доступен во всех текущих криптографических библиотеках, таких как OpenSSL, GnuTLS или LibreSSL. Другой особенностью DSA является длина ключа, минимальная длина ключа составляет 512 бит, хотя наиболее распространенным является использование 1024 бит.

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


источники:

http://habr.com/ru/post/449552/

http://itigic.com/ru/cryptography-symmetric-and-asymmetric-key-algorithms-explained/