Автор работы: Пользователь скрыл имя, 19 Мая 2012 в 13:03, курсовая работа
Цель курсовой работы заключается в изучении и сравнении протоколов распределения и выработки ключей, для повышения уровня знаний в этой области.
Задачи курсовой работы:
1) Проанализировать литературу по теме;
2) Рассмотреть основные параметры и схемы протоколов распределения и выработки ключей;
3) Рассмотреть достоинства, недостатки протоколов;
4) Привести имеющиеся сравнительные характеристики, выше перечисленных протоколов, между собой;
5) Сделать выводы о проделанной работе.
Введение 3
1. Общие сведения по распределению ключей 5
1.1. Управление ключами 5
1.2. Распределение ключей 5
1.3. Выбор ключа 7
1.4. Время жизни ключа 8
1.5. Разделение секрета 9
1.6. Распределение секретных ключей 10
1.7. Обозначения 11
2. Протоколы распределения ключей симметричного шифрования 13
2.1. Протокол широкоротой лягушки 13
2.2. Протокол Нидхейма-Шредера 14
2.3. Протокол Отвэй-Риса 16
2.4. Цербер 17
2.5. Сравнение протоколов 19
Вывод 19
3. Протоколы выработки ключей 21
3.1. Распределение ключей Диффи-Хеллмана 21
3.2. Использование эллиптической кривой в алгоритме Диффи-Хелмана 23
3.3. Недостаток алгоритма Диффи-Хелмана 24
3.4. Решение проблемы протокола Диффи-Хелмана 25
3.5. Протокол MQV 26
Вывод 28
Общий вывод 29
Заключение 30
Список используемых источников 31
КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. А. Н. ТУПОЛЕВА
кафедра систем информационной безопасности
Курсовая работа
по дисциплине
«Криптографическая защита информации»
на тему:
«Распределение симметричных ключей»
Выполнил:
студент гр. 4306
М. А. Кривилёв
Дата: _________
Подпись:______
Казань, 2011.
Введение 3
1. Общие сведения по распределению ключей 5
1.1. Управление ключами 5
1.2. Распределение ключей 5
1.3. Выбор ключа 7
1.4. Время жизни ключа 8
1.5. Разделение секрета 9
1.6. Распределение секретных ключей 10
1.7. Обозначения 11
2. Протоколы распределения ключей симметричного шифрования 13
2.1. Протокол широкоротой лягушки 13
2.2. Протокол Нидхейма-Шредера 14
2.3. Протокол Отвэй-Риса 16
2.4. Цербер 17
2.5. Сравнение протоколов 19
Вывод 19
3. Протоколы выработки ключей 21
3.1. Распределение ключей Диффи-Хеллмана 21
3.2. Использование эллиптической кривой в алгоритме Диффи-Хелмана 23
3.3. Недостаток алгоритма Диффи-Хелмана 24
3.4. Решение проблемы протокола Диффи-Хелмана 25
3.5. Протокол MQV 26
Вывод 28
Общий вывод 29
Заключение 30
Список используемых источников 31
В недавно начавшемся XXI веке системы телекоммуникации и обработки цифровой информации играют все более и более значительную роль в различных видах деятельности человека. Они уже сейчас исключительно важны для нормального существования целых государств. В указанных условиях проблема защиты телекоммуникационных систем и систем обработки информации от внешних воздействий, имеющих целью внести искажения в их работу, приобретает не просто важное, а критическое значение - от нее зависит безопасность и само выживание людей.
Одним из ключевых инструментов защиты информационных систем является криптография. Ее сущность заключается в использовании преобразований информации, доступных законным сторонам информационного процесса и недоступных всем остальным. В отличие от многих других подходов стойкость криптографических методов защиты может быть надежно обоснована, а в отдельных случаях и формально доказана теоретико-информационными методами. В настоящее время в криптографии принято выделять два крупных направления: классическую (одноключевую, симметричную) и современную (двухключевую, асимметричную) криптографию. Первая возникла в глубокой древности, ее исходной целью было обеспечение секретности переписки. В рамках данного подхода все законные участники процесса идентичны по своим возможностям - любые действия, доступные одному из них, доступны и остальным, поскольку все они разделяют единственный секрет. Очевидно, использование этих методов защиты предполагает взаимное доверие сторон. Классическая криптография решает весьма узкий круг задач, среди которых обеспечение секретности данных при их хранении или передаче по каналам связи и защита от навязывания ложных данных.
Первое достигается путем шифрования данных, а второе - за счет добавления к данным имитовставки. Использование методов классической криптографии порождает вторичные проблемы защиты, такие как потребность в защищенном канале связи для передачи секретных ключей корреспондентам. Узость круга решаемых задач и потребность в надежном канале распределения ключей, безусловно, являются ограничениями классического подхода в криптографии. Но он также обладает и неоспоримыми преимуществами: высоким быстродействием и высокой стойкостью при относительно небольшом размере ключей. По этим показателям классическая криптография на порядки превосходит современную и по указанной причине продолжает широко использоваться как самостоятельно, так и в составе гибридных схем защиты. Второе направление - так называемая современная криптография - возникла уже в наше время, в середине семидесятых годов прошлого века. Она ориентирована на решение иных, более современных задач, перед которыми классическая криптография оказалась бессильной. Протоколы асимметричной криптографии незаменимы в ситуациях отсутствия взаимного доверия между сторонами. Каноническими, исходными задачами "современной" криптографии являются: двухключевое шифрование, распределение секретных ключей по несекретным каналам связи и подпись цифровых документов (хотя в рамках данного подхода решается гораздо более широкий круг задач).
Цель курсовой работы заключается в изучении и сравнении протоколов распределения и выработки ключей, для повышения уровня знаний в этой области.
Задачи курсовой работы:
1) Проанализировать литературу по теме;
2) Рассмотреть основные параметры и схемы протоколов распределения и выработки ключей;
3) Рассмотреть достоинства, недостатки протоколов;
4) Привести имеющиеся сравнительные характеристики, выше перечисленных протоколов, между собой;
5) Сделать выводы о проделанной работе.
Для успешного использования симметричных криптосистем подобных DES или Rijndael партнерам необходимо как-то договориться о секретном ключе, т.е. найти путь управления ключами. В данной работе рассмотрены некоторые способы решения этой задачи, в частности здесь будет рассказано
- о распределении ключей,
- о выборе ключа,
- о времени жизни ключа,
- о разделении секрета.
Но сначала необходимо разделить все многообразие симметричных ключей на отдельные группы и понять, чем они друг от друга отличаются.
Статичный (долговременный) ключ. Так называют ключ, который используется в течение большого периода времени. Точное значение слова «большого» зависит от приложений, где ключ используется, и период, о котором идет речь, может варьироваться от нескольких часов до нескольких лет. Компрометация (раскрытие) статичного ключа обычно считается главной проблемой с потенциально катастрофическими последствиями.
Эфемерный или сеансовый (кратковременный) ключ применяется лишь малое время, от нескольких секунд до одного дня. Его обычно берут на вооружение для обеспечения конфиденциальности в одном сеансе связи. Раскрытие сеансового ключа может повлечь за собой лишь нарушение секретности сеанса и ни коим образом не должно влиять на криптостойкость всей системы [1].
Распределение ключей — одна из фундаментальных задач криптографии. Существует несколько ее решений, подходящее из которых выбирается в зависимости от ситуации.
Физическое распределение. С помощью доверенных курьеров или вооруженной охраны ключи могут рассылаться традиционным физическим путем. До семидесятых годов двадцатого века это действительно был единственный безопасный путь распределения ключей при установке системы. Ему сопутствовал ряд трудностей, в особенности при расширении, масштабировании (модульном наращивании системы в рамках унифицированной архитектуры) криптосистемы, но основной недостаток, связанный с таким способом распределения, состоит в том, что криптостойкость системы зависит не столько от ключа, сколько от курьера. Если подкупить, похитить или просто убить курьера, то система будет скомпрометирована. Распределение с помощью протоколов с секретным ключом. Если долговременные секретные ключи распределены между пользователями и неким центром, который обычно называют центром доверия, то его можно использовать для генерирования ключей и обмена между любыми двумя пользователями всякий раз, когда в этом возникает необходимость. Существуют протоколы, предназначенные для этой цели. Обычно они достаточно эффективны, но не лишены и недостатков. В частности, этот способ распределения предусматривает, что как оба пользователя, так и центр работают в режиме онлайн. Кроме того, статичные ключи при этом должны распределяться физическим путем.
Распределение с помощью протоколов с открытым ключом. Используя криптосистемы с открытым ключом, партнеры, не доверяющие посредникам и лишенные возможности встретиться, могут договориться об общем секретном ключе в режиме онлайн в соответствии с протоколом об обмене ключей. Это наиболее распространенное приложение техники шифрования с открытым ключом. Вместо того, чтобы шифровать большой объем данных непосредственно с помощью открытого ключа, стороны предварительно согласовывают секретный ключ. Затем для шифрования фактической информации применяется симметричный шифр с согласованным ключом.
Чтобы понять масштабность проблемы, следует учитывать, что при обслуживании n пользователей, обменивающихся закрытой информацией друг с другом, необходимо (n*(n-1))/2 разных секретных: ключей. С ростом n возникает проблема управления огромным числом ключей. Например, для небольшого университета с 10000 студентов нужно около пятидесяти миллионов отдельных секретных ключей. С большим количеством уже существующих ключей связано много проблем. Например, к чему приведет компрометация ключа? Другими словами, кто-то посторонний нашел ключ. Что следует предпринять в связи с этим? Итак, большое число ключей порождает сложную проблему управления.
Одно из ее решений заключается в том, что за каждым пользователем закрепляется единственный ключ, используя который он может связываться с центром доверия. В этом случае система с n пользователями требует только n ключей. Когда двое пользователей хотят обменяться секретными сведениями, они генерируют ключ, который будет использован только для передачи этого сообщения. Его называют сеансовым ключом. Сеансовый ключ генерируется с участием центра доверия при помощи одного из протоколов [1].
Секретный ключ должен быть случайным в полном смысле этого слова, поскольку иначе, нападающий может получить информацию о ключе, зная вероятностные распределения ключей и сообщений. Все ключи должны быть равновероятны и производиться с помощью настоящего генератора случайных чисел. Однако источник абсолютно случайных чисел очень трудно создать. Стоит заметить, что хотя по-настоящему случайный ключ очень хорош для применения, его крайне трудно удержать в человеческой памяти. Поэтому многие системы используют пароль или подходящие фразы для генерирования секретного ключа. Но теперь лобовая атака даже более опасна. Как видно из таблицы 1, пароль наподобие PIN-кода, т. е. простой номер, лежащий в пределах от О до 9999, легко установить с помощью лобовой атаки. Даже при использовании пароля из 8 символов число возможностей не дотягивает до 280, чего хотелось бы для обеспечения безопасности.
Таблица 1. Зависимость числа ключей от длины и типа используемых знаков
Размер ключа | Цифры | Буквы |
4 | 410 ≈ 213 | 107 ≈ 223 |
8 | 108 ≈ 226 | 1015 ≈ 250 |
Можно было бы использовать длинные фразы, состоящие из 20-30 знаков, однако это тоже не выход, поскольку, последовательность букв в естественном языке далеко не случайна.
Короткие пароли, основывающиеся на именах или словах — общая проблема большинства крупных организаций. Многие из них требуют соблюдения, чтобы в пароле присутствовали
- по крайней мере, одна прописная буква,
- по крайней мере, одна заглавная буква,
- по крайней мере, одна цифра,
- по крайней мере, один знак, отличный от цифры и буквы,
- длина пароля — не менее восьми знаков.
Но перечисленные правила, исключая атаку по словарю, все еще не обеспечивают максимально возможное число паролей, которое достигается при действительно случайном выборе восьми знаков [1].
Один из важных моментов, который следует принимать во внимание при генерировании и хранении ключей, — это продолжительность их жизни. Общее правило состоит в том, что чем дольше используемый ключ находится в обращении, тем легче нападающему его вскрыть, и тем большую ценность он для него представляет. Кроме того, важно правильно уничтожить ключ по истечении его жизни. Перекладывание проблемы на плечи операционной системы командой del или rem не гарантирует того, что нападающий не сможет восстановить информацию, исследуя жесткий диск. Обычно удаление файла не стирает его содержания, а всего лишь сообщает системе о том, что ячейки памяти, отведенные под него, теперь свободны для записи новых данных [1].
Как уже говорилось, главная проблема — безопасное управление распределением секретных ключей. Даже при использовании центра доверия необходим какой-нибудь способ получения ключа kаждому его пользователю.
Один из возможных путей решения состоит в расщеплении ключа (более формально — разделении секрета) при котором ключ делится на несколько частей.
Каждая его часть передается по своему каналу. Красота этого решения бросается в глаза: для определения ключа нападающий должен суметь подключиться ко всем каналам сразу. С другой стороны, если противнику удалось проникнуть в один из каналов, передающих части ключа, он может воспрепятствовать законному восстановлению ключа.
Более сложный метод, лишенный последнего недостатка, состоит в использовании одной из форм схемы порогового разделения секрета. Ключ, как и прежде, разделяется на несколько частей, например, W. Легальный пользователь сможет восстановить ключ полностью, получив некоторое количество этих частей, превышающее определенное пороговое значение Т. Однако противник, выведав только (Т-1) часть, не сможет вскрыть ключ. Эта схема на данный момент не часто применяется на практике.
Схема Шамира разделения секрета является типичным примером пороговой схемы. Предположим, что ключ k разделяется на W частей таким образом, что по Т из них, собранных вместе, ключ однозначно восстанавливается. Схема с такими значениями называется (Т, W)-пороговой схемой.
Берется простое число Р, большее чем W + 1. Ключ k — элемент поля Fp. Доверенное лицо выбирает значения Xi принадлежащее Fp для i = 1, . . . , W по одному для каждой части ключа. Каждый участник разделения секрета получает свое значение Хi, которое будет известно и всем остальным участникам. Для разделения ключа k между пользователями ответственное лицо выбирает Т-1 элементов поля a1, . . . , aT-1 и строит многочлен:
После этого вычисляются его значения
yi = F{Xi) при 1 ≤ i ≤ W
и раздаются участникам разделения ключа (они держатся в секрете). Чтобы восстановить ключ, пользователи применяют процедуру интерполяции многочлена. Предположим, что L хранителей секрета собрались вместе и обменялись значениями yi(i = 1, . . . , L). В этом случае они могут попытаться решить систему уравнений:
Если L ≥ T, то система будет иметь единственное решение, которое позволит восстановить F(X), а значит и ключ. Если же L < Т то система получится неопределенной и никак не поможет восстановить нужный многочлен. Таким образом, никакой информации о ключе к извлечь не удастся [1].
Напомним, что n пользователям, желающим обмениваться закрытой информацией друг с другом, необходимо (n*(n-1))/2 разных долговременных криптографических пар. Как было отмечено ранее, это порождает проблемы управления огромным числом ключей и их распределения. Уже говорилось, что лучше использовать сеансовые ключи и несколько статичных, но не объяснилось, как развертывается сеансовый ключ.
Для решения этой задачи существуют протоколы, в которых используется криптография с симметричным ключом для распределения сеансовых ключей. Некоторые из них будут представлены ниже [1].
При описании протоколов потребуются некоторые стандартные обозначения.
Участники/администратор: А, В, S. В обмене закрытой информацией участвуют двое: А — Алиса и В — Боб. Кроме того, предполагается, что они прибегают к услугам доверенного лица (ДЛ), которое обозначается буквой S.
Долговременные секретные ключи: kab, kbs, kas . Символ kab закреплен за ключом, известным только А и В.
Числовые вставки: nа, nb. Это случайные одноразовые числа, уникальные для каждого сообщения протокола. Число na обозначает числовую вставку, произведенную участником А. Заметим, что эти числа могут обозначаться и по-другому.
Временная метка: ta , tb , ts . Величина ta — временная метка, созданная участником А. При использовании временной метки предполагается, что участники пытаются соблюдать синхронизацию часов, используя какой-то другой протокол.
Символьная запись
А → В: М, А, В, {na, m, a, b}kas
означает, что А посылает участнику В сообщение, состоящее из
- числовой вставки М,
- имени посылающего сообщение А,
- имени адресата Б,
- текста послания {пд, т , а, Ь}, зашифрованного с помощью ключа kas используемого А совместно с S. Таким образом, получатель B не в состоянии прочесть зашифрованную часть этого письма.
Перед описанием первого из протоколов следует определить его цели. Предположим, что заинтересованные стороны А и В пользуются ключами kas и kbs для связи с центром доверия S, а в результате работы протокола они хотели бы договориться о ключе kab и получить его в свое распоряжение для обмена закрытой информацией друг с другом.
Кроме этого, нам необходимо предусмотреть возможные атаки на протокол. Как всегда, следует учитывать самую плохую ситуацию, при которой нападающий может перехватывать любое сообщение, переданное по сети, приостанавливать, вносить свою правку или переадресовывать его. Также следует считать, что атакующий способен передать по сети и свое собственное сообщение. Противника, наделенного такими большими возможностями, принято отождествлять с самой сетью.
Сеансовый ключ, о котором договариваются А и В должен быть новым, т.е. только что созданным, никогда не применявшимся ни одной из договаривающихся сторон. Новизна ключа помогает переиграть противника, поскольку получив сообщение, зашифрованное старым ключом, легко понять, что оно подложное. Новизна ключа также подтверждает, что сторона, с которой ведется закрытая переписка, все еще дееспособна.
Данная группа протоколов служит для распределения симметричных ключей. Здесь описаны протоколы, в которых сами ключи передаются по незащищенным каналам.
Первый рассматриваемый протокол— это протокол широкоротой лягушки, предложенный Барроузом. Протокол передает ключ kab от А к В через посредника S, используя лишь 2 сообщения, но имеет множество недостатков. В частности, для его реализации необходима синхронизация часов, что создает дополнительные проблемы. В нем предполагается, что А выбирает сеансовый ключ kab и пересылает его пользователю В. Это означает, что пользователь B верит в компетентность A, в его способность создать стойкий ключ и хранить его в секрете. Такое сильное требование служит основной причиной слабого применения на практике протокола широкоротой лягушки. С другой стороны, это довольно простой и хороший пример, на котором можно продемонстрировать формальный анализ протоколов.
Протокол состоит из обмена двумя сообщениями (рис. 1):
А → S: А,{ta , b, kab}kas
S → B:{ts , a, kbs}kbs
Рисунок 1. Протокол широкоротой лягушки
Получив первое послание, центр доверия S расшифровывает последнюю его часть и проверяет, что временная метка близка к текущему моменту времени. Расшифрованное сообщение говорит S о том, что тому следует переслать ключ kab пользователю В. Если временная метка соответствует недавнему времени, то S шифрует требуемый ключ вместе со своей временной меткой и пересылает полученный шифротекст пользователю В. При получении сообщения от S участник переписки В расшифровывает его и проверяет свежесть временной метки. После этого он может прочесть ключ kab и имя человека A, который хочет переслать ему зашифрованную информацию.
Корректная временная метка означает, что сеансовый ключ был создан недавно. Однако пользователь А мог сгенерировать этот ключ годы назад и хранить его на своем жестком диске, куда злоумышленник имел возможность забраться несколько раз и снять копию ключа.
Уже говорилось, что протокол широкоротой лягушки корректно работает только при синхронизированных часах всех его участников. Однако это не создает больших сложностей, поскольку доверенный центр S проверяет или генерирует все временные метки, используемые в протоколе. Поэтому остальные стороны должны лишь записать разницу в показаниях своих часов и часов центра. Тем самым протокол будет работать некорректно лишь тогда, когда какие-то из трех часов идут медленнее или быстрее остальных, или же показания часов были изменены принудительно.
Этот протокол действительно очень прост, что обусловливается синхронизацией часов и предположением о том, что участнику А можно доверить генерирование сеансового ключа [4].
2.2. Протокол Нидхейма-Шредера
Рассмотрим более сложные протоколы, начав с одного из самых знаменитых, а именно, с протокола Нидхейма-Шредера. Этот протокол был разработан в 1978 году и является самым изучаемым на сегодняшний день. Он получил известность благодаря тому, что даже самый простой протокол может долгое время скрывать свои пробелы в обеспечении безопасности. Обмен письмами идет по следующей схеме (рис. 2):
Рисунок 2. Протокол Нидхейма-Шредера
Далее рассмотрено каждое из сообщений протокола подробно и объясняется их предназначение.
- В первом пользователь А сообщает центру доверия S, что он намерен получить ключ для переписки с В. Следует обратить внимание на то, что к сообщению прикреплена уникальная числовая вставка, созданная А.
- S генерирует ключ kab и посылает его А вторым письмом. В него включается числовая вставка na по которой клиент А узнает, что полученное сообщение было послано в ответ на его запрос. Сеансовый ключ зашифровывается с помощью kbs и прикрепляется к этому сообщению.
- В третьем письме сеансовый ключ пересылается пользователю В.
- Участник В должен проверить, что отправителем этого послания действительно является А, т. е. он должен удостовериться, что А все еще действует, и в четвертом сообщении протокола он пересылает свою числовую вставку участнику А в зашифрованном виде.
- В последнем сообщении, чтобы убедить партнера В в своей дееспособности, инициатор переговоров шифрует простое выражение, зависящее от nb и отсылает его В.
Основной недостаток протокола Нидхейма-Шредера заключается в том, что в результате его работы у пользователя В нет оснований считать, что полученный ключ является новым, — факт, который был замечен только спустя некоторое время после опубликования протокола. Противник, найдя сообщения и ключ предыдущих сеансов, может использовать старые письма вместо последних трех сообщений, в которых упоминается В. Таким образом нападающий может обмануть S, вынуждая его принять свой ключ, в то время, как В предполагает, что ведет переговоры с А.
Заметим, что А и В принимают секретный сеансовый ключ, созданный центром доверия, в связи с чем ни у одной из сторон нет необходимости полагаться на другую в выборе хорошего ключа, поскольку вся ответственность здесь ложится на плечи S [6].
Протокол Отвэй-Риса практически не используется начиная с 1987 года, но он важен с исторической точки зрения. Аналогично протоколу Нидхейма-Шредера, в нем не требуют синхронизации часов, но и он не лишен недостатков.
Как и ранее, два пользователя пытаются достигнуть договоренности о ключе через посредничество центра доверия S. Здесь участвуют числовые вставки na и nb свидетельствуя о свежести всех шифрованных компонентах сообщений. Кроме того, числовая вставка М связывает сообщения одного сеанса между собой. Протокол Отвэй-Риса короче протокола Нидхейма-Шредера, поскольку он состоит только из четырех сообщений. Однако эти сообщения выглядят совсем по-другому. Как и прежде, центр доверия генерирует ключ kab для двух пользователей.
Рисунок 3. Протокол Отвэй-Pиca
Протокол Отвэй-Риса состоит из следующих этапов (рис. 3):
Поскольку протокол не использует ключ kab для шифрования сообщений, ни одна из сторон не представляет, известен ли этот ключ другому участнику. Подчеркивая эту особенность, говорят, что протокол Отвэй-Риса не содержит подтверждения ключа. Следующее знают договаривающиеся стороны. А понимает, что В послал сообщение, содержащее числовую вставку na в новизне которой пользователь А уверен, поскольку именно он был ее создателем. Следовательно, свое письмо В тоже должен был послать недавно. С другой стороны, сервер уведомляет участника В о числовой вставке, включенной в сообщение клиентом A, но у В нет никаких оснований полагать, что полученное им послание не было повторением старого сообщения [7].
Последним алгоритмом данной группы будет «Цербер», система аутентификации, основанная на симметричном шифровании с помощью центра аутентификации. В его основу легли идеи протокола Нидхейма-Шредера. Цербер разработан в Массачуссетском технологическом институте (MIT) в 1987 г. как часть проекта «Афина». Модифицированная версия этого протокола используется в операционной системе Windows 2000.
Предполагается, что компьютерная сеть состоит из клиентов и сервера, причем клиентами могут быть пользователи, программы или специальные службы. Цербер хранит центральную базу данных, включающую как клиентов, так и их секретные ключи. Таким образом, если в систему входит n клиентов, размер пространства ключей должен иметь порядок O(n). Цель Цербера состоит в идентификации клиентов и генерировании для них сеансовых ключей.
Кроме того, Цербер может служить системой предоставления доступа к различного вида услугам и ресурсам. Такое разделение отражает обычное положение дел в реальных фирмах. Действительно, персонал одного отдела, например, устанавливает личность, в то время как другой отдел проверяет уровень доступа к ресурсам компании. Такое же разделение функций присутствует и в системе Цербер, где имеется центр идентификации и сервер генерирования сертификатов (TGS — ticket generation server), который выдает сертификаты (разрешения) на доступ к ресурсам: файлам, принтерам, и т. д.
Предположим, клиент А хочет воспользоваться ресурсами клиента В. Тогда он заходит на сервер аутентификации, используя свой пароль. Сервер выдает ему сертификат, зашифрованный с помощью этого пароля. Сертификат, в частности, содержит сеансовый ключ kas. Клиент А применяет ключ kas для получения следующего сертификата, разрешающего доступ к ресурсам клиента В. Последний сертификат состоит из ключа kab времени его жизни l и временной метки ts . Выданный сертификат используется для «удостоверения личности» А в последующем обращении к В. Обмен информацией в системе Цербер представлен ниже (рис. 4):
Рисунок 4. Цербер
- В первом обращении клиент А сообщает S, что он хотел бы связаться с В.
- Если S разрешает эту связь, то создает сертификат {ts, l, kab, a} зашифрованный ключом kbs и отсылает его А для передачи В. Пользователь А получает копию этого ключа в той форме, которую он может прочесть.
- Клиент A желая проверить действенность сертификата и свою возможность воспользоваться ресурсами S, посылает зашифрованную временную метку ta участнику В.
- Клиент В отсылает назад зашифрованную величину ta + 1, проверив, что временная метка является свежей, показывая тем самым, что он знает сеансовый ключ и готов к связи.
В этом протоколе устранены недостатки, присущие протоколу Нидхейма - Шредера, но за счет обязательной синхронизации часов [5].
В нижеследующей таблице указаны основные различия между протоколами
Таблица 2. Различие в протоколах распределения симметричных ключей
Название протокола | Год опубликования | Участие доверенного центра | Количество операций | Синхронизация часов |
Протокол широкоротой лягушки | - | да | 2 | да |
Протокол Нидхейма-Шредера | 1978 | да | 5 | нет |
Протокол Отвэй-Риса | 1987 | да | 4 | нет |
Цербер | 1987 | да | 4 | да |
Из таблицы видно, что все протоколы данной группы основаны на взаимодействии с доверенным центром, что подразумевает необходимость защиты данного центра от всевозможных атак. Самым быстрым является протокол широкоротой лягушки, и так же он является самым не эффективным. Остальные протоколы примерно равны в скорости, но каждый из них имеет свои недостатки.
Самым стойким протоколом можно назвать «Цербер», но тем нее менее на сегодняшний день он совершенно не подходит для передачи секретных ключей.
Данная группа алгоритмов была создана в 70-е – 80-е годы двадцатого столетия. Естественно в настоящее время, когда разработано множество более совершенных алгоритмов шифрования, в том числе и асимметричного, когда компьютерные технологии возросли на столько, что перехват любой информации в сети считается не настолько сложной задачей, то сохранение ключа для шифрования стало первоочередным мероприятием во всей системе криптозащиты. Подобные алгоритмы не способны удерживать требуемый уровень защиты. Именно поэтому были разработаны более изящные алгоритмы распределения ключей по открытому каналу. О них речь пойдет далее.
Данный вид протоколов служит не для распределения ключей как таковых, а выработке общего ключа, как у отправителя, так и у получателя. Таким образом сам ключ по открытому каналу не передается, а передаются лишь некоторые компоненты, позволяющие этот ключ создать.
Основное препятствие к быстрому шифрованию большого количества данных с использованием блочного или поточного шифра, — это сложная проблема распределения ключей. Уже были описаны некоторые методы ее решения: с помощью протоколов, базирующихся на симметричном шифровании, при которых ключ передается через доверенное лицо. Однако все эти методы не лишены недостатков. Например, протоколы с симметричным ключом слишком сложны для анализа и требуют постоянно работающих долговременных ключей для обмена закрытой информацией между пользователями и центром доверия.
Криптосистема обладает прогрессивной секретностью, если компрометация долгосрочного секретного ключа в какой-то момент времени не приводит к вскрытию тайны прошлой переписки, осуществлявшейся с использованием этого ключа. Распределение ключей посредством систем с открытым ключом не обладает прогрессивной секретностью.
Кроме того, при передаче ключей подразумевается, что получатель доверяет отправителю в его способности генерировать хороший сеансовый ключ. Иногда у получателя может возникнуть желание внести свои собственные случайные изменения в сеансовый ключ. Однако это можно сделать только если обе переписывающиеся стороны находятся на связи в один и тот же момент времени. Передавать же ключ, вообще говоря, удобнее, когда в сети находится только посылающий информацию, например, с помощью электронной почты.
Проблема распределения ключей была решена в основополагающей работе Диффи и Хеллмана, где разработана схема шифрования с открытым ключом. Их протокол распределения ключей, названный протоколом Диффи - Хеллмана обмена ключей, позволяет двум сторонам достигнуть соглашения о секретном ключе по открытому каналу связи без предварительной личной встречи. Его стойкость основывается на трудноразрешимой проблеме дискретного логарифмирования в конечной абелевой группе А.
В своей работе авторы предлагали использовать группу А — Fp но на сегодняшний день многие эффективные версии этого протокола берут за основу группу эллиптической кривой. Такие версии обозначают аббревиатурой EC-DH, возникшей от сокращений английских терминов: Elliptic Curve и Diffie-Hellman. Основные сообщения в протоколе Диффи - Хеллмана представлены следующей диаграммой:
Рисунок 5. Диаграмма распределения ключей Диффи-Хелмана
Алгоритм Диффи-Хелмана использует функцию дискретного возведения в степень.
Каждая из сторон обладает своим кратковременным секретным ключом а и b соответственно, с помощью которых они могут договориться об общем сеансовом ключе:
- Алиса может вычислить k =поскольку она знает а и посланное Бобом сообщение
- Боб тоже может определить k =поскольку ему известно b, аон узнает от Алисы.
Атакующая Ева может перехватить сообщенияии попытаться восстановить секретный ключ, равный к =что является в точности задачей Диффи - Хеллмана. Следовательно, криптостойкость этого протокола основывается не на дискретном логарифмировании, а на сложности решения задачи Диффи - Хеллмана. Напомним, что, возможно, задача Диффи-Хеллмана более легкая, чем дискретное логарифмирование, хотя в это с трудом верится, когда речь идет о группах, традиционно используемых в реальных протоколах.
Следует обратить внимание на то, что протокол Диффи - Хеллмана может нормально работать и в режиме онлайн (когда обе стороны вносят свои поправки в вырабатываемый ключ), и в режиме оффлайн (когда один из партнеров использует долговременный ключ вида Ga вместо кратковременного). Значит, с помощью протокола Диффи - Хеллмана можно как договариваться о ключах, так и менять их.
Пример. Для практических целей выбирают Fp с Р ≈ 21024, но в качестве параметров будет взято.
Р = 2147483659 и G = 2.
На диаграмме изображен возможный обмен сообщениями в протоколе Диффи - Хеллмана:
Рисунок 6. Диаграмма распределения ключей в отдельном примере
Общий ключ вычисляется по формулам:
Ab = 428647416654323 (mod P) = 1333327162, Ba = 45090485612345 (mod P) = 1333327162. Обратите внимание на то, что в протоколе передаются элементы выбранной абелевой группы. Следовательно, при использовании Fp затраты на передачи составят около 1024 бит в каждом направлении, поскольку Р ≈ 21024 [1,9,10].
Если используется группа эллиптической кривой E(FQ) можно брать Q ≈ 2160 и снизить затраты на передачу сообщений до 160 бит на сообщение. Кроме того, возведение в степень на эллиптической кривой осуществляется более эффективно, чем в числовом поле.
Для примера протокола EC-DH возьмем эллиптическую кривую, задаваемую уравнением
Е :=+ X – 3 над полем F199
Пусть элемент G имеет координаты (1,76). Тогда возможные сообщения протокола имеют вид:
Рисунок 7. Диаграмма распределения ключей с использованием эллиптической кривой
Общим ключом служит Х-координата точки, вычисляемой следующим образом:
[b]А = [86](2,150) = (156,75), [а]В = [23](123,187) = (156,75).
Общий ключ здесь — 156. Кроме того, вместо полной точки кривой можно передавать сжатую точку, что существенным образом скажется на времени передачи [2].
Итак, задача распределения ключей кажется решенной. Однако остается важная проблема: неизвестность с кем А и B договариваются о сеансовом ключе? У Алисы нет оснований для уверенности, что она переписывается именно с Бобом. Это может привести к следующей атаке, которая условно называется «человек посередине»:
Рисунок 8. Реализация атаки «Человек посередине»
При этом:
- Алиса договаривается о ключе с Евой, думая, что переписывается с Бобом;
- Боб ведет переговоры о ключе с Евой, считая, что его корреспондент — Алиса;
- Ева может изучать сообщения, т.к. они проходят через нее как через коммутатор. Поскольку она не вносит изменений в открытый текст, ее действия не могут быть обнаружены.
Итак, можно сделать вывод, что самого по себе протокола Диффи - Хеллмана не достаточно для обеспечения секретности [1,8].
Самый логичный и простой ответ: нужна взаимная аутентификация. И тут правильнее всего использовать ЭЦП.
Если у Боба имеется открытый ключ Алисы, и он уверен на сто процентов, что это действительно ключ Алисы, то тогда для защиты от атаки «человек посередине» Алисе достаточно подписать своим закрытым ключом число на шаге передачи параметров при распределении ключа. Теперь злоумышленник может сколько угодно пытаться выдать себя за Алису, но подделать ее подпись он не сможет.
Казалось бы решение найдено, протокол доработан, уязвимость устранена. Но в данном случае в роли такового выступает чрезмерное увеличение размера сообщений за счет добавления подписи. Наглядно этот эффект демонстрирует следующая таблица:
Таблица 3. Размер сообщения с использованием ЭЦП
Алгоритмы | Размер сообщения | Размер подписи | Общий размер |
Диффи-Хеллман + DSA-подпись | 1024 | 320 | 1344 |
Диффи-Хеллман + RSA-подпись | 1024 | 1024 | 2048 |
Диффи-Хеллман(на эллиптических кривых) + RSA-подпись | 160 | 1024 | 1184 |
Диффи-Хеллман(на эллиптических кривых) + DSA-подпись(на эллиптических кривых) | 160 | 320 | 480 |
Как видно из этой таблицы размер сообщений увеличивается в разы. Этот факт имеет негативное последствие и является основным недостатком данного метода. Другим недостатком является то, что необходимо постоянно подписывать все сообщения [1,8].
Для уменьшения объема сообщения Менезис, Кью и Ванстоун разработали протокол, названный протоколом MQV. Он основывается на задаче дискретного логарифмирования в группе А, порожденной элементом G. Его можно использовать как в конечном поле, так и на эллиптических кривых для обмена аутентифицированным ключом (таблица 4).
Таблица 4. Размер сообщений с использованием протокола MQV
Протокол | Размер сообщения |
MQV | 1024 |
MQV на эллиптической кривой | 160 |
Таким образом, MQV-протокол дает значительную экономию в размере передаваемых данных.
Протокол работает по следующей схеме:
Алиса и Боб имеют каждый свою ключевую пару, состоящие из открытых и закрытых ключей: и . Разумеется, Бобу известен открытый ключ Алисы, а той в свою очередь известен открытый ключ Боба.
Далее, Алиса и Боб генерируют сеансовую пару ключей: и .
Затем происходит обмен как в классическом протоколе Диффи-Хеллмана:
- Алиса отправляет Бобу:
- Боб отправляет Алисе:
- Теперь Алиса знает: A, B, C, D, a, .
- А Бобу известны: A, B, C, D, b, .
Чтобы получить общий ключ k они должны проделать следующие операции.
Алиса:
Выбирает число l, равное размеру сообщения в битах деленному на 2. Так если используется EC-MQV и длина сообщения равна 160 бит, то l=80.
1. Задает i = C
2. Находит
3. Задает j = D
4. Вычисляет
5. Находит
6. Вычисляет
Боб проделывает те же действия, но со своими закрытыми ключами:
1. Задает I = D
2. Находит
3. Задает j = C
4. Вычисляет
5. Находит
6. Вычисляет
Получившиеся в результате вычислений числа и есть общий секретный ключ. Доказательство:
Следует внимание, что в преобразованиях используются секретные ключи как Алисы, так и Боба. Т.е. любой пользователь протокола может быть уверен, что кроме того человека, с которым он хочет установить соединение, получить общий ключ не удастся никому.
Несмотря на кажущуюся сложность, в скорости протокол MQV ничего не теряет по сравнению со схемой использующей ЭЦП, ведь и там и там используется одна и та же операция возведения в степень по модулю простого числа. Выгода же от использования протокола заключается в следующем. Это, во-первых, устойчивость к атаке «человек посередине», во-вторых, небольшой размер сообщений, а, в-третьих, удобная реализация протокола, избавляющая пользователя от необходимости подписывать каждое отправляемое сообщение [8].
Данная группа протоколов служит для выработки ключей. Протокол Диффи-Хелмана является актуальным и по сей день но имеет свои недостатки – это неустойчивость к атаке «человек посередине». Данная проблема может решаться двумя путями: либо использованием ЭЦП, либо использованием расширенной версией протокола Диффи-Хелмана – MQV.
Развитие криптографии не стоит на месте. Из проведённого исследования видно, что хранение ключей и обмен ключами шифрования является важнейшей задачей современной криптографии. На данный момент основой является асимметричное шифрование, но тем нее менее симметричные шифры более разнообразны и являются более стойкими. Следовательно можно сделать вывод, что перспективным развитием шифрования является использование симметричных алгоритмов в купе с защищенным протоколом распределения или выработки ключей. На сегодняшний день самыми стойкими являются протокол Диффи-Хелмана с использованием электронно-цифровой подписи и протокол MQV.
В работе были рассмотрены алгоритмы распределения ключей: «Широкоротой лягушки», «Нидхейма-Шредера» и «Отвей-Риса» а так же протоколы распределения ключей «Диффи-Хелмана» и «MQV».
Данные алгоритмы и протоколы были рассмотрены в виду наличия большего количества информации них по сравнению с остальными. Также было произведено сравнение протоколов и алгоритмов, перечисленных выше.
1. Н. Смарт «Крипротгафия», Техносфера, 2005;
2. А.М. Миронов «Криптографические протоколы», учебное пособие, 2000;
3. Болотов А.А., Гашков С.Б., Фролов А.Б. Элементарное введение в эллиптическую криптографию: Протоколы криптографии на эллиптических кривых, КомКнига, 2006;
4. http://masteroid.ru/content/
5. http://masteroid.ru/content/
6. http://masteroid.ru/content/vi
7. http://masteroid.ru/content/
8. http://habrahabr.ru/blogs/cryp
9. http://book.itep.ru/6/difi_646
10. http://web.ru/db/msg.html?mid=
31