Автор работы: Пользователь скрыл имя, 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
В этом режиме исходный файл M разбивается на 64-битовые блоки (по 8 байтов): M = M(1)M(2)...M(n). Каждый из этих блоков кодируется независимо с использованием одного и того же ключа шифрования (рис.5). Основное достоинство этого алгоритма - простота реализации. Недостаток - относительно слабая устойчивость против квалифицированных криптоаналитиков.
Рис.5. Работа алгоритма DES в режиме ECB
В частности, не рекомендуется использовать данный режим работы для шифрования EXE файлов, потому что первый же блок - заголовок файла, является вполне удачным началом для взлома всего шифра.
В то же время следует признать, что этот режим в силу своей простой реализации наиболее популярен среди любительских разработок.
В этом режиме исходный файл 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 - начальное значение
шифра, равное начальному
Прелесть данного режима
состоит в том, что он не позволяет
накапливаться ошибкам при
В этом режиме размер блока может отличаться от 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 очень похож на режим CFB.
Отличие от режима CFB состоит только в методе обновления сдвигового регистра. В данном случае это осуществляется путем удаления его старших t битов и дописывания справа P(i-1) (рис.8).
Рис.8. Блок-схема алгоритма DES в режиме OFB
Каждому из рассмотренных режимов свойственны свои достоинства и недостатки, что обусловливает области их применения.
Режим ECB хорошо подходит для шифрования ключей. Режимы CBC и CFB пригодны для аутентификации данных. Режим CFB, кроме того, предназначен для шифрования отдельных символов. Режим OFB нередко используется в спутниковых системах связи.
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:
При выполнении алгоритма 3DES ключи могут быть выбраны так:
Эффективная криптостойкость составляет 112 бит.
3DES с тремя ключами
реализован во многих
3DES больше подходит для аппаратных реализаций.
Наибольшее применение в прикладных системах нашел вариант 3DES, использующий 2 ключа длиной 56 бит каждый (8-й бит -- четности): исходный открытый текст шифруется первым ключом, полученный результат расшифровывается вторым, полученный результат (т.е.полная бессмыслица) повторно шифруется первым ключом. Таким образом, длина ключа в алгоритме 3DES составляет 112 (2*56) бит.
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