Разработка электронной цифровой подписи

Как видно из схемы в базе данных применяются следующие таблицы:

Структура таблицы «Документ»

Таблица 2.2.1

id документа

Имя документа

Тип документа

  h=113 valign=top >    

В таблице «Документ» представлены реквизиты документов, на которые необходимо поставить ЭЦП.

Структура таблицы «Клиент»

Таблица 2.2.2

id работника

ФИО

Должность

Частный пароль

       

В таблице «Клиент» представлены данные о работниках и частный пароль. Пароль необходим для последующей реализации установления авторства и разграничения доступа по сотрудникам.

Таблица 2.2.3. Структура таблицы «Подпись»

Подпись

Номер документа

Номер работника

Общий пароль

       

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

2.3 Программные модули

Согласно построенной базе данных и информации о работниках фирмы можно раздать частные пароли. Допустим, в какой-либо организации

В электронной подписи нуждаются следующие работники: директор, главный бухгалтер и кассир.

1. ФИО Иванов И. И., должность директор, частный пароль (рис 2.3.1):

hXgtLPIhfo3Bf0HKFh9xjO4q6e+W49OGaf4hI4KCafM2aJyIMhAsjpPBkf6wuVtEKo3UphNiyxN3a4rObnC9qoET4kCo7ForiU1X0skKdcTaQI3xJVGlnzTa5digUSj8Kf3BWm4wVob0k4vEGYYnaqNgEHWwmo8G9m3oeu4fPxk=

Рисунок 2.3.1 – Электронная подпись «Директор»

2. ФИО-, Петрова Е. С., должность – главный бухгалтер, частный пароль (рис 2.3.2):

LUJ7YOPzE7DC+w46ekw3smgacVYCfFA0X9Cx/fVUzxZ0iYnB0M62vrZfSJsj4qbMqFK7fV4HVXpjv2ycOU+SMnVT+V+DIHvxPuij3hYPW+qYfuJbET9E8wlVG6LCer6dANFHEkgVfVfpuqtPEjDk8bH/37zvkJAMLNmRsjgYmDQ=

Рисунок 2.3.2 – Электронная подпись «Главбух»

2. ФИО-, Харитонова В. А., должность – кассир, частный пароль (рис 3.3.3):

BOJLrHc8sDx2rbg08UWzIfOii1e8cqd23h6yae9sZ+1of11yT+/6Ae9vlo9ogU5UUBIAgH936S4SwQwywCdRmJRDa4Glz3wMX7giHfEVlK5ndliZXln9TlCoAzRREhn4jh1Bb3Emy+OrnBygzD8dqQB768HUuMzCt8jWAhEoAXc=

Рисунок 2.3.3 – Электронная подпись «Кассир»

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

Генерация ЭЦП включает ряд этапов

Private Sub Button1_Click_1(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click

If Me.TxtPlainText.Text = "" Then

MsgBox("Please enter a string to sign", MsgBoxStyle.Information)

Exit Sub

End If

' Конвертация строковых данных в массив байт

toEncrypt = enc.GetBytes(TxtPlainText.Text)

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

encrypted = mySender.EncryptData(myReceiver.PublicParameters, toEncrypt)

' конвертирование вывода в base64/Radix

TextBox2.Text = Convert.ToBase64String(encrypted)

Me.Button2.Enabled = True

Формирование закрытого ключа

Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

' Хэширование шифрованных данных и генерация блока подписи в хэше

' using the sender's private key. (Signature Block)

signature = mySender.HashAndSign(encrypted)

' конвертирование вывода в base64/Radix

TextBox3.Text = Convert.ToBase64String(encrypted)

Me.Button3.Enabled = True

Проверка ЭЦП

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

' Проверка подписи реализуется через аутентификацию с использованием

' публичного (открытого) ключа отправителя (дешифровка блока подписи)

If myReceiver.VerifyHash(mySender.PublicParameters, _

encrypted, signature) Then

MsgBox("Signature Valid", MsgBoxStyle.Information)

Button4.Enabled = True

Else

MsgBox("Invalid Signature", MsgBoxStyle.Exclamation)

Button4.Enabled = False

End If

End Sub

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

Система управления базой данных имеет следующий вид (рис 2.3.4):

Рисунок 2.3.4 – Система управления базой данных

С помощью этого приложения у программиста есть возможность добавления нового клиента ЭЦП, реализация соединения базы данных и языка программирования (Microsoft Visual Basic 2008 Express Edition) реализуется следующим образом:

С помощью меню Data указывается путь к ранее созданной базе данных. Далее необходимо добавить компоненты: DataSet, DataGrindView, BindingNavigator, последний создает строку меню, добавлением стандартных элементов меню, получаем возможность работы с базой данных, для сохранения результатов вводим следующий код:

Private Sub SaveToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripButton.Click

Validate()

КлиентBindingSource.EndEdit()

КлиентTableAdapter.Update(ЭцпDataSet1.клиент)

End Sub

Переход между СУБД и рабочей формой осуществляется следующим образом:

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы