В протоколе http используется симметричная схема шифрования

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

На рис. 24.3 приведена классическая модель симметричной криптосистемы, тео­ретические основы которой впервые были изложены в 1949 году в работе Клода Шеннона (Claude Shannon). В данной модели есть три участника: отправитель, получатель, злоумышленник. Задача отправителя заключается в том, чтобы по общедоступному каналу передать некоторое сообщение в защищенном виде. Для этого он, используя ключ к, зашифровывает открытый текст X и передает за­шифрованный текст Y. Задача получателя заключается в том, чтобы расшифро­вать текст Y и прочитать сообщение X. Предполагается, что отправитель имеет свой источник ключа. Сгенерированный ключ заранее по надежному каналу пе­редается получателю.

Злоумышленник
Злоумышленник пытается ,>уу перехватить ключ

Секретный ключ К>г

X — исходное сообщение (открытый текст)
Шифрование Дешифрирование

Секретный ключ КV

Y — зашифрованный текст Х " g^ffi™^ С °° 6ЩеНИв

Рис. 24.3. Симметричная схема шифрования

Наиболее популярным симметричным алгоритмом шифрования данных в течение многих лет был алгоритм DES (Data Encryption Standard — стандарт шифрования данных), разра­ботанный фирмой IBM в 1976 г. На смену DES в 2001 г. пришел новый более совершен­ный алгоритм AES (Advanced Encryption Standard — улучшенный стандарт шифрования), обладающий лучшим, чем DES, сочетанием показателей безопасности и быстродействия.

В основе обеспечения целостности и аутентификации данных также лежит один из приемов шифрования — шифрование с помощью вычислительно необратимой
функции (One-Way Function, OWF), частными случаями которой являются хэш-функция и дайджест-функция.

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

Зачем же нужны такие функции?

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

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

Рис. 24.4. Использование шифрования для обеспечения целостности и аутентичности данных

Наиболее популярными в системах безопасности в настоящее время является серия дай­джест-функций MD2, MD4, MD5. Все они генерируют дайджесты фиксированной длины в 16 байт. Адаптированным вариантом MD4 является американский стандарт SHA, длина дайджеста в котором составляет 20 байт. Компания IBM поддерживает дайджест-функции MDC2 и MDC4.

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

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

Наиболее часто для построения схемы цифровой подписи используется асим­метричный алгоритм шифрования. В основе этого алгоритма лежит концепция Диффи—Хеллмана (Diffie—Hellmann), заключающаяся в том, что каждый поль­зователь сети имеет свой секретный (закрытый) ключ, необходимый для форми­рования подписи в зашифрованном виде; все остальные пользователи используют для проверки подписи соответствующий этому секретному ключу открытый ключ.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Для студента самое главное не сдать экзамен, а вовремя вспомнить про него. 10068 — | 7511 — или читать все.

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

открытый ключ K: используется для шифрования информации, вычисляется из секретного ключа k;

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

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

Асимметричные системы называют еще двухключевыми криптографическими системами или криптосистемами с открытым ключом.

Обобщенная схема асимметричной криптосистемы шифрования

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

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

Процесс шифрования и передачи сообщения

Процесс передачи зашифрованной информации в асимметричной криптосистеме осуществляется следующим образом:

Абонент В генерирует пару ключей: секретный ключ kB и открытый ключ Кв. Открытый ключ Кв посылается абоненту А и остальным абонентам (или делается доступным, например, на разделяемом ресурсе).

2.Использование — обмен информацией между абонентами А и В.

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

Асимметричные алгоритмы основаны на использовании односторонних функций.

Функция F:X→Y называется односторонней, если выполняются следующие два условия:

существует эффективный алгоритм, вычисляющий F(x) для любого xX;

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

«Эффективным» называется полиномиальный алгоритм, т.е. алгоритм, который для получения результата для входа длины n тратит не более P(n) шагов, где P — некоторый полином.

Не любая односторонняя функция не может быть использована для шифрования. Действительно, если преобразовать открытый текст t с помощью односторонней функции: c = F(t), то расшифровать полученный текст, то есть по c восстановить t, не сможет уже никто, в том числе и законный получатель. Для использования в криптографии необходимо, чтобы задача инвертирования шифрующего преобразования (т.е. вычисления t по F(t)) была разрешима за приемлемое время, но сделать это мог только тот, кто знает секретный ключ. Такие функции называются односторонними функциями с секретом

Односторонняя функция с секретом — это функция Fk:XY, зависящая от параметра kK (этот параметр называется секретом), для которой выполняются следующие условия:

при неизвестном k не существует эффективного алгоритма инвертирования функции Fk;

при известном k существует эффективный алгоритм инвертирования функции Fk.

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

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

Функция Эйлера (p) от натурального p есть количество чисел, меньших p и взаимно простых с n (число 1 взаимно просто с любым числом).

Генерация ключей выполняется по следующему алгоритму:

1. Выбираются два больших простых числа p, q (на сегодняшний день обычно выбирают числа, содержащие от 200 до 400 знаков)

2. вычисляется их произведение n, которое не может быть разложено на множители за разумное время. Данное произведение называется модулем

3. Вычисляется значение функции Эйлера

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

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

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

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

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

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

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

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

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

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

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

Важные моменты о симметричном и асимметричном шифровании

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

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

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

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

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

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

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

7. Наличие шифрования не является гарантом безопасности. Его всегда необходимо рассматривать в купе с другими подходами.

Послесловие

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

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

Оцените статью
Добавить комментарий