рефераты рефераты
Главная страница > Дипломная работа: Криптографічні методи захисту інформації  
Дипломная работа: Криптографічні методи захисту інформації
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Дипломная работа: Криптографічні методи захисту інформації

Мережа Фейстеля (конструкція Фейстеля) - один з методів побудови блокових шифрів. Мережа являє собою певну багаторазову структуру що повторюється (ітерована) і називається осередком Фейстеля. При переході від однієї комірки до іншої змінюється ключ, причому вибір ключа залежить від конкретного алгоритму. Операції шифрування та розшифрування на кожному етапі дуже прості, і при певній доробці збігаються, вимагаючи тільки зворотного порядку використовуваних ключів. Шифрування за допомогою даної конструкції легко реалізується як на програмному рівні, так і на апаратному, що забезпечує широкі можливості застосування. Більшість сучасних блокових шифрів використовують мережу Фейстеля в якості основи. Альтернативою мережі Фейстеля є узагальнення-перестановочне мережу. [18]

У 1971 Хорст Фейстель (Horst Feistel) запатентував два пристрої, які реалізували різні алгоритми шифрування, названі потім загальною назвою «Люцифер» (Lucifer). Одне з пристроїв використовувало конструкцію, згодом названу «мережею Фейстеля» («Feistel cipher», «Feistel network»). Робота над створенням нових криптосистем велася ним у стінах IBM разом з Доном Копперсмітом (Don Coppersmith). Проект «Люцифер» був скоріше експериментальним, але став базисом для алгоритму Data Encryption Standard (DES). У 1973 Хорст Фейстель в журналі Scientific American опублікував статтю «Криптографія і Комп'ютерна безпека» [1] [2] («Cryptography and Computer Privacy»), в якій розкрив ряд важливих аспектів шифрування і привів опис першої версії проекту «Люцифер» , не використала мережу Фейстеля. У 1977 DES став стандартом у США на шифрування даних, і до останнього часу широко використовувався в криптографічних системах. Ітеративний структура алгоритму дозволяла спростити його реалізацію у програмних і апаратних середовищах. Згідно з деякими даними вже в 1970-і роки в КДБ (СРСР) розроблявся блоковий шифр, що використав мережу Фейстеля і, ймовірно, саме він пізніше був прийнятий як ГОСТ 28147-89 в 1990 році. [14]

У 1987 були розроблені алгоритми FEAL і RC2 . Широке поширення мережі Фейстеля отримали в 1990-і роки, коли з'явилися такі алгоритми, як: Blowfish, CAST-128, TEA, XTEA, XXTEA, RC5, RC6 та ін.

Розглянемо випадок, коли ми хочемо зашифрувати деяку інформацію, представлену в двійковому вигляді в комп'ютерної пам'яті (наприклад, файл ) або електроніці, як послідовність нулів і одиниць (рис. 1.3).

·  Вся інформація розбивається на блоки фіксованої довжини. У разі, якщо довжина вхідного блоку менше, ніж розмір, який шифрується заданим алгоритмом, то блок подовжується будь-яким способом. Як правило довжина блоку є ступенем двійки, наприклад: 64 біта, 128 біт. Далі будемо розглядати операції відбуваються тільки з одним блоком, тому що з іншими в процесі шифрування виконуються ті ж самі операції.

·  Обраний блок ділиться на два рівних подблока - «лівий» (L0) і «правий» (R0).

·  «Лівий подблок» L0 видозмінюється функцією f (L0, K0) залежно від раундового ключа K0, після чого він складається за модулем 2 з «правим подблоком» R0.

·  Результат складання присвоюється новому лівому подблоку L1, який буде половиною вхідних даних для наступного раунду, а «лівий подблок» L 0 присвоюється без змін новому правому подблоку R 1 (див. схему), який буде іншою половиною.

·  Після чого операція повторюється N-1 раз, при цьому при переході від одного етапу до іншого змінюються раундовий ключі (K0 на K1 і т. д.) за будь-яким математичному правилом, де N - кількість раундів в заданому алгоритмі.

·  Розшифровка інформації відбувається так само, як і шифрування, з тим лише виключенням, що ключі ідуть у зворотному порядку, тобто не від першого до N-го, а від N-го до першого (рис. 1.4).

Рис. 1.3 Шифрування

Рис. 1.4 Розшифрування

Конструкцію Фейстеля можна описати так:

·  блок відкритого тексту ділиться на 2 рівні частини

·  в кожному раунді обчислюється ( Описание: i = 1 \ ldots n— номер раунду)

Описание: L_i \ = \ R_ (i-1) \ oplus f (L_ (i-1), K_ (i-1))

Описание: R_i \ = \ L_ (i-1),

де f - деяка функція, а K i - 1 ключ i-го раунду.

Результатом виконання n раундів є Описание: (L_n, \ R_n). Але зазвичай в n-му раунді перестановка L n і R n не проводиться, що дозволяє використовувати ту ж процедуру і для розшифрування, просто інвертувати порядок використання раундової ключової інформації:

Описание: L_ (i-1) \ = \ R_ (i) \ oplus f (L_ (i), \ K_ (i-1))

Описание: R_ (i-1) \ = \ L_i,

Невеликою зміною можна добитися і повної ідентичності процедур шифрування і дешифрування. Одна з переваг такої моделі - оборотність алгоритму незалежно від використовуваної функції f, і вона може бути як завгодно складною.

Математичний опис опис полягає в наступному. Інволюція - взаємно-однозначне перетворення, яке є зворотним самому собі. Розглянемо на прикладі: Нехай X - вхідний блок, а A - деякий інволютивно перетворення, Y - результат. При одноразовому застосуванні перетворення до вхідного блоку вийде: Y = A X, при застосуванні перетворення до результату попереднього перетворення вийде:

Описание: AY = A ^ 2X = AAX = X \ forall X.

Нехай вхідний блок X = (L, R) складається з двох підблоків (L і R) однакової довжини. Визначимо два перетворення

Описание: G (X, K) = (L \ oplus F (K, R), R) 

(шифрування ключем K) і T (L, R) = (R, L) (перестановкапідблоків). Введемо позначення:

Описание: \ Tilde (X) = (\ tilde (L), \ tilde (R)) = GX, \ \ tilde (\ tilde (X)) = (\ tilde (\ tilde (L)), \ tilde (\ tilde ( R))) = G ^ 2X

Доведемо їх інволютивно:

1.  Нескладно помітити, що перетворення G міняє лише лівий підблок L, залишаючи правий R незмінним. Тому далі будемо розглядати тільки підблок L. Після того як перетворення G буде двічі застосовано до L отримаємо:


2.  Описание: \ Tilde (\ tilde (L)) = \ tilde (L) \ oplus F (K, \ tilde (R)) = \ tilde (L) \ oplus F (K, R) = L \ oplus F (K, R ) \ oplus F (K, R) = L

Таким чином G2 X = X, отже G - інволюція.

3.  T2 X = T 2 (L,R) = T (R,L) = (L,R ) = X.

Розглянемо сам процес шифрування. Визначимо X як вхідний значення. Нехай Gi - перетворення з ключем Ki, а Yi - вихідне значення після i-го раунду. Тоді перетворення на i +1- му раунді можна записати у вигляді

Yi+1 = T Gi Yi,

крім першого, де

Y1 = T G1 X

Отже, вихідне значення після m раундів шифрування буде

Описание: Y_m = TG_mY_ (m-1) = TG_mTG_ (m-1) \ ldots TG_1X.

Можна помітити, що на останньому етапі не обов'язково виконувати перестановку T.

Розшифрування ведеться застосуванням всіх перетворень у зворотному порядку. У силу інволютивно кожного з перетворень зворотний порядок дає вихідний результат:

Описание: X = G_1TG_2T \ ldots G_ (m-1) TG_mT (Y_m) = G_1TG_2T \ ldots G_ (m-1) T (Y_ (m-1)) = \ ldots = G_1T (Y_1) = X [16]

У своїй роботі «Криптографія і Комп'ютерна безпека» Хорст Фейстель описує два різних блоку перетворень (функцій Описание: f (L_ (i), \ K_ (i))) — блок підстановок (S-блок) та блок перестановок (P-блок). Можна показати, що будь-яке бінарне перетворення над двійковим блоком фіксованої довжини, зводяться до S-блоку, але на практиці в силу складності будови n-розрядного S-блоку при великих n, застосовують більш прості конструкції. Термін «блок» в оригінальній статті використовується замість функції внаслідок того, що мова йде про блокове шифрі і передбачалося, що S-і P-блоки будуть цифровими мікросхемами (цифровими блоками).

Блок підстановок (S-блок) складається з дешифратора, що перетворює n-розрядний двійковий сигнал у однорозрядної сигнал по підставі 2n, системи комутаторів внутрішніх з'єднань (усього з'єднань 2n!) і шифратора , переводить сигнал з однорозрядною 2n-річно в n- розрядний двійковий. Аналіз n-розрядного S-блоку при великому n вкрай складний, проте реалізувати такий блок на практиці дуже складно, так як число можливих з'єднань вкрай велике (2n!). На практиці блок підстановок використовується як частина більш складних систем (Рис. 1.5).

У загальному випадку S-блок може мати неспівпадаючі число входів/виходів, в цьому випадку в системі комутації від кожного виходу дешифратора може йти не строго одне з'єднання, а 2 або більше чи не йти зовсім. Те ж саме справедливо і для входів шифратора. [14]

Описание: G:\ua\translate_files\translate_p_data\405px-S-block.png

Рис. 1.5 Принципова схема 3-розрядного S-блоку

В електроніці можна безпосередньо застосовувати наведену схему, в програмуванні ж генерують таблиці заміни. Обидва цих підходу є еквівалентними, тобто файл, зашифрований на комп'ютері, можна розшифрувати на електронному пристрої і навпаки. [21]

Страницы: 1, 2, 3, 4, 5, 6, 7

рефераты
Новости