Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Загальний алгоритм шифрування DES





 

Базовим є режим ECB, для якого характерні:

- розбивка відкритого тексту на 64-бітові блоки і їхнє незалежне шифрування за допомогою того самого 64-бітового ключа;

- блок шифротексту, як і відповідний йому блок відкритого тексту, має 64 біта;

- для шифрування використовується 56 біта ключ з 64 (8 біт, що залишилися необхідні для контролю).

Узагальнена структурна схема алгоритму шифрування наведена на рис. 1.

Алгоритм функціонує в такий спосіб. Спочатку виконується так називана початкова перестановка IP вхідного блоку відкритого тексту А. Логіка цієї перестановки наведена в таблиці 1 (див. додаток), де iА позначає номер позиції біта вхідного блоку А, а IP (iА) - номер позиції, куди надходить i -й біт вхідного блоку А в результаті перестановки.

Після початкової перестановки виконуються 16 циклів перетворень, що шифрують (розглянуті нижче) після чого треба ще одна перестановка, яка називається "кінцевою зворотною перестановкою". Її логіка представлена в таблиці 2, де iВ позначає номер позиції біта блоку шифротексту, отриманого в результаті згаданих 16 циклів, а IP-1 (iВ) - номер позиції біта, на яку надходить iВ - біт зазначеного блоку в результаті перестановки. У такий спосіб на виході шифратора утвориться шифротекст C вихідного відкритого тексту А з допомогою секретного ключа K. Це позначається як

C = DES (A,K).

Після початкової перестановки IP(i) блок ділиться на два 32-бітових напівблоки: L - лівий й R - правий. Подальше визначення L і R напівблоків відбувається за правилами:

Li = Ri-1

Ri = Li-1 + f(Ri-1, Ki)

де, i = 1...16, f(Ri-1, Ki) - є 32-бітовий напівблок, а операція додавання по модулі 2 виконується над бітами, що перебувають в ідентичних позиціях обох операндів.

Логіка обчислень значень f(Ri-1, Ki) представлена у вигляді структурної схеми, наведеної на рис. 2.

Обчислення починаються з так званого розширення, що перетворить 32-бітовий напівблок в 48-бітовий вектор відповідно до таблиці 3. У цій таблиці j позначає номер позиції в Ri-1, а j - номер позиції, куди надходить j -й біт напівблоку Ri-1. У випадку, коли j-битий "розмножується" на дві позиції, їхні номери вказуються у відповідній "клітці" j через кому.

Для перетворювачів, що шифрують, необхідні 16 ключів Ki, i = 1...16, які використовуються для гамування при реалізації f(Ri-1, Ki).

Логіка їхнього формування наведена на рис. 3.

Вихідний 64-бітовий ключ K розбивається на вісім 8-бітових блоків. Восьмий біт кожного блоку служить для контролю на парність (це дозволяє виявляти помилки непарної кратності, які можуть виникати при зберіганні або в процесі формування ключів). Як відомо, значення цього восьмого біта визначається як сума по модулі 2 всіх попередній біт. Ці контрольні біти в процесі формування ключів не використовуються.

Рис. 1. Структурна схема алгоритму шифрування DES

 

Рис. 2. Структурна схема алгоритму обчислень значень f (Ri-1, Ki)

 

Над значущими бітами вихідного ключа K (а їх 56) виконується операція перестановки - вибору відповідно до таблиці 4. При цьому контрольні біти ключа K у формований 56-бітовий ключ не переносяться, а біти, що використовуються для шифрування, представляються відповідно до зазначеної таблиці, де PC-1 (j), означає номер позиції, у яку надходить j-й біт вихідного ключа.

Після виконання перестановки - вибору PC-1, отриманий 56-бітовий вектор K розбивається на два 28-бітових вектори C0 й D0. Далі в кожному з 16 циклів над 28-бітовими векторами Ci й Di, отриманими на попередньому циклі, виконується операція циклічного зсуву на LSi позицій вліво (значення LSi наведені в таблиці 5).

 

 

Рис. 3. Структурна схема алгоритму формування ключів Ki

 

Отримані в результаті виконання цієї операції 28-бітові вектори Ci+1 і Di+1 у вказаному порядку поєднуються в 56-бітовий вектор. Останній піддається перестановці - вибору PC-2, у результаті якої його j-й біт надходить в PC-2 (j)-ю позицію формованого 48-бітового вектора, що і є ключ Ki+1. Логіка перестановки - вибору PC-2 визначається таблицею 6.

Отримані 48-бітові ключі Ki (i = 1...16) гамуються з 48-бітами на виході таблиці розширення Е. Результат гамування розбивається на вісім 6-бітових векторів, що надходять на входи так званих S-блоків S1,..., S8. Кожен S-блок видає 4-бітовий вектор, причому взаємозв'язок між вхідними й вихідними даними визначається вмістом таблиці 7 і правилами їхнього використання. Вони полягають у наступному: нехай B1...B6 - 6-бітовий вектор, що надходить на вхід деякого блоку Si. Утворюють два десяткових числа k та l, двійкова запис першого з яких є B1, B6, а другого B2, B3, B4, B5 (наприклад, стосовно до вектора 000110 -> k = 0; l = 3). Тоді результатом роботи Si блоку, що відповідає входу B1...B6 є 4-бітовий двійковий запис десяткового числа вартого в j-й матриці на перетинанні k-го рядка й l-го стовпця (наприклад, при надходженні згаданого вектора 000110 на вхід блоку S3, результатом буде 14 = 11102; результатом роботи S5-блоку при тому ж вхідному векторі буде 1 = 00012).

Вісім 4-бітових векторів, що надходять із виходів S-блоків, утворять 32-бітовий напівблок, що піддається перестановці, обумовленою таблицею 8, у якій, за аналогією з раніше наведеними таблицями, P(i) - є номер позиції, у яку попадає i-й біт вхідного напівблоку.

Такі особливості алгоритму шифрування DES. Слід зазначити, що криптостійкість DES визначається, головним чином нелінійністю S-блоків. Однак логіка, відповідно до якої розроблені S-блоки, авторами DES не розкрита й дотепер невідома користувачам. У той же час дослідження статистичних властивостей зазначених блоків показує, що вони не є повністю випадковими. У зв'язку із цим, серед фахівців поширена точка зору про можливості існування "лазівок", що руйнують DES. Іншим об'єктом критики є відносно мала довжина ключа (56 біт), що, у принципі, робить реальною так звану "силову атаку" на DES шляхом організації повного перебору всього простору ключів. Проте обчислювальних ресурсів сучасних ЕОМ, у тому числі структур з високим ступенем паралельності, для реалізації подібної атаки поки недостатньо!

 

Date: 2015-12-11; view: 514; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию