№ | P(x) | P1(x) | C(x) |
7 | 7 | 6 | 1, 13 |
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
Обратные преобразования
S-1(0110) = 0 = 0000 S-1(1100) = a = 0010 S-1(0011) = a2 = 0100 S-1(1101) = a3 = 1000 S-1(1010) = a4 = 0011 S-1(0000) = a5 = 0110 S-1(0101) = a6 = 1100 S-1(1110) = a7 = 1011 | S-1(0010) = a8 = 0101 S-1(0100) = a9 = 1010 S-1(0111) = a10 = 0111 S-1(1111) = a11 = 1110 S-1(1011) = a12 = 1111 S-1(1001) = a13 = 1101 S-1(1000) = a14 = 1001 S-1(0001) = a15 = 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 >

1.2) SubBytes

1.3) AddRoundKey

1.4) MixColumn



=



2.1) ShiftRow >

2.2) SubBytes

2.3) AddRoundKey

P = (0101 1110 0011 0010)
После шифровки и расшифровки был получен исходный открытый текст.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 |


