Реферат: Шифрування з секретним ключем
Розшифрування в даному режимі проводиться так само, але із трохи іншою послідовністю застосування підключей:
K0, K1, K2, K3, K4, K5, K6, K7 - у раундах з 1-го по 8-й;
K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 і т.д. - у раундах з 9-го по 32-й.
Всі блоки шифруються незалежно друг від друга, тобто результат шифрування кожного блоку залежить тільки від його змісту (відповідного блоку вихідного тексту). При наявності декількох однакових блоків вихідного (відкритого) тексту відповідні їм блоки шифртексту теж будуть однакові, що дає додаткову корисну інформацію для крипто аналітика, що намагається розкрити шифр. Тому даний режим застосовується в основному для шифрування самих ключів шифрування (дуже часто реалізуються багатоключові схеми, у яких по ряду міркувань ключі шифруються друг на другу). Для шифрування інформації призначені два інших режими роботи - гамування та гамування зі зворотним зв'язком.
У режимі гамування кожен блок відкритого тексту побітно складається по модулю 2 із блоком гами шифру розміром 64 біт. Гама шифр - це спеціальна послідовність, що виходить у результаті певних операцій з регістрами N1 й N2 (див. рис. 1).
1. У регістри N1 і N2 записується їх початкове заповнення - 64-бітна величина, називана синхропосилання.
2. Виконується шифрування змісту регістрів N1 й N2 (у цьому випадку - синхропосилання) у режимі простої заміни.
3. зміст регістра N1 складається по модулю (232 - 1) з константою C1 = 224 + 216 + 28 + 24, а результат додавання записується у регістр N1.
4. зміст регістра N2 складається по модулю 232 з константою C2 = 224 + 216 + 28 + 1, а результат додавання записується в регістр N2.
5. зміст регістрів N1 і N2 подається на вихід як 64-бітовий блок гами шифру (у цьому випадку N1 і N2 утворять перший блок гами).
Якщо необхідно наступний блок гами (тобто необхідно продовжити шифрування або розшифрування), виконується повернення до операції 2.
Для розшифрування гама виробляється аналогічним способом, а потім до біт зашифрованого тексту і гами знову застосовується операція XOR. Оскільки ця операція оборотна, у випадку правильно виробленої гами виходить вихідний текст (таблиця 1).
Таблиця 1 - Зашифрування й розшифрування в режимі гамування
Операція | Результат | |
Вихідний текст | 100100 | |
Гама | XOR | 111000 |
Шифртекст | = | 011100 |
Гама | XOR | 111000 |
Вихідний текст | = | 100100 |
Для отримання потрібної для розшифровки гами шифру у користувача, що розшифровує криптограму, повинен бути той же ключ і те ж значення синхропосилання, які застосовувалися при шифруванні інформації. У іншому випадку одержати вихідний текст із зашифрованого не вдасться.
У більшості реалізацій алгоритму ГОСТ 28147-89 синхропосилання не секретне, однак є системи, де синхропосилання - такий же секретний елемент, як і ключ шифрування. Для таких систем ефективна довжина ключа алгоритму (256 біт) збільшується ще на 64 біт секретного синхропосилання, що також можна розглядати як ключовий елемент.
У режимі гаміровання зі зворотним зв'язком для заповнення регістрів N1 і N2, починаючи з 2-го блоку, використається не попередній блок гами, а результат шифрування попереднього блоку відкритого тексту (рис. 2). Перший блок у даному режимі генерується повністю аналогічно попередньому.
Рисунок 2 – Формування гами шифру в режимі гамування із зворотним зв'язком
Розглядаючи режим генерації імітоприставок, варто визначити поняття предмета генерації. Імітоприставка - це криптографічна контрольна сума, що обчислюється з використанням ключа шифрування і призначена для перевірки цілісності повідомлень. При генерації імітоприставки виконуються наступні операції: перші 64-біта блок масиву інформації, для якого обчислюється імітоприставка, записується в регістри N1 й N2 і шифрується в скороченому режимі простої заміни (виконуються перші 16 раундів з 32). Отриманий результат додається по модулю 2 до наступного блока інформації зі збереженням результату в N1 і N2.
Цикл повторюється до останнього блоку інформації. 64-біт, що вийшло в результаті цих перетворень, у регістрів N1 й N2 називається імітоприставкою. Розмір імітоприставки вибирається, виходячи з необхідної вірогідності повідомлень: при довжині імітоприставки r біт імовірність, що зміна повідомлення залишиться непоміченою, дорівнює 2-r.Найчастіше використається 32-бітна імітоприставка, тобто половина змісту регістрів. Цього досить, оскільки, як будь-яка контрольна сума, імітоприставка призначена насамперед для захисту від випадкових спотворень інформації. Для захисту від навмисної модифікації даних застосовуються інші криптографічні методи - у першу чергу електронний цифровий підпис.
Алгоритм ГОСТ 28147-89 вважається дуже сильним алгоритмом - у цей час для його розкриття не запропоновано більш ефективних методів, чим згаданий вище метод "грубої сили". Його висока стійкість досягається в першу чергу за рахунок великої довжини ключа - 256 біт. При використанні секретного синхропосилання ефективна довжина ключа збільшується до 320 біт, а засекречування таблиці замін додає додаткові біти. Крім того, кріптостійкість залежить від кількості раундів перетворень, яких за ГОСТ 28147-89 повинне бути 32 (повний ефект розсіювання вхідних даних досягається вже після 8 раундів).
2.3 Стандарт AES
На відміну від алгоритму ГОСТ 28147-89, що довгий час залишався секретним, американський стандарт шифрування AES, покликаний замінити DES, вибирався на відкритому конкурсі, де всі зацікавлені організації і приватні особи могли вивчати і коментувати алгоритми-претенденти.
Конкурс на заміну DES був оголошений в 1997 р. Національним інститутом стандартів і технологій США. На конкурс було представлено 15 алгоритмів-претендентів, розроблених як відомими в області криптографії організаціями (RSA Security, Counterpane і т.д.), так і приватними особами. Підсумки конкурсу були підведені в жовтні 2009 р.: переможцем був оголошений алгоритм Rijndael, розроблений двома кріптографами з Бельгії, Винсентом Риджменом (Vincent Rijmen) і Джоан Даймен (Joan Daemen).
Алгоритм Rijndael не схожий на більшість відомих алгоритмів симетричного шифрування, структура яких зветься "мережа Фейстеля" і аналогічна російському ГОСТ 28147-89. Особливість мережі Фейстеля полягає в тому, що вхідне значення розбивається на два і більше субблоків, частина з яких у кожному раунді обробляється за певним законом, після чого накладається на необроблювані субблоки (див. рис. 1).
На відміну від вітчизняного стандарту шифрування, алгоритм Rijndael представляє блок даних у вигляді двомірного байтового масиву розміром 4X4, 4X6 або 4X8 (допускається використання декількох фіксованих розмірів шифруєемого блоку інформації). Всі операції виконуються з окремими байтами масиву, а також з незалежними стовпцями і рядками. Алгоритм Rijndael виконує чотири перетворення: BS (ByteSub) - таблична заміна кожного байта масиву (рис. 3); SR (ShiftRow) - зсув рядків масиву (рис. 4). При цій операції перший рядок залишається без змін, а інші циклічно побайтно зсуються вліво на фіксоване число байт, що залежить від розміру масиву. Наприклад, для масиву розміром 4X4 рядки 2, 3 і 4 зсуються відповідно на 1, 2 і 3 байти. Далі йде MC (MixColumn) - операція над незалежними стовпцями масиву (рис. 5), коли кожен стовпець за певним правилом множиться на фіксовану матрицю c(x). І, нарешті, AK (AddRoundKey) - додавання ключа. Кожен біт масиву складається по модулю 2 з відповідним ключем раунду, що, у свою чергу, певним чином обчислюється із ключа шифрування (рис. 6).
Рисунок 3 – Операція BS
Рисунок 4 – Операція SR