Криптография и криптология
Криптография > Элементы криптоанализа > Испытания шифров
 
 

Испытания шифров

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

  1. Текст и шифр лишь кажутся независимыми, потому что имеются детерминированные алгоритмы, отображающие их друг в друге - шифрования и расшифрования. Однако, предположив независимость текста и его шифровки, пытаются ее опровергнуть, беря пары выборок {текст, шифр} и вычисляя их статистику. Так можно заменить криптографическую стойкость шифра на статистическую безопасность и считать, что шифр статистически безопасен, если пары выборок {текст, шифр} статистически независимы. Одно из испытаний заключается в установлении статистической связи изменения шифровки при изменении символов и бит в исходном тексте или ключе. Это испытание дает меру "эффекта размножения" ошибок в шифре, который считается хорошим лишь в том случае, если малейшие изменения исходного текста или ключа влекут большие изменения шифровки. Смысл такого рода тестов состоит в том, что безопасная система обязательно безопасна и статистически.

  2. Статистические испытания являются единственной стратегией испытаний больших криптографических систем с секретным ключом, построенных в виде чередующихся слоев блоков замены и перестановок, как блоки вносящие нелинейность в системах Lucifer и DES. Это объясняется трудностью составления уравнений, связывающих вход и выход системы, которые можно было бы решать другими методами. В криптографических системах, не имеющих таких блоков, например, в системах RSA и ЭльГамаля, уравнения, связывающие вход и выход, являются частью самой криптографической системы, поэтому легче сосредоточить внимание на анализе этих уравнений.

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

Важное значение для статистических испытаний имеет случайность текста шифровки конечной длины. Практическую меру случайности такой последовательности ввели Лемпел и Зив, авторы общеупотребимого алгоритма сжатия данных, применяемого во всех архиваторах IBM PC. Она указывает, на сколько можно сжать последовательность при использовании алгоритма Лемпела-Зива. Практически, если текст шифровки сжимается одним из архиваторов больше, чем на 10%, то шифровальная система очевидно не состоятельна. Если сжатие шифра оказалось меньше этой величины, то... все может быть. Отметим, что алгоритмам архивирования удается сжимать даже случайные последовательности символов, хотя сжатие в этом случае не превышает единиц процентов. Столь пространное описание статистического подхода к криптоанализу дано потому, что в этой главе ему будет уделено мало внимания, а вскрытие шифров будет показано лишь с точки зрения аналитического подхода. Итак, рассмотрим наиболее употребительные виды атак на некоторые известные уже шифры.