Алгоритмы шифрования на C#
0.0 (0 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
19 students enrolled

Алгоритмы шифрования на C#

Перестановочный шифр, полиалфавитный и поточный шифр Виженера, алгоритм RSA и ключевой обмен Диффи-Хеллмана
0.0 (0 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
19 students enrolled
Last updated 8/2018
Russian
Current price: $31.99 Original price: $49.99 Discount: 36% off
13 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Узнаете принципы работы шифровальных алгоритмов:
  • Перестановочный шифр
  • Полиалфавитный шифр Виженера
  • Поточный шифр Виженера
  • Алгоритм RSA
  • Ключевой обмен Диффи-Хеллмана
Course content
Expand all 26 lectures 06:38:38
+ Перестановочный шифр
8 lectures 02:06:58

На этом уроке мы обсудим, чем отличается шифрование от кодирования и познакомимся с перестановочным шифром.

Примечание:

Так получилось, что в настройках программы записи была поставлена галочка записи со встроенной вебкамеры, поэтому часть видео закрыта логотипом. Прошу прощения.

Самостоятельное задание:

  1. Написать, чем отличается шифрование от кодирования.

  2. Зашифровать указанную в конце урока фразу.

Preview 07:47

На этом уроке мы создадим пользовательскую форму для запроса данных и отображения результатов шифрования.

Самостоятельное задание:

  1. Создать левую часть формы.

  2. Продублировать для правой части.

  3. Переименовать текстовые поля, кнопки и сетки.

Форма
17:20

На этом уроке мы напишем функцию для заполнения первой сетки.

Самостоятельное задание:

  1. Создать обработчик кнопки "Шифровать".

  2. Добавить проверки на исходные данные.

  3. Создать все столбцы.

  4. Заполнить все строчки.

  5. Проверить работу программы.

Первый этап шифровки
15:07

На этом уроке мы напишем функцию getAbc(), которая будет сортировать буквы ключа по алфавиту. Причём перестановки делать вместе с целым массивом.

Самостоятельное задание:

  1. Создать функцию getAbc().

  2. Поместить результат её работы в текстовое поле textKeyAbc.

Алфавитный ключ
12:04

На этом уроке мы допишем шифрование текста. Расставим столбцы в нужном порядке, скопируем столбцы из первой таблицы, выпишем все буквы в результат, и получим готовую шифровальную программу! Останется только научиться расшифровывать.

Дополнительное задание. Расшифровать сообщение:

ДМПЯЕ  СО СЕ Л ЧПЬВАИЕО.ТНЛ.БУЁТЯЕЯУ

Ключ: ФОРМУЛИСТ

Самостоятельное задание:

  1. Создать столбцы второй сетки.

  2. Скопировать их в нужном порядке.

  3. Сформировать шифровку.

  4. Проверить работу программы.

  5. Расшифровать сообщение и написать ответ.

Второй этап шифровки
14:18

На этом уроке мы начнём дешифровку. Для этого нужно выполнить действие, обратное последнему при шифровании.

Самостоятельное задание:

  1. Написать функцию fillGrid3().

  2. Отсортировать буквы ключа.

  3. Создать столбцы по отсротированному ключу.

  4. Разместить шифрованное сообщение в клетки сетки.

Первый этап дешифровки
12:23

На этом уроке мы закончим дешифровку и создание нашей программы.

Самостоятельное задание:

  1. Написать функцию fillGrid4().

  2. Создать столбцы.

  3. Скопировать текст из 3-й сетки.

  4. Сформировать дешифровку по строчкам 4-й сетки.

  5. Протестировать программу и порадоваться результату.

  6. Провести эксперименты и опубликовать интересные результаты.

Второй этап дешифровки
11:34

На этом уроке мы порефакторим код нашей программы. Выделим в метод повторяющийся код формирования столбцов, упростим алгоритм сортировки, переделаем проверку на ошибки и т.д.

Рекомендуется сначала просто посмотреть этот урок. А потом по памяти сделать те изменения, которые пожелаете. Напишите, что ещё можно было бы порефакторить.

Самостоятельное задание:

  1. Посмотреть видеоурок.

  2. Сделать рефакторинг по желанию.

  3. Написать, что вы сделали и что можно ещё сделать.

Рефакторинг
36:25
+ Полиалфавитный шифр Виженера
5 lectures 01:16:21

Мы начинаем создание ещё одной шифровальной программы: "полиалфавитный шифр Виженера".

Для начала зашифруйте фразу

ФОРМУЛАПРОГРАММИСТА ,

используя ключ «СИ».

Самостоятельное задание:

  1. Прослушать урок.

  2. Зашифровать фразу и написать результат.

Preview 05:27

На этом уроке мы создадим форму и разместим на ней все необходимые визуальные компоненты. Дайте всем компонентам адекватные имена. Список всех имён можно увидеть в конце урока.

Самостоятельное задание:

  1. Создать форму.

  2. Разместить все компоненты.

  3. Дать им всем осмысленные названия.

  4. Раскрыть список FormPoliVizhenera со всеми именами.

  5. Приложить скриншот дизайнера со списком всех компонентов.

Форма
16:48

На этом уроке мы наконец-таки приступим к созданию алгоритма. Мы напишем функцию fillKeyTable (string key), которая создаст таблицу для де/шифрования для указанного ключа.

Самостоятельное задание:

  1. Написать функцию fillKeyTable (string key).

  2. Протестировать её работу.

  3. Сделать скриншот.

Ключевая таблица
18:13

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

Самостоятельное задание:

  1. Написать функцию fillKeyTable (string key).

  2. Протестировать её работу.

  3. Добавить проверку корректности ключа.

  4. Сделать скриншот.

Шифровка
18:58

На этом уроке мы закончим создание этой программы. Напишем функцию fillGrid2() по аналогии с предыдущей. В конце урока я покажу, как можно расшифровать сообщения, используя алгоритм шифровки, просто заменив ключ на "обратный".

Задание: Найти ключ, обратный "ШАРП".

Самостоятельное задание:

  1. Написать функцию fillGrid2().

  2. Протестировать де/шифрование.

  3. Найти обратный ключ и проверить его.

  4. Сделать скриншот.

Дешифровка
16:55
+ Поточный шифр Виженера
3 lectures 30:13

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

Самостоятельное задание:

Зашифровать слово ВИДЕОШАРП ключом СИ.

Preview 05:47

На этом уроке мы познакомимся с поточным шифром Виженера. Этот алгоритм очень похож на предыдущий, поэтому мы будем модифицировать предыдущую программу.

Самостоятельное задание:

  1. Скопировать проект.

  2. Сделать шифрование новым методом.

  3. Проверить работу алгоритма.

  4. Сделать скриншот.

Шифровка
11:33

На этом уроке мы завершим переделку алгоритма для поточного метода шифра Виженера.

Самостоятельное задание:

  1. Исправить функцию fillGrid2 ().

  2. Протестировать работу программы.

  3. Прислать скриншот.


Дешифровка
12:53
+ RSA
6 lectures 01:41:24

На этом уроке мы начнём создание алгоритма шифрования RSA (чтобы узнать подробности об этом методе шифрования см. ссылку внизу).

Самостоятельное задание:

  1. Внимательно просмотреть видео.

  2. Написать свои мысли относительно данного типа шифрования.

  3. Приложить скриншот по теме.

  4. * Изучить страничку wiki.

Preview 07:57

На этом уроке мы создадим новый проект в Visual Studio, подготовим всё необходимое для реализации алгоритма.

Самостоятельное задание:

  1. Внимательно просмотреть видео.

  2. Создать новый проект.

  3. Настроить форму.

  4. Добавить необходимые компоненты формы.

  5. Приложить скриншот результата.

  6. * На скриншоте ввести числа, подготовленные на прошлом уроке.

Экранная форма
13:21

На этом уроке мы приступаем к заполнению ранее созданной формы. Также создадим отдельный класс для логики RSA шифрования. Реализуем генерацию простых чисел для дальнейшего использования при шифровании.

Самостоятельное задание:

  1. Внимательно просмотреть видео.

  2. Создать отдельный класс RSA().

  3. Реализовать функции генерации простых чисел.

  4. Реализовать функции генерации значений 'p' и 'q'.

  5. Реализовать функцию ShowNumbers().

  6. Реализовать функцию CalcNumbers().

  7. Опишите свои мысли по поводу урока.

  8. Приложить скриншот результата.

  9. * реализовать ручной ввод чисел для генерации.

Простые случайные числа
16:41

На этом уроке мы реализуем генерацию открытого и секретного ключей.

Самостоятельное задание:

  1. Внимательно просмотреть видео.

  2. Реализовать функцию GCD().

  3. Реализовать функции генерации значений 'e' и 'd'.

  4. Модифицировать функцию ShowNumbers().

  5. Реализовать функцию Show().

  6. Приложить скриншот результата.

Открытый и секретный ключ
22:23

На этом уроке мы подводим итоги прошлого урока. Сформируем пары открытого и закрытого ключей.

Самостоятельное задание:

  1. Внимательно просмотреть видео.

  2. Доработать форму для работы с паблик/приват ключами.

  3. Доработать форму для де/шифрования сообщения.

  4. Приложить скриншот результата.

  5. * при нажатии на Shift отобразить сообщение в колонке Letter (по вертикали).

Буквы столбиком
16:30

На этом уроке мы приступаем к реализации шифрования/дешифрования нашего сообщения алгоритмом RSA.

Самостоятельное задание:

  1. Внимательно просмотреть видео.

  2. Реализовать алгоритмы при нажатии на кнопки Shifr/Deshifr.

  3. Реализовать функцию InitGrid().

  4. Реализовать функцию Shifr().

  5. Реализовать функцию Power().

  6. Реализовать функцию DeShifr().

  7. Приложить скриншот результата.

  8. * Добавить видео-отчёт.

Дешифровка
24:32
+ Ключевой обмен Диффи-Хеллмана
4 lectures 01:03:42

На этом уроке мы познакомимся с алгоритмом Диффи-Хеллмана по обмену секретными ключами. Мы продемонстрируем работу алгоритма сначала с цветами, а потом с небольшими целыми числами.

Самостоятельное задание:

  1. Внимательно прослушать урок.

  2. Проработать алгоритм для указанных чисел.

Preview 12:47

На этом уроке мы скомпонуем форму для нашей программы и дадим имена всем текстовым полям и кнопкам.

Самостоятельное задание:

  1. Создать проект и создать форму.

  2. Переименовать тектовые поля и кнопки.

  3. Приложить скриншот результата.

Форма
16:39

На этом уроке мы сделаем алгоритм поиска случайного простого числа и выбора основания. Также напишем функции умножения по модулю и возведения в степень.

Самостоятельное задание:

  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. Приложить скриншот программы.

Случайное простое число
16:16

На этом уроке мы допишем программу до конца. Сделаем генерацию случайных секретных чисел. И напишем алгоритм обмена секретным ключом.

Самостоятельное задание:

  1. Дописать программу до конца.

  2. Протестировать её работу.

  3. Приложить скриншот.

Общий секретный ключ
18:00
Requirements
  • Основы математики
  • Основы языка программирования C#
Description

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

После прохождения этого курса вы лучше поймёте принципы работы шифровальных программ и сможете применять эти алгоритмы в своих программах.

Who this course is for:
  • Для студентов для написания лабораторной работы
  • Для инженеров и программистов