Разработка электронной цифровой подписи
Как видно из схемы в базе данных применяются следующие таблицы:
Структура таблицы «Документ»
Таблица 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
Переход между СУБД и рабочей формой осуществляется следующим образом:
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности