Симетричні шифри. Блочні та потокові шифри. Режими роботи блочних шифрів. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Симетричні шифри. Блочні та потокові шифри. Режими роботи блочних шифрів.



Симметрический шифр - способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ.

· Потоковые (т. е. при шифровании потока данных, каждый бит исходной информации шифруется независимо от других с помощью гаммирования):

o с одноразовым или бесконечным ключом (infinite-key cipher);

o с конечным ключом (система Вернама - Vernam);

o на основе генератора псевдослучайных чисел (ПСЧ).

· Блочные (шифрование данных поблочно):

o Шифры перестановки - переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке.

o Шифры замены - заменяют элементы открытых данных на другие элементы по определенному правилу, и разделяются на:

§ Моноалфавитные (щифр цезаря) - замены буква исходного текста заменяется на другую, заранее определенную букву.

§ Полиалфавитные(видженера) - для замены некоторого символа используются различные символы из некоторого набора.

· Составные

Практически все алгоритмы симметричного блочного шифрования, исполь­зуемые в наши дни, основаны на структуре, получившей название "блочный шифр Файстеля" (Feistel block cipher). Файстель предложил шифр, в котором попеременно используются и подстановки, и перестановки. Это подразумевает попеременно использо­вать функции диффузии и конфузии. Диффузия и конфузия были введены, чтобы охарактеризовать два основных строительных блока криптографических систем. Основной задачей, было воспрепятствовать попыткам взломать шифр статистическим анализом. Суть диффузии состоит в рассеянии статистических особенностей открытого текста диапазону шифрованного текста. Т. е. любой из элементов шифрованного текста зави­сит от множества элементов открытого текста. Конфузия призвана настолько усложнить связь между ключом и шифратекстом, что даже разобравшись в статистическом анализе, будет невозможно определить алгоритм шифрования, и как следствие открытый текст.

Использование потоковых шифров избавляет от необходимости дополнять сообщение до целого числа блоков. С поточным шифром можно работать в режиме реального време­ни. (каждый символ можно шифровать и сразу же передавать адресату, не дожи­даясь окончания шифрования остальной части сообщения). Для поточного шифра необходимо, чтобы длина шифрованного текста в точ­ности соответствовала длине открытого.

Режимы работы блочных шифров

Алгоритм DES является базовым строительным блоком защиты передачи данных. Для применения DES в различных приложениях были определены че­тыре режима его работы.

Режим электронной шифровальной книги- Открытый текст обрабатывается блоками по 64 бита и каждый блок шифруется с одним и тем же ключом. Термин шифровальная книга объясняется тем, что при заданном ключе каждый 64-бит блок от­крытого текста представляется уникальным блоком шифратекста.

Режим сцепления шифрованных блоков -Технология, свободная от недостатков режима «электронной шифрованной книги», должна в случае повто­рения в сообщении уже встречавшегося ранее блока открытого текста генерировать блок шифрованного текста, отличный от сгенерированного ранее.

Режим шифрованной обратной связи -Схема DES представляет собой блочный шифр с размером блока 64 бита. Но DES можно преобразовать и в потоковый шифр, используя либо режим шифрованной об­ратной связи (CFB), либо режим обратной связи по выходу (OFB). Использование поточного шифра избавляет от необходимости дополнять сообщение до целого числа блоков

Режим обратной связи по выходу -Режим обратной связи по выходу (ОFВ), как видно из рис. 8, во многом подобен режиму «Режим шифрованной обратной связи». В режиме ОFВ в регистр сдвига подается значение, полу­чаемое на выходе функции шифрования, а в режиме «шифрованной обратной связи» в этот регистр подает­ся порция шифрованного текста.

Стандарт шифрування DЕS

(Data Encryption Standard — стандарт шифрования данных), принятом в 1977 году Национальным бюро стандартов (NBS) США, теперь называемым На­циональным институтом стандартов и технологии (NIST). Этот стандарт — типичный представитель криптоалгоритмов, использующих симметричное шифрование. Сегодня стандарт шифрования DES используется в Соединенных Штатах, за небольшим исключением, практически везде. Правительственная связь, электронные банковские переводы, гражданские спутниковые коммуникации и даже пароли компьютерных систем — везде, в той или иной мере, применяется защита, основанная на DES.

В соответствии с этим стандартом данные шифруются 64-битовыми блоками с ис­пользованием 56-битового ключа. Многошаговый алгоритм преобразует посту­пающие на вход 64-битовые блоки в 64-битовые блоки шифрованного текста. Тот же алгоритм с тем же ключом служит для обратного преобразования шифрован­ного текста в открытый.

Одна из широко распространенных систем криптографической защиты, использующая стандарт DES, — разработанная в середине 80-х годов прошлого столетия система Kerberos, использование которой предполагает наличие высоконадежного сервера, хранящего исходные копии ключей для взаимодействия с каждым пользователем. Эта система представляет собой часть спецификации открытой вычислительной среды DCE (Distributed Computing Environment) фонда OSF.

Среди предлагающих продукты на базе DCE такие компании, как IBM и HewlettPackard. Kerberos должна стать также частью системы защиты Windows NT 5.0. На практике криптографические системы с секретными ключами, как правило, быстрее систем с открытыми ключами, обеспечивающими ту же степень защиты. Однако преимущество последних в том, что они не позволяют отказаться от авторства, а также обеспечивают проверку целостности сообщений любого сорта.

Стандарт шифрування RC5.

RC5 — це алгоритм симетричного шифрування, розроблений Роном Райвестом в середині 90-х років.

Характеристики

Під час розробки RC5 ставилося завдання досягти наступних характеристик:

Придатність для апаратної та програмної реалізації. В RC5 використовуються тільки елементарні обчислювальні операції, які зазвичай застосовуються в мікропроцесорах.

Швидкість виконання. RC5 є простим алгоритмом, що працює з даними розміром в машинне слово. Усі основні операції передбачають також роботу з даними довжиною в слово.

Адаптованість до процесорів з різною довжиною слова. Довжина слова в бітах є параметром RC5 — при зміні довжини слова змінюється сам алгоритм.

Змінна кількість раундів. Кількість раундів є другим параметром RC5. Цей параметр дозволяє обрати оптимальне співвідношення між швидкістю роботи та ступенем захисту.

Змінна довжина ключа. Довжина ключа є третім параметром RC5. Як і в попередньому випадку, цей параметр дозволяє знайти прийнятний компроміс між швидкістю роботи та необхідним рівнем безпеки.

Простота. Структура RC5 дуже проста не тільки для реалізації, але й для оцінки її криптоаналітичної стійкості.

Низькі вимоги до пам'яті. Низькі вимоги до пам'яті роблять RC5 придатним для використання в смарт-картах та інших подібних пристроях з обмеженим обсягом пам'яті.

Високий ступінь захисту. RC5 покликаний забезпечити високий ступінь захисту за умови вибору відповідних значень параметрів.

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

Параметри алгоритму RC5

Параметр Визначення Допустимі значення
w Розмір слова в бітах. RC5 шифрує дані блоками довжиною в 2 слова 16, 32, 64
r Кількість раундів 0, 1, …, 255
b Кількість 8-бітових байтів (октетів) в таємному ключі К 0, 1, …, 255

Райвест пропонує використовувати 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 бітів.

Обчислити (2r+2) підключів S[0]…S[2r+1] за відповідним алгоритмом з вхідного K та r.

A:=A+S[0], B:=B+S[1] (додавання здійснюється за модулем 2w).

For i=1 to r do: A:=((AÅB)<<<B)+S[2i], B:=((BÅA)<<<A)+S[2i+1].

Вихідним значенням є C:=(A,B).

Дешифрування

Для дешифрування використовуються ті самі підключі, які застосовуються для шифрованого тексту C=(A,B), таким чином (віднімання здійснюється за модулем 2w).

For i=r downto 1 do: B:=((B-S[2i+1])>>>A)ÅA, A:=((A-S[2i])>>>B)ÅB.

Результат 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-й ступеня}.

Рис. 1. Структура алгоритма IDEA.  

 

 

Після виконання описаних вище дій два внутрішніх субблока (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 біта ключової інформації). Ця процедура дуже проста, і виконується вона таким чином:

128-бітний ключ шифрування ділиться на вісім підключів по 16 біт; вони стають першими вісьмома підключами алгоритму (K11, K12, K13, K14, K15, K16, K21, K22).

Ключ шифрування циклічно зсувається вліво на 25 біт.

Результат ділиться на вісім наступних підключів.

Ключ шифрування циклічно зсувається вліво на 25 біт, і так далі до вироблення необхідної кількості підключів.

Крипостійкість алгоритму

Вже в наступному році після появи алгоритму PES його автори опублікували роботу, в якій була доведена слабкість алгоритму по відношенню до диференціального криптоаналізу: для визначення ключа шифрування достатньо виконання 2 {в 64-го ступеня} операцій шифрування, тоді як повний перебір значень 128-бітного ключа зажадав б виконання 2 {в 128-го ступеня} операцій.

Алгоритм IDEA з'явився в результаті досить незначних модифікацій алгоритму PES (рис. 2).

Cлабкі ключі виключаються шляхом накладення операцією XOR спеціальної шістнадцятковій константи 0DAE на кожен з'єднання перед його використанням.

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

Стандарт шифрування 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, на відміну від них, може містити сховані уразливості, які можуть виявитися тільки через деякий час з моменту початку його широкого поширення.



Поделиться:


Последнее изменение этой страницы: 2016-07-14; просмотров: 833; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.132.214 (0.036 с.)