АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Описание алгоритма DES

Читайте также:
  1. II. ОПИСАНИЕ МАССОВОЙ ДУШИ У ЛЕБОНА
  2. XI. Описание заболевания
  3. Анализ основных конкурентов (схема и описание)
  4. Античное историческое сознание и историописание
  5. Античное историческое сознание и историописание – с. 74-75
  6. Библиографическое описание
  7. Библиографическое описание как форма свертывания информации
  8. Вопрос1 Кинематическое описание движения материальной точки
  9. Вопрос№3 Виды механического движения, графическое описание, харакеристики.
  10. Графическое описание алгоритма
  11. Жизнеописание Павличенки, Матвея Родионыча
  12. ЗАДАНИЕ 4 ПРАВОПИСАНИЕ ПРИСТАВОК

Самым распространенным и наиболее известным алгоритмом симметричного шифрования является DES (Data Encryption Standard). Алгоритм был разработан в 1977 году, с 1980 по 2000 год был принят NIST (National Institute of Standards and Technolody США) в качестве стандарта.

DES является классической сетью Фейштеля с двумя ветвями (см. рис 1). Данные шифруются 64-битными блоками с использованием исходного 64-битного ключа.

Алгоритм преобразует за 16 раундов 64-битный вход X в 64-битный выход Z. Длина ключа Key равна 64 битам, из которых используют для генерирования ключей для каждого раунда шифрования 56 бит (остальные являются контрольными). Общая схема шифрования представлена на рисунке 2.

Процесс шифрования состоит из трех этапов. На первом из них выполняется начальная перестановка (IP) 64-битного исходного текста (забеливание), во время которой биты переупорядочиваются в соответствии со стандартной таблицей. Второй этап состоит из 16 раундов выполнения одной и той же функции F (Ri-1, Ki), которая использует операции сдвига и подстановки. На третьем этапе выполняется IP-1 перестановка результата, полученного на втором этапе. Перестановка IP-1 инверсна начальной перестановке.

Дешифрование состоит из 16 циклов дешифрования и конечного восстановления порядка бит. Все ниже приведенные таблицы стандартны и должны включаться в программную реализацию алгоритма DES без искажений. Все перестановки и функции подобраны разработчиками шифра так, чтобы максимально усложнить процесс дешифрования путем подбора ключа. В исходном файле отделяют очередной 64-битовый(8–байтный) блок Т. Этот блок преобразуют в соответствии с матрицей начальной перестановки бит (IP – матрица приведена в табл.1). Полученную последовательность разделяют на две последовательности: – L0 левые или старшие биты и R0 – правые или младшие биты (каждая длиной 32 бита). Потом реализуют итерационный процесс шифрования, состоящий из 16 циклов (раундов). Пусть Ti – результат итерации.

Ti = LiRi,

где Li – первые 32 бита последовательности;

Ri – последние 32 бита последовательности.

Результат i -й итерации описывается следующими формулами:

Li = Ri-1, i=1,2,3,…,16;

Ri = Li-1 xor F (Ri-1, Ki), i=1,2,3,…,16.

Функцию F называют функцией шифрования. Ее аргументами есть последовательность Ri-1, полученная в предыдущем цикле шифрования и 48-битовый ключ i -го раунда Ki, который получают в результате преобразования 64-битового ключа шифра Key.

После 16-го цикла шифрования получают последовательность T16 = L16R16, в которой осуществляют восстановление позиций бит с помощью матрицы обратной перестановки IP-1 (см. табл. 2).

 

На рисунке 3 приведена схема реализации функции F (Ri-1, Ki).

 
 

Рисунок 3 – Реализация функции F

 

Таблица 1 – IP – матрица

               
               
               
               
               
               
               
               

 

Таблица 2 – Матрица обратной перестановки IP-1

               
               
               
               
               
               
               
               

 

Формирование функции F выполняют так: расширяют блок Li-1 с 32 бит до 48 бит в соответствии с матрицей Е (табл.3).

 

 

Таблица 3 – Матрица расширения Е

 

           
           
           
           
           
           
           
           

 

Преобразование S-boxes осуществляется так: 48-битовый блок после выполнения расширения в соответствии с матрицей Е и выполнения операции «сложение по модулю 2» с таким же по длине ключом раунда Кi (получение этого ключа из ключа шифрования К будет описано ниже) разбивают на 8 блоков по 6 бит каждый и преобразуют в соответствии с таблицей 4 в 4-х битовые блоки (длина общего блока на выходе 32 бита). После этого полученную последовательность преобразуют перестановкой бит в соответствии с матрицей Р (см. табл. 4).

Таблица 4 – Р-матрица перестановки бит

 

       
       
       
       
       
       
       
       

Таблица 5 – Функция преобразования S-boxes

 

Номер строки Номер столбца
                                   
                                  S1
                                 
                                 
                                 
                                  S2
                                 
                                 
                                 
                                  S3
                                 
                                 
                                 
                                  S4
                                 
                                 
                                 
                                  S5
                                 
                                 
                                 
                                  S6
                                 
                                 
                                 
                                  S7
                                 
                                 
                                 
                                  S8
                                 
                                 
                                 

Пример преобразования Пусть на S6 подается следующая последовательность бит b1b2b3b4b5b6 (010011). Крайние биты b1b6 (01=1) определяют номер строки, а средние b2b3b4b5 (1001) – номер столбца (в бинарной записи 1001=9). В примере на выход будет выдано 1= 0001.

 

 

 
 

Для каждого раунда шифрования по определенному алгоритму (см. рис. 4) выполняется подготовку ключа Ki, из ключа шифра K. В ключе K, длина которого 64 бита удаляют контрольные биты (8,16,24,32,40,48,56,64), а из оставшихся формируют две последовательности C0 ,D0, каждая длиной по 28 бит в соответствии с матрицей G (см. табл. 6) (первые 4 строки C0, оставшиеся – D0). Ключ Ki для каждого раунда шифрования получают выбором бит из последовательности Ci-1 ,Di-1, определяемых матрицей H (см. табл. 7). Для формирования очередной последовательности Ci,Di используют операцию «циклический сдвиг влево» на один или два бита (для i = 1,2,9,16 – один бит, для остальных итераций – 2 бита).

Рисунок 4 – Схема генерирования ключей раундов ki

 

Таблица 6 - G-функция первичной подготовки ключа

 

             
             
             
             
             
             
             
             

 

 

Таблица 7 - H-матрица завершающей обработки ключа

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)