1. 1 Основные понятия и определения криптографии 8 2 Симметричные и асимметричные криптосистемы 11
Скачать 193.57 Kb.
|
2.1 Режимы работы алгоритма DESДля наиболее полного удовлетворения всем требованиям, предъявляемым к коммерческим системам шифрования, реализованы несколько режимов работы алгоритма DES. Наиболее широкое распространение получили режимы: электронный шифроблокнот (Electronic Codebook) – ECB; цепочка цифровых блоков (Cipher Block Chaining) – CBC; цифровая обратная связь (Cipher Feedback) – CFB; внешняя обратная связь (Output Feedback) – OFB. DES-ECB В этом режиме исходный файл M разбивается на 64-битовые блоки (по 8 байтов): M = M(1) M(2)… M(n). Каждый из этих блоков кодируется независимо с использованием одного и того же ключа шифрования (Рисунок 5). Основное достоинство этого алгоритма – простота реализации. Недостаток – относительно слабая устойчивость против квалифицированных криптоаналитиков [3]. Рисунок 5. Работа алгоритма DES в режиме ECB В частности, не рекомендуется использовать данный режим работы для шифрования EXE файлов, потому что первый же блок – заголовок файла, является вполне удачным началом для взлома всего шифра. В то же время следует признать, что этот режим в силу своей простой реализации наиболее популярен среди любительских разработок. DES-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). Поэтому ошибка при передаче приведет к потере только двух блоков исходного текста. DES-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 DES-OFB Режим OFB очень похож на режим CFB. Отличие от режима CFB состоит только в методе обновления сдвигового регистра. В данном случае это осуществляется путем удаления его старших t битов и дописывания справа P (i-1) (Рисунок 8). Рисунок 8. Работа алгоритма DES Каждому из рассмотренных режимов свойственны свои достоинства и недостатки, что обусловливает области их применения. 3. Надежность использования DES Приведем несколько практических рекомендаций, обеспечивающих безопасность зашифрованных данных. Ключи DES нужно менять довольно часто, чтобы предотвратить атаки, требующие анализа достаточно большого количества данных. Если говорить о защите передаваемых данных, то необходимо найти защищенный способ передачи DES ключа от отправителя к получателю. Обе эти проблемы решаются с помощью алгоритма RSA или какой-либо другой асимметричной криптосистемы: для каждого сеанса связи создается новый DES ключ, зашифровывается общим ключом получателя и в таком виде передается получателю. В таких обстоятельствах криптосистема RSA выступает как инструмент повышения защищенности DES (или любого другого секретно-ключевого шифра) [4]. Если использовать DES для шифрования файлов на жестком диске, то часто менять ключи малореально, так как для этого необходимо расшифровать, а затем зашифровать все файлы новым ключом. Вместо этого можно создать главный ключ DES, каким будет зашифрованный список ключей DES, используемых для шифрования файлов; в этом случае главный ключ можно менять так часто как это нужно. Но так как главный ключ более привлекателен для атаки чем отдельные DES ключи, то его разумно шифровать алгоритмом Triple DES. На практике используются несколько официально определенные режимы шифрования DES; каждый из этих режимов имеет разные свойства. Режим ЕСВ (электронная кодовая книга) последовательно шифрует каждый 64-битный блок открытого текста тем самым 56-битным ключом DES. В режиме СВС (формирование цепочки блока шифра) каждый 64-битный блок открытого текста перед шифрованием DES ключом логически суммируется (XOR) с предыдущим блоком зашифрованного текста. Таким образом, шифрование каждого следующего блока зависит от предыдущих блоков и поэтому тот же 64-битный блок открытого текста может быть представлен различными блокам зашифрованного текста в зависимости от его размещения в исходном сообщении. СВС позволяет защититься от некоторых атак, но не от полного поиска или дифференциального криптоанализа. Режим CFB (шифрование с обратной связью) позволяет использовать DES блоками длиной менее 64 бит. Подробные описания различных режимов DES приведены в [NIS80]. Режим OFB по существу позволяет использовать DES как потоковый шифр. Из перечисленных режимов DES наиболее широко на практике используется режим СВС, являющийся частью нескольких стандартов. Для повышения защиты можно использовать режим СВС с тройным шифрованием [5]. |