Міністерство освіти і науки Російської Федерації
Федеральне агентство з освіти
Технологічний інститут Федерального державного освітнього закладу вищої професійної освіти
Південний федеральний університет
Факультет інформаційної безпеки
Кафедра БІТ
Пояснювальна записка
до курсового проекту
на тему:
Програмна реалізація алгоритму шифрування DES . Режим ОСВ
з дисципліни
Програмно-апаратні засоби захисту інформації
Перевірив
Г.А. Євстаф'єв
Таганрог 2010
ЗМІСТ
Введення
1. Опис алгоритму
2. Основні режими роботи алгоритму DES
3. Розробка програмної реалізації алгоритму
Висновок
Список використаних джерел
Додаток А
Введення
Симетричні криптосистеми (також симетричне шифрування, симетричні шифри) - спосіб шифрування, в якому для (за) шифрування і розшифрування застосовується один і той же криптографічний ключ. До винаходу схеми асиметричного шифрування єдиним існуючим способом було симетричне шифрування. Ключ алгоритму повинен зберігатися в секреті обома сторонами. Ключ алгоритму вибирається сторонами до початку обміну повідомленнями.
Алгоритми шифрування і дешифрування даних широко застосовуються в комп'ютерній техніці в системах приховування конфіденційної і комерційної інформації від не коректного використання сторонніми особами. Головним принципом у них є умова, що передавач і приймач заздалегідь знають алгоритм шифрування, а також ключ до повідомлення, без яких інформація являє собою всього лише набір символів, що не мають сенсу.
Класичним прикладом таких алгоритмів є симетричні криптографічні алгоритми, перераховані нижче:
- проста підстановка;
- одиночна перестановка по ключу;
- подвійна перестановка;
- перестановка "Магічний квадрат ";
- проста перестановка.
Повна втрата всіх статистичних закономірностей вихідного повідомлення є важливою вимогою до симетричного шифру. Для цього шифр повинен мати В«ефект лавиниВ» - має відбуватися сильне зміна шіфроблока при 1бітном зміні вхідних даних (в ідеалі повинні змінюватися значення 1/2 біт шіфроблока).
Також важливою вимогою є відсутність лінійності (тобто умови
а (ф) чщк а (і) = а (ф чщк і)) б
в іншому випадку полегшується застосування диференціального криптоаналізу до шифру.
В даний час симетричні шифри - це:
- блокові шифри. Обробляють інформацію блоками певної довжини (зазвичай 64, 128 біт), застосовуючи до блоку ключ в установленому порядку, як правило, кількома циклами перемішування і підстановки, званими раундами. Результатом повторення раундів є лавинний ефект - наростаюча втрата відповідності бітів між блоками відкритих і зашифрованих даних.
- потокові шифри, в яких шифрування проводиться над кожним бітом або байтом вихідного (відкритого) тексту з використанням гамування. Потоковий шифр може бути легко створений на основі блочного (Наприклад, ГОСТ 28147-89 в режимі гамування), запущеного в спеціальному режимі.
Існує безліч (не менше двох десятків) алгоритмів симетричних шифрів, істотними параметрами яких є:
- стійкість;
- довжина ключа;
- число раундів;
- довжина оброблюваного блоку;
- складність апаратної/програмної реалізації;
- складність перетворення.
В даному курсовому проекті пропонується програмна реалізація алгоритму шифрування DES (режим ЕСВ).
1. Опис алгоритму
Стандарт шифрування даних DES опублікований в 1977 р. Національним бюро стандартом США.
Стандарт DES призначений для захисту від несанкціонованого доступу до важливої, але несекретної інформації в державних і комерційних організаціях США. Алгоритм, покладений в основу стандарту, поширювався досить швидко, і вже в 1980 р. Був схвалений Національним інститутом стандартів і технологій США. З цього моменту DES перетворюється на стандарт не тільки за назвою, але і фактично. З'являються програмне забезпечення та спеціалізовані мікроЕОМ, призначені для шифрування й розшифрування інформації в мережах передачі даних.
До теперішнього часу DES є найбільш поширеним алгоритмом, використовуваним в системах захисту комерційної інформації. Більш того, реалізація алгоритму DES в таких системах стає ознакою хорошого тону.
Основні переваги алгоритму DES:
- використовується тільки один ключ довжиною 56 біт;
- зашифрувавши повідомлення за допомогою одного пакету програм, для розшифровки можна використовувати будь-який інший пакет програм, відповідний стандарту DES;
- відносна простота алгоритму забезпечує високу швидкість обробки;
- достатньо висока стійкість алгоритму.
Спочатку метод, який лежить в основі стандарту DES, був розробив фірмою IBM для своїх цілей і реалізований у вигляді системи В«ЛюциферВ». Система В«ЛюциферВ» заснована на комбінуванні методів підстановки і перестановки і складається з чергується послідовності блоків перестановки і підстановки. У ній використовувався ключ довжиною 128 біт, який керував станами блоків перестановки і підстановки. Система В«ЛюциферВ» виявилася досить складною для практичної реалізації через відносно малій швидкості шифрування.
Алгоритм DES також використовує комбінацію підстановок і перестановок. DES здійснює шифрування 64-бітових блоків даних за допомогою 64-бітового ключа, в якому значущими є 56 біт (решта 8 біт-перевірочні біти для контролю на парність). Дешифрування в DES є операцією, зворотною шифруванню, і виконується шляхом повторення операцій шифрування в зворотній послідовності. Узагальнена схема процесу шифрування в алгоритмі DES показана на малюнку 1.
Рисунок 1 - Узагальнена схема шифрування в алгоритмі DES
Слід зазначити, що всі приводяться таблиці, є стандартними, і повинні включатися в реалізацію алгоритму в незмінному вигляді.
Всі перестановки і коди в таблицях підібрані розробниками таким чином, щоб максимально утруднити процес розшифровки шляхом підбору ключа. Опис алгоритму приведено на малюнку 2.
Малюнок 2 - Структура алгоритму шифрування DES
Нехай з файлу вихідного тексту лічений черговий 64-бітовий блок Т. Цей блок Т перетвориться з допомогою матриці початкової перестановки IP (таблиця 1).
Таблиця 1
Матриця початковій перестановки IP
58 50 42 34 26 18 10 02
60 52 44 36 28 20 12 04
62 54 46 38 30 22 14 06
64 56 48 40 32 24 16 08
57 49 41 33 25 17 09 01
59 51 43 35 27 19 11 03
61 53 45 37 29 21 13 05
63 55 47 39 31 23 15 07
Біти вхідного блоку Т переставляються відповідно до матрицею IP: біт 58 вхідного блоку Т стає бітом 1, біт 50-бітом 2 і т.д. Цю перестановку можна описати виразом Т 0 = IP (T). Отримана послідовність бітів Т 0 поділяється на дві послідовності: L 0 - ліві і старші біти, R 0 - праві і молодші біти, кожна з яких містить 32 біта .
Потім виконується ітеративний процес шифрування, що складається з 16 циклів. Нехай T i -результат I-й ітерації:
T i = L i R i ,
де L i = t 1 t 2 ... t 32 ; R i = t 33 t 34 ... t 64. Тоді результат I-й ітерації описується наступними формулами:
L i = Ri -1 , i = 1,2, ..., 16;
R i = L i-1 xor f (R i-1 , K i ), i = 1,2, ..., 16. <...