Электронная цифровая подпись, СТБ 1176.2-99

МО РБ

УО «Полоцкий  государственный университет»

    Кафедра вычислительных систем и сетей 

Реферат

По курсу: Теория информации

Тема: «Электронная цифровая подпись, СТБ 1176.2-99»

 
 
 
 
 
 

Разработал:                                                             Зяблицын Р.И.

                               гр. 08-ИТ-1

Проверил:                                                                      Богуш Р.П.

        Полоцк,

         2010 г.

Электронная цифровая подпись

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

Назначение  и применение ЭЦП

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

Кроме этого, использование  цифровой подписи позволяет осуществить:

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

Все эти свойства ЭЦП позволяют использовать её для  следующих целей:

  • Декларирование товаров и услуг (таможенные декларации)
  • Регистрация сделок по объектам недвижимости
  • Использование в банковских системах
  • Электронная торговля и госзаказы
  • Контроль исполнения государственного бюджета
  • В системах обращения к органам власти
  • Для обязательной отчетности перед государственными учреждениями
  • Организация юридически значимого электронного документооборота
  • В расчетных и трейдинговых системах

История возникновения

В 1976 году Уитфилдом Диффи и Мартином Хеллманом было впервые предложено понятие «электронная цифровая подпись», хотя они всего лишь предполагали, что схемы ЭЦП могут существовать.

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

Вскоре после RSA были разработаны другие ЭЦП, такие как алгоритмы цифровой подписи Рабина, Меркле.

В 1984 году Шафи Гольдвассер, Сильвио Микали и Рональд Ривест первыми строго определили требования безопасности к алгоритмам цифровой подписи. Ими были описаны модели атак на алгоритмы ЭЦП, а также предложена схема GMR, отвечающая описанным требованиям.

Введенный в 1999г. стандарт Республики Беларусь СТБ 1176.2 "Информационная технология. Защита информации. Процедуры выработки и проверки электронной цифровой подписи " базируется на схеме ЭЦП Шнорра.

Алгоритмы

Существует несколько  схем построения цифровой подписи:

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

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

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

Схема, поясняющая алгоритмы подписи  и проверки

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

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

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

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

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

Следует отличать электронную цифровую подпись от кода аутентичности сообщения (MAC).

Перечень  алгоритмов ЭЦП

Асимметричные схемы:

  • FDH (Full Domain Hash), вероятностная схема RSA-PSS (Probabilistic Signature Scheme), схемы стандарта PKCS#1 и другие схемы, основанные на алгоритме RSA
  • Схема Эль-Гамаля
  • Американские стандарты электронной цифровой подписи: DSA, ECDSA (DSA на основе аппарата эллиптических кривых)
  • Российские стандарты электронной цифровой подписи: ГОСТ Р 34.10-94 (в настоящее время не действует), ГОСТ Р 34.10-2001
  • Схема Диффи-Лампорта
  • Украинский стандарт электронной цифровой подписи ДСТУ 4145-2002
  • Белорусский стандарт электронной цифровой подписи СТБ 1176.2-99
  • Схема Шнорра
  • Вероятностная схема подписи Рабина
  • Схема BLS (Boneh-Lynn-Shacham)
  • Схема GMR (Goldwasser-Micali-Rivest)

Подделка  подписей

Анализ возможностей подделки подписей называется криптоанализ. Попытку фальсифицировать подпись или подписанный документ, криптоаналитики называют «атака».

Модели  атак и их возможные  результаты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Злоумышленник может  обманом заставить владельца  подписать какой-либо документ, например, используя протокол слепой подписи.

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

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

Управление  ключами

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

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

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

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

Хранение  закрытого ключа

 

Смарт-карта и USB-брелоки  eToken

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

В настоящее время  существуют следующие устройства хранения закрытого ключа:

  • Дискеты
  • Смарт-карты
  • USB-брелок
  • Таблетки Touch-Memory

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

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

В соответствии с  законом «ОБ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ», ответственность за хранение закрытого ключа владелец несет  сам.

Использование ЭЦП

Введенный в 1999г. стандарт Республики Беларусь СТБ 1176.2-99 "Информационная технология. Защита информации. Процедуры  выработки и проверки электронной  цифровой подписи"  базируется на схеме ЭЦП Шнорра. 

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

Описание протоколa

Выбор параметров системы

Выбирается простое и простое q, такое, что − 1 (,  )

Выбирается элемент β, такой, что β= 1(mod p)

Параметры (p,q,β) свободно публикуются

Выбирается параметр t,  (t-уровень секретности)

Выбор параметров доказывающей стороны

Пусть каждая доказывающая сторона выбирает секрет (закрытый ключ), такой, что  и вычисляет = β − a(mod p), где v-открытый ключ

Передаваемые  сообщения

A B : = βr(mod p)

A B : e (где )

A B : = (r)(mod q)

Основные  действия

выбирает случайное (), вычисляет = βr(mod p) и отсылает стороне B (доказательство)

Сторона отсылает случайное из диапазона [1,− 1] (вызов)

возвращает = (r)(mod q)

проверяет, действительно ли z=x, где = βve(mod p) и, если это так, то идентификация считается успешной.

Пример

Выбирается простое р=23 и простое q=11 (− 1)

Вычисляется β из условия β= 1(mod p), в данном случае β=3

Тогда системными параметрами  будут (23, 11, 3), a t=3

Сторона А выбирает закрытый ключ a=7 и вычисляет открытый ключ = β − a(mod p) = 12

Сторона А случайным образом выбирает доказательство r=8 и отсылает = βr(mod p) = 6 стороне B

В отсылает вызов e=7

отсылает = (r)(mod q) = 2

вычисляет = βve(mod p) = 6 и идентифицирует A, так как z=x

Модификация цифровой подписи

Пусть сторона хочет отправить сообщение М стороне B; причем должен убедиться в том, что сообщение пришло именно от A. Тогда:

выбирает случайное (), вычисляет = βr(mod p)

Пусть имеется однонаправленная хеш-функция H(M). Сторона А объединяет с и хеширует результат H(M,x)

Далее вычисляет = (ae r)(mod q). Значения и являются цифровой подписью и отсылаются B.

вычисляет = βve(mod p). Затем и полученное сообщение M' пропускаются через хеш-функцию: e' = H(M',z). Если e', то подпись считается верной.

СТБ 1176.2-99

Параметры. При выработке и проверке подписи используются l-битовое простое число p и r-битовое простое число q, q | (p-1). Допустимые значения указаны в таблице 1. Применяется определяемая СТБ 1176.1 функция хеширования h, параметр L которой устанавливается равным (r-1).

Таблица 1. Допустимые значения параметров r и l.

Уровень стойкости r l
1 143 638
2 154 766
3 175 1022
4 182 1118
5 195 1310
6 208 1534
7 222 1790
8 235 2046
9 249 2334
10 257 2462

Часть преобразований стандарта выполняется в группе G, определяемой множеством B= {1,2, ...,p-1 } и операцией *:  
u * v = uvR-1 ( mod p),  
где R = 2l+2. Использование операции * вместо обычного умножения по модулю p упрощает применение алгоритма. Далее, u(m) - m-я степень числа u из Bкак элемента G. В стандарте приведены алгоритмы генерации чисел p,q и элемента a из Bp, имеющего порядок q в группе G. Числа p,q,a являются долговременными параметрам СТБ 1176.2-99, едиными для группы пользователей.

Входные данные.

    Всякое сообщение M, подпись к которому вырабатывается или проверяется, задается последовательностью  байтов. Если t- n-разрядное число по основанию 2= 256, то есть  
    t = t(256)0+..+tn-1 (256)n-1,  
    причем 0 <= t<256, tn-1 неравно 0,  
    то t||M --- сообщение, полученное вставкой байтов t0,t1,..,tn-1 в начало M.

Выработка подписи.

    При выработке  подписи S к сообщению M используется личный ключ x, 0<x<q. Выполняются следующие шаги.

    1. Выработать случайное секретное число k, 1<k<q.
    2. t = a(k).
    3. U = h(t||M). Если U=0, то вернуться к шагу 1.
    4. V = (k-xU). Если V=0, то вернуться к шагу 1.
    5. S = U2r+V.

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

    При проверке подписи S к сообщению M используется открытый ключ y = a(X). Алгоритм проверки подписи состоит из следующих шагов.

    1. V = S ( mod 2r).
    2. U = (S-V)/2r.
    3. Проверить условия 0<U<2r-1, 0<V<q. Если хотя бы одно из условий нарушается, то подпись признается недействительной и выполнение алгоритма завершается.
    4. t = a(V) * y(U).
    5. W = h(t||M).
    6. Если W неравно U, то подпись признается недействительной. Если W=U, то принимаются решения о том, что:  
      а) подпись S была создана с помощью личного ключа x, связанного с открытым ключем y;  
      б)подпись S и сообщение M не были изменены с момента их создания.
 
 
 
 
 
 
 
 
 

Приложение А. Закон Республики Беларусь «Об электронном документе и электронной цифровой подписи»

ЗАКОН РЕСПУБЛИКИ БЕЛАРУСЬ

28 декабря 2009 г. № 113-З

Об  электронном документе  и электронной  цифровой подписи

Принят Палатой представителей 4 декабря 2009 года 
Одобрен Советом Республики 11 декабря 2009 года

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

ГЛАВА 1 
ОБЩИЕ ПОЛОЖЕНИЯ

        Статья 1. Основные термины, используемые в настоящем  Законе, и их определения

    Для целей настоящего Закона используются следующие термины и их определения:

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

Электронная цифровая подпись, СТБ 1176.2-99