перестановочний шифр, поліалфавітний і потоковий шифр Віженера, алгоритм RSA і ключовий обмін Діффі-Хеллмана
чому ви навчитеся
Дізнаєтеся принципи роботи шифрувальних алгоритмів:
Перестановочний шифр
Поліалфавітний шифр Потоковий шифр Віженера
Алгоритм RSA
Ключовий обмін Діффі-Хеллмана
вимоги
Основи математики
Основи мови програмування C #
опис
Детально розбираємо різні алгоритми шифрування і пишемо на C# лабораторні програми з демонстрацією Перестановочного шифру, поліалфавітного шифру Віженера, потокового шифру Віженера, а також ключовий обмін Діффі-Хеллмана і алгоритм шифрування RSA. Для кожного алгоритму з нуля створюється робоча програма з докладним описом кожного кроку.
Після проходження цього курсу Ви краще зрозумієте принципи роботи шифрувальних програм і зможете застосовувати ці алгоритми в своїх програмах.
Для кого цей курс?
Для студентів для написання лабораторної роботи
Для інженерів і програмістів
що входить в курс?
6,5 годин відео
матеріали курсу
26 лекцій-06:38:38
Перестановочний шифр-02:06: 58
Вступ-07: 47
На цьому уроці ми обговоримо, чим відрізняється шифрування від кодування і познайомимося з перестановочним шифром.
Примітка:
Так вийшло, що в налаштуваннях програми запису була поставлена галочка запису з вбудованою Вебкамери, тому частина відео закрита логотипом. Перепрошувати.
самостійне завдання:
На цьому уроці ми створимо спеціальну форму для запиту даних і відображення результатів шифрування.
самостійне завдання:
На цьому уроці ми напишемо функцію для заповнення першої сітки.
самостійне завдання:
На цьому уроці ми напишемо функцію getAbc (), яка буде сортувати букви ключа за алфавітом. Причому перестановки робити разом з цілим масивом.
самостійне завдання:
На цьому уроці ми допишемо шифрування тексту. Розставимо стовпці в потрібному порядку, скопіюємо стовпці з першої таблиці, випишемо всі букви в результат, і отримаємо готову шифрувальну програму! Залишиться тільки навчитися розшифровувати.
Додаткове завдання. Розшифрувати повідомлення:
ДМПЯЕ СО СЕ Л ЧПЬВАІЕО.ТНЛ.БУЕТЯЕЯУ
Ключ: ФОРМУЛІСТ
самостійне завдання:
На цьому уроці ми почнемо дешифрування. Для цього потрібно виконати дію, зворотне останньому при шифруванні.
самостійне завдання:
На цьому уроці ми закінчимо дешифрування і створення нашої Програми.
самостійне завдання:
На цьому уроці ми порефакторимо код нашої Програми. Виділимо в метод повторюваний код формування стовпців, спростимо алгоритм сортування, переробимо перевірку на помилки і т. д.
Рекомендується спочатку просто подивитися цей урок. А потім по пам'яті зробити ті зміни, які побажаєте. Напишіть, що ще можна було б порефакторити.
самостійне завдання:
Опис алгоритму-05: 27
Ми починаємо створення ще однієї шифрувальної програми: "поліалфавітний шифр".
Для початку зашифруйте фразу
ФОРМУЛАПРОГРАММИСТА ,
використовуючи ключ "Сі".
самостійне завдання:
На цьому уроці ми створимо форму і розмістимо на ній всі необхідні візуальні компоненти. Дайте всім компонентам адекватні імена. Список всіх Імен можна побачити в кінці уроку.
самостійне завдання:
На цьому уроці ми нарешті-таки приступимо до створення алгоритму. Ми напишемо функцію fillKeyTable (string key), яка створить таблицю для де/шифрування для зазначеного ключа.
самостійне завдання:
На цьому уроці ми завершимо алгоритм шифрування. Ми напишемо функцію fillGrid1 (), яка заповнює першу сітку і попутно формує зашифроване повідомлення. Розшифрувати фразу " Ч-ДЬЕИЪ-Б-ВЖШСГИБВЛЩ "з ключем"ШАРП".
самостійне завдання:
На цьому уроці ми закінчимо створення цієї програми. Напишемо функцію fillGrid2 () за аналогією з попередньою. В кінці уроку я покажу, як можна розшифрувати повідомлення, використовуючи алгоритм шифрування, просто замінивши ключ на "зворотний".
Завдання: знайти ключ, зворотний "ШАРП".
самостійне завдання:
Опис алгоритму-05: 47
Приступаємо до наступної шифрувальної програмі — потоковий метод Віженера. Ваше завдання-зашифрувати слово "ВІДЕОШАРП", використовуючи ключ"Сі".
самостійне завдання:
Зашифрувати слово ВІДЕОШАРП ключем Сі.
Шифровка-11: 33
На цьому уроці ми познайомимося з потоковим шифром Віженера. Цей алгоритм дуже схожий на попередній, тому ми будемо модифікувати попередню програму.
самостійне завдання:
На цьому уроці ми завершимо переробку алгоритму для потокового методу шифру.
самостійне завдання:
Ідея алгоритму-07: 57
На цьому уроці ми почнемо створення алгоритму шифрування RSA(щоб дізнатися подробиці про цей метод шифрування див. посилання внизу).
самостійне завдання:
На цьому уроці ми створимо новий проект в Visual Studio, підготуємо все необхідне для реалізації алгоритму.
самостійне завдання:
На цьому уроці ми приступаємо до заповнення раніше створеної форми. Також створимо окремий клас для логіки RSA шифрування. Реалізуємо генерацію простих чисел для подальшого використання при шифруванні.
самостійне завдання:
На цьому уроці ми реалізуємо генерацію відкритого і секретного ключів.
самостійне завдання:
26 лекцій-06:38:38
Перестановочний шифр-02:06: 58
Вступ-07: 47
На цьому уроці ми обговоримо, чим відрізняється шифрування від кодування і познайомимося з перестановочним шифром.
Примітка:
Так вийшло, що в налаштуваннях програми запису була поставлена галочка запису з вбудованою Вебкамери, тому частина відео закрита логотипом. Перепрошувати.
самостійне завдання:
- Написати, чим відрізняється шифрування від кодування.
- Зашифрувати зазначену в кінці уроку фразу.
На цьому уроці ми створимо спеціальну форму для запиту даних і відображення результатів шифрування.
самостійне завдання:
- Створити ліву частину форми.
- Продублювати для правої частини.
- Перейменувати текстові поля, кнопки і сітки.
На цьому уроці ми напишемо функцію для заповнення першої сітки.
самостійне завдання:
- Створити обробник кнопки "шифрувати".
- Додати перевірки на вихідні дані.
- Створити всі стовпці.
- Заповнити всі рядки.
- Перевірити роботу програми.
На цьому уроці ми напишемо функцію getAbc (), яка буде сортувати букви ключа за алфавітом. Причому перестановки робити разом з цілим масивом.
самостійне завдання:
- Створити функцію getAbc ().
- Помістити результат її роботи в текстове поле textKeyAbc.
На цьому уроці ми допишемо шифрування тексту. Розставимо стовпці в потрібному порядку, скопіюємо стовпці з першої таблиці, випишемо всі букви в результат, і отримаємо готову шифрувальну програму! Залишиться тільки навчитися розшифровувати.
Додаткове завдання. Розшифрувати повідомлення:
ДМПЯЕ СО СЕ Л ЧПЬВАІЕО.ТНЛ.БУЕТЯЕЯУ
Ключ: ФОРМУЛІСТ
самостійне завдання:
- Створити стовпці другої сітки.
- Скопіювати їх в потрібному порядку.
- Сформувати шифровку.
- Перевірити роботу програми.
- Розшифрувати повідомлення і написати відповідь.
На цьому уроці ми почнемо дешифрування. Для цього потрібно виконати дію, зворотне останньому при шифруванні.
самостійне завдання:
- Написати функцію fillGrid3 ().
- Відсортувати букви ключа.
- Створити стовпці по відсортованому ключу.
- Розмістити шифроване повідомлення в клітини сітки.
На цьому уроці ми закінчимо дешифрування і створення нашої Програми.
самостійне завдання:
- Написати функцію fillGrid4 ().
- Створити стовпці.
- Скопіювати текст з 3-ї сітки.
- Сформувати дешифрування по рядках 4-ї сітки.
- Протестувати програму і порадіти результату.
- Провести експерименти і опублікувати цікаві результати.
На цьому уроці ми порефакторимо код нашої Програми. Виділимо в метод повторюваний код формування стовпців, спростимо алгоритм сортування, переробимо перевірку на помилки і т. д.
Рекомендується спочатку просто подивитися цей урок. А потім по пам'яті зробити ті зміни, які побажаєте. Напишіть, що ще можна було б порефакторити.
самостійне завдання:
- Переглянути відеоурок.
- Зробити рефакторинг за бажанням.
- Написати, що ви зробили і що можна ще зробити.
Опис алгоритму-05: 27
Ми починаємо створення ще однієї шифрувальної програми: "поліалфавітний шифр".
Для початку зашифруйте фразу
ФОРМУЛАПРОГРАММИСТА ,
використовуючи ключ "Сі".
самостійне завдання:
- Прослухати урок.
- Зашифрувати фразу і написати результат.
На цьому уроці ми створимо форму і розмістимо на ній всі необхідні візуальні компоненти. Дайте всім компонентам адекватні імена. Список всіх Імен можна побачити в кінці уроку.
самостійне завдання:
- Створити форму.
- Розмістити всі компоненти.
- Дати їм усім осмислені назви.
- Розкрити список FormPoliVizhenera з усіма іменами.
- Докласти скріншот дизайнера зі списком всіх компонентів.
На цьому уроці ми нарешті-таки приступимо до створення алгоритму. Ми напишемо функцію fillKeyTable (string key), яка створить таблицю для де/шифрування для зазначеного ключа.
самостійне завдання:
- Написати функцію fillKeyTable (string key).
- Протестувати її роботу.
- Зробити скріншот.
На цьому уроці ми завершимо алгоритм шифрування. Ми напишемо функцію fillGrid1 (), яка заповнює першу сітку і попутно формує зашифроване повідомлення. Розшифрувати фразу " Ч-ДЬЕИЪ-Б-ВЖШСГИБВЛЩ "з ключем"ШАРП".
самостійне завдання:
- Написати функцію fillKeyTable (string key).
- Протестувати її роботу.
- Додати перевірку коректності ключа.
- Зробити скріншот.
На цьому уроці ми закінчимо створення цієї програми. Напишемо функцію fillGrid2 () за аналогією з попередньою. В кінці уроку я покажу, як можна розшифрувати повідомлення, використовуючи алгоритм шифрування, просто замінивши ключ на "зворотний".
Завдання: знайти ключ, зворотний "ШАРП".
самостійне завдання:
- Написати функцію fillGrid2 ().
- Протестувати де/шифрування.
- Знайти зворотний ключ і перевірити його.
- Зробити скріншот.
Опис алгоритму-05: 47
Приступаємо до наступної шифрувальної програмі — потоковий метод Віженера. Ваше завдання-зашифрувати слово "ВІДЕОШАРП", використовуючи ключ"Сі".
самостійне завдання:
Зашифрувати слово ВІДЕОШАРП ключем Сі.
Шифровка-11: 33
На цьому уроці ми познайомимося з потоковим шифром Віженера. Цей алгоритм дуже схожий на попередній, тому ми будемо модифікувати попередню програму.
самостійне завдання:
- Скопіювати проект.
- Зробити шифрування новим методом.
- Перевірити роботу алгоритму.
- Зробити скріншот.
На цьому уроці ми завершимо переробку алгоритму для потокового методу шифру.
самостійне завдання:
- Виправити функцію fillGrid2 ().
- Протестувати роботу програми.
- Надіслати скріншот.
Ідея алгоритму-07: 57
На цьому уроці ми почнемо створення алгоритму шифрування RSA(щоб дізнатися подробиці про цей метод шифрування див. посилання внизу).
самостійне завдання:
- Уважно переглянути відео.
- Написати свої думки щодо даного типу шифрування.
- Докласти скріншот по темі.
- * Вивчити сторінку wiki.
На цьому уроці ми створимо новий проект в Visual Studio, підготуємо все необхідне для реалізації алгоритму.
самостійне завдання:
- Уважно переглянути відео.
- Створити новий проект.
- Налаштувати форму.
- Додати необхідні компоненти форми.
- Докласти скріншот результату.
- * На скріншоті ввести числа, підготовлені на минулому уроці.
На цьому уроці ми приступаємо до заповнення раніше створеної форми. Також створимо окремий клас для логіки RSA шифрування. Реалізуємо генерацію простих чисел для подальшого використання при шифруванні.
самостійне завдання:
- Уважно переглянути відео.
- Створити окремий клас RSA ().
- Реалізувати функції генерації простих чисел.
- Реалізувати функції генерації значень pі q.
- Реалізувати функцію ShowNumbers ().
- Реалізувати функцію CalcNumbers ().
- Опишіть свої думки з приводу уроку.
- Докласти скріншот результату.
- * реалізувати ручне введення чисел для генерації.
На цьому уроці ми реалізуємо генерацію відкритого і секретного ключів.
самостійне завдання:
- Уважно переглянути відео.
- Реалізувати функцію GCD ().
- Реалізувати функції генерації значень eі d.
- Модифікувати функцію ShowNumbers ().
- Реалізувати функцію Show ().
https://privatelink.de/?https://www.udemy.com/