18.3. Криптосистемы с секретным ключом

Криптографическую систему назовем криптосистемой общего использования, если ее стойкость основывается не на секретности алгоритмов шифрования и расшифровки, а на секретности некоторого сравнительно короткого значения, которое называется ее ключом (key) [CRYP11].

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

Для некоторых применений (главным образом в военных, дипломатических и разведывательных ведомствах) для разработчика общей криптосистемы нет никаких причин для того, чтобы открытым образом описывать характер ее алгоритмов. Сохраняя эту информацию в тайне, можно обеспечить некоторую дополнительную безопасность. Однако, решающим обстоятельством, позволяющим полагаться на такую секретность, это не является, поскольку ничего нельзя сказать о том, когда она может быть скомпрометирована. По этой причине, исследования надежности таких систем всегда должны проводиться в предположении, что потенциальному противнику о криптосистеме известно все, за исключением реально используемого секретного ключа. А если на самом деле противник такими знаниями не обладает, то это даже лучше. Для других типов применений, например, большим финансовым комплексам, в действительности лучше раскрывать, как работают их криптосистемы. В противном случае пользователи всегда будут предполагать возможность существования некоего секретного метода раскрытия такой криптосистемы.

Общая криптографическая система называется криптосистемой с секретным ключом, если в ней любые две стороны, перед тем, как связаться друг с другом, должны заранее договориться между собой об использовании в дальнейшем некоторой секретной части информации, которая и называется секретным ключом [CRYP11].

Отсутствие необходимости хранить в секрете алгоритм дает производителям возможность реализовать алгоритмы шифрования данных в виде дешевых общедоступных микросхем, которыми оснащены многие современные системы.

При использовании таких систем основная проблема защиты заключается в надежном сохранении секретного ключа.

Наиболее важными алгоритмами традиционной схемы шифрования (или систем с секретным ключом) являются блочные шифры DES, IDEA.

Предположим, Серёга желает отправить сообщение для Натали, и хочет, чтобы никто, кроме нее, не смог его прочитать. Как показано на рис. 3, можно зашифровать, то есть преобразовать сообщение безнадежно сложным образом, зная, что никто, кроме Серёги и Натали, не сможет его прочитать. При этом Серёга применяет для шифрования криптографический ключ, а Натали должна использовать тот же ключ для расшифровки.

Здесь один и тот же ключ используется как для зашифровки, так и для расшифровки сообщения. Это означает, что этот ключ должен быть сначала передан по надежному каналу, с тем чтобы обе стороны знали его до того, как передавать зашифрованное сообщение по ненадежному каналу.

Но возникает вопрос: если у Серёги есть надежный канал, которым он может воспользоваться для обмена ключами, спрашивается, зачем ему вообще нужна криптография?