Телекоммуникационные технологии. Том 1



         

Алгоритм DES - часть 3


Исходный 48-разрядный код делится на 8 групп по 6 разрядов. Первый и последний разряд в группе используется в качестве адреса строки, а средние 4 разряда – в качестве адреса столбца. В результате каждые 6 бит кода преобразуются в 4 бита, а весь 48-разрядный код в 32-разрядный (для этого нужно 8 S-матриц). Существуют разработки, позволяющие выполнять шифрование в рамках стандарта DES аппаратным образом, что обеспечивает довольно высокое быстродействие.

Преобразования ключей Kn (n=1,…,16; Kn = KS(n,key), где n – номер итерации) осуществляются согласно алгоритму, показанному на рис. 6.4.1.3.

Рис. 6.4.1.3. Алгоритм вычисления последовательности ключей Kn

Для описания алгоритма вычисления ключей Kn (функция KS) достаточно определить структуру “Выбора 1” и “Выбора 2”, а также задать схему сдвигов влево (табл. 6.4.1.2). “Выбора 1” и “Выбора 2” представляют собой перестановки битов ключа (PC-1 и PC-2; табл. 6.4.1.1). При необходимости биты 8, 16,…, 64 могут использоваться для контроля четности.

Для вычисления очередного значения ключа таблица делится на две части С0 и D0. В С0 войдут биты 57, 49, 41,…, 44 и 36, а в D0 – 63, 55, 47,…, 12 и 4. Так как схема сдвигов задана (табл. 6.4.1.2) C1,D1; Cn, Dn и так далее могут быть легко получены из C0 и D0. Так, например, C3 и D3 получаются из C2 и D2 циклическим сдвигом влево на 2 разряда

Таблица 6.4.1.1

PC-1 (Выбор 1)PC-2 (Выбор 2)
57 49 41 33 25 17 914 17 11 24 1 5
1 58 50 42 34 26 183 28 15 6 21 10
10 2 59 51 43 35 2723 19 12 4 26 8
19 11 3 60 52 44 3616 7 27 20 13 2
63 55 47 39 31 23 1541 52 31 37 47 55
7 62 54 46 38 30 2230 40 51 45 33 48
14 6 61 53 45 37 2944 49 39 56 34 53
21 13 5 28 20 12 446 42 50 36 29 32

Таблица 6.4.1.2

Номер итерацииЧисло сдвигов влево
11
21
32
42
52
62
72
82
91
102
112
122
132
142
152
161




Содержание  Назад  Вперед