Программная реализация криптографических систем DES, 3-DES и DESX

Автор работы: Пользователь скрыл имя, 13 Ноября 2012 в 09:38, курсовая работа

Краткое описание

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

Содержание работы

ВВЕДЕНИЕ 3
ИСТОРИЯ 3
ОСНОВНАЯ ФУНКЦИЯ ШИФРОВАНИЯ 5
РЕЖИМЫ РАБОТЫ АЛГОРИТМА DES 14
ШИФРОВАНИЕ И РАСШИФРОВАНИЕ В РЕЖИМЕ ЭЛЕКТРОННОЙ КОДОВОЙ КНИГИ (ECB) 14
ШИФРОВАНИЕ И РАСШИФРОВАНИЕ В РЕЖИМЕ СЦЕПЛЕНИЯ БЛОКОВ ШИФРА (CBC) 15
ШИФРОВАНИЕ И РАСШИФРОВАНИЕ В РЕЖИМЕ ОБРАТНОЙ СВЯЗИ ПО ШИФРОТЕКСТУ (CFB) 16
ШИФРОВАНИЕ И РАСШИФРОВАНИЕ В РЕЖИМЕ ОБРАТНОЙ СВЯЗИ ПО ВЫХОДУ (OFB) 17
ШИФРОВАНИЕ И РАСШИФРОВКА ПО АЛГОРИТМУ 3-DES В ОДНОМ ИЗ РЕЖИМОВ 18
ШИФРОВАНИЕ И РАСШИФРОВКА ПО АЛГОРИТМУ DESX В ОДНОМ ИЗ РЕЖИМОВ 19
ПРИЛОЖЕНИЕ 20

Содержимое работы - 1 файл

курспр.docx

— 339.65 Кб (Скачать файл)

ШИФРОВАНИЕ И  РАСШИФРОВАНИЕ В РЕЖИМЕ ЭЛЕКТРОННОЙ  КОДОВОЙ КНИГИ (ECB)

В этом режиме исходный файл M разбивается на 64-битовые блоки (по 8 байтов): M = M(1)M(2)...M(n). Каждый из этих блоков кодируется независимо с использованием одного и того же ключа шифрования (рис.5). Основное достоинство этого алгоритма - простота реализации. Недостаток - относительно слабая устойчивость против квалифицированных криптоаналитиков.

Рис.5. Работа алгоритма DES в  режиме ECB

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

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

ШИФРОВАНИЕ И  РАСШИФРОВАНИЕ В РЕЖИМЕ СЦЕПЛЕНИЯ  БЛОКОВ ШИФРА (CBC)

 

В этом режиме исходный файл M также, как и в режиме ECB, разбивается на 64-битовые блоки: M = M(1)M(2)...M(n). Первый блок M(1) складывается по модулю 2 с 64-битовым начальным вектором IV, который меняется ежедневно и держится в секрете. Полученная сумма затем шифруется с использованием ключа DES, известного и отправителю, и получателю информации. Полученный 64-битовый блок шифртекста C(1) складывается по модулю 2 со вторым блоком исходного текста, результат шифруется и получается второй 64-битовый блок шифртекста C(2) и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки исходного текста (рис.6).

Рис.6. Работа алгоритма в  режиме CBC

Таким образом для всех i = 1...n блок шифртекста C(i) определяется следующим образом:

C(i) = DES(M(i) xor C(i-1)),

C(0) = IV - начальное значение  шифра, равное начальному вектору.

Расшифрование выполняется следующим образом:

M(i) = C(i-1) xor DES-1(C(i)),

C(0) = IV - начальное значение  шифра, равное начальному вектору.

Прелесть данного режима состоит в том, что он не позволяет  накапливаться ошибкам при передаче. Блок M(i) является функцией только C(i-1) и C(i). Поэтому ошибка при передаче приведет к потере только двух блоков исходного текста.

ШИФРОВАНИЕ И  РАСШИФРОВАНИЕ В РЕЖИМЕ ОБРАТНОЙ СВЯЗИ ПО ШИФРОТЕКСТУ (CFB)

 

В этом режиме размер блока  может отличаться от 64. Исходный файл M считывается последовательными t-битовыми блоками (t <= 64): M = M(1)M(2)...M(n) (остаток дописывается нулями или пробелами).

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

Для всех i = 1...n блок шифртекста C(i) определяется следующим образом:

C(i) = M(i) xor P(i-1) ,

где P(i-1) - старшие t битов операции DES(С(i-1)), причем C(0)=IV.

Обновление сдвигового регистра осуществляется путем удаления его  старших t битов и дописывания справа C(i).

Восстановление зашифрованных  данных также не представляет труда: P(i-1) и C(i) вычисляются аналогичным образом и

M(i) = C(i) xor P(i-1) .

Блок-схема режима CFB приведена  на рис.7.

Рис.7. Работа алгоритма DES в  режиме CFB

ШИФРОВАНИЕ И  РАСШИФРОВАНИЕ В РЕЖИМЕ ОБРАТНОЙ СВЯЗИ ПО ВЫХОДУ (OFB)

 

Режим OFB очень похож на режим CFB.

Отличие от режима CFB состоит  только в методе обновления сдвигового регистра. В данном случае это осуществляется путем удаления его старших t битов и дописывания справа P(i-1) (рис.8).

Рис.8. Блок-схема алгоритма DES в режиме OFB

Каждому из рассмотренных  режимов свойственны свои достоинства  и недостатки, что обусловливает  области их применения.

Режим ECB хорошо подходит для  шифрования ключей. Режимы CBC и CFB пригодны для аутентификации данных. Режим CFB, кроме того, предназначен для шифрования отдельных символов. Режим OFB нередко  используется в спутниковых системах связи.

ШИФРОВАНИЕ И  РАСШИФРОВКА ПО АЛГОРИТМУ 3-DES В ОДНОМ ИЗ РЕЖИМОВ

 

Triple DES (3DES) — симметричный блочный шифр, созданный Уитфилдом Диффи, Мартином Хеллманом и Уолтом Тачманном в 1978 году на основе алгоритма DES, с целью устранения главного недостатка последнего — малой длины ключа (56 бит), который может быть взломан методом полного перебора ключа. Скорость работы 3DES в 3 раза ниже, чем у DES, но криптостойкость намного выше — время, требуемое для криптоанализа 3DES, может быть в миллиард раз больше, чем время, нужное для вскрытия DES. 3DES используется чаще, чем DES, который легко ломается при помощи сегодняшних технологий (в 1998 году организация Electronic Frontier Foundation, используя специальный компьютер DES Cracker, вскрыла DES за 3 дня). 3DES является простым способом устранения недостатков DES. Алгоритм 3DES построен на основе DES, поэтому для его реализации возможно использовать программы, созданные для DES.

3DES выполняет 3 раза алгоритм DES, длина ключа DES равна 56 бита, а длина 3DES в 3 раза больше, то есть равна 168 битов. Для DES 64-разрядный ключ делился на 8 байтов, в каждом байте используется только 7 битов, поэтому на самом деле длина ключа равна 56 битов, а не 64, поэтому длина ключа 3DES на самом деле равна 168, а не 192 бита.

Схема алгоритма:

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

Существует 3 типа алгоритма 3DES:

  • DES-EEE3: Шифруется три раза с тремя разными ключами (операции шифрование-шифрование-шифрование).
  • DES-EDE3: 3DES операции шифровка-расшифровка-шифровка с тремя разными ключами.
  • DES-EEE2 и DES-EDE2: Как и предыдущие, за исключением того, что на первом и третьем шаге используется одинаковый ключ.

При выполнении алгоритма 3DES ключи могут быть выбраны так:

  • k1, k2, k3 – независимы;
  • k1, k2 – независимы, k1 = k3;
  • k1 = k2 = k3.

Эффективная криптостойкость составляет 112 бит.

3DES с тремя ключами  реализован во многих приложениях,  ориентированных на работу с  Интернет, в том числе в PGP и  S/mime. Тройной DES является довольно популярной альтернативой DES и используется при управлении ключами в стандартах ANSI X9.17 и ISO 8732 и в PEM (Privacy Enhanced Mail). Известных криптографических атак, применимых на практике, на 3DES не существует.

3DES больше подходит для  аппаратных реализаций.

Наибольшее применение в  прикладных системах нашел вариант 3DES, использующий 2 ключа длиной 56 бит  каждый (8-й бит -- четности): исходный открытый текст шифруется первым ключом, полученный результат расшифровывается вторым, полученный результат (т.е.полная бессмыслица) повторно шифруется первым ключом. Таким образом, длина ключа в алгоритме 3DES составляет 112 (2*56) бит.

ШИФРОВАНИЕ И  РАСШИФРОВКА ПО АЛГОРИТМУ DESX В ОДНОМ ИЗ РЕЖИМОВ

DESX — симметричный алгоритм  шифрования, разработанный на основе  блочного шифра DES (Data Encryption Standart). Данный алгоритм использует метод отбеливания ключа с целью усиления устойчивости к атакам на основе полного перебора.

Суть алгоритма состоит  в том, что перед выполнением  однократного DES и после него на данные операцией XOR накладываются различные 64-битные фрагменты ключа:

Таким образом, длина ключа  увеличивается до 56 + 2 × 64 = 184 бит.

 

DESX полностью совместим  с алгоритмом DES в случае, если  К1 = К2 = 0. Авторы алгоритма допускают использование 120-битного ключа шифрования, при этом К1 устанавливается равным К2. Существует вариант DESX, также разработанный компанией RSA, со 120-битным ключом, состоящим из К и К1, а значение К2 является функцией всех 16 байтов ключа шифрования. Известен еще один вариант алгоритма DESX, в котором вместо обеих операций XOR выполняется сложение по модулю.

Скорость алгоритма DESX приблизительно равна скорости DES.

DESX достаточно стоек, имеет  аппаратную реализацию и широко  используется.

Реализация DESX включена в  криптографические библиотеки BSAFE компании RSA Security с конца 80х годов.

ПРИЛОЖЕНИЕ

Программная реализация

Алгоритм функции F(r,k):

 

 

 

 

 

Шифрование

Расшифровка

 

 

 

Ключ и данные на шифрование

Результат

int min[]={0,1,1,0,0,0,1,1,

0,1,1,0,1,1,1,1,

0,1,1,0,1,1,0,1,

0,1,1,1,0,0,0,0,

0,1,1,1,0,1,0,1,

0,1,1,1,0,1,0,0,

0,1,1,0,0,1,0,1,

0,1,1,1,0,0,1,0};

 


Информация о работе Программная реализация криптографических систем DES, 3-DES и DESX