Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 15 Безопасность.doc
Скачиваний:
66
Добавлен:
11.05.2015
Размер:
795.14 Кб
Скачать

Приложение. Шифрование

Шифрование является основной технологией, лежащей в основе почти всех приложений, обеспечивающих безопасность сетей и компьютеров. Используются два основных подхода: стандартное шифрование (conventional encryption), или симмет­ричное шифрование, и шифрование с открытым ключом, или асимметричное шиф­рование. В данном приложении представлен обзор обоих видов шифрования, а также краткое обсуждение некоторых важных алгоритмов шифрования.

Стандартное шифрование

Стандартное шифрование, известное также как симметричное шифрование (symmetric encryption) или шифрование с одним ключом (single-key encryption), было единственным используемым видом шифрования, принятым до появления в конце 70-х годов шифрования с открытым ключом. Стандартное шифрование применялось для обмена секретной информацией от Юлия Цезаря до экипажей немецких подводных лодок, а также современных пользователей из дипломати­ческих, военных и коммерческих организаций. Оно, безусловно, используется более интенсивно, чем шифрование другого типа.

В схеме стандартного шифрования имеется пять составляющих (рис. 15.13).

  • Открытый текст (plaintext). Это первоначальное сообщение или данные, ко­торые подаются на вход алгоритма шифрования.

  • Алгоритм шифрования (encryption algorithm). Алгоритм шифрования вы­полняет различные подстановки и преобразования открытого текста.

  • Секретный ключ (secret key). Секретный ключ также подается на вход ал­ горитма шифрования. От него зависит, какие именно подстановки и преоб­ разования выполняет алгоритм.

  • Зашифрованный текст (ciphertext). Это сообщение, которое получается на выходе. То, каким получится зашифрованный текст, зависит от первона­чального открытого текста и от секретного ключа. Из одного и того же пер­воначального сообщения, зашифрованного с помощью разных ключей, по­ лучатся два различных зашифрованных текста.

  • Алгоритм дешифровки (decryption algorithm). По сути, это алгоритм шифрова­ния, выполненный в обратном порядке. Он восстанавливает первоначальный открытый текст, используя зашифрованный текст и секретный ключ.

Чтобы стандартное шифрование было безопасным, на него накладываются два требования.

1. Нужен надежный алгоритм шифрования. Нужно, чтобы этот алгоритм был как минимум таким, чтобы противник, который знает этот алгоритм и име­ет доступ к одному или нескольким зашифрованным сообщениям, не смог бы дешифровать зашифрованный текст или разгадать ключ. Обычно это требование формулируется более строго: оппонент не должен иметь воз­можности расшифровать зашифрованный текст или разгадать ключ, даже если у него есть несколько зашифрованных текстов вместе с первоначаль­ными незашифрованными оригиналами каждого из них.

2. Отправитель и получатель должны получить копии секретного ключа на­дежным путем и хранить этот ключ в недосягаемости. Если кто-то сможет обнаружить ключ и будет знать алгоритм, обмен всей информацией с по­мощью этого ключа станет доступным.

Есть два подхода, использующихся при атаке на схему стандартного шифро­вания. Атака первой разновидности называется криптоанализом (cryptanalysis). Основой таких атак служит знание природы алгоритма и, возможно, некоторые предположения относительно общих характеристик исходного текста или даже наличие некоторых образцов, представляющих собой незашифрованный оригинал текста и его зашифрованный образ. При атаках такого рода используются харак­теристики алгоритма, из которых делаются выводы относительно данного текста или используемого при его шифровании ключа. Если в процессе атаки разгадан ключ, это приводит к катастрофическим последствиям: дискредитируются все за­шифрованные этим ключом сообщения, которые уже были отправлены или еще будут отправлены.

Атака второго вида, известная как атака "в лоб" (brute-force), заключа­ется в подборе ключа к расшифровываемому образцу текста до тех пор, пока расшифрованный текст не станет понятным. Чтобы достичь результата с по­мощью такого подхода, нужно в среднем перепробовать половину всех воз­можных ключей. В табл. 15.5 приводятся данные о том, сколько времени нужно потратить на подбор ключа в зависимости от его размера. Результаты для каждого размера ключа показаны в предположении, что на одну попыт­ку затрачивается 1 миллионная доля секунды, что на сегодняшний день по порядку величины совпадает с реальной величиной. Использовав параллель­ные вычисления с участием большого количества микропроцессоров, можно достичь скорости обработки, превышающей указанную на многие порядки. В последнем столбце таблицы приводятся результаты для системы, которая способна обрабатывать ключи со скоростью 1 миллион ключей за микросе­кунду. Обратите внимание, что при таком уровне производительности ключ длиной в 56 бит перестает быть достаточно надежным.