- Регистрация
- 13.03.2019
- Сообщения
- 47 737
Перестановочный шифр, полиалфавитный и поточный шифр Виженера, алгоритм 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