Шифрування з секретним ключем

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование




?дi виконуються двi операцii.

Рисунок 1 Схема алгоритму ГОСТ 28147-89

Перша - накладення ключа. Вмiст субблоку N1 складаСФться по модулю 2 з 32-бiтною частиною ключа Kx. Повний ключ шифрування представляСФться у виглядi конкатенацii 32-бiт пiдключiв: K0, K1, K2, K3, K4, K5, K6, K7. У процесi шифрування використаСФться один iз цих пiдключiв - залежно вiд номера раунду i режиму роботи алгоритму.

Друга операцiя - таблична замiна. Пiсля накладення ключа субблок N1 розбиваСФться на 8 частин по 4 бiт, значення кожноi з яких замiняСФться вiдповiдно до таблицi замiни для даноi частини субблока. Потiм виконуСФться побiтовий циклiчний зсув субблока влiво на 11 бiт.

Табличнi замiни часто використаються в сучасних алгоритмах шифрування, тому варто пояснити, як органiзуСФться подiбна операцiя. У таблицю записуються вихiднi значення блокiв. Блок даних певноi розмiрностi (у нашому випадку - 4-бiта) маСФ своСФ числове подання, що визначаСФ номер вихiдного значення. Наприклад, якщо S-box маСФ вигляд 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 i на вхiд прийшов 4-бiта блок "0100" (значення 4), то, вiдповiдно до таблицi, вихiдне значення буде дорiвнюСФ 15, тобто "1111" (0 а 4, 1 а 11, 2 а 2...).

Алгоритм, обумовлений ГОСТ 28147-89, передбачаСФ чотири режими роботи: простоi замiни, гамування, гамування зi зворотним звязком i генерацii iмiтоприставок. У них використаСФться те саме описане вище перетворення але, оскiльки призначення режимiв по-рiзному, здiйснюСФться це перетворення в кожному з них по-рiзному.

У режимi простоi замiни для шифрування кожного 64-бiтног блоку iнформацii виконуються 32 описаних вище раунда. При цьому 32-бiтнi пiдключи використовуються в наступнiй послiдовностi:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 i т.д. - у раундах з 1-го по 24-й;

K7, K6, K5, K4, K3, K2, K1, K0 - у раундах з 25-го по 32-й.

Розшифрування в даному режимi проводиться так само, але iз трохи iншою послiдовнiстю застосування пiдключей:

K0, K1, K2, K3, K4, K5, K6, K7 - у раундах з 1-го по 8-й;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 i т.д. - у раундах з 9-го по 32-й.

Всi блоки шифруються незалежно друг вiд друга, тобто результат шифрування кожного блоку залежить тiльки вiд його змiсту (вiдповiдного блоку вихiдного тексту). При наявностi декiлькох однакових блокiв вихiдного (вiдкритого) тексту вiдповiднi iм блоки шифртексту теж будуть однаковi, що даСФ додаткову корисну iнформацiю для крипто аналiтика, що намагаСФться розкрити шифр. Тому даний режим застосовуСФться в основному для шифрування самих ключiв шифрування (дуже часто реалiзуються багатоключовi схеми, у яких по ряду мiркувань ключi шифруються друг на другу). Для шифрування iнформацii призначенi два iнших режими роботи - гамування та гамування зi зворотним звязком.

У режимi гамування кожен блок вiдкритого тексту побiтно складаСФться по модулю 2 iз блоком гами шифру розмiром 64 бiт. Гама шифр - це спецiальна послiдовнiсть, що виходить у результатi певних операцiй з регiстрами N1 й N2 (див. рис. 1).

1. У регiстри N1 i N2 записуСФться iх початкове заповнення - 64-бiтна величина, називана синхропосилання.

2. ВиконуСФться шифрування змiсту регiстрiв N1 й N2 (у цьому випадку - синхропосилання) у режимi простоi замiни.

3. змiст регiстра N1 складаСФться по модулю (232 - 1) з константою C1 = 224 + 216 + 28 + 24, а результат додавання записуСФться у регiстр N1.

4. змiст регiстра N2 складаСФться по модулю 232 з константою C2 = 224 + 216 + 28 + 1, а результат додавання записуСФться в регiстр N2.

5. змiст регiстрiв N1 i N2 подаСФться на вихiд як 64-бiтовий блок гами шифру (у цьому випадку N1 i N2 утворять перший блок гами).

Якщо необхiдно наступний блок гами (тобто необхiдно продовжити шифрування або розшифрування), виконуСФться повернення до операцii 2.

Для розшифрування гама виробляСФться аналогiчним способом, а потiм до бiт зашифрованого тексту i гами знову застосовуСФться операцiя XOR. Оскiльки ця операцiя оборотна, у випадку правильно виробленоi гами виходить вихiдний текст (таблиця 1).

Таблиця 1 - Зашифрування й розшифрування в режимi гамування

ОперацiяРезультатВихiдний текст100100ГамаXOR111000Шифртекст=011100ГамаXOR111000Вихiдний текст=100100Для отримання потрiбноi для розшифровки гами шифру у користувача, що розшифровуСФ криптограму, повинен бути той же ключ i те ж значення синхропосилання, якi застосовувалися при шифруваннi iнформацii. У iншому випадку одержати вихiдний текст iз зашифрованого не вдасться.

У бiльшостi реалiзацiй алгоритму ГОСТ 28147-89 синхропосилання не секретне, однак СФ системи, де синхропосилання - такий же секретний елемент, як i ключ шифрування. Для таких систем ефективна довжина ключа алгоритму (256 бiт) збiльшуСФться ще на 64 бiт секретного синхропосилання, що також можна розглядати як ключовий елемент.

У режимi гамiровання зi зворотним звязком для заповнення регiстрiв N1 i N2, починаючи з 2-го блоку, використаСФться не попереднiй блок гами, а результат шифрування попереднього блоку вiдкритого тексту (рис. 2). Перший блок у даному режимi генеруСФться повнiстю аналогiчно попередньому.

Рисунок 2 Формування гами шифру в режимi гамування iз зворотним звязком

Розглядаючи режим генерацii iмiтоприставок, варто визначити поняття предмета генерацii. РЖмiтоприставка - це криптографiчна контрольна сума, що обчислюСФться з використанням ключа шифрування i призначена для перевiрки цiлiсностi повiдомлень. При генерацii iмiтоприставки виконуються наступнi операцii: першi 64-бiта блок масиву iнформацii, для якого обчислюСФться iмiтоприставка, записуСФться в регiстри N1 й N2 i шифруСФться в скороченому р?/p>