Курсовая работа: Программирование алгоритма цифровой подписи ГОСТ Р 34.10-94

Курсовая работа: Программирование алгоритма цифровой подписи ГОСТ Р 34.10-94




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Кафедра «Информационная безопасность систем и технологий»
«Программирование алгоритма цифровой подписи ГОСТ Р 34.10-94»
ЦИФРОВАЯ ПОДПИСЬ, ПРОГРАММА, ИНТЕРФЕЙС, ФУНКЦИЯ, ФАЙЛЫ, ОТКРЫТЫЙ КЛЮЧ, ЗАКРЫТЫЙ КЛЮЧ.
Объект исследования – алгоритм цифровой подписи ГОСТ Р 34.10-94.
Целью работы является получение навыков в программировании криптоалгоритмов на примере алгоритма цифровой подписи ГОСТ Р 34.10-94.
В процессе работы была разработана программа, которая осуществляет процедуру подписи сообщения и процедуру проверки подписи.
В результате выполнения работы были получены навыки в программировании алгоритма цифровой подписи ГОСТ Р 34.10-94.
1. Пользовательский интерфейс программы
3.1. Алгоритм функции формирования подписи
3.2. Алгоритм функции проверки подписи
Блок схема алгоритма функции формирования подписи
Блок схема алгоритма функции проверки подписи
В настоящее время широкое распространение получили персональные компьютеры. Они, без преувеличения, вошли во все сферы человеческой деятельности. Это максимально облегчило человеческий труд. Сейчас трудно представить, чтобы делал человек без компьютера. Предприятия, фирмы, офисы, банки - это ещё далеко не все области применения персонального компьютера.
Без использования криптографии сегодня немыслимо решение задач по обеспечению безопасности информации, связанных с конфиденциальностью и целостностью. Если до 1990г. криптография обеспечивала закрытие государственных линий связи, то в наши дни использование криптографических методов получило широкое распространение благодаря развитию компьютерных сетей и электронного обмена данными в различных областях[3].
Владение языками программирования позволяет значительно расширить круг выполняемых задач специалистом по защите информации и более полно использовать возможности компьютера.
Данная курсовая работа написана на языке С.
С – это универсальный язык программирования с компактным способом записи выражений, современными механизмами управления структурами данных и богатым набором операторов[1].
Целью курсовой работы является разработка программы, которая реализует процедуру подписи сообщения и процедуру проверки подписи.
Интерфейс – аппаратная или программная система сопряжения объектов с различными характеристиками. Программный интерфейс позволяет согласовывать программы с различными параметрами, а также дают возможность пользователю работать в операционной среде с той или иной степенью комфорта.
Методы и средства взаимодействия с аппаратными и программными средствами называют пользовательским интерфейсом [2]. Любая программа должна обладать пользовательским интерфейсом, иначе, кроме своего разработчика, она будет недоступна в понимании лицу с ней не знакомому.
Интерфейс бывает различных типов. Разработанная программа обладает интерактивным интерфейсом. Основным устройством управления в данном случае является клавиатура.
Программа предназначена для выполнения подписи сообщения и проверки подписи.
После запуска программа предлагает выбрать действие:
Последовательный вызов процедур подписи сообщения и проверки подписи.
Входные данные хранятся в файле initialdata.txt:
р –
простое число, удовлетворяющее требованию 2 509
<р<2 512

;
q
– простое число, удовлетворяющее требованию 2 254
<
q
<2 256

;
a
– число, которое рассчитывается по формуле a q

(
mod
p
)=1
и удовлетворяет требованию 1<а<р-1
;
x
– закрытый ключ, удовлетворяющий требованию 1<
x
<
q
;
y
– открытый ключ, который рассчитывается по формуле y
=
a x

(
mod
p
)
;
m
– хэш-функция по алгоритму ГОСТ Р 34.11.
Выбрав действие, программа производит необходимые действия и записывает результаты в файлы: цифровая подпись записывается в signature.txt, а результат проверки подписи – в verification result.txt.
3.1 Алгоритм функции формирования подписи

Функция формирования подписи signature
формирует подпись, используя начальные параметры, расположенные в файле initial data.txt
. Начальные параметры должны удовлетворять следующим условиям:
простое число q
: 2 254
<
q
<2 256

;
открытый ключ y
:
y
=
a x

(
mod
p
)
;
хэш-функция h
(
M
)=
m
по алгоритму ГОСТ Р 34.11.
Для формирования подписи необходимо вычислить:
Таким образом, цифровая подпись для сообщения М
есть: <
r
’>||<
s
>
.
Алгоритм функции формирования подписи приведен в Приложении А.
Функция проверки подписи verify
проверяет подпись, использую параметры:
Для проверки подписи необходимо вычислить:
Если условие r
’=
u
выполнено – подпись подлинная. Результат проверки подписи находится в файле verification result.txt
.
Алгоритм функции проверки подписи приведен в Приложении Б.
4. Отладка и проверка работоспособности программы

Программа была откомпилирована и отлажена.
Для проверки работоспособности программы был запущен файл sign
.
exe
, были выбраны действия, которые необходимо выполнить. Например, необходимо сформировать цифровую подпись и проверить ее подлинность.
Текст входного файла initial data.txt
:
Текст выходного файла signature.txt
:
Текст выходного файла verification result.txt
:
Оценка результатов показала, что программа работает верно.
Разработанная программа написана на языке Си. Программа осуществляет формирование цифровой подписи по алгоритму ГОСТ Р 34.10-94 и проверку цифровой подписи.
Таким образом, задание на курсовую работу выполнено в полном объеме.
1. Керниган Б., Ритчи Д. Язык программирования Си\ Пер. с англ., 3-е изд., испр. – СПб.: «Невский диалект», 2001. – 352с.
2. Информатика: Базовый курс \ С.В. Симонович и др. – СПб,: Питер, 2001. – 640 с.
3. Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии: Учебное пособие, 2-е изд., испр. И доп. – М.:Гелиос АРВ, 2002. – 480с., ил.
Блок схема алгоритма функции формирования подписи
Блок схема алгоритма функции проверки подписи
#define LOWORD(T) ((unsigned short)(T))
#define HIWORD(T) ((unsigned short)(T>>16))
#define MAKELONG(a,b) ((((unsigned long)(a))<<16)+b)
void add(unsigned short add_a[], unsigned short add_b[],unsigned short add_c[], int add_l_a_b)
for(int i=0; i<=(add_l_a_b-1); i++)
{T=(unsigned long)add_a[i]+(unsigned long)add_b[i]+d;
void sub(unsigned short sub_a[], unsigned short sub_b[],unsigned short sub_c[], int sub_l_a_b)
for(int i=0; i<=(sub_l_a_b-1); i++)
{T=(unsigned long)sub_a[i]-(unsigned long)sub_b[i]-d;
void mul(unsigned short mul_a[], unsigned short mul_b[],unsigned short mul_c[],int mul_l_a, int mul_l_b)
{T=(unsigned long) mul_c[i+j]+(unsigned long) mul_a[i]*(unsigned long) mul_b[j]+d;
void mul_mod(unsigned short mm_a[], unsigned short mm_b[], unsigned short mm_n[], unsigned short mm_ost[], unsigned short w1[], int mm_l_a_b_n, int t)
mm_d=new(unsigned short[mm_l_a_b_n+t]);
mul(mm_a, mm_b, mm_d, mm_l_a_b_n, t);
Div(mm_d, mm_n, w1, mm_ost, mm_l_a_b_n*2, mm_l_a_b_n);}
void exp_mod(unsigned short exp_mod_a[], unsigned short exp_mod_b[], unsigned short exp_mod_n[], unsigned short exp_mod_c[], unsigned short w1[], int exp_mod_l_a_n, int exp_mod_l_b)
exp_mod_c_dop=new(unsigned short[exp_mod_l_a_n]);
for(int l=1; l<=(exp_mod_l_a_n-1); l++)
for(e=(16*exp_mod_l_b-1); e>=0; e--)
{mul_mod(exp_mod_c, exp_mod_c, exp_mod_n, exp_mod_c_dop, w1, exp_mod_l_a_n, exp_mod_l_a_n);
{mul_mod(exp_mod_a, exp_mod_c_dop, exp_mod_n, exp_mod_c, w1, exp_mod_l_a_n, exp_mod_l_a_n);}
{for(int h=0; h<=exp_mod_l_a_n-1; h++)
{exp_mod_c[h]=exp_mod_c_dop[h];}}}}
int comp (unsigned short a[], unsigned short p[], int S1)
int file_read(unsigned short t[], long curpos, int sz)
int file_write(unsigned short t[], long curpos, int sz)
for(int i=0;i=0; i--, j--)
int verify(unsigned short p[],unsigned short a[],unsigned short q[],unsigned short y[], unsigned short m[],unsigned short sign[])
for(int i=S/2-1; i>=0; i--) q_2[i]=q[i];
for(int b=S/2-1, j=S-1; b>=0; b--, j--)

Название: Программирование алгоритма цифровой подписи ГОСТ Р 34.10-94
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа
Добавлен 12:14:42 16 ноября 2009 Похожие работы
Просмотров: 420
Комментариев: 15
Оценило: 3 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Курсовая работа: Программирование алгоритма цифровой подписи ГОСТ Р 34.10-94
Реферат: Психологическая реабилитация подростков с наркотической зависимостью
Сочинение Моя Гражданская Позиция 7 Класс
Курсовая работа по теме Энергоснабжения ремонтно-механического цеха
Контрольная Работа По Теме Числительные Ответы
Дисфункции Имиджа Курсовая
Курсовая работа: Система бизнес-стратегий: модель BCG (матрица Boston Consulting Group)
Дипломная работа: особенности финансов организации малого бизнеса
Контрольная работа по теме История Детского Музея
Курсовая работа: Реформирование системы пенсионного страхования РФ
Курсовая работа по теме Договір контрактації сільськогосподарської продукції
Реферат: Методические рекомендации по подготовке и защите выпускных квалификационных (дипломных) работ по специальности 030501- юриспруденция
Простейшие Тригоном Уравнения Контрольная Работа
Реферат: Основи організації бухгалтерського обліку 2
Холодная Война Реферат Кратко
Реферат: Новые строительные материалы и конструкции, их характеристика
Написать Сочинение В Виде Письма
Реферат по теме Содержание договора и подразделение его на виды
Темы Курсовых Работ По Рус Языку
Сочинение Катерина Луч Света
Сочинение По Картине Летний Парк
Статья: Марк Аврелий — философ на троне
Реферат: Пороки развития голени
Курсовая работа: Азотная кислота

Report Page