Криптографический протокол назначение некоторых видов протоколов

Обновлено: 18.04.2024

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

У протоколов есть также и другие отличительные черты:

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

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

• необходимо, чтобы протокол допускал только однозначное толкование, а его шаги были совершенно четко определены и не допускали возможности их неправильного понимания;

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

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

Зачем нужны криптографические протоколы

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

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

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

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

Пусть отправитель и получатель – очень достойные люди, полностью доверяющие друг другу.

2.Получатель извещает отправителя, что он готов к получению ключа.

3.Отправитель генерирует случайное число x, 1

и отсылает его получателю.

4.Получатель генерирует случайное число y, 1

и отсылает его отправителю.

5.Отправитель возводит присланный ему ключ в свою секретную степень х:

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

и отсылает шифровку С получателю.

7.Получатель расшифровывает С:

(D обозначает оператор расшифровки – Decryption).

Протоколы с арбитражем

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

1.Отправитель посылает арбитру запрос на выдачу ключа ему и получателю.

2.Арбитр посылает им по одинаковому ключу К.

и посылает шифровку С получателю.

4.Получив К от арбитра и, позднее, С от отправителя, получатель расшифровывает С:

При наличии арбитра ключи будут чаще обновляться и квалифицированно генерироваться.

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

1.Отправитель запрашивает у получателя (или у арбитра, тогда арбитр часто называется ЦРК – центр распределения ключей) открытыеиполучателя.

2.Получиви, отправитель зашифровывает ключ К:

3.Получатель расшифровывает К:

и затем расшифровывает С:

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

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

• Расценки на услуги, оказываемые адвокатом, известны. Кто и каким образом будет оплачивать аналогичные услуги арбитра в компьютерной сети?

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

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

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

Несмотря на отмеченные препятствия, протоколы с арбитражем находят широкое применение на практике.

Протокол с судейством

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

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

1)подпись удостоверяет, что текст составлен или одобрен именно тем лицом, чьим именем он подписан;

2)подпись невозможно подделать;

3)подпись невозможно незаметно подклеить к другому тексту, то есть подпись срабатывает один раз;

4)подписавший текст не может утверждать, что он его не подписывал;

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

2.Арбитр посылает отправителю ключи получателю ключ.

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

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

2.Получатель расшифровывает С зашифровывающим ключомпо модулю.

7.Арбитр передает эту информацию отправителю.

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

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

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

Последовательность действий – как в бумажной переписке: отправитель сперва подписывает письмо, а потом кладет в конверт. Это правильно юридически: нельзя подписывать что-то зашифрованное, то есть как бы невидимое.

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

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

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

и посылает С отправителю.

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

Для этого злоумышленник сначала копирует послание отправителя:.

и затем проверяет подпись злоумышленника:

(в RSA V=E, а S=D). Получатель смог бы различить, что в результате получилась бессмыслица, но, скорее всего, этот процесс осуществляет машина, неспособная отличить бессмысленный набор символов от осмысленного текста, и поэтому она, согласно протоколу, пошлет

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

1.Отправитель шлет получателю свой открытый ключ. Злоумышленник перехватывает его и шлет получателю свой открытый ключ.

2.Получатель шлет отправителю свой открытый ключ. Злоумышленник снова подменяет его на свой.

С описанной атакой борются следующим образом.

1.Отправитель посылает получателю свой открытый ключ.

2.Получатель посылает отправителю свой открытый ключ.

5.Отправитель посылает вторую половину.

Статьи к прочтению:

Что такое эллиптические кривые и зачем они нужны?


Похожие статьи:

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

Основой асимметричной криптосистемы является асимметричный алгоритм шифрования. В алгоритмах с открытым ключом (также называемых асимметричными) для…

Читайте также: