Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ГОСТ 28147—89




AES

DES

Симетричні криптоалгоритми DES, АES

Одним з найвідоміших криптостандартів є стандарт DES (Data Eucryption Standard). У 80-х роках він був прийнятий у США як федеральний стандарт симетричного криптоалгоритму для внутрішнього застосування і опублікований.

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

На сьогодні DES і його версія Trіple DES (TDEA — Triple Data Encryption Algorithm) застосовуються в багатьох комерційних продуктах.

Розвитком DES є метод IDEA (Improved Proposed Encryption Standard) — покращений стандарт шифрування, розроблений Джеймсом Мессі 1990 року, в якому використовується 128-біт­ний ключ.

1997 року Американський інститут стандартизації (NІST) оголосив конкурс на новий стандарт симетричного криптоалгоритму. Конкурс отримав назву Advanced Encryptіon Standard (AES). У ньому взяли участь найбільші криптологічні центри світу. Переможцем став алгоритм шифрування Rіjndael, розроблений бельгійськими криптологами, який у 2001 році був затверджений як офіційний стандарт.

В AES специфіковано довжину вхідного блока даних — 128 біт (кількість стовпців масиву State — Nb = 4). Ключ може бути довжиною 128, 192 або 256 біт (кількість стовпців масиву Cipher Nk = 4, 6 або 8).

На рис. 2 подано псевдокод для шифрування за алгоритмом Rіjndael.

Cipher (byte in [4*Nb], byte out [4*Nb], word w [Nb*(Nr+1)]) begin byte state [4, Hb] state = in AddRoundKey (state, w[0, Nb–1]) for round = 1 step 1 to Nr–1 SubBytes (state) ShiftRows (state) MixColumns (state) AddRoundKey (state, w[round*Nb, (round+1) *Nb–l]) end for SubBytes(state) ShiftRows; (state) AddRoundKey (state, w[Nr*Nb, (Nr+3)*Mb–l]) out = state end

Рис. 2. Шифрування за алгоритмом Rіjndael

На початку шифрування (розшифровування) вхідний блок даних (In) переписується в масив State (рис. 3) за такими правилами:

S[r,c] = In[r+4c],

де 0 £ r < 4, 0 £ c < Nb.

Після закінчення шифрування (розшифровування) масив State переписується у вихідний масив Out (див. рис. 16.1) за такими правилами:

Out[r+4c] = S[r,c],

де 0 £ r < 4, 0 £ c < Nb.

Рис. 3. Вхідний, робочий та вихідний масиви

Усі кроки алгоритму повторюються кілька разів (раундів). Кількість раундів залежить від довжини ключа і може бути відповідно Nr = 10, 12 або 14.

Кожний раунд (як для зашифровування, так і розшифровування інформації) містить функцію, що складається з чотирьох байт-орієнтованих трансформацій — SubBytes(), ShіftRows(), MіxColumns(), AddRoundKey().

1. SubBytes() — таблична підстановка — операції здійснюються з кожним байтом таблиці State з використанням матриці S-Box (рис. 4, 5).

Рис. 4. Трансформація SubBytes()

  y
                    a b c d e f
x     7c   7b f2 6b 6f c5       2b fe d7 ab  
  ca   c9 7d fa     f0 ad d4 a2 af 9c a4   c0
  b7 fd   26   3f f7 cc   a5 e5 f1   d8    
    c7   c3       9a       e2 eb   b2  
      2c la 1b 6e 5a a0   3b d6 b3   e3 2f  
    d1   ed   fc b1 5b 6a cb be   4a 4c   cf
  d0 ef aa fb   4d       f9   7f   3c 9f a8
    a3   8f   9d   f5 bc b6 da     ff f3 d2
  cd 0c   ec 5f       c4 a7 7e 3d   5d    
      4f dc   2a       ee b8   de 5e 0b db
a e0   3a 0a       5c c2 d3 ac       e4  
b e7 c8   6d 8d d5 4e a9 6c   f4 ea   7a ae  
c ba       1c a6 b4 c6 e8 dd   1f 4b bd 8b 8a
d   3e b5       f6 0e       b9   c1 1d 9e
e el f8       d9 8e   9b 1e   e9 ce     df
f 8c a1   0d bf e6         2d 0f b0   bb  

Рис. 5. Матриця S-Box

Наприклад, якщо s1,1 = {53}, то в рядку з індексом 5 і стовпці з індексом 3 знаходиться значення «ed», отже, s ' 1,1 = {ed}.

2. ShіftRows() — три рядки масиву State циклічно зміщуються на різну кількість позицій, а перший рядок не зміщується (рис. 6):

s ' r,c = sr, (c+ shift(r,Nb))ModNb,

де 0 £ r < 4, 0 £ c < Nb; shift(1,4) = 1, shift(2,4) = 2, shift(3,4) = 3.

Рис. 6. Зміщення за функцією ShіftRows()

3. MіxColumns() — математичне перетворення, що передбачає роботу з кожним окремим стовпцем:

s ' (x) = a(x) Å s(x),

де a(x) = {03} x 3 + {01} x 2 + {01} x + {02}.

Отже,

,

де 0 £ c < Nb.

Результатом мультиплікації буде заміна чотирьох байтів стовпця наступними:

;

;

;

.

4. AddRoundKey () — здійснюється додавання ключа для чергового раунду.

Ключ раунду накладається шляхом виконання операції XOR над масивом State та ключовим словом Wl (рис. 7):

[s ' 0,c, s ' 1,c, s ' 2,c, s ' 3,c] = [s0,c, s1,c, s2,c, s3,c] Å [w Round*Nb+c], 0 £ c < Nb.

Рис. 7. Функція AddRoundKey()

В останньому раунді операція перемішування стовпців не виконується, що робить всю послідовність операцій симетричною.

Усі перетворення, що здійснюються в процесі шифрування, мають чітке математичне обґрунтування. Структура і послідовність операцій дозволяють ефективно виконувати цей алгоритм як на 8-бітних, так і на 32-бітних процесорах. У структурі алгоритму закладена можливість розпаралелювання операцій для виконання на багатопроцесорних комплексах. У найближчому майбутньому цей алгоритм захищений від спроб розшифровування методом перебору всіх можливих ключів.

Йому притаманні висока швидкодія і помірні вимоги до пам’яті, тому АЕС може бути реалізований у різних пристроях, включаючи мобільні телефони і смарт-картки. Оскільки алгоритм Rіjndael не захищений патентами, він доступний для вільного використання в будь-яких продуктах.

Аналогічним до алгоритму DES є вітчизняний ГОСТ 28147—89, проте він складніший, включає на окремих етапах гамування, імітовставки (послідовність даних фіксованої довжини, отриманих за певним правилом з відкритих даних і ключа). Імітовставка передається після зашифровування даних. Дані розшифровуються, і з отриманих відкритих даних формується імітовставка. Вона порівнюється з отриманою, і якщо з нею не збігається, то всі розшифровані дані вважаються неістинними. Імітовставки потрібні для запобігання дезінформації у разі підключення стороннього обладнання до каналу зв’язку. Цей алгоритм має ключ довжиною 256 біт. Він криптостійкіший, ніж DES, але через це досить по-
вільний.




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 420; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.