|
Методические указания по курсовому проектированию по курсу Методы и Средства Защиты Информации
S-матрицы представляют собой таблицы содержащие 4-ряда и 16 столбцов. Набор матриц приведен в Приложении 2. Матрица S(1) представлена ниже (эта матрица, так же как и те, что приведены в Приложении 2, являются рекомендуемыми). №
| 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 0
| 14
| 4
| 13
| 1
| 2
| 15
| 11
| 8
| 3
| 10
| 6
| 12
| 5
| 9
| 0
| 7
| 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 омер итерации) осуществляются согласно алгоритму, показанному на рис. 1.3.
Рис. 1.3. Алгоритм вычисления последовательности ключей Kn
Для описания алгоритма вычисления ключей Kn (функция KS) достаточно определить структуру ыбора 1 ыбора 2а также задать схему сдвигов влево (табл. 1.2). ыбора 1 ыбора 2редставляют собой перестановки битов ключа (PC-1 и PC-2; табл. 1.1). При необходимости биты 8, 16,…, 64 могут использоваться для контроля четности.
Для вычисления очередного значения ключа таблица делится на две части С0 и D0. В С0 войдут биты 57, 49, 41,…, 44 и 36, а в D0 , 55, 47,…, 12 и 4. Так как схема сдвигов задана (табл. 1.2) C1,D1; Cn, Dn и так далее могут быть легко получены из C0 и D0. Так, например, C3 и D3 получаются из C2 и D2 циклическим сдвигом влево на 2 разряда.
Таблица 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
|
Таблица 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
| Приложение 1. Таблица ASCII
Код (Hex)
| Символ
| Код (Hex)
| Символ
| Код (Hex)
| Символ
| Код (Hex)
| Символ
| Код (Hex)
| Символ
| Код (Hex)
| Символ
| 20
| Пробел
| 30
| .
| 40
| @
| 50
| P
| 60
| '
| 70
| p
| 21
| !
| 31
| 0
| 41
| A
| 51
| Q
| 61
| a
| 71
| q
| 22
| "
| 32
| 1
| 42
| B
| 52
| R
| 62
| b
| 72
| r
| 23
| #
| 33
| 2
| 43
| C
| 53
| S
| 63
| c
| 73
| s
| 24
| $
| 34
| 3
| 44
| D
| 54
| T
| 64
| d
| 74
| t
| 25
| %
| 35
| 4
| 45
| E
| 55
| U
| 65
| e
| 75
| u
| 26
| &
| 36
| 5
| 46
| F
| 56
| V
| 66
| f
| 76
| v
| 27
| '
| 37
| 6
| 47
| G
| 57
| W
| 67
| g
| 77
| w
| 28
| (
| 38
| 7
| 48
| H
| 58
| X
| 68
| h
| 78
| x
| 29
| )
| 39
| 8
| 49
| I
| 59
| Y
| 69
| i
| 79
| y
| 2A
| *
| 3A
| 9
| 4A
| J
| 5A
| Z
| 6A
| j
| 7A
| z
| 2B
| +
| 3B
| :
| 4B
| K
| 5B
| [
| 6B
| k
| 7B
| {
| 2C
| ,
| 3C
| ;
| 4C
| L
| 5C
| \
| 6C
| l
| 7C
| |
| 2D
| -
| 3D
| <
| 4D
| M
| 5D
| ]
| 6D
| m
| 7D
| }
| 2E
| .
| 3E
| >
| 4E
| N
| 5E
| ^
| 6E
| n
| 7E
|
| 2F
| /
| 3F
| ?
| 4F
| O
| 5F
| _
| 6F
| o
| 7F
| DEL
| |
|
|