ABCDEFGHIJKLMNOPQRSTUVWXYZ 6 страница

 

Продовження таблиці 3.5

 

  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
S5
0 1 2 3 2 12 14 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S6
0 1 2 3 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S7
0 1 2 3 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S8
0 1 2 3 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

 

 

Кожна з функцій Sj (Bj) перетворює 6-бітову послідовність в 4-бітову по наступному алгоритму:

 

· перший та останній біти вихідної послідовності Bj (Bj = b1 b2 b3 b4 b5 b6 , де bj = 0 чи 1) визначають номер рядка k. Тобто число b1 b6 , яке переведено з двійкової системи обчислення до десяткової – це номер рядка в таблиці 3.5;

· другий, третій, четвертий та п’ятий бити послідовності Bj з визначають номер стовпчика l. Тобто число b2 b3 b4 b5 , яке переведено з двійкової системи обчислення до десяткової – це номер стовпця в таблиці 3.5;

· результат перетворення обирається на перетинанні строки k та стовпця l.

 

Приклад. Нехай, B=011011. Тоді S(1)(B)=0101.

Дійсно, k = 1 (b1 b6 = 01(2) = 1(10))

l = 13 (b2 b3 b4 b5 = 1101(2) = 13(10))

На перетинанні стовпця 13 та рядка 1 задано число 5(10) = 0101(2) . Таким чином, послідовність 011011 перетворена на послідовність 0101.

Функція перестановки бітів P, задається таблицею 3.6.

Таблица 3.6 "Функція перестановки P"

 

16 7 20 21

29 12 28 17

1 15 23 26

5 18 31 10

2 8 24 14

32 27 3 9

19 13 30 6

22 11 4 25

На кожному кроці ітерації для функціонального перетворення використовується нове значення ключа Ki .

Нове значення ключа Ki обчислюється з його початкового значення. Ключ являє собою 64-бітний блок з 8 бітами контролю по парності, розташованих у позиціях 8, 16, 24, 32, 40, 48, 56, 64.

Для видалення контрольних бітів і підготовки ключа до роботи використовується функція первісної підготовки ключа G, таблиця 3.7

 

Таблиця 3.7- Функція первісного встановлення ключа

 

Результат перетворення G(K) розбивається на дві частини C0 і D0 по 28 біт кожна. Перші чотири рядки матриці визначають біти послідовності C0 (символи ключа зчитуються по рядках). Наступні чотири рядки матриці визначають біти послідовності D0. Після визначення C0 і D0 рекурсивно визначаються значення Ci і Di. З цією метою виконуються операції циклічного зсування вліво на число кроків, обумовлене таблицею 3.8

Таблиця 3.8 - Циклічні зсування

Номер ітерації Кількість зрушень вліво Номер ітерації Кількість зрушень вліво

 

Операції зсування виконуються незалежно для послідовностей Ci і Di. Ключ Ki, обумовлений на кожнім кроці ітерації, є результат вибору конкретних 48-и біт з 56-и бітової послідовності і їхньої перестановки (рисунок 3.4)

 
 

 

 


к1

 

к2

 

к16

 

 

Рисунок 3.4 - Схема алгоритму обчислювання ключів Кi

 

 

Порядок вибору визначається функцією Н.

 

Ki = H ( Ci Di )

 

Функція H визначається матрицею, що завершує формування ключа за таблицею 3.9

Таблиця 3.9 - Функція H

 

Символи послідовностей Ci і Di. вписуються в матрицю Н, відповідно до номерів її осередків і, потім, зчитуються по рядках. Таким чином, виконується перестановка символів.

Усі перестановки і коди в таблицях підібрані розроблювачами таким чином, щоб максимально утруднити процес розшифровування шляхом підбору ключа.

Операції, виконувані в процесі шифрування з використанням алгоритму DES обернені. Процедура розшифровування на стороні приймача відрізняється тільки черговістю формування ключів Ki. Вони повинні подаватися в зворотному порядку K16 ¸ K1.

 

Початково стандарт DЕS використовувався лише для шифрування та розшифровування даних ЕОМ. Потім він став використовуватися для других завдань, наприклад, для автентифікації чи захисту повідомлень електронної системи платежів при операціях поміж клієнтами та банками.

Щоб використати алгоритм DES для рішення різноманітних криптографічних задач, було розроблено декілька режимів його використання.

3.4.1 Режим „ Електронна кодова книга ” Режим „ Електрона кодова книга ”ECB (Electronic Code Book) передбачає виконання криптографічних перетворювань у відповідності з головним алгоритмом DES. Кожний 64-х розрядний блок перетворюють з використанням одного і того же ключа (рис.3.5).
 
 


Прийом

 
 


Передача

 

 

 

Рисунок 3.5 - Режим електронної кодової книги

Головною стороною такого алгоритму – простота реалізації. Однак він найменш тривалий до спроб розшифрування. Це пояснюється тим, що при відносно невеликій довжині блоку і великій довжині тексту, що передається, деякі блоки можуть повторюватися. Це надає криптоаналітику деяку інформацію про зміст повідомлення.

 

3.4.2 Режим „Зчеплення блоків шифру”

Цей режим передбачає розбиття повідомлення, що передається, на блоки

М = М1М2М3М4

До першого блоку додається по модулю два первісний вектор S який регулярно змінюється на приймальній і передавальній сторонах. Після цього, отримана сума шифрується з використанням алгоритму DES. Таким чином, в канал передається 64 – х бітове повідомлення С1.

Отримана на стороні приймача сума С1 розшифровувається, потім від неї віднімається первісний вектор S.

На наступному етапі шифрування, при передачі наступного блоку, замість первісного вектору S до зашифрованного повідомлення додається передаване повідомлення С1. Ця процедура повторюється при передаванні кожного наступного 64 – розрядного блоку (рисунок 3.6)

Таким чином, останній блок шифртексту буде функцієй секретного ключа,

первісного вектору і кожного біту відкритого тексту, незалежно від його довжини. Цей блок називають кодом автентифікації повідомлення (КАП).

КАП можна легко здобути на стороні приймача шляхом повтору процедур, які виконуються на стороні передавача.

 

 
 

 

 


 

 

Рисунок. 3.6 - Режим "Зчеплення блоків шифру"

 

3.4.3 Режим „Зворотний зв’язок по шифру”

Цей режим допускає, щоб довжина блоку відрізнялась від 64 біт. Припустимо, що довжина блоків, на які розбивається послідовність, яку треба зашифрувати менше 64 біт (рисунок 3.7)