1, 12, 13, 14, 15.
. Побітовий циклічний зсув вліво на 11 бітів.
Крипостійкість алгоритму.
У 1994 р опис алгоритму ГОСТ 28147-89 було перекладено на англійську мову і опубліковано, саме після цього почали з'являтися результати його аналізу, виконаного зарубіжними фахівцями; однак протягом значного часу не було знайдено будь-яких атак, що наближаються до практично здійсненним.
Висока стійкість алгоритму ГОСТ 28147-89 досягається за рахунок наступних чинників [16]:
· великої довжини ключа - 256 бітів; разом з секретною сінхропосилку ефективна довжина ключа збільшується до 320 бітів;
· 32 раундів перетворень; вже після 8 раундів досягається повний ефект розсіювання вхідних даних: зміна одного біта блоку відкритого тексту вплине на всі біти блоку шифртекста, і навпаки, т. е. існує багаторазовий запас стійкості.
1.2.2 Алгоритм AES
Алгоритм AES представляє блок даних у вигляді двовимірного байтового масиву розміром 4x4. Всі операції проводяться над окремими байтами масиву, а також над незалежними стовпцями і рядками.
У кожному раунді алгоритму виконуються наступні перетворення (рис. 1.6):
. Операція SubBytes, що представляє собою табличну заміну кожного байта масиву даних згідно з таблицею (рис. 1.7).
Рис. 1.6 - Раунд алгоритму
Рис. 1.7 - Таблиця замін для алгоритму AES
/Операція ShiftRows, яка виконує циклічний зсув вліво всіх рядків масиву даних, за винятком нульовий. Зрушення -го рядка масиву (для) проводиться на байтів.
. Операція MixColumns. Виконує множення кожного стовпця масиву даних, який розглядається як поліном в кінцевому полі, на фіксований поліном:
Множення виконується по модулю.
. Операція AddRoundKey. Виконує накладення на масив даних матеріалу ключа. А саме, на -й стовпець масиву даних () побітової логічною операцією «виключне або» (XOR) накладається певне слово розширеного ключа, де - номер поточного раунду алгоритму, починаючи з 1.
Залежність кількості раундів алгоритму R від розміру ключа наведена в табл. 1.1.
Таблиця 1.1 - залежність кількості раундів від розміру ключа
Розмір ключа в бітахКолічество раундов128101921225614
Перед першим раундом алгоритму виконується попереднє накладення матеріалу ключа за допомогою операції AddRoundKey, яка виробляє накладення на відкритий текст перших чотирьох слів розширеного ключа.
Останній же раунд відрізняється від попередніх тим, що в ньому не виконується операція MixColumns.
Розшифрування виконується застосуванням зворотних операцій у зворотній послідовності. Відповідно, перед першим раундом розшифрування виконується операція AddRoundKey (яка є зворотною самій собі), що накладає на шифртекст чотири останні слова розширеного ключа, т. Е..
Потім виконується R раундів розшифрування.
1.2.3 Алгоритм Anubis
Алгоритм названий на честь давньоєгипетського бога Анубіса- бога бальзамування (embalming) і поховання (entombment); до його відання автори алгоритму вирішили віднести і криптографію [40] .шіфрует дані блоками по 128 бітів з використанням ключа розміром від 128 до 320 бітів; розмір ключа повинен бути кратний 32 бітам. Алгоритм представляє блок шіфруемих даних у вигляді 16-байтового масиву, який для зручності опису представлений у вигляді квадрата розміром 4x4 байта. У кожному раунді алгоритму виконуються наступні дії [40]: 1. Таблична заміна, виконувана згідно таблиці з шестнадцатерічнимі значеннями.
Значення таблиці вибираються псевдовипадкових чином з урахуванням необхідності її відповідності наступному співвідношенню:
. Операція - байтовая перестановка, найпростішим чином перетворююча рядок оброблюваного блоку ключової інформації в стовпець:
де і - байти масиву даних до і після виконання поточної операції відповідно. 3. Операція, що представляє собою множення масиву на фіксовану матрицю (табл. 1.2).
програмний криптографічний захист інформаційний
Таблиця 1.2 - Матриця
1246216446126421
Множення виконується в кінцевому полі.
. Накладення ключа -го раунду виконується побітової логічною операцією «виключне або» (XOR), застосовуваної до кожного біту масиву даних і відповідному біту:
...