Разработка и программная реализация электронной цифровой подписи асимметричным методом шифрования данных
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
ния и проверки цифровой подписи в нем используется тот же алгоритм Эль-Гамаля и Шнорра, что и в DSS, с незначительными модификациями. Имеется две альтернативных длины ключа, 512 и 1024 бит; длина подписи составляет 512 бит.
Для генерации ключей предложен ряд новых алгоритмов. Ключи, получаемые при помощи этих алгоритмов, имеют специальный вид, что потенциально может упростить задачу вскрытия системы по сравнению с DSS. Критика DSS, связанная с недостаточно разработанным теоретическим обоснованием алгоритма, в случае росийского стандарта несколько смягчается тем, что элемент ключа q выбирается более длинным, чем в DSA. Критика, связанная с отсутствием спецификации на способ получения псевдослучайных чисел, остается в силе.
Как и DSS, российский стандарт определяет только алгоритм цифровой подписи, но не шифрования. Быстродействие обоих алгоритмов приблизительно совпадает.
Стандарт Функция хэширования предназначен для использования вместе со стандартом Процедуры выработки и проверки цифровой подписи и представляет собой оригинальный алгоритм, основанный на методе шифрования с симметричным ключом ГОСТ 28147. Стандарт не содержит криптографического обоснования выбранного алгоритма и не корректирует ГОСТ 28147 в части заполнения узлов замены.
Несмотря на указанные недостатки, система, описанная в российском стандарте, применима во многих областях, особенно для коммерческих приложений.
В результате сравнений асимметричных алгоритмов был выбран алгоритм шифрования Эль-Гамаля.
Таблица 2.1 -Сравнение асимметричных алгоритмов шифрования
3. Программная реализация
3.1 Математическая модель
Рассмотрим подробнее алгоритм Эль-Гамаля.
Имея открытый текст , и пару чисел , которые распространенны среди пользователей системы, в ходе самого алгоритма шифрования, а не в отдельном модуле генерации, генерируется пара ключей. Секретный ключ выбирается случайным образом. Открытый ключ вычисляют по формуле (3.1)
.(3.1)
Кроме ключа для шифрования сообщения М, выбирают случайное целое число К, удовлетворяющее условию (3.2)
(3.2)
Затем вычисляют числа а, b (3.3)
(3.3)
Пара чисел (а,b) является шифртекстом. Заметим, что длина шифртекста вдвое больше длины исходного открытого текста М.
Для того чтобы расшифровать шифртекст (а,b), используют (3.4)
(3.4)
данное соотношение справедливо в силу (3.5).
(3.5)
Для обеспечения цифровой подписи с использованием алгоритма Эль-Гамаля необходимо воспользоваться теми же ключами и , что и при шифровании.
Передача информации по сети значительно увеличивает скорость обмена данными, возникает проблема установления подлинности автора и отсутствия изменений в полученном документе. Поэтому одной из задач разрабатываемой системы является защита передаваемых сообщений от возможных видов злоумышленных действий, к которым относятся:
активный перехват. Нарушитель, подключившийся к сети, перехватывает документы (файлы) и изменяет их;
маскарад. Абонент С посылает документ абоненту В от имени абонента А;
ренегатство. Абонент А заявляет, что не посылал сообщения абоненту В, хотя на самом деле послал;
подмена. Абонент В изменяет или формирует новый документ и заявляет, что получил его от абонента А;
повтор. Абонент С повторяет ранее переданный документ, который абонент А посылал абоненту В.
Эти виды злоумышленных действий могут нанести существенный ущерб пользователям, участвующим в работе системы и применяющим систему в своей деятельности.
Решить проблему фальсификации документов и передаваемой информации возможно с использованием цифровой подписи.
Система генерации цифровой подписи должна включать две процедуры:
1)процедуру постановки подписи;
2)процедуру проверки подписи.
В процедуре постановки подписи используется секретный ключ отправителя сообщения, в процедуре проверки подписи - открытый ключ от правителя .
При формировании цифровой подписи отправитель, прежде всего, вычисляет хэш-функцию h(М) подписываемого текста М. Вычисленное значение хэш-функции h(М) представляет собой один короткий блок информации m, характеризующий весь текст М в целом. Затем число m шифруется секретным ключом отправителя . Получаемая при этом пара чисел представляет собой цифровую подпись для данного текста М.
При проверке цифровой подписи получатель сообщения снова вычисляет хэш-функцию m = h(М) принятого по каналу текста М, после чего при помощи открытого ключа отправителя проверяет, соответствует ли полученная подпись вычисленному значению m хэш-функции (рис 2.2).
Рисунок 3.1 - Схема реализации цифровой подписи
Принципиальным моментом в системе цифровой подписи является невозможность подделки цифровой подписи пользователя без знания его секретного ключа подписывания.
В качестве подписываемого документа может быть использован любой файл. Подписанный файл создается из неподписанного путем добавления в него одной или более электронных подписей.
Функция хеширования должна иметь следующие свойства
быть допустимой для блока любой длинны;
на входе давать значение фиксированной длинны;
дайджест h=Н(x) должен вычисляться легко для любого заданного значения х, а алгоритм вычисления должен быть практичным со взгляда, как аппаратной, так и программой реализации.
для любого данного дайджеста h должно б