В криптографии используется два типа криптосистем: симметричные и асимметричные. В симметричных криптосистемах используются более длинные ключи, причем один и тот же ключ используется как для зашифровки, так и для расшифровки текста. Такой ключ называется секретным ключом, и его следует хранить в тайне из-за того, что любой владелец секретного ключа может расшифровать данные, зашифрованные этим же ключом. Большинство симметричных криптосистем используются много лет и хорошо известны. Единственное, что действительно является тайной, – это используемый ключ. Практически все действительно полезные алгоритмы, применяемые на практике сегодня, полностью открыты обществу.
Инструментарий и ловушки…
Оценка криптостойкости алгоритма
Проверить алгоритмическую безопасность криптографического алгоритма можно, только атакуя его. Поскольку намного чаще подвергаются атаке криптографические алгоритмы, опубликованные в открытой печати, то чем дольше алгоритм доступен для всеобщего изучения, тем больше будет предпринято попыток перехитрить или взломать его. Ненадежные криптографические алгоритмы взламываются очень быстро, обычно за несколько дней или месяцев, в то время как криптостойкие алгоритмы шифрования могут десятилетиями оставаться неприступными. В любом случае, открытость алгоритма для публичного анализа – важное условие доказательства его безопасности. Хотя если отсутствуют какие-либо сведения о сложности используемых в криптосистеме алгоритмов, то взломать криптосистему сложнее (вне зависимости от криптостойкости используемых в ней алгоритмов). Но при использовании общеизвестного алгоритма всегда есть некоторые предположения относительно его безопасности. Отчасти взлом алгоритма противоречит праву собственности на него. Однако слабый алгоритм может быть взломан, даже если криптограф до конца его и не понял. Очевидно, следует доверять запатентованным алгоритмам только в рамках их долгосрочных обязательств. Именно из-за необходимости тщательного изучения внутреннего устройства алгоритмов для обеспечения их безопасности многие из применяемых на практике запатентованных алгоритмов, как, например, RC6 компании RSA Laboratories, общедоступны.
Применению симметричных криптографических алгоритмов присущ ряд проблем. Во-первых, где гарантия, что отправитель и получатель используют один и тот же ключ для зашифровки и расшифровки сообщений? Обычно для обеспечения идентичности ключей отправителя и получателя пользуются услугами курьерской службы или каким-либо другим средством пересылки ключей. Во-вторых, что делать, если у получателя не окажется ключа, которым были зашифрованы принимаемые данные? Например, представьте себе ситуацию, когда ключ симметричной криптосистемы, реализованной аппаратными средствами, изменяется каждое утро в 4.00 на приемном и передающем конце. Что произойдет, если на одном из концов «забудут» изменить ключ в нужное время (вне зависимости от того, как это будет реализовано: при помощи полоски ленты, дополнительной аппаратуры или каким-либо другим способом) и передадут зашифрованные старым ключом данные, а на приемной стороне ключ будет изменен? Получатель, используя правильный ключ, не сможет расшифровать принятые данные. В результате во время кризиса могут возникнуть проблемы. Особенно если старый ключ был удален. Этот простой пример показывает, к чему может привести использование получателем и отправителем разных ключей шифрования.