Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Криптографія для забезпечення конфіденційності інформації

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Насправді операції зведення в ступінь великих чисел досить трудомісткі для сучасних процесорів, навіть якщо вони проводяться за оптимізованими за часом алгоритмами. Тому зазвичай весь текст повідомлення кодується звичайним блоковим шифром (набагато більш швидким), але з використанням ключа сеансу, а от сам ключ сеансу шифрується якраз асиметричним алгоритмом за допомогою відкритого ключа… Читати ще >

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

Серед всього спектру методів захисту даних від небажаного доступу особливе місце займають криптографічні методи.

Криптографічний захист інформації - вид захисту інформації, що реалізується шляхом перетворення інформації з використанням спеціальних (ключових) даних з метою приховування/відновлення змісту інформації, підтвердження її справжності, цілісності, авторства тощо [4].

Тривалий час під криптографією розумілось лише шифрування — процес перетворення звичайної інформації (відкритого тексту) в незрозуміле «сміття» (тобто, шифротекст). Розшифрування — це обернений процес відтворення інформації із шифротексту. Шифром називається пара алгоритмів шифрування/розшифрування. Дія шифру керується як алгоритмами, та і в кожному випадку ключем.

Ключ — це секретний параметр (в ідеалі, відомий лише двом сторонам) для окремого контексту під час передачі повідомлення. Ключі мають велику важливість, оскільки без змінних ключів алгоритми шифрування легко зламуються і непридатні для використання в більшості випадків. Історично склалось так, що шифри часто використовуються для шифрування та дешифрування, без виконання додаткових процедур, таких як автентифікація або перевірка цілісності [5].

До нашого часу криптографія займалася виключно забезпеченням конфіденційності повідомлень (тобто шифруванням) — перетворенням повідомлень із зрозумілої форми в незрозумілу і зворотнє відновлення на стороні одержувача, роблячи його неможливим для прочитання для того, хто перехопив або підслухав без секретного знання (а саме ключа, необхідного для розшифрування повідомлення). В останні десятиліття сфера застосування криптографії розширилася і включає не лише таємну передачу повідомлень, але і методи перевірки цілісності повідомлень, ідентифікування відправника/одержувача (автентифікація), цифрові підписи, інтерактивні підтвердження, та технології безпечного спілкування, тощо.

Класифікація криптоалгоритмів

Симетричні криптоалгоритми

Симетричні криптосистеми — спосіб шифрування, в якому для шифрування і дешифрування застосовується один і той же криптографічний ключ. До винаходу схеми асиметричного шифрування єдиним існуючим способом було симетричне шифрування. Ключ алгоритму повинен зберігатися в секреті обома сторонами [6].

Симетричні криптоалгоритми виконують перетворення невеликого (1 біт або 32−128 біт) блоку даних в залежності від ключа таким чином, що прочитати оригінал повідомлення можна тільки знаючи цей секретний ключ.

Потокові шифри

Головною відмінною рисою потокових шифрів є побітна обробка інформації. Як наслідок, шифрування і дешифрування в таких схемах може обриватися в довільний момент часу, як тільки з’ясовується, що потік що передається перервався, і також відновлюється при виявленні факту продовження передачі. Подібна обробка інформації може бути представлена у вигляді автомата, який на кожному своєму такті:

  • · генерує за будь-яким законом один біт шифрувальної послідовності;
  • · яким-небудь оборотним перетворенням накладає на один біт відкритого потоку даний шифрувальний біт, отримуючи зашифрований біт.

Всі сучасні потокові шифри діють за даною схемою. Біт шифрування, що виникає на кожному новому кроці автомата, як втім і цілий набір таких біт, прийнято позначати символом г (гамма), а самі потокові шифри отримали через це друга назва — шифри гамування.

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

Ключ є необхідною частиною гаммуючого шифру. Якщо ключ і схема породження гами не є секретним, то поточний шифр перетворюється на звичайний перетворювач-кодер — скремблер (від англ. Scramble — перемішувати, збивати).

Блочні шифри

На сьогоднішній день розроблено досить багато стійких блокових шифрів. Практично всі алгоритми використовують для перетворень певний набір бієктивних (оборотних) математичних перетворень [7].

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

Блочні шифри є основою, на якій реалізовані практично всі криптосистеми. Методика створення ланцюжків із зашифрованих блочними алгоритмами байт дозволяє шифрувати ними пакети інформації необмеженої довжини. Таку властивість блокових шифрів, як швидкість роботи, використовується асиметричними криптоалгоритмами, повільними за своєю природою. Відсутність статистичної кореляції між бітами вихідного потоку блочного шифру використовується для обчислення контрольних сум пакетів даних і в хешуванні паролів.

Архівація

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

Всі алгоритми стиснення даних якісно діляться на:

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

Хешування паролів

Для того, щоб не змушувати людину запам’ятовувати ключ — довгу послідовність цифр, були розроблені методи перетворення рядка символів будь-якої довжини (так званого пароля) в блок байт заздалегідь заданого розміру (ключ). На алгоритми, що використовуються в цих методах, накладаються вимоги, які можна порівняти з вимогами самих криптоалгоритмів.

Цей метод і використовується в різних варіаціях практично у всіх сучасних криптосистемах. Матеріал рядка-пароля багаторазово послідовно використовується як ключ для шифрування деякого заздалегідь відомого блоку даних — на виході виходить зашифрований блок інформації, однозначно залежить тільки від пароля і при цьому має досить гарні статистичні характеристики. Такий блок або кілька таких блоків і використовуються як ключ для подальших криптоперетворень.

Асиметричні криптоалгоритми

Асиметричні алгоритми шифрування — алгоритми шифрування, які використовують різні ключі для шифрування та розшифрування даних.

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

Алгоритм RSA

Алгоритми RSA є класикою асиметричної криптографії. У ньому в якості необоротного перетворення відправки використовується зведення цілих чисел у великі ступеня за модулем.

Першим етапом будь-якого асиметричного алгоритму є створення пари ключів: відкритого та закритого, та поширення відкритого ключа «по всьому світу» .

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

Електронний цифровий підпис

Як виявилося, теорія асиметричного шифрування дозволяє дуже красиво вирішувати ще одну проблему інформаційної безпеки — перевірку справжності автора повідомлення. Для вирішення цієї проблеми за допомогою симетричної криптографії була розроблена дуже трудомістка і складна схема. У той же час за допомогою, наприклад, того ж алгоритму RSA створити алгоритм перевірки дійсності автора та незмінності повідомлення надзвичайно просто.

Порівняння симетричних криптосистем з асиметричними

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

Переваги симетричних криптосистем:

  • · Швидкість (за даними Applied Cryptography — на 3 порядки вище);
  • · Простота реалізації (за рахунок більш простих операцій);
  • · Менша необхідна довжина ключа для порівнянної стійкості;
  • · Вивченість (за рахунок більшого віку).

Недоліки симетричних криптосистем:

  • · Складність управління ключами у великій мережі. Це означає квадратичне зростання числа пар ключів, які треба генерувати, передавати, зберігати і знищувати в мережі. Для мережі в 10 абонентів потрібно 45 ключів, для 100 вже 4950, для 1000 — 499 500 і т. д.
  • · Складність обміну ключами. Для застосування необхідно вирішити проблему надійної передачі ключів кожному абоненту, тому що потрібен секретний канал для передачі кожного ключа сторонам [8].

Огляд сучасних легковісних криптоалгоритмів

До легковісної криптографії відносяться алгоритми, що розробляються спеціально для пристроїв з обмеженими або вкрай обмеженими обчислювальними ресурсами. В принципі критерії, за якими той чи інший криптографічний алгоритм можна віднести до полегшеної криптографії, досить розмиті. Проте загальні властивості таких алгоритмів — наднизькі вимоги до ресурсів того пристрою, на якому передбачається їх використовувати.

Алгоритм KATAN

KATAN — сімейство алгоритмів шифрування KATAN32, KATAN48, KATAN64. Число в назві алгоритму позначає розмір блоку шифрованих даних в бітах. Всі алгоритми використовують 80-бітовий ключ шифрування.

Будь-який з алгоритмів KATAN завантажує шифрований блок даних в два зсувних регістра, що утворюють внутрішній стан алгоритму (тобто якесь проміжне значення, залежне від блоку даних і ключа шифрування; саме воно і обробляється алгоритмом в процесі шифрування). Шифрування складається з 254 раундів, в кожному з яких використовуються нелінійні функції, що формують зворотний зв’язок регістрів [9].

Алгоритм PRESENT

Алгоритм PRESENT виконує 31 раунд перетворень. Розмір блоку даних — 64 біта. Підтримуються ключі розміром 80 і 128 бітів.

Кожен раунд шифрування складається з трьох рівнів (рис. 1.1):

  • · рівень накладення фрагмента ключа операцією XOR;
  • · рівень розсіюючих перетворень, де виконується паралельна заміна 4-бітових фрагментів стану за допомогою ідентичних таблиць замін S;
  • · рівень перемішуючих перетворень, що здійснює бітову перестановку аналогічно колишньому стандарту шифрування DES.
Раунд шифрування алгоритму Present.

Рис. 1.1. Раунд шифрування алгоритму Present.

Алгоритм Hummingbird

Алгоритм Hummingbird шифрує дані 16-бітовими блоками з використанням 256-бітового ключа. В основу цього алгоритму покладено оригінальну гібридну архітектура. Процедура шифрування може бути представлена?? у вигляді безперервної роботи роторної машини, де в ролі чотирьох віртуальних роторів виступають чотири алгоритму шифрування, що виконують операції над короткими 16-бітовими блоками даних. Основними компонентами алгоритму є:

  • · перетворення, що представляє собою «внутрішній» 16-бітовий алгоритм шифрування; він виконує чотири раунди перетворень, в кожному з них здійснюються накладення ключа, таблична заміна і бітова перестановка;
  • · чотири регістри внутрішнього стану;
  • · додатковий 16-розрядний зсувний регістр з лінійною зворотним зв’язком.

В алгоритмі активно використовуються операції додавання по модулю 216, за допомогою яких значення регістрів стану накладаються на блоки шифрованих даних. Фактично високорівневу структуру алгоритму можна представити як чотирьохраундовий шифр з різними операціями зворотного зв’язку [9].

Алгоритм Curupira

Одним з авторів алгоритму Curupira є Вінсент Ріджмен (Vincent Rijmen), який входить до числа творців AES, сучасного стандарту шифрування США. Curupira дещо схожий на AES, тільки в ньому використовуються більш прості операції, а також у нього менший внутрішній стан, розмір якого всього 96 біт, а не 128 бітів, як у алгоритму AES.

Curupira шифрує дані 96-бітовими блоками з використанням ключа одного з наступних фіксованих розмірів: 96, 144 і 192 біта. Блок даних представляється у вигляді байтового масиву розміром 3 X 4 (це і є внутрішній стан алгоритму), над яким у кожному раунді виконується наступна послідовність операцій:

  • · таблична заміна кожного байту стану (рис. 1.2);
  • · байтова перестановка в межах рядків масиву стану;
  • · розсіююче перетворення, що виконується шляхом множення фіксованої матриці на стан алгоритму;
  • · накладення операцією XOR ключа шифрування на стан певного

фрагмента.

Кількість раундів алгоритму не є строго визначеною. Для кожного розміру ключа передбачено мінімальне і максимальне число раундів: від 10 для 96-бітового ключа до 23 для 192-бітового. Перед першим раундом на блок даних операцією XOR накладається перший фрагмент ключа, а в останньому раунді не виконується розсіююче перетворення [9].

Приклад табличної заміни кожного байту.

Рис 1.2. Приклад табличної заміни кожного байту.

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

Легковісні криптоалгоритми. Табл. 1.1

Назва алгоритму.

Розмір блоку.

Розмір ключа.

Кількість раундів.

1. Katan.

32, 48, 64.

2. Present.

80, 128.

3. Hummingbird.

4. Curupira.

96, 144, 192.

10−23.

Із наведеної вище статистики можна зробити висновок, що алгоритм Curupira має найбільш широкий вибір конфігурацій, і він є одним із найскладніших із легковісних алгоритмів. Тому в додатку буде використаний саме він.

Показати весь текст
Заповнити форму поточною роботою