
10 Лекция - Методы и средства управления криптоключами
.pdf1
МЕТОДЫ И СРЕДСТВА УПРАВЛЕНИЯ КРИПТОГРАФИЧЕСКИМИ КЛЮЧАМИ
Согласно сформулированному нами ранее принципу Кирхгофа единственное, что недоступно нарушителю при попытке компрометации шифра, это значение ключей, используемых для обеспечения конфиденциальности передаваемой информации. Таким образом, система управления ключами является основополагающей частью шифра, обеспечивающей его стойкость.
Управление ключами включает в себя следующие процедуры:
выработку, распределение и введение ключа в соответствующую аппаратуру;
смену и уничтожение ключей;
хранение и восстановление ключей.
Совокупность приведенных процедур, а также множество обрабатываемых ими ключей мы будем называть ключевой системой.
Ключевая система должна обеспечивать:
конфиденциальность секретных ключей;
аутентичность секретных и открытых ключей, то есть возможность проверки идентичности абонента, для связи с которым используется данный ключ;
защиту от несанкционированного использования ключей. Управление ключами обычно осуществляется в рамках политики
безопасности, определяющей правила, которыми следует руководствоваться в процессе управления ключами.
Традиционно к используемой ключевой информации предъявляются следующие требования.
1.Выбор секретного ключа k должен производиться по случайной равновероятной схеме из ключевого множества k K . При этом вероятность выбора ключа k не должна зависеть от шифруемого (защищаемого) открытого текста.
2.При смене ключа новый ключ выбирается независимо от ранее использованных.
3.Мощность ключевого множества K должна быть достаточно большой, чтобы исключить возможность их полного перебора.
4.Для несимметричных криптосхем выбор ключей производится с учетом необходимых теоретико-числовых (и иных) требований к ним. Что касается мощности ключевого множества, то известные к
настоящему времени международные и национальные стандарты алгоритмов шифрования и цифровой подписи свидетельствуют о том, что для симметричных схем длина ключа должна быть не менее 128 бит, а для асимметричных схем, основанных на сложности решения задачи дискретного логарифмирования в группе точек эллиптической кривой, не менее 256 бит. Вместе с тем асимметричные системы, основанные на сложности решения задачи факторизации больших целых чисел — не менее 1024 бит.
2
Характеристики ключевой системы
Рассмотрим некоторые характеристики ключевой системы, существенно влияющие на криптографическую стойкость шифрсистем.
Все шифрсистемы, как правило, нуждаются в периодической замене ключей. Последовательность стадий от установки ключей до следующей замены называется их жизненным циклом. К основным этапам жизненного цикла ключей относятся:
1.Генерация ключей. При генерации ключей должны быть обеспечены их необходимые криптографические качества.
2.Установка ключей в криптографическое оборудование. На этой стадии при необходимости выполняются также соответствующие процедуры, связанные с регистрацией ключей и их пользователей.
3.Хранение ключа (в период его эксплуатации) в надлежащих условиях, обеспечивающих его безопасность до замены на новый ключ.
4.Замена ключа проводится до истечения срока его действия в соответствии с процедурами генерации ключей и протоколами обмена информацией между абонентами, а также доверенной третьей стороной.
5.Архивирование (хранение ключа после его замены на новый ключ) ключей с целью их использования в специальных случаях (например, для проверки цифровой подписи под документами длительного срока хранения).
6.Уничтожение ключей после окончания срока их действия. При этом должны быть приняты меры, исключающие возможность их восстановления по остаточной информации на материальных носителях.
7.Отмена ключей до окончания срока действия в случае их компрометации с оповещением абонентов сети.
Кроме того, в некоторых случаях могут быть предусмотрены меры по восстановлению утерянной (но не скомпрометированной!) ключевой информации из хранимой в надлежащих условиях ее копии.
В системе управления ключами во многих случаях важную роль играет доверенная третья сторона, которая может выполнять следующие функции.
1.Центр управления ключами. Обеспечивает генерацию, установку, хранение, замену и отмену ключей, а также контрольные функции, связанные с их жизненным циклом.
2.Удостоверяющий центр. Выдает сертификаты открытых ключей, заверенные своей цифровой подписью. Также может выполнять функции по генерации и выдаче пользователям их секретных ключей. Ведет учет сроков действия открытых ключей, а также содержит списки отозванных сертификатов открытых ключей.
3.Центр установки временных меток. Обеспечивает установку
3
временной метки к сообщению и заверяет ее наличие в соответствующий момент времени.
4. Центр нотаризации. Обеспечивает подтверждение существования в определенный момент электронного документа (невозможность отказа от взятых в определенный момент обязательств).
Во многих случаях для обеспечения конфиденциальности секретных ключей используют разделение ключей по уровням и функциональному назначению. Способ конкретного представления ключей в рамках ключевой системы называется ключевой структурой.
Типичной является следующая структура.
1.Ключи для шифрования данных. Используются для защиты информации, хранимой или передаваемой абонентами по линиям связи.
2.Ключи для шифрования ключей. На данных ключах производят шифрование других ключей, например ключей шифрования данных, для их передачи по линиям связи или хранения.
3.Главный ключ (мастер-ключ). Его защита осуществляется с помощью организационно-технических средств. Компрометация такого ключа, как правило, приводит к компрометации всех других ключей и системы криптографической защиты в целом.
4.Ключи аутентификации. Данные ключи используются для аутентификации абонентов и подразделяются на секретные и открытые. При хранении секретные ключи могут быть зашифрованы на мастер-ключе или ключе шифрования ключей. Открытые ключи должны находиться в общем доступе.
Сцелью ограничения ущерба при компрометации ключи используются
втечение определенного ограниченного времени. При этом ключи традиционно подразделяются на две группы:
1.ключи с длительным сроком действия (долговременные ключи), к
таким ключам, в частности, относится мастер-ключ,
2.ключи с коротким сроком действия (производные и разовые ключи), к таким ключам, в частности, относятся ключи для
шифрования данных.
Сокращение срока действия ключа затрудняет его компроментацию, так как уменьшается объем зашифрованной информации, которая может быть использована для криптоанализа. Величина объема информации также является важной характеристикой ключа и определяется при проведении криптографического анализа криптографического преобразования и тематических исследований конкретного типа шифраппаратуры.
Производные ключи
С целью снижения нагрузки на центры генерации ключей при сохранении принципа «для каждого сообщения свой ключ» широкое распространение получила практика выработки производного или разового
4
ключа.
Предполагается, что разовый ключ используется для шифрования только одного сообщения. Такая ситуация возникает, например, при шифровании сетевого трафика, когда каждый передаваемый по линиям связи пакет шифруется на собственном ключе. Другая область применения разовых ключей - асимметричные схемы шифрования, использующие разовые ключи для шифрования коротких сообщений, в качестве которых могут выступать ключи шифрования. В этом случае, разовые ключи также могут рассматриваться как ключи шифрования ключей. Разовые ключи, как правило, никогда не хранятся.
Понятие производного ключа является более общим. Предполагается, что производные ключи, так же как и разовые, могут быть предназначены для шифрования сообщений ограниченной, но достаточно большой длины. При этом срок действия производного ключа может составлять от нескольких суток до нескольких месяцев. Это вынуждает реализовывать меры по их хранению и ограничению доступа. Далее мы рассмотрим схемы генерации производных ключей, подразумевая, что данные схемы также применимы и к генерации разовых ключей.
Общая схема выработки производного ключа kp имеет вид
kp f k,M , f :K V* Vn ,
где k - это, как правило, долговременный ключ, M - некоторая открытая информация, а f - однонаправленная по переменной k функция.
Открытую информацию M в отечественной литературе принято называть маркантом, в англоязычной литературе для этого могут использоваться термины инициализационный вектор (initialization vector) или соль (salt). В качестве марканта может использоваться метка времени, номер передаваемого по линиям связи пакета, случайный двоичный вектор соответствующей длины и т.д.
В режиме выработки производного ключа целесообразно в максимальной степени использовать аппаратные средства, предназначенные для обеспечения функционирования основного режима работы (непосредственно шифрования). Требование однонаправленности функции f по переменной k связано с необходимостью обеспечить невозможность восстановления мастер-ключа в случае компрометации одного или нескольких производных ключей.
В отличие от физических (программно-аппаратных) генераторов случайных последовательностей, в данной схеме часто бывает трудно оценить мощность множества вырабатываемых производных ключей, распределение их вероятностей при случайном выборе марканта, а также их независимость при смене марканта. Такие теоретико-вероятностные характеристики ключевого множества, как известно, оказывают существенное влияние на качество шифрсистемы в целом.
Для реализации однонаправленной функции f традиционно
5
используются два подхода.
Первый подход основан на использовании блочных алгоритмов шифрования. К примеру, американским стандартом в банковской отрасли ANSI X9.17 предусмотрена следующая схема выработки очередного производного ключа на основе блочного шифра
ki E k,E k,Ti vi ,i 0 ,
где E k,* - алгоритм зашифрования блочного шифра на ключе k , ki - i-ый производный 64-битовый ключ, вырабатываемый из мастер-ключа k , Ti - метка времени, vi -64-битовый блок данных, определяемый рекуррентным соотношением
vi 1 E k,E k,Ti ki ,i 0 ,
в котором величина v0 является секретным начальным значением.
Имеются также примеры выработки производных ключей для криптоалгоритмов, построенных на основе фильтрующих генераторов и линейных регистров сдвига. (Stream cipher project of the European Network of Excellence in CryptologyДоступно по адресу http: //www.ecrypt.eu.org/etream/)
Второй подход к построению алгоритмов выработки производного ключа основывается на применении бесключевых и ключевых функций хеширования.
Наиболее простой способ генерации последовательности производных
ключей k1,k2,...., |
вырабатываемых из долговременного ключа k K и |
марканта M Vm , |
m , заключается в использовании соотношения |
ki H k || g M,i ,i , (*)
где H ~ это бесключевая функция хеширования, а отображение g M,i :Vm Vm
реализует простой алгоритм перебора двоичных векторов, индексируемый значением i.
В качестве отображения g могут выступать, например, следующие преобразования
1. |
g M,i M ||i -конкатенация марканта M с двоичным вектором, |
|
представляющим целое число i, |
2. |
g M,i M i , где примитивный элемент поля GF 2m . |
Легко видеть, что равенство (*) может быть переписано в виде ki Mac k,g M,i ,i ,
где Mac — ключевая функция хеширования
Разделение секрета
Положительное практическое значение идеи разделения секрета заключается в разделении ответственности за принятие решения, которое вводится при определении состава уполномоченных групп пользователей.
6
Такая коллективная ответственность требуется для многих приложений, таких как применение систем вооружения, подписание финансовых корпоративных чеков, допуск к банковскому хранилищу и т.п.
Простейший пример схемы разделения секрета между группой из t пользователей состоит в следующем. Пусть ключ s есть некоторый элемент аддитивной абелевой группы G. Возьмем t элементов g1,g2,...,gt группы G, для которых справедливо равенство
sg1 g2 ... gt ,
ираспределим их между t пользователями.
Теперь, собравшись вместе, они легко могут восстановить ключ Одновременно никакая группа, состоящая из меньшего числа
пользователей, не сможет этого сделать, так как отсутствие хотя бы одной доли приводит к полной неопределенности относительно значения ключа.
Отметим, что другая простейшая схема разделения, заключающаяся в разбиении ключевого вектора на t частей, значительно хуже с криптографической точки зрения, так как знание любой доли дает частичную информацию о ключе.
Пусть 1 t n. Схема разделения секрета s между n пользователями называется (n, t)-пороговой, если любая группа из t пользователей может восстановить секрет, и одновременно никакая группа из меньшего числа пользователей не может получить никакой дополнительной информации о секрете.
Пусть p - простое число и q pm,m . Рассмотрим далее (n, t)- пороговую схему на основе многочлена степени t — 1 над конечным полем
GF(q), предложенную Ади Шамиром (Adi Shamir) ( Shamir A. How to share a secret//Communication ACM. - 1979. - V. 22. - No. 11. - pp. 612-613.)
Пусть заданы n различных ненулевых элементов r1,r2,...,rn,rj GF q
Каждый элемент rj соответствует j-му абоненту сети. Пусть также имеется многочлен степени t-1 над полем GF(q).
t 1
fx aixi, f x GF q x .
i0
Положим |
секрет |
s равным |
s f 0 a0 . |
Вычислим значения |
||||||
sj f rj , j |
|
|
и распределим среди участников в качестве долей секрета |
|||||||
1,n |
||||||||||
наборы rj,sj , j |
|
. |
|
|
|
|
||||
1,n |
|
|
|
|
||||||
Для восстановления |
секрета s |
по любым t |
парам rj,sj можно |
|||||||
воспользоваться интерполяционной формулой Лагранжа: |
||||||||||
|
t |
|
|
|
|
|
|
|||
f x si |
x rj |
. |
|
|
||||||
|
|
|
||||||||
|
|
|
r r |
j |
|
|
|
|||
i 1 |
j i i |
|
|
|
Учитывая, что s = f(0), отсюда получаем

7
t |
|
|
rj |
|
|
s siwi,wi |
|
|
|
(*) |
|
|
|
|
|||
|
r |
r |
|||
i 1 |
j i |
j |
|
i |
Отметим, что коэффициенты wi,i 1,t, не зависят от коэффициентов многочлена f(x) и могут быть вычислены заранее.
C помощью формулы (*) любая группа из t пользователей легко вычисляет ключ s. Одновременно никакая группа из меньшего числа пользователей не может получить никакой дополнительной информации о ключе.
Данная схема разделения секрета позволяет легко увеличивать число пользователей. Для этого достаточно к множеству r1,r2,...,rn просто добавить новые элементы rn 1,rn 2,...,rn l .
Отметим, что компрометация одной пары rj,sj делает из (n,t)-
пороговой схемы (n-1,t-1)-пороговую схему.
При построении ключевой структуры для сети с большим числом n абонентов необходимо, с одной стороны, обеспечить ее безопасное функционирование при компрометации ключей части абонентов. С другой стороны, нужно минимизировать затраты, связанные со сменой ключей, включающей в себя выработку и доставку новых ключей абонентам.
Лучшим решением первой задачи является ключевая структура типа «полная матрица» K kij n n , когда у каждого абонента имеется полный
набор индивидуальных ключей для связи с остальными (n-1) абонентами. При этом, ключ kij служит для обмена зашифрованной информацией между
абонентами i и j.
Вэтом случае даже при компрометации ключей у (n - 2) абонентов у оставшихся двух абонентов будет секретный, не скомпрометированный ключ для связи между собой. Вместе с тем данный тип ключевой структуры связан
смаксимальными нагрузками на процедуры генерации и доставки ключей абонентам сети.
Лучшим решением второй задачи является сеть с общим ключом. Однако она полностью становится неработоспособной при компрометации ключа у одного абонента.
Ключевая структура в системе из n абонентов называется стойкой к компрометации ключей у m абонентов, если при компрометации ключей у m абонентов противнику невозможно определить ни один из ключей для связи между остальными (n-m) абонентами.
Вкачестве примера такой схемы рассмотрим схему Блома (Blom R. Nonpublic key distribution//Advances in Cryptology. Proceedings of EUROCRYPT-82. - Plenum. New York. - 1983. - pp. 231-236) распределения ключей между n абонентами, построенную на основе симметричного многочлена от двух переменных над конечным полем GF(q). Каждому

8
абоненту поставим в соответствие номер (идентификатор) - ненулевой элемент rj GF q , j 1,n. При этом данные элементы попарно различны и
не являются секретными.
Выберем многочлен от двух переменных над полем GF(q) степени 2m, 1 m n, с симметричной матрицей коэффициентов A aij m 1 m 1 ,aij aji .
m m
fx,y aijxi yj, f x,y GF q x,y
i0 j 0
Матрица коэффициентов A является секретной и хранится в центре распределения ключей. Каждый абонент j в качестве исходного ключа получает многочлен
gj x f x,rj GF q x , j 1,n
В таком случае для связи между абонентами i и j ими вычисляется
ключ
kij kji f ri,rj f rj,ri gi rj gj ri GF q .
Удобно использовать также векторную форму для вычисления разовых ключей:
|
|
|
a00 |
a01 |
2 |
m |
|
a |
a |
10 |
11 |
|||
kij 1,ri,ri |
,...,ri |
|
|
|
|
|
|
|
am1 |
|
|
|
am0 |
1
a0m rj
a1m rj2 (**)
amm rm
j
Сформулируем две полезные леммы.
Лемма 1. Пусть m <n и заданы ключевые многочлены g1,g2,...,gm абонентов (без потери общности полагаем, что это абоненты с номерами r1,r2,...,rm ). Тогда существуют ровно |GF(q)|=q симметричных матриц
A Al,l 1,q, соответствующих данным ключевым многочленам, для которых выполняется соотношение (**) при всех i,j = 1,2,.. ., n.
Лемма 2. Пусть m n 2 и заданы ключевые многочлены g1,g2,...,gm абонентов (как и в лемме 1, полагаем, что это абоненты с номерами r1,r2,...,rm ). Пусть t,s принадлежат множеству m 1,m 2,...,n ,t s. Тогда для любого фиксированного kst GF q существует в точности одна
симметричная матрица A, которая соответствует данным ключевым многочленам, ключу kst и для которой выполняется соотношение (**) при всех i,j = 1,2,..., n.
Из лемм 1 и 2 непосредственно получаем справедливость следующего утверждения.
Теорема. Схема Блома распределения ключей между n абонентами на
|
|
|
9 |
основе |
симметричного |
многочлена |
от двух переменных степени 2m, |
1 m n, является стойкой к компрометации ключей m абонентов. |
|||
Вместе с тем следует понимать, что при компрометации m абонентов |
|||
ключи |
связи kst между |
остальными |
абонентами сильно коррелированны |
между собой, так что знание одного из них приводит к раскрытию всех.
Протоколы выработки общего ключа
В 1976 году Уитфилд Диффи (Witfield Diffie) и Мартин Хеллман
(Martin Heilman) предложили (Diffie W., Heilman М.Е. New directions in cryptography//IEEE Trans. Journal Inf. Theory. - 1976. - IT-22) принципиально новый подход к выработке и передаче ключевой информации по открытому каналу связи, не предполагающий наличия у участников протокола общего секретного ключа. Данный подход привел к появлению бесчисленного числа протоколов обмена ключевой информацией, которые можно отнести к двум большим классам:
протоколы выработки общего ключа, или, по-другому, протоколы открытого распределения ключей, в которых участники протокола совместно вырабатывают общий ключ k в процессе выполнения протокола; в англоязычной литературе такие протоколы носят название key agreement protocol,
протоколы передачи ключей или транспортные протоколы, в
которых один участник протокола передает другому участнику
секретный ключ k , выработанный заранее; в англоязычной литературе такие протоколы носят название key transport protocol.
Обший секретный ключ k , выработанный или переданный в ходе выполнения протокола обмена ключевой информацией, в дальнейшем может использоваться для зашифрования/расшифрования информации, передаваемой по линиям связи в зашифрованном виде.
Исходный протокол Диффи-Хеллмана являлся протоколом выработки общего ключа. Однако в дальнейшем заложенные в нем математические принципы были использованы для разработки протоколов передачи ключей.
Опишем предложенный Диффи-Хеллманом протокол, реализуемый в мультипликативной группе конечного простого поля GF(p), p - нечетное простое число. На протяжении всего раздела Протоколы выработки общего ключа будем считать, что q - простое число, q|p—1 и a элемент имеет показатель по модулю р, равный q, то есть aq 1 mod p .
Базовый протокол Диффи-Хеллмана
Для выработки общего ключа k участники A, B вырабатывают случайные числа x и y соответственно, 1 x,y q. Затем происходит обмен сообщениями:
1.A B:ax mod p ;
2.B A:ay mod p
После этого общий ключ вычисляется по формуле
10
k ax y mod p ay x mod p axy mod p
Злоумышленнику для определения ключа k по информации, доступной из канала связи, требуется решить задачу дискретного логарифмирования в поле GF(p), которая в целом относится к сложным проблемам математики и не имеет простого решения.
Вместе с тем данный протокол подвержен атаке, получившей в литературе название «человек посередине» (man in the middle) и заключающейся в подмене передаваемых участниками протокола сообщений в процессе выработки ключа
Пусть нарушитель C может изменять информацию, передаваемую по каналу связи. Тогда атака на протокол протокол Диффи-Хеллмана может быть записана следующим образом.
1.A C:ax mod p ;
2.C B:axb mod p ;
3.B C:ay mod p
4.C A:aya mod p
При этом, нарушитель С может быть представлен как участник протокола, расположенный посередине между участниками А и В:
A C B.
Тогда участник протокола А вырабатывает общий ключ kAC axya mod p , участник В - ключ kBC axa y mod p , а нарушитель - оба
ключа: kAC , kBC . При этом оба легитимных участника протокола A и B не догадываются о том, что они выработали секретный ключ с нарушителем.
Это приводит к тому, что в конечном итоге участники протокола будут обмениваться сообщениями не непосредственно друг с другом, а через нарушителя C, который получает полный контроль над каналом связи.
Для защиты протокола Диффи-Хеллмана от описанной выше атаки были предложены следующие модификации.
Протокол со взаимной аутентификацией
Следующая модификация протокола Диффи-Хеллмана использует механизм электронной подписи для аутентификации участников протокола.
Пусть kA , kB — секретные ключи электронной подписи соответственно участников A и B. Обозначим Sign(k, s) — алгоритм выработки электронной подписи под сообщением s, символом Е(k, s) — алгоритм зашифрования блочного шифра на ключе k . Тогда модифицированная версия протокола Диффи-Хеллмана выглядит следующим образом.
1. A B:ax mod p ;
2. B A:ay mod p ,E k,Sign kB,ay ||ax , |
где |
величина |
k ax y mod p . |
|
|