|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Многочлены для ByteSub
p(x) = 710 = 01112 = x2 + x + 1 = a10 p1(x) = 610 = 01102 = x2 + x = a5
Многочлен для MixColumn
c(x) = x + 13 = 0001 * x + 1101
Ключ К
i * 2 / 3 = 7 * 2 / 3 = a10 * a * a-4 = a11 * a11 = a15 * a7 = a7 = 10112 (i – k) / 7 = (7 - 1) / 7 = (0111 + 0001) * a-10 = 0110 * a5 = a5 * a5 = a10 = 01112 (3 * i + 4) / k = (3 * 7 + 4) / 1 = (a4 * a10 + 0010) = a14 + 0010 = 1001 + 0010 = 10112 i – 7 = 7 – 7 = 0 K = (1011 0111 1011 0000) Открытый текст P
P = (0101 1110 0011 0010)
S преобразование и обратное для всех элементов
p(x) = 710 = 01112 = x2 + x + 1 = a10 p1(x) = 610 = 01102 = x2 + x = a5 S(x) = x-1 p + p1
S(0) = a5 = 0110 S(a) = a-1 a10 + a5 = a14 a10 + 0110 = a9 + 0110 = 1010 + 0110 = 1100 S(a2) = a-2 a10 + a5 = a13 a10 + 0110 = a8 + 0110 = 0101 + 0110 = 0011 S(a3) = a-3 a10 + a5 = a12 a10 + 0110 = a7 + 0110 = 1011 + 0110 = 1101 S(a4) = a-4 a10 + a5 = a11 a10 + 0110 = a6 + 0110 = 1100 + 0110 = 1010 S(a5) = a-5 a10 + a5 = a10 a10 + 0110 = a5 + 0110 = 0110 + 0110 = 0000 S(a6) = a-6 a10 + a5 = a9 a10 + 0110 = a4 + 0110 = 0011 + 0110 = 0101 S(a7) = a-7 a10 + a5 = a8 a10 + 0110 = a3 + 0110 = 1000 + 0110 = 1110 S(a8) = a-8 a10 + a5 = a7 a10 + 0110 = a2 + 0110 = 0100 + 0110 = 0010 S(a9) = a-9 a10 + a5 = a6 a10 + 0110 = a1 + 0110 = 0010 + 0110 = 0100 S(a10) = a-10 a10 + a5 = a5 a10 + 0110 = 0001 + 0110 = 0111 S(a11) = a-11 a10 + a5 = a4 a10 + 0110 = a14 + 0110 = 1001 + 0110 = 1111 S(a12) = a-12 a10 + a5 = a3 a10 + 0110 = a13 + 0110 = 1101 + 0110 = 1011 S(a13) = a-13 a10 + a5 = a2 a10 + 0110 = a12 + 0110 = 1111 + 0110 = 1001 S(a14) = a-14 a10 + a5 = a1 a10 + 0110 = a11 + 0110 = 1110 + 0110 = 1000 S(a15) = a-15 a10 + a5 = a15 a10 + 0110 = a10 + 0110 = 0111 + 0110 = 0001
Обратные преобразования
Расширение ключа, цикловые константы C[2] = RC[2] 0000 = a1 0000 = C[4] = RC[4] 0000 = a3 0000 = C[6] = RC[6] 0000 = a5 0000 =
W[0] = Key[0] = W[1] = Key[1] = W[2] = W[0] + SB(R(W[1])) + C[2] = + SB(R()) +
W[2] = + + = W[3] = W[1] + W[2] = + = W[4] = W[2] + SB(R(W[3])) + C[4] = + SB(R()) +
W[4] = + + = W[5] = W[3] + W[4] = + = W[6] = W[4] + SB(R(W[5])) + C[6] = + SB(R()) +
W[6] = + + = Шифрование 0)
1.1) SubBytes
1.2) ShiftRow
1.3) MixColumn
c(x) = x + 13 = 0001 * x + 1101
=
=
=
1.4) AddRoundKey W[2] = W[3] =
2.1) SubBytes
2.2) ShiftRow 2.3) AddRoundKey
W[4] = W[5] =
Зашифрованный текст С = (5, 1, 5, 15)
Расшифровка
0) x = x + k2 1.1) x = r -> (x) 1.2) x = s-1 (x) 1.3) x = x + k1 1.4) x = m-1 x 2.1) x = r -> (x) 2.2) x = s-1 (x) 2.3) x = x + k0
0)
1.1) ShiftRow >
SubBytes
AddRoundKey
1.4) MixColumn
=
2.1) ShiftRow >
2.2) SubBytes
2.3) AddRoundKey
P = (0101 1110 0011 0010) После шифровки и расшифровки был получен исходный открытый текст.
Пример выполнения Задания1. Упрощенный алгоритм Rijndael,.
ПОСТРОЕНИЕ ПОЛЯ В приведенных арифметических выражениях вся арифметика в GF(24). Неприводимый многочлен P(x) = x4+x+1. Примитивный элемент a = x.
Обратные элементы: ПАРАМЕТРЫ АЛГОРИТМА i = 15, k = 1 Многочлены для ByteSub: p1(x) = 12 = 1100 = x3 + x2 p0(x) = 4 = 0100 = x2
Многочлен для MixColumn: с(x) = 6x + 11 = 0110*x + 1011
Открытый ключ К: K = (10, 2, 6, 8) Открытый текст:
P = (5, 14, 2, 7) S-box и обратное преобразование:
= Обратное преобразование: ; ; ; S-1: Матрица М:
Матрица :
ВЫПОЛНЕНИЕ АЛГОРИТМА ШИФРОВАНИЯ РАСШИРЕНИЕ КЛЮЧА (Key Expansion) K = (10, 2, 6, 8)
; ; W2 = C4 = ____________ W4 =
; ; W4 = 11110011 C6 = 01100000 ____________ W6 = 01001011
; ; ;
ШИФРОВАНИЕ · · · · · · · ·
Зашифрованный текст:
ДЕШИФРОВАНИЕ · · · · · · · ·
Расшифрованный текст соответствует исходному.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.048 сек.) |