У загальному випадку, криптосистема на основі роторної машини здійснює алфавітну підстановку з довгим періодом.
А одним з її головних властивостей є обертання роторів:
. Перший ротор після кожного перетворення літери повертався на одну позицію.
. Другий ротор повертався на одну позицію після того, як перший ротор здійснював повний оборот, тобто после26-ти перетворених букв.
. Третій ротор повертався на одну позицію після того, як другий ротор здійснював повний оборот, тобто після 676-ти зашифрованих букв.
Таким чином, можна помітити, що криптосистема В«ЕнігмаВ» використовує 26 3 таблиць підстановки, або після підрахунку - 676 таблиць підстановок, що є досить таки значним значенням.
1.1.1 Шифрування
Для програмної реалізації даної криптосистеми надам етапи її реалізації, що наведені на Сх. 1. br/>В
Сх. 1: алгоритм реалізації криптосистеми В«ЕнігмаВ». br/>
Для початку шифрування користувачеві необхідно ввести значення початкового стану роторів, а так само подати на вхід довільний файл, який необхідно зашифрувати (блок 1 на Сх.1).
Після чого формуватиметься кожен з трьох роторів (блок 2 на Сх.1). Найбільш коректно це можна виконати за допомогою генераторів псевдовипадкових чисел. Це буде проводитися за допомогою одного зсувного регістру з лінійною зворотним зв'язком LFSR довжиною 23 біта (примітивний многочлен P (x) = x23 + x5 + 1). p> У програмі це можна реалізувати, використовую зрушення і логічну операцію виключає В«АБОВ».
В
Сх. 2: алгоритм заповнення роторів псевдовипадковими значеннями. br/>
Найголовніша частина криптосистеми В«ЕнігмаВ» при її програмної реалізації полягатиме в бл.5 сх.1. Її математична модель буде розглянута далі. p> У розробляється мною ПС буде реалізовано шифрування файлу довільного типу. Відповідно, на відміну від криптографічного машини В«ЕнігмаВ», узятий з файлу блок даних для шифрування буде дорівнює одному байту, в той час як у класичному варіанті брався символ - буква алфавіту (реалізація була фізичної, не в машинних кодах). p> Для цього, після взяття байта b з поданого на вхід файл, вироблятимуться наступні дії:
1. Прохід по роторам до рефлектора (див. Додаток 1, стор.1);
. Рефлектор (див. Додаток 1, стор.12);
. Зворотний хід (див. Додаток 1, стор.18).
У п.1 взятий байт b буде індексом, слідуючи якому з ротора 1 буде витягнутий елемент, який у свою чергу буде індексом витягуваного елемента з третього ротора. p align="justify"> У п.2 в рефлектор подається витя...