Традиционные вопросы криптологии
Рассмотрим некоторые традиционные вопросы, связанные с криптологией. Для начала дадим определение самой криптологии и кратко характеризуем ее составляющие.
Криптология – наука, исследующая криптографические преобразования (преобразования информации по каким-либо определенным алгоритмам под управлением некоей ключевой информации сравнительно малого объема).
Криптология разделяется на два направления – криптографию и криптоанализ. Цели этих направлений прямо противоположны.
Криптография занимается поиском и исследованием математических методов шифрования информации.
Сфера интересов криптоанализа – исследование возможности расшифровывания информации без знания ключей.
Криптограф пытается найти методы обеспечения секретности и/или аутентичности (подлинности) сообщений. Криптоаналитик пытается выполнить обратную задачу, раскрывая шифр или подделывая кодированные сигналы так, чтобы они были приняты как подлинные.
В настоящее время существует тенденция отождествлять понятия “криптография” и “криптология”, однако это неверно: криптография – одно из направлений криптологии.
Криптосистема – совокупность аппаратных и программных средств, реализующая семейство криптографических преобразований, управляемых некоторой секретной информацией.
Все элементы криптосистемы можно разделить на две категории – долговременные и легко сменяемые.
Долговременные элементы криптосистемы – элементы, которые относятся к уровню разработки системы защиты, и для их изменения требуется вмешательство специалистов.
Легко сменяемый элемент – некоторая информация сравнительно малого размера, используемая для управления процессом криптографического преобразования (шифрования), которая может быть легко изменена – ключ, идентификатор, пароль и т.д.
Криптоаналитической атакой называется любая попытка расшифровать шифртекст для получения открытого текста или зашифровать свой собственный текст, не имея подлинного ключа. Успешной считается криптоатака, которая может раскрыть исходный текст или ключ, а также может обнаружить слабые места в криптосистеме, что, в конечном счете, ведет к тем же результатам.
Полагают, что криптосистема является криптостойкой, если предпринятые криптоаналитические атаки не достигают поставленной цели и криптоаналитика не может, не имея подлинного ключа, вывести исходный текст или подлинный ключ.
Количественно стойкость измеряется как сложность наилучшего алгоритма, приводящего криптоаналитика к успеху с приемлемой вероятностью взлома. В зависимости от целей и возможностей криптоаналитика меняется и стойкость криптосистемы.
Различают несколько видов стойкости: стойкость ключа (сложность раскрытия ключа наилучшим известным алгоритмом), стойкость бесключевого чтения, имитостойкость (сложность навязывания ложной информации наилучшим из-вестным алгоритмом и вероятность навязывания ложной информации).
Это иногда совершенно различные понятия, не связанные между собой. Например, RSA позволяет навязывать ложную информацию со сложностью, практически не зависящей от стойкости ключа. Различают также стойкость:
- собственно криптоалгоритма,
- стойкость протокола,
- стойкость алгоритма генерации и распространения ключей.
Классическая задача криптографии
Классической задачей криптографии является обратимое преобразование некоторого понятного исходного текста (далее – открытого текста) в кажущуюся случайной последовательность некоторых знаков, называемую шифртекстом, или криптограммой. При этом шифртекст может содержать и новые, и имеющиеся в открытом сообщении знаки.
Количество знаков может различаться. Обязательное требование – используя некоторые логические замены символов в шифртексте, можно однозначно и в полном объеме восстановить исходный текст.
Ранее надежность сохранения информации в тайне определялась тем, что в секрете держался сам метод преобразования. Однако секретность алгоритма принципиально не может обеспечить безусловной стойкости, то есть невозможность прочтения криптограммы противником, обладающим бесконечными вычислительными ресурсами.
В связи с этим в настоящее время наиболее широко используются открытые алгоритмы. Стойкость современных криптосистем основывается не на секретности алгоритма, а на секретности ключа.
Естественно, при прочих равных условиях секретность алгоритма шифрования существенно затрудняет проведение успешной криптоаналитической атаки. Поэтому были предложены современные криптосистемы, в которых непосредственно алгоритм шифрования является секретным, но в то же время имеется возможность открытого обсуждения стойкости криптосистемы.
Это реализуется в гибких криптосистемах, в которых алгоритм шифрования формируется по специальному алгоритму предвычислений (инициализации) под управлением секретного ключа пользователя. Алгоритм инициализации является открытым, а сам алгоритм шифрования является секретным, так же, как и ключ шифрования.
Правило Керкхоффа
Голландский криптограф Керкхофф (1835-1903) впервые сформулировал фундаментальное правило стойкости криптосистемы (шифра) – стойкость криптосистемы (шифра) должна определяться только секретностью ключа.
Иными словами, правило Керкхоффа состоит в том, что весь алгоритм шифрования, кроме значения секретного ключа, известен криптоаналитику.
Это обусловлено тем, что криптосистема обычно рассматривается как открытая система. Такой подход отражает очень важный принцип технологии защиты информации: защищенность системы не должна зависеть от секретности чего-либо такого, что невозможно быстро изменить в случае утечки секретной информации. Предполагается, что все долговременные элементы системы известны криптоаналитику.
Несмотря на то, что, согласно современным требованиям криптосистемы должны выдерживать криптоанализ на основе известного алгоритма, большого объема известного открытого текста и соответствующего ему шифртекста, шифры, используемые специальными службами, сохраняются в секрете, что обусловлено необходимостью иметь дополнительный запас прочности.
(С) 2004, Д.А. Беляев, Ю.В. Гольчевский
См. также:
Оставить комментарий