Управление ключами асимметричных криптосхем

Управление ключами асимметричных криптосхем

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

Contents

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

Однонаправленная - это такая функция f, для которой значение функции y = f(x) легко определить, но практически невозможно найти для заданного y такое x, что y = f(x). Как пример однонаправленной функции y = f(x) , можно рассмотреть функцию дискретного возведения в степень: , в которой x – целое число от 1 до p-1 включительно, вычисление производят по модулю p, где p – большое простое число; – целое число от 1 до p [ВГДН08].

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

Однонаправленная функция с секретом - функция , которую легко вычислить для всех , но очень трудно инвертировать для почти всех значений из R. Однако, если используется секретная информация t, то для всех значений легко вычислить величину , удовлетворяющую условию [M05].

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

Факторизация целых чисел

Факторизация целого натурального числа - это его разложение в произведение простых множителей. f = xy, найти x и y, зная f.

Дискретное логарифмирование

Функция дискретного логарифмирования: , где x – целое число от 1 до p-1 включительно, а вычисление производится по модулю p, где p – очень большое простое число; a – целое число (1 < a < p). Надо найти x, зная y, p, a.

Алгоритмы генерации ключей в асимметричных криптосистемах

Схема шифрования RSA

Первая однонаправленная функция с секретом была предложена в 1978 году, с нее началось применение несимметричной криптографической системы RSA. Название функции и криптосистемы образовано от первых букв фамилий ее авторов - Р. Ривеста, А. Шамира и Л. Адлемара.

Однонаправленная функция RSA с секретом

Однонаправленная функция RSA с секретом – это дискретное возведение значения x в степень ключа e: , в котором z – секретные, p, q – это большие простые числа, x>n - целое, где n=p*q, e – целое положительное число, не больше функции Эйлера , где НОД [ВГДН08].

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

Злоумышленник сталкивается с задачей разложения на множители n=p*g . Поэтому исследования методов разложения составных чисел на множители стали очень популярны в последние несколько десятков лет. Эта задача называется задачей факторизации составных чисел, вычислительная сложность которого субэкспоненциальная.

В этой области были успешные разработки эффективных методов факторизации, поэтому при генерации чисел в алгоритме RSA числa p, q , имеющие размерность

Генерация ключей

1. Выбор двух различных случайных простых чисел p и q заданного размера.

2. Вычисление произведения этих чисел , которое называется модулем.

3. Вычисление функции Эйлера от модуляn:

4. Выбор целого числа e ( ), взаимно простого со значением .

5. Вычисление числа d, которое мультипликативно обратно к числу e по модулю , то есть это число должно удовлетворять сравнению:

6. Пара - открытый ключ RSA (public key). Является общедоступным.

7. Пара - закрытый ключ RSA (private key). Держится в секрете.

Числа e и d называют открытой и закрытой экспонентами соответсвенно. Число d вычисляется при помощи расширенного алгоритма Евклида.

Схема шифрования Эль-Гамаля

Схема была предложена Тахером Эль-Гамалем в 1985 году. В его схеме используется сложность решения задачи поиска дискретного логарифма элемента в большом конечном поле или группе.

Однонаправленная функция Эль-Гамаля с секретом

Однонаправленная функция в схеме Эль-Гамаля связана с задачей вычисления дискретных логарифмов в алгебраическом поле. Если заданы: простое число p, которое порождает поле , примитивный элемент g: 0<g<p, найти элемент x ( ) такой, что , по элементу y поля [ВГДН08].

x – секретный ключ, y – это открытый ключ.

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

Генерация ключей

1. Генерация случайного простого числа p длиной n битов.

2. Выбор случайного примитивного элемента g поля Zp.

3. Выбор случайного целого числа x такого, что 1 < x < p−1.

4. Вычисление y = g x modp.

5. Открытый ключ - тройка (p,g,y), закрытый ключ — число x

Личностная (ID-Based) криптография

Ади Шамир, один из создателей криптосистемы RSA, в 1984 году написал статью, в которой предложил еще одну криптосистему, называемую ID-Based Cryptography.

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

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

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

Криптография без сертификата

Является вариантом описанной выше схемы личностностной криптографии, в которой ключ генерируются доверенным центром. В схеме ID-Based появляется проблема организованного хранения ключей, ведь в случае компрометации центра генерации ключей (ЦГК) система будет полностью разрушена. В схеме без сертификата процесс генерации ключей распределяется между ЦГК и пользователем. Сначала ЦГК генерирует пару ключей, но сгенерированный им закрытый ключ теперь лишь часть закрытого ключа системы. Остальная часть ключа является сгененированным пользователем случайным числом и никогда не раскрывается никому, даже ЦГК. Все криптографические операции от пользователя осуществляется с помощью полного закрытого ключа. Недостатком такой системы является то, что идентификационная информация уже не образует весь открытый ключ.

Сертификаты в криптосистемах с открытым ключом

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

Сертификат

Сертификаты открытых ключей – это структуры данных, предназначенные для хранения, распространения или пересылки по незащищенным каналам открытых ключей с гарантией их целостности и аутентичности (принадлежности конкретным субъектам).

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

В сертификате идентифицирующая информация об объекте (стороне, владельце ключа) достоверно связывается с его открытым ключом. Достоверность обеспечивается проверкой подписи издателя (issuer) – удостоверяющего центра или центра сертификации, которому вы доверяете.

Сертификат открытого ключа – это цифровой документ (структура данных), состоящий из раздела данных и раздела подписи [ПГ07].

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

Дополнительная информация может включать:

• Срок действия открытого ключа.

• Серийный номер или имя, идентифицирующее сертификат или ключ.

• Дополнительную информацию о владельце сертификата (например, обычный или сетевой адрес).

• Дополнительную информацию о ключе (например, алгоритм и намечаемое использование).

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

• Информацию, облегчающую проверку подписи (например, идентификатор подписывающего алгоритма, и выданное ЦС имя).

• Конкретные операции, для которых должен использоваться открытый ключ (шифрования данных или ЭЦП).

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

Сертификаты – одно из средств перемещения доверия посреднику – удостоверяющему центру, в отличие от непосредственного установления доверия между сторонами. Аутентичность открытого ключа УЦ может быть первоначально обеспечена некриптографическими способами, включая личное посещение УЦ или доставку доверенным курьером (требуется аутентичность, а не секретность).

Центр сертификации

Центр сертификации (ЦС) или удостоверяющий центр (УЦ) - это служба, которая выдает сертификаты. Это доверенная третья сторона, чья подпись под сертификатом подтверждает подлинность связи открытого ключа с представляемым объектом (стороной).Именно центр сертификации является гарантом связи между открытым ключом субъекта и содержащейся в сертификате информацией по идентификации этого субъекта [ПГ07].

Участник протокола может удостовериться в подлинности сертификата и, соответственно, в подлинности открытого ключа другого участника, проверив подпись центра сертификации. Для этого у ЦС есть своя собственная подписывающая ключевая пара, аутентичный открытый ключ (принадлежность которого подтверждена), который должен быть у каждого пользователя.

Деятельность ЦС не ограничивается выпуском сертификата. Сертификаты открытых ключей имеют свой "срок годности", и по его истечению открытый ключ становится недействительным. Также по различным причинам, например, компрометации ключа или утери закрытого ключа, срок действия открытого ключа может быть уменьшен или отозван сертификат. Существует список, где пользователи, имеющие сертификаты этого ЦС, могут посмотреть статус своего сертификата, приостановить его действие, отозвать или возобновить. Этот список называется списком отозванных сертификатов (СОС).

Так ЦС выполняет четыре основных функции:

• издает сертификаты ключей (создает и подписывает);

• поддерживает информацию о статусе сертификатов;

• публикует свои и изданные им текущие сертификаты;

• архивирует информацию об истекших или отозванных сертификатах, которые он издал.

В современных инфокоммуникационных системах полноценная реализация концепции сертификации открытых ключей производится развертыванием инфраструктуры открытых ключей (или PKI — public key infrastructure — в англоязычной терминологии).

Форматы сертификатов

Сертификат может быть представлен множеством различных форматов.

PGP поддерживает два формата сертификатов:

• Сертификаты OpenPGP (чаще называемые просто ключами PGP)

Формат сертификата PGP

Сертификат PGP содержит следующие сведения:

• Открытый ключ владельца сертификата – открытая часть ключевой пары и её алгоритм: RSA v4, RSA Legacy v3, DH или DSA.

• Сведения о владельце сертификата – информация о пользователе, например имя, адрес электронной почты, фотография.

• ЭП владельца сертификата – подпись ключевой пары, связанной с сертификатом.

• Период действия сертификата – дата, когда сертификат становится действительным и дата, когда у сертификата истекает срок действия.

• Предпочтительный алгоритм шифрования. Зашифрованная каким алгоритмом информация предпочтительна для владельца сертификата (CAST, AES, IDEA, Triple-DES и Twofish).

Формат сертификата Х.509

Х.509 – другой распространённый формат. Все сертификаты Х.509 соответствуют международному стандарту ITU-T X.509; таким образом (теоретически), сертификат Х.509, созданный для одного приложения, может быть использован в любом другом, поддерживающем этот стандарт. На практике, однако, сложилась ситуация, что разные компании создают собственные расширения для Х.509, не все из которых между собой совместимы.

Всякий сертификат требует, чтобы кто-то заверил взаимосвязанность открытого ключа и идентифицирующей владельца ключа информации. Имея дело с PGP-сертификатом, каждый может выступать в качестве заверителя содержащихся в нём сведений (за исключением случаев, когда эта возможность намеренно ограничена политикой безопасности). Но в случае сертификатов Х.509 заверителем может быть только Центр сертификации или некто, специально уполномоченный им на эту роль. (Имейте в виду, что PGP-сертификаты также в полной мере поддерживают иерархическое структурирование системы доверия, использующее ЦС для удостоверения сертификатов.)

Сертификат Х.509 – это набор стандартных полей, содержащих сведения о пользователе или устройстве, и их соответствующий открытый ключ. Стандарт Х.509 определяет, какие сведения входят в сертификат и как они кодируются (формат данных) [ПГ07].

• Версия Х.509 – указывает, на основе какой версии стандарта Х.509 построен данный сертификат, что определяет, какая информация может в нём содержаться.

• Серийный номер - целочисленный номер, присваеваемый каждому сертификату его издателем. Должен быть уникальным для каждого ЦС.

• Идентификатор алгоритма подписи – указывает алгоритм, использованный ЦС для подписания сертификата.

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

• Период действия сертификата – дата, когда сертификат становится действительным и дата, когда у сертификата истекает срок действия.

• Имя субъекта - отличительное имя владельца индивидуального ключа, соответствующему открытому ключу в данном сертификате.

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

• Уникальный идентификатор издателя и уникальный идентификатор субъекта – идентификаторы, которые встречаются только в сертификатах версии 2 или 3. Предназначены для обработки повторно используемых имен субъектов или имен издателей на протяжении длительного времени.

• Дополнения - это необязательное поле, встречается только в версии 3. Содержит одно или более расширений сертификатов.

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

Различия форматов PGP и Х.509

Существует ряд фундаментальных различий между форматами сертификатов Х.509 и PGP:

• вы можете лично создать собственный сертификат PGP; вы должны запросить и получить сертификат Х.509 от Центра сертификации;

• сертификаты Х.509 содержат только одно имя владельца сертификата;

• сертификаты Х.509 содержат только одну ЭП, подтверждающую подлинность сертификата.