Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Стандарт шифрування DES

Предмет: 
Тип роботи: 
Лабораторна робота
К-сть сторінок: 
11
Мова: 
Українська
Оцінка: 

Лабораторна робота 2

Стандарт шифрування DES

 

Мета роботи – опанувати методику шифрування алгоритмами збивання. На прикладі DES здійснити шифрування. Усвідомити сильні сторони в застосуванні даного методу шифрування.

Теоретичні відомості

Алгоритм DES (data encryption standard) був державним стандартом США і здійснює шифрування 64-бітових блоків даних за допомогою 64-бітового ключа. Процес шифрування полягає в початковій перестановці бітів 64-бітового блоку і 16 циклах шифрування, а розшифрування – 16 циклах розшифрування і у кінцевій перестановці бітів.

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

Підключ – деяка ключова інформація, яка отримується з основного ключа шифрування. На кожному раунді використовується нове значення підключа Ki (довжиною 48 біт), яке обчислюється з початкового 64-бітового ключа K з 8 бітами контролю парності, розташованими в позиціях 8,16,24,32,40,48,56,64. Для вилучення контрольних бітів і підготовки ключа до роботи використовується функція PC1 первісної підготовки ключа. Докладно процес одержання підключей показано на рис 1.1.

Результат перетворення PC1(K) розбивається на дві половини C0 і D0 по 28 біт кожна. Перші чотири рядки матриці PC1 визначають, як вибираються біти послідовності C0, останні чотири рядки – послідовності D0. Для генерації послідовностей не використовуються біти 8,16,24,32,40,48,56 і 64 ключа шифру. Таким чином, у дійсності ключ шифру є 56-бітовим.

Після визначення С0 і D0 рекурсивно визначаються Сi і Di, i = 1, 2,..., 16.

Для цього застосовуються операції циклічного зрушення вліво на один чи два біти в залежності від номера кроку раунду, як показано в таблиці, що приведена в додатку. Ключ Ki, обумовлений на кожнім кроці раунду, є результатом вибору конкретних бітів з 56-бітової послідовності Сi Di, і їхньої перестановки згідно з таблицею PC2, яка наведена в додатку. Іншими словами, ключ Ki=PC2(Ci Di) [17].

 

Рис. 1.1. Цикл отримання підключів для кожного раунду

 

Процес шифрування виглядає в такий спосіб. Нехай з файлу вхідного тексту був прочитаний черговий 64-бітовий (8-байтовий) блок T. Цей блок T обробляється за допомогою матриці початкової перестановки IP: біти вхідного блоку (64 біта) переставляються відповідно до матриці IP [2]. Отримана послідовність бітів розділяється на 2 послідовності: L0-ліві старші біти, R0-праві молодші біти, кожна з яких містить 32 біта. Потім виконується ітеративний процес шифрування, що складається з 16 раундів. (рис 1.2) 

  

Рис 1.2. Структурна схема алгоритму DES

 

Нехай Ti- результат i-ого раунду: 

Ti=LiRi,(1.1)

де Li – перші 32 біта послідовності, Ri – останні 32 біта послідовності. Тоді результат i-ого раунду описується наступними формулами:

Li=Ri-1, i=1,2,3, …, 16,(1.2)

Ri=Li-1 xor f(Ri-1, Ki), i=1,2,3, …, 16.(1.3)

Функція f називається функцією шифрування. Її аргументами є послідовність Ri-1, одержувана на попередньому кроці раунду, і 48-бітовий підключ Ki, що є результатом перетворень 64-бітового ключа шифру K.

На останньому кроці раунду одержують послідовності R16 і L16, що об’єднуються в 64-бітову послідовність – здійснюється відновлення позицій бітів за допомогою матриці зворотної перестановки IP-1 [17]. Елементи матриць IP і IP-1 зв’язані між собою.

Тепер розглянемо, що ховається під перетворенням, позначеним літерою f. Для обчислення значення функції f використовуються:

функція E (розширення 32 біт до 48);

функція S1,S2, …,S8  (перетворення 6-бітового числа в 4-бітове);

функція P (перестановка бітів у 32-бітовій послідовності).

Приведемо визначення цих функцій і процес шифрування більш докладно.

1. Функція розширення E приймає блок з 32 біт і породжує блок з 48 біт, відповідно до матриці E.

2. Отриманий результат складається по модулю 2 (операція XOR) з поточним значенням ключа Ki і потім розбивається на вісім 6-бітових блоків B1,B2, …,B8... 

3. Далі кожний з цих блоків використовується як номер елемента у блоках S1,S2, …,S8, що мають 4-бітові значення. Нехай на вхід функції Sj надходить 6-бітовий блок Bj=b1b2b3b4b5b6, тоді двохбітове число b1b6 указує номер рядка матриці, а чотирьохбітове число b2b3b4b5 – номер стовпця в наступній таблиці.

Сукупність 6-бітових блоків B1,B2, …,B8 забезпечує вибір чотирьохбітового елемента в кожній з функцій S1,S2, …,S8... У результаті одержуємо S1(B1) S2(B2) … S8(B8), або 32-бітовий блок (оскільки матриці Sj містять 4-бітові елементи).

4. Цей 32-бітовий блок перетвориться за допомогою функції перестановки бітів P. Таким чином, функція шифрування f (Ri-1,Ki)=P (S1 (B1) S2 (B2) … S8 (B8))...

5. Далі випливає додавання по модулю 2 лівого підблока й результату перетворення правого підблока.

Процес розшифровування даних є інверсним стосовно процесу шифрування. Усі дії повинні бути виконані в зворотному порядку. Це означає, що дані, що розшифровуються, спочатку переставляються відповідно до матриці IP-1 ,а потім над послідовністю бітів R16L16 виконуються ті ж дії, що й у процесі шифрування, але в зворотному порядку.

Ітеративний процес розшифрування може бути описаний наступними формулами:

Ri=Li, i=1,2,3, …, 16,(1.4)

Li-1=Ri xor f (Li, Ki), i=1,2,3, …, 16. R16L 16(1.5)

Таким чином, для процесу розшифрування з

Фото Капча