Стойкий алгоритм
Стойким считается алгоритм, который для своего вскрытия требует от противника практически недостижимых вычислительных ресурсов или недостилсимого объема перехваченных зашифрованных сообщений или времени раскрытия, которое превышает время жизни интересующей противника информации.
Существует достаточно распространенный подход к формальной оценке этого понятия. Стойкость криптографического алгоритма необходимо рассматривать относительно пары «атака-цель», где под целью противника понимается планируемая угроза. В мировой литературе проработана классификация различных типов атак на криптографические алгоритмы:
• атака с известным шифртекстом (ciphertext-only attack). Предполагается, что противник знает криптосистему, то есть алгоритмы шифрования, но не знает секретный ключ. Кроме того, ему известен лишь набор перехваченных криптограмм;
• атака с известным открытым текстом (known plaintext attack). To же, что предыдущая, но противник получает в свое распоряжение еще некоторый набор криптограмм и соответствующих им открытых текстов;
• простая атака с выбором открытого текста (chosen-plaintext attack). Противник имеет возможность выбрать необходимое количество открытых текстов и получить соответствующие им криптограммы;
• адаптивная атака с выбором открытого текста (adaptive-chosen-plaintext attack). В этом случае противник имеет возможность выбирать открытые тексты с учетом того, что криптограммы всех предыдущих открытых текстов ему известны;
• атака с выбором шифртекста (chosen-ciphertext attack). Противник имеет возможность выбрать необходимое количество криптограмм и получить соответствующие им открытые тексты;
• адаптивная атака с выбором шифртекста (adaptive-chosen-ciphertext attack). Противник, выбирая очередную криптограмму, знает все открытые тексты, соответствующие предыдущим криптограммам;
• атака с выбором текста (chosen-text attack). Противник имеет возможность выбирать как криптограммы (и дешифровывать их), так и открытые тексты (и зашифровывать их);
• атака с выбором ключа (chosen-key attack). Противник знает не сами ключи, а некоторые различия между ними.
В этом перечне атаки представлены по мере возрастания их силы. Так, с точки зрения криптоанализа последняя атака является самой сильной, хотя существует еще более сильная атака, заключающаяся в получении секретного ключа путем вымогательства, шантажа или подкупа.
Анализируя атаки и их цели, можно прийти к выводу, что наибольшей стойкостью алгоритм обладает в том случае, когда он способен противостоять самой сильной атаке, проводимой противником, при условии, что он преследует самую слабую из возможных целей атаки (угроза).