Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Современные симметричные системы шифрования

Поиск

При построении стойких шифров необходимо использовать два основных принципа – рассеивание и перемешивание [13].

Рассеивание предполагает распространение влияния одного знака открытого текста на множество знаков шифротекста, что позволяет скрыть статистические свойства открытого текста.

Перемешивание предполагает использование таких шифрующих преобразований, которые усложняют восстановление взаимосвязи статистических свойств открытого и шифротекста.

Обычно для достижения эффектов рассеивания и перемешивания используют шифры, реализованные в виде последовательности простых традиционных шифров, каждый из которых вносит свой вклад в суммарное рассеивание и перемешивание. Наиболее часто при этом используют традиционные шифры перестановки и замены.

При многократном чередовании простых перестановок и замен, управляемых достаточно длинным секретным ключом, можно получить очень стойкий шифр с хорошим рассеиванием и перемешиванием. Большинство существующих стандартов шифрования построены в полном соответствии с данной методологией.

 

Стандарт шифрования DES (США)

Алгоритм, изложенный в стандарте DES (Data Encryption Standard), наиболее распространен и широко применяется для шифрования данных в США [7]. Он был разработан фирмой IBM для собственных целей, но после проверки Агентством Национальной Безопасности США был рекомендован к применению в качестве федерального стандарта шифрования. Алгоритм DES не является закрытым и был опубликован для широкого ознакомления. Алгоритм предназначен для зашифровки и расшифровки блоков данных длиной по 64 бита под управлением 64-битового ключа, в котором значащими являются 56 бит. Дешифрование в DES выполняется путем повторения операций шифрования в обратной последовательности.

Обобщенная схема шифрования алгоритма DES представлена на рис. 5.5.

Рис. 5.5. Обобщенная схема шифрования алгоритма DES

Пусть из открытого текста взят очередной 64-битовый блок T. Этот блок T преобразуется с помощью матрицы начальной перестановки IP. Данная перестановка фиксирована и приведена в таблице 5.2.

Таблица 5.2. Начальная перестановка (IP)

               
               
               
               
               
               
               
               

Например, бит 58 входного блока T становится битом 1, бит 50 – битом 2 и т.д.

Далее, полученная в результате перестановки последовательность битов T0 разделяется на 2 последовательности: L0 – старшие 32 бита, R0 – младшие 32 бита.

Затем выполняется итеративный процесс шифрования, состоящий из 16 циклов. Если Ti – последовательность битов, полученная на i – ой итерации, Ti=LiRi, то результат i-ой итерации описывается следующими формулами:

Li=Ri, Ri=Li-1 Å f(Ri-1,Ki), i=1,2,...,16,

где f – функция шифрования.

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

Табл. 5.3. Конечная перестановка(IP-1)

               
               
               
               
               
               
               
               

 

Схема вычисления функции шифрования f(Ri-1,Ki) представлена на рис. 5.6.

Для вычисления функции f используются:

- функция Е, расширяющая 32-битовое значение до 48 бит;

- функции S1,...,S8, преобразующие 6-битовое число в 4-битовое;

- функция P, осуществляющая перестановку битов в 32-битовой последовательности.

Функция расширения E определяется таблицей 5.4 выборки битов.

После расширения Ri-1 результат складывается по модулю два с текущим значением ключа Ki и затем разбивается на восемь 6-битовых блоков B1,B2,...,B8. Далее каждый из этих блоков используется как номер элемента в функциях-матрицах S1,S2,...,S8, содержащих 4-битовые значения (табл. 5.5).

Рис. 5.6. Схема вычисления функции шифрования f

 

Таблица 5.4. Таблица функции расширения Е

           
           
           
           
           
           
           
           

Выбор элемента в матрице Sj осуществляется следующим образом. Пусть на вход матрицы Sj поступает 6-битовый блок B1=b1b2b3b4b5b6, тогда двухбитовое число b1b2 указывает номер строки, а четырехбитовое число b2b3b4b5 – номер столбца матрицы Sj, откуда и берется требуемое четырехбитовое значение. Совокупность 6-битовых блоков B1B2,...,B8 обеспечивает выбор четырехбитового элемента в каждой из матриц S1,S2,...,S8.

Табл. 5.5. Функции преобразования S1,...,S8

Блок замены 1 (S[1])

                               
                               
                               
                               

Блок замены 2 (S[2])

                               
                               
                               
                               

Блок замены 3 (S[3])

                               
                               
                               
                               

Блок замены 4 (S[4])

                               
                               
                               
                               

Блок замены 5 (S[5])

                               
                               
                               
                               

Блок замены 6 (S[6])

                               
                               
                               
                               

Блок замены 7 (S[7])

                               
                               
                               
                               

Блок замены 8 (S[8])

                               
                               
                               
                               

 

 

В результате получаем значение S1(B1) S2(B2)... S8(B8) – 32 битовый блок, который преобразуется с помощью функции перестановки битов P (таблица 5.6.)

Табл. 5.6. Функция перестановки битов P

       
       
       
       
       
       
       
       

Необходимо отметить, что на каждой итерации в схеме 5.6 используется новое значение ключа Ki. Новое значение ключа Ki вычисляется из начального ключа K. Ключ K представляет собой 64-битовый блок с 8 битами контроля по четности, расположенными в позициях 8,16,24,32,40,48,56,64. Для удаления контрольных битов и подготовки ключа к работе используется функция G первоначальной подготовки ключа (табл. 5.7). Данная таблица имеет размер 7x8 и из нее исключены контрольные биты, то есть они не используются при шифровании.

Табл. 5.7. Функция G первоначальной подготовки ключа

 

             
             
             
             
             
             
             
             

Полученную в результате перестановки битов ключа последовательность делят на 2 части – C0 и D0. После этого, рекурсивно вычисляются Ci,Di, i=1,2,...,16. Для этого применяются операции независимого для Ci и Di циклического сдвига влево на 1 или 2 бита в зависимости от номера шага итерации. Число сдвигов на итерацию приведено в таблице ниже.

 

Итерация № 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

Ключ Ki, определяемый на каждом шаге итерации, есть результат перестановки конкатенации CiDi согласно функции H, представленной в таблице 5.8.

Табл. 5.8. Функция H завершающей обработки ключа

           
           
           
           
           
           
           
           

Для шифрования или дешифрования более чем 64 битного блока существуют официальные режимы. Один из них - вычисления для каждого блока в ряде. Он назван режимом электронной кодовой книги. Более сильный метод заключается в суммировании по модулю два блока открытого текста с блоком шифротекста, прежде зашифрованным. Данный метод называется связыванием шифр-блоков (Сifer Block Chaining, CBC).

Другие два режима - режим с выходной обратной связью (Output Feedback mode, OFB) и шифрование с обратной связью (Cifer Feedback mode, CFB), распространяющие искажения в открытом тексте, что применяется для проверки целостности информации.

Число различных ключей DES-алгоритма равно 256 = 7*1016. Недавние исследования показали, что современная технология позволяет создать вычислительное устройство стоимостью около 1 млн. долларов, способное вскрыть секретный ключ с помощью полного перебора в среднем за 3,5 часа.

В настоящее время криптостойкость алгоритма DES не удовлетворяет реальным потребностям, в связи с чем, данный алгоритм в настоящее время заменен в США на более стойкий алгоритм AES.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-10; просмотров: 475; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.231.116 (0.01 с.)