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