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

Содержание скрыть

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

Электронная подпись предназначена

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

Использование электронной подписи позволяет осуществить:

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

Сферы использования ЭЦП:

  • электронная торговля;
  • таможенные декларации;
  • регистрация сделок в банках;
  • контроль исполнения государственного бюджета,
  • в системах обращения к органам власти;
  • электронный документооборот
  • и др.

Схема электронной подписи включает в себя

• алгоритм генерации ключевой пары пользователя, который случайно выбирает закрытый ключ и вычисляет соответствующий ему открытый ключ; • формирование подписи – для электронного документа с помощью закрытого ключа вычисляется подпись

• проверку (верификацию) подписи – для документа и подписи с помощью открытого ключа определяется действительность подписи.

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 1 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 31

Алгоритмы получения ЭП

Алгоритмы ЭЦП делятся на два больших класса:

1) обычные цифровые подписи, которые необходимо связывать с подписываемым сообщением.

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

Две основные схемы построения ЭЦП

Симметричная схема

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

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 3 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 32

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

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

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

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

В связи с этим симметричные схемы имеют следующие преимущества:

  • Стойкость симметричных схем ЭП вытекает из стойкости используемых блочных шифров, надежность которых также хорошо изучена.
  • Если стойкость шифра окажется недостаточной, его легко можно будет заменить на более стойкий с минимальными изменениями в реализации.

Однако у симметричных ЭП есть и ряд недостатков:

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

Из-за рассмотренных недостатков симметричная схема ЭЦП Диффи-

Хелмана не применяется, а используется её модификация, разработанная Березиным и Дорошкевичем, в которой подписывается сразу группа из

нескольких бит. Это приводит к уменьшению размеров подписи, но к

увеличению объема вычислений. Для преодоления проблемы

«одноразовости» ключей используется генерация отдельных ключей из главного ключа

Асимметричная схема 

Асимметричные схемы ЭП относятся к криптосистемам с открытым ключом. В отличие от асимметричных алгоритмов шифрования, в которых зашифрование производится с помощью открытого ключа, а расшифрование — с помощью закрытого, в схемах цифровой подписи подписывание производится с применением закрытого ключа, а проверка — с применением открытого.

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 5 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 33

Общепризнанная схема цифровой подписи охватывает три процесса:

  • Генерация ключевой пары.
  • Формирование подписи.
  • Проверка (верификация) подписи.

Для того, чтобы использование цифровой подписи имело смысл, необходимо выполнение двух условий:

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

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

Недостатки асимметричной схемы:

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

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

разнообразием задач, решаемых с помощью ЭП.

Виды асимметричных ЭП 

Как было сказано выше, чтобы применение ЭП имело смысл, необходимо, чтобы вычисление легитимной подписи без знания закрытого ключа было вычислительно сложным процессом.

Обеспечение этого во всех асимметричных алгоритмах цифровой подписи опирается на следующие вычислительные задачи:

  • Задачу дискретного логарифмирования (EGSA)
  • Задачу факторизации, то есть разложения числа на простые множители (RSA)

Вычисления тоже могут производиться двумя способами: на базе математического аппарата эллиптических кривых (ГОСТ Р 34.10-2012, ECDSA) и на базе полей Галуа (ГОСТ Р 34.10-94, DSA). В настоящее время самые быстрые алгоритмы дискретного логарифмирования и факторизации являются субэкспоненциальными. Принадлежность самих задач к классу NP-полных не доказана. Алгоритмы ЭП подразделяются на обычные цифровые подписи и на цифровые подписи с восстановлением документа. При верификации цифровых подписей с восстановлением документа тело документа восстанавливается автоматически, его не нужно прикреплять к подписи. Обычные цифровые подписи требуют присоединение документа к подписи. Ясно, что все алгоритмы, подписывающие хеш документа,

относятся к обычным ЭП. К ЭП с восстановлением документа относится, в частности, RSA.

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

Также алгоритмы ЭП делятся на детерминированные и вероятностные. Детерминированные ЭП при одинаковых входных данных вычисляют одинаковую подпись. Реализация вероятностных алгоритмов более сложна, так как требует надежный источник энтропии (генератор псевдослучайных

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

Алгоритмы ЭЦП

Наибольшее распространение в настоящее время имеют алгоритмы с ассиметричной структурой:

  • FDH (Full Domain Hash), вероятностная схема RSA-PSS (Probabilistic Signature  Scheme), схемы стандарта PKCS#1 и другие схемы, основанные на алгоритме RSA
  • Схема Эль-Гамаля
  • Американские стандарты электронной цифровой подписи: DSA, ECDSA  (ECDSA на основе аппарата эллиптических кривых)
  • Российские стандарты электронной цифровой подписи:

ГОСТ Р 34.1094 (в настоящее время не действует), ГОСТ Р 34.10-2012

  • Схема Диффи-Хельмана
  • Украинский стандарт электронной цифровой подписи ДСТУ 4145-2002
  • Белорусский стандарт электронной цифровой подписи СТБ 1176.2-99
  • Схема Шнорра
  • Pointcheval-Stern signature algorithm
  • Вероятностная схема подписи Рабина
  • Схема BLS (Boneh-Lynn-Shacham)
  • Схема GMR (Goldwasser-Micali-Rivest)

Примеры симметричных алгоритмов:

  • DES (Data Encryption Standard)- Шифруется блок из 64 бит, используется 64-битовый ключ (требуется только 56 бит), 16 проходов.
  • 3-DES или тройной DES
  • RC5
  • CAST 64-битный блочный шифратор, ключи длиной от 40 до 64 бит, вскрывается только прямым перебором.
  • Устройство с одноразовыми ключами — У отправителя и получателя имеются одинаковые устройства. 

Схема подписи на основе алгоритма RSA.

Для создания подписи сообщения М отправитель:

1.  Вычисляет сжатый образ (дайджест сообщения, хэш-образ) R = Н(М) с помощью хэш-функции Н.

2.  Зашифровывает полученный сжатый образ на своем секретном ключе и получает подпись

     S=Rdmodn, где {d,n}-закрытый ключ отправителя.

Для проверки подписи получатель:

1.  Расшифровывает подпись S на открытом ключе отправителя, то есть вычисляет R’ = Semodn, где {е, п} — открытый ключ отправителя.

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

3.  Сравнивает полученные значения R и R’, если они совпадают, то подпись верна.

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 7 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 34

Таким образом, ЭЦП — набор электронных цифровых символов, подтверждающий достоверность электронного документа, его принадлежность и неизменность содержания.

Закрытый ключ ЭЦП — последовательность электронных цифровых символов, известная владельцу подписи и предназначенная для создания ЭЦП.

Открытый ключ ЭЦП — последовательность электронных цифровых символов, доступная любому лицу и предназначенная для подтверждения подлинности ЭЦП в электронном документе.

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 9 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 35

Цифровая подпись на основе алгоритма Эль-Гамаля

Группа пользователей выбирает общие параметры Р и А. Затем каждый абонент группы выбирает свое секретное число Хi, 1<Хi<Р-1, и вычисляет соответствующее ему открытое число горитм Эль-Гамаля также можно использовать  Y_i \: : \: Y_i=A^{X_i} \: mod \: P

Таким образом, каждый пользователь получает пару (закрытый ключ; открытый ключ) = (Хi,Yi).

Пусть пользователь 1 хочет подписать свое сообщение цифровой подписью и передать его пользователю 2. В этом случае алгоритм действий следующий.

Первый пользователь выбирает случайное секретное число k, взаимно простое с Р-1, и вычисляет число a=A^k \: mod \: P

Затем с помощью расширенного алгоритма Евклида необходимо найти значение b в следующем уравнении:

m = (X1 * a +k * b) mod (P-1)

 Пара чисел (a, b) будет цифровой подписью сообщения m.

Сообщение m вместе с подписью (a, b) отправляется пользователю 2.

Пользователь 2 получает сообщение m и с использованием открытого ключа первого абонента Y1 вычисляет два числа по следующим формулам:

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 13 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 36

Если с1=с2, то цифровая подпись первого пользователя верная. Для подписывания каждого нового сообщения должно каждый раз выбираться новое значение k.

Подписи, созданные с использованием алгоритма Эль-Гамаля, называются рандомизированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будут создаваться разные подписи (a,b), поскольку каждый раз будет использоваться новое значение k. Подписи, созданные с применением алгоритма RSA, называются детерминированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будет создаваться одна и та же подпись.

Пример вычисления и проверки цифровой подписи

Пусть абоненты, обменивающиеся через Интернет зашифрованными сообщениями, имеют следующие общие параметры: Р = 11, А = 7.

Один из пользователей этой системы связи хочет подписать свое сообщение m=5 цифровой подписью, сформированной по алгоритму Эль-Гамаля. Вначале он должен выбрать себе закрытый ключ, например, Х1=3 и сформировать открытый ключ Y1 = 73mod11= 2. Открытый ключ может быть передан всем заинтересованным абонентам или помещен в базу данных открытых ключей системы связи.

Затем пользователь выбирает случайное секретное число k, взаимно простое с Р-1. Пусть k=9 (9 не имеет общих делителей с 10). Далее необходимо вычислить число

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 15 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 37

После этого с помощью расширенного алгоритма Евклида находится значение b в уравнении:

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 17 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 38

Решением последнего уравнения будет значение b=9.

Таким образом, пара чисел (8, 9) будет цифровой подписью сообщения m=5.

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

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 19 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 39

Так как с1=с2, то цифровая подпись первого пользователя в сообщении m=5 верная.

Стандарт цифровой подписи DSS

Во многих странах сегодня существуют стандарты на электронную (цифровую) подпись. Стандарт цифровой подписи DSS (Digital Signature Standard – DSS) был принят в США в 1991 году и пересмотрен в 1994 году. В основе стандарта лежит алгоритм, называемый DSA (Digital Signature Algorithm) и являющийся вариацией подписи Эль-Гамаля. В алгоритме используется однонаправленная хэш-функция H(m). В качестве хэш-алгоритма стандарт DSS предусматривает использование алгоритма SHA-1.

Рассмотрим сам алгоритм генерации ЭЦП. Вначале для группы абонентов выбираются три общих (несекретных) параметра р, q и a:

  • параметр р должен быть простым числом длиной от 512 до 1024 бит.
  • q – простое число длиной 160 бит; между p и q должно выполняться соотношение p = bq + l для некоторого целого b.
  • число а, удовлетворяющее неравенству 1 < a < p-1 и являющееся корнем уравнения aqmod p = l.

Зная эти числа, каждый абонент системы случайно выбирает число х, удовлетворяющее неравенству 0<х<q, и вычисляет y = axmod p.

Число х будет секретным ключом пользователя, а число у — открытым ключом. Вычислить у по известному х довольно просто. Однако, имея открытый ключ у, вычислительно невозможно определить х, который является дискретным логарифмом у по основанию q .

Пусть имеется сообщение m, которое один из пользователей желает подписать. Для генерации подписи пользователь должен выполнить следующие действия:

1. Вычислить значение хэш-функции h = H(m) для сообщения m. Значение хэш-функции должно лежать в пределах 0 < h < q.

2. Затем сгенерировать случайное число k, 0 < k < q.

3. Вычислить r = (akmod p) mod q.

4. Определить s = [k-1(H(m) + x*r)] mod q

В результате пользователь получит для сообщения m подпись, состоящую из пары чисел (r,s). Сообщение вместе с подписью может быть послано любому другому абоненту системы. Проверить подпись можно следующим образом:

1. Вычислить значение хэш-функции h = H(m) для сообщения m.

2. Проверить выполнение неравенств 0 < r < q,

0 < s < q.

3. Вычислить w = s-1 mod q ;

4. u1 = [H(m) * w] mod q

5. u2 = r * w mod q

6. v = [(аu1 * yu2) mod p] mod q

Проверить выполнение равенства v = r. Если v = r, то подпись считается подлинной, иначе подпись считается недействительной.

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

Стандарт цифровой подписи ГОСТ Р34.10-94

В России принят стандарт ГОСТ Р34.10-94 «Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма». В этом стандарте используется алгоритм, аналогичный алгоритму, реализованному в стандарте DSS.

Вначале, так же как и по стандарту DSS, для группы абонентов выбираются три общих (несекретных) параметра р, q и a.

По-разному вычисляется компонента s подписи. В ГОСТ Р34.10-94 компонента s вычисляется по формуле

s = (k( H(m) + x( r) mod q,

а в DSS компонента s вычисляется по формуле

s = [k -1 ( (H(m) + x(r))] mod q.

Последнее отличие приводит к соответствующим отличиям в формулах для проверки подписи.

В результате процедура проверки подписи по ГОСТ Р34.10-94 заключается в следующем. Получив [m, (r, s)], получатель вычисляет

w = H(m)-1mod q,

u1 = w * s mod q,

u2 = (q-r) * w mod q,

v = [(аu1 * yu2) mod p] mod q.

Затем проверяется равенство вычисленного значения v и полученного в составе ЭЦП параметра r. Подпись считается корректной, если v = r.

Пример создания и проверки подписи по стандарту ГОСТ Р34.10-94

Пусть p = 23, q = 11, a =6 (проверяем: 611mod 23 = l )

Создание подписи.

Предположим, пользователь А выбрал в качестве закрытого ключа число х=8. После этого он вычисляет открытый ключ по формуле y=аxmod p. То есть y = 68 mod 23 = 18.

Для создания подписи пользователь А выбирает случайное число k = 5.

Пусть результат вычисления хэш-функции для сообщения H(m) = 9.

Подпись сообщения состоит из двух чисел (r, s):

r = (аkmod p) mod q = (65 mod 23) mod 11 = 2,

s = (k* H(m) + x * r) mod q = (5*9 + 8*2)mod 11 = 6,

Таким образом, подпись сообщения состоит из пары чисел (2, 6).

Проверка подписи.

Получив сообщение вместе с подписью (2,6), получатель вычисляет

w = H(m)-1mod q = 9-1mod 11 = 5,

u1 = w * s mod q = 5 * 6 mod 11 = 8,

u2 = (q-r)*w mod q = (11-2)*5 mod 11 = 1,

v = [(аu1*yu2) mod p] mod q =[(68*181)mod 23]mod 11= 2

Так как v = r, то подпись считается верной.

DSA

• Алгоритм с использованием открытого ключа для создания электронной подписи (не для шифрования)

• Секретное создание хеш-значения и публичная проверка ее — только один человек может создать хеш-значение сообщения, но любой может проверить её корректность

• Основан на вычислительной сложности взятия логарифмов в конечных полях

• Для подписывания сообщений необходима пара ключей — открытый и закрытый

• При этом закрытый ключ должен быть известен только тому, кто подписывает сообщения, а открытый — любому желающему проверить подлинность сообщения

• Также общедоступными являются параметры самого алгоритма

DSA. Параметры алгоритма

1. Выбор хеш-функции H(x)

2. Выбор большого простого числа q, размерность которого в битах совпадает с размерностью в битах значений хэш-функции H(x)

3. Выбор простого числа p, такого, что (p-1) делится на q. Размерность p задает криптостойкость системы. Ранее рекомендовалась длина в 1024 бита. В данный момент для систем, которые должны быть стойкими до 2010 (2030) года, рекомендуется длина в 2048 (3072) бита

4. Выбор числа g такого, что его мультипликативный порядок по модулю p равен q

DSA. Генерация открытого и закрытого ключа

• Закрытый ключ представляет собой число x в интервале (0,q)

• Открытый ключ вычисляется по формуле y= g xmod p

• Открытыми параметрами являются числа (p, q, g, y)

• Закрытый параметр только один — число x

Подпись сообщения

1. Выбор случайного числа k из (0;q)

2. Вычисление r=(g k mod p)mod q

3. Вычисление s=(k -1 (H(m)+x· r)) mod p

4. Выбор другого k, если оказалось, что r=0 или s=0

5. Подписью является пара чисел (r, s)

DSA. Проверка подписи

• Вычисление w= s-1 mod q •

 Вычисление u1 = (H(m) · w)mod q

• Вычисление u2 = (r · w)mod q

• Вычисление v = ((gu1 · yu2)mod p) mod q

• Подпись верна, если v = r

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 21 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 40

Использование хеш-функций для построения ЭЦП

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

Использование хеш-функций даёт преимущества:

  1. Выигрыш в вычислительной сложности. Хэш документа имеет гораздо меньшую длину, чем сам документ, а алгоритмы вычисления хэша быстрее алгоритмов ЭЦП. Поэтому формировать хэш документа и подписывать его намного быстрее, чем подписывать сам документ.
  2. Совместимость. Хеш-функцию можно использовать для преобразования произвольного входного текста в подходящий формат.
  3. Целостность. Без использования хеш-функции большой документ в некоторых схемах надо делить на меньшие блоки, а потом подписывать. В этом случае при верификации невозможно определить, все ли блоки получены и в правильном ли они порядке. Хэширование снимает эти вопросы.

В качестве исходного значения для вычисления ЭЦП берется не сам электронный документ, а его хэш-значение или дайджест.

Хэш-значение h(M) — это дайджест сообщения М, т.е. сжатое двоичное представление основного сообщения М произвольной длины.

Функция хэширования (хэш-функция) представляет собой преобразование, на вход которого подается сообщение переменной длины М, а выходом является строка фиксированной длины H= h(M).

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 23 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 41

Функция хэширования позволяет сжать подписываемый документ М до 128 и более бит (в частности до 128 или 256 бит), тогда как М может быть размером в мегабайт или более.

Следует отметить, что значение хэш-функции h(M) зависит сложным образом от документа М и не позволяет восстановить сам документ М.

Функция хэширования обладает следующими свойствами:

—   хэш-функция может быть применена к аргументу любого размера;

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

— хэш-функция чувствительна к всевозможным изменения в тексте М, таким как вставки, выбросы, перестановки и т.п.;

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 25 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 42

—   хэш-функция однонаправлена, т.е. обладает свойством необратимости, иными словами, задача подбора документа М’ который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима;

  • вероятность того, что значения хэш-функций двух различных документов (вне зависимости от их длин) совпадут, ничтожно мала, т.е. для любого фиксированного х с вычислительной точки зрения невозможно найти х’ для х, такое, что h(x‘) = h(x).
  • Таким образом, функция хэширования может использоваться для обнаружения изменений сообщения. В этом качестве хэш-функция используется для контроля целостности сообщения при формировании и проверке ЭЦП.
  • Хэш-функции широко используются также для аутентификации пользователей.

Угрозы цифровой подписи

Злоумышленник может:

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

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

Социальные атаки

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

закрытым ключами.

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

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

Пример 1:

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 27 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 43

А – может выложить свой публичный ключ в сети на сервере с открытым доступом. Каждый  (В или С) может скачать его и прислать конфиденциальное письмо для А.

Сообщение может прочесть только А, так как лишь он обладает частным (секретным), ключом раскрывающим сообщение, то есть проблема конфиденциальности решена.

Но А не может быть уверен, что сообщение не прислал С, выдающий себя за В. Таким образом, аутентификация не обеспечивается

Пример 2:

Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 29 – Студенты России
Цифровая электронная подпись. Алгоритмы получения ЭП, области применения, угрозы взлома. 44

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

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

Взлом подписей

В своей работе Гольдвассер, Микали и Ривес описывают следующие модели атак, которые актуальны и в настоящее время:

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

Также в работе описана классификация возможных результатов атак:

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

Ясно, что самой «опасной» атакой является адаптивная  атака на основе выбранных сообщений, и при анализе  алгоритмов ЭП на криптостойкость нужно  рассматривать именно её (если нет каких-либо особых условий).

При безошибочной реализации современных алгоритмов ЭП получение закрытого ключа алгоритма является практически невозможной задачей из-за

вычислительной сложности задач, на которых ЭП построена. Гораздо более вероятен поиск криптоаналитиком коллизий первого и второго рода.

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

Подделка документа (коллизия первого рода)

Злоумышленник может попытаться подобрать документ к данной подписи, чтобы подпись к нему подходила. Однако в подавляющем

большинстве случаев такой документ может быть только один. Причина в следующем:

  • Документ представляет из себя осмысленный текст.
  • Текст документа оформлен по установленной форме.
  • Документы редко оформляют в виде Plain Text- файла, чаще всего в формате DOC или HTML.

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

  • Случайный набор байт должен подойти под сложно структурированный формат файла.
  • То, что текстовый редактор прочитает в случайном наборе байт, должно образовывать текст, оформленный по установленной форме.
  • Текст должен быть осмысленным, грамотным и соответствующим теме документа.

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

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

Получение двух документов с одинаковой подписью (коллизия второго рода)

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

Сроки действия ключей

Одной из важных характеристик системы управления ключами являются сроки действия

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

Сокращение сроков действия ключей необходимо для достижения следующих целей:

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

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

  • Ключи с длительным сроком действия. К ним относится главный ключ, часто — ключи для шифрования ключей.
  • Ключи с коротким сроком действия. К ним относятся ключи для шифрования данных.

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

термин «короткий срок действия» относится только к сроку действия ключа, а не к промежутку времени, в течение которого ключ должен оставаться в секрете. Например, к ключу, используемому для

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

Список используемой литературы:

1) Дмитриев. В.Т  «Исследование алгоритмов криптографической защиты информации»

2) Д.Иртегов, Защита интеллектуальной собственности в интернете, СПб, БХВ- Петербург, 2007г.

3) Ю.А. Солоницын, В.Холмогоров, Интернет. Энциклопедия, СПб, Питер, 2006г.

4) В.Е. Фигурнов Интернет для пользователя. Краткий курс. – М.: ИНФРА-М, 1999г.

5) Поисковая система. Википедия (ЭЦП)

Поделитесь ссылкой: