Протоколы Internet


             

Существуют разработки, позволяющие выполнять шифрование


1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Исходный 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 9





14 17 11 24 1 5







1 58 50 42 34 26 18





3 28 15 6 21 10







10 2 59 51 43 35 27





23 19 12 4 26 8







19 11 3 60 52 44 36





16 7 27 20 13 2







63 55 47 39 31 23 15





41 52 31 37 47 55







7 62 54 46 38 30 22





30 40 51 45 33 48







14 6 61 53 45 37 29





44 49 39 56 34 53







21 13 5 28 20 12 4





46 42 50 36 29 32





Таблица 6.4.1.2











































































































Номер итерации



Число сдвигов влево



1



1



2



1



3



2



4



2



5



2



6



2



7



2



8



2



9



1



10



2



11



2



12



2



13



2



14



2



15



2



16



1




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