Файл: 1 Понятие национальной безопасности.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 240

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лекция № 16

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

Введение

 

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

— осуществить аутентификацию источника сообщения;

— установить целостность сообщения;

— обеспечить невозможность отказа от факта подписи конкретного сообщения.

 

1 Особенности применения цифровых подписей

 

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

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

 

 

Собственноручная подпись

 

Цифровая подпись

 

не зависит от подписываемого текста, всегда одинакова

 

зависит от подписываемого текста, практически всегда разная

 

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

 

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

 

неотделима от носителя (бумаги), поэтому отдельно подписывается каждый экземпляр документа

 

легко отделима от документа, поэтому верна для всех его копий

не требует для реализации дополнительных механизмов

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

 

не требует создания поддерживающей инфраструктуры

требует создания доверенной инфрастуктуры сертификатов открытых ключей


 

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

— алгоритм вычисления (формирования) цифровой подписи

— алгоритм её проверки.

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

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

— подделки подписи, то есть нахождения значения подписи под заданным документом лицом, не являющимся владельцем секретного ключа;

— создания подписанного сообщения, то есть нахождения хотя бы одного сообщения с правильным значением подписи;

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

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

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

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



— кто должен нести ответственность в случае, если подписанные сделки не состоятся;

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

— какова ответственность уполномоченного по сертификатам в случае, если открытый ключ будет сфальсифицирован;

— какова ответственность владельца секретного ключа в случае его утраты;

— кто несет ответственность за плохую реализацию системы в случае повреждения или разглашения секретного ключа;

— каков порядок разрешения споров и т. п.

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

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

1) схемы на основе систем шифрования с открытыми ключами;

2) схемы со специально разработанными алгоритмами вычисления и проверки подписи;

3) схемы на основе симметричных систем шифрования.

Рассмотрим их более подробно.

 

2 Цифровые подписи на основе шифрсистем с открытыми ключами

 

2.1 Общие сведения

 

Идея использования систем шифрования с открытыми ключами для построения систем цифровой подписи как бы заложена в постановке задачи. Действительно, пусть имеется пара преобразований (E,D), первое из которых зависит от открытого ключа, а второе — от секретного. Для того чтобы вычислить цифровую подпись S для сообщения, владелец секретного ключа может применить к сообщению М второе преобразование DS=D(M). В таком случае вычислить подпись может только владелец секретного ключа, в то время как проверить равенство E(S)=M может каждый. Основными требованиями к преобразованиям E и D являются:

— выполнение равенства M=E(D(M)) для всех сообщений М;

— невозможность вычисления значения D(M) для заданного сообщения М без знания секретного ключа.

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

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

Очевидно, что рассмотренная схема цифровой подписи на основе пары преобразований (E,Dудовлетворяет требованию невозможности подделки, в то время как требование невозможности создания подписанного сообщения не выполнено: для любого значения S каждый может вычис­лить значение M=E(S) и тем самым получить подписанное сообщение. Требование невозможности подмены сообщения заведомо выполняется, так как преобразование Е взаимно однозначно.

Для защиты от создания злоумышленником подписанного сообщения можно применить некоторое взаимнооднозначное отображение R: M → , вносящее избыточность в представление исходного сообщения, например, путем увеличения его длины, а затем уже вычислять подпись S=D( )В этом случае злоумышленник, подбирая S и вычисляя значения  будет сталкиваться с проблемой отыскания таких значений  , для которых существует прообраз М. Если отображение R выбрано таким, что число возможных образов   значительно меньше числа всех возможных последовательностей той же длины, то задача создания подписанного сообщения будет сложной.

Другой подход к построению схем цифровых подписей на основе систем шифрования с открытым ключом состоит в использовании бесключевых хеш-функций. Для заданного сообщения М сначала вычисляется значение хеш-функции h(M), а затем уже значение подписи S=D(
h(M)). Ясно, что в таком случае по значению подписи уже нельзя восстановить сообщение. Поэтому подписи необходимо передавать вместе с сообщениями. Такие подписи получили название цифровых подписей с дополнением. Заметим, что системы подписи, построенные с использованием бесключевых хеш-функций, заведомо удовлетворяют всем требованиям, предъявляемым к цифровым подписям. Например, невозможно создание сообщения с известным зна­чением подписи, поскольку бесключевая хеш-функция должна быть однонаправленной.

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

 

2.2 Схема подписи RSA

 

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

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

Заранее:

1)    пользователь A выбирает простые числа p и q, вычисляет n=p×q;

2)    генерирует случайное число e и вычисляет d: e×dº1(mod f(n));

3)    рассылает или помещает в защищенный справочник (e,n) – открытый ключ;

4)    сохраняет в тайне (p,q,d) – секретный ключ.

Для подписи сообщения m пользователь A вычисляет c = H(m)d (mod n) и посылает его вместе с сообщением m.

Для проверки подписи любой абонент сети вычисляет H(m) и если

H(m) ºce (modn),

то принимается решение о том, что подпись верна.

Не будем больше заострять внимание на стойкости этой схемы, поскольку выше этот вопрос уже рассматривался. Отметим, однако, что как и в случае со схемой Диффи-Хеллмана и криптосистемой RSA, требуется обеспечить достоверную доставку открытого ключа пользователя A к B. Если это не обеспечено, то противник подделавший сообщение может подменить открытый ключ A своим открытым ключом, после этого проверка подписи даст положительный результат, как будто сообщение подписано пользователем A.

 

2.3 Cхема подписи Эль-Гамаля (ElGamal)

 

Эта система ЭЦП, как и схема распределения ключей Диффи-Хеллмана строится на принципе сложности решения задачи дискретного логарифмирования.

Заранее:

1)       во всей сети фиксируются простое число p и a- образующая поля GF(p); выбирается хэш-функция H cо значениями в GF(p)*;

2)       абонент сети A генерирует (с помощью датчика случайных чисел) свой секретный ключ xÎ{2,…¼,p-1}, который сохраняет в тайне;

3)       вычисляет свой открытый ключ y=ax(mod p), который рассылает своим корреспондентам или помещает в доверенный справочник.

Для вычисления подписи сообщения m абонент A:

1)  выбирает случайное число kÎ{1,…………,p-1}, взаимно простое с p-1;

2)  вычисляет r = ak(mod p);

3)  вычисляет s = k-1×(H(m)-r×x) (mod (p-1))k сразу необходимо уничтожить,

4)  посылает вместе с сообщением m его подпись (rs).

Процедура проверки подписи (rs) под сообщением m:

1)               проверяется, что r, sÎ{1,¼…,p-1};

2)               проверяется, что  .

В случае, если сообщение m доставлено без искажений, то

s×k º H(m)-r×x (mod (p-1)),

H(m) º s×k+r×x (mod (p-1)),

поэтому в силу малой теоремы Ферма

yr×rºaxr×aks = as×k+r×x ºaH(m) (mod p)

и процедура проверки дает положительный ответ.

 

2.4 Схема подписи ГОСТ Р 34.10-94

 

Вариант подписи, похожий на схему ЭльГамаля, но более быстрый представлен в Российском ГОСТ Р 34.10-94.

Заранее во всей сети фиксируются:

-       простые числа pq такие, что p-1 делится на q,

-       GF(p)* такое, что aqº 1(modp),

-       однонаправленная хэш-функция Hсо значениями в множестве {1,¼…,q-1}.

Каждый абонент

-       выбирает в качестве своего секретного ключа случайное число xÎ{1,¼…,q-1}, который сохраняет в тайне,

-       вычисляет свой открытый ключ y=ax (modp), который рассылает корреспондентам или помещает в доверенный справочник.

Для того чтобы подписать сообщение m, абонент A выполняет следующие действия:

1)                выбирает случайное число kÎ{1,¼,q-1},

2)                вычисляет r=(ak(modp))(modq),

3)                вычисляет  s=(k×H(m)+x×r) (mod q),

4)                если r=0 или s=0, то процедура повторяется, начиная с шага 1).

По окончании алгоритма пара чисел (rs) и есть требуемая подпись сообщения m.

Для проверки подписи (rs) сообщения m требуется выполнить следующие действия:

1)               проверить, что 0 < r < q и 0 < s < q,

2)               проверить, что aw×s×y-w×r (modp) ºr (modq),

где w = H(m)-1 (mod q).

Убедимся в корректности алгоритма проверки подписи, то есть, что он дает верный результат в случае, если сообщение и подпись под ним не искажены. Пусть сообщение m и подпись (rs) доставлены без искажений, тогда

w×s º w×k×H(m)+ w×x×r (mod q),

но w×H(m) º 1 (modq), поэтому

w×s º k+ w×x×r (mod q),

aw×sºak+w×x×r=ak*a w×x×rºak *y w×r (mod p), и

w×s×y -w×rºak(mod p).

Поскольку r=(ak(modp))(modq), то

(a w×s×y -w×r (mod p)) º r (mod q)

и процедура проверки дает положительный ответ.
1   2   3   4   5   6   7   8   9   10   11