Информационная безопасность

Потоковые и блочные шифры. Симметричные и асимметричные алгоритмы.

Потоковые шифры - это шифры, при которых каждый бит информации шифруется с помощью гаммирования.

Гаммирование - это наложение на открытые данные гаммы шифра по определенному правилу. Для расшифрования та же гамма накладывается на зашифрованный текст.

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

Надежность этого метода зависит от гаммы, полученной генератором (избегайте нулей, соблюдайте последовательность).

Чаще других используются блочные шифры. Информация, которую хотят зашифровать делится на блоки определенной длины, и шифруется поблочно.

Существует 2 основных вида блочных шифров - шифры перестановки Р-блоки и шифры замены S-блоки.

Шифры перестановки очень просты. Например, код Цезаря. В открытом тексте заменяется одна буква на другую, заранее известную. Посчитать шифр очень просто, поэтому их легко взломать.

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

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

  1. Объект А передает объекту Б ключ
  2. Объект А, используя ключ, зашифровывает текст, которое пересылает объекту Б
  3. Объект Б получает текст и расшифровывает его.

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

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

  1. объект Б узнает открытый и секретный ключи, секретный остается у себя, а открытый становится доступный, сообщает это объекту А
  2. объект А, используя открытый ключ объекта Б, зашифровывает текст, которое отправляет объекту Б
  3. объект Б получает текст и расшифровывает его, используя секретный ключ.

Пример симметричного алгоритма шифрования - код Цезаря, пример асимметричного алгоритма шифрования - сеть Фейсталя.