Скрыть объявление
Сегодня последний день акции!

Успейте принять участие ТУТ

Скрыть объявление

На короткое время в нашем  канале  рассказываем где достать редкие курсы

Доступно

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

Тема в разделе "Курсы по программированию"

Цена:
3200 руб
Взнос:
117 руб
Организатор:
Dr.Vatson

Список участников складчины:

1. Dr.Vatson 2. gloxi 3. ladyfrog 4. VictAlex 5. Hovrash7
Купить
  1. Dr.Vatson Организатор складчин

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

    [​IMG]

    Перестановочный шифр, полиалфавитный и поточный шифр Виженера, алгоритм 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 и т.д.
    Всю свою сознательную жизнь я пишу программы и обучаю этому других.

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