Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_Курс лекций МиСЗИ.doc
Скачиваний:
44
Добавлен:
11.04.2015
Размер:
261.63 Кб
Скачать

Методы и средства защиты информации

Методы и средства защиты информации

Лекция 5

Симметричные криптоалгоритмы. Блочные шифры (продолжение)

AES (Advanced Encryption Standardулучшенный стандарт шифрования): cтандарт блочных шифров США c 2000 года

В январе 1997 года был объявлен открытый международный конкурс на криптостандарт США, который должен был прийти на замену DES на несколько первых десятилетий XXI века. Победителем конкурса был признан бельгийский блочный шифр Rijndael.

1. Общие сведения о конкурсе AES

Требования к конкурсантам AES, краткая информация о Национальном Институте Стандартизации США. На конкурс было подано 15 заявок, первый этап отбора прошли только 5 претендентов – финалистов AES. В октябре 2000 г. департамент торговли США подвел итоги конкурса по выработке нового стандарта.

В 80-х годах в США был принят стандарт симметричного криптоалгоритма для внутреннего применения DES (Data Encryption Standard), который получил достаточно широкое распространение в свое время, он был утвержден Министерством обороны США еще в 1977 году.

Выражение Data Encryption Standard дословно переводится как "стандарт шифрования данных". И, наверное, подобное название вполне оправданно. Ведь это самый известный в мире алгоритм шифрования информации, на котором основываются множество других вариантов кодирования данных. В период с 1977 по 2001 год DES был федеральным стандартом Соединенных Штатов Америки. За это время он приобрел такую популярность, что стал основой многих разработок в области блочных шифров, а также был использован в большом количестве коммерческих продуктов.

По своей сути DES - симметричный блочный алгоритм шифрования. Его архитектуру можно классифицировать как классическую сбалансированную сеть Файстеля с начальной и конечной битовыми перестановками общего вида. Основные параметры DES таковы:

  • pазмер блока - 64 бита;

  • размер ключа - 64 бита;

  • число раундов - 16;

  • pазмер ключевого элемента - 48 бит;

  • число ключевых элементов - 16.

Экскурс в историю

За свою долгую жизнь стандарт DES подвергался многим и, надо признаться, вполне справедливым нападкам. Самый главный недостаток этого алгоритма шифрования лежит наверху. Речь идет о чрезвычайно малой длине ключа. 64 бита явно недостаточно для обеспечения надежной защиты. А если учесть, что реально используются в процессе шифрования только 56 бит, а остальные служат только для контроля четности, то становится понятно, почему алгоритм DES нельзя применять сегодня для защиты важной информации.

Но почему же была выбрана столь малая длина ключа? Многие люди считают, что это произошло по настоянию Агентства национальной безопасности США (АНБ). Эта спецслужба Америки всегда была самой хорошо оснащенной в компьютерном плане. Считается, что ее возможности позволяли вскрывать информацию, зашифрованную алгоритмом DES за вполне приемлемое время. Если же использовать алгоритм с ключом большей длины, то АНБ в то время не могло декодировать интересующие ее данные. Правда, подобная теория больше похожа на домыслы журналистов, чем на правду. Скорее всего, дело обстояло совсем не так. Компьютеры в 1977 году, когда разрабатывался DES, мягко говоря, очень сильно отличались по мощности от современных машин. Для них шифрование информации и с таким ключом - процесс весьма длительный. Вообще, в 70-80-х годах большую роль в разрабатываемых алгоритмах играла не надежность, а именно скорость.

Хотя, если говорить откровенно, скорость DES при шифровании информации также оставляет желать лучшего. Давайте для примера сравним его с российским алгоритмом, описанным в ГОСТе 28147-89. Кстати, стоит обратить внимание на то, что, несмотря на 1989 год принятия этого стандарта, разработан он был примерно в то же время, что и DES. ГОСТ 28147-89 предполагает использование ключа длиной 128 бит. Естественно, это обеспечивает большую надежность. Кроме того, согласно исследованиям, процесс шифрования информации на обычном компьютере с процессором Intel x86 с использованием российского алгоритма осуществляется в 3-5 раз быстрее, нежели с применением DES. Причина этого кроется в архитектуре шифра, которая сразу же разрабатывалась с учетом как аппаратных, так и программных реализаций.

И все-таки, несмотря на очевидные недостатки, стандарт DES прослужил до 2001 года. И за это время не было найдено никаких "обходных путей", облегчающих его взлом. Специалисты предложили несколько способов немного ускорить взлом способом полного перебора всех вариантов ключа. Так, например, в 80-х годах проводились исследования, которые закончились удачной расшифровкой информации. Правда, на этот процесс ушло больше 50 дней. Естественно, подобный срок вряд ли можно считать приемлемым. Но с тех пор возможности вычислительной техники выросли очень сильно. Так, например, в феврале 1998 года алгоритм DES был взломан за 39 дней. Правда, для этого потребовалась работа общенациональной сети компьютеров. Небольшой успех. Но уже в июле того же года организация Electronic Frontiers Foundation объявила об успешном декодировании текста всего за 56 часов. Подобное время является вполне приемлемым. Тем более что работа велась с использованием всего одного обычного персонального компьютера. Конечно, этот ПК был переоборудован. Стоимость дополнительно установленной аппаратуры составила около 200 тысяч долларов. На первый взгляд эта цифра просто астрономическая. Но, во-первых, сегодня подобное оборудование гораздо дешевле, а, во-вторых, государственные и коммерческие тайны зачастую стоят в десятки раз дороже. Так что алгоритм DES на сегодняшний день не может считаться действительно надежным.

Разновидности DES

За более чем двадцатилетний срок действия стандарта DES специалисты предлагали различные "улучшенные" варианты этого алгоритма шифрования. Первым из них был G-DES. Создатели этого варианта утверждали, что смогли добиться значительного повышения скорости шифрования данных при оставшейся на прежнем уровне надежности. Это якобы достигалось за счет использования DES-основанного шифра с большим размером блока, но при тех же требованиях к вычислительным ресурсам. Правда, независимые эксперты вскоре доказали, что G-DES довольно быстро взламывается.

Во второй разновидности DES использовались субключи. То есть перед началом процесса шифрования на основе 56-битового секретного ключа пользователя алгоритм получает шестнадцать 48-битовых субключей для использования в каждом из 16 раундов. К сожалению, оказалось, что это замедляет процесс кодирования и при этом практически не повышает надежность защиты. Конечно, взлом способом полного поиска ключа сильно усложняется. Но на эффективность других атак, например дифференциального или линейного криптоанализа, использование субключей влияет не сильно.

Следующая разновидность стандарта DES - DESX. Она представляет собой усиленный вариант алгоритма, поддерживаемый инструментарием RSA Security. RSA (авторы: Rivest, Shamir и Alderman) – это система с открытым ключом (public-key) предназначенная как для шифрования, так и для аутентификации была разработана в 1977 году. Она основана на трудности разложения очень больших целых чисел на простые сомножители. RSA очень медленный алгоритм. Для сравнения, на программном уровне DES по меньшей мере в 100 раз быстрее RSA, на аппаратном аж в 1,000-10,000 раз, в зависимости от выполнения.

В этом варианте шифра каждый бит входного открытого текста логически суммируется с 64 битами дополнительного ключа. Такой способ практически ничего не добавляет к защите от атак с помощью дифференциального или линейного криптоанализа, но зато существенно увеличивает стойкость шифра к полному перебору всех вариантов ключей. Причем он очень прост в реализации, а также не отличается от стандартного DES по скорости работы. Поэтому DESX получил некоторое распространение в различных коммерческих продуктах.

Triple DES - наиболее удачный улучшенный вариант стандарта DES. Его суть заключается в последовательном трехкратном применении шифрования к исходному тексту. При этом предусматривается три различных варианта использования Triple DES. Первый - это применение к тексту алгоритма шифрования с тремя различными ключами. Второй вариант - когда первый и третий ключи одинаковые, а средний - отличается от них. Ну и последний случай - все три ключа абсолютно идентичны. Такой способ шифрования информации получил достаточно большую популярность. Многие компании, занимающиеся разработкой коммерческих продуктов, выпустили даже специальные версии своих программ, в которые включили Triple DES.

Однако на текущий момент этот стандарт полностью неприемлем для использования по двум причинам: 1) основной – длина его ключа составляет 56 бит, что чрезвычайно мало на современном этапе развития ЭВМ, 2) второстепенной – при разработке алгоритм был ориентирован на аппаратную реализацию, то есть содержал операции, выполняемые на микропроцессорах за неприемлимо большое время (например, такие как перестановка бит внутри машинного слова по определенной схеме).

Все это сподвигло Американский институт стандартизации NIST – National Institute of Standards & Technology на объявление в 1997 году конкурса на новый стандарт симметричного криптоалгоритма. На сей раз уже были учтены основные промахи шифра-предшественника, а к разработке были подключены самые крупные центры по криптологии со всего мира. Тем самым, победитель этого соревнования, названного AES – Advanced Encryption Standard, предполагалось, станет де-факто мировым криптостандартом на ближайшие 10-20 лет.

Требования, предъявленные к кандидатам на AES в 1997 году, были предельно просты:

  1. алгоритм должен быть симметричным,

  2. алгоритм должен быть блочным шифром,

  3. алгоритм должен иметь длину блока 128 бит, и поддерживать три длины ключа: 128, 192 и 256 бит.

Дополнительно кандидатам рекомендовалось:

  1. использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах),

  2. ориентироваться на 32-разрядные процессоры,

  3. не усложнять без необходимости структуру шифра для того, чтобы все заинтересованные стороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма и убедиться, что в нем не заложено каких-либо недокументированных возможностей.

На первом этапе в оргкомитет соревнования поступило 15 заявок из совершенно разных уголков мира. В течение 2 лет специалисты комитета, исследуя самостоятельно, и изучая публикации других исследователей, выбрали 5 лучших представителей, прошедших в "финал" соревнования (табл. 1).

Таблица 1

Алгоритм

Создатель

Страна

Быстродействие (asm, 200МГц)

MARS

IBM

US

8 Мбайт/с

RC6

R.Rivest & Co

US

12 Мбайт/с

Rijndael

V.Rijmen & J.Daemen

BE

7 Мбайт/с

Serpent

Universities

IS, UK, NO

2 Мбайт/с

TwoFish

B.Schneier & Co

US

11 Мбайт/с

Все эти алгоритмы были признаны достаточно стойкими и успешно противостоящими всем широко известным методам криптоанализа.

2 октября 2000 года NIST объявил о своем выборе – победителем конкурса стал бельгийский алгоритм RIJNDAEL. С этого момента с алгоритма-победителя сняты все патентные ограничения – его можно будет использовать в любой криптопрограмме без отчисления каких-либо средств создателю.

Ниже мы рассмотрим основные (рабочие) части алгоритмов победителей первого этапа. Полное описание всех 15 алгоритмов претендентов на AES, включая исследования по их криптостойкости можно найти на сервере института NIST.

2. Финалист AES – шифр MARS

Разработка корпорации IBM, основанная на классической сети Фейштеля и многочисленных математических операциях.

Шифр состоит из трех видов операций, которые повторяются сначала в прямом, а затем в инверсном порядке. На первом шаге идет классическое входное забеливание: ко всем байтам исходного текста добавляются байты из материала ключа.

Второй этап: прямое перемешивание, однотипная операция, имеющая структуру сети Фейштеля повторяется 8 раз. Однако на этом этапе не производится добавление материала ключа. Цель данного преобразования – тщательная рандомизация данных и повышение стойкости шифра к некоторым видам атак (рис.1).

Третий этап: собственно шифрование. В нем используется сеть Фейштеля третьего типа с 4 ветвями, то есть значения трех функций, вычисленных от одной ветви накладываются соответственно на три других, затем идет перестановка машинных слов. Эта операция также повторяется 8 раз (рис.1). Именно на этом этапе происходит смешивание текста с основной (большей) частью материала ключа. Сами функции, накладываемые на ветви, изображены на рис. 2. Как видим, в алгоритме MARS использованы практически все виды операций, применяемых в криптографических преобразованиях: сложение, "исключающее ИЛИ", сдвиг на фиксированное число бит, сдвиг на переменное число бит, умножение и табличные подстановки.

Во второй части операции шифрования повторяются те же операции, но в обратном порядке: сначала шифрование, затем перемешивание, и, наконец, забеливание. При этом во вторые варианты всех операций внесены некоторые изменения таким образом, чтобы криптоалгоритм в целом стал абсолютно симметричным. То есть, в алгоритме MARS для любого X выполняется выражение EnCrypt(EnCrypt(X))=X

Рис.1.

Рис.2.

3.Финалист AES – шифр RC6

Модификация широко известного блочного шифра RC5. Использует только основные математические преобразования, битовые сдвиги и, в качестве функции перемешивания, операцию T(X)=X*(X+1).

Алгоритм является продолжением криптоалгоритма RC5, разработанного Рональдом Ривестом (англ. Ron Rivest) – очень известной личностью в мире криптографии. RC5 был незначительно изменен для того, чтобы соответствовать требованиям AES по длине ключа и размеру блока. При этом алгоритм стал еще быстрее, а его ядро, унаследованное от RC5, имеет солидный запас исследований, проведенных задолго до объявления конкурса AES.

Алгоритм является сетью Фейштеля с 4 ветвями смешанного типа: в нем два четных блока используются для одновременного изменения содержимого двух нечетных блоков. Затем производится обычный для сети Фейштеля сдвиг на одно машинное слово, что меняет четные и нечетные блоки местами. Сам алгоритм предельно прост и изображен на рисунке 3. Разработчики рекомендуют при шифровании использовать 20 раундов сети, хотя в принципе их количество не регламентируется. При 20 повторах операции шифрования алгоритм имеет самую высокую скорость среди 5 финалистов AES.

Рис.3.

Преобразование T(x) очень просто: T(X)=(X*(X+1)) mod 2N. Оно используется в качестве нелинейного преобразования с хорошими показателями перемешивания битового значения входной величины.

4. Финалист AES – шифр Serpent

Шифр использует только операции табличных подстановок, исключающего "ИЛИ" и битовых сдвигов в тщательно подобранной очередности.

Алгоритм разработан группой ученых из нескольких исследовательских центров мира. Алгоритм представляет собой сеть Фейштеля для четырех ветвей смешанного типа: 2 четные ветви изменяют совместно значения нечетных, затем меняются местами. В качестве криптопреобразований используются только исключающее "ИЛИ", табличные подстановки и битовые сдвиги. Алгоритм состоит из 32 раундов. Сами раунды составлены таким образом, что добавление к ветвями материала ключа на первом и последнем раундах образует входное и выходное забеливание (рис. 4).

Рис. 4.

5. Финалист AES – шифр TwoFish

Достаточно сложная в реализации разработка компании Counterpane Security Systems, воплотившая много интересных идей из алгоритма предшественника BlowFish.

Алгоритм разработан команией CounterpainSecuritySystems, возглавляемой Брюсом Шнайером (англ. Bruce Schneier). Предыдущая программная разработка этой фирмы, называвшаяся BlowFish, являлась и до сих пор является признанным криптостойким алгоритмом.

В алгоритме TwoFish разработчики оставили некоторые удачные решения из проекта-предшественника, кроме этого произвели тщательные исследования по перемешиванию данных в сети Фейштеля. Алгоритм представляет собой сеть Фейштеля смешанного типа: первая и вторая ветвь на нечетных раундах производят модификацию третьей и четвертой, на четных раундах ситуация меняется на противоположную. В алгоритме используется криптопреобразование Адамара (англ. Pseudo-Hadamar Transform) – обратимое арифметическое сложение первого потока со вторым, а затем второго с первым.

Единственным нарицанием, поступившим в адрес TwoFish от независимых исследователей, является тот факт, что при расширении материала ключа в алгоритме используется сам же алгоритм. Двойное применение блочного шифра довольно сильно усложняет его анализ на предмет наличия слабых ключей или недокументированных замаскированных связей между входными и выходными данными.

Рис. 5.

6. Победитель AES – шифр Rijndael(произносится Райн-дол)

Название алгоритма представляет собой сокращение из имен создателей - двух бельгийских ученых Винсента Рижмена и Жоан Демен. Доктор Демен работает в группе архитектуры и криптографии научно-исследовательского отдела компании Proton World, а ее соавтор, доктор Рижмен, руководит исследованиями на факультете электроники Левенского католического университета (данные 2001 года). Конечно, раздавались и голоса, что негоже де первой державе мира выбирать в качестве национального стандарта шифрования алгоритм из какой-то там крошечной Бельгии. Но прислушиваться к этим голосам никто не стал.

На веб-странице Винсента Рэймена говорилось по поводу произношения назания следующее: "Да, действительно похоже, что это (произношение) - главная проблема с нашим шифром. Если вы из Фландрии, Нидерландов, Южной Африки, Индонезии или Суринама, то никаких проблем с чтением у вас не будет. Остальным же людям гласные следует произносить примерно так: "ij" как "ai" в английском слове AIRPORT, а "ae" как "a" в английском FAR. Ну, а согласные как обычно". Таким образом, опираясь на усредненное англо-американское произношение можно сделать вывод, что название шифра следует читать как "рэйндал".

Об авторах:

В 1997 году, когда создавался Rijndael, Рэймену было 27, а Дамену - 32 года. Но оба этих "юноши" к тому времени уже защитили докторские диссертации по криптографии в Лувенском университете. Благодаря лаборатории COSIC ("Компьютерная безопасность и промышленная криптография") и работающим в ней людям, университет в небольшом бельгийском городе Лувен стал одним из наиболее авторитетных в Западной Европе исследовательских центров по защите информации.

После победы в конкурсе стандарт был передан в Офис управления и бюджета, а затем возвращен в Министерство Торговли на одобрение. Окончательное одобрение AES было объявлено Эвансом после получения министерством публичных запросов относительно проекта стандарта и их обработки.

Блочный шифр, реализованный не по принципу сети Фейштеля, и имеющий надежную математическую базу преобразований. Структура алгоритма позволяет достичь очень высокой степени оптимизации на персональных ЭВМ и серверах, и в то же время не слишком замедляет выполнение на электронных устройствах с ограниченными ресурсами.

Данный алгоритм является нетрадиционным блочным шифром, поскольку не использует сеть Фейштеля для криптопреобразований. Алгоритм представляет каждый блок кодируемых данных в виде двумерного массива байт размером 4х4, 4х6 или 4х8 в зависимости от установленной длины блока. Далее на соответствующих этапах преобразования производятся либо над независимыми столбцами, либо над независимыми строками, либо вообще над отдельными байтами в таблице.

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

Rijndael является блочным алгоритмом шифрования с переменной длиной блока и переменной длиной ключа. Длина блока и длина ключа могут быть независимо установлены в 128, 192 или 256 бит.

Состояние, ключ шифрования и число раундов

Различные преобразования выполняются над промежуточным результатом, называемым состоянием.

Состояние можно рассматривать как двумерный массив байтов. Этот массив имеет четыре строки и различное число столбцов, обозначаемое как Nb, равное длине блока, деленной на32. Ключ также можно рассматривать как двумерный массив с четырьмя строками. Число столбцовключа шифрования, обозначаемое какNk, равно длине ключа, деленной на32. На рис. 6 Аi,j – байт в блоке.

В некоторых случаях эти блоки также рассматриваются как одномерные массивы четырехбайтных векторов, где каждый вектор состоит из соответствующего столбца. Такие массивы имеют длину 4, 6 или 8 соответственно, и индексы в диапазонах 0 … 3, 0 … 5 или 0 … 7. Четырехбайтные вектора иногда мы будем называть словами.

Если необходимо указать четыре отдельных байта в четырехбайтном векторе, будет использоваться нотация (a, b, c, d), гдеa,b,cиdявляются байтами в позициях 0, 1, 2 и 3, соответственно, в рассматриваемом столбце, векторе или слове.

Рис. 6. Пример состояния (с Nb = 6) и ключа шифрования (с Nk = 4)

Входы и выходы Rijndaelсчитаются одномерными массивами из 8 байтов, пронумерованными от0до4* Nb - 1. Следовательно, эти блоки имеют длину 16, 24 или 32 байта, и массив индексируется в диапазонах0 … 15,0 … 23или0 … 31. Ключ считается одномерным массивом 8-битных байтов, пронумерованных от0до4* Nk - 1. Следовательно, эти блоки имеют длину 16, 24 или 32 байта, и массив индексируется в диапазонах0 … 15,0 … 23или0 … 31.

Входные байты алгоритма отображаются в байты состояния в следующем порядке: А0,0, А1,0, А2,0, А3,0, А0,1, А1,1, А2,1, А3,1, …Байтыключа шифрованияотображаются в массив в следующем порядке:K0,0, K1,0, K2,0, K3,0, K0,1, K1,1, K2,1, K3,1, …После выполнения операции шифрования выход алгоритма получается из байтов состояния аналогичным образом.

Следовательно, если одноразмерный индекс байта в блоке есть n, и двухмерный индекс есть(i,j), то мы имеем:

I = n mod 4

J = n / 4

N = i + 4*j

Более того, индекс iявляется также номером байта в четырехбайтном векторе или слове,jявляется индексом вектора или слова во вложенном блоке.

Число раундовобозначаетсяNrи зависит от значенийNbиNk, что показано в следующей таблице.

Таблица 2.

Число раундов как функция от длины блока и длины ключа

Nr

Nb = 4

Nb = 6

Nb = 8

Nk = 4

10

12

14

Nk = 6

12

12

14

Nk = 8

14

14

14

Преобразование раунда

Преобразование раундасостоит из четырех различных преобразований. В нотации на псевдо С это можно записать следующим образом:

Round (State, RoundKey)

{

ByteSub (State);

ShiftRow (State);

MixColumn (State);

AddRoundKey (State, RoundKey);

}

Заключительный раундалгоритма немного отличается и выглядит следующим образом:

FinalRound (State, RoundKey)

{

ByteSub (State);

ShiftRow (State);

AddRoundKey (State, RoundKey);

}

Как мы видим, заключительный раундэквивалентен остальным, за исключением того, что отсутствует слойMixColumn.

Преобразование ByteSub

Преобразование ByteSubявляется нелинейной байтовой подстановкой, выполняющейся для каждого байта состояния независимо. Таблица подстановки является обратимой и сконструирована в виде композиции двух преобразований:

  1. Во-первых, берется мультипликативная инверсия в GF (28) с определенным выше представлением. '00' отображается сам в себя.

  2. Затем применяется афинное (в GF (2)) преобразование над каждым байтом, определяемое следующим образом (рис. 7):

Рис. 7.

Применение описанного S-boxко всем байтам состояния обозначается как ByteSub (State) – заменяется каждый байт и над каждым байтом выполняется преобразование (рис. 7, 8).

  • ByteSub – табличная подстановка 8х8 бит (рис. 8) аi,j – байт до преобразования, bi,j – байт после преобразования.

Рис. 8.

Преобразование ShiftRow

  • ShiftRow – сдвиг строк в двумерном массиве на различные смещения (рис. 9),

Рис. 9.

В ShiftRowстроки состояния циклически сдвигаются на различные значения. Нулевая строка не сдвигается. Строка 1 сдвигается наС1байтов, строка 2 наС2байтов, строка 3 наС3байтов. ВеличиныС12иС3зависят отNb. Значения приведены в следующей таблице.

Таблица 3

Величина сдвига в зависимости от длины блока

Nb

С1

С2

С3

4

1

2

3

6

1

2

3

8

1

3

4

Операция сдвига строк на указанные значения обозначается как

ShiftRow (State)

Инверсией для ShiftRowявляется циклический сдвиг трех нижних строк соответственно наNb - С1,Nb - С2иNb - С3байт, чтобы байт в позицииjв строкеiперемещался в позицию(j + Nb - Ci) mod Nb.

Преобразование MixColumn

  • MixColumn – математическое преобразование, перемешивающее данные внутри столбца (рис. 10),

Рис. 10.

В MixColumnстолбцы состояния рассматриваются как полиномы в GF (28) и умножаются по модулюх4 + 1на фиксированный полином:

c(x) = '03' x3 + '01' x2 + '01' x + '02'

Данный полином является взаимнопростым с х4 + 1и, следовательно, инвертируем. Как было описано выше, это может быть записано в виде умножения матрицы. Пустьb(x) = c(x) a(x)

Применение данной операции ко всем столбцам состояния обозначается как MixColumn (State).

Инверсия MixColumnявляется аналогичнымMixColumn. Каждый столбец преобразуется умножением его на полиномd(x), определяемый следующим образом:

('03' x3 + '01' x2 + '01' x + '02') d(x) = '01'

В результате получаем

d(x) = '0B' x3 + '0D' x2 + '09' x + '0E'

Сложение с ключом раунда

Выполняется операция побитового XORключараундас текущим состоянием. Длина ключараундаравна длине блокаNb. Данное преобразование обозначается как

AddRoundKey (State, RoundKey)

AddRoundKeyявляется инверсией самого себя.

  • AddRoundKey – добавление материала ключа операцией XOR (рис. 11).

Рис. 11.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]