Блочный шифр

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

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

Преобразование должно использовать следующие принципы:

  • Рассеивание (diffusion) - т.е изменение любого знака открытого текста или ключа влияет на большое число знаков шифротекста, что скрывает статистические свойства открытого текста;
  • Перемешивание (confusion) - использование преобразований, затрудняющих получение статистических зависимостей между шифротектстом и открытым текстом.



Содержание

[править] Основная идея

Блочный шифр состоит из двух взаимосвязанных алгоритмов: алгоритм шифрования E и алгоритм расшифрования E-1. Входными данными служат блок размером n бит и k-битный ключ. На выходе получается n-битный зашифрованный блок. Для любого фиксированного ключа функция расшифрования является обратной к функции шифрования E_K^{-1}(E_K(M))=M для любого блока M и ключа K.

Для любого ключа K, EK — перестановка набора входных блоков. Ключ выбирается из 2n! возможных перестановок.

Размер блока n — это фиксированный параметр блочного шифра, обычно равный 64 или 128 битам, хотя некоторые шифры допускают несколько различных значений. Длина 64 бита была приемлема до середины 90-х годов, затем использовалась длина 128 бит и более. Различные схемы шифрования позволяют зашифровывать открытый текст произвольной длины. Каждая имеет определенные характеристики: вероятность ошибки, простота доступа, уязвимость к атакам. Типичный размер ключа 40, 56, 64, 80, 128, 192 и 256 бит. В 2006 г. 80-битный ключ способен был предотвратить атаку грубой силой.

[править] Режимы работы блочного шифра

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

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

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

[править] Проблема хвоста данных

Другой проблемой является формирование и преобразование блока данных «хвоста». Так как данные могут быть любой длины, а блочный шифр требует данные кратные длине блока, например, при заполнении хвоста одинаковыми символами, облегчена атака по известному открытому тексту.

[править] Цикличная кодировка

Для решения вышеописанных проблем, используется цикличная кодировка («категоризация») данных. Смысл этого решения в накладывании статистических данных в трехмерном пространстве и распределения рейтинга каждой группе данных. В результате этого процесса можно отсеивать участки с низким рейтингом и таким образом разделить кодированные участки от «пустых» комбинаций

[править] См. также

[править] Ссылки