ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.05.2024
Просмотров: 47
Скачиваний: 0
6 Роторні машини
У 20-х роках XX століття були винайдені електромеханічні пристрої шифрування, що автоматизують процес шифрування. Принцип роботи таких машин заснований на багатоалфавітній заміні символів вихідного тексту згідно з значенням довгого ключа відповідно до версії шифру Віженера. Більшість із них – американська машина SIGABA (М-134), англійська TYPEX, німецька ENIGMA, японська PURPLE - були роторними машинами.
Головною деталлю роторної машини є ротор (або колесо) із дротовими перемичками усередині. Ротор має форму диска (розміром з хокейну шайбу). На кожній стороні диска рівномірно по колу розташовано m електричних контактів, де m – число знаків алфавіту (у випадку латинського алфавіту m=26). Кожен контакт на передній стороні диска з'єднаний з одним із контактів задньої сторони, як показано на рис. 6. У результаті електричний сигнал, що являє собою символ відкритого тексту, буде поданий відповідно до того, як він проходить через ротор від передньої сторони до задньої. Наприклад, ротор можна закомутувати дротовими перемичками для підстановки G замість A, U замість В, R замість С і т.д.
Ротори () можна об'єднати в банк роторів таким чином, щоб вихідні контакти одного ротора торкалися вхідних контактів наступного ротора (рис. 6). При цьому електричний імпульс від натиснутої клавіші з буквою вихідного тексту, що входить із одного кінця банку роторів, буде переставлятися кожним з роторів, доти, поки не залишить банк.
Рисунок 6 – Банк роторів
Шифротекст отриманий за допомогою роторної машини ускладнюється ще й тим, що ротори можуть обертатися по осі відносно один одного. Для одержання стійкої криптографічної системи розташування роторів повинне мінятися при переході від знаку до знаку повідомлення.
Роторна машина складається з банку роторів і механізму для зміни положення роторів з кожним зашифрованим знаком, об'єднаного із пристроями введення й виведення.
Найпростіше з можливих рухів ротора – це рух за принципом одометра; воно використовувалося в німецькій машині Enigma під час Другої світової війни. При шифруванні одного знаку праве крайнє колесо повертається на одну позицію. Коли це (і будь-яке інше) колесо переміститься на m позицій і зробить повний оборот, колесо, розміщене ліворуч від нього, пересунеться на одну позицію, і процес буде повторюватися. Цей процес проведе банк роторів крізь всі його можливі положення, перш ніж цикл повториться. Оскільки всі ротори переміщаються з різними швидкостями, період n-роторної машини становить (при m = 26).
Для закону руху ротора бажані такі характеристики:
-
період повинен бути більшим;
-
після шифрування кожного знаку всі ротори або більша їхня частина повинні повернутися один щодо іншого.
Рух за принципом одометра оптимально в змісті першої вимоги, але зовсім незадовільно відносно другої вимоги. Поліпшення руху за принципом одометра можна одержати, якщо повертати кожен ротор більш ніж на одну позицію. Якщо зсуву кожного ротора не мають загальних множників з обсягом алфавіту m, то період залишиться максимальним.
Інше рішення полягає в обмеженні числа допустимих зупинних місць для кожного ротора за рахунок введення зовнішнього фіксуючого кільця, на якому певним способом зафіксовані місця зупинок. При використанні латинського алфавіту можна змусити машини повертатися та зупинятися в такий спосіб. Першому колесу дозволяється зупинятися в кожній з 26 позицій, другому колесу - тільки в 25 позиціях, третьому колесу - тільки в 23 позиціях і так далі до шостого колеса, якому дозволяється зупинятися тільки в 17 позиціях. Період такої роторної машини тепер становить 101 млн, а не 266≈309 млн, як у випадку руху за принципом одометра. Втрата в довжині періоду з успіхом окупається отриманою складністю руху роторів. Тепер друга вимога задовольняється досить добре, оскільки кожне з коліс прокручується після шифрування кожного знаку і колеса можуть рухатися відносно одне до одного.
Роторна машина може бути настроєна за ключем зміною будь-яких її змінних:
-
роторів;
-
порядку розміщення роторів;
-
числа місць зупинки на колесо;
-
характеру руху і т. д.
7 Шифрування методом гамірування
Під гаміруванням розуміють процес накладання за певним законом гами шифру на відкриті дані. Гама шифру - псевдовипадкова послідовність, створена згідно з заданим алгоритмом для зашифрування відкритих даних і розшифрування зашифрованих даних.
Процес зашифрування полягає в генерації гами шифру і накладанні отриманої гами на вихідний відкритий текст зворотним чином, наприклад, з використанням операції додавання за модулем 2.
Слід зазначити, що перед зашифруванням відкриті дані розбивають на блоки однакової довжини, як правило, по 64 бітів. Гама шифру генерується у вигляді послідовності блоків аналогічної довжини.
Рівняння зашифрування можна записати у вигляді
, (3.8)
де
1 i m, m – кількість блоків відкритого тексту;
– i-й блок шифротексту;
– i-й блок гами шифру;
– i-й блок відкритого тексту.
Процес розшифрування зводиться до повторної генерації гами шифру та накладенню цієї гами на зашифровані дані. Рівняння розшифрування має вигляд
. (3.9)
Одержаний таким методом шифротекст досить важкий для розкриття, оскільки тепер ключ є змінним. По суті гама шифру повинна випадково змінюватися для кожного блоку, що зашифровується. Якщо період гами перевищує довжину всього тексту, що зашифровується, і зловмисникові невідома ніяка частина вихідного тексту, то такий шифр можна розкрити тільки прямим перебором усіх варіантів ключа. У цьому випадку криптостійкість шифру визначається довжиною ключа.
Розглянемо приклад. Для ілюстрації шифрування тексту методом гамірування візьмемо двійкові коди символів відкритого тексту M та як гаму G – випадкову послідовність двійкових кодів.
Нехай маємо відкритий текст M=«SMAIL» і гаму
G={1010011, 1010100, 1000111, 1010111} – випадкову послідовність бітів.
Поставимо у відповідність кожному символу відкритого тексту його ASCII код, а потім переведемо у двійкову систему числення
Відкритий текст |
S |
M |
A |
I |
L |
ASCII -код |
83 |
77 |
65 |
73 |
76 |
Двійковий код |
1010011 |
1001101 |
1000001 |
1001001 |
1001100 |
Виконаємо шифрування
Відкритий текст |
1010011 |
1001101 |
1000001 |
1001001 |
1001100 |
Гама |
1100001 |
1010011 |
1010100 |
1000111 |
1010111 |
Шифротекст |
0110010 |
0011110 |
0010101 |
0001110 |
0011011 |
ASCII-код |
50 |
94 |
107 |
108 |
89 |
Шифротекст |
2 |
^ |
K |
l |
Y |
У результаті одержали шифротекст C=«2^klY», що відповідає відкритому тексту M=«SMAIL».
Задачі
-
За допомогою шифру Віженера виконати шифрування відкритого тексту M з ключем Key
М = «НІЖНО ВПЛІТАЄТЬСЯ В ГОМІН ДНІПРА
ДОБРЕ І ЩИРЕ ШЕВЧЕНКІВСЬЕ СЛОВО»
Key=«СКОМАРОВСЬКИЙ».
-
Виконати розшифрування шифротексту С (ключове слово – «EMPIRE»). При розшифруванні врахувати, що алфавіт містить пробіл, за яким ідують символи латинського алфавіту
C = «MRPPI FGOUM RYMAH NRYMD UNRWZ OANJE FTIZNI MIQWR EQUNG EIALW RNSMX RJEUA STWYE NCMRY MRCIZ JEEIC XKJQP QXEBD LBJYM LRKME TGJJX EEDIK MFFPB ZJEZD WWCEI DCCIE DBRKF YAIFZ Y».
-
Виконати криптоаналіз шифротексту С, якщо відомо, що шифрування відбувалося за допомогою шифру Віженера
C =«ORIOM GKRIE MXSIX CISIG XEJSK ZRXJK SGWBZ GLRIM XSLUN LPXQM AUSVX MREEA KMBTJ SDAWS JKLME WLYXM NZLDA EQLQT FTCML XSONO FMKRI EMXJR IUXST MVUQX SONEA XXIEM XSSRC XLSNW PELRI XFYLX DALTY SFQUX SOAPE HXDR I».