МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра ЗІ ЗВІТ до лабораторної роботи №6 з курсу: «Криптографічні системи і протоколи» на тему: «Афінні шифри. Лінійні шифри» Варіант - 2 Виконав: ст. гр. КБ-36 Брич Н. І. Прийняла: Руда Х. С. Львів 2021 Мета роботи: ознайомитися з афінними шифрами (шифр зсуву, лінійний шифр, афінний шифр 1-го і вищих порядків). Завдання Написати програму шифрування та розшифрування на мові програмування С# для реалізації афінного шифру 3-го порядку. Теоретичні відомості Ключ: A GLk ( Z n ) і S Z nk . Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою E(X) = AX + S. Дешифрування. Кожна k-грама X’ криптотексту заміщується k-грамою D(X’) = A’X’ + S’, де A’= A 1 і S’ = –A’S – дешифруючий ключ. Приклад 1. Розглянемо докладніше випадок k = 2, тобто біграмний лінійний a b з коефіцієнтами a, b, c, d Z n . шифр. В якості ключа вибирається матриця A c d Матриця A повинна бути оборотною. Це рівнозначно умові НСД(ω, n) = 1 для ω = ad – bc – визначника матриці. За цієї умови з допомогою розширеного алгоритму Евкліда ми можемо знайти в Z n обернений елемент w1 і за формулою оберненої матриці обчислити дешифруючий ключ dw1 mod n bw1 mod n . A 1 1 cw mod n aw mod n 1 1 над Z 33 маємо ω = (1∙1 – 32∙1) mod 33 = 2. За Наприклад, для A 32 1 17 16 . розширеним алгоритмом Евкліда знаходимо w1 = 17 і A 17 17 Нехай потрібно зашифрувати повідомлення ЗАВТРА. Першій біграмі ЗА (1 9 1 0) mod 33 9 9 . Таким відповідає вектор . Множення на матрицю A дає (32 9 1 0) mod 33 24 0 2 20 та РА = . Зауважимо, що множення 22 0 же чином знаходимо образи біграм ВТ = матриці A на три вектори-біграми еквівалентне множенню цієї матриці на матрицю розміру 2 на 3: 1 1 9 2 20 9 24 20 . 32 1 0 22 0 24 20 13 Насамкінець перетворюємо стовпчики отриманої матриці у біграми – отримуємо криптотекст ЗФФРРЙ. Дешифрування відбувається так само, лише із використанням оберненої матриці. Наприклад, якщо ми маємо крипто текст РЬГК, то розбиваємо його на біграми р г 20 3 і виконуємо множення на матрицю A’: ь к 30 14 17 16 20 3 17 17 н н . 17 17 30 14 10 11 и і В результаті дістаємо повідомлення НИНІ. Повернемось до загального аналізу лінійного шифру. Співвідношення D(E(X)) = X для будь-якого X Z nk випливає з рівностей A’(AX) = (A’ A)X = I k X = X, де I k – одинична матриця порядку k. Дешифруючий ключ A’ для вибраної оборотною матриці A обчислюється ефективно за формулою для оберненої матриці. Потрібне для цього значення(det A) 1 modn знаходиться за допомогою розширеного алгоритму Евкліда. На довершення доведемо, що необоротні матриці A непридатні для використання в якості ключа. Індивідуальне завдання № Варіанту 2 Матриця ; Вид шифрування Афінний шифр 2-го порядку Виконання завдання - Код програми - Виконання завдання Висновок: отже, на даній лабораторній роботі я ознайомився з алгоритмом шифрування RSA та за допомогою нього зашифрував та відправив повідомлення утримувачу. Утримувач зміг переконатися в справжності ЕЦП.