Читайте также: |
|
14.3.2. Подстановка
Технология шифрования с помощью подстановки, например использование шифра Цезаря и прогрессивного ключа шифрования Тритемиуса, широко используется в головоломках. Такие простые подстановочные шифры дают малую защищенность. Чтобы к подстановочной технологии можно было применить концепцию смешения, требуется более сложное соотношение. На рис. 14.6 изображен пример создания большей подстановочной сложности с помощью использования нелинейного преобразования. В общем случае п входных битов сначала представляются как один из 2" различных символов (на приведенном рисунке п = 2). Затем множество из 2"символов перемешивается так, чтобы каждый символ заменялся другим символом множества. После этого символ снова превращается в п- битовый.
Можно легко показать, что существует (2я)! различные подстановки или связанные с ними возможные модели. Задача криптоаналитика становится вычислительно невозможной для больших п. Пусть п = 128, тогда 2" = 1038 и (2")! представляет собой астрономическое число. Видим, что для п = 128 это преобразование с помощью блока подстановки (substitution block, S-блок) является сложным (запутывающим). Впрочем, хотя S-блок с п = 128 можно считать идеальным, его реализация является невозможной, поскольку она потребует блока с 2п = 1038 контактами.
Чтобы убедиться, что S-блок, приведенный на рис. 14.6, представляет собой нелинейное преобразование, достаточно использовать теорему о суперпозиции, которая формулируется ниже. Предположим, что
С=Та+7Ъ (14.21) С =Т(а + Ъ),
где а и Ь — входные элементы, С и С'— выходные элементы, а Г— преобразование. Тогда
Если Г линейно, С=С для всех входных элементов.
Если Г нелинейно, СфС.
Предположим, а = 001 и 6 = 010; тогда, используя преобразование Т, показанное на рис. 14.6, получим следующее:
С=Г(001)® Г(010)=111 0000 = 111,
С = Г(001 0 010) = 7X011) = 110.
Здесь символ © обозначает сложение по модулю 2. Поскольку С* С, S-блок является нелинейным.
При перестановке (транспозиции), буквы исходного открытого текста в сообщении не заменяются другими буквами алфавита, как в классических шифрах, а просто переставляются. Например, слово “THINK” после перестановки может выглядеть как шифрованный текст HKTNI. На рис. 14.7 приведен пример бинарной перестановки данных (линейная операция). Видно, что входные данные просто перемешиваются или переставляются. Преобразование выполняется с помощью блока перестановки (permutation block, P-блок). Технология, используемая сама по себе, имеет один основной недостаток: она уязвима по отношению к обманным сообщениям. Обманное сообщение изображено на рис. 14.7. Подача на вход единственной 1 (при остальных 0) позволяет обнаружить одну из внутренних связей. Если криптоаналитику необходимо выполнить криптоанализ такой системы с помощью атаки открытого текста, он отправит последовательность таких обманных сообщений, при каждой передаче смещая единственную 1 на одну позицию. Таким образом, обнаруживаются все связи входа и выхода. Данный пример показывает, почему защищенность системы не должна зависеть от ее архитектуры.
14.3.4. Продукционный шифр
Для преобразований, включающих значительное число «-символьных сообщений, желательным является применение обеих описанных выше схем (S-блока и P-блока). Шеннон [5] предложил использовать продукционный шифр, или комбинацию преобразований S- и Р- блоков, которые вместе могут дать более мощную систему шифрования, чем каждый из них в отдельности. Этот подход, выборочно использующий преобразования замещения и перестановки, был использован IBM в системе LUCIFER [7, 8] и стал основой национального стандарта шифрования данных (Data Encryption Standard — DES) [9]. На рис. 14.8 изображены такие комбинации Р- и S-блоков. Дешифрование выполняется обратным прогоном данных, при котором используются преобразования, обратные к преобразованию каждого S-блока. Систему, изображенную на рис. 14.8, реализовать довольно трудно, поскольку все S-блоки являются различными', случайно генерируемый ключ неприменим и система не дает возможности повторить одну и ту же последовательность операций. Поэтому в системе LUCIFER [8] использовались два различных типа S-блоков, и S0, которые могли быть общедоступными. Пример такой системы изображен на рис. 14.9. Входные данные преобразуются с помощью последовательности S- и P-блоков, определяемой ключом. В приведенном примере ключ размером 25 бит определяет, какой из двух блоков (Si или S0) следует выбрать на каждой из 25 позиций схемы. Таким образом, подробности аппарата шифрования могут быть открыты, поскольку защищенность системы обеспечивается ключом.
Пример двоичного ключа 1010001011111011010111010 Рис. 14.9. Индивидуальные возможности, определяемые ключом |
Итеративная структура продукционной системы шифрования (рис. 14.9) является типичной для большинства реальных блочных шифров. Сообщения делятся на последовательные блоки по п бит, каждый из которых шифруется одним и тем же ключом, л-битовый блок представляет один из 2" различных символов, допускающих (2Л)! различные схемы подстановки. Следовательно, чтобы реализация схемы была разумной, подстановочная часть шифрования выполняется параллельно на небольших сегментах блока. Пример подобной схемы рассмотрен в следующем разделе.
14.3.5. Стандарт шифрования данных
В 1977 году Национальное бюро стандартов США (National Bureau of Standards) приняло модифицированную систему LUCIFER в качестве Национального стандарта шифрования данных (Data Encryption Standard — DES) [9]. Как показано на рис. 14.10, с точки зрения системы ввода-вывода DES может считаться блочной системой шифрования с алфавитом в 264 символа. Входной блок из 64 бит, который является в этом алфавите символом открытого текста, заменяется новым символом шифрованного текста. На рис. 14.11 в виде блочной диаграммы показаны функции системы. Алгоритм шифрования начинается с начальной перестановки 64 бит открытого текста, описанной в таблице начальной перестановки (табл. 14.1). Таблица начальной перестановки читается слева направо и сверху вниз, так что после перестановки биты хх, х2,..., х64 превращаются в х58, х50, х7. После этой начальной перестановки начинается основная часть алгоритма шифрования, состоящая из 16 итераций, которые используют стандартный блок, показанный на рис. 14.12. Для преобразования 64 бит входных данных в 64 бит выходных, определенных как 32 бит левой половины и 32 бит правой, стандартный блок использует 48 бит ключа. Выход каждого стандартного блока становится входом следующего стандартного блока. Входные 32 бит правой половины (R, _,) без изменений подаются на выход и становятся 32 бит левой половины (L,). Эти R,-j бит с помощью таблицы расширения (табл. 14.2) также расширяются и преобразуются в 48 бит, после чего суммируются по модулю 2 с 48 бит ключа. Как и в случае таблицы начальной перестановки, таблица расширения читается слева направо и сверху вниз.
Ключ
56 бит
DES ----------- Шифрованный текст
бит
Рис. 14.10. Стандарт шифрования данных (DES) в виде блочной системы шифрования
64-битовый ключ
Выбор перестановки 1
56-битовый ключ
28-битовый блок Do | |
Левый | сдвиг |
К,
32 бит
32 бит
Рис. 14.12. Стандартный компоновочный блок
Таблица 14.1. Начальная перестановка
|
Таблица 14.2. Таблица расширения
|
Отметим, что биты, обозначенные в первом и последнем столбцах таблицы расширения, — это те битовые разряды, которые дважды использовались для расширения от 32 до 48 бит.
Далее (/?,_ i)£ суммируется по модулю 2 с /-м ключом, выбор которого описывается позднее, а результат разделяется на восемь 6-битовых блоков.
В\, В2,..., В$
Иными словами,
Каждый из восьми 6-битовых блоков В} используется как вход функции S-блока, возвращающей 4-битовый блок Sj{Bj). Таким образом, входные 48 бит с помощью функции S-блока преобразуются в 32 бит. Функция отображения S-блока Sj определена в табл. 14.3. Преобразование В} = Ьи Ь2, Ь3, Ьл, Ь5, Ь6 выполняется следующим образом. Нужная строка — это Ьф6, а нужный столбец — Ь2Ьф4Ь5. Например, если Ь{ = 110001, то преобразование юзвращает значение из строки 3, столбца 8, т.е. число 5 (в двоичной записи 0101). 32-битовый блок, полученный на выходе S-блока, переставляется с использованием таблицы перестановки (табл. 14.4). Как и другие таблицы, P-таблица читается слева направо и сверху вниз, так что в результате перестановки битов х1; х2,..., х32 получаем х16, х7,..., х25. 32-битовый выход Р-таблицы суммируется по модулю 2 с 32 бит левой половины образуя выходные 32 бит правой половины (Л,).
Таблица 14.3. Функции выбора S-блока
|
Столбец | |||||||||||||||||
Строка | |||||||||||||||||
s7 | |||||||||||||||||
S8 | |||||||||||||||||
Таблица 14.4. Таблица перестановки |
Алгоритм стандартного блока может быть представлен следующим образом: |
L, = R,.X, (14.24)
Rl=L,-l®fl.R,.l,Kd. (14.25)
Здесь Дй,-1, К,) обозначает функциональное соотношение, включающее описанные выше расширение, преобразование в 5-блоке и перестановку. После 16 итераций в таких стандартных блоках данные размещаются согласно окончательной обратной перестановке, описанной в табл. 14.5, где, как и ранее, выходные биты читаются слева направо и сверху вниз.
Таблица 14.5. Окончательная перестановка
|
Для дешифрования применяется тот же алгоритм, но ключевая последовательность, используемая в стандартном блоке, берется в обратном порядке. Отметим, что
значение ДЛ, _ lt А",), которое может быть также выражено через выход i-го блока как J{Lh Ki), делает процесс дешифрования возможным.
14.3.5.1. Выбор ключа
Выбор ключа также происходит в течение 16 итераций, как показано в соответствующей части рис. 14.11. Входной ключ состоит из 64-битового блока с 8 бит четности в разрядах 8, 16,..., 64. Перестановочный выбор 1 отбрасывает биты четности и переставляет оставшиеся 56 бит согласно табл. 14.6. Выход данной процедуры делится пополам на два элемента — С и D, каждый из которых состоит из 28 бит. Выбор ключа проходит в 16 итерациях, проводимых для создания различных множеств 48 ключевых бит для каждой итерации шифрования. Блоки С и D последовательно сдвигаются согласно следующим выражениям:
Таблица 14.6. Круговая перестановка
|
Здесь LSi — левый циклический сдвиг на число позиций, показанных в табл. 14.7. Затем последовательность С„ D, переставляется согласно перестановочному выбору 2, показанному в табл. 14.8. Результатом является ключевая последовательность Kh которая используется в i-Pi итерации алгоритма шифрования.
Таблица 14.7. Ключевая последовательность сдвигов влево
Итерация i Количество сдвигов влево
|
ЛОЛ |
Итерация / | Количество сдвигов влево | ||||||
Таблица 14.8. | Ключевая | перестановка 2 | |||||
DES может реализовываться подобно блочной системе шифрования (см. рис. 14.11), что иногда называют методом шифровальной книги. Основным недостатком этого метода является то, что (при использовании одного ключа) данный блок входного открытого текста будет всегда давать тот же выходной шифрованный блок. Еще один способ шифрования, называемый способом шифрования с обратной связью, приводит к шифрованию отдельных битов, а не символов, что дает поточное шифрование [3]. В системе шифрования с обратной связью (описанной ниже) шифрование сегмента открытого текста зависит не только от ключа и текущих данных, но и от некоторых предшествующих данных.
С конца 1970-х широко обсуждались два спорных момента, связанных с DES [10]. Первый касается длины ключа. Некоторые исследователи считали, что 56 бит не достаточно, чтобы исключить взлом путем перебора. Второй момент касается внутренней структуры 5-блоков, которые никогда не выпускались IBM. Агентство национальной безопасности США, которое было привлечено к тестированию алгоритма DES, потребовало, чтобы эта информация не обсуждалась публично. Критики опасаются, что АНБ участвовало в проектировании этих схем и теперь способно “проникать” в любое сообщение, шифрованное согласно DES [10]. В настоящее время стандарт DES больше не является приемлемым выбором, обеспечивающим надежное шифрование. Поиск 56-битового ключа с помощью недорогих компьютерных методов является делом нескольких дней [11]. (Некоторые альтернативные алгоритмы обсуждаются в разделе 14.6.)
Дата добавления: 2015-10-28; просмотров: 63 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Основы теории принятая статистических решений 1051 78 страница | | | Основы теории принятая статистических решений 1051 80 страница |