Учебники 80152
.pdfМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Воронежский государственный технический университет»
Кафедра автоматизированных и вычислительных систем
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ШИФРОВАНИЯ СООБЩЕНИЙ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к выполнению лабораторных работ по дисциплине «Защита информации» для студентов направления 09.03.01
«Информатика и вычислительная техника» (профиль «Вычислительные машины, комплексы, системы и сети»)
очной формы обучения
Воронеж 2021
УДК 681.3.06(07) ББК 32.973
Составители: канд. техн. наук Т. И. Сергеева, канд. техн. наук М. Ю. Сергеев
Программная реализация шифрования сообщений: методические ука-
зания к выполнению лабораторных работ по дисциплине «Защита информации» для студентов направления 09.03.01 «Информатика и вычислительная техника» (профиль «Вычислительные машины, комплексы, системы и сети») очной формы обучения / ФГБОУ ВО «Воронежский государственный технический университет»; сост.: Т. И. Сергеева, М. Ю. Сергеев. Воронеж: Изд-во ВГТУ, 2021. 34 с.
Цель методических указаний - получение знаний об основных направлениях защиты компьютерной информации, выработка умений и навыков написания программ генерации паролей и шифрования сообщений.
Методические указания содержат теоретические сведения и практические задания для проведения лабораторных работ.
Предназначены для проведения лабораторных работ по дисциплине «Защита информации» для студентов 4 курса очной формы обучения.
Методические указания подготовлены в электронном виде и содержатся в файле ZI_OO_LR.pdf.
Ил. 5. Табл. 9. Библиогр.: 4 назв.
УДК 681.3.06(07) ББК 32.973
Рецензент – П. Ю. Гусев, канд. техн. наук, доцент кафедры компьютерных интеллектуальных технологий проектирования ВГТУ
Издается по решению редакционно-издательского совета Воронежского государственного технического университета
2
1. ЛАБОРАТОРНАЯ РАБОТА № 1 РАЗРАБОТКА ПРОГРАММЫ «ГЕНЕРАТОР ПАРОЛЯ»
1.1. Общие сведения
Цель работы – изучение назначения парольной защиты информации, программная реализация генератора паролей.
Подсистемы идентификации (отличие одного пользователя от другого) и аутентификации (проверка подлинности) пользователя играют очень важную роль в системах защиты информации.
Парольные системы идентификации / аутентификации являются одними из основных и наиболее распространенных методов пользовательской аутентификации. В данном случае, информацией, аутентифицирующей пользователя, является некоторый секретный пароль, известный только легальному пользователю.
Основными минимальными требованиями к выбору пароля и к подсистеме парольной аутентификации пользователя являются следующие:
-минимальная длина пароля должна быть не менее 6 символов;
-пароль должен состоять из различных групп символов (малые и большие латинские или русские буквы, цифры, специальные символы '(\, ')', '#' и
т.д.);
-в качестве пароля не должны использоваться реальные слова, имена, фамилии и т.д.
1.2. Реализация генератора паролей в Visual Studio на языке С#
Необходимо осуществить следующие действия.
1.Создать папку для сохранения проекта.
2.Запустить Visual Stidio. Выбрать Create Project, на дереве выбрать
Visual C#, Windows, в правом окне Windows Forms Application, в поле Name
ввести имя программы, выбрать (создать) папку для сохранения проекта в окне
Location, ОК.
3.Создать интерфейс пользователя (окно формы программы представлено на рис. 1).
Интерфейс пользователя включает:
- кнопки выхода и запуска программы генерации пароля; - поясняющие надписи; - окно для ввода имени (идентификатора) пользователя;
- окно для вывода сформированного пароля.
Компонент Label используется для создания надписи, компонент Button – для создания кнопки, компонент textBox – для создания поля для ввода или вывода данных.
4.Написание и отладка программы, проверка работы программы.
3
Рис. 1. Возможный вид оконной формы программы
Текст программы на кнопке «Выход»
Close();
Примеры фрагментов программы на кнопке «Генерация пароля»
//описание строковых переменных
String imp; String parol;
//проверка, что имя пользователя не пусто
if (textBox1.Text == "") textBox1.Text = "Не введено имя пользователя";
// определение двух строковых переменных
String rbb = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
String mss = "$%^&*()";
//чтение (ввод) содержимого компонента textBox1
//(имени пользователя) в переменную imp
imp = textBox1.Text;
//определение длины имени (идентификатора) пользователя int dimp = imp.Length;
//очистка пароль
parol = "";
// запуск датчика случайных чисел
Random a = new Random();
4
//случайный выбор числа в интервале от 0 до 9 и добавление его в пароль int nn = a.Next(9);
parol = parol + Convert.ToString(nn);
//случайный выбор буквы из имени пользователя и добавление в пароль int q = dimp - 1;
int mm = a.Next(q);
parol = parol + imp[mm];
// случайный выбор двух больших русских букв и добавление их в пароль int drbb = rbb.Length;
q = drbb - 1;
for (int i = 0; i < 2; i++)
{
mm = a.Next(q);
parol = parol + rbb[mm];
}
// случайный выбор специального символа из множества int dmss = mss.Length;
q = dmss - 1; mm = a.Next(q);
parol = parol + mss[mm];
// добавление в пароль к-й буквы из имени пользователя, //где k есть остаток от деления на 10 длины имени
//пользователя. Если к больше количества букв в имени,
//то выбирается последняя буква
int k = dimp % 10;
if (k > dimp) k = dimp - 1; parol = parol + imp[k-1];
// вывод сформированного пароля в компонент textBox2 textBox2.Text = parol;
1.3. Задания для лабораторной работы № 1
Задание
Выполнить следующие действия:
- создать оконную форму для реализации задания, вариант задания выбрать из табл. 1; номер варианта совпадает с порядковым номером студента в списке группы;
5
-написать и отладить программу генерации пароля в соответствии с вариантом задания;
-продемонстрировать преподавателю работу программы;
-оформить отчет.
Отчет
Отчет должен содержать:
-титульный лист;
-задание;
-текст программы генерации пароля с комментариями, поясняющими группы операторов;
-скриншот оконной формы с результатами генерации пароля.
Таблица 1 Варианты заданий на формирование программы - генератора паролей
Вариант |
Количество |
|
Перечень требований |
|
символов |
|
|
|
пароля |
|
|
|
|
|
|
1 |
6 |
1. b1,Ь2 - случайные цифры от 0 до 9. |
|
|
|
2. b3, b4 - случайные символы из идентифика- |
|
|
|
тора (имени) пользователя. |
|
|
|
4. b5 |
- случайный символ из множества |
|
|
{!,",#,$,%,&,',(,),*}. |
|
|
|
5. b6 - случайная малая буква английского ал- |
|
|
|
фавита. |
|
|
|
|
|
2 |
6 |
1. b1 – случайный символ из идентификатора |
|
|
|
(имени) пользователя. |
|
|
|
2. b2– случайная малая буква английского ал- |
|
|
|
фавита. |
|
|
|
3.b3, b4 – случайные цифры от 0 до 9. |
|
|
|
4. b5, b6 - случайный символ из множества |
|
|
|
{!,",#,$,%,&,',(,),*}. |
|
|
|
|
|
3 |
7 |
1. b1, b2 |
- случайные малые буквы английского алфа- |
|
|
вита. |
|
|
|
2. b3, b4 – случайные символы из идентификатора |
|
|
|
(имени) пользователя. |
|
|
|
2.b5, b6 |
- случайные заглавные буквы английского ал- |
|
|
фавита. |
|
|
|
3. b7 - случайное число от 0 до 9. |
6
|
|
|
|
Продолжение табл. 1 |
|||
|
|
|
|
|
|
||
4 |
7 |
1. b1, b2 – случайные числа от 0 до 9. |
|
|
|
||
|
|
2. b3, b4 – случайные малые буквы английского алфа- |
|
||||
|
|
вита. |
|
|
|
|
|
|
|
3. b5 – случайный символ из множества {&, %, $, #, !} |
|
||||
|
|
4. b6, b7 - - случайные буквы из идентификатора (имя) |
|
||||
|
|
пользователя. |
|
|
|
|
|
|
|
|
|
|
|
||
5 |
8 |
1. b1, b2, b3 - случайные цифры. |
|
|
|
||
|
|
2.b4, b5 - |
случайные |
символы |
из |
множества |
|
|
|
{!,",#,$,%,&,',(,),*}. |
|
|
|
|
|
|
|
3.b6, b7 - случайные буквы из идентификатора (имя) |
|
||||
|
|
пользователя. |
|
|
|
|
|
|
|
4.b8 – случайная малая буква английского алфавита |
|
||||
|
|
|
|
||||
6 |
8 |
1. b1, b2, b3 - случайные малые буквы английского ал- |
|
||||
|
|
фавита. |
|
|
|
|
|
|
|
2. b4, b5, b6 – случайные цифры от 0 до 9. |
|
|
|||
|
|
3. b7 – случайная заглавная буква английского алфави- |
|
||||
|
|
та |
|
|
|
|
|
|
|
4. b8 – случайный символ из идентификатора (имя) |
|
||||
|
|
пользователя |
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
9 |
1. b1,…, b3 - |
случайные |
символы |
из |
множе- |
|
|
|
ства {!,",#,$,%,&,',(,),*} |
|
|
|
|
|
|
|
2.b4,…,b6 |
случайные |
|
малые |
|
|
|
|
буквы английского алфавита. |
|
|
|
||
|
|
3. b7, b8 – случайные числа от 0 до 9 |
|
|
|
||
|
|
4.b9 - случайный символ из идентификатора пользова- |
|
||||
|
|
теля |
|
|
|
|
|
|
|
|
|
|
|
||
8 |
9 |
1. b1 – случайная цифра от 0 до 9. |
|
|
|
||
|
|
2. b2,b3 – случайные буквы из идентификатора пользо- |
|
||||
|
|
вателя. |
|
|
|
|
|
|
|
3. b4, …, b7 – случайные заглавные буквы английского |
|
||||
|
|
алфавита. |
|
|
|
|
|
|
|
4. b8, b9 – случайные малые буквы русского алфавита |
|
||||
|
|
|
|
|
|
|
|
7
|
|
|
|
|
Продолжение табл. 1 |
|||
|
|
|
|
|||||
9 |
10 |
1.b1, b2 - случайные большие буквы английского алфа- |
|
|||||
|
|
вита. |
|
|
|
|
|
|
|
|
2.b3 ,…, b5 - случайные символы из идентификатора |
|
|||||
|
|
пользователя. |
|
|
|
|
|
|
|
|
3. b6,…, b10 - случайные цифры от 0 до 9. |
|
|
||||
|
|
|
|
|
||||
10 |
10 |
1. b1, b2 – случайные цифры от 0 до 9. |
|
|
||||
|
|
2. b3,…, b5 - случайные большие буквы английского |
|
|||||
|
|
алфавита. |
|
|
|
|
|
|
|
|
3. b6, …, b8 - случайные символы |
из идентификатора |
|
||||
|
|
пользователя. |
|
|
|
|
|
|
|
|
4. b9, b10 – случайные символы из множества |
|
|||||
|
|
{!,",#,$,%,&,',(,),*}. |
|
|
|
|
|
|
|
|
|
|
|||||
11 |
8 |
1. b1, b2 - случайные символы из идентификатора поль- |
|
|||||
|
|
зователя. |
|
|
|
|
|
|
|
|
2.b3 ,…, b5 - случайные большие буквы английского |
|
|||||
|
|
алфавита. |
|
|
|
|
|
|
|
|
3. b6, …, b8 - |
случайные |
символы |
из множе- |
|
||
|
|
ства {!,%"&,#,$+*,',(,)}. |
|
|
|
|
|
|
|
|
|
|
|
|
|||
12 |
8 |
1.b1, b2 - случайные цифры. |
|
|
|
|||
|
|
2.b3,…, b5 - случайные малые буквы русского алфави- |
|
|||||
|
|
та. |
|
|
|
|
|
|
|
|
3. b6 - случайный |
символ |
из |
множества |
|
||
|
|
{!,",#,$,%,&,',(,),*}. |
|
|
|
|
|
|
|
|
4. b7,b8 – случайные символы |
из идентификатора |
|
||||
|
|
пользователя. |
|
|
|
|
|
|
|
|
|
|
|||||
13 |
8 |
1. b1,Ь2 - случайные символы из идентификатора поль- |
|
|||||
|
|
зователя. |
|
|
|
|
|
|
|
|
2. b3, b4, b5 - случайная цифра. |
|
|
|
|||
|
|
4. b6 - |
случайный |
|
символ |
из |
множества |
|
|
|
{!,",#,$,%,&,',(,),*,[,]}. |
|
|
|
|
|
|
|
|
5.b7,b8 - случайная малая буква английского алфавита. |
|
|||||
|
|
|
|
|
|
|||
14 |
9 |
1. b1,b2 – случайные цифры. |
|
|
|
|||
|
|
2. b3,b4,– случайные буквы английского алфавита. |
|
|||||
|
|
3. b5, b6 – случайный символ из идентификатора поль- |
|
|||||
|
|
зователя. |
|
|
|
|
|
|
|
|
4. b7, b8, b9 - случайные символы из множества |
|
|||||
|
|
{!,",#,$,%,&,',(,),*}. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8
|
|
|
Продолжение табл. 1 |
|
15 |
8 |
1. b1, b2 - случайные малые буквы английского алфа- |
|
|
|
|
вита. |
|
|
|
|
2. b3,b4,b5 – случайные символы |
из идентификатора |
|
|
|
пользователя. |
|
|
|
|
2. b6, b7 - случайные заглавные буквы английского ал- |
|
|
|
|
фавита. |
|
|
|
|
3. b8 – случайное число от 0 до 9. |
|
|
|
|
|
|
|
16 |
6 |
1. b1, b2 – случайные числа от 0 до 6. |
|
|
|
|
2. b3, b4 – случайные малые буквы английского алфа- |
|
|
|
|
вита |
|
|
|
|
3. b5, b6 - случайные символы из идентификатора |
|
|
|
|
пользователя. |
|
|
|
|
|
|
|
17 |
7 |
1. b1, b2 - случайные цифры. |
|
|
|
|
2. b3, b4- случайные символы из множества |
|
|
|
|
{",#,$,%,&,',(,),*}. |
|
|
|
|
3. b5, b6– случайные символы из идентификатора поль- |
|
|
|
|
зователя. |
|
|
|
|
4. b7 – случайная малая буква английского алфавита. |
|
|
|
|
|
|
|
18 |
8 |
1. b1, b2, b3 - случайные малые буквы английского ал- |
|
|
|
|
фавита. |
|
|
|
|
2. b4, b5– случайные цифры от 0 до 9. |
|
|
|
|
3. b6 – случайная заглавная буква английского алфави- |
|
|
|
|
та. |
|
|
|
|
4. b7,b8 – случайные символы |
из идентификатора |
|
|
|
пользователя. |
|
|
|
|
|
|
|
19 |
7 |
1. b1,…, b3 - случайные символы из множе- |
|
|
|
|
ства {!,",#,$,%,&,',(,),*}, |
|
|
|
|
2. b4, …, b6, - случайные малые буквы английского |
|
|
|
|
алфавита. |
|
|
|
|
3. b7 - случайный символ из идентификатора пользова- |
|
|
|
|
теля. |
|
|
|
|
|
|
|
20 |
8 |
1. b1, b2 – случайные цифры от 0 до 9. |
|
|
|
|
2. b3 – случайный символ из идентификатора пользо- |
|
|
|
|
вателя. |
|
|
|
|
3. b4 – случайная малая буква английского алфавита. |
|
|
|
|
4. b5,…, b8 - случайные заглавные буквы английского |
|
|
|
|
алфавита. |
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
Окончание табл. 1 |
|
21 |
7 |
1. b1, b2 – случайные буквы из имени пользователя. |
|
|
|
2. b3, b4 – случайные числа от 0 до 9. |
|
|
|
3. b5, b6- случайные заглавные буквы русского алфа- |
|
|
|
вита |
|
|
|
4. b7 – случайная маленькая буква английского алфа- |
|
|
|
вита. |
|
|
|
|
|
22 |
8 |
1. b1, b2 – случайные числа от 0 до 9. |
|
|
|
2. b3, b4– случайные буквы из имени пользователя. |
|
|
|
3. b5 , b6– случайные маленькие буквы английского ал- |
|
|
|
фавита. |
|
|
|
4. b7, b8- случайные заглавные буквы русского алфа- |
|
|
|
вита. |
|
|
|
|
|
23 |
7 |
1. b1, b2 – случайные малые буквы русского алфавита. |
|
|
|
2. b3, b4 – случайные заглавные буквы английского ал- |
|
|
|
фавита. |
|
|
|
3. b5, b6- случайные символы из имени пользователя. |
|
|
|
4. b7 – случайное число от 0 до 9. |
|
|
|
|
|
24 |
8 |
1. b1, b2 – случайные символы из имени пользователя. |
|
|
|
2. b3, b4– случайные числа от 0 до 9. |
|
|
|
3. b5 , b6– случайная символы из множества {(*#^@+- |
|
|
|
%} |
|
|
|
4. b7, b8- случайные малые буквы русского алфавита. |
|
|
|
|
|
25 |
7 |
1. b1,…, b3 - случайные символы из имени поль- |
|
|
|
зователя. |
|
|
|
2. b4, …, b6, - случайные заглавные буквы английского |
|
|
|
алфавита. |
|
|
|
3. b7 - случайный символ из имени пользователя. |
|
|
|
|
|
2. ЛАБОРАТОРНАЯ РАБОТА № 2 ШИФРОВАНИЕ СООБЩЕНИЙ МЕТОДОМ ПЕРЕСТАНОВКИ
2.1. Общие методические указания по выполнению лабораторной работы № 2
Цель работы - реализация простейших алгоритмов шифрования сообщений методом перестановки.
10