Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ММЗИ / Лекции / Протокол Диффи - Хеллмана

.doc
Скачиваний:
23
Добавлен:
11.04.2015
Размер:
83.97 Кб
Скачать

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

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

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

Нетрудно видеть, что при пересылке платежных поручений в электронной форме возникает еще и совершенно иной тип угроз безопасности клиентов: всякий, кто перехватит сообщение от к , узнает, что получил от 10 фантиков. А что будет, если эта информация попадет в руки мафии? Возможно, кто-то из читателей скажет, что здесь как раз и требуется конфиденциальность. И будет неправ! На самом деле клиентам необходимо нечто, аналогичное свойству анонимности обычных бумажных денег. Хотя каждая бумажная купюра имеет уникальный номер, определить, кто ее использовал и в каких платежах, практически невозможно. Аналог этого свойства в криптографии называется неотслеживаемостью. Обеспечение неотслеживаемости - третья задача криптографии.

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

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

- в протоколе может быть более двух участников;

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

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

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

За последнее десятилетие криптографические протоколы превратились в основной объект исследований в теоретической криптографии. Например, на крупнейших ежегодных международных криптографических конференциях Crypto и EUROCRYPT большая часть докладов посвящена именно протоколам. Безусловно, такая ситуация может быть всего лишь отражением преобладающих интересов исследователей. Но для вывода о превращении криптографических протоколов в основной объект криптографических исследований имеются и объективные основания. Как можно понять из приведенного выше примера, в банковских платежных системах в наши дни вместо платежных поручений на бумаге используется их электронная форма. Выгоды от такой замены настолько ощутимы, что, по-видимому, банки от нее уже никогда не откажутся, какие бы технические и криптографические (связанные с обеспечением целостности) трудности при этом не возникали. Но платежные поручения - лишь один из многочисленных типов документов, находящихся в обороте в сфере бизнеса. А ведь существуют еще документы, с которыми работают государственные органы и общественные организации, юридические документы и т.д. В последние годы в развитых странах отчетливо прослеживается тенденция перевода всего документооборота в электронную форму. Обсуждение всех выгод и последствий такого шага выходит за рамки тематики данной главы. Для нас важно отметить, что поскольку переход на электронные документы представляется неизбежным, возникает необходимость обеспечения, в каждом конкретном случае, целостности и неотслеживаемости, т.е. разработки соответствующих криптографических протоколов.

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

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

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

Диффи и Хеллман предложили решать эти задачи с помощью функции

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

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

Абоненты и независимо друг от друга случайно выбирают по одному натуральному числу - скажем и . Эти элементы они держат в секрете. Далее каждый из них вычисляет новый элемент:

(Числа и считаются общедоступными.) Потом они обмениваются этими элементами по каналу связи. Теперь абонент , получив и зная свой секретный элемент , вычисляет новый элемент:

Аналогично поступает абонент :

Тем самым у и появился общий элемент поля, равный . Этот элемент и объявляется общим ключом и .

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