Требования, предъявляемые к современным блочным алгоритмам шифрования
Независимо от способа реализации для современных криптографических систем защиты информации сформулированы некоторые общепринятые требования.
- 1. Должно выполняться правило Керкгоффа, т.с. криптостойкость шифра должна обеспечиваться не секретностью алгоритма, а секретностью ключа.
- 2. Алгоритм должен быть вычислительно стойким, т.е. его вскрытие может быть осуществлено только решением задачи полного перебора ключей.
Таким образом, алгоритм должен противостоять всем известным на текущий момент криптоаналитическим атакам.
Практическая стойкость алгоритма может быть обеспечена выполнением следующих требований:
- • отсутствие статистической зависимости между входной и выходной последовательностями;
- • выходная последовательность по своим статистическим свойствам должна быть похожа на истинно случайную;
- • при неизменном входном сообщении незначительное изменение ключа должно приводить к существенному изменению выходной последовательности (лавинный эффект по ключу);
- • при неизменном ключе незначительное изменение входного сообщения должно приводить к существенному изменению выходной последовательности (лавинный эффект по входному тексту);
- • отсутствие простой и легко устанавливаемой зависимости между ключами, последовательно используемыми в процессе шифрования.
- 3. Структура алгоритма должна быть ясной, простой и обоснованной, что, во-первых, облегчало бы изучение алгоритма специалистами, а во-вторых, гарантировало бы отсутствие внедренных авторами «закладок», особенностей структуры алгоритма, которыми его авторы могли бы воспользоваться в злонамеренных целях.
- 4. У алгоритма должны отсутствовать слабые и эквивалентные ключи.
- 5. Не должно быть ограничений на использование алгоритма, в частности в различных стандартных режимах работы, в качестве основы для построения хэш-функций (криптографических контрольных сумм), генераторов псевдослучайных последовательностей и т.д.
- 6. Алгоритм должен позволять эффективные реализации, в том числе и аппаратные:
- • скорость шифрования должна быть высокой на всех потенциальных аппаратных платформах (от 8- до 64-битных);
- • структура алгоритма должна позволять распараллеливание операций в многопроцессорных системах и аппаратных реализациях;
- • алгоритм должен предъявлять минимальные требования к оперативной и энергозависимой памяти.
- 7. Стоимость шифрования должна быть согласована со стоимостью защищаемой информации.
Стоит отметить еще два обязательных требования, предъявленных NIST к алгоритмам — участникам конкурса AES:
- • 128-битовый размер блока шифруемых данных;
- • не менее трех поддерживаемых размеров ключей шифрования: 128, 192 и 256 бит.
Перечисленные требования достаточно жестки и частично противоречат друг другу, так что все современные алгоритмы представляют собой некоторый найденный их авторами компромисс между предъявленными требованиями.
В каждой конкретной ситуации выбор криптоалгоритма определяется следующими факторами:
- • особенностью защищаемой информации;
- • особенностями среды хранения или передачи информации;
- • ценностью информации, характером защищаемых средств, временем обеспечения секретности;
- • объемами информации, скоростью передачи, степенью оперативности ее предоставления пользователям;
- • возможностями собственника информации, владельцев средств ее сбора, обработки и хранения;
- • характером угроз и возможностями противника.