русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Американский стандарт шифрования данных DES


Дата добавления: 2015-08-31; просмотров: 2240; Нарушение авторских прав


Стандарт шифрования данных DES (Data Encryption Standart) опубликован Национальным бюро стандартов США в 1977 г. В 1980 г. этот алгоритм был принят Национальным институтом стандартов и технологий США (НИСТ) в качестве стандарта шифрования данных для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США.

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

Алгоритм DES, используя комбинацию ряда подстановок и перестановок, осуществляет шифрование 64-битовых блоков данных с помощью 56-битового ключа k.

Процесс шифрования состоит в начальной перестановке битов входного блока, шестнадцати циклах шифрования и, наконец, конечной перестановке битов.

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

В приводимом ниже описании алгоритма DES использованы следующие обозначения:

Li и Ri – левая и правая половины 64-битного i-го исходного блока;

Å – операция побитового сложения векторов-блоков по модулю 2;

ki – 48-битовые ключи;

f – функция шифрования;

IP – начальная перестановка степени 64.

При зашифровании очередного блока Т его биты подвергаются начальной перестановке IP согласно табл. 9.

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

               
               
             
               
               
               
               
               

 



При этом бит 58 блока Т становится битом 1, бит 50 битом 2 и т. д. Полученный после перестановки блок IP(Т) разделяется на две половины: L0, состоящую из 32 старит бит, и R0, состоящую из 32 младших бит.

Затем выполняется итеративный процесс шифрования, состоящий из 16 циклов преобразования Фейстеля. Результат i-й итерации Тi =LiRi определяется формулами (5.1), где Y1 =Li a Y2 =Ri

Результатом последней итерации является блок Т16=L16R16. По окончании шифрования осуществляется восстановление позиций битов применением к Т16 обратной перестановки IP -1.

При расшифровании данных все действия выполняются в обратном порядке.

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

функция расширения Е; преобразование S, составленное из восьми преобразований S-блоков S1,S2,...,S8; перестановка Р. Аргументами функции f являются вектор Ri-1 (32 бита) и вектор ki (48 бит). Функция Е "расширяет" 32-битовый вектор Ri-1 до 48-битового вектора Е(Ri-1) путем дублирования некоторых битов вектора Ri-1, при этом порядок следования битов в Е(Ri-1) указан в табл. 10.

Таблица 10

           
           
           
           
           
           
           
           

Первые три бита в Е(Ri-1) – это соответственно биты 32, 1 и 2 вектора Ri-1, а последние три бита – это соответственно биты 31, 32, 1 вектора Ri-1.

Полученный результат складывается побитно по модулю 2 с текущим значением ключа ki и затем представляется в виде восьми последовательных 6-битовых блоков В1,..., В8.

Далее каждый из блоков Вj трансформируется в 4-битовый блок Вj¢ с помощью подходящей таблицы S-блока Sj , список которых приведен в табл. 11. Преобразование блока Вj в Вj¢ осуществляется следующим образом. Пусть, например, В2 равен 111010. Первый и последний разряды (10) являются двоичной записью числа a. Аналогично средние 4 разряда (1101) представляют число b. В нашем примере a =2, b = 13. Таким образом, пара (a, b) однозначно определяет число, находящееся в таблице S2 на пересечении строки с номером а и столбца с номером b. В данном случае это число равно 3. Записывая его в двоичной форме, получаем В2, равный 0011.

Значение f(Ri-1 , ki) теперь получается применением перестановки битов Р, заданной таблицей 12 к результирующему 32-битовому блоку В1¢В2¢…В8¢.

Таблица 11

    НОМЕР СТОЛБЦА    
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15    
Н О МЕ Р   С Т Р О К И   0 1 2 3   14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 4 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13   S1
0 1 2 3   15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9   S2
0 1 2 3   10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12   S3
0 1 2 3   7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14   S4
0 1 2 3   2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3   S5
0 1 2 3   12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 1 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13   S5
0 1 2 3   4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12   S7
0 1 2 3   13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11   S8

Таблица 12

       
       
       
       
       
       
       
       

 

На каждой итерации используется текущее значение ключа ki (48 бит), получаемое из исходного ключа k сле­дующим образом.

Сначала пользователи выбирают сам ключ k, содержа­щий 56 случайных значащих битов. Восемь битов, находя­щихся в позициях 8,16,...,64, добавляются в ключ таким образом, чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Значащие 56 бит ключа подвергаются перестановке, приведенной в табл. 13.

Таблица 13

             
             
             
             
             
             
             
             

 

Эта перестановка определяется двумя блоками С0и D0 по 28 бит в каждом (они занимают соответственно верхнюю и нижнюю половины таблицы). Так, первые три бита в С0 есть соответственно 57, 49, 41 биты ключа. Затем индуктивно определяются блоки Сi и Di , i = 1,…,16.

Если уже определены C i-1 и Di-1, тo Сi, и Di получаются из них одним или двумя левыми циклическими сдвигами согласно табл. 14.

Таблица 14

i                                  
Число сдвигов                              

 

Теперь определим ключи ki, 1 £ i £ 16. Ключ ki состоит из 48 битов, выбираемых из битов блока СiDi согласно таблице 15. Первыми тремя битами в ki являются биты 14, 17, 11 из блока СiDi. Отметим, что 8 из 56 бит (с номерами 9, 18, 22, 25, 35, 38, 43, 54) из СiDi отсутствуют в ki.

Таблица 15

           
           
           
           
           
           
           
           

Сделаем несколько замечаний.

Нелинейность преобразований, осуществляемых DES, определяется только S-блоками. Их выбор не имеет достаточно обстоятельного обоснования. Высказывались мнения о том, что S-блоки имеют некоторую "лазейку", позволяющую осуществлять контроль за шифрованной перепиской. Официальная же версия такова. В 1976 г. АНБ заявило, что выбор S-блоков определен следующими требованиями:

– каждая строка табличного задания каждого S-блока должна являться перестановкой множества {0,1,...,15};

– S-блоки не должны являться линейными или аффинными функциями своих входов;

– изменение одного бита входа S-блока должно приводить к изменению, по крайней мере, двух битов выхода;

– для каждого S-блока и любого входа х значение S(x) и S(xÅ(0,0,1,1,0,0)) должны различаться, по крайней мере, двумя битами.

Криптоанализ DES приводит ко многим нелинейным системам уравнений. Дело в том, что каждый бит блока шифртекста является функцией от всех битов блока открытого текста и ключа. Известные аналитические методы вскрытия DES не дают существенного выигрыша по сравнению с полным перебором всего множества из 256 ключей. К недостаткам алгоритма DES относится небольшое (по современным меркам) число ключей, что дает возможность их полного перебора на быстродействующей вычислительной технике за реальное время.

Официально DES являлся стандартом шифрования данных до 31 декабря 1998 г. В 1997 г. был объявлен конкурс на новый стандарт, который был назван AES (Advanced Encryption Standard). 2 октября 2000 г. Национальный институт стандартов и технологий (НИСТ) США объявил победителя "конкуpca AES". Однако для того, чтобы этот алгоритм завоевал мировое признание, необходимы серьезные исследования его свойств специалистами различных стран.



<== предыдущая лекция | следующая лекция ==>
Принципы построения блочных шифров | Стандарт шифрования данных ГОСТ 28147-89


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.194 сек.