"Человек - самое уязвимое место в системе безопасности.."

Принцип использования электронной цифровой подписи

Общее

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

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

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

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

  • большая степень защиты от подделок
  • идентификация принадлежности подписи на основе характеристик
  • сильная связь с подписываемым документом

Возможные угрозы которые наносят ущерб развитию электронного документооборота показаны на рис.1. Эти угрозы:

  • отказ от факта получения документа или авторства
  • изменение документа
  • замена документа
  • замена имени
  • повторная рассылка документов

виды злоумышленний действий с электронными документами

Рисунок — 1

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

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

Алгоритмы электронной цифровой подписи

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

  • задача факторизации(разложение) больших целых чисел
  • задача дискретного логарифмирования

Алгоритм цифровой подписи RSA

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

N = P * Q; φ (N) = (Р-1)(Q-1).

Затем отправитель вычисляет число Е из условий:

Е £ φ (N), НОД (Е, φ (N)) = 1

и число D:

D < N, Е*D º 1 (mod j (N)).

Пара чисел (E, N) является открытым ключом. Такую пару автор передает партнерам по переписке для проверки его цифровых подписей. Число D сохраняется автором как секретный ключ для подписывания. Схема показана на рис.1.

Обобщённая схема цифровой подписи RSA

Рисунок — 2

Недостатки такой цифровой подписи на основе алгоритма RSA:

  • При вычислении модуля N, ключей E, D для цифровой подписи нужно проверять множество дополнительных условий, что на практике трудно. Невыполнение любого из условий делает возможным фальсификации ЭЦП.
  • Для достижения криптостойкости подписи RSA к фальсификации по отношению к алгоритмы DES 1018, нужно использовать целый числа не менее 2215 что требует больших вычислительных затрат, а это на 20.. 30% больше чем другие алгоритмы цифровой подписи при той же криптостойкости.

Алгоритм цифровой подписи Эль Гамаля (EGSA)

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

Что бы генерировать пару ключей, нужно выбрать простое целое число P и G, причем G < P. Получатель и отправитель подписанного документа используют одинаковые большие числа P — (~10308 = ~21024) и G (~10154 = ~1512) которые не секретные. Отправитель выбирает случайное целое число X, 1 < X £ (P — 1), и вычисляет: Y = GX mod P;

Число Y является открытым ключом, который используется для проверки подписи отправителя. Число Х является секретным ключом отправителя для подписи документов. Что бы подписать сообщение М, сначала нужно что бы отправитель захэшировал его с помощью хэш-функции h в целое число m: m = h(M), 1 < m < (P — 1), и генерирует случайное целое число К, 1 < K < (P — 1). такое что К и (P — 1) будут взаимно простыми. Потом отправитель вычисляет целое число a: a = GK mod P; используя расширенный алгоритм Евклида, вычисляет с помощью секретного ключа Х целое число b: m = X * a + K * b (mod (P — 1)); Пара чисел (a, b) образуют цифровую подпись S: S = (a, b);

Тройка чисел (M, a, b) транспортируется получателю, в то время как пара чисел (X, K) держится в секрете. Получатель получив сообщение (M, a, b) должен вычислить число m: m = h(M). затем получатель вычисляет: A = Ya ab mod (P), и признает сообщение M подлинным, если — A = Gm mod (P). Можно строго математически доказать, что последнее равенство будет равно тогда, когда подпись S под документом M получена с помощью именно секретного ключа X, из которого был получен открытый ключ Y. Нужно отметить, что процедура каждой подписи требует нового значения К, и выбирается случайным образом.

Схема Эль Гамаля является типичным примером, который разрешает пересылку сообщений М в открытой форме вместе с аутентификатором (a, b). Такая схема имеет преимущества перед схемой ЭЦП RSA:

  • Для одинакового уровня стойкости, алгоритм Эль Гамаля использует целые числа короче на 25%, что уменьшает сложность вычислений почти в 2 раза.
  • Выбор модуль Р прост, нужно убедится что число простое, и что у числа (Р — 1_ есть большой простой множитель.
  • Схема создания подписи по алгоритму Эль Гамаля не разрешает вычислять ЭЦП под новыми сообщениями без знания секретного ключа.

К недостаткам можно отнести то, что подпись получается в 1,5 раза больше чем RSA.

Алгоритм цифровой подписи DSA

DSA — Digital Signature Algorithm — это развитие алгоритмов цифровой подписи Эль Гамаля и К.Шнорра. Получатель и отправитель электронного документа реализуют при вычислении большие целые числа G и P — простые числа, L бит каждое (512 £ L £ 1024), q — простое число длинной 160 бит (делитель числа (P — 1)). Числа P, G, q есть открытыми и могут быть общими для пользователей. Отправитель берет случайное целое число X, 1 < X < q. Число Х — секретный ключ отправителя для создания ЭЦП. Отправитель вычисляет: Y = GX mod P. Число Y — открытый ключ. Что бы подписать документ М, отправитель хэширует его в целое хэш-значение m: m = h(M), 1 < m < q, потом генерирует случайное целое число К, 1 < K < q, и вычисляет: r = (GK mod P) mod q. Также нужно вычислить: s = ((m + r * X)/ K) mod q; Пара чисел S = (r, s) образуют цифровую подпись. Получатель проверяет выполнение условий: 0 < r < q, 0 < s < q. Если условия хоть одно не выполнено, то подпись нужно отвергнуть. Если же выполнены все условия, то получатель вычисляет: w = (l/s) mod q, хэщ-значения m = h(M) и числа u1 = (m * w) mod q, u2 = (r * w) mod q. Затем получатель с помощью открытого ключа Y делает:
v = ((Gu1 * Yu2) mod P) mod q; Если условие v = r выполняется, тогда подпись S под документом подлинная.

Можно математически доказать, что последнее равенство будет выполнятся тогда, когда подпись S под документом получена с помощью секретного ключа X, из которого был получен открытый ключ Y. Алгоритм DSA имеет преимущества над ЭЦП Эль Гамаля:

  • При одинаковом уровне стойкости, длина подписи явно меньше у DSA
  • Также меньше время вычисления подписи

Недостатками алгоритма является то, что при проверке подписи нужно реализовывать сложные операции деления по модулю q. Следует отметить, что реальное исполнение алгоритма DSА может быть ускорено с помощью выполнения предварительных вычислений. Заметим, что значение r не зависит от сообщения М и его хэш-значения m.

Смотрите также: