Вычислительные технологии
Том 12, Специальный выпуск 1, 2007
КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ В СИСТЕМАХ С ОГРАНИЧЕННЫМИ РЕСУРСАМИ
Р. В. Мещеряков, С. К. Росошек, А. А. Шелупанов Томский государственный университет систем управления и радиоэлектроники, Россия e-mail: [email protected], [email protected]
М. А. Сонькин Отдел проблем информатизации ТНЦ СО РАН, Томск, Россия e-mail: [email protected]
Cryptographic protocols used for data transmission in a system with limited resources are considered in the case of the distributed organization of information processing for various operating modes. Theoretical foundations for the establishment of a uniform key and the establishment of a session of communication are presented.
В ряде вычислительных телекоммуникационных систем требуется производить обмен конфиденциальной информацией. Очевидно, что полноценный защищенный обмен может быть реализован с помощью криптографических протоколов. Криптографическим протоколом называется протокол, в основе которого лежит криптографический алгоритм.
Практически каждая телекоммуникационная система требует, чтобы в начале сеанса работы пользователь идентифицировал себя. Обычно пользователю предлагается ввести имя и пароль. Пользователь помнит этот секрет, а сервер хранит либо копию секрета, либо значение, вычисленное на основе секрета. Во время аутентификации происходит сопоставление пароля, введенного пользователем, и значения, хранимого сервером. Аутентификация при помощи паролей — наиболее распространенный вид аутентификации. Если злоумышленник знает чужой пароль, то имеет возможность выдавать себя за другого субъекта и сервер не может отличить его от настоящего пользователя.
Существует несколько способов получения секретного пароля в сети [3]. Пользователь Z (злоумышленник) может использовать программу-анализатор, или сниффер. Атаки анализаторов обнажают две серьезные проблемы аутентификации при помощи паролей. Во-первых, для аутентификации пользователь A должен передать свой пароль, разделенный секрет. Выполняя это, пользователь A может раскрыть его, Во-
A
вателю C достаточно получить пароль один раз, после чего он может выдавать себя
© Институт вычислительных технологий Сибирского отделения Российской академии наук, 2007.
за пользователя А, пока последний не изменит свой пароль. Эти слабые стороны делают атаки анализаторов успешными. Эволюция механизмов аутентификации началась в ответ па атаки анализаторов, появилась идентификация односторонняя и взаимная. Классификация систем представлена тіа рис. 1.
На первом этапе работы практически любой телекоммуникационной системы необходимо использовать идентификацию. Представим телекоммуникационную систему в виде рис. 2.
С другой стороны, в качестве оконечного оборудования сети передачи данных Аі могут быть абонентские пункты, не обладающие достаточными ресурсами для реализации сложных криптографических протоколов. Таким образом, ставится задача рассмотреть
Рис. 1. Схема криптосистемы идентификации
Рис. 2. Сеть передачи данных
криптографические системы при использовании систем с ограниченными вычислительными ресурсами,
В качестве экспериментальной сети передачи данных была определена сеть па основе пакетного контроллера "В1II 1-М“ (производитель ООО “Инком"), позволяющего в пакетном режиме передавать цифровую информацию посредством использования существующих сетей передачи данных. Основные концепции но встраиванию криптографических функций в ВИП изложены в [ 11,
1. Теоретические аспекты применения протоколов
Механизм односторонней идентификации с временным штампом. Будем считать, что А аутентифицируется в системе у пользователя В. Для описания алгоритмов идентификации введем обозначения: Ка — случайное число, генерированное А; —
временный штамп; Бл — механизм цифровой подписи А; сег^л — сертификат открытого ключа А для Бл; А ^ В : сег^, £л, В, Бл (£л, В),
В
ВА
выделенный из сег^л, после его проверки) проверяет, ч то подпись Б л (г л, В) корректна. Схема протокола представлена па рис, 3,
Механизм односторонней идентификации со случайными числами. Временный штамп может быть заменен на случайное число ценой дополнительного сообщения:
В
тый ключ подписи А из с ег^л, проверяет подлинность подписи Б л (Ка , Кв , В), Подписание Ка предотвращает атаку с выбранным текстом (рис, 4),
А —— В : Кв, А ^ В : сеііА, КА, В, Ба (Ка, Кв, В).
сеПА} і а, В, ЭА (іА, В)
•А -> В<
А
В
Рис. 3. Протокол односторонней идентификации с временным штампом
<А -> в'
■Л <- 6' Ив
А
СЄІІД, Яв, В, 3А(ИА, Я?в, В)
В
Рис. 4. Протокол односторонней идентификации со случайными числами
Д се/?в, А, Бв (Ив, И а, А) В
Рис. 5. Протокол взаимной идентификации со случайными числами
Поскольку запрос генерируется случайным образом, пользователь Z не может по-
А
А
А
Механизм взаимной идентификации со случайными числами. Чтобы этот механизм был пригоден для взаимной аутентификации, необходимы еще один запрос и ответ (рис, 5):
А —— В : Кв ,
А ^ В : сег!л, Ка, В, Бл (Ка, Кв, В),
А —— В : сей в , А, Б в (Кв , Кл, А).
Итак, механизмы идентификации при помощи сертификатов поддерживают идентификацию в открытой сети (па многих удаленных серверах) и обеспечивают взаимную аутентификацию, а также не требуют активного участия третьих сторон. Для успешной аутентификации должны быть доступны только пользователь и сервер/пользователь,
2. Протоколы аутентификации Шнорра и Фейге — Фиата — Шамира
Одним из наиболее эффективных практических протоколов аутентификации является протокол Шнорра [ 121,
Пусть р и д — простые числа, причем д делит р — 1. Пусть д Е бВ(р), где бВ(р) — конечное кольцо классов вычетов, такое, что д(1 = 1(тос1р), д = 1. Далее, пусть к Е СВ(д) и у = д-к(тос1р).
Таким образом, опять возникла задача дискретного логарифмирования, т, е, по заданному значению у и при известных р, д и д необходимо найти к. Тогда алгоритм аутентификации будет состоять в следующем:
— абонент А выбирает случайное число а из множества {1,..., д — 1}, вычисляет г = д“(тос1р) и посылает его абоненту В (величина г может быть вычислена заранее);
— абонент В выбирает случайное число е из множес тва {1,..., 2*-1}, где г — неко-
А
— абонент А вычисляет 5 = а + ке(то с1д) и посылает его або ненту В;
— абонент В проверяет соотношение г = д5уе(тос1р) и, если оно выполняется, принимает доказательство, иначе отвергает.
Таблица 1. Протокол аутентификации Файге — Фиата — Шамира
Предварительный этап
А Центр доверия Т в
А = (Аі,А2 ., А к) - - открыт, ключ п — щ ................. СЛуЧ.
в = (01 ,02,- .,0к)- - закрыт, ключ (Аь А2, • • •, А к), А/ £ QR.fi (А; /?2> • • • > Рк) '■ Рг = И™1 {8дй(А/_1)тоёп}
,..., А к
Рабочий этап
А
В
ґог (і = 1, 2
1 а. _ случ., а* < п, г і = а?тойп —
2 <— (СЦ,СІ2, Сік) Є {0, 1}к ~ случ.
3 уг = аг (РС^РТ ...рск^)(шойп) —
4 Гі = у2((1сіі. (2сі2 .... (квік)(тоАи)
Существуют также и другие схемы. Рассмотрим из них схему аутентификации Фей-ге — Фиата — Шамира, которая показана в табл. 1,
Пусть п — произведение двух больших простых чисел. Для генерации открытых и закрытых ключей абонент А выбирает к различных чисел Л1, Л2, ,,,, Лк, каждое из которых является квадратичным вычетом по модулю п. Строка Л^ Л2, ,,,, Лк служит открытым ключом. Затем вычисляются наименьшие значения въ в2; ■ ■ ■> вк-, для которых в* = (л-1) (тос1п), Строка @ъ @2 ■■■ вк служит секретным ключом. Далее
выполняется следующий протокол:
— абонент А выбирает случайное число а го мпожества {1,...,п — 1}, вычисляет г = а2(тос1п) и посылает его абоненту В;
— абонент В посылает А строку из к случайных битов — С1, с2, ,,,, ск;
— абонент А вычисляет у = а (вС1 @22... вкк) (т0^п) и посылает его абоненту В;
— абонент В проверяет, что г = у2 (Л11 Л22 ... Л°кк) (тос1п).
Абоненты А и В повторяют этот протокол £ раз, пока В не убедится, что А знает вь в2> ■ ■ ■; вк- Шанс, что А обманет В £ раз, равен 1 из 2кк.
3. Протоколы аутентификации с нулевым разглашением
Протоколы аутентификации, обладающие доказательством с нулевым разглашением (^К-протоколы), позволяют произвести процедуры идентификации, обмена ключами и другие основные криптографические операции без утечки любой секретной информации в течение информационного обмена [4], Этой цели можно добиться при помощи демонстрации знания секрета, однако проверяющий должен быть лишен возможности получать дополнительную информацию о секрете. Иными словами, ^К-протоколы позволяют установить истинность утверждения, не передавая какой-либо дополнительной информации о самом утверждении, ^К-протоколы являются системой интерактивного доказательства, в которой проверяющий и доказывающий обмениваются многочисленными запросами и ответами. Целью доказывающего является убеждение проверяющего в истинности утверждения. Поверяющий отклоняет или принимает доказательство. Та-
ким образом, ZK-протоколы носят вероятностный, а не абсолютный характер. Сторона А владеет секретом s и пытается убедить сторону B в знании секрета. Стоит отметить, что доказательство знания секрета отличается от доказательства того факта, что секрет существует.
Основные характеристики ZK-протокола:
— проверяющий не может ничего узнать из протокола;
— доказывающая сторона не может обмануть проверяющую сторону.
Если сторона А не знает секрета s и пытается доказать стороне B его знание, то после нескольких раундов протокола данный факт может быть установлен настолько точно, насколько это необходимо. Протокол также является “Cut AND Choose”, т, е, после первого неудачного раунда, сторона B точно знает, что А нелегальна. Проверяющая
B
протокола какой-либо информации, даже если она не следует протоколу. Единственное, что может сделать сторона B, это убедить себя, что сторона А знает секрет. Доказывающая сторона всегда раскрывает только одно из многих решений любой поставленной проблемы и никогда все, что позволило бы найти сам секрет. Проверяющая сторона не может стать доказывающей для любой третьей стороны.
Существует три основных режима работы ZK-протокола:
— интерактивный, когда стороны А и B интерактивно взаимодействуют через протокол, шаг за шагом проверяя достоверность;
— параллельный, когда сторона А формулирует ряд запросов, а сторона B в это время запрашивает ряд ответов на поставленные задачи. Данный режим может быть использован, чтобы снизить количество интерактивно передаваемых сообщений при плохом уровне связи;
А
B
А
ет ряд полученных решений к сообщению. Этот режим может быть использован для цифровой подписи.
Один из наиболее известных ZK-протоколов идентификации — это протокол Фиата — I Памира. Схема его работы представлена в табл. 2,
Сторона А доказывает B знание секрета s за t раундов по три сообщения в каждом.
Параметры протокола:
— доверительный центр T выбирает и публикует модуль n (512-1024 бита), являющийся произведением двух больших чисел (n = pq, p и q сохраняются в секрете);
— каждый доказывающий выбирает секрет s, взаимно простой cn, 1 < s < n — 1, вычисляет v = s2 mod n и регистрирует v у T в качестве своего открытого ключа.
Сообщения, передаваемые в рамках каждого раунда,:
А ^ B : x = r2modn;
А ^ B : e G {0, 1};
А ^ B : y = rsemodn.
Bt протокола имеет вид:
— А выбирает случайное число г, 1 < r < n — 1, и посылает B x = r2modn;
Таблица 2. Протокол Фиата — Шамира
Предварительный этап
А Центр доверия Т В
п — щ ................. СЛуЧ.
/3, А А £ С,}Ип
/3 = шш {вдй (А-1) то Ап}
Рабочий этап
А В
1 а — случ., а < п г = а2тос1п —
2 <— е £ {0,1} — случ.
3 (е = 0) г И (е = 1) у = а(3(шойп) —
4 (е = 0) г =? а2(тос1п) (Знает ли А вцгЬ(г)?) (е = 1) г =? у2\(шойп) (Знает ли А вдг^А-1)?)
— В выбирает случайным образом е и посылает его Л;
— Л вычисляет у и посылает его В, где у = г(е = 0) или у = гз(е = 1);
— В отвергает доказательство, если у = 0, иначе производится проверка у2 = жуето с! п.
В зависимости от е у2 = ж2тос1п или у2 = жутос1п, иначе V = з2тос1п. Число раундов выбирается от 20 до 40,
Протокол может быть разработан с помощью идентификации, основанной на Н8Л публичном ключе и комбинированной со свойствами ^К-протоколов, путем обмена В
ЛЛ
Л
В
Л
числа. Сессионный ключ может быть помещен в некоторые биты произвольного числа, которые никогда не пересылаются в чистом виде.
Большинство ^К-протоколов может быть использовано для цифровых подписей, ес-В
Л
В
ответ на каждый запрос) и предоставить эти ответы, В качестве аргументов хеш-функции используются набор ответов и запросов. Таким образом, ни ответ, ни запрос не может быть изменен без изменения подписи. Результат действия “хорошей” криптографической однонаправленной хеш-функции является полностью произвольным и непредсказуемым. Принимающая сторона вычисляет значение хеш-функции и проверяет корректность ответов на запросы. Если проверка пройдена., то подпись может считаться верной. Рассмотрим в качестве примера схему ЭЦП Шнорра, она представлена в табл. 3,
Таблица 3. Протокол аутентификации Шнорра
Предварительный этап
А Центр доверия Т В
s Єд {1,... ,q} д _ простые числа, д\р — 1,
v = a~smodp а Є Zp : а4 = 1(тос1р)
Рабочий этап
А В
1 г Є х = ar mod p — случ. —>
2 <— e Є {0,..., 2t-1} — случ.
3 у = г + semod q —>
4 ? x = ay vemo dp
Пусть р д — простые числа, такие что р делит д — 1, пусть д принадлежит ^р, дч = 1тос1р, д не равно 1. В качестве секретного ключа выбирается х, принадлежащий {1,..., д — 1}. Открытый ключ у = д(-ж)тос1р,
— А выбирает случайное число к. принадлежащее {1,..., д — 1}, и вычисл яет г = д^то с1р;
— А вычисляет е = Л.(г, т), где т — подписываемое сообщение;
— А вычисляет 5 = (к + ех)тос1 д и посылает сообщение т с подписью (е, з) получателю В.
В вычисляет г1 = д5уетос1р и проверяет, выполняется ли равенство е = Л.(г1,т), Если да, то подпись принимается, в противном случае — отвергается. Преимущество схемы Шнорра перед схемой Эль Гамаля заключается в том, что к выбирается из меньшего множества (длина к порядка 140 битов). Это повышает эффективность вычисления дискретных экспонент. Кроме того, стоит заметить, что использование в схеме Шнорра хеш-функции при вычислении е и приведение подписи 5 по модулю д сокращают длину подписи по сравнению со схемой Эль Гамаля, Длина подписи — один из важнейших показателей эффективности схемы.
Далее приведена сравнительная таблица системных требований для различных семейств протоколов (табл. 4),
Из приведенной таблицы видно, что ^К-протоколы могут использоваться в системах с повышенным требованием к безопасности, но их применение предъявляет жесткие требования к вычислительным способностям и размеру памяти. Это накладывает ряд ограничений в телекоммуникационной системе.
Таблица 4. Системные требования для различных протоколов
Семейство Размер Количество Количество Требования к
протоколов сообщений раундов вычислений памяти
Zero-knowledge Большой Много Большое Большая
Public-key Большой Один Очень большое Большая
Symmetric Маленький Один Маленькое Маленькая
4. Практическая реализация криптографических протоколов
Реализация криптографических протоколов должна проводиться в соответствии с действующим законодательством. Использование электронно-цифровой подписи осуществляется согласно ГОСТ 34,10-2001, реализация которого требует существенно больших вычислительных ресурсов по сравнению с режимом симметричного шифрования. Для реализации необходимо использовать различные режимы ГОСТ 28147-89, в том числе с модификациями. Очевидно, что сложностей с реализацией шифрования нет, наибольшее внимание должно быть уделено процедурам идентификации и установления общего ключа.
Отметим, что в базовой схеме работы пакетного контроллера существует два режима работы:
— связь “точка — точка”, позволяющая обеспечивать обмен информацией двух абонентов системы при наличии установившегося канала передачи данных;
— связь “широковещательное оповещение”, позволяющая передавать информацию от одного абонента одномоментно нескольким абонентам системы,
В каждом из режимов определен инициатор связи, называемый центром и абонен-А
может быть реализовано несколько режимов работы защищенной сети на основе пакетного контроллера.
Криптопроцессор имеет встроенный датчик случайных (псевдослучайных) чисел — ДСЧ (ДПСЧ). Сеанс связи, “точка — точка”.
В центре имеется библиотека чисел р и а, которые определяют основные параметры выработки общего ключа. Так как размер библиотеки значительно ограничен, используется расширение числа р посредством имитовставки р' = Л.(р), что позволяет увеличить
х
интервале 1 < х < р и вычисляют 7 = ахтос1р. Соответственно, для 7 также применяется функция имитовставки 7' = ^(7), Получившаяся тройка (р', 7', а) передается по открытому каналу.
Абонент после получения тройки (р', 7', а) убирает имитовставки и получает тройку (р, 7, а). Затем абонент выбирает случайное целое у в интервале 1 < у < р, вычисляет ^ = аутос1р, делает имитовставку для ^ и полученное число ^' отправляет в центр. Затем абонент вычисляет общий с центром ключ К = 7утос! р = ахутос1р, С другой стороны, центр, получив ^' от абонента, убирает имитовставку и получает Затем вычисляет общий с абонентом ключ: К = ^хтос! р = аухтос1р.
Центр шифрует ключом К посредством ГОСТ 28147-89 сообщение мс = К (т) и передает информацию абоненту.
Дальнейшая пересылка может идти в обоих направлениях, так как у абонента и центра имеется общий ключ. Так, получив шифртекст с, абонент применяет К (с) = т.
Таким образом, генерация и использование ключей осуществляются только на период одного сеанса связи. Особые действия при компрометации ключей не требуются, поскольку потеря одного аппарата может быть легко блокирована посредством определения его адреса, обязательного к использованию при обмене информацией между абонентами.
Криптопроцессор не имеет встроенного датчика случайных (псевдослучайных) чисел. Сеанс связи, “точка — точка” с использованием главного ключа.
Для повышения надежности криптографической схемы, а также уменьшения нагрузки на криптографический процессор пакетного контроллера в некоторых случаях целесообразно исключить датчик случайных (псевдослучайных) чисел из криптографического процессора пакетного контроллера абонента, В этом случае только в центре имеется ДСЧ (ДПСЧ), с помощью которого до начала информационного обмена на
К
А
используется исключительно для передачи сеансового ключа.
На первом этапе центр генерирует сеансовый ключ Кс, шифрует ключ 5 = Крк(Кс), затем посредством имитовставки получает сообщение в', Абонент, получив от центра сообщение в', убирает имитовставку, затем расшифровывает сообщение, являющееся
Кс = К (5) Кс
сообщение т и получает соответствующее ему зашифрованное сообщение с = Кс (т) и передает в центр. Центр, получив шифрованное сообщение с, применяет т = Кс(с),
т
В случае компрометации ключа требуется смена главного ключа, ключи считаются скомпрометированными и использованию более не подлежат. Ключевой носитель может иметь несколько ГК, различные главные ключи могут располагаться на нескольких ключевых носителях и использоваться в различных режимах работы криптопроцессора.
Криптопроцессор не имеет встроенного датчика случайных (псевдослучайных) чисел. Сеанс связи, “точка — точка” с использованием одноразового блокнота.
С другой стороны, можно несколько упростить предыдущую схему, уменьшив количество генераций случайных (псевдослучайных) последовательностей путем использования схемы “одноразовый блокнот”. Так, в центре имеется ДСЧ (ДПСЧ), с помощью которого до начала информационного обмена на ключевой носитель генерируется гамма шифра (Г), Один экземпляр гаммы шифра Г передается абоненту системы, другой остается в центре в виде блокнота и.
Таким образом, последовательность установки общего ключа будет следующей: центр генерирует сеансовый ключ Кс и режим гаммирования Я, затем применяет гаммиро-вание (например, функция “исключающего или”, ХОК) по режиму Я в = Кс ©Г (Я)
в' (в', Я)
ту системы,
(в', Я)
Кс = в © (Я)
ключом. Используя сеансовый ключ Кс, абонент шифрует сообщение т и с = Кс (т)
с
т = Кс(с).
В случае компрометации ключевого носителя, хранящего гамму, требуется смена гаммы, ключи считаются скомпрометированными и использованию более не подлежат. Ключевой носитель может иметь любое количество сколько угодно больших гамм (единственным ограничением является объем имеющейся памяти) и множество режимов гам-мирования, что существенно повышает стойкость.
Очевидно, что при учете значительных ограничений на ресурсы криптографического процессора необходимо оценить вычислительные затраты и требуемые объемы
памяти для реализации криптографических преобразований. Подробный расчет приведен в [5],
Заключение
В ходе проведения работы были получены результаты по реализации криптографических протоколов в системах с ограниченными параметрами.
Список литературы
[1] Мещеряков Р.В., Шелупанов А.А., Росошек С.К., Бондарчук С.С. Встраивание криптографических функций в систему связи с ограниченными ресурсами // Вопр. защиты информации. М.: ФГУП ВИНИ. 2004. № 2. С. 22-25.
[2] ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.
[3] Аграновский А.В., Балакин А.В, Хади Р.А. Классические шифры и методы их криптоанализа // Информ. технологии. 2001. № 10.
[4] Шнайдер Б. Прикладная криптография. М.: Триумф, 2002.
[5] Мещеряков Р.В., Шелупанов А.А., Росошек С.К., Сонькин М.А. Защищенная сеть передачи данных на основе пакетного контроллера // Вест. Сиб. гос. аэрокосм, ун-та им. М.Ф. Решетнева. 2006. № 10. С. 171-175.
Поступила в редакцию 23 август,а 2007 г.