Криптографические методы защиты информации

Лекции

14. ПРОТОКОЛЫ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ

 

14.1. Общие сведения.

14.2. Протокол на базе алгоритма RSA.

14.2. Алгоритм цифровой подписи ГОСТ 34.10-94.

14.4. Алгоритм цифровой подписи ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012.

14.5. Разновидности ЭЦП.

14.6. Юридические основания использования ЭЦП.

Вопросы для самопроверки.

 

14.1. Общие сведения

 

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

Говоря о схеме цифровой подписи, обычно имеют в виду следующую классическую ситуацию [8]:

- отправитель знает содержание сообщения, которое он подписывает;

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

- безопасность схемы подписи гарантируется.

Электронная цифровая подпись – реквизит электронного документа, предназначенный для защиты данного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа ЭЦП и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе (Федеральный закон № 1-ФЗ "Об электронной цифровой подписи" от 10.01.2002г.).

Электронная цифровая подпись – информация в электронной форме, которая присоединена к другой информации в электронной форме (подписываемой информации) или иным образом связана с такой информацией и которая используется для определения лица, подписывающего информацию (Федеральный закон № 63-ФЗ "Об электронной подписи" от 06.04.2011г.).

[Электронная цифровая] подпись – строка бит, полученная в результате процесса формирования подписи (ISO/IEC 14888-1:2008 "Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 1. Общие положения" и ГОСТ Р 34.10-2012 "Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи").

При создании цифровой подписи по классической схеме отправитель:

- применяет к исходному сообщению T хеш-функцию h(T) и получает хеш-образ r сообщения;

- вычисляет цифровую подпись s по хеш-образу r с использованием своего закрытого ключа;

- посылает сообщение T вместе с цифровой подписью s получателю.

Получатель, отделив цифровую подпись от сообщения, выполняет следующие действия:

- применяет к полученному сообщению T хеш-функцию h(T) и получает хеш-образ r сообщения;

- расшифровывает хеш-образ r’ из цифровой подписи s с использованием открытого ключа отправителя;

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

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

Существует несколько схем ЭЦП, которые, как правило, применяются совместно с определенными хеш-функциями. Некоторые из них приведены в таблице.

Таблица 14.1. Схемы ЭЦП

Схема цифровой подписи Задача, лежащая в основе стойкости Хеш-функция
RSA Разложение числа на множители MD4 или MD5 (Message Digest Algorithm - алгоритм краткого изложения сообщения, Р. Ривест)
DSS (NIST1. FIPS Publication 186: Digital Signature Standard (DSS). May 1994)
DSS – Федеральный стандарт цифровой подписи США
Дискретное логарифмирование по схеме Эль-Гамаля SHA-1 (NIST. FIPS Publication 180: Secure Hash Standard (SHS). May 1993)
SHS – стандарт хэш-функции США
SHA - Secure Hash Algorithm – алгоритм хеш-функции
ECDSA (Elliptic Curve Digital Signature Algorithm) - алгоритм цифровой подписи на эллиптических кривых
Принят в качестве стандарта ISO2 14888-3 в 1998 г., ANSI3 X9.62 – 1999 г., IEEE4 1363 – 2000 г. и NIST 186-2 – 2000 г.
(последняя редакция – NIST. FIPS Publication 186-3: Digital Signature Standard (DSS). June 2009)
Дискретное логарифмирование в группе точек эллиптической кривой SHA (NIST. FIPS 180-3: Secure Hash Standard (SHS). October 2008)
ГОСТ 34.10-94 (Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма) Дискретное логарифмирование по схеме Эль-Гамаля ГОСТ 34.11-94 (Информационная технология. Криптографическая защита информации. Функция хэширования)
ГОСТ Р 34.10-2001 (Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи) Дискретное логарифмирование в группе точек эллиптической кривой ГОСТ 34.11-94 (Информационная технология. Криптографическая защита информации. Функция хэширования)
ГОСТ Р 34.10-2012 (Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи) Дискретное логарифмирование в группе точек эллиптической кривой ГОСТ Р 34.11-2012 (Информационная технология. Криптографическая защита информации. Функция хэширования)

Примечания.

1NIST - Национальный Институт стандартов и технологий, США (The National Institute of Standards and Technology).

2ISO - Международная организация по стандартизации (International Organization for Standardization).

3ANSI - Американский национальный институт стандартов (American National Standards Institute).

4IEEE - Институт инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers).

 

14.2. Протокол на базе алгоритма RSA

 

Этап 1. Выработка ключей (выполняет отправитель А) - см. лекцию "Шифрование с открытым ключом".

Этап 2. Отправка сообщения и электронной подписи (выполняет отправитель А).

Таблица 14.2. Отправка сообщения и ЭЦП на базе алгоритма RSA

№ п/пОписание операцииПример
1Вычисление хеш-образа h = h(T),
где T – исходное сообщение,
h(T) – хеш-функция (для MD5 длина хеш-образа 128 битов).
h = 7
2Выработка цифровой подписи s = hd mod n,
где d – закрытый ключ отправителя A,
n – часть открытого ключа отправителя A.
s = 729 mod 91 = 63
3Отправка получателю B исходного сообщения Т и цифровой подписи s.

Этап 3. Получение сообщения и проверка электронной подписи (выполняет получатель B).

Таблица 14.3. Получение сообщения и проверка ЭЦП на базе алгоритма RSA

№ п/пОписание операцииПример
1Вычисление хеш-образа по полученному сообщению h’ = h(T’),
где T’ – полученное сообщение.
Если Т = Т’, то должно быть h = h’.
h' = 7
2Вычисление хеш-образа из цифровой подписи h = se mod n,
где e и n – открытый ключ отправителя A.
h = 635 mod 91 = 7
3Если h' = h, то получатель B делает вывод, что полученное сообщение T’ = T и оно действительно отправлено А.

 

14.3. Алгоритм цифровой подписи ГОСТ 34.10-94

 

Алгоритм цифровой подписи ГОСТ 34.10-94 похож на DSS-94, вариация на тему алгоритмов Шнорра и Эль-Гамаля.

Этап 1. Выработка ключей (выполняет отправитель А).

Таблица 14.4. Выработка ключей для ЭПЦ по ГОСТ 34.10-94

№ п/пОписание операцииПример
1Выбор р - простого числа
(для ГОСТ 509 < p < 512 битов, либо 1020 < p < 1024 битов).
p = 79
2Выбор q - простого числа - множителя (р – 1)
(для ГОСТ 254 < q < 256 битов).
q = 13
3Выбор а - любого числа, меньшего (р – 1), для которого aq mod р = 1.813 mod 79 = 1, a = 8
4Выбор закрытого ключа х - числа, меньшего q.x = 4
5Вычисление открытого ключа y = ax mod p.y = 84 mod 79 = 67
6Публикация ключей.
Первые три параметра р, q и а - открыты и могут совместно использоваться пользователями сети,
y – персональный открытый ключ для одного пользователя,
x – персональный закрытый ключ отправителя А.

Этап 2. Отправка сообщения и электронной подписи (выполняет отправитель А).

Таблица 14.5. Отправка сообщения и ЭЦП по ГОСТ 34.10-94

№ п/пОписание операцииПример
1Вычисление хеш-образа h = h(T)
(для ГОСТ длина хеш-образа 256 битов).
h = 7
2Выбор k - любого числа, меньшего q.k = 11
3Вычисление двух значений:
w = ak mod p и w’ = w mod q
(для ГОСТ длина w’ 256 битов).
Если w’ = 0, перейти к этапу 2 и выбрать другое значение числа k.
w = 811 mod 79 = 21
w’ = 21 mod 13 = 8
4Вычисление s = (x w’ + k h) mod q
(для ГОСТ длина s 256 битов).
Если s = 0, перейти к этапу 2 и выбрать другое значение числа k.
s = (4*8 + 11*7) mod 13 = 5
5Отправка получателю B исходного сообщения Т и цифровой подписи (w’, s).

Этап 3. Получение сообщения и проверка электронной подписи (выполняет получатель B).

Таблица 14.6. Получение сообщения и проверка ЭЦП по ГОСТ 34.10-94

№ п/пОписание операцииПример
1Вычисление хеш-образа по полученному сообщению h’ = h(T’).
Если Т = Т’, то должно быть h = h’.
h' = 7
2Вычисление v = h’ q-2 mod q.v = 711 mod 13 = 2
3Вычисление двух значений:
z1 = (s v) mod q и z2 = ((q – w’) v) mod q.
z1 = (5 * 2) mod 13 = 10
z2 = ((13 – 8) * 2) mod 13 = 10
4Вычисление u = ((az1 * yz2) mod p) mod q.u = ((810 * 6710) mod 79) mod 13 = 8
5Если w’ = u, то получатель B делает вывод, что полученное сообщение T’ = T и оно действительно отправлено А.

 

14.4. Алгоритм цифровой подписи ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012

 

Алгоритмы цифровой подписи ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012 совпадают и похожи на ECDSA.

Этап 1. Выработка ключей (выполняет отправитель А) - см. лекцию "Шифрование с открытым ключом".

Этап 2. Отправка сообщения и электронной подписи (выполняет отправитель А).

Таблица 14.7. Отправка сообщения и ЭЦП по ГОСТ 34.10-2001 (34.10-2012)

№ п/пОписание операцииПример
1Вычисление хеш-образа h = h(T)
(для ГОСТ длина хеш-образа 256 битов).
h = 7
2Вычисление e = h mod q,
где q – часть открытого ключа отправителя A.
e = 7 mod 47 = 7
3Выбор k - любого числа, меньшего q.k = 11
4Определение точки эллиптической кривой C(xc, yc) = k P(xp, yp),
где P(xp, yp) – часть открытого ключа отправителя A.
C = 11 * P(7, 17) = (16, 16)
5Вычисление r = хс mod q.
Если r = 0, перейти к этапу 2 и выбрать другое значение числа k.
r = 16 mod 47 = 16
6Вычисление s = (r d + k e) mod q,
где d - закрытый ключ отправителя A.
Если s = 0, перейти к этапу 2 и выбрать другое значение числа k.
s = (16*10 + 11*7) mod 47 = 2
7Отправка получателю B исходного сообщения Т и цифровой подписи (r, s).

Этап 3. Получение сообщения и проверка электронной подписи (выполняет получатель B).

Таблица 14.8. Получение сообщения и проверка ЭЦП по ГОСТ 34.10-2001 (34.10-2012)

№ п/пОписание операцииПример
1Вычисление хеш-образа по полученному сообщению h’ = h(T’).
Если Т = Т’, то должно быть h = h’.
h' = 7
2Вычисление e’ = h’ mod q.e' = 7 mod 47 = 7
3Вычисление v = e’ -1 mod q.
(e’ * e’ -1) mod q = 1.
e’ -1 = 27
v = 27 mod 47 = 27
4Вычисление двух значений:
z1 = (s v) mod q и z2 = ((q – r) v) mod q.
z1 = (2 * 27) mod 47 = 7
z2 = ((47 – 16) * 27) mod 47 = 38
5Определение точки эллиптической кривой C’(xc’, yc’) = z1 P(xp, yp) + z2 Q(xq, yq),
где Q(xq, yq) – часть открытого ключа отправителя A.
C’ = 7 P(7, 17) + 38 Q(36, 20) = (22, 26) + (11, 31) = (16, 16)
6Вычисление r’ = xc’ mod q.r' = 16 mod 47 = 16
7Если r’ = r, то получатель B делает вывод, что полученное сообщение T’ = T и оно действительно отправлено А.

 

14.5. Разновидности ЭЦП

 

Кроме классической схемы ЭЦП различают еще несколько специальных [8]:

- схема "конфиденциальной" (неотвергаемой) подписи – подпись не может быть проверена без участия сгенерировавшего ее лица;

- схема подписи "вслепую" ("затемненной" подписи) - отправитель не знает подписанного им сообщения;

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

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

- и др.

 

14.6. Юридические основания использования ЭЦП

 

10 января 2002 г. Президент Российской Федерации В.В. Путин подписал Федеральный закон № 1-ФЗ "Об электронной цифровой подписи". Цель Федерального закона № 1-ФЗ - обеспечение правовых условий использования ЭЦП в электронных документах, при соблюдении которых ЭЦП в электронном документе признается равнозначной собственноручной подписи в документе на бумажном носителе.

В настоящий момент действует Федеральный закон № 63-ФЗ "Об электронной подписи" от 06.04.2011 г. Сфера действия (цель) Федерального закона № 63-ФЗ - регулирует отношения в области использования электронных подписей при совершении гражданско-правовых сделок, оказании государственных и муниципальных услуг, исполнении государственных и муниципальных функций, при совершении иных юридически значимых действий, в том числе в случаях, установленных другими федеральными законами.

В системах, где число пользователей исчисляется сотнями и тысячами, для проверки ЭЦП используются так называемые сертификаты ЭЦП (ЭП).

Сертификат ЭЦП – открытый ключ с некоторой дополнительной информацией о его владельце (регистрационный номер сертификата, ФИО владельца, срок действия и т.д.), подписанный ключом Центра сертификации (ЦС, Certificate Authority, CA, Удостоверяющий центр, УЦ).

В Федеральном законе "Об электронной подписи" даны следующие определения.

Сертификат ключа проверки электронной подписи – электронный документ или документ на бумажном носителе, выданные УЦ либо доверенным лицом УЦ и подтверждающие принадлежность ключа проверки ЭП владельцу сертификата ключа проверки ЭП.

Квалифицированный сертификат ключа проверки электронной подписи – сертификат ключа проверки ЭП, выданный аккредитованным УЦ или доверенным лицом аккредитованного УЦ либо федеральным органом исполнительной власти, уполномоченным в сфере использования ЭП.

При получении документа, подписанного ЭЦП, вначале подается запрос в ЦС, который высылает сертификат ЭЦП, информацию об окончании срока его действия или информацию об отсутствии сертификата. Если ЦС выслал сертификат, то считается, что документ послал именно тот, кто указан в сертификате. Для автоматизации деятельности ЦС применяется системы, называемые системы поддержки инфраструктуры открытых ключей (Public Key Infrastructure, PKI).

Впервые ссуда под ЭЦП (на покупку дома) была выдана в США 25 июля 2000г.

 

Вопросы для самопроверки

 

1. Дайте определение понятию "электронная цифровая подпись".

2. Опишите последовательность действий участников протокола при отправке и проверке ЭЦП.

3. Какой порядок использования ключей (открытый; закрытый) при отправке и проверке ЭЦП?

4. Опишите схему протокола ЭЦП на основе алгоритма RSA.

5. Перечислите специальные схемы ЭЦП.

6. Назовите цель введения в действие Федерального закона "Об электронной цифровой подписи".