- •Безопасность
- •Аппаратное обеспечение
- •Программное обеспечение
- •Линии связи и сети
- •15.2. Защита
- •Защита памяти
- •Контроль доступа, ориентированный на пользователя
- •Контроль доступа, ориентированный на данные
- •15.3. Взломщики
- •Методы вторжения
- •Защита паролей
- •Уязвимость паролей
- •Контроль доступа
- •Стратегии выбора паролей
- •Выявление вторжений
- •15.4. Зловредное программное обеспечение
- •Зловредные программы
- •Логические бомбы
- •Троянские кони
- •Природа вирусов
- •Виды вирусов
- •Макровирусы
- •Подходы к борьбе с вирусами
- •Обобщенное дешифрование
- •Цифровая иммунная система
- •15.5. Системы с доверительными отношениями
- •Защита от троянских коней
- •15.6. Безопасность операционной системы windows 2000
- •15.7. Резюме, ключевые термины и контрольные вопросы
- •Контрольные вопросы
- •15.8. Рекомендуемая литература
- •Приложение. Шифрование
- •Стандартное шифрование
- •Стандарт шифрования данных
- •Тройной алгоритм шифрования данных
- •Улучшенный стандарт шифрования
- •Шифрование с открытым ключом
- •А.2. Архитектура протоколов tcp/ip
- •Уровни протокола tcp/ip
- •Приложения tcp/ip
- •Б.1. Мотивация
- •Б.З. Преимущества объектно-ориентированного подхода
- •Б.2. Объектно-ориентированные концепции
- •Структура объектов
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Включение
- •Список литературы
Приложение. Шифрование
Шифрование является основной технологией, лежащей в основе почти всех приложений, обеспечивающих безопасность сетей и компьютеров. Используются два основных подхода: стандартное шифрование (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 бит перестает быть достаточно надежным.