Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Комбинированные шифры
Среди комбинированных методов шифрование. Наиболее распространенными являются методы блочного шифрование. Блочное шифрование предполагает разбиение исходного открытого текста на равные блоки, к которым применяется однотипная процедура шифрования. В настоящее время блочные шифры широко используются на практике. Российский и американский стандарты шифрования относятся именно к этому классу шифров. DES (Data Encryption Standard, стандарт шифрования данных) - федеральный стандарт шифрования США в 1977-2001 годах [5]. Несмотря на то, что в настоящий момент федеральным стандартом шифрования США является Rijndael, рассмотрение DES позволяет понять основные принципы блочного шифрования. В алгоритме, лежащем в основе DES, используются методы замены, перестановки и гаммирования (сложение по модулю 2). Открытое сообщение разбивается на блоки длиной 64 бита. Если длина сообщения не кратна 64, оно дополняется справа недостающим количеством битов. Данные шифруются ключом длиной 56 бит. На самом деле ключ имеет размер 64 бита, однако реально для выработки ключевых элементов используются только 56 из них. Самые младшие биты каждого байта ключа (8-ой, 16-ый, …, 64-ый) не попадают в ключевые элементы и служат исключительно для контроля четности. Требуется, чтобы сумма битов каждого байта ключа была нечетной. Для решения разнообразных криптографических задач, разработаны четыре рабочих режима, реализующих DES: - электронная кодовая книга ЕСВ (Electronic Code Book); - сцепление блоков шифра СВС (Cipher Block Chaining); - обратная связь по шифртексту СРВ (Cipher Feed Back); - обратная связь по выходу OFB (Output Feed Back). Режим DES-ЕСВ. Открытое сообщение разбивают на 64-битовые блоки. Каждый из них шифруют независимо с использованием одного и того же ключа шифрования. Общая схема шифровании блока изображена на рис.16 [6]. 1. Шифрование 64-битового блока данных T начинается с начальной перестановки битов IP (табл.5). В таблице указывается новое положение соответствующего бита. Таким образом, при выполнении начальной перестановки 1-ый бит станет 58-ым, 2-ой – 50-ым, 3-ий – 42-ым и т.д. 2. Результат перестановки Т* разделяется на две 32-битовые части H0 и L0, с которыми выполняются 16 раундов преобразования. 3. В каждом раунде i старшая половина Hi-1 блока модифицируется путем побитового прибавления к ней по модулю 2 (Å) результата вычисления функции шифрования f, зависящей от младшей половины блока Li–1 и 48-битового ключевого элемента ki. Ключевой элемент ki вырабатывается из ключа шифрования. Между раундами старшая и младшая половины блока меняются местами. На последнем раунде происходит то же самое за исключением обмена значениями половинок блока. 4. Полублоки H16 и L16 объединяются в полный блок Т**, в котором выполняется конечная битовая перестановка IP–1 (табл.6), обратная начальной. Результат последней операции и является выходным значением цикла шифрования – зашифрованным блоком T'. Все перестановки в таблицах IP и IP-1 подобраны разработчиками таким обра Схема функции шифрования f приведена на рис.17. 1. На вход поступает 32-битовая половина шифруемого блока Li-1 и 48-битовый ключевой элемент ki. 2. Li-1 разбивается на 8 тетрад по 4 бита. Каждая тетрада по циклическому закону дополняется крайними битами из соседних тетрад до 6-битного слова. Цикличность означает, что первый бит Li-1 добавляется последним в последнее слово, а последний бит Li-1 добавляется первым в первое слово. Далее выполняется объединение тетрад в 48-битный блок X. Например, Li-1=0111 0110 1… …0 1101, тогда Х=101110 101101 … 011010. 3. Х побитно суммируется по модулю 2 (Å) с ключевым элементом ki. 4. 48-битовый блок данных H разделяется на восемь 6-битовых элементов, обозначенных h1, h2, …, h8. 5. Каждое из значений hj преобразуется в новое 4-битовое значение tj с помощью соответствующего узла замены Sj (табл.8). Если на вход Sj поступает блок hj=b1b2b3b4b5b6, то двухбитовое число b1b6 указывает номер строки матрицы, а четырёхбитовое число b2b3b4b5 - номер столбца в таблице узлов замен. В результате применения узла замены Si к блоку hi получается число (от 0 до 15), которое преобразуется в ti. Например, в узел замены S3 поступает h3=101011. Тогда, номер строки равен 3 (b1b6=11), номер столбца – 5 (b2b3b4b5=0101), t3=1001 (9). 6. Полученные восемь элементов ti вновь объединяются в 32-битовый блок H’. 7. В H’ выполняется перестановка битов P (табл.7). Результат последней операции и является выходным значением функции шифрования Li-1’. Таблица 7
|