Шифрування повідомлень різними методами - студопедія
Замість хвоста - нога, А на нозі - роги.
Розглянемо, як зашифрувати повідомлення методом заміни (тобто шляхом підстановки). Спочатку використовуємо шифр Цезаря. Припустимо, що потрібно зашифрувати повідомлення «ДЕ АББА».
Як відомо, циклічний шифр Цезаря виходить заміною кожної букви відкритого тексту буквами цього ж алфавіту, розташованими попереду через певне число позицій, наприклад через три позиції. Циклічним він називається тому, що при виконанні заміни слідом за останньою буквою алфавіту знову слід перша буква алфавіту. Запишемо фрагменти українського алфавіту і покажемо, як виконується шифрування (порядок заміни):
В результаті проведеного перетворення вийде шифрограма:
В даному випадку ключем є величина зсуву (число позицій між буквами). Число ключів цього шифру невелика (воно дорівнює числу букв алфавіту). Чи не становить труднощів розкрити таку шифрограму перебором всіх можливих ключів. Недоліком шифру Цезаря є невисока криптостойкость. Пояснюється це тим, що в зашифрованому тексті букви і раніше розташовуються в алфавітному порядку, лише початок відліку зміщено на кілька позицій.
Заміна може здійснюватися на символи іншого алфавіту і з більш складним ключем (алгоритмом заміни). Для простоти знову наведемо лише початкові частини алфавітів. Лінії показують порядок заміни букв українського алфавіту на букви латинського алфавіту. Зашифруємо фразу «ДЕ АББА»
В результаті такого шифрування вийде криптограма:
Раціональніше використаний в останньому випадку ключ записати у вигляді таблиці:
За допомогою багатоалфавітних шифру повідомлення «ДЕ АББА» можна зашифрувати декількома способами:
10-99-15-12-4-14-12 і т. Д.
Для кожної літери вихідного алфавіту створюється деякий безліч символів шифрограми так, що безлічі кожної букви не містять однакових елементів. Багатоалфавітних шифри змінюють картину статистичних частот появи літер і цим ускладнюють розтин шифру без знання ключа.
Розглянемо ще один шифр многоалфавитной заміни, який був описаний в 1585 р французьким дипломатом Блезом де Віженера. Шифрування проводиться за допомогою так званої таблиці Віженера. Тут, як і раніше, показана лише частина таблиці для того, щоб викласти лише ідею методу.
Кожен рядок в цій таблиці відповідає одному шифру простої заміни (типу шифру Цезаря). При шифруванні відкрите повідомлення записують в рядок, а під ним поміщають ключ. Якщо ключ виявляється коротше повідомлення, то ключ циклічно повторюють. Шифровку отримують, знаходячи символ в матриці букв шифрограми. Символ шифрограми знаходиться на перетині стовпця з буквою відкритого тексту і рядки з відповідною буквою ключа.

Припустимо, що потрібно зашифрувати повідомлення «ДЕ АББА». Як ключ виберемо слово «ДІВА». В результаті отримаємо:
Припустимо, що потрібно зашифрувати слово криптографії. Розглянемо правила шифрування.
1. Відкритий текст ділиться на блоки по дві букви. Букви в одному блоці не повинні бути однаковими. Зробимо поділ вихідного слова на блоки по дві букви КР-ІП-ТО-ГР-АФ-ІМ.
2. Якщо букви шифруемого блоку знаходяться в різних рядках і шпальтах, то в якості замінюють букв використовуються літери, розташовані в кутах прямокутника, що охоплює букви відкритого тексту. На приклад, блок КР замінюється символами ІТ.
3. Якщо букви відкритого тексту потрапляють в один рядок, то шифрограма виходить шляхом циклічного зсуву вправо на одну клітку. Наприклад, блок ІП буде перетворений в Йі. Ще один приклад до цього правила. Якщо, припустимо, Ви бажаєте перевести блок КН, то вийде ЛО.
4. Якщо обидві літери відкритого тексту потрапляють в один стовпець, то для шифрування здійснюють циклічний зсув на одну клітку вниз.
Блок ЖЦ буде перетворений в символи ОЮ, а блок Т'в символи'В.
Відповідно до описаними правилами слово криптографії буде перетворено в криптограму ІТЙІЦКАУДРПШ.
Зауважимо, що якщо блоки відкритого тексту складаються з однакових букв, то криптограма теж буде містити однакові пари символів. З цієї причини розглянутий шифр відноситься до одноалфавітним. Однак модифікація цього шифру перетворює його в багатоалфавітних систему. Для цього використовується декілька таблиць Плейфейера і проводиться багаторазове шифрування.
Тут доречно розглянути криптографічний систему Хілла, в якій шифрування здійснюється з використанням математичних перетворень: обчислень за допомогою прийомів лінійної алгебри.
Даний шифр для окремо взятої літери можна вважати багатоалфавітних. Однак пари букв шифруються всюди однаково. Тому в широкому сенсі поняття криптографічний систему Хілла слід віднести до одноалфавітним шифрів.
Спочатку відкритий текст методом заміни слід перетворити в сукупність чисел. Припустимо, що шифрується текст, написаний з використанням 26-ти латинських букв. Виберемо наступний алгоритм заміни букв на числа: латинські букви А, В, С, D. Z будемо замінювати відповідно числами 1, 2, 3, 4. 26. Іншими словами: пронумеруємо букви в порядку їх розташування в алфавіті, і при заміні будемо використовувати їх порядкові номери. В даному випадку обраний такий алгоритм заміни, але зрозуміло, що він може бути будь-яким.
Припустимо, що потрібно зашифрувати німецьке слово ZEIT. Замінимо літери відповідно до їх порядковими номерами в алфавіті чотирма числами: 26 - 5 - 9 - 20.
Далі слід вибрати деяке число d> 2. Це число показує, порядок розбиття відкритого тексту на групи символів (визначає, скільки букв буде в кожній групі). З математичної точки зору число d показує, скільки рядків має бути в векторах-шпальтах. Приймемо d = 2. Це означає, що числа 26 - 5 - 9 - 20 потрібно розбити на групи по два числа в кожній групі і записати їх у вигляді векторів-стовпців:
Далі слід записати матрицю вихідного тексту:
Шифрування виконується шляхом обчислення наступних виразів:
С1 = МР1 і С2 = М # 8729; Р2
В результаті розрахунків вийде:
У таблиці символом «_» позначений пробіл.
В результаті перетворень вийде шифровка
Як видно з прикладу, шифровка і відкритий текст містять однакові символи, але вони розташовуються на різних місцях.
Ключем в даному випадку є розмір матриці, порядок запису відкритого тексту і зчитування шифрограми. Природно, що ключ може бути іншим. Наприклад, запис відкритого тексту по рядках може проводитися в такому порядку: 48127653, а зчитування криптограми може відбуватися за стовпцями в наступному порядку: 81357642.
Будемо називати порядок записи в рядки матриці ключем записи, а порядок зчитування шифрограми за стовпцями - ключем зчитування.
Тоді правило дешифрування криптограми, отриманої методом перестановок, можна записати так.
Щоб дешифрувати криптограму, отриману за допомогою матриці п х п, потрібно криптограму розбити на групи символів по п символів в кожній групі. Крайню ліву групу записати зверху вниз в стовпець, номер якого збігається з першою цифрою ключа зчитування. Другу групу символів записати в стовпець, номер якого збігається з другої цифрою ключа зчитування і т.д. Відкритий текст зчитувати з матриці по рядках відповідно до цифрами ключа запису.
Розглянемо приклад дешифрування криптограми, отриманої методом перестановок. Відомо, що при шифруванні використані матриця 6x6, ключ записи 352146 і ключ зчитування 425316. Текст шифрограми такий:
Розіб'ємо шифрограму на групи по 6 символів:
ДКАГЧЬ ОВА_РУ ААКОЕБ ЗЕРЕ_Д СОХТЕС Е_Т_ЛУ
Потім першу групу символів запишемо в стовпчик 4 матриці 6x6, так як перша цифра ключа зчитування - 4 (див. Рисунок а). Другу групу з 6 символів запишемо в стовпчик 2 (див. Рисунок б), третю групу символів - в стовпець 5 (див. Малюнок в), пропустивши дві фази заповнення матриці, зобразимо повністю заповнену матрицю (див. Рисунок г).
Зчитування відкритого тексту відповідно до ключа запису починаємо з рядка 3, потім використовуємо рядок 5 і т.д. В результаті дешифрування отримуємо відкритий текст:
ХАРАКТЕР ЛЮДИНИ СТВОРЮЄ ЙОГО ДОЛЮ
Природно, що описана процедура дешифрування криптограми проводиться комп'ютером автоматично за допомогою заздалегідь розроблених програм.
Для підвищення криптостійкості методи заміни та перестановки нерідко використовують в поєднанні з адитивним методом.
При шифруванні адитивним методом спочатку відкритий текст шифрують методом заміни, перетворюючи кожну букву в число. Потім до кожного числа додають секретну гаму (псевдослучайную числову послідовність). Технічно додавання гами в криптографічних системах здійснюється поразрядно (потоковий шифр): на кожен біт відкритого тексту по черзі накладається біт секретної гами.
Генератор потоку ключів - гами видає потік бітів: # 947; 1. # 947; 2. # 947; 3, ...., # 947; i. Цей потік бітів і потік бітів відкритого тексту # 961; 1. # 961; 2. # 961; 3, ...., # 961; i піддаються поразрядно логічної операції виключає Або. В результаті виходить потік бітів шифротекста:
При дешифрування операція виключає Або виконується над бітами шифротекста і тим же самим потоком гами:
Завдяки особливостям логічної операції виключає Або на приймальній стороні операція віднімання замінюється даної логічною операцією. Сказане ілюструється прикладом.
Припустимо, що Р = 10011001, a G = 11001110. В результаті зашифрований байт буде мати вигляд:
На приймальній стороні буде повторно виконана логічна операція виключає Або:
З цих таблиць видно, що переданий і прийнятий байти однакові.
У ЕОМ перетворення відкритого тексту в числа відбувається природним шляхом, так як кожен символ кодується двійковим числом. Вид цього перетворення залежить від операційної системи. Для визначеності будемо вважати, що повідомлення в ЕОМ кодується за допомогою кодової таблиці СР-1251. Отже, будемо вважати, що секретна гамма додається до відкритого тексту за правилом додавання по модулю два без переносів в старші розряди (логічна операція виключає Або). Результати всіх перетворень помістимо в таблицю
Для наочності результат шифрування (шифрограма) переведений з допомогою таблиці СР-1251 в літери. З таблиці видно, що відкритий текст був записаний прописними буквами, а криптограма містить як прописні, так і малі літери. Природно, що при реальному (а не навчальному) шифруванні набір символів в шифрограмі буде ще багатшими. Крім українських букв будуть присутні латинські букви, розділові знаки, символи, що управляють. Криптографічний система з відкритим ключем
Наведемо приклад використання такої системи.
Нехай абонент А (наприклад, банкір) і абонент В (наприклад, вкладник) вирішили встановити між собою секретну передачу інформації.
Кожен з абонентів незалежно один від одного вибирає два великих простих числа, знаходить їх твір, функцію Ейлера від цього твору і вибирає випадкове число, менше обчисленого значення функції Ейлера і взаємно просте з ним.
Нагадаємо, що просте число - це ціле позитивне число, більше одиниці, що не має інших дільників, крім самого себе і одиниці. Взаємно прості числа - цілі числа, що не мають спільних (простих) подільників.
Порядок створення ключів проілюструємо за допомогою таблиці. Для наочності числа обрані малої величини. Фактично ці числа мають близько 100 десяткових розрядів
Абонент А (банкір)
Абонент В (вкладник)
Використана в таблиці запис # 945; = # 946; (Mod (# 947;)) означає, що при целочисленном розподілі числа # 945; на число # 947; залишок дорівнює # 946; .
Наприклад, 7 = l (mod (3)).
Функція Ейлера - арифметична функція # 966; (r), значення якої дорівнює кількості позитивних чисел, що не перевершують г і взаємно простих з р
Припустимо, що абонент А вирішив послати повідомлення абоненту В. Спочатку методом заміни кожен символ повідомлення замінюється (шифрується) числом. Припустимо, що потрібно переслати першу букву відкритого повідомлення, яка попередньо зашифрована методом заміни числом 2.
т = 2 31 = 2147483648.
Потім знаходять залишок від ділення числа т на величину г = 253, в результаті якого виходить число 167, тобто:
2 31 = 167 (mod (253)).
Нагадаємо, що числа s і г є відкритим ключем абонента В.
В лінію передається число 167, яке є шифром вихідного числа 2.
Отримавши шифрограму (167), абонент В використовує свій секретний ключ t = 71. Для дешифрування він зводить отримане число 167 в ступінь 71 і знаходить залишок від ділення на число 253. Математично це записується так:
167 71 = 2 (mod (253)).
В даному випадку залишок від ділення дорівнює 2, значить, шифрация і дешифрування відбулися правильно. Було передано число 2, і це ж число було прийнято після всіх перетворень.
Припустимо, що абонент В вирішив відповісти абоненту А і направити йому букву, зашифровану числом 3.
В лінію відправляється число 61. Отримавши це число, абонент А відновлює (дешифрирует) вихідний текст за допомогою свого секретного ключа t = 29:
В результаті дешифрування на приймальній стороні отримано число 3, яке відправив абонент В.
Процес передачі букв між абонентами ілюструє наступна таблиця.
Перший рядок наведеної таблиці пояснює процес передачі літери М від абонента А до абонента В. Другий рядок показує, як передається буква L від абонента В до абонента А. В даному випадку вважається, що буква М кодується числом 2, а буква L - числом 3.
У наведених прикладах було розглянуто порядок передачі одного символу з кожного боку. Зрозуміло, що таким чином послідовно передається ціле повідомлення, але перетворення над кожним символом відбувається за розглянутою схемою. Зауважимо, що для використання цього методу необхідно повідомлення попередньо перетворити в набір чисел, наприклад, за допомогою кодової таблиці.
Перевагою шифрування з відкритим ключем є виключення необхідності передачі секретного ключа по закритих каналах зв'язку, наприклад, за допомогою кур'єра.
Припустимо, що абонент В (вкладник) вирішив послати повідомлення, що складається з числа 41, абоненту А (банкіру). Спочатку вкладник шифрує повідомлення відкритим ключем банкіра:
41 5 ≡ 6 (mod (91)).
В результаті шифрування отримано число 6.
Далі вкладник повторно шифрує це повідомлення своїм секретним ключем 71:
б 71 ≡ 94 (mod (253)).
Шифрограмма 94 відправляється банкіру.
Банкір, отримавши секретне повідомлення, використовує спочатку відкритий ключ вкладника:
Потім банкір використовує свій секретний ключ:
6 29 ≡ 41 (mod (91)).
В результаті абонент А (банкір) отримує повідомлення, що складається з числа 41.
При використанні електронного підпису ніхто інший не зможе надіслати банкіру повідомлення (наприклад, доручення перевести гроші) від імені абонента В, так як на передачу потрібно обов'язково використовувати секретний ключ вкладника, який відомий тільки абонентові В.
Завдання для виконання роботи:
Провести шифрування повідомлення (індивідуальні варіанти див. Нижче) різними способами:
2. шифром Цезаря;
3. шифром многоалфавитной заміни;
4. за допомогою квадрата Полібія;
5. за допомогою системи Плейфейра (будь-яке словосполучення (не менше 10 букв) з індивідуального варіанту).
Зашифровані повідомлення (лабораторна робота №5) оформити в електронному вигляді (файл з розширенням doc, docx, odt, rtf).
Звіт повинен містити:
4. вихідний текст повідомлення
5. зашифровані повідомлення із зазначенням способу шифрування.
Повідомлення для шифрування