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




ФЕДЕРАЛЬНОЕ АГЕНСТВО ВОЗДУШНОГО ТРАНСПОРТА

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ “МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ГРАЖДАНСКОЙ АВИАЦИИ” (МГТУГА)

 

Кафедра вычислительных машин, комплексов, систем и сетей.

 

 

Лабораторная работа № 3

 

 

КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ

ОБЕСПЕЧЕНИЯ ПОДЛИННОСТИ И ЦЕЛОСТНОСТИ ЭЛЕКТРОННЫХ ДОКУМЕНТОВ.

ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ

 

Выполнил:

студент группы ЭВМ 4-1

Герасимов Д.А.

«__» _________ 2012г.

 

 

Москва 2012

Цель работы

 

Изучение современных принципов обеспечения подлинности и целостности электронных документов с использованием методов криптографического преобразования информации. Построение функ­ций хэширования на основе блочных шифраторов с секретным ключом. Исследование и апробирование функции хэширования по ГОСТ Р 34.11–94 и алгоритмов электронной цифровой подписи EGSA (Эль-Гамаля), ГОСТ Р 34.10–94 и ГОСТ Р 34.10–01.

 

 

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

 

Функцией хэширования или хэш-функцией (Hash-function) назы­вается алгоритм сжатия (преобразования) текста m Î М (где М – пространство текстов) произвольной длины L до некоторого числового значения z = h (m) фиксированной длины, называемого хэш-значением или дайджестом этого текста (MessageDigest). При этом значение z хэш-функции сложным образом зависит от исходного текста m и непременно изменяется при любой его модификации. Таким образом, не существует двух разных текстов m1 ¹ m2, имеющих одинаковоехэш-значение z,т.е. всегда справедливо h (m1) ¹ h (m2). Кроме того, по отношению к злоумышленнику (противнику) хэш-функция является однонаправленной, т.е. восстановить по ее хэш-значению z исходный текст m не представляется возможным.

На практике качественные функции хэширования эффективно реализуются на основе блока хэширования, преобразующего две входные последовательности элементов (например, бит) одинаковой длины в одну выходную последовательность (хэш-значение) такой же длины. Входными последовательностями могут являться i -й блок текста mi (предварительно весь текст m, подлежащий хэшированию, разбивается на блоки m = (m1, …, mi, …, mn) фиксированной длины) и хэш-значение zi-1, полученное для предыдущего блока mi-1 текста m. В результате формируется хэш-значение zi для текущего блока mi:

 

zi = h (mi, zi-1).

 

Хэш-значение, полученное для последнего блока mn, является результирующим хэш-значением всего текста (сообщения) m. Таким образом формируется хэш-значение фиксированной длины, незави­симо от длины входного текста m. Схема описанной конструкции изображена на рис. 1.

 

 

 


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

Для обеспечения взаимной зависимости (сцепления, обратной связи) блоков текста результат криптографического преобразования (последовательность на выходе шифратора) суммируется по модулю 2 с текущим блоком данных mi, предыдущим хэш-значением zi-1 или некоторой гаммированной последовательностью. Полученная на выходе сумматора последо­вательность будет являться текущим хэш-значением zi. Качество (стойкость, безопасность) такой функции хэширования определяется криптостойкостью используемого алгоритма симметричного блочного шифрования. Обобщенная схема функции хэширования, у которой хэш-значение, входной блок данных и ключ шифрования имеют одинаковую длину, показана на рис. 2.

 


 

 

 
 

 

 


На основе рассмотренного метода реализован отечественный стандарт функции хэширования ГОСТ Р 34.11-94, который преобразует двоичную последовательность произвольной длины в 256-битовое хэш-значение. В нем использован в режиме простой замены алгоритм симметричного блочного шифрования по ГОСТ 28147-89, имеющий 256-битовый ключ и обрабатывающий блоки данных длиной 64 бита. Функция хэширования по ГОСТ Р 34.11-94 предназначена для использования при формировании электронной цифровой подписи по ГОСТ Р 34.10-94. Подробное описание указанных алгоритмов можно найти в дополнительной литературе [1, 3, 4, 6-9, 11].

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

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

При проверке подлинности и целостности электронного документа получатель самостоятельно вычисляет (естественно, используя одинаковую с подписантом функцию хэширования) его хэш-значение z' = h (m'). В случае, если расшифрованное с помощью имеющегося у него открытого ключа полученное хэш-значение z совпадет с самостоятельно вычисленнымхэш-значением z' (т.е. z = z'), то ЭЦП признается подлинной и целостность документа не вызывает сомнений.

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

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

 

Среди современных алгоритмов ЭЦП широкую известность получил алгоритм Эль-Гамаля (EGSA -ElGamalSignatureAlgorithm), являющийся более надежным по сравнению с алгоритмом RSA, поскольку он основан на задаче дискретного логарифмирования, которая считается вычислительно более сложной, чем разложение большого числа на простые множители. Рассмотрим основные этапы алгоритма Эль-Гамаля.

1. Вычисляются открытый и закрытый ключи, для чего выбираются некоторое большое простое число P и большое целое число G (причем P> G), которые известны подписанту и получателю и не являются секретом. На практике используются очень большие числа P ~10 308 (21024) и G ~ 10 154 (2512). Затем подписант выбирает случайное целое число Х такое, что 1< Х £ (Р- 1), и вычисляет число

 

Y = GХmodP,

 

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

2. Исходный электронный документ m представляется подписантом в виде целого числа z, причем 1< z < (Р -1), с помощью любой известной сторонам функции хэширования.

3. Выбирается случайное целое число К, причем 1< К < (Р -1), такое, что К и Р являются взаимно простыми, т.е. НОД (К, Р -1) = 1. Затем отправитель вычисляет целое число

 

а = GКmodP

 

и, применяя расширенный алгоритм Евклида, вычисляет, используя числа Х и К, целое число b из уравнения

 

z = Х × а + К ×b (mod (P -1)).

 

Пара чисел (a, b) образуют ЭЦП, принадлежащую электронному документу m и передаваемую вместе с ним получателю. При этом пара чисел (Х, К) держится в строгом секрете (как правило, число К уничтожается после формирования ЭЦП).

Проверка подлинности ЭЦП полученного электронного документа заключается в проверке справедливости соотношения:

 

Yа × аb (mod P) = Gz' (mod P),

 

где числа Y, a, b, P, G известны получателю, а число z' вычисляется им для документа m с использованием известной обеим сторонам функции хэширования. Если это соотношение выполняется, то полученный электронный документ m признается подлинным и целостным, поскольку можно математически доказать, что равенство будет истинным только в том случае, если подпись S = (a, b) сформирована для документа m с использованием секретного ключа Х, из которого был получен открытый ключ Y. Тем самым подтверждается факт того что отправителем электронного документа m может являться только обладатель секретного ключа Х.

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


 

 
 

 

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: