DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт про виконання лабораторної роботи №3 «Алгоритм шифрування DES»

Оригінальна назва роботи

Алгоритм шифрування DES

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2008
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Методи та засоби криптологічних перетворень
Група:
ІБ – 44
Коротко про документ

Про що ця робота

Досліджено симетричні шифри на прикладі алгоритму DES. Проведено практичне шифрування та дешифрування блоку даних.

У роботі розглядаються

  • Криптографія
  • Симетричні шифри
  • Алгоритм DES
  • Блокові шифри
  • Ключі шифрування
  • Захист інформації

Зміст і розділи

  1. Мета
  2. Теоретичні відомості
  3. Результат виконання шифрування
  4. Висновок
Для кого:Студенти технічних спеціальностей
Викладачі:Викладач кафедри

Ключові поняття

DESшифруваннядешифруванняблокключциклкриптотекстS-блокиперестановкадвійковий код

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” Звіт про виконання лабораторної роботи №3 На тему: „ Алгоритм шифрування DES” З курсу: “Методи і засоби криптологічних перетворень” Львів 2008 Мета: дослідити симетричні шифри на прикладі алгоритму DES. Теоретичні відомості Стандарт шифрування даних (англійською Data Encryption Standard — DES) був розроблений у 70-х роках фахівцями з IBM і у 1976 році був прийнятий через NBS та ANSI у якості федерального стандарту Сполучених Штатів для захисту комерційної та урядової інформації, не пов’язаної з національною безпекою. Цим актом увінчався цілий етап у розвитку криптографії — майже одночасно з’явилися принципово нові криптосистеми з відкритим ключем, яким присвячено більшість подальших розділів цієї книжки. Спробуємо простежити уявний шлях від шифру одноразового блокноту до криптосистеми DES. Для цього нагадаємо дві основні харак3К3стики першого. З одного боку, шифр одноразового блокноту є абсолютно надійним, а з іншого, він далеко не завжди є практичним через велику довжину ключа. Тому перший крок є таким — довжина ключа має бути фіксованою, а шифрування має відбуватися блоками. Як і шифр одноразового блокноту, DES оперує з інформацією поданою у двійковій формі, а довжина блоку і довжина ключа вибрані рівними 64. Іншими словами, двійкове повідомлення М розбивають на блоки по 64 біти і шифрують кожен блок окремо, використовуючи один і той же двійковий ключ К довжини 64. Таким чином, повідомлення М = М1М2М3 … перетворюється у криптотекст С = С1С2С3…, де d — ЕK(Мi). У стандарті DES кожен блок криптотексту Сi також є двійковою послідовністю довжини 64. Звернемося до питання вибору алгоритму Е. Апріорно він повинен задовольняти три умови: можливість дешифрування: для будь-якого ключа K різним блокам повідомлення М’ і М» відповідають різні блоки криптотексту ЕK(М’) і ЕK(М»), інакше кажучи, алгоритм ЕK з будь-яким ключем здійснює перестановку двійкових послідовностей довжини 64; ефективність: і шифрування, і дешифрування відбуваються швидко; надійність: якщо ключ невідомий, то немає способу розкриття шифру. Останній пункт потребує принципового уточнення. Зрозуміло, що як би вдало алгоритм Е не був спроектований, надійність, що давалася шифром одноразового блокноту, вже буде недосяжною. Недосяжною з тої причини, що будь-який блоковий шифр можна зламати за допомогою брутальної атаки, яка у нашому випадку полягає в переборі всіх двійкових ключів К довжини 64. Про яку ж надійність йдеться? Зауважимо, що всього двійкових ключів довжини 64 є 264. Елементарні обчислення показують, що комп’ютер із тактовою частотою 100 MHz перебиратиме всі можливі ключі 264/108 секунд, тобто довше ніж 5800 років. Звичайно, повний перебір необхідний лише у найгіршому випадку. У середньому, потрібний ключ буде знайдено вдвічі швидше — приблизно за 2900 років — час, за який таємниця втратить актуальність. Якщо для шифру невідомо методу його ламання упродовж більш реалістичного терміну, то такий шифр вважають надійним в обчислювальному сенсі. Якщо ми хочемо отримати криптосистему надійну у такому новому розумінні, зразу відмовимось від наївної спроби вдосконалити шифр одноразового блокноту і покласти ЕK(Мi) = Мi,K. Таке шифрування є дуже швидке, але вкрай ненадійне. Для розкриття досить просумувати за модулем 2 криптотекст із самим собою, але зсунутим на 64 позиції. Із рівності КК=0 випливає, що результат буде тим же, що й при сумуванні повідомлення із самим собою зсунутим на ту ж кількість позицій. Із цієї інформації, яка вже ніяк не залежить від ключа, неважко отримати саме повідомлення, запорукою чого є феномен надлишковості будь-якої природної мови. Розробники стандарту DES пропонують наступну конструкцію (подальший опис алгоритму спрощено задля акцентування найважливіших фаз його роботи). Алгоритм E приймає на вхід двійковий блок М довжини 64 та використовує ключ К, з якого виділяються 16 частин K1,…,K16 по 48 бітів кожна. Це так звані циклові ключі. Блок М розбивається на дві рівні частини по 32 біти: ліву L0 та праву R0. Відбувається 16 циклів перетворення повідомлення М=L0R0. У і-му циклі (Lі-1, Rі-1) за допомогою Кі перетворюється у (Lі, Rі) наступним чином: Lі = Rі-1, R і = Lі-1f(Rі-1, Kі), де f — деяка функція, що перетворює двійкові послідовності довжини 80 у двійкові послідовності довжини 32. Насамкінець ліва та права частини міняються місцями, що і є результатом роботи алгоритму: ЕК(М) = R16Ll6. Описана процедура різні блоки М’ і М» перетворює у різні блоки 3К(М’) і Ек(М»), незалежно від вибору функції f. Більше того, якщо Ек1,…,к16(М) = С, то М = Ек1,…, к16{С), тобто дешифруючий алгоритм ідентичний із шифруючим, варто лише взяти послідовність ключів у зворотньому порядку. Функцію f стандарт DES пропонує такої форми: f(R,Ki) = s(e(R) Кi). Функція e розширює R із 32 бітів до 48, вставляючи копії деяких 16 позицій. Функція s перетворює двійкові послідовності довжини 48 у двійкові послідовності довжини 32. Вона реалізується так. Двійковий вхід А довжини 48 розбивається на 8 блоків А1 … A8 по 6 бітів і кожен блок Аi замінюється на деякий блок із 4 бітів шляхом застосування деякої функції s,. Кожна із цих 8-ми функцій реалізована незалежно від інших. Реалізації цих функцій називаються S-блоками. Після цього отримані 32 біти перемішуються згідно із деякою перестановкою р. Таким чином, s(A) = p(s1(A1) … S8(A8)), що й завершує опис алгоритму DES. Згідно із стандартом, описана нами процедура починається із переставлення бітів блоку М відповідно до фіксованої перестановки IP і завершується застосуванням до отриманого результату оберненої перестановки IP-1. Із 64 бітів ключа К алгоритм DES насправді використовує лише 56. Решта бітів можуть служити для перевірки неушкодженості даних при пересиланні ключа — з цією метою кожен восьмий біт покладають рівним сумі за модулем 2 попередніх семи. Результат виконання шифрування Ключ ABCDEF0123456789  Відкритий текст ABCDEFABCDEF1234   Initial KEY=ABCDEF0123456789 1010101111001101111011110000000100100011010001010110011110001001 SETTING ROUND KEYS Initially C=1000011101100110010101010000 D=0101010101100110100001110000 Key for round 1 C=0000111011001100101010100001 D=1010101011001101000011100000 K0=110001010111110000010010101100001010110000011010 Key for round 2 C=0001110110011001010101000010 D=0101010110011010000111000001 K1=000001000100001101101110100100110001010110001101 Key for round 3 C=0111011001100101010100001000 D=0101011001101000011100000101 K2=101000100101000100110101100010100001001110100001 Key for round 4 C=1101100110010101010000100001 D=0101100110100001110000010101 K3=100011010000101101100001010100100110101100100101 Key for round 5 C=0110011001010101000010000111 D=0110011010000111000001010101 K4=100000110111001010111001011100100000100110011000 Key for round 6 C=1001100101010100001000011101 D=1001101000011100000101010101 K5=100111010001011111000000110000010011000100011011 Key for round 7 C=0110010101010000100001110110 D=0110100001110000010101010110 K6=010100100101101011001001011001110011001000101000 Key for round 8 C=1001010101000010000111011001 D=1010000111000001010101011001 K7=000110011111000101000100011100000001100101101110 Key for round 9 C=0010101010000100001110110011 D=0100001110000010101010110011 K8=100101110010110000011100010111101100010100000100 Key for round 10 C=1010101000010000111011001100 D=0000111000001010101011001101 K9=010011100010011010010000100010000110010111001000 Key for round 11 C=1010100001000011101100110010 D=0011100000101010101100110100 K10=010111101001110000101100111010001111001000000001 Key for round 12 C=1010000100001110110011001010 D=1110000010101010110011010000 K11=110010101010000001001010111100100100011000101010 Key for round 13 C=1000010000111011001100101010 D=1000001010101011001101000011 K12=001010001100111000101110100111000001101100001010 Key for round 14 C=0001000011101100110010101010 D=0000101010101100110100001110 K13=111000000011100100001010100101000111001001110000 Key for round 15 C=0100001110110011001010101000 D=0010101010110011010000111000 K14=001000001010111001110001011100011010101001100000 Key for round 16 C=1000011101100110010101010000 D=0101010101100110100001110000 K15=101110001101000001010100010000101100001010011101 E N C R Y P T I O N input block=ABCDEFABCDEF1234 1010101111001101111011111010101111001101111011110001001000110100 Rounds 1 L=36C0B63F R=3FAD3F6D K1=110001010111110000010010101100001010110000011010 2 L=3FAD3F6D R=5E4C3E96 K2=000001000100001101101110100100110001010110001101 3 L=5E4C3E96 R=3A47E827 K3=101000100101000100110101100010100001001110100001 4 L=3A47E827 R=42211720 K4=100011010000101101100001010100100110101100100101 5 L=42211720 R=C090DC40 K5=100000110111001010111001011100100000100110011000 6 L=C090DC40 R=9755107F K6=100111010001011111000000110000010011000100011011 7 L=9755107F R=727D1D2D K7=010100100101101011001001011001110011001000101000 8 L=727D1D2D R=F7F666D6 K8=000110011111000101000100011100000001100101101110 9 L=F7F666D6 R=7F4EC556 K9=100101110010110000011100010111101100010100000100 10 L=7F4EC556 R=1FF7999E K10=010011100010011010010000100010000110010111001000 11 L=1FF7999E R=1501B315 K11=010111101001110000101100111010001111001000000001 12 L=1501B315 R=20FDFF4C K12=110010101010000001001010111100100100011000101010 13 L=20FDFF4C R=F62B50EE K13=001010001100111000101110100111000001101100001010 14 L=F62B50EE R=9BFB4549 K14=111000000011100100001010100101000111001001110000 15 L=9BFB4549 R=C1277BBA K15=001000001010111001110001011100011010101001100000 16 L=C1277BBA R=EC9C76B7 K16=101110001101000001010100010000101100001010011101 output block=020BFEA57BCE9CA7 0000001000001011111111101010010101111011110011101001110010100111 D E C R Y P T I O N input block=020BFEA57BCE9CA7 0000001000001011111111101010010101111011110011101001110010100111 Rounds 1 L=3454EC9A R=EC9C76B7 K16=101110001101000001010100010000101100001010011101 2 L=EC9C76B7 R=C1277BBA K15=001000001010111001110001011100011010101001100000 3 L=C1277BBA R=9BFB4549 K14=111000000011100100001010100101000111001001110000 4 L=9BFB4549 R=F62B50EE K13=001010001100111000101110100111000001101100001010 5 L=F62B50EE R=20FDFF4C K12=110010101010000001001010111100100100011000101010 6 L=20FDFF4C R=1501B315 K11=010111101001110000101100111010001111001000000001 7 L=1501B315 R=1FF7999E K10=010011100010011010010000100010000110010111001000 8 L=1FF7999E R=7F4EC556 K9=100101110010110000011100010111101100010100000100 9 L=7F4EC556 R=F7F666D6 K8=000110011111000101000100011100000001100101101110 10 L=F7F666D6 R=727D1D2D K7=010100100101101011001001011001110011001000101000 11 L=727D1D2D R=9755107F K6=100111010001011111000000110000010011000100011011 12 L=9755107F R=C090DC40 K5=100000110111001010111001011100100000100110011000 13 L=C090DC40 R=42211720 K4=100011010000101101100001010100100110101100100101 14 L=42211720 R=3A47E827 K3=101000100101000100110101100010100001001110100001 15 L=3A47E827 R=5E4C3E96 K2=000001000100001101101110100100110001010110001101 16 L=5E4C3E96 R=3FAD3F6D K1=110001010111110000010010101100001010110000011010 output block=ABCDEFABCDEF1234 1010101111001101111011111010101111001101111011110001001000110100 Висновок: під час виконання даної лабораторної роботи ми ознайомилися з алгоритмом шифрвання DES та за допомогою програмної реалізації даного коду зашифрували 16-розрядне повідомлення ABCDEFABCDEF1234 за допомогою ключа ABCDEF0123456789 та отримали як результат зашифрований текст 020BFEA57BCE9CA7.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!