Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ECB - Electronic Codebook (електронна шифрувальна книга)
ECB є найпростішим режимом шифрування, коли відкритий текст обробляється блоками по 64 біта, кожен з яких шифрується з одним і тим же ключем (рис. 1). Найважливішою особливістю цього режиму є те, що однакові 64-бітові блоки відкритого тексту, якщо такі зустрічаються у вихідному повідомленні, у зашифрованому тексті також будуть представлені однаковими блоками. Тому при передачі досить довгих повідомлень режим ECB може не забезпечити необхідний рівень захисту інформації. При розбитті вихідного повідомлення на блоки, до останнього блоку додається заповнювач, якщо його довжина не дорівнює 64 біта. CBC - Cipher Block Chaining (зчеплення шифрованих блоків) Режим CBC вирішує проблему однакових шифрованих блоків відповідних однаковим блокам відкритого тексту. Цього домагаються за допомогою режиму зчепленого шифрування. Вхідний значення алгоритму шифрування задається XOR-сумою поточного блоку відкритого тексту і отриманого на попередньому кроці блоку шифрованого тексту. Дешифрування відбувається за аналогічною схемою: блок відкритого тексту виходить як XOR-сума вихідного блоку алгоритму дешифрування і попереднього блоку шифрованого тексту. Щоб отримати перший блок шифрованого тексту, розглядається XOR-сума деякого ініціалізаційний вектора (IV) і першого блоку відкритого тексту. При дешифрування, для відновлення першого блоку відкритого, необхідно також виконати операцію XOR по відношенню до того ж вектору IV і першого блоку на виході алгоритму дешифрування. У зв'язку з цим значення IV, також як і ключ шифрування, повинно бути відомо як відправнику, так і одержувачу повідомлення. CFB - Cipher Feedback (шифрована зворотній зв'язок) Алгоритм шифрування DES є блоковим шифром з розміром блоку 64 біта. Але його можна перетворити до потокового шифру, використовуючи режим CFB або OFB. Це позбавляє від необхідності доповнювати повідомлення до кратності 64 бітам, а також дозволяє використовувати цей алгоритм у системах реального часу, де дані необхідно шифрувати і передавати далі по мірі їх надходження. Передбачається, що одиницею передачі даних є j бітів (зазвичай це значення дорівнює 8). Як і в режимі CBC, відбувається зчеплення елементів відкритого тексту, тому шифрований текст, що відповідає будь-якому елементу відкритого тексту, буде залежати від усіх попередніх елементів відкритого тексту. Розглянемо процес шифрування. На вході функції шифрування розміщується 64-бітовий регістр зсуву, який спочатку містить деяке значення ініціалізаційний вектора (IV). Після шифрування значення даного регістра, беруться його крайні зліва j бітів, які складаються операцією XOR з першими j бітами відкритого (P1), що в результаті дає j бітів шифрованих даних (C1). Далі значення регістра зсуву зміщується вліво на j бітів, а крайні справа j бітів заміщуються значенням C1. Потім весь процес повторюється до тих пір, поки не зашифруйте всі дані. Для дешифрування використовується та ж схема, але для отримання чергової порції відкритого тексту за допомогою операції XOR складаються шифровані дані та одержані на виході функції шифрування дані. OFB - Output Feedback (зворотній зв'язок з виходу) Даний режим багато в чому подібний до режиму CFB, за винятком того, що в регістр зсуву подаються крайні ліві j бітів результату функції шифрування, а не порція шифрованого тексту. Режим OFB, в порівнянні з CFB, володіє тим перевагою, що вплив можливих спотворень бітів при передачі даних не поширюється на наступні порції даних. З іншого боку, цей режим забезпечує меншу захист даних, ніж CFB. Стандарт шифрування RC5. RC5— це алгоритм симетричного шифрування, розроблений Роном Райвестом в середині 90-х років. Характеристики Під час розробки RC5 ставилося завдання досягти наступних характеристик: · Придатність для апаратної та програмної реалізації. В RC5 використовуються тільки елементарні обчислювальні операції, які зазвичай застосовуються в мікропроцесорах. · Швидкість виконання. RC5 є простим алгоритмом, що працює з даними розміром в машинне слово. Усі основні операції передбачають також роботу з даними довжиною в слово. · Адаптованість до процесорів з різною довжиною слова. Довжина слова в бітах є параметром RC5 — при зміні довжини слова змінюється сам алгоритм. · Змінна кількість раундів. Кількість раундів є другим параметром RC5. Цей параметр дозволяє обрати оптимальне співвідношення між швидкістю роботи та ступенем захисту. · Змінна довжина ключа. Довжина ключа є третім параметром RC5. Як і в попередньому випадку, цей параметр дозволяє знайти прийнятний компроміс між швидкістю роботи та необхідним рівнем безпеки. · Простота. Структура RC5 дуже проста не тільки для реалізації, але й для оцінки її криптоаналітичної стійкості. · Низькі вимоги до пам'яті. Низькі вимоги до пам'яті роблять RC5 придатним для використання в смарт-картах та інших подібних пристроях з обмеженим обсягом пам'яті. · Високий ступінь захисту. RC5 покликаний забезпечити високий ступінь захисту за умови вибору відповідних значень параметрів. · Залежність циклічних зсувів від даних. В RC5 використовуються циклічні зсуви, величина яких залежить від даних, що має підвищувати криптоаналітичну стійкість алгоритму. Параметри алгоритму RC5
Райвест пропонує використовувати RC5-32/12/16 в якості «стандартної» версії RC5. В алгоритмі RC5 виконуються три елементарні операції (а також обернені до них): · Додавання. Додавання слів, позначене символом +, виконується по модулю 2w. Обернена операція, позначена символом -, є відніманням по модулю 2w. · Побітове виключне АБО. Ця операція позначається символом Å. · Циклічний зсув вліво. Циклічний зсув слова x вліво на y бітів позначається x<<<y. Обернена операція є циклічним зсувом слова x вправо на y бітів і позначається x>>>y. Шифрування Вхідні дані: відкритий текст M=(A,B) довжиною 2w бітів; кількість раундів r; ключ K=K[0]…K[b-1]. Вихідні дані: шифрований текст С довжиною 2w бітів. 1. Обчислити (2r+2) підключів S[0]…S[2r+1] за відповідним алгоритмом з вхідного K та r. 2. A:=A+S[0], B:=B+S[1] (додавання здійснюється за модулем 2w). 3. For i=1 to r do: A:=((AÅB)<<<B)+S[2i], B:=((BÅA)<<<A)+S[2i+1]. 4. Вихідним значенням є C:=(A,B). Дешифрування Для дешифрування використовуються ті самі підключі, які застосовуються для шифрованого тексту C=(A,B), таким чином (віднімання здійснюється за модулем 2w). 1. For i=r downto 1 do: B:=((B-S[2i+1])>>>A)ÅA, A:=((A-S[2i])>>>B)ÅB. 2. Результат M:=(A-S[0],B-S[1]). (рис. 1б) Створення підключів Підключі зберігаються в масиві з (2r+2) слів, елементи якого позначені S[0], S[1],…,S[2r+1]. Використовуючи в якості вхідних даних параметри r та w, цей масив ініціалізується псевдовипадковими фіксованими значеннями. Потім ключ K[0…b-1] довжиною b байтів перетворюється в масив L[0…c-1], що містить c слів. Для цього байти ключа копіюються в масив L доповнюючи при необхідності останнє слово справа нулями. Зрештою виконується деяка операція змішування, що об'єднує вміст L з ініціалізованими значеннями S, в результаті чого отримують остаточне значення масиву S. Стандарт шифрування IDEA. Початковий варіант алгоритму IDEA з'явився в 1990 р. Розробники алгоритму, Ксуеджа Лай (Xuejia Lai) і Джеймс Мессі (James Massey) зі Швейцарського інституту ETH Zurich, дали йому назву PES (Proposed Encryption Standard - пропонований стандарт шифрування), оскільки даний алгоритм був запропонований на заміну стандарту DES. Через рік алгоритм був модифікований з метою посилення криптостійкості до диференціального криптоаналізу. Нова версія одержала назву IPES (Improved PES - покращений PES), а ще через рік алгоритм змінив назву на IDEA (International Data Encryption Algorithm - міжнародний алгоритм шифрування даних). Основні характеристики і структура Алгоритм IDEA шифрує дані блоками по 64 біт, а ключ шифрування алгоритму має розмір 128 біт. Блок шифрованих даних розбивається на чотири 16-бітних субблока A, B, C і D (рис. 1), над якими виконується вісім раундів перетворень: A = A [x] Kr1 B = B + Kr2 C = C + Kr3 D = D [x] Kr4 T1 = A [+] C T2 = B [+] D T1 = T1 [x] Kr5 T2 = T1 + T2 T2 = T2 [x] Kr6 T1 = T1 + T2 A = A [+] T2 B = B [+] T1 C = C [+] T2 D = D [+] T1, де Krn - з'єднання n раунду r, "+" - операція додавання 16-бітових операндів за модулем 2 {в 16-й ступеня}, [+] - побітова логічна операція "виключає або" (XOR), [x] - множення 16 -бітових операндів за модулем (2 {в 16-й ступеня} + 1), причому в якості значення субблока, що складається з одних нулів, береться значення 2 {в 16-й ступеня}.
Після виконання описаних вище дій два внутрішніх субблока (B і C) міняються місцями - у всіх раундах, крім останнього. По завершенні восьми раундів виконуються додаткові перетворення (іноді звані дев'ятий раундом алгоритму): A '= A [x] K91 B '= B + K92 C '= C + K93 D '= D [x] K94 Шифртекст представляє собою результат конкатенації отриманих значень A ', B', C 'і D'. Операція розшифрування аналогічна зашифрування, з тією різницею, що при расшифровании використовуються модифіковані підключи і в іншій послідовності: K'r1 = (K (10-r) 1) -1 K'r2 =-K (10-r) 3 K'r3 =-K (10-r) 2 K'r4 = (K (10-r) 4) -1 K'r5 = K (9-r) 5 K'r6 = K (9-r) 6, за винятком раундів 1 і 9, в яких підключи K'r2 і K'r3 міняються місцями. Тут K'rn - з'єднання n раунду розшифрування r,-x і x-1 - зворотні значення x щодо описаних вище операцій додавання по модулю 2 {в 16-й ступеня} і множення за модулем (2 {в 16-й ступеня} + 1) відповідно. При цьому 0 {в-1-го ступеня} = 0. Процедура розширення ключа Завдання процедури розширення ключа - формування 52 16-бітових підключений, використовуваних у раундах шифрування і додаткових перетвореннях (тобто всього 832 біта ключової інформації). Ця процедура дуже проста, і виконується вона таким чином: 1. 128-бітний ключ шифрування ділиться на вісім підключів по 16 біт; вони стають першими вісьмома підключами алгоритму (K11, K12, K13, K14, K15, K16, K21, K22). 2. Ключ шифрування циклічно зсувається вліво на 25 біт. 3. Результат ділиться на вісім наступних підключів. 4. Ключ шифрування циклічно зсувається вліво на 25 біт, і так далі до вироблення необхідної кількості підключів. Крипостійкість алгоритму Вже в наступному році після появи алгоритму PES його автори опублікували роботу, в якій була доведена слабкість алгоритму по відношенню до диференціального криптоаналізу: для визначення ключа шифрування достатньо виконання 2 {в 64-го ступеня} операцій шифрування, тоді як повний перебір значень 128-бітного ключа зажадав б виконання 2 {в 128-го ступеня} операцій. Алгоритм IDEA з'явився в результаті досить незначних модифікацій алгоритму PES (рис. 2). Якщо порівняти схеми алгоритмів IDEA і PES, видно не так вже й багато відмінностей: * Операція множення субблока B з другим підключимо раунду замінена операцією додавання, * Операція додавання субблока D з четвертим підключимо раунду замінена операцією множення, * По-іншому виконується зрушення субблоків в кінці раунду.
Алгоритм IDEA виявився фактично невразливим до диференціального криптоаналізу, а в тій же книзі (що вийшла в 1996 р.) Брюс Шнайер відгукнувся про нього так: "Мені здається, це найкращий і надійний блочний алгоритм, опублікований до теперішнього часу". Проте в тому ж 1996 р. відомий криптоаналітик Пол Кохер (Paul Kocher) винайшов досить складно реалізовану атаку, що дозволяє шляхом багаторазових високоточних вимірів часу виконання шифрування 2 {в 20-й ступеня} випадково вибраних відкритих текстів на ключах, пов'язаних певним співвідношенням з шуканим ключем , і подальшого аналізу результатів обчислити шуканий ключ шифрування. Дана атака (як і інші атаки на пов'язаних ключах) припускає, що криптоаналітик не має прямого доступу до шуканого ключа (наприклад, ключ прошитий в будь-якому апаратні шифратори або смарт-картки), але може змінювати певним чином різні фрагменти ключа. А раніше, в 1993 р., дещо криптологів з Бельгії виявили в алгоритмі IDEA кілька класів слабких ключів (всього 2 {в 23-й ступеня} + 2 {в 35-й ступеня} + 2 {в 51-й ступеня} ключів різної ступеня слабкості), частина з яких, наприклад, можна обчислити криптоаналитической атакою з підібраним відкритим текстом. Проте самі автори даної атаки запропонували "протиотруту" - слабкі ключі виключаються шляхом накладення операцією XOR спеціальної шістнадцятковій константи 0DAE на кожен з'єднання перед його використанням. Таким чином, незважаючи на виявлені недоліки, алгоритм IDEA вважається алгоритмом з високою криптостійкість. Незаперечна ж перевага даного алгоритму - висока швидкість зашифрування, не менше, ніж у два рази більше, ніж у алгоритму DES (залежно від платформи, на якій виконується шифрування). А можливість виконання операції розширення ключа "на льоту" (тобто паралельно з виконанням раундів шифрування) дуже вітається і в більш сучасних алгоритмах шифрування. Однак варто сказати, що швидкість розшифрування дещо знижується через наявність ресурсномістких операцій обчислення мультиплікативних зворотних величин по модулю (2 {в 16-й ступеня} + 1). Алгоритм IDEA не став міжнародним стандартом шифрування, як того бажали його автори. Проте його можна вважати одним з найбільш поширених в світі алгоритмів шифрування. IDEA використовується до цих пір в безлічі різних додатків, у тому числі в широко відомою і використовуваною програмою захисту даних PGP. Стандарт шифрування AES. Американський стандарт шифрування AES, покликаний замінити DES, вибирався на відкритому конкурсі, де всі зацікавлені організації і приватні особи могли вивчати і коментувати алгоритми-претенденти. Переможцем був оголошений алгоритм Rijndael, розроблений двома кріптографами з Бельгії. Алгоритм Rijndael представляє блок даних у вигляді двомірного байтового масиву розміром 4X4, 4X6 або 4X8 (допускається використання декількох фіксованих розмірів шифруєемого блоку інформації). Всі операції виконуються з окремими байтами масиву, а також з незалежними стовпцями і рядками. Алгоритм Rijndael виконує чотири перетворення: BS (ByteSub) - таблична заміна кожного байта масиву; SR (ShiftRow) - зсув рядків масиву. При цій операції перший рядок залишається без змін, а інші циклічно побайтно зсуються вліво на фіксоване число байт, що залежить від розміру масиву. Наприклад, для масиву розміром 4X4 рядки 2, 3 і 4 зсуються відповідно на 1, 2 і 3 байти. Далі йде MC (MixColumn) - операція над незалежними стовпцями масиву, коли кожен стовпець за певним правилом множиться на фіксовану матрицю c(x). І, нарешті, AK (AddRoundKey) - додавання ключа. Кожен біт масиву складається по модулю 2 з відповідним ключем раунду, що, у свою чергу, певним чином обчислюється із ключа шифрування. У кожному раунді (з деякими виключеннями) над даними, що шифруються, по черзі виконуються перераховані перетворення . Виключення стосуються першого і останнього раундів: перед першим раундом додатково виконується операція AK, а в останньому раунді відсутній MC. У результаті послідовність операцій при шифруванні виглядає так: AK, {BS, SR, MC, AK} (повторюється R-1 раз), BS, SR, AK. Кількість раундів шифрування (R) в алгоритмі Rijndael змінне (10, 12 або 14 раундів) і залежить від розмірів блоку і ключа шифрування (для ключа також передбачено кілька фіксованих розмірів). Розшифрування виконується за допомогою наступних зворотних операцій. Виконується обіг таблиці і таблична заміна на інверсній таблиці (щодо застосовуваної при шифруванні). Зворотна операція до SR - це циклічний зсув рядків вправо, а не вліво. Зворотна операція для MC - множення за тим же правилом на іншу матрицю d(x), що задовольняє умові: c(x) * d(x) = 1. Додавання ключа AK є зворотним самому собі, оскільки в ньому використається тільки операція XOR. Ці зворотні операції застосовуються при розшифруванні в послідовності, зворотної тієї, що використалася при шифруванні. Rijndael став новим стандартом шифрування даних завдяки цілому ряду переваг перед іншими алгоритмами. Насамперед він забезпечує високу швидкість шифрування на всіх платформах: як при програмній, так і при апаратній реалізації. Його відрізняють незрівнянно кращі можливості розпаралелювання обчислень у порівнянні з іншими алгоритмами, представленими на конкурс. Крім того, вимоги до ресурсів для його роботи мінімальні, що важливо при його використанні в пристроях, що володіють обмеженими обчислювальними можливостями. Недоліком же алгоритму можна вважати лише властиву йому нетрадиційну схему. Справа в тому, що властивості алгоритмів, заснованих на мережі Фейстеля, добре досліджені, а Rijndael, на відміну від них, може містити сховані уразливості, які можуть виявитися тільки через деякий час з моменту початку його широкого поширення. |
||||||||||||||||||||
Последнее изменение этой страницы: 2018-04-12; просмотров: 485. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |