[Udemy] Алгоритмы шифрования на C# (Евгений Волосатов) | Каталог "Сливы Образовательных Курсов" - Бесплатно. Бесплатные сливы курсов, трененгов и инфопродуктов. скачать
Что нового

Скачать курс: [Udemy] Алгоритмы шифрования на C# (Евгений Волосатов)

Administrator
Команда форума
VIP
Регистрация
13.03.2019
Сообщения
48 482

Перестановочный шифр, полиалфавитный и поточный шифр Виженера, алгоритм RSA и ключевой обмен Диффи-Хеллмана
Чему вы научитесь
Узнаете принципы работы шифровальных алгоритмов:
Перестановочный шифр
Полиалфавитный шифр Виженера
Поточный шифр Виженера
Алгоритм RSA
Ключевой обмен Диффи-Хеллмана

Требования
Основы математики
Основы языка программирования C#

Описание
Подробно разбираем разные алгоритмы шифрования и пишем на C# лабораторные программы с демонстрацией Перестановочного шифра, полиалфавитного шифра Виженера, поточного шифра Виженера, а также ключевой обмен Диффи-Хеллмана и алгоритм шифрования RSA. Для каждого алгоритма с нуля создаётся рабочая программа с подробным описанием каждого шага.
После прохождения этого курса вы лучше поймёте принципы работы шифровальных программ и сможете применять эти алгоритмы в своих программах.

Для кого этот курс?
Для студентов для написания лабораторной работы
Для инженеров и программистов

Что входит в курс?
6,5 часов видео





Продолжение описания
Материалы курса
26 лекций - 06:38:38

Перестановочный шифр - 02:06:58

Введение - 07:47
На этом уроке мы обсудим, чем отличается шифрование от кодирования и познакомимся с перестановочным шифром.
Примечание:
Так получилось, что в настройках программы записи была поставлена галочка записи со встроенной вебкамеры, поэтому часть видео закрыта логотипом. Прошу прощения.
Самостоятельное задание:
1. Написать, чем отличается шифрование от кодирования.
2. Зашифровать указанную в конце урока фразу.

Форма - 17:20
На этом уроке мы создадим пользовательскую форму для запроса данных и отображения результатов шифрования.
Самостоятельное задание:
1. Создать левую часть формы.
2. Продублировать для правой части.
3. Переименовать текстовые поля, кнопки и сетки.

Первый этап шифровки - 15:07
На этом уроке мы напишем функцию для заполнения первой сетки.
Самостоятельное задание:
1. Создать обработчик кнопки ";Шифровать";.
2. Добавить проверки на исходные данные.
3. Создать все столбцы.
4. Заполнить все строчки.
5. Проверить работу программы.

Алфавитный ключ - 12:04
На этом уроке мы напишем функцию getAbc(), которая будет сортировать буквы ключа по алфавиту. Причём перестановки делать вместе с целым массивом.
Самостоятельное задание:
1. Создать функцию getAbc().
2. Поместить результат её работы в текстовое поле textKeyAbc.

Второй этап шифровки - 14:18
На этом уроке мы допишем шифрование текста. Расставим столбцы в нужном порядке, скопируем столбцы из первой таблицы, выпишем все буквы в результат, и получим готовую шифровальную программу! Останется только научиться расшифровывать.
Дополнительное задание. Расшифровать сообщение:
ДМПЯЕ СО СЕ Л ЧПЬВАИЕО.ТНЛ.БУЁТЯЕЯУ
Ключ: ФОРМУЛИСТ
Самостоятельное задание:
1. Создать столбцы второй сетки.
2. Скопировать их в нужном порядке.
3. Сформировать шифровку.
4. Проверить работу программы.
5. Расшифровать сообщение и написать ответ.

Первый этап дешифровки - 12:23
На этом уроке мы начнём дешифровку. Для этого нужно выполнить действие, обратное последнему при шифровании.
Самостоятельное задание:
1. Написать функцию fillGrid3().
2. Отсортировать буквы ключа.
3. Создать столбцы по отсортированному ключу.
4. Разместить шифрованное сообщение в клетки сетки.

Второй этап дешифровки - 11:34
На этом уроке мы закончим дешифровку и создание нашей программы.
Самостоятельное задание:
1. Написать функцию fillGrid4().
2. Создать столбцы.
3. Скопировать текст из 3-й сетки.
4. Сформировать дешифровку по строчкам 4-й сетки.
5. Протестировать программу и порадоваться результату.
6. Провести эксперименты и опубликовать интересные результаты.

Рефакторинг - 36:25
На этом уроке мы порефакторим код нашей программы. Выделим в метод повторяющийся код формирования столбцов, упростим алгоритм сортировки, переделаем проверку на ошибки и т.д.
Рекомендуется сначала просто посмотреть этот урок. А потом по памяти сделать те изменения, которые пожелаете. Напишите, что ещё можно было бы порефакторить.
Самостоятельное задание:
1. Посмотреть видеоурок.
2. Сделать рефакторинг по желанию.
3. Написать, что вы сделали и что можно ещё сделать.

Полиалфавитный шифр Виженера - 01:16:21

Описание алгоритма - 05:27
Мы начинаем создание ещё одной шифровальной программы: ";полиалфавитный шифр Виженера";.
Для начала зашифруйте фразу
ФОРМУЛАПРОГРАММИСТА ,
используя ключ «СИ».
Самостоятельное задание:
1. Прослушать урок.
2. Зашифровать фразу и написать результат.

Форма - 16:48
На этом уроке мы создадим форму и разместим на ней все необходимые визуальные компоненты. Дайте всем компонентам адекватные имена. Список всех имён можно увидеть в конце урока.
Самостоятельное задание:
1. Создать форму.
2. Разместить все компоненты.
3. Дать им всем осмысленные названия.
4. Раскрыть список FormPoliVizhenera со всеми именами.
5. Приложить скриншот дизайнера со списком всех компонентов.

Ключевая таблица - 18:13
На этом уроке мы наконец-таки приступим к созданию алгоритма. Мы напишем функцию fillKeyTable (string key), которая создаст таблицу для де/шифрования для указанного ключа.
Самостоятельное задание:
1. Написать функцию fillKeyTable (string key).
2. Протестировать её работу.
3. Сделать скриншот.

Шифровка - 18:58
На этом уроке мы завершим алгоритм шифрования. Мы напишем функцию fillGrid1(), которая заполняет первую сетку и попутно формирует зашифрованное сообщение. Расшифровать фразу ";Ч-ДЬЁЫЪ-Б-ВЖШСГЫБВЛЩ"; с ключом ";ШАРП";.
Самостоятельное задание:
1. Написать функцию fillKeyTable (string key).
2. Протестировать её работу.
3. Добавить проверку корректности ключа.
4. Сделать скриншот.

Дешифровка - 16:55
На этом уроке мы закончим создание этой программы. Напишем функцию fillGrid2() по аналогии с предыдущей. В конце урока я покажу, как можно расшифровать сообщения, используя алгоритм шифровки, просто заменив ключ на ";обратный";.
Задание: Найти ключ, обратный ";ШАРП";.
Самостоятельное задание:
1. Написать функцию fillGrid2().
2. Протестировать де/шифрование.
3. Найти обратный ключ и проверить его.
4. Сделать скриншот.

Поточный шифр Виженера - 30:13

Описание алгоритма - 05:47
Приступаем к следующей шифровальной программе — поточный метод Виженера. Ваше задание — зашифровать слово ";ВИДЕОШАРП";, используя ключ ";СИ";.
Самостоятельное задание:
Зашифровать слово ВИДЕОШАРП ключом СИ.

Шифровка - 11:33
На этом уроке мы познакомимся с поточным шифром Виженера. Этот алгоритм очень похож на предыдущий, поэтому мы будем модифицировать предыдущую программу.
Самостоятельное задание:
1. Скопировать проект.
2. Сделать шифрование новым методом.
3. Проверить работу алгоритма.
4. Сделать скриншот.

Дешифровка - 12:53
На этом уроке мы завершим переделку алгоритма для поточного метода шифра Виженера.
Самостоятельное задание:
1. Исправить функцию fillGrid2 ().
2. Протестировать работу программы.
3. Прислать скриншот.

RSA - 01:41:24

Идея алгоритма - 07:57
На этом уроке мы начнём создание алгоритма шифрования RSA (чтобы узнать подробности об этом методе шифрования см. ссылку внизу).
Самостоятельное задание:
1. Внимательно просмотреть видео.
2. Написать свои мысли относительно данного типа шифрования.
3. Приложить скриншот по теме.
4. * Изучить страничку wiki.

Экранная форма - 13:21
На этом уроке мы создадим новый проект в Visual Studio, подготовим всё необходимое для реализации алгоритма.
Самостоятельное задание:
1. Внимательно просмотреть видео.
2. Создать новый проект.
3. Настроить форму.
4. Добавить необходимые компоненты формы.
5. Приложить скриншот результата.
6. * На скриншоте ввести числа, подготовленные на прошлом уроке.

Простые случайные числа - 16:41
На этом уроке мы приступаем к заполнению ранее созданной формы. Также создадим отдельный класс для логики RSA шифрования. Реализуем генерацию простых чисел для дальнейшего использования при шифровании.
Самостоятельное задание:
1. Внимательно просмотреть видео.
2. Создать отдельный класс RSA().
3. Реализовать функции генерации простых чисел.
4. Реализовать функции генерации значений 'p' и 'q'.
5. Реализовать функцию ShowNumbers().
6. Реализовать функцию CalcNumbers().
7. Опишите свои мысли по поводу урока.
8. Приложить скриншот результата.
9. * реализовать ручной ввод чисел для генерации.

Открытый и секретный ключ - 22:23
На этом уроке мы реализуем генерацию открытого и секретного ключей.
Самостоятельное задание:
1. Внимательно просмотреть видео.
2. Реализовать функцию GCD().
3. Реализовать функции генерации значений 'e' и 'd'.
4. Модифицировать функцию ShowNumbers().
5. Реализовать функцию Show().
6. Приложить скриншот результата.

Буквы столбиком - 16:30
На этом уроке мы подводим итоги прошлого урока. Сформируем пары открытого и закрытого ключей.
Самостоятельное задание:
1. Внимательно просмотреть видео.
2. Доработать форму для работы с паблик/приват ключами.
3. Доработать форму для де/шифрования сообщения.
4. Приложить скриншот результата.
5. * при нажатии на Shift отобразить сообщение в колонке Letter (по вертикали).

Дешифровка - 24:32
На этом уроке мы приступаем к реализации шифрования/дешифрования нашего сообщения алгоритмом RSA.
Самостоятельное задание:
1. Внимательно просмотреть видео.
2. Реализовать алгоритмы при нажатии на кнопки Shifr/Deshifr.
3. Реализовать функцию InitGrid().
4. Реализовать функцию Shifr().
5. Реализовать функцию Power().
6. Реализовать функцию DeShifr().
7. Приложить скриншот результата.
8. * Добавить видео-отчёт.

Ключевой обмен Диффи-Хеллмана - 01:03:42

Идея алгоритма - 12:47
На этом уроке мы познакомимся с алгоритмом Диффи-Хеллмана по обмену секретными ключами. Мы продемонстрируем работу алгоритма сначала с цветами, а потом с небольшими целыми числами.
Самостоятельное задание:
1. Внимательно прослушать урок.
2. Проработать алгоритм для указанных чисел.

Форма - 16:39
На этом уроке мы скомпонуем форму для нашей программы и дадим имена всем текстовым полям и кнопкам.
Самостоятельное задание:
1. Создать проект и создать форму.
2. Переименовать текстовые поля и кнопки.
3. Приложить скриншот результата.

Случайное простое число - 16:16
На этом уроке мы сделаем алгоритм поиска случайного простого числа и выбора основания. Также напишем функции умножения по модулю и возведения в степень.
Самостоятельное задание:
1. Написать функцию long mult_mod (long a, long b).
2. Написать функцию long power_mod (long a, long b).
3. Написать функцию bool isPrime (long n).
4. Написать обработчик кнопки buttonGenerate PG.
5. Приложить скриншот программы.

Общий секретный ключ - 18:00
На этом уроке мы допишем программу до конца. Сделаем генерацию случайных секретных чисел. И напишем алгоритм обмена секретным ключом.
Самостоятельное задание:
1. Дописать программу до конца.
2. Протестировать её работу.
3. Приложить скриншот.

О преподавателе
Евгений Волосатов
Магистр математики и информатики, C#, Java, PHP программист
Я — Игромистр.
Моё призвание — показать пошаговый процесс создания игровых и прикладных программ, с нуля до результата.
Меня зовут Волосатов Евгений Витольдович, мне 40 лет, живу в Литве,
закончил Вильнюсский государственный университет магистром математики и информатики, также имею педагогическое образование.
За плечами сотни различных проектов на C#, Java, PHP, ASP.NET, SQL и т.д.
Всю свою сознательную жизнь я пишу программы и обучаю этому других.








Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть...



 
 
Быстрая оплата RUB, UAH, KZT
New member
VIP
Регистрация
05.10.2022
Сообщения
19
пришлите пожалуйста ссылку
 
Быстрая оплата RUB, UAH, KZT
Верх