Методы криптографической защиты

Автор работы: Пользователь скрыл имя, 14 Апреля 2013 в 07:40, курсовая работа

Описание

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

Содержание

Введение 3
1 Основные задачи криптографии 4
2 Криптографические средства защиты 5
2.1 Криптосистемы 5
2.2 Принципы работы криптосистемы 6
2.3 Методология с использованием ключа 8
2.4 Симметричная (секретная) методология 11
2.5 Асимметричная (открытая) методология 12
2.6 Распространение ключей 17
3 Алгоритмы шифрования 22
3.1 Симметричные алгоритмы 22
3.2 Асимметричные алгоритмы 23
3.3 Хэш-функции 24
3.4 Механизмы аутентификации 25
3.5 Электронные подписи и временные метки 25
3.6 Стойкость шифра 26
Заключение 28
Литература 30

Работа состоит из  1 файл

Методы криптографической защиты2.docx

— 85.15 Кб (Скачать документ)

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

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

2.5 Асимметричная (открытая) методология

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

 Брюс Шнейер в книге "Прикладная криптография: протоколы, алгоритмы и исходный текст на C" приводит эти данные об эквивалентных длинах ключей в таблице 2.

 

Таблица 2 – Данные ключей

Длина симметричного ключа

Длина открытого ключа

56 бит 

384 бит

64 бита

512 бит

80 бит

768 бит

112 бит

1792 бита

128 бит

2304 бита


 

Для того чтобы избежать низкой скорости алгоритмов асимметричного шифрования, генерируется временный симметричный ключ для каждого сообщения и  только он шифруется асимметричными алгоритмами. Само сообщение шифруется  с использованием этого временного сеансового ключа и алгоритма  шифрования/расшифровки. Затем этот сеансовый ключ шифруется с помощью  открытого асимметричного ключа  получателя и асимметричного алгоритма  шифрования. После этого этот зашифрованный  сеансовый ключ вместе с зашифрованным  сообщением передается получателю. Получатель использует тот же самый асимметричный  алгоритм шифрования и свой секретный  ключ для расшифровки сеансового ключа, а полученный сеансовый ключ используется для расшифровки самого сообщения. В асимметричных криптосистемах важно, чтобы сеансовые и асимметричные ключи были сопоставимы в отношении уровня безопасности, который они обеспечивают. Если используется короткий сеансовый ключ (например, 40-битовый DES), то не имеет значения, насколько велики асимметричные ключи. Хакеры будут атаковать не их, а сеансовые ключи. Асимметричные открытые ключи уязвимы к атакам прямым перебором отчасти из-за того, что их тяжело заменить. Если атакующий узнает секретный асимметричный ключ, то будет скомпрометирован не только текущее, но и все последующие взаимодействия между отправителем и получателем.

Порядок использования систем с  асимметричными ключами:

  • Безопасно создаются и распространяются асимметричные открытые и секретные ключи. Секретный асимметричный ключ передается его владельцу. Открытый асимметричный ключ хранится в базе данных X.500 и администрируется центром выдачи сертификатов (по-английски - Certification Authority или CA). Подразумевается, что пользователи должны верить, что в такой системе производится безопасное создание, распределение и администрирование ключами. Более того, если создатель ключей и лицо или система, администрирующие их, не одно и то же, то конечный пользователь должен верить, что создатель ключей на самом деле уничтожил их копию.
  • Создается электронная подпись текста с помощью вычисления его хэш-функции. Полученное значение шифруется с использованием асимметричного секретного ключа отправителя, а затем полученная строка символов добавляется к передаваемому тексту (только отправитель может создать электронную подпись).
  • Создается секретный симметричный ключ, который будет использоваться для шифрования только этого сообщения или сеанса взаимодействия (сеансовый ключ), затем при помощи симметричного алгоритма шифрования/расшифровки и этого ключа шифруется исходный текст вместе с добавленной к нему электронной подписью - получается зашифрованный текст (шифр-текст).
  • Теперь нужно решить проблему с передачей сеансового ключа получателю сообщения.
  • Отправитель должен иметь асимметричный открытый ключ центра выдачи сертификатов (CA). Перехват незашифрованных запросов на получение этого открытого ключа является распространенной формой атаки. Может существовать целая система сертификатов, подтверждающих подлинность открытого ключа CA. Стандарт X.509 описывает ряд методов для получения пользователями открытых ключей CA, но ни один из них не может полностью защитить от подмены открытого ключа CA, что наглядно доказывает, что нет такой системы, в которой можно было бы гарантировать подлинность открытого ключа CA.
  • Отправитель запрашивает у CA асимметричный открытый ключ получателя сообщения. Этот процесс уязвим к атаке, в ходе которой атакующий вмешивается во взаимодействие между отправителем и получателем и может модифицировать трафик, передаваемый между ними. Поэтому открытый асимметричный ключ получателя "подписывается" CA. Это означает, что CA использовал свой асимметричный секретный ключ для шифрования асимметричного открытого ключа получателя. Только CA знает асимметричный секретный ключ CA, поэтому есть гарантии того, что открытый асимметричный ключ получателя получен именно от CA.
  • После получения асимметричный открытый ключ получателя расшифровывается с помощью асимметричного открытого ключа CA и алгоритма асимметричного шифрования/расшифровки. Естественно, предполагается, что CA не был скомпрометирован. Если же он оказывается скомпрометированным, то это выводит из строя всю сеть его пользователей. Поэтому можно и самому зашифровать открытые ключи других пользователей, но где уверенность в том, что они не скомпрометированы?
  • Теперь шифруется сеансовый ключ с использованием асимметричного алгоритма шифрования-расшифровки и асимметричного ключа получателя (полученного от CA и расшифрованного).
  • Зашифрованный сеансовый ключ присоединяется к зашифрованному тексту (который включает в себя также добавленную ранее электронную подпись).
  • Весь полученный пакет данных (зашифрованный текст, в который входит помимо исходного текста его электронная подпись, и зашифрованный сеансовый ключ) передается получателю. Так как зашифрованный сеансовый ключ передается по незащищенной сети, он является очевидным объектом различных атак.
  • Получатель выделяет зашифрованный сеансовый ключ из полученного пакета.
  • Теперь получателю нужно решить проблему с расшифровкой сеансового ключа.
  • Получатель должен иметь асимметричный открытый ключ центра выдачи сертификатов (CA).
  • Используя свой секретный асимметричный ключ и тот же самый асимметричный алгоритм шифрования получатель расшифровывает сеансовый ключ.
  • Получатель применяет тот же самый симметричный алгоритм шифрования-расшифровки и расшифрованный симметричный (сеансовый) ключ к зашифрованному тексту и получает исходный текст вместе с электронной подписью.
  • Получатель отделяет электронную подпись от исходного текста.
  • Получатель запрашивает у CA асимметричный открытый ключ отправителя.
  • Как только этот ключ получен, получатель расшифровывает его с помощью открытого ключа CA и соответствующего асимметричного алгоритма шифрования-расшифровки.
  • Затем расшифровывается хэш-функция текста с использованием открытого ключа отправителя и асимметричного алгоритма шифрования-расшифровки.
  • Повторно вычисляется хэш-функция полученного исходного текста.
  • Две эти хэш-функции сравниваются для проверки того, что текст не был изменен.

2.6 Распространение ключей

 

Ясно, что в обеих криптосистемах нужно решать проблему распространения ключей.

В симметричных методологиях эта проблема стоит более остро, и поэтому  в них ясно определяется, как передавать ключи между участниками взаимодействия до начала взаимодействия. Конкретный способ выполнения этого зависит  от требуемого уровня безопасности. Если не требуется высокий уровень  безопасности, то ключи можно рассылать  с помощью некоторого механизма  доставки (например, с помощью простой  почты или курьерской службы). Банки, например, используют почту для рассылки PIN-кодов. Для обеспечения более  высокого уровня безопасности более  уместна ручная доставка ключей ответственными за это людьми, возможно по частям несколькими  людьми.

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

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

Проблема с распространением ключей в асимметричных системах состоит  в следующем:

  • X.509 подразумевает, что ключи безопасно раздаются, и не описывает способ решения этой проблемы - а только указывает на существование этой проблемы. Не существует стандартов для решения этого. Для безопасности ключи должны доставляться вручную (независимо от того, симметричные они или асимметричные).
  • Нет надежного способа проверить, между какими компьютерами осуществляется взаимодействие. Есть вид атаки, при котором атакующий маскируется под CA и получает данные, передаваемые в ходе взаимодействия. Для этого атакующему достаточно перехватить запрос к центру сертификации ключей и подменить его ключи своими. Эта атака может успешно продолжаться в течение длительного времени.
  • Электронная подпись ключей центром сертификации ключей не всегда гарантирует их аутентичность, так как ключ самого CA может оказаться скомпрометированным. X.509 описывает способ электронной подписи ключей CA центрами сертификации ключей более высокого уровня и называет его "путь сертификации". X.509 рассматривает проблемы, связанные с проверкой корректности открытого ключа, предполагая, что эта проблема может быть решена только при отсутствии разрыва в цепочке доверенных мест в распределенном справочнике открытых ключей пользователей. Нет способа обойти это.
  • X.509 предполагает, что пользователь уже имеет доступ к открытому ключу CA. Как это осуществляется, в нем не определяется.
  • Компрометация центра сертификации ключей весьма реальная угроза. Компрометация CA означает. Что все пользователи этой системы будут скомпрометированы. И никто не будет знать об этом. X.509 предполагает, что все ключи, включая ключи самого CA, хранятся в безопасном месте. Внедрение системы справочников X.509 (где хранятся ключи) довольно сложно, и уязвимо к ошибкам в конфигурации. В настоящее время слишком мало людей обладают техническими знаниями, необходимыми для правильного администрирования таких систем. Более того, понятно, что на людей, занимающих такие важные должности, может быть оказано давление.
  • CA могут оказаться узким местом. Для обеспечения устойчивости к сбоям X.509 предлагает, чтобы база данных CA была реплицирована с помощью стандартных средств X.500; это значительно увеличит стоимость криптосистемы. А при маскараде под CA будет трудно определить, какая система была атакована. Более того, все данные из базы данных CA должны посылаться по каналам связи каким-то образом.
  • Система справочников X.500 сложна в установке, конфигурировании и администрировании. Доступ к этому справочнику должен предоставляться либо с помощью дополнительной службы подписки, либо организации придется самой ее организовывать. Сертификат X.509 предполагает, что каждый человек имеет уникальное имя. Выделение имен людям - задача еще одной доверенной службы - службы именования.
  • Сеансовые ключи, несмотря на то, что шифруются, все-таки передаются по незащищенным каналам связи.
  • Несмотря на все эти серьезные недостатки, пользователь должен неявно доверять асимметричной криптосистеме.

Управлением ключами называется их распределение, аутентификация и регламентация  порядка использования. Независимо от вида используемой криптосистемы  ключами надо управлять. Безопасные методы управления ключами очень  важны, так как многие атаки на криптосистемы имеют объектом атаки процедуры управления ключами, представленные в таблице 3.

 

Таблица 3 – Процедуры управления ключами

Процедура

Комментарии

Физическая раздача ключей

Курьеры и ручная выдача - вот два  распространенных примера этой процедуры. Конечно, из них двоих лучше ручная выдача. Серьезные организации имеют  инструкции, описывающие порядок  выдачи ключей. Раздача ключей может  аудироваться и протоколироваться, но это все-таки не защитит ее до конца от компрометации отдельными людьми. Используется как симметричными, так и асимметричными криптосистемами. Несмотря на заявления о том, что в асимметричных криптосистемах не возникает проблем, связанных с физической доставкой ключей, на самом деле они есть. X.509 предполагает, что создатель ключей будет передавать асимметричный секретный ключ пользователю (и/или асимметричный открытый ключ CA) физически безопасным способом, и что предприняты соответствующие меры физической безопасности, чтобы защитить создателя и проводимые им операции с данными от атак.

Выдача общего 
ключа участникам  
взаимодействия  
центром выдачи  
ключей

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

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

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

Сеть доверия

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

Метод  
Диффи-Хеллмана

Обмен секретным ключом по незащищенным каналам связи между двумя  пользователями, которые до этого не имели общего секретного ключа. Не может использоваться для шифрования или расшифровки сообщений. Основывается на сложности взятия логарифма в конечных полях. При правильном выборе достаточно больших элементов полей решить проблему расчета дискретного логарифма невозможно. Уязвим к атаке "активное вмешательство в соединение". Запатентован PKP (Public Key Partners)


 

3 Алгоритмы шифрования

 

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

3.1 Симметричные алгоритмы

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

Таблица 4 – Типы симметричных алгоритмов шифрования

Тип

Описание

DES (Data Encryption  
Standard)

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

Может работать в 4 режимах:

  • Электронная кодовая книга (ECB-Electronic Code Book ) - обычный DES, использует два различных алгоритма.
  • Цепочечный режим (CBC-Cipher Block Chaining), в котором шифрование блока данных зависит от результатов шифрования предыдущих блоков данных.
  • Обратная связь по выходу (OFB-Output Feedback), используется как генератор случайных чисел.

Обратная связь по шифратору (CFB-Cipher Feedback), используется для получения кодов аутентификации сообщений.

3-DES или  
тройной DES

64-битный блочный шифратор, использует DES 3 раза с тремя различными 56-битными  ключами. Достаточно стоек ко  всем атакам

Каскадный 3-DES

Стандартный тройной DES, к которому добавлен механизм обратной связи, такой как CBC, OFB или CFB. Очень стоек ко всем атакам.

FEAL (быстрый  
алгоритм шифрования)

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

IDEA (международный  
алгоритм шифрования)

64-битный блочный шифратор, 128-битовый  ключ, 8 проходов. Предложен недавно; хотя до сих пор не прошел полной проверки, чтобы считаться надежным, считается более лучшим, чем DES

Skipjack

Разработано АНБ в ходе проектов правительства США "Clipper" и "Capstone". До недавнего времени был секретным, но его стойкость не зависела только от того, что он был секретным. 64-битный блочный шифратор, 80-битовые ключи используются в режимах ECB, CFB, OFB или CBC, 32 прохода

RC2

64-битный блочный шифратор, ключ  переменного размера. Приблизительно в 2 раза быстрее, чем DES. Может использоваться в тех же режимах, что и DES, включая тройное шифрование. Конфиденциальный алгоритм, владельцем которого является RSA Data Security

RC4

Потоковый шифр, байт-ориентированный, с ключом переменного размера. Приблизительно в 10 раз быстрее DES. Конфиденциальный алгоритм, которым владеет RSA Data Security

RC5

Имеет размер блока 32, 64 или 128 бит, ключ с длиной от 0 до 2048 бит, от 0 до 255 проходов. Быстрый блочный шифр. Алгоритм, которым владеет RSA Data Security

CAST

64-битный блочный шифратор, ключи  длиной от 40 до 64 бит, 8 проходов. Неизвестно способов вскрыть его иначе как путем прямого перебора.

Blowfish.

64-битный блочный шифратор, ключ  переменного размера до 448 бит, 16 проходов, на каждом проходе выполняются  перестановки, зависящие от ключа,  и подстановки, зависящие от  ключа и данных. Быстрее, чем  DES. Разработан для 32-битных машин

Устройство с  
одноразовыми ключами

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

Поточные шифры

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

Информация о работе Методы криптографической защиты