Программное обеспечение криптографической системы на основе платформы.net
Анализ проблемы защиты информации путем ее преобразования. Описание алгоритмов шифрования. Схема работы программного обеспечения. Состав программных средств разработки. Руководство системного программиста и оператора. Описание контрольного примера.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 12.03.2018 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
55
Размещено на http://www.allbest.ru/
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине "Технологии разработки программного обеспечения"
"Программное обеспечение криптографической системы на основе платформы.net"
Содержание
- Введение
- 1. Постановка задачи на разработку программного обеспечения
- 2. Описание алгоритмов шифрования
- 3. Схема работы программного обеспечения
- 4. Состав программных средств разработки
- 5. Логическое проектирование
- 6. Руководство системного программиста
- 7. Руководство программиста
- 8. Руководство оператора
- 9. Описание контрольного примера
- Заключение
- Список использованных источников
- Приложения
Введение
Проблема защиты информации путем ее преобразования, исключающего ее прочтение посторонним лицом волновала человеческий ум с давних времен. Криптографическое преобразование как метод предупреждения несанкционированного доступа к информации имеет многовековую историю. В настоящее время разработано большое количество различных методов шифрования, созданы теоретические и практические их применения. Подавляющие число этих методов может быть успешно использовано и для закрытия информации.
Почему проблема использования криптографических методов в информационных системах (ИС) стала в настоящий момент особо актуальна?
С одной стороны, расширилось использование компьютерных сетей, в частности глобальной сети Интернет, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц.
С другой стороны, появление новых мощных компьютеров, технологий сетевых и нейронных вычислений сделало возможным дискредитацию криптографических систем, ещё недавно считавшихся практически не раскрываемыми.
Криптография занимается поиском и исследованием математических методов преобразования информации.
Современная криптография включает в себя четыре крупных раздела:
1. Симметричные криптосистемы.
2. Криптосистемы с открытым ключом.
3. Системы электронной подписи.
4. Управление ключами.
Основные направления использования криптографических методов - передача конфиденциальной информации по каналам связи (например, электронная почта), установление подлинности передаваемых сообщений, хранение информации на носителях в зашифрованном виде. Итак, криптография дает возможность преобразовать информацию таким образом, что ее прочтение (восстановление) возможно только при знании ключа.
В симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ.
В системах с открытым ключом используются два ключа - открытый и закрытый, которые математически связаны друг с другом. Информация шифруется с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения.
Электронной (цифровой) подписью называется присоединяемое к тексту его криптографическое преобразование, которое позволяет при получении текста другим пользователем проверить авторство и подлинность сообщения.
Целью данной курсовой работы является разработка программного обеспечения, которое позволит шифровать или расшифровать тексты, подписывать документы электронной подписью и осуществлять проверку, а также формировать значение хеш-функции текстового сообщения, проверять на совпадение хеш-функции и текста.
Данное ПО позволит пользователю при обычном вводе ключа осуществлять шифрование или расшифрование сообщений, проверять подлинность документов и позволит формировать хеш-функцию, что может быть полезно при проверке авторизации.
Для шифрования сообщения используются алгоритмы симметричного шифрования AES, DES; для реализации электронной подписи документов - RSA; для формирования хеш-функции - MD5.
алгоритм шифрование программное обеспечение
1. Постановка задачи на разработку программного обеспечения
Требуется разработать программное обеспечение, которое позволит шифровать данные и расшифровать текст на основе симметричных алгоритмов шифрования AES (Advanced Encryption Standard) и DES (Data Encryption Standard), предоставить возможность подписывать документы электронной цифровой подписью благодаря алгоритму RSA (Rivest, Shamir и Adleman), также получать хеш-функцию и осуществлять проверку на совпадение текста и хеш-функции (MD5).
Для шифрования текста или сообщения при помощи симметричных алгоритмов необходимо обладать секретным ключом, знать значение вектора инициализации. Текст или ключи можно хранить в файле текстового формата, а можно осуществлять ввод с клавиатуры в соответствующие текстовые поля.
Для подписи документов необходимо иметь документ (файл), простые секретные числа p и q. Для проверки подлинности ЭЦП необходимо знать значение секретного ключа d, число n - произведение p и q.
Чтобы получить хеш-функцию, необходимо только иметь исходных текст для шифрования. Расшифровать текст при помощи хеш-функции нельзя, можно только проверить совпадёт ли значение хеш-функции исходного текста и имеющейся хеш-функции.
Алгоритмы шифрования в разрабатываемом программном обеспечении должны быть реализована независимо друг от друга.
2. Описание алгоритмов шифрования
Advanced Encryption Standard
AES является симметричным алгоритмом блочного шифра. Блочные шифры работают блоками, блок - совокупность бит фиксированной длины. Таким образом, сообщение разбивается на блоки, затем эти блоки шифруются (рисунок 1).
Рисунок 1 - Блочное шифрование
Основные определения алгоритма AES:
· State (форма) - матрица (двумерный массив) байтов, расположенных следующем образом (рисунок 2):
Рисунок 2 - Расположение байтов
· Round (раунд) - итерация цикла преобразования над State (формой). Количество итераций зависит от длины ключа, чем больше длина ключа, тем больше итераций.
· Round key (раундовый ключ) Ї уникальный ключ, который применяется в каждом отдельном в раунде.
· S-Box (таблица подстановок) - таблица, которая задает отображение одного байта в другой (биективное отображение) (рисунок 3):
Рисунок 3 - Биективное отображение
· Обратная таблица подстановок Ї аналогично S-Box, задает обратное отображение (рисунок 4):
Рисунок 4 - Обратное отображение.
Шифрование состоит из следующих функций преобразования:
1. ExpandKey - Функция для вычисления всех раундовых ключей;
2. SubBytes - Функция для подстановки байтов, использующая таблицу подстановок;
3. ShiftRows - Функция, обеспечивающая циклический сдвиг в форме на различные величины;
4. MixColumns - Функция, которая смешивает данные внутри каждого столбца формы;
5. AddRoundKey - Сложение ключа раунда с формой.
На рисунке 5 представлена схема алгоритма шифрования AES. Nr - количество раундов.
Рисунок 5 - Алгоритм шифрования AES
Расшифрование происходит аналогичным образом, только в обратном порядке.
Data Encryption Standard
DES также относится в симметричным алгоритмам блочного шифрования.
Общая схема процесса шифрования DES показана на рисунке 6. Как и в случае любой схемы шифрования, здесь на вход функции шифрования подаётся два типа данных - открытый текст, который требуется зашифровать, и ключ.
Рисунок 6 - Общая схема шифрования DES (пример)
Структура алгоритма DES приведена на рисунке 7.
Рисунок 7 - Структура шифрования по алгоритму DES
Пусть из файла считан очередной 8-байтный блок P, который преобразуется с помощью матрицы начальной перестановки IP следующим образом: бит 58 блока Р битом 1, бит 50 - битом 2 и т.д. Полученная последовательность битов P (0) разделяется на две последовательности по 32 битв каждая: L (0) - левые или старшие биты, R (0) - правые или младшие биты.
Функция f - функция шифрования. Вычисление функции представлено на рисунке 8.
Рисунок 8 - Вычисление функции шифрования
Для расшифровки текста необходимо, чтобы ключевые элементы использовались в обратном порядке. Расшифровка происходит по такому же алгоритму.
RSA (Rivest, Shamir и Adleman). RSA-ключи генерируются следующим образом:
1. Выбираются два различных случайных простых числа p {\displaystyle p} p и q {\displaystyle q} q заданного размера (например, 1024 бита каждое).
2. Вычисляется их произведение n = p ? q {\displaystyle n=p\cdot q} n=p*q, которое называется модулем.
3. Вычисляется значение функции Эйлера от числа n: n {\displaystyle n} .
ц (n) = (p ? 1) Е (q ? 1). {\displaystyle \varphi (n) = (p-1) \cdot (q-1). }
4. Выбирается целое число e {\displaystyle e} e (1 < e < ц (n) {\displaystyle 1<e<\varphi (n) } ), взаимно простое со значением функции ц (n) {\displaystyle \varphi (n) }. Обычно в качестве e {\displaystyle e} e берут простые числа, содержащие небольшое количество единичных бит в двоичной записи, например, простые числа Ферма 17, 257 или 65537.
5. Вычисляется число d {\displaystyle d} d, мультипликативно обратное к числу e {\displaystyle e} e по модулю ц (n) {\displaystyle \varphi (n) } d Е e ? 1 (mod ц (n)). {\displaystyle d\cdot e\equiv 1{\pmod {\varphi (n) }}. }
o Число d {\displaystyle d} d называется секретной экспонентой. Обычно, оно вычисляется при помощи расширенного алгоритма Евклида.
6. Пара { e, n } {\displaystyle \left\{e,n\right\}} {e, n} публикуется в качестве открытого ключа RSA.
7. Пара { d, n } {\displaystyle \left\{d,n\right\}} {d, n} играет роль закрытого ключа RSA.
Алгоритм формирования цифровой подписи лучше показать на примере.
Пусть Алиса (сторона А) будет отправлять Бобу (стороне В) сообщение m подтверждённой электронной подписью (рисунок 9).
Рисунок 9 - Передача сообщения, подтверждённой электронной подписью
Алгоритм работы Алисы:
1) Взять открытый ключ {e. n} Алисы.
2) Взять открытый текст m.
3) Зашифровать сообщение с использованием открытого ключа Алисы: .
Алгоритм работы Боба:
1) Принять зашифрованное сообщение с.
2) Взять свой закрытый ключ {d, n}.
3) Применить закрытый ключ для расшифрования сообщения: .
В случае подтверждения Боб сможет удостовериться, что именно Алиса прислала ему сообщение.
Алгоритм MD5
MD5 (англ. Message Digest 5) - 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом из Массачусетского Технологического Института (MIT, Massachusetts Institute of Technlogy) в 1991 году.
Предназначен для создания "отпечатков" или "дайджестов" сообщений произвольной длины. Пришёл на смену MD4, который был несовершенен. Работает на 32-битных машинах. Зная MD5, невозможно восстановить входное сообщение, так как одному MD5 могут соответствовать разные сообщения.
На вход алгоритма поступает входной поток данных, хеш которого необходимо найти. Длина сообщения может быть любой (в том числе нулевой). Запишем длину сообщения в L. Это число целое и не отрицательное. Кратность каким-либо числам не обязательна. После поступления данных идет процесс подготовки потока к вычислениям (рисунок 10).
Рисунок 10 - Схема вычисления хеш-функции
Шаг 1. Выравнивание потока
Входные данные выравниваются так, чтобы их размер был сравним с 448 по модулю 512 (L' = 512? N + 448). Сначала дописывают единичный бит в конец потока, затем необходимое число нулевых бит (выравнивание происходит, даже если длина уже конгруэнтна - сравнима с 448).
Шаг 2. Добавление длины сообщения.
В оставшиеся 64 бита дописывают 64-битное представление длины данных до выравнивания. Если длина превосходит 2 64? 1, то дописывают только младшие биты. После этого длина потока станет кратной степеням двойки - 16, 32. Вычисления будут основываться на представлении этого потока данных в виде массива слов по 512 бит.
Шаг 3. Инициализация MD-буфера.
Для вычислений инициализируются 4 переменных размером по 32 бита и задаются начальные значения шестнадцатеричными числами:
А = 01 23 45 67; В = 89 AB CD EF;
С = FE DC BA 98; D = 76 54 32 10.
В этих переменных будут храниться результаты промежуточных вычислений. Начальное состояние ABCD называется инициализирующим вектором.
Определим еще функции и константы, которые нам понадобятся для вычислений.
Потребуются 4 функции для четырех раундов. Введем функции от трех параметров - слов, результатом также будет слово.
Определим таблицу констант T [1.64] - 64-элементная таблица данных, построенная следующим образом: T [i] = int (4294967296 * | sin (i) |) и s - циклический сдвиг влево на s бит полученного 32-битного аргумента.
Выравненные данные разбиваются на блоки (слова) по 32 бита, и каждый блок проходит 4 раунда из 16 операторов. Все операторы однотипны и имеют вид: [abcd k s i], определяемый как a = b + ( (a + Fun (b,c,d) + X [k] + T [i]) < < < s), где X - блок данных. X [k] = M [n * 16 + k], где k - номер 32-битного слова из n-го 512-битного блока сообщения.
Шаг 4. Вычисление в цикле
Заносим в блок данных элемент n из массива. Сохраняются значения A, B, C и D, оставшиеся после операций над предыдущими блоками (или их начальные значения, если блок первый).
AA = A, BB = B, CC = C, DD = D
Суммируем с результатом предыдущего цикла:
A = AA + A, B = BB + B, C = CC + C, D = DD + D
После окончания цикла необходимо проверить, есть ли еще блоки для вычислений. Если да, то изменяем номер элемента массива (n++) и переходим в начало цикла.
Шаг 5. Результат вычислений
Результат вычислений находится в буфере ABCD, это и есть хеш. Если вывести слова в обратном порядке DCBA, то мы получим наш MD5 хеш.
3. Схема работы программного обеспечения
Послу запуска программы пользователю необходимо выбрать алгоритм, которым он желает воспользоваться. Так ему нужно будет выбрать из 4-х операций - AES, DES, RSA, MD5. Либо выйти из программы.
После того, как пользователь выберет шифрование данных на основе симметричных алгоритмом (AES или DES) откроется окно. В данном окне будет можно будет загрузить ключ и вектор инициализации из текстового файла. Нужно при этом помнить, что размер ключа составляет 32 байта, а вектора - 16 байтов, для корректной работы шифрования и расшифрования. Помимо загрузки, ключ и вектор можно будет ввести в текстовое поле с клавиатуры или же сгенерировать, нажав кнопку генерации.
В поле для ввода текста шифрования или расшифрования нужно ввести соответсвующие тексты. Также их можно загрузить из текстовых файлов.
После чего будет возможно данные как зашифровать, так и расшифровать. В случае наличия пустых полей пользователю будет выведено сообщение о просьбе заполнения полей и никаких операций по шифрованию происходить не будет.
Если все поля заполнены, то будет в соответствующих текстовых полях будет показан результат шифрования или расшифрования. Полученный результат можно будет сохранить.
В случае выбора режима RSA, необходимо загрузить документ для генерации подписи, ввести числа p и q. После чего можно сформировать ЭЦП. Для проверки подлинности подписи нужен снова подписанный документ, значение ЭЦП и секретный ключ d, а также число n - которое представляет собой произведение p и q. После заполнения необходимых полей будет получен результат о подлинности ЭЦП. Если поля заполнены не будут, пользователю будет предложено заполнить поля.
В режиме MD5 для получения хеш-функции нужно ввести текст, а для сравнения - текст и значения хеш-функции. В первом случае будет получено значение, а во втором показан результат о совпадении текста и значения хеш.
Схема работы программы представлена на рисунке 11.
Рисунок 11 - Схема работы ПО
4. Состав программных средств разработки
Для разработки приложения была использована интегрированная среда разработки Visual Studio 2015.
Преимущества Visual Studio 2015:
· удобный интерфейс для проектирования различных приложений;
· эффективный инструментарий разработки;
· доступные разработчику средства не ограничены редактором кода и шаблонами, создающими каркасы приложений;
· снижении общего времени построения решений;
· усовершенствованные функции и инструменты, имевшиеся в ранних версиях Visual Studio;
Настольные приложения Windows предоставляют пользователю самые простые способы взаимодействия между программой и самим пользователем. Отсутствие клиент-серверной технологи, объединение в одном приложении непосредственного обмена данными с пользователем с помощью графический интерфейс упрощают работу с windows - приложением, предоставляют всю его функциональность.
Настольное Windows-приложение обладает простой схемой взаимодействия с пользователем, который работает с графическим интерфейсом, работа которого обеспечивается операционной системой.
При написании такого приложения очень удобно использовать язык C# на платформе.net. На данном языке реализовано множество библиотек шифрования данных директивы System. Security. Cryptography, что значительно облегчает задачу в использовании алгоритмов шифрования.
5. Логическое проектирование
В разрабатываемом программном обеспечении необходимо использовать способы и приёмы объектно-ориентированного программирования.
В данной работе были реализованы следующие классы:
AES. cs - класс, реализующий шифрование и расшифрование по алгоритму AES;
TripleDes. cs - класс, реализующий шифрование и расшифрование по алгоритму DES. cs;
RSA. cs - класс, реализующие формирование электронной цифровой подписи;
md5. cs - класс получения хеш-функции;
Program. cs - класс, определяющий графический интерфейс;
Form1. cs - стартовое графическое окно программного обеспечения;
FormAES. cs - графический интерфейс работы алгоритма AES;
FormDES. cs - графический интерфейс работы алгоритма DES;
FormMD5 - графический интерфейс для работы с хеш-функцией;
FormRSA - графический интерфейс реализации электронной цифровой подписи.
Диаграмма классов представлена на рисунке 12.
Рисунок 12 - Диаграмма классов
Диаграмма класса Form1 изображена на рисунке 13.
Рисунок 13 - Диаграмма класса Form1
Класс Form1 содержит следующие поля:
private Button buttonOKFormMain - кнопка перехода в выбранный режим шифрования;
private IContainer components - группировка элементов на форме:
private Label label1. label4 - текстовые поля для вспомогательных фраз пользователю;
private radioButton radioButtonAES - выбор режима шифрования AES;
private radioButton radioButtonDES - выбор режима шифрования DES;
private radioButton radioButtonRSA - выбор режима шифрования RSA;
private radioButton radioButtonMD5 - выбор режима шифрования MD5.
Класс Form1 содержит следующие методы:
private void buttonOKFormMain_Click - активация кнопки перехода во выбранному режиму шифрования по клику;
private void Form1_FormClosed - активация кнопки выхода, завершение работ программы.
Диаграмма класса Form1 изображена на рисунке 14.
Рисунок 14 - Диаграмма класса FormAES
Класс Form1 содержит следующие поля:
private Button buttonDecryptAES - кнопка расшифровки данных;
private Button buttonENcryptAES - кнопка шифрования данных;
private Button buttonGenerateIVaes - кнопка генерации вектора инициализации;
private Button buttonGenerateKeyAes - кнопка генерации ключа;
private Button buttonLoadFileEncryptTextAES - кнопка загрузки файла с зашифрованным текстом;
private Button buttonLoadFileIVaes - кнопка загрузки файла с вектором инициализации;
private Button buttonLoadFileKeyAES - кнопка загрузки файла со значением секретного ключа;
private Button buttonLoadFileTextAES - кнопка загрузки файла с текстом;
private Button buttonSaveFileEncryptTextAES - кнопка сохранения файла с зашифрованным текстом;
private Button buttonSavetTextAES - кнопка сохранения файла с текстом;
private byte [] EncryptText - зашифрованный текст;
private byte [] IV - вектор инициализации;
private byte [] key - секретный ключ;
private Aes myAes - объект для осуществления шифрования и расшифрования;
private RichTextBox richTextBoxEncryptText - текстовое поле для зашифрованного текста;
private RichTextBox richTextBoxtText - текстовое поле для текста;
private TextBox textBoxIVae - текстовое поле для вектора иницализации;
private TextBox textBoxKeyAES - текстовое поле для секретного ключа.
Все методы данного класса соответствуют своим кнопкам. Данные методы позволяют приводить в действие реализацию по нажатию на кнопки.
Класс FormDES имеет аналогичную структуру (рисунок 15).
Рисунок 15 - Диаграмма класса FormDES
Диаграмма класса FormRSA изображена на рисунке 15.
Рисунок 15 - Диаграмма класса FormRSA
Класс FormRSA содержит следующие поля:
private Button checkSignButton - кнопка проверки подлинности ЭЦП;
private Button signButton - кнопка реализации ЭЦП;
private Button sourceFileButton - кнопка загрузки файла исходного текста;
private Button signFileButton - кнопка загрузки файла электронной цифровой подписи;
private TextBox signFilePathTextBox - текстовое поле, показывающее полный путь к файлу электронной подписи;
private TextBox sourceFilePathTextBox - текстовое поле, показывающее полный путь к файлу исходного текста;
private TextBox textbox_d - текстовое поле для ввода значения d;
private TextBox textbox_n - текстовое поле для ввода значения n;
private TextBox textbox_p - текстовое поле для ввода значения p;
private TextBox textbox_q - текстовое поле для ввода значения q.
Диаграмма класса FormMD5 изображена на рисунке 16.
Рисунок 16 - Диаграмма класса FormMD5
Класс FormMD5 содержит следующие поля:
private Button buttonCompareTextHash - кнопка сравнения текста и значения хеш-функции;
private Button buttonToGetHash - кнопка получения значения хеш-функции;
private TextBox textBoxHash - получаемое значение хеш-функции;
private TextBox textBoxHashCompare - текстовое поле для ввода сравниваемого значения хеш-функции;
private TextBox textBoxTextCompare - текстовое поле для ввода сравниваемого текста;
private TextBox textBoxTextToGetHash - текстовое поле для ввода текста;
private Label labelAnswerAboutCompare - поле с ответом о результатах сравнения текста и значения хеш-функции.
Диаграмма класса AES изображена на рисунке 17.
Рисунок 17 - Диаграмма класса AES
Класс AES содержит следующие методы:
public static string DecryptStringFromBytes_Aes - метод выполняет расшифровку данных;
public static byte [] EncryptStringToBytes_Aes - выполняет шифрование данных.
Диаграмма класса TripleDes изображена на рисунке 18.
Рисунок 18 - Диаграмма класса TripleDes
Класс TripleDes содержит следующие методы:
public static string DecryptStringFromBytes - метод выполняет расшифровку данных;
public static byte [] EncryptStringToBytes - выполняет шифрование данных.
Диаграмма класса RSA изображена на рисунке 19.
Рисунок 19 - Диаграмма класса RSA
Класс RSA содержит следующие методы:
public long Calculate_d - вычисляет значение d;
public long Calculate_e - вычисляет значение e;
public bool IsTheNumberSimple - проверят, являются ли вводимые числа простые;
public string RSA_Dedoce - выполняет расшифрование данных;
public string RSA_ENdoce - выполняет шифрование данных.
Диаграмма класса md5 изображена на рисунке 20.
Рисунок 20 - Диаграмма класса md5
Класс md5 содержит следующие методы:
public string GetMd5Hash - метод генерации значения хеш-функции;
public bool VerifyMd5Hash - сравнивает текст и значение хеш-функции.
6. Руководство системного программиста
Общие сведения о программе
Программное обеспечение криптографической системы предназначено для шифрования и расшифрования текста при помощи алгоритмов симметричного шифрования AES и DES, реализации электронной цифровой подписи на основе алгоритма RSA и формирования значения хеш-функции на базе алгоритма MD5.
Системные требования
Для работы приложения требуется:
операционная система Windows 7 и выше;
платформа.net Framework 4.5 и выше;
архитектура 32-разрядная (х86) /64-разрядная (х64);
оперативная память 256 МБ и более.
Настройка приложения
Программа не требует дополнительной настройки.
Сообщения системному программисту
В случае некорректного ввода данных или случайной ошибки при вводе, программа обработает данную ситуацию, сообщит об этом пользователю и позволит повторить ввод данных.
7. Руководство программиста
Назначение и условия применения программы
Программное обеспечение криптографической системы предназначено для шифрования и расшифрования текста при помощи алгоритмов симметричного шифрования AES и DES, реализации электронной цифровой подписи на основе алгоритма RSA и формирования значения хеш-функции на базе алгоритма MD5.
Программист должен обладать следующими знаниями и навыками:
1) знать соответствующую предметную область;
2) MS Visual Studio 2015;
3) иметь навыки работы с Microsoft Office.
Также программист должен иметь опыт работы с операционными системами MS Windows (7/ 8/ 8.1/ 10).
Структура программы
Программное обеспечение разработано с использованием способов и приёмов объектно-ориентированного программирования.
Приложение содержит в себе следующие классы:
AES. cs - класс, реализующий шифрование и расшифрование по алгоритму AES;
TripleDes. cs - класс, реализующий шифрование и расшифрование по алгоритму DES. cs;
RSA. cs - класс, реализующие формирование электронной цифровой подписи;
md5. cs - класс получения хеш-функции;
Program. cs - класс, определяющий графический интерфейс;
Form1. cs - стартовое графическое окно программного обеспечения;
FormAES. cs - графический интерфейс работы алгоритма AES;
FormDES. cs - графический интерфейс работы алгоритма DES;
FormMD5 - графический интерфейс для работы с хеш-функцией;
FormRSA - графический интерфейс реализации электронной цифровой подписи.
Структура проекта представлена на рисунке 21.
Рисунок 21 - Структура проекта ПО криптографической системы
Входные и выходные данные
Входными данными для режима работы алгоритмов AES и DES необходимо обладать следующими входными данными:
· значением секретного ключа в 32 байта;
· значением вектора инициализации в 16 байт;
· текстом для шифрования или расшифрования.
Эти данные можно загрузить с текстового файла.
Выходными данными для режима работы алгоритмов AES и DES является зашифрованный или расшифрованный текст.
Для работы в режиме RSA входными данными для подписи документов являются:
§ исходный файл для подписи;
§ файл с хранением ЭЦП;
§ значения чисел p и q.
Выходными данными в данном случае является сформированная ЭЦП.
Для проверки подписи на подлинность в этом же режиме входными данными являются:
§ исходный файл для подписи;
§ файл с хранением ЭЦП;
§ значения ключа d и n.
В качестве выходных данных выступает сообщение пользователю о результатах проверки.
В режиме работы MD5 входными данными являются текст и хеш-функция. Выходными - значение хеш-функции (в случае генерации функции) или ответ пользователю о результатах сравнения текста или значения хеш.
Обращение к программе
При запуске работы программы необходимо выбрать режим работы: AES, DES, RSA, MD5.
После чего будет открыто окно, соответствующее каждому режиму работы. Для каждого режима необходимо ввести входные данные и выбрать нужное действие, нажав на кнопки: "Зашифровать", "Расшифровать", "Сохранить" (в случае шифрования и расшифровки), "Подписать", "Проверить подпись" (в случае ЭЦП), "Получить значение хеш", "Сравнить хеш" (в случае хеш-функции).
Если данных будет недостаточно, пользователю выведется сообщения о просьбе заполнить поля данными.
8. Руководство оператора
Назначение программы
Приложение предназначено для шифрования и расшифрования текста при помощи алгоритмов симметричного шифрования AES и DES, реализации электронной цифровой подписи на основе алгоритма RSA и формирования значения хеш-функции на базе алгоритма MD5.
Условия выполнения программы
Для успешной работы приложения необходимо наличие компьютера, соответствующего системным требованиям.
Выполнение программы
Для запуска приложения необходимо запустить файл CryptographySytem. exe. Сначала откроется главное окно с выбором режима работы (рисунок 22).
Рисунок 22 - Окно выбора режима работы
Если был выбран режим AES или DES, то откроется окно, в котором необходимо будет ввести ключ и вектор инициализации, текст для шифрования/расшифрования и нажать на кнопки "Зашифровать" / "Расшифровать" (рисунок 23).
Рисунок 23 - Окно для работы шифрования по алгоритму DES
Также, ключ и вектор инициализации можно сгенерировать автоматически, нажав на соответствующую кнопку. Ключи и текст можно загрузить из файлов, нажав на кнопки загрузки у каждого поля. Результаты шифрования можно сохранить, нажав на кнопку "Сохранить".
Если был выбран режим RSA, то необходимо загрузить файл с исходным текстом и файл для электронной подписи. После чего необходимо ввести числа p и q взаимно простые и нажать кнопку "Подписать" (рисунок 24).
Рисунок 24 - Режим работы по алгоритму RSA
Для проверки подпись на подлинность необходимо загрузить файлы и ввести значение секретного ключа d и n, после чего нажать на кнопку "Проверить подлинность подписи". Результат будет выведен в сообщении пользователю.
В режиме формирования хеш-функции (md5) для получения значения хеш нужно ввести строку в текстовое поле и нажать кнопку "Получить значение хэш". Значение будет выведено в соответствующем текстовом поле.
В режиме проверки текста и значения-хеш функции, их необходимо ввести в соответствующие текстовые поля и нажать кнопку "Проверить хэш". Результаты проверки будут выведены в окне (рисунок 25).
Рисунок 25 - Режим работы алгоритма MD5
Сообщения об ошибках
В случае некорректного или неполного ввода данных программа выдает сообщения об ошибке, после чего позволит повторить ввод данных.
9. Описание контрольного примера
Для тестового примера выберем режим шифрования и расшифровки данных при помощи алгоритма DES (рисунок 26).
Рисунок 26 - Режим работы DES
Введём значение ключа и вектора IV и зашифруем текст "Hello, my friend!". Результат работы представлен на рисунке 27.
Рисунок 27 - Результат работы шифрования/расшифрования по алгоритму DES.
При расшифровке зашифрованного текста, выдается исходное сообщение.
Заключение
В данной работе было разработано программное обеспечение криптографической системы на основе платформы.net. В данном ПО предусмотрены режимы шифрования и расшифрования данных, получение электронной цифвровой подписи и её проверка на подлинность, а также получение значения хеш-функции.
Данное программное обеспечение позволит быстро расшифровать (зашифровать) текстовые сообщения, проверять подлинность документов или сравнивать текст со значением хеш-функции.
Для реализации функций системы использовались такие алгоритмы, как AES, DES, RSA, MD5. Данные алгоритмы являются актуальными и применяются в наши дни.
Реализация алгоритмов произведена при помощи языка C# в MS Visual Studio 2015 на платформе.net. В данном языке уже имеются библиотеки со вспомогательными методами применяемых алгоритмов, что очень удобно.
При работе с ПО следует обращать внимание на вводимые данные, так как результат работы целиком зависит от значений входных параметров.
Список использованных источников
1. ГОСТ 19.201-78 ЕСПД. Техническое задание.
2. Шилдт Г. - C# 4.0 полное руководство - Москва: Вильямс, 2011. - 1056 с.
3. Рихтер Дж. - CLR via C#. Программирование на платформе Microsoft.net Framework 4.5 на языке С#.4-е изд. - СПб: Питер, 2013. - 896с.
4. Никсон Р. - Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript: изд. - Питер, 2011. - 496 с.
5. Википедия [Электронный ресурс]: Advanced Encryption Standard. - Режим доступа: https: // ru. wikipedia.org/wiki/Advanced_Encryption_Standard.
6. Документация MSDN [Электронный ресурс]: System. Secutity. Cryptography. - Режим доступа: https: // msdn. microsoft.com/ru - ru/library/system. security. cryptography (v=vs.110). aspx.
7. Википедия [Электронный ресурс]: Data Encryption Standard. - Режим доступа: https: // ru. wikipedia.org/wiki/DES.
8. Википедия [Электронный ресурс]: RSA. - Режим доступа: https: // ru. wikipedia.org/wiki/RSA.
9. Википедия [Электронный ресурс]: MD5. - Режим доступа: https: // ru. wikipedia.org/wiki/MD5.
10. Сингх С. Книга шифров. Тайная история шифров и их расшифровки. М.: Аст, Астрель, 2008.447 с.
11. Бауэр Ф. Расшифрованные секреты. Методы и принципы криптологии. М.: Мир, 2007.550 c.
12. Мао B. Современная криптография. Теория и практика. М.: Вильямс, 2005.763 с.
Приложения
Приложение A
1. ВВЕДЕНИЕ
1.1. Наименование программы
Наименование - "Программное обеспечение криптографической системы на основе платформы.net"
1.2. Краткая характеристика области применения программы
Программное обеспечение предназначено для шифрования и расшифрования текстовых данных при помощи алгоритма AES и DES, формирования ЭЦП подписи при помощи алгоритма RSA и проверка ЭЦП на подлинность, а также вычисление значения хеш-функции.
2. НАЗНАЧЕНИЕ РАЗРАБОТКИ
2.1. Функциональное назначение программы
Функциональным назначением программы является шифрование и расшифрование текстовых данных, получений ЭЦП, вычисление значения хеш-функции.
2.2. Эксплуатационное назначение программы
Программа должна использоваться пользователями, работающими с шифрованием данных, особенно когда дело касается документов с ЭЦП и передачей зашифрованных сообщений.
3. ТРЕБОВАНИЯ К ПРОГРАММЕ
3.1. Требования к функциональным характеристикам
3.1.1. Требования к составу выполняемых функций
Система формирования документов состоит из подсистем, каждая из которых выполняет свои функции. ПО криптографической системы обеспечивает возможность реализации этих функций.
Функции подсистемы "Режим AES":
получение значения секретного ключа;
получение значения вектора инициализации;
получения текста для шифрования или расшифрования;
шифрование по алгоритму AES;
расшифрование по алгоритму АЕS;
возможное случайное генерирование ключа;
возможное случайное генерирование вектора инициализации;
сохранение документов с результатами шифрования и расшифрования;
загрузка фалов со значением ключа, вектора инициализации и текстов для шифрования или расшифрования.
Функции подсистемы "Режим DES":
получение значения секретного ключа;
получение значения вектора инициализации;
получения текста для шифрования или расшифрования;
шифрование по алгоритму DES;
расшифрование по алгоритму DЕS;
возможное случайное генерирование ключа;
возможное случайное генерирование вектора инициализации;
сохранение документов с результатами шифрования и расшифрования;
загрузка фалов со значением ключа, вектора инициализации и текстов для шифрования или расшифрования.
Функции подсистемы "Режим RSA":
загрузка файла исходного документа;
загрузка файла для хранения электронной подписи;
ввод простых числе p и q;
формирование ЭЦП при помощи алгоритма RSA;
ввод значения секретного ключа d и числа n;
проверка документа на подлинность ЭЦП;
вывод результатов о результатах проверки на экран.
Функции подсистемы "Режим MD5":
формирование документа "Квитанция" при оплате товара клиентом.
3.1.2. Требования к организации входных данных
Входными данными для режима работы алгоритмов AES и DES необходимо обладать следующими входными данными:
· значением секретного ключа в 32 байта;
· значением вектора инициализации в 16 байт;
· текстом для шифрования или расшифрования.
Эти данные можно загрузить с текстового файла.
Для работы в режиме RSA входными данными для подписи документов являются:
§ исходный файл для подписи;
§ файл с хранением ЭЦП;
§ значения чисел p и q.
Для проверки подписи на подлинность в этом же режиме входными данными являются:
§ исходный файл для подписи;
§ файл с хранением ЭЦП;
§ значения ключа d и n.
В режиме работы MD5 входными данными являются текст и хеш-функция.
3.1.3. Требования к организации выходных данных
Выходными данными для режима работы алгоритмов AES и DES является зашифрованный или расшифрованный текст.
Выходными данными в режиме RSA является сформированная ЭЦП, сообщение пользователю о результатах проверки.
В режиме работы MD5 выходными данными являются значение хеш-функции (в случае генерации функции) или ответ пользователю о результатах сравнения текста и значения хеш.
3.1.4. Требования к временным характеристикам
Требования к временным характеристикам программы не предъявляются.
3.2. Требования к надёжности
3.2.1. Требования к обеспечению надёжного (устойчивого) функционирования программы
Надёжное функционирование программы должно быть обеспечено выполнением совокупности организационно-технических мероприятий:
организацией бесперебойного питания технических средств;
необходимым уровнем квалификации сотрудников подразделений;
регулярным выполнением рекомендаций Министерства труда и социального развития РФ, изложенных в Постановлении от 23 июля 1998 г. "Об утверждении межотраслевых типовых норм времени на работы по сервисному обслуживанию ПЭВМ и оргтехники и сопровождению программных средств.
3.2.2. Время восстановления после отказа
Время восстановления после отказа, вызванного неисправностью технических средств, фатальным сбоем, не должно превышать времени, требуемого на устранение исправностей технических средств и переустановки программных средств.
3.3. Условия эксплуатации
3.3.1. Требования к численности и квалификации персонала
Численность персонала по работе с программой - 3 человека: системный программист, программист и пользоватаель.
Системный программист должен быть знаком с задачей установки программы и уметь поддерживать работоспособность технических средств и операционной системы.
Требования по численности и квалификации персонала, а именно к сотруднику (программисту), следующие:
· умение работать с персональным компьютером в операционной системе Windows 7 и выше;
· иметь общее представление о криптографии, работы алгортмов DES, AES, RSA, MD5;
· знать язык программирования C#;
· уметь использовать для изменения работы программы MS Visual Studio 2015 и выше.
3.4. Требования к составу и параметрам технических средств
В состав технических средств входят следующие компоненты:
1) Устройство обработки информации:
- процессор частотой не менее, чем 3.3 ГГц;
- жесткий диск объёмом не менее 32 Гбайт;
- источник бесперебойного питания с двойным преобразованием напряжения APS Smart-UPS RT 3000VA.
2) Устройства ввода информации:
- клавиатура;
- мышь.
3) Устройства вывода информации:
монитор (разрешение не менее 1024x768);
3.5. Требования к информационной программной совместимости
3.5.1. Требования к исходным кодам и языкам программирования
Программное обеспечение для разработки включает в себя следующие компоненты:
операционная система Windows 7 и выше;
для возможного редактирования программы IDE MS Visual Studio 2015;
Исходные коды программы должны быть реализованы на языке C# с использованием Framework 4.5 и выше на основе платформы.net.
3.5.2. Требования к программным средствам, используемым программой
Программные средства, используемые программным обеспечением, включают в себя следующие компоненты:
операционная система Windows 7 и выше;
для возможного редактирования программы IDE MS Visual Studio 2015;
Исходные коды программы должны быть реализованы на языке C#.
4. ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ
4.1. Предварительный состав программной документации
Состав программной документации должен включать в себя:
1) техническое задание;
2) текст программы;
3) описание программы;
4) пояснительная записка;
5) руководство системного программиста;
6) руководство программиста.
4.2. Специальные требования к программной документации
Специальные требования к программной документации не предъявляется.
"Программное обеспечение криптографической системы на основе платформы.net"
Наименование организации, предприятия |
Должность исполнителя |
Фамилия, имя, отчество |
Подпись |
Дата |
|
ТулГУ, Каф. ВТ |
Студент гр.220971/05 |
Царёва Ангелина Дмитриевна |
Согласовано
Наименование организации, предприятия |
Должность |
Фамилия, имя, отчество |
Подпись |
Дата |
|
ТулГУ Каф. ВТ |
К. т. н., доцент каф. ВТ |
Афанасьева Светлана Михайловна |
Приложение Б
Файл AES. cs
using System;
using System. IO;
using System. Security. Cryptography;
namespace CryptographySystem
{
class AES
{
public static byte [] EncryptStringToBytes_Aes (string plainText, byte [] Key, byte [] IV)
{
// Check arguments.
if (plainText == null || plainText. Length <= 0)
throw new ArgumentNullException ("plainText");
if (Key == null || Key. Length <= 0)
throw new ArgumentNullException ("Key");
if (IV == null || IV. Length <= 0)
throw new ArgumentNullException ("IV");
byte [] encrypted;
// Create an Aes object
// with the specified key and IV.
using (Aes aesAlg = Aes. Create ())
{
aesAlg. Key = Key;
aesAlg. IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform encryptor = aesAlg. CreateEncryptor (aesAlg. Key, aesAlg. IV);
// Create the streams used for encryption.
using (MemoryStream msEncrypt = new MemoryStream ())
{
using (CryptoStream csEncrypt = new CryptoStream (msEncrypt, encryptor, CryptoStreamMode. Write))
{
using (StreamWriter swEncrypt = new StreamWriter (csEncrypt))
{
// Write all data to the stream.
swEncrypt. Write (plainText);
}
encrypted = msEncrypt. ToArray ();
}
}
}
// Return the encrypted bytes from the memory stream.
return encrypted;
}
public static string DecryptStringFromBytes_Aes (byte [] cipherText, byte [] Key, byte [] IV)
{
// Check arguments.
if (cipherText == null || cipherText. Length <= 0)
throw new ArgumentNullException ("cipherText");
if (Key == null || Key. Length <= 0)
throw new ArgumentNullException ("Key");
if (IV == null || IV. Length <= 0)
throw new ArgumentNullException ("IV");
// Declare the string used to hold
// the decrypted text.
string plaintext = null;
// Create an Aes object
// with the specified key and IV.
using (Aes aesAlg = Aes. Create ())
{
aesAlg. Key = Key;
aesAlg. IV = IV;
aesAlg. Padding = PaddingMode. None;
// Create a decrytor to perform the stream transform.
ICryptoTransform decryptor = aesAlg. CreateDecryptor (aesAlg. Key, aesAlg. IV);
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream (cipherText))
{
using (CryptoStream csDecrypt = new CryptoStream (msDecrypt, decryptor, CryptoStreamMode. Read))
{
using (StreamReader srDecrypt = new StreamReader (csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
plaintext = srDecrypt. ReadToEnd ();
}
}
}
}
return plaintext;
}
}
}
Файл TripleDes. cs
using System;
using System. IO;
using System. Security. Cryptography;
namespace CryptographySystem
{
class TripleDes
{
public static byte [] EncryptStringToBytes (string plainText, byte [] Key, byte [] IV)
{
// Check arguments.
if (plainText == null || plainText. Length <= 0)
throw new ArgumentNullException ("plainText");
if (Key == null || Key. Length <= 0)
throw new ArgumentNullException ("Key");
if (IV == null || IV. Length <= 0)
throw new ArgumentNullException ("Key");
byte [] encrypted;
// Create an TripleDESCryptoServiceProvider object
// with the specified key and IV.
using (TripleDESCryptoServiceProvider tdsAlg = new TripleDESCryptoServiceProvider ())
{
tdsAlg. Key = Key;
tdsAlg. IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform encryptor = tdsAlg. CreateEncryptor (tdsAlg. Key, tdsAlg. IV);
// Create the streams used for encryption.
using (MemoryStream msEncrypt = new MemoryStream ())
{
using (CryptoStream csEncrypt = new CryptoStream (msEncrypt, encryptor, CryptoStreamMode. Write))
{
using (StreamWriter swEncrypt = new StreamWriter (csEncrypt))
{
// Write all data to the stream.
swEncrypt. Write (plainText);
}
encrypted = msEncrypt. ToArray ();
}
}
}
// Return the encrypted bytes from the memory stream.
return encrypted;
}
public static string DecryptStringFromBytes (byte [] cipherText, byte [] Key, byte [] IV)
{
// Check arguments.
if (cipherText == null || cipherText. Length <= 0)
throw new ArgumentNullException ("cipherText");
if (Key == null || Key. Length <= 0)
throw new ArgumentNullException ("Key");
if (IV == null || IV. Length <= 0)
throw new ArgumentNullException ("Key");
// Declare the string used to hold
// the decrypted text.
string plaintext = null;
// Create an TripleDESCryptoServiceProvider object
// with the specified key and IV.
using (TripleDESCryptoServiceProvider tdsAlg = new TripleDESCryptoServiceProvider ())
{
tdsAlg. Key = Key;
tdsAlg. IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform decryptor = tdsAlg. CreateDecryptor (tdsAlg. Key, tdsAlg. IV);
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream (cipherText))
{
using (CryptoStream csDecrypt = new CryptoStream (msDecrypt, decryptor, CryptoStreamMode. Read))
{
using (StreamReader srDecrypt = new StreamReader (csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
plaintext = srDecrypt. ReadToEnd ();
}
}
}
}
return plaintext;
}
}
}
Файл RSA. cs
using System;
using System. Collections. Generic;
using System. Numerics;
namespace CryptographySystem
{
class RSA
{
private static char [] characters = new char [] { '#', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-' };
// проверка: простое ли число?
public static bool IsTheNumberSimple (long n)
{
if (n < 2)
return false;
if (n == 2)
return true;
for (long i = 2; i < n; i++)
if (n % i == 0)
return false;
return true;
}
// зашифровать
public static List<string> RSA_Endoce (string s, long e, long n)
{
List<string> result = new List<string> ();
BigInteger bi;
for (int i = 0; i < s. Length; i++)
{
int index = Array. IndexOf (characters, s [i]);
bi = new BigInteger (index);
bi = BigInteger. Pow (bi, (int) e);
BigInteger n_ = new BigInteger ( (int) n);
bi = bi % n_;
result. Add (bi. ToString ());
}
return result;
}
// расшифровать
public static string RSA_Dedoce (List<string> input, long d, long n)
{
string result = "";
BigInteger bi;
foreach (string item in input)
{
bi = new BigInteger (Convert. ToDouble (item));
bi = BigInteger. Pow (bi, (int) d);
BigInteger n_ = new BigInteger ( (int) n);
bi = bi % n_;
int index = Convert. ToInt32 (bi. ToString ());
result += characters [index]. ToString ();
}
return result;
}
// вычисление параметра d. d должно быть взаимно простым с m
public static long Calculate_d (long m)
{
long d = m - 1;
for (long i = 2; i <= m; i++)
if ( (m % i == 0) && (d % i == 0)) // если имеют общие делители
{
d--;
i = 1;
}
return d;
}
// вычисление параметра e
public static long Calculate_e (long d, long m)
{
long e = 10;
while (true)
{
if ( (e * d) % m == 1)
break;
else
e++;
}
return e;
}
}
}
Файл Program. cs
using System;
using System. Collections. Generic;
using System. Linq;
using System. Threading. Tasks;
using System. Windows. Forms;
namespace CryptographySystem
{
static class Program
{
// / <summary>
// / Главная точка входа для приложения.
// / </summary>
[STAThread]
static void Main ()
{
Application. EnableVisualStyles ();
Application. SetCompatibleTextRenderingDefault (false);
Application.run (new Form1 ());
}
}
}
Файл md5. cs
using System;
using System. Text;
using System. Security. Cryptography;
namespace CryptographySystem
{
class md5
{
public static string GetMd5Hash (MD5 md5Hash, string input)
{
// Convert the input string to a byte array and compute the hash.
byte [] data = md5Hash.computeHash (Encoding. UTF8. GetBytes (input));
// Create a new Stringbuilder to collect the bytes
// and create a string.
StringBuilder sBuilder = new StringBuilder ();
// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (int i = 0; i < data. Length; i++)
{
sBuilder. Append (data [i]. ToString ("x2"));
}
// Return the hexadecimal string.
return sBuilder. ToString ();
}
// Verify a hash against a string.
public static bool VerifyMd5Hash (MD5 md5Hash, string input, string hash)
{
// Hash the input.
string hashOfInput = GetMd5Hash (md5Hash, input);
// Create a StringComparer an compare the hashes.
StringComparer comparer = StringComparer. OrdinalIgnoreCase;
if (0 == comparer.compare (hashOfInput, hash))
{
return true;
}
else
{
return false;
}
}
}
}
Файл Form1. cs
using System;
using System. Windows. Forms;
namespace CryptographySystem
{
public partial class Form1: Form
{
public Form1 ()
{
InitializeComponent ();
}
private void buttonOKFormMain_Click (object sender, EventArgs e)
{
if (radioButtonAES. Checked == true)
{
FormAES formAES = new FormAES ();
this. Hide ();
formAES. Show ();
}
else if (radioButtonDES. Checked == true)
{
FormDES formDES = new FormDES ();
this. Hide ();
formDES. Show ();
}
else if (radioButtonRSA. Checked == true)
Подобные документы
Основные методы криптографической защиты информации. Система шифрования Цезаря числовым ключом. Алгоритмы двойных перестановок и магические квадраты. Схема шифрования Эль Гамаля. Метод одиночной перестановки по ключу. Криптосистема шифрования данных RSA.
лабораторная работа [24,3 K], добавлен 20.02.2014Методы криптографической защиты информации в России в XIX веке. Описание структуры программы: библиотека DLL, графическая оболочка, консольная реализация. Вид функции шифрования. Инструкция системного программиста. Класс для шифровки, расшифровки данных.
контрольная работа [26,3 K], добавлен 22.12.2011Разработка программного обеспечения, которое позволит автоматизировать работу менеджера с клиентами и поставщиками. Определение требований, тестирование, описание программы. Руководство системного программиста. Создание СУБД в DELPHI для менеджера.
дипломная работа [775,0 K], добавлен 16.06.2014Классификация служебных программных средств. Файловая структура операционных систем. Основы графического интерфейса пользователя Windows XX. Анализ алгоритмов решения задач. Описание процесса разработки программного обеспечения и результатов работы.
курсовая работа [2,4 M], добавлен 14.11.2016Обзор существующих технологий разработки программного обеспечения. Описание платформы NET Framework. Принцип работы платформы: компиляция исходного кода; процесс загрузки и исполнения кода; IL-код и верификация. Новые возможности платформы NET Framework.
реферат [30,7 K], добавлен 01.03.2011Разработка программного обеспечения для реализации криптографической защиты информации. Обоснование выбора аппаратно-программных средств. Проектирование модели информационных потоков данных, алгоритмического обеспечения, структурной схемы программы.
дипломная работа [2,0 M], добавлен 10.11.2014Требования к программе или программному продукту. Условия эксплуатации и требования к параметрам технических средств. Программное обеспечение, рекомендуемое для функционирования программы. Руководство системного программиста и настройка программы.
отчет по практике [1,1 M], добавлен 22.07.2012Сущность понятия "программное обеспечение". Типы прикладных программ. Современные системы программирования для персональных компьютеров. Уровни программного обеспечения: базовый, системный, служебный. Классификация служебных программных средств.
реферат [20,2 K], добавлен 01.04.2010Анализ предметной области. Диаграмма классов. Проектирование программного продукта "Часы". Тестирование и отладка, руководство программиста. Описание работы приложения. Руководство оператора, модель жизненного цикла. Файл Times.cs, Arrow.cs, Form1.cs.
курсовая работа [1,7 M], добавлен 20.04.2015Проектирование логической модели системы: контекстная диаграмма и детализация процессов, реализация ссылочной целостности. Описание работоспособного программного обеспечения для проекта. SQL-определения запросов. Описание базы данных контрольного примера.
курсовая работа [91,4 K], добавлен 01.09.2010