КАТЕГОРИИ: Архитектура-(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) |
Лекция № 8. 3. MixColumns (перемешивание)
1. SubBytes (замена) 2. ShiftRov (сдвиг) 3. MixColumns (перемешивание) 4. AddRoundKey (сложение с ключом)
Замена.
Возможности отражены в следующей таблице:
Быстродействие не очень снижается. Nr – число раундов; Nb – число столбцов; Nk – число столбцов в ключе. Nk = 4 – 128 бит Nk = 6 – 196 бит Nk = 8 – 256 бит
Описание операции
В′ = АВ С В′ - выходной столбец. А – фиксированная матрица. Во всех преобразованиях она не меняется. С – константа.
А =
Матрица А является невырожденной матрицей, следовательно, она имеет обратную матрицу. Их число достаточно большое. При расшифровании известно В′ А-1В′ С = В
С =
В′ =
= *
Это нелинейная операция (аффинная).
bi′, i = от 0 до 7 bi′ = bi b(i+4)mod8 b(i+5)mod8 b(i+6)mod8 b(i+7)mod8 Ci b0′ = b0 b4 b5 b6 b7 b1′ = b0 b1 b5 b6 b7 b2′ = b0 b1 b2 b6 b7 b3′ = b0 b1 b2 b3 b7 b4′ = b0 b1 b2 b3 b4 b5′ = b1 b2 b3 b4 b5 b6′ = b2 b3 b4 b5 b6 b7′ = b3 b4 b5 b6 b7 Матрица реализуется аппаратно
x = 5, y = 3 Программным способом можно реализовать в виде этой таблицы, где в каждой клетке – байт. х – номер строки у – номер столбца ed – новый байт
Расшифрование производится следующим образом: b′(x) = a(x)·f(x)mod p(x) g(x) После выполнения этой операции получаем новую матрицу.
ShiftRov.
Первая строка не изменяется, вторая – сдвигается на одну позицию влево, третья – на 2 позиции, четвертая – на три позиции влево.
MixColumns.
Производится смена столбцов. Результат преобразования ставится на прежнее место.
=
0≤С≤3
*
Это можно представить в виде формулы Soc′ = ({02}· Soc) ({03}· S1c) S2c S3c S1c′ = Soc ({02}· S1c) ({03}· S2c) S3c S2c′ = S0c S1c ({02}· S2c) ({03}· S3c) S3c′ = ({03}· Soc) S1c S2c ({02}· S3c) AddRoundKey
Данная процедура повторяется 10 раундов. Исходное состояние после 10-ого раунда есть выходной шифр. На каждом раунде используется новый ключ (128 бит).
Алгоритм расширения ключа
128 бит раунд 1 раунд 10
Преобразование идет со столбцами Столбцы с индексами, кратными 4, над которыми преобразование производится иначе, чем над столбцами с индексами, некратными четырем (текущими). Текущее слово w(i) = w(i-1) w(i-Nk) Nk = 4,6,8 w(5) = w(4) w(1) w(6) = w(5) w(2) Для столбцов с индексами, кратными четырем, вводятся следующие операции: 1. RotWord 2. Subbytes 3. Операция сложения с константой RotWord – сдвиг 32-разрядного слова. Subbytes – побайтное изменение на основе ранее изложенной операции B′= AB C R – константа Rconst = 2j-1 w(4) j=1 Rconst (i/Nk) = j W(i) = SubWord (RotWord(w[i-1])) Rconst[i/Nk] w[i-Nk]
Требования к алгоритму расширения ключа 1. Обратимость используемых преобразований. Из любых Nk последовательных слов можно однозначно восстановить весь развернутый ключ. Это достигается за счет простых обратимых операций. B = A-1B′ C Матрица А должна быть квадратной и ее определитель не должен быть равен нулю (невырожденная матрица). В этом случае она имеет обратную матрицу. 2. Хорошая скорость на различных типах процессоров. 128 + 128 · 10 = 1408 бит – длина ключевой последовательности, работающей в 10 раундах.
3. Наличие раундовых констант для уменьшения симметричности. 4. Хорошее рассеивание изменений в начальном ключе шифрование на формируемый раундовый ключ. 5. Криптостойкость – отсутствие возможности на основе знаний части бит раундового или начального ключа вычислить значительную часть остальных бит. 6. Достаточная нелинейность для предотвращения полного определения межбитовых зависимостей развернутого раундового ключа на основе знаний таких зависимостей в начальном ключе шифрования. 7. Простота шифрования.
Расшифрование 1. Обратное преобразование по раундам с использованием обратного расширения. Вход для расшифрования – результат 10ого шифра 2. В каждом раунде – тобратное применение операций. Обратная операция по столбцам S′ = [CM] · [S] S = [CM-1] · S′
S = *
S0c′ = ({0c}· S0c) ({0b}· S1c) ({0d}· S2c) ({09}· S3c) S1c′ = ({09}· S0c) ({0c}· S1c) ({0b}· S2c) ({0d}· S3c) S2c′ = ({0d}· S0c) ({09}· S1c) ({0c}· S2c) ({0b}· S3c) S3c′ = ({0b}· S0c) ({0d}· S1c) ({09}· S2c) ({0c}· S3c)
0≤С≤3
Дата добавления: 2014-01-15; Просмотров: 364; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |