Вопросы с 11 по 20. По принятому алгоритму шифрования выполним необходимые действия При этом зашифрованный текст будет иметь вид 85, 54, 25, 96, 60, 24
Скачать 0.61 Mb.
|
0 | 7 | 13 | 14 | 3 | 0 | 6 | 9 | 10 | 1 | 2 | 8 | 5 | 11 | 12 | 4 | 15 | |
1 | 13 | 8 | 11 | 5 | 6 | 15 | 0 | 3 | 4 | 7 | 2 | 12 | 1 | 10 | 14 | 9 | {\displaystyle S_{4}} |
2 | 10 | 6 | 9 | 0 | 12 | 11 | 7 | 13 | 15 | 1 | 3 | 14 | 5 | 2 | 8 | 4 | |
3 | 3 | 15 | 0 | 6 | 10 | 1 | 13 | 8 | 9 | 4 | 5 | 11 | 12 | 7 | 2 | 14 | |
| | | | | | | | | | | | | | | | | |
0 | 2 | 12 | 4 | 1 | 7 | 10 | 11 | 6 | 8 | 5 | 3 | 15 | 13 | 0 | 14 | 9 | |
1 | 14 | 11 | 2 | 12 | 4 | 7 | 13 | 1 | 5 | 0 | 15 | 10 | 3 | 9 | 8 | 6 | {\displaystyle S_{5}} |
2 | 4 | 2 | 1 | 11 | 10 | 13 | 7 | 8 | 15 | 9 | 12 | 5 | 6 | 3 | 0 | 14 | |
3 | 11 | 8 | 12 | 7 | 1 | 14 | 2 | 13 | 6 | 15 | 0 | 9 | 10 | 4 | 5 | 3 | |
| | | | | | | | | | | | | | | | | |
0 | 12 | 1 | 10 | 15 | 9 | 2 | 6 | 8 | 0 | 13 | 3 | 4 | 14 | 7 | 5 | 11 | |
1 | 10 | 15 | 4 | 2 | 7 | 12 | 9 | 5 | 6 | 1 | 13 | 14 | 0 | 11 | 3 | 8 | {\displaystyle S_{6}} |
2 | 9 | 14 | 15 | 5 | 2 | 8 | 12 | 3 | 7 | 0 | 4 | 10 | 1 | 13 | 11 | 6 | |
3 | 4 | 3 | 2 | 12 | 9 | 5 | 15 | 10 | 11 | 14 | 1 | 7 | 6 | 0 | 8 | 13 | |
| | | | | | | | | | | | | | | | | |
0 | 4 | 11 | 2 | 14 | 15 | 0 | 8 | 13 | 3 | 12 | 9 | 7 | 5 | 10 | 6 | 1 | |
1 | 13 | 0 | 11 | 7 | 4 | 9 | 1 | 10 | 14 | 3 | 5 | 12 | 2 | 15 | 8 | 6 | {\displaystyle S_{7}} |
2 | 1 | 4 | 11 | 13 | 12 | 3 | 7 | 14 | 10 | 15 | 6 | 8 | 0 | 5 | 9 | 2 | |
3 | 6 | 11 | 13 | 8 | 1 | 4 | 10 | 7 | 9 | 5 | 0 | 15 | 14 | 2 | 3 | 12 | |
| | | | | | | | | | | | | | | | | |
0 | 13 | 2 | 8 | 4 | 6 | 15 | 11 | 1 | 10 | 9 | 3 | 14 | 5 | 0 | 12 | 7 | |
1 | 1 | 15 | 13 | 8 | 10 | 3 | 7 | 4 | 12 | 5 | 6 | 11 | 0 | 14 | 9 | 2 | {\displaystyle S_{8}} |
2 | 7 | 11 | 4 | 1 | 9 | 12 | 14 | 2 | 0 | 6 | 10 | 13 | 15 | 3 | 5 | 8 | |
3 | 2 | 1 | 14 | 7 | 4 | 10 | 8 | 13 | 15 | 12 | 9 | 0 | 3 | 5 | 6 | 11 | |
Таблица 4. Перестановка P | |||||||
16 | 7 | 20 | 21 | 29 | 12 | 28 | 17 |
1 | 15 | 23 | 26 | 5 | 18 | 31 | 10 |
2 | 8 | 24 | 14 | 32 | 27 | 3 | 9 |
19 | 13 | 30 | 6 | 22 | 11 | 4 | 25 |
{\displaystyle f(R_{i-1},k_{i})=P(B'_{1}B'_{2}...B'_{8})}
Согласно таблице 4, первые четыре бита результирующего вектора после действия функции f — это биты 16, 7, 20, 21 вектора {\displaystyle B'_{1}B'_{2}...B'_{8}}
Генерирование ключей {\displaystyle k_{i}} [править | править код]
Ключи {\displaystyle k_{i}} получаются из начального ключа {\displaystyle k} (56 бит = 7 байтов или 7 символов в ASCII) следующим образом. Добавляются биты в позиции 8, 16, 24, 32, 40, 48, 56, 64 ключа {\displaystyle k} таким образом, чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Затем делают перестановку для расширенного ключа (кроме добавляемых битов 8, 16, 24, 32, 40, 48, 56, 64). Такая перестановка определена в таблице 5.
Рис.6 Схема расшифрования алгоритма DES
Таблица 5. | ||||||||||||||
57 | 49 | 41 | 33 | 25 | 17 | 9 | 1 | 58 | 50 | 42 | 34 | 26 | 18 | {\displaystyle C_{0}} |
10 | 2 | 59 | 51 | 43 | 35 | 27 | 19 | 11 | 3 | 60 | 52 | 44 | 36 | |
63 | 55 | 47 | 39 | 31 | 23 | 15 | 7 | 62 | 54 | 46 | 38 | 30 | 22 | {\displaystyle D_{0}} |
14 | 6 | 61 | 53 | 45 | 37 | 29 | 21 | 13 | 5 | 28 | 20 | 12 | 4 | |
Эта перестановка определяется двумя блоками {\displaystyle C_{0}} и {\displaystyle D_{0}} по 28 бит каждый. Первые 3 бита {\displaystyle C_{0}} есть биты 57, 49, 41 расширенного ключа. А первые три бита {\displaystyle D_{0}} есть биты 63, 55, 47 расширенного ключа. {\displaystyle C_{i},D_{i}} i=1,2,3…получаются из {\displaystyle C_{i-1},D_{i-1}} одним или двумя левыми циклическими сдвигами согласно таблице 6.
Таблица 6. | ||||||||||||||||
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Число сдвига | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
Ключ {\displaystyle k_{i}} , i=1,…16 состоит из 48 бит, выбранных из битов вектора {\displaystyle C_{i}D_{i}} (56 бит) согласно таблице 7. Первый и второй биты {\displaystyle k_{i}} есть биты 14, 17 вектора {\displaystyle C_{i}D_{i}}
Таблица 7. | |||||||||||||||
14 | 17 | 11 | 24 | 1 | 5 | 3 | 28 | 15 | 6 | 21 | 10 | 23 | 19 | 12 | 4 |
26 | 8 | 16 | 7 | 27 | 20 | 13 | 2 | 41 | 52 | 31 | 37 | 47 | 55 | 30 | 40 |
51 | 45 | 33 | 48 | 44 | 49 | 39 | 56 | 34 | 53 | 46 | 42 | 50 | 36 | 29 | 32 |
Конечная перестановка[править | править код]
Конечная перестановка {\displaystyle \mathrm {IP} ^{-1}} действует на {\displaystyle T_{16}^{-1}} (где {\displaystyle T_{16}^{-1}=R_{16}+L_{16}} ) и является обратной к первоначальной перестановке. Конечная перестановка определяется таблицей 8.
Таблица 8. Обратная перестановка{\displaystyle \mathrm {IP} ^{-1}} | |||||||||||||||
40 | 8 | 48 | 16 | 56 | 24 | 64 | 32 | 39 | 7 | 47 | 15 | 55 | 23 | 63 | 31 |
38 | 6 | 46 | 14 | 54 | 22 | 62 | 30 | 37 | 5 | 45 | 13 | 53 | 21 | 61 | 29 |
36 | 4 | 44 | 12 | 52 | 20 | 60 | 28 | 35 | 3 | 43 | 11 | 51 | 19 | 59 | 27 |
34 | 2 | 42 | 10 | 50 | 18 | 58 | 26 | 33 | 1 | 41 | 9 | 49 | 17 | 57 | 25 |
Схема расшифрования[править | править код]
При расшифровании данных все действия выполняются в обратном порядке. В 16 циклах расшифрования, в отличие от шифрования c помощью прямого преобразования сетью Фейстеля, здесь используется обратное преобразование сетью Фейстеля.
{\displaystyle R_{i-1}=L_{i}}
{\displaystyle L_{i-1}=R_{i}\oplus f(L_{i},k_{i})}
Схема расшифрования указана на Рис.6.
Ключ {\displaystyle k_{i}} , i=16,…,1, функция f, перестановка IP и {\displaystyle IP^{-1}} такие же, как и в процессе шифрования. Алгоритм генерации ключей зависит только от ключа пользователя, поэтому при расшифровании они идентичны.
Режимы использования DES[править | править код]
Основная статья: Режим шифрования
DES может использоваться в четырёх режимах.
Режим электронной кодовой книги (ECB — Electronic Codebook): обычное использование DES как блочного шифра. Шифруемый текст разбивается на блоки, при этом каждый блок шифруется отдельно, не взаимодействуя с другими блоками (см. Рис.7).
Рис.7 Режим электронной кодовой книги — ECB
Режим сцепления блоков шифротекста (СВС — Cipher Block Chaining) (см. Рис.8). Каждый очередной блок {\displaystyle M_{i}} i>=1, перед зашифровыванием складывается по модулю 2 с предыдущим блоком зашифрованного текста {\displaystyle C_{i-1}} . Вектор {\displaystyle C_{0}} — начальный вектор, он меняется ежедневно и хранится в секрете.
Рис.8 Режим сцепления блоков — СВС
Режим обратной связи по шифротексту (Cipher Feedback) (см. Рис.9). В режиме CFB вырабатывается блочная «гамма» {\displaystyle Z_{0},Z_{1},...} {\displaystyle Z_{i}=DES_{k}(C_{i-1})} {\displaystyle C_{i}=M_{i}\oplus Z_{i}} . Начальный вектор {\displaystyle C_{0}} является синхропосылкой и предназначен для того, чтобы разные наборы данных шифровались по-разному с использованием одного и того же секретного ключа. Синхропосылка посылается получателю в открытом виде вместе с зашифрованным файлом. Алгоритм DES, в отличие от предыдущих режимов, используется только как шифрование (в обоих случаях).
Рис.9 Режим обратной связи по шифротексту — CFB
Режим обратной связи по выходу (OFB — Output Feedback) (см. Рис.10). В режиме OFB вырабатывается блочная «гамма» {\displaystyle Z_{0},Z_{1},...} {\displaystyle Z_{i}=DES_{k}(Z_{i-1})C_{i}=M_{i}\oplus Z_{i}} , i>=1. Режим также использует DES только как шифрование (в обоих случаях).
Рис.10 Режим обратной связи по выходу — OFB
Достоинства и недостатки режимов:
В режимах ECB и OFB искажение при передаче одного 64-битового блока шифротекста {\displaystyle C_{i}} приводит к искажению после расшифрования только соответствующего открытого блока {\displaystyle M_{i}} , поэтому такие режимы используется для передачи по каналам связи с большим числом искажений.
14.
Основы криптографии
[+]
Реклама
Записаться
|
Вам нравится? Нравится 90 студентам
| Поделиться |
Поддержать курс
| Скачать электронную книгу
Лекция 6: