Скляр Б. Цифровая связь (2003) (1151859), страница 216
Текст из файла (страница 216)
Для преобразования 64 бит входных данных в 64 бит выходных, определенных как 32 бит левой половины и 32 бит правой, стандартный блок использует 48 бит ключа. Выход каждого стандартного блока становится входом следующего стандартного блока. Входные 32 бит правой половины (Р,,) без изменений подаются на выход и становятся 32 бит левой половины (1.,). Эти й,, бит с помощью таблицы расширения (табл. 14.2) также расширяются и преобразуются в 48 бит, после чего суммируются по модулю 2 с 48 бит ключа. Как и в случае таблицы начальной перестановки, таблица расширения читается слева направо и сверху вниз. Ключ 66 бит Открытый текст ОЕ6 Шифрованный твист 64 64 бит бит Рис. 14.10.
Стандарт шифрования данник Д)ЕБ) в виде блочной системы шифрования 925 14.3. Практическая защищенность Шифрование Выбор ключа в вх в к к ио оо ~о» Рис. 14.П. Онандарт шифроаанин данник 929 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Глава 14. Шифрование и дешифрование К, Вход ыход я,, я, Рис 14. 12. Стандартный компоновочный блок Таблица 14.1.
Начальная перестановка Таблица 14.2.Таблица расширения Данная таблица расширяет биты В, ~ = хн хг, ." хзг в биты (В~-г)х=хзь,хь хг "'хзг,хн (14.22) Отметим, что биты, обозначенные в первом и последнем столбцах таблицы расширения, — это те битовые разряды, которые дважды использовались для расширения от 32 до 48 бит. Далее (В, ~)в суммируется по модулю 2 с 1-м ключом, выбор которого описывается позднее, а результат разделяется на восемь б-битовых блоков. Вь Вг, ..., Вг (В, ~)к 69 К, = Вн Вг, ..., Вг Иными словами, (14.23) 027 14.3.
Практическая защищенность 58 60 62 64 57 59 61 63 32 4 8 12 !6 20 24 28 50 52 54 56 49 51 53 55 1 5 9 !3 17 21 25 29 42 44 46 48 41 43 45 47 2 6 1О 14 18 12 26 30 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 3 7 11 15 19 23 27 3! 18 20 22 24 17 19 21 23 4 8 12 16 20 24 28 32 10 12 14 16 9 1! !3 !5 5 9 13 17 21 25 29 1 Таблица 14.3.
Функции выбора В-блока Столбец Строка 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 8 О В, 13 1О 5 15 Я, 9 8 ! 7 Ю, 12 15 9 4 Я„ 14 9 6 14 5~ 3 11 8 6 13 1 6 9 0 5 3 10 5 2 15 11 14 2 13 13 6 2 0 14 4 13 1 1 0 15 7 4 2 4 1 14 8 8 3 !О ! 10 6 !! 15 !2 6 12 5 12 11 9 9 7 3 15 12 8 15 ! 8 3 13 4 0 !4 7 4 9 1 6 11 3 15 2 8 1О 4 13 7 5 11 4 9 7 14 12 0 ! 5 8 0 6 0 5 9 11 3 2 2 14 7 11 3 !4 !О 2 13 12 1 10 6 12 6 9 3 !3 8 1О 1 0 1О 0 9 14 1 !3 7 0 9 2 13 6 4 9 2 11 6 5 1 13 10 2 8 0 11 1 3 !5 4 6 3 15 3 4 6 8 !5 3 7 12 0 12 7 11 5 14 12 2 12 5 5 14 4 2 11 15 1О 14 3 1 1О !3 0 0 7 13 !4 3 1 13 8 11 5 2 1О 6 9 0 6 9 8 О 6 9 6 15 0 12 11 7 7 4 !5 10 1 2 3 4 7 13 15 ! 14 3 11 8 5 11 2 12 1 3 14 5 5 2 12 4 10 14 2 8 3 !5 0 2 12 4 !4 11 2 4 2 ! 6 1 12 1! 10 1 13 7 !О 11 4 7 13 1О 13 7 8 9 4 6 8 5 1 5 0 8 15 9 5 1! 12 3 15 13 15 1О 3 12 5 6 7 2 0 14 9 8 3 0 !1 8 12 7 12 ! 10 15 10 15 4 2 9 14 15 5 13 6 15 8 0 13 5 6 1 3 7 0 ! !4 2 9 2 6 7 12 9 2 8 12 0 9 10 3 4 !4 13 14 0 4 !О 1 4 5 7 5 11 3 13 11 9 5 15 15 0 8 4 9 1 3 4 3 2 12 0 4 11 2 14 1 !3 0 11 7 0 11 !4 13 3 12 !О !4 3 7 6 9 7 5 5 !2 2 О 8 10 6 15 8 о ой Глава 14.
Шнфоование и дешифрование Каждый из восьми б-битовых блоков В, используется как вход функции б-блока, возвращающей 4-битовый блок 5(В,). Таким образом, входные 48 бит с помощью функции Я-блока преобразуются в 32 бит. Функция отображения Я-блока е, определена в табл. 14.3. Преобразование В,=Ьь Ь! Ьз Ь4, Ьи Ь6 выполняется следующим образом. Нужная строка — это Ь,Ь,, а нужный столбец — ЬрЬ!Ь,Ь,. Например, если Ь, = 110001, то преобразование 5, возвращает значение из строки 3, столбца 8, т.е. число 5 (в двоичной записи 0101).
32-битовый блок, полученный на выходе Я-блока, переставляется с использованием таблицы перестановки (табл. 14.4). Как и другие таблицы, Р-таблица читается слева направо и сверху вниз, так что в результате перестановки битов хн хь ..., ха получаем хи, х„..., хн. 32-битовый выход Р-таблицы суммируется по модулю 2 с 32 бит левой половины (1„!), образуя выходные 32 бит правой половины (В,).
Ркоичавие таблЛ4.3 Столбец Строка 0 ! 2 3 4 5 6 7 8 9 10 !1 12 13 14 15 2 1 4 1! 13 !2 3 7 14 10 15 6 8 0 5 9 2 я„ 12 3 6 11 13 8 0 13 2 8 4 1 1 15 13 8 2 7 11 4 1 1 4 10 6 15 11 10 3 7 9 12 14 7 9 5 1 10 9 4 12 5 2 0 6 0 15 14 3 14 5 6 11 0 10 13 15 2 3 0 !2 14 9 3 5 8 Яз 11 3 2 1 !4 7 4 !О 8 13 15 12 9 0 3 5 6 Таблица 14.4. Таблица перестановки 16 29 Алгоритм стандартного блока может быть представлен следующим образом: Е,=Н, (14.24) И,=Е,,ЮЩ оК,).
(14.25) Здесь Щ ь К,) обозначает функциональное соотношение, включающее описанные выше расширение, преобразование в 5-блоке и перестановку. После 16 итераций в таких стандартных блоках данные размешаются согласно окончательной обратной перестановке, описашюй в табл. 14.5, где, как и ранее, выходные биты читаются слева направо и сверху вниз.
Таблица 14.б. Окоичательнав перестановка Для дешифрования применяется тот же алгоритм, но ключевая последовательность, используемая в стандартном блоке, берется в обратном порядке. Отметим, что зач и ! 5 2 32 19 22 40 39 38 37 36 35 34 ЗЗ 7 12 15 18 8 27 13 11 48 47 46 45 44 43 42 41 16 15 14 13 12 11 10 9 20 28 23 31 24 3 30 4 56 55 54 53 52 51 50 49 24 23 22 21 20 19 18 !7 21 17 26 10 14 9 6 25 64 63 62 61 60 59 58 57 32 31 30 29 28 27 26 25 значение Щ „К), которое может быть также выражено через выход 1-го блока как 7(Ь,, К), делает процесс дешнфрования возможным.
14.3.5.1. Выбор ключа Выбор ключа также происходит в течение 16 итераций, как показано в соответствующей части рис. 14.1!. Входной ключ состоит из 64-битового блока с 8 бит четности в разрядах 8, 16, ..., 64. Перестановочный выбор 1 отбрасывает биты четности и переставляет оставшиеся 56 бит согласно табл. 14.6.
Выход данной процедуры делится пополам на два элемента — С и О, клждый из которых состоит из 28 бит. Выбор ключа проходит в !6 итерациях, проводимых для создания различных множеств 48 ключевых бнт для каждой итерации шифрования. Блоки С и 13 последовательно сдвигаются согласно следуюШим выражениям: Таблица 14.6.
Круговая перестановка С,=Ы(С; ~) и 13;=1.5,(13,,). (14.26) Здесь 1Л; — левый циклический сдвиг на число позиций, показанных в табл, !4.7. За- тем последовательность С„!3, переставляется согласно перестановочному выбору 2, показанному в табл. 14.8. Результатом является ключевая последовательность Кь кото- рая используется в 1-й итерации алгоритма шифрования. Таблица 14.7. Ключевая последовательность сдвигов влево Итереавя 1 Количество сдвигов влево 57 1 10 19 63 7 14 21 49 58 2 11 55 62 6 13 1 2 3 4 5 6 7 8 9 10 11 12 41 50 59 3 42 54 61 5 33 42 51 60 39 46 53 28 25 14 43 52 31 38 45 20 17 26 35 44 23 ЗО 37 12 9 !8 27 36 !5 22 29 4 Окончание ша6к. !4.7 Итерацня ! Количество сдвигов влево 13 14 15 16 Таблица 14.8.
Ключевая перестановка 2 24 6 4 20 37 45 56 36 5 10 8 2 55 48 53 32 !1 15 12 27 31 51 39 50 !7 28 19 7 52 40 49 42 1 21 26 13 47 33 34 29 14 3 23 16 41 30 44 46 14.4. Поточное шифрование Ранее мы определили разовое заполнение как систему шифрования со случайным одноразовым ключом, который обеспечивает безусловную защищенность. Реализовать разовое паточное заполнение можно с использованием действительно случайного потока ключей (ключевая последовательность никогда не повторяется).
Таким образом, совершенная секретность может достигаться для бесконечного числа сообщений, так как каждое сообщение шифруется с помощью разных частей случайного ключевого ало 1а а пгтлнь па~ ь ~п к 13ЕБ может реализовываться подобно блочной системе шифрования (см. рнс. 14.11), что иногда называют методом шифровальной книги. Основным недостатком этого метода является то, что (при использовании одного ключа) данный блок входного открытого текста будет всегда давать тот же выходной шифрованный блок. Еще один способ шифрования, называемый способом шифрования с обратной связью, приводит к шифрованию отдельных битов, а не символов, что дает паточное шифрование [3[.
В системе шифрования с обратной связью (описанной ниже) шифрование сегмента открытого текста зависит не только от ключа и текущих данных, но и от некоторых предшествующих данных. С конца 1970-х широко обсуждались два спорных момента, связанных с 1)ЕБ [10). Первый касается длины ключа. Некоторые исследователи считали, что 56 бит не достаточно, чтобы исключить взлом путем перебора. Второй момент касается внутренней структуры 5-блоков„которые никогда не выпускались 1ВМ. Агентспю национальной безопасности США, которое было привлечено к тестированию алгоритма 1)ЕБ, потребовало, чтобы эта информация не обсуждалась публично.
Критики опасаются, что АНБ участвовало в проектировании этих схем и теперь способно "проникать" в любое сообщение, шифрованное согласно 1)ЕБ [1О). В настоящее время стандарт 1)Е5 больше не является приемлемым выбором, обеспечивающим надежное шифрование. Поиск 56-битового ключа с помощью недорогих компьютерных методов является делом нескольких дней [1Ц. (Некоторые альтернативные алгоритмы обсуждаются в разделе 14.6.) потока. Развитие схем поточного шифрования — это попытка имитации схем одномоментного заполнения.
Большой упор делается на генерации ключевых потоков, которые должны выглядеть случайными. Реализовать такие последовательности можно с помошью соответствуюших алгоритмов. Названная технология поточного шифрования использует псевдослучайные последовательности; их название отражает тот факт, что они выглядят случайными для случайного наблюдателя.