Виртуальный Выделенный Сервер

      КОМПЬЮТЕРНАЯ  
           ЗАЩИТА
 

     АЛГОРИТМЫ ШИФРОВАНИЯ  

ГЛАВНАЯ  СТРАНИЦА

Угрозы  безопасности

Системы  обнаружения
атак  сетевого  уровня
Системы  обнаружения
атак  системного  уровня
Защита  от  удаленных  атак
в  сети  Internet
Административные   методы
з
ащиты   в  сети  Internet
ППрограммно-аппаратные
методы   защиты  в  Internet
Рынок  систем  безопасности
Лидеры  на  рынке
систем  безопасности
Вирусы  в  сети  Internet
Защита  информации  на
персональном  компьютере
Информационная
безопасность  в  Intranet
Меры  процедурного  уровня
Фильтрация  информации
Безопасность
программной  среды
ы
Виртуальные  частные  сети
Задачи  информационной
безопасности
Избыточная  защита
Оценка 
эффективности  защиты
Криптография  как  наука
Модели
криптоаналитических  атак
Криптография
для  программиста
Актуальные  задачи
защиты  программ

Аппаратные ключи защиты

Стеганографическая
защита  информации

Ослабление
средств  защиты

Исследования  
средств  защиты

Концепции безопасности

Защита  компьютера  от  несанкционированного доступа

Защита  компьютера 
от  сбоев

Безопасность  
в  сети  Интернет

Атаки  из  сети  Интернет

 

 

Блочные алгоритмы шифрования применяются чаще, чем любые другие шифры. Блочный шифр выполняет операции над блоками — порциями данных фиксированного размера. Обычно размер блока составляет 64 бита (8 байт) или 128 бит (16 байт), но некоторые алгоритмы используют и другие значения. Блочный шифр всегда преобразует определенный блок открытого текста в один и тот же шифртекст независимо от того, какие данные были зашифрованы до этого. Так как размер шифруемого сообщения не всегда кратен размеру блока, возникает проблема дополнения, имеющая несколько решений. Можно, например, передавать в незашифрованном виде размер полезной части зашифрованных данных и после расшифровки лишние байты просто отбрасывать.

На практике же часто применяют другой способ. Если алгоритм оперирует 8-байтовыми блоками данных, а в последнем блоке, например, только 3 байта полезных данных, то все неиспользуемые байты, кроме самого последнего, можно заполнить любым значением, а в последнем байте записать число, равное количеству неиспользуемых байтов. Тогда, получив и расшифровав все блоки, необходимо отбросить с конца столько байт, сколько указано в последнем байте последнего блока. Правда, если исходное сообщение имело длину, кратную размеру блока, то возникает некоторая сложность, так как требуется добавить 0 байт, и последний байт должен содержать число байт дополнения. Для разрешения этой проблемы при зашифровании добавляется новый блок, последний байт которого содержит размер блока. Дополнительный блок будет целиком отброшен при расшифровании.

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

 Потоковые шифры. Потоковый шифр выполняет операции над битами или символами (например 8-, 16- или 32-битовыми). Потоковый шифр преобразует один и тот же символ открытого текста в разные символы шифртекста, например в зависимости от того, сколько и каких символов было обработано ранее. Во многих потоковых шифрах зашифрование производится следующим образом. Генератор гаммы, основанный на генераторе псевдослучайных чисел, выдает последовательность битов (гамму). Эта гамма накладывается на открытый текст с помощью побитовой операции XOR. В результате получается шифртекст. Для расшифрования необходимо выполнить в точности ту же процедуру, только наложить гамму, с использованием идентичного генератора с точно таким же начальным на шифртекст.

Таким образом, стойкость алгоритма зависит исключительно от характеристик гаммы, выдаваемой генератором. Если гамма состоит из одних нулей (вырожденный случай), то данные при шифровании вообще не изменяются. Если гамма имеет короткий период (например 32 бита), то шифрование сводится к операции XOR С 32-битовой константой. Если же гамма представляет собой случайный набор битов, не подчиняющийся никакой закономерности, получается аналог одноразового шифровального блокнота, который обеспечивает абсолютную защиту. Разумеется, детерминированный алгоритм, используемый в генераторе гаммы, не может выдавать истинно случайную последовательность. Если последовательность не удастся повторить, то не удастся и расшифровать сообщение.

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

Если гамма генерируется независимо от содержимого сообщения (как в приведенном ранее примере), то такой потоковый алгоритм называется синхронным. Как правило, в синхронных потоковых шифрах ключ шифрования используется для установки начального внутреннего состояния генератора гаммы. В самосинхронизирующихся потоковых шифрах каждый бит гаммы зависит от фиксированного числа предыдущих битов шифртекста. Более детальное описание достоинств и недостатков потоковых шифров также можно найти в специализированной литературе по криптографии.   (продолжение)