Скачиваний:
101
Добавлен:
18.10.2019
Размер:
14.08 Mб
Скачать

J. Базовые криптографические протоколы

9

объединившей лучшие достижения донаучной, симметричной и асимметричной криптографии, появляется доказательная, или ре­ дукционистская, или, как часто называют ее за рубежом, современ­ ная криптография. Все эти названия являются соответственно пере­ водами английских терминов «provable sесшitу», «теоцспогпвг», «modem сгурtоgгарhу».

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

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

ного назначения.

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

отметить методологическую разницу в подходе к решению крипто­ графических задач.

В классической криптографии любая задача в самом общем виде

решается следующим порядком:

1) выдвигается криптографическая проблема (задача), требую­

щая решения;

2)криптографами отыскивается ее решение;

3)криптоаналитики ищут атаку на предложенное решение - под­

вергают алгоритм криптоанализу;

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

5)предложенное решение реализуется.

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

горитма в программном или аппаратном обеспечении. Классическая

10

Занечников С. В. Криптографические протоколы и IIX применение

криптография требует определенного «дара предвидения», так как стойкость синтезируемых алгоритмов базируется на стойкости при­ меняемых в них математических и инженерных конструкций. Тем не

менее время от времени находятся тонкие математические взаимо­ связи, которые «рушат» считавшиеся ранее стойкими криптографи­

ческие конструкции.

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

1) выдвигается криптографическая проблема (задача), требую­

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

2)дается формальное, математическое определение проблемы;

3)конструируется алгоритм (протокол, схема и т. д.), удовлетво­ ряющий сформулированному определению;

4)принимается некоторое теоретико-сложностное предположение

осуществовании некоторой вычислительно-неразрешимой задачи;

5)доказывается, что алгоритм (протокол, схема и т. д.) соответ­

ствует своему определению;

6)предложенное решение реализуется.'

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

некоторые методы систематического конструирования доказуемо­

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

ключей и др.).

J. Базовые криптографические протоколы

11

Центральный принцип любой криптосистемы, независимо от используемой методологии ее конструирования, - использование асимметрии. Асимметрия выражается в том, что законный участник криптосистемы обладает некоторой информацией, которая позволя­ ет совершать ему определенные действия; противник же этой ин­ формацией не обладает, и для него, таким образом, создаются вы­

числительные препятствия.

В криптографии известны три принципиально различных спосо­ ба реализации асимметрии:

1)использование криптографических ключей;

2)канал, более надежный для законного пользователя, чем для противника (теоретико-информационные модели);

3)вычислительные ресурсы, более мощные, чем у противника.

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

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

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

1)перемешивающие, или «инженерные» (в англоязычной тер­

минологии также confusionldiffusion primitives), например петля

Фейстеля, линейный регистр сдвига с обратной связью, SР-сети;

2)алгебраические и комбинаторные примитивы, например функция дискретного логарифма, функция RSA и др.

12

Занечников С. В. Криптографическиепротоколы и '/Х примененив

 

 

 

системы защиты информации

 

Криптографичесхие системы"'"

(сервиса защиты)

Система

 

Система

Система элек-

Сервис обеспечения

сертифицнро-

 

электронных

тронного голо-

устойчивоста к

ВЗНЕой

 

платежей

сования

компрометации

зло ПОЧТЫ

 

 

 

частиключей

..,.... ..."

 

 

 

 

 

 

 

11'-

 

 

... " ....

•••••. '.r

Криптографические c:xeJ.4bl (механизмы защиты)

 

 

 

 

Схемы

Схемы цифре-

Схемы разделения

••••••••

 

 

 

шифрования

 

вой подписи

 

 

 

секрета

 

 

 

 

 

...,...

 

 

 

 

 

 

-1"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Криптографические протоколы

 

 

 

 

 

Двусторонние

 

 

 

Многосторонние

 

 

 

 

Протокол «передачи со стиранием»,

 

 

ПРОТОКОЛ пороговой подписи

 

 

 

 

 

 

 

' -- 1 --

Протокол«депонированиябита»,

 

 

ПРОТОКОЛгрупповойподписи.

 

 

 

 

Протокол«бросаниямонеты

 

 

 

Протоколразделенияceкpcra.

 

 

 

 

по телефону»,

 

 

 

 

 

 

Протокол«византийского

 

 

 

 

Протоколоценки булевых,функций

 

 

соглашения»

 

 

 

 

 

ПРОТОКОЛаутеитификациис нулевым

 

 

 

 

 

 

 

 

разглашениемзнания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

т-

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Криптографические

 

 

 

 

«Строитепъныеблоки»

 

 

функции:

 

 

 

криптографическихпротоколов

 

 

(естроитеяьныебло-

 

 

 

Бероятностные

Методыраспреяеле-

 

 

КШ> криптосистем)

 

 

 

доказательства.

 

 

ния ключей.

 

 

 

 

 

Инфраструктура

Метоцындентнфи-

 

 

Бесключевые.

 

 

 

 

 

 

 

 

управленияключами

 

кации субъектов

 

 

 

 

 

 

 

 

 

 

 

 

Одноключевые.

 

 

 

 

(КМIIPКI). ..,..

 

 

 

 

 

Двухключевые.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

..,...

 

 

 

 

Криптографичесхие

примытивы

 

 

 

 

 

Перемешнвающие,

 

 

Aлrебраические

 

 

 

 

 

 

 

 

 

 

,(illНЖенерные)}

 

 

И комбинаторные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(сonfusionldiffusion)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

инструменты

 

 

 

 

 

 

Базовые математические

 

 

""

 

 

 

 

 

Теория информации.

 

 

 

Комбинаторика

 

 

Теория булевых функций

 

 

Алгебра.

 

 

Теория СЛОЖНО сти,

 

 

 

...

 

 

Теория чисел

 

 

Теория вероятностей.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 1.1. Многоуровневая структура криптасистем

Криптографические функции (астроительные блоки» криnто­ систем) - это локальные алгоритмы, которые могут давать резуль­

таты, имеющие интерес для криптографии. Они уже представляют

J. Базовыекриптографические протоколы

13

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

Все криптографические функции можно подразделить на три

класса:

бесключевые: генераторы случайных последовательностей,бес­ ключевыехеш-функции,псевдослучайныеперестановки; одноключевые: блочные и поточные шифры, хеш-функции с клю­ чом, псевдослучайныепоследовательности;

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

Криптографические протоколы - это распределенные алгорит­

мы, которые могут решать некоторые полезные для практики зада­

чи. В следующем разделе будут более подробно рассмотрены ос­

новные понятия, связанные с этими конструкциями.

«Строительные блоки» криптографических протоколов - это вспомогательные конструкции, которые носят обслуживающий ха­

рактер по отношению к протоколам, применяемым непосредственно для защиты информации.

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

схемы шифрования, включающие алгоритм зашифрования, алго­ ритм расшифрования, метод генерации ключей криптосхемы, протокол распределения этих ключей; схемы цифровой подписи, включающие алгоритм или протокол

генерации цифровой подписи, алгоритм проверки цифровой подписи, способ генерации ключей и протокол распределения ключей;

схемы разделения секрета, включающие протокол разделения

секрета, протокол восстановления секрета, протокол распреде­ ления ключей.

Криптографические системы - еще более высокоуровневые конструкции, которые предоставляют готовое решение какой-либо

задачи защиты (готовые услуги защиты), и эти услуги могут быть

14

Запечкиков С. В. Криптографические протоколы и их нрименение

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

встроены в прикладвые программы.

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

1.2. ОСНОВЫ теории криптографических протоколов

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

Алгоритм называется распределенным по той причине, чтодей­

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

от друга.

Свойства протокола:

1) действия имеют очередность от начала и до конца; ни одно действие не выполняется, пока не закончилось предыдущее;

2) должно быть точно определено каждое действие; не должно быть двусмысленности, из каждой ситуации должен быть опреде­ ленный выход;

3) одного действующего лица недостаточно для протокола

(должно быть два или более);

1. Базовые криптографическиепротоколы

15

4)все участвующие в протоколе стороны должны заранее знать последовательность действий и быть согласны ее выполнять;

5)стороны решают некоторую конкретную задачу - это не бес­

цельные действия.

Криптографический протокол - такой протокол, в котором ис­ пользуются криптографические алгоритмы и который служит ДЛЯ решения некоторой криптографической задачи, например обеспечи­ вает секретность, целостность, аутентичность информации. (Далее под словом «протокол» всегда имеется в виду криптографический протокол.)

В теоретической криптографии протокол рассматривается как «черный ящик», который имеет т входов и п ~ т выходов:

х,]~[

 

]~1, (х" ...m)=h (Х)

_ Х2

~

Т

--712 (ХI'''''Хm)=/2(х)

Х= [ ~::

:

 

: f" (x;:::::;,:,·)·:~"(х)

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

такие ситуации почти не встречаются, поэтому задача конструиро­

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

В частном случае, когда в криптографическом протоколе участ­ вуют только две стороны, рассматривается «черный ящик» с двумя

входами и двумя выходами:

Х--7[-]--7 h (Х,У)!

У --7 _ --7/2 (Х!У),

F(X,y):::(.t; (x,Y):f2 (х,у)).

Если оба участника в результате выполнения протокола должны

получить одинаковые выходные данные, тогда:

F (х, у) = (g (Х, У); g(х, у)).

-16

Запечников С. В. Криптографическиепротоколы lll/X примененив

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

нему в процессе выполнения протокола передается в открытом виде.

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

Грамотное коиструирование криптографических протоколов, как

правило, преследует две цели: защиту от стороннего нарушителя и

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

Робастный (robust) протокол - протокол, обладающий «внут­ ренней», конструктивной устойчивостью к попыткам его «сломать». В лучшем случае можно сконструировать протокол так, что если большинство участников верно следуют протоколу, то они получат верный результат.

Упругий (resilient) протокол - протокол, сохраняющий безопас­

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

участников.

Один и тот же протокол может выполняться одними и теми же лицами многократно в течение какого-то промежутка времени. Се­ анс (сессия) - это однократное выполнение протокола. Раунд про­ токола - это однократная двусторонняя пересылка сообщений. В зависимости от контекста раунд может включать две или более единичные пересылки сообщений. Иногда внутри протокола встре­

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

цикла и называется раундом.

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

1. Базовые криптографические протоколы

17

участники протокола в общем случае подразделяются на две

группы:

1) непосредственно решающие задачу протокола (как правило, обозначаются буквами латинского алфавита А, В, С, п... либо сим­ волическими именами Алиса, Боб, Карл, Виолетта и т. п.);

2) обслуживающие участников первой группы: арбитр, третей­ ский судья, дилер, центр доверия, центр распределения ключей и др.

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

умышленно мешающих честным решать задачу протокола, т. е. про­

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

в сговор.

По способу вторжения в протокол противник может быть пас­

сивным (eavesdropper) или активным (active adversary). Пассивный

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

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

18

Запечников С. В. Криптографические протоколы и их применение

сятся прежде всего банковское дело, нотариат, коммерческие, фи­ нансовые сделки, деловая переписка, документооборот и др.

Рассмотрим классификацию основных видов атак на криnто­ графические протоколы.

1. Атака по известным ключам (known key attack) - в этой атаке противник обладает некоторыми ключами, использованными в пре­ дыдущих сеансах протокола, и затем применяет эту информацию для определения новых ключей в последующих сеансах, например выявляет закон изменения ключей.

2.Атака методом повтора сеанса (replay attack) - в этой атаке противник полностью или фрагментарно записывает сеанс протоко­ ла и повторно применяет эти сообщения в следующем сеансе, т. е. «повторно играет» (отсюда название «гергау») сеанс или его часть

внекоторый более поздний момент времени.

3.Атака методом деперсонификации (impersonation) - против­

ник принимает на себя идентичность одного из законных участни­

ков протокола.

4. Словарная атака (tlictionary attack) - атака путем перебора наиболее вероятных значений каких-либо величин или сообщений, используемых в протоколе (например, путем перебора паролей, в качестве которых довольно часто берутся легко угадываемые дан­ ные: фамилия, имя, отчество, номер телефона, адрес и т. п.).

5. Атака методом опережающего поиска (fOJward search attack) - по принципу осуществления похожа на словарную, но реа­ лизуется путем полного перебора всех возможных значений какой­ либо величины и используется, как правило, для расшифрования со­ общений. Например, банком выполняется транзакция, в которой ве­ личина транзакции, зашифрованная схемой открытого шифрования,

указана в 32-битовом поле. Противник, используя природу схемы открытого шифрования, может взять 232 возможных открытых тек­ стов и зашифровать их. Каждый из 232 шифртекстов сравнивается с

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

6. Атака методом включения в канал (intег[еаving attack) - про­ тивник М «врезается» в канал связи между законными участниками А и В таким образом, что для А создается иллюзия того, что он взаи­ модействует с В, и наоборот, а на самом деле каждый из них взаи-