Пример выполнения Задания. Упрощенный алгоритм Rijndael (вариант 2).
1. 1 ПОСТРОЕНИЕ ПОЛЯ
В приведенных арифметических выражениях вся арифметика в GF(24).
Неприводимый многочлен P(x) = x4+x+1.
Примитивный элемент a = x.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Обратные элементы:
![]()














1. 2 ПАРАМЕТРЫ АЛГОРИТМА
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)
1010 | 0110 |
0010 | 1000 |
Открытый текст:





P = (5, 14, 2, 7)
0101 | 0010 |
1110 | 0111 |
S-box и обратное преобразование:
![]()
= 

![]()
Обратное преобразование:
;
;
; S-1: ![]()
7
Матрица М:

Матрица
:

![]()


x | x-1 | S(x) | S-1(x) | ||
0 | 0000 | 0 | 0000 | 0100 | 0010 |
α | 0010 | 2 | 1001 | 1110 | 1111 |
α2 | 0100 | 4 | 1101 | 1101 | 1001 |
α3 | 1000 | 8 | 1111 | 0100 | 0011 |
α4 | 0011 | 3 | 1110 | 1000 | 0001 |
α5 | 0110 | 6 | 0111 | 0010 | 1111 |
α6 | 1100 | 12 | 1010 | 1011 | 1110 |
α7 | 1011 | 11 | 0101 | 1011 | 1100 |
α8 | 0101 | 5 | 1011 | 0111 | 1110 |
α9 | 1010 | 10 | 1100 | 0001 | 0111 |
α10 | 0111 | 7 | 0110 | 1110 | 0101 |
α11 | 1110 | 14 | 0011 | 0101 | 0010 |
α12 | 1111 | 15 | 1000 | 0010 | 0010 |
α13 | 1101 | 13 | 0100 | 0111 | 0100 |
α14 | 1001 | 9 | 0010 | 1101 | 1010 |
α15 | 0001 | 1 | 0001 | 1000 | 1010 |
1. 3 ВЫПОЛНЕНИЕ АЛГОРИТМА ШИФРОВАНИЯ
1. 3. 1 РАСШИРЕНИЕ КЛЮЧА (Key Expansion)
K = (10, 2, 6, 8)
1010 | 0110 |
0010 | 1000 |
W1 | 1010 | 0010 |
W2 | 0110 | 1000 |

;


;
W2 =

C4 = ![]()
____________
W4 = ![]()
W3 | 1100 | 1010 |
W4 | 1111 | 0011 |

|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 |


