Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по КМЗИ.docx
Скачиваний:
48
Добавлен:
17.04.2019
Размер:
777.16 Кб
Скачать

9. Структура и основные параметры алгоритма шифрования des, его достоинства и недостатки.

DES (Data Encryption Standard) — симметричный алгоритм шифрования, разработанный фирмой IBM и утвержденный правительством США в 1977 году как официальный стандарт. DES имеет блоки по 64 бита и 16 цикловую структуру сети Фейстеля, для шифрования использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований. Для DES рекомендовано несколько режимов: режим электронной кодовой книги (ECB — Electronic Code Book) , режим сцепления блоков (СВС — Cipher Block Chaining), режим обратной связи по шифротексту (CFB — Cipher Feed Back), режим обратной связи по выходу (OFB — Output Feed Back). В алгоритме DES используются прямое преобразование сетью Фейстеля в шифровании и обратное преобразование сетью Фейстеля в расшифровании. DES состоит из следующих операций: 1.Начальная битовая перестановка. 2. 16 итераций Фейстеля. 3.Конечной битовой перестановки. Исходный текст T (блок 64 бит) преобразуется c помощью начальной перестановки IP которая определяется таблицей. Полученный после начальной перестановки 64-битовый блок IP(T) участвует в 16-циклах преобразования Фейстеля. - 16 циклов преобразования Фейстеля: Разбить IP(T) на две части L_0,R_0, где L_0,R_0 — соответственно 32 старших битов и 32 младших битов блока T_0 IP(T)= L_0R_0 . Пусть T_i − 1 = L_i − 1R_i − 1 результат (i-1) итерации, тогда результат i-ой итерации T_i = L_iR_i определяется: L_i = R_i – 1 ;R_i=L_i-1⊕f(R_i-1,k_i). Левая половина L_i равна правой половине предыдущего вектора L_i – 1 R_i − 1. А правая половина R_i — это битовое сложение L_i − 1 и f(R_i − 1,k_i) по модулю 2. В 16-циклах преобразования Фейстеля функция f играет роль шифрования. Аргументами функции f являются 32-битовый вектор R_i − 1 и 48-битовый ключ k_i, которые являются результатом преобразования 56-битового исходного ключа шифра k. Для вычисления функции f используются функция расширения Е, преобразование S, состоящее из 8 преобразований S-блоков S1, S2, S3,…S8, и перестановка P. Функция Е расширяет 32-битовый вектор R_i − 1 до 48-битового вектора E(R_i − 1) путём дублирования некоторых битов из R_i – 1. Конечная перестановка IP − 1 действует на T16 и используется для восстановления позиции. Она является обратной к перестановке IP. При расшифровании данных все действия выполняются в обратном порядке. R_i−1= L_i ; L_i-1=R_if(L_i,k_i) . Достоинства и недостатки: Начальная и конечная перестановки легко реализуются аппаратно и очень неудобно при программной реализации. DES долгое время был основным алгоритмом шифрования, но с ростом вычислительных мощностей стало возможным вычисление ключа с помощью «грубой силы», при длине ключа 56-бит.

10,11,12. Режимы применения блочных шифров.

Б лочный шифр — разновидность симметричного шифра. Особенностью блочного шифра является обработка блока нескольких байт за одну итерацию (как правило 8 или 16).Блочные криптосистемы разбивают текст сообщения на отдельные блоки и затем осуществляют преобразование этих блоков с использованием ключа. Преобразование должно использовать следующие принципы: Рассеивание (diffusion) — то есть изменение любого знака открытого текста или ключа влияет на большое число знаков шифротекста, что скрывает статистические свойства открытого текста; Перемешивание (confusion) — использование преобразований, затрудняющих получение статистических зависимостей между шифротектстом и открытым текстом. Режимы применения: Electric Code Book(ECB). Каждый блок открытого текста заменяется блоком шифротекста. C_i=E_k(P_i), где i — номера блоков, Ci и Pi - блоки зашифрованного и открытого текстов соответственно, а E_k — функция блочного шифрования. Расшифровка аналогична: P_i=D_k(C_i). Cipher Block Chaining (CBC). Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция XOR) с предыдущим результатом шифрования. Шифрование: C0 = IV,C_i=E_k (P_i C_i-1) , где i — номера блоков, IV — вектор инициализации (синхропосылка), C_i и P_i— блоки зашифрованного и открытого текстов соответственно, а E_k— функция блочного шифрования. Расшифровка: P_i=C_i-1 ⊕ D_k (C_i). Cipher Feedback (CFB). Режим обратной связи по шифротексту, режим гаммирования с обратной связью (англ. Cipher Feedback Mode, CFB). Для шифрования следующего блока открытого текста он складывается по модулю 2 с перешифрованным (блочным шифром) результатом шифрования предыдущего блока.C0 = IV;C_i=E_k(C_i-1)⊕P_i; P_i=E_k(C_i-1)⊕ C_i. Output Feedback (OFB). Режим (OFB) обратной связи вывода превращает блочный шифр в синхронный шифрпоток: это генерирует ключевые блоки, которые являются результатом сложения с блоками открытого текста, чтобы получить зашифрованный текст. Так же, как с другими шифрами потока, зеркальное отражение в зашифрованном тексте производит зеркально отраженный бит в открытом тексте в том же самом местоположении. Это свойство позволяет многим кодам с исправлением ошибок функционировать как обычно, даже когда исправление ошибок применено перед кодированием. C_i=P_i ⊕ O_i; P_i = C_i ⊕ O_i ;O_i= E_k(O_i − 1) ; O_0 = IV. Каждая операция блочного шифра обратной связи вывода зависит от всех предыдущих и поэтому не может быть выполнена параллельно. Однако, из-за того, что открытый текст или зашифрованный текст используются только для конечного сложения, операции блочного шифра могут быть выполнены заранее, позволяя выполнить заключительное шифрование параллельно с открытым текстом. Данный метод называется также "режим обратной связи по выходу". Режим Счетчика (Counter Mode-CTR) предполагает возврат на вход соответствующего алгоритма блочного шифрования значения счетчика, накопленного с момента старта. Увеличивая значение счетчика, алгоритм блочного шифрования образует строку битов, которая используется в качестве бегущего ключа шифра Вернама, т.е. к бегущему ключу и блокам исходного сообщения применяются операции XOR. Режим CTR предусматривает следующие операции. Шифрование в режиме CTR: *ВВОД: Ctr_1, P_1, P_2,…,P_m; *ВЫВОД: Ctr_1, C_1,C_2,…C_m; C_i ← P_i ⊕ ε(Ctr_i); i=1, 2,…,m. Расшифровка в режиме CTR: *ВВОД: Ctr_1,C_1,C_2,…,C_m; ВЫВОД: P_1,P_2,…,P_m; P_i ← C_i ⊕ ε(Ctr_i); i=1,2,…,m; Здесь ε()— алгоритм шифрования с помощью соответствующего блочного шифра; P_1, P_2,…,P_m m последовательных сегментов исходного сообщения, подвергающегося обработке; C_1,C_2,…C_m m последовательных сегментов зашифрованного сообщения, являющегося результатом применения определенного режима шифрования. При отсутствии обратной связи алгоритмы шифрования и расшифровки в режиме CTR могут выполняться параллельно. Это обеспечивает режиму CTR преимущество перед режимами Cipher Feedback (CFB) и Output Feedback (OFB). На картинках: ECB, CBC, CFB, OFB шифрование и расшифрование.