Введение

Принцип криптографии

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

Иными словами, проектируйте свою систему, предполагая, что ваши оппоненты знают ее во всех деталях. (Один бывший сотрудник Национального центра компьютерной безопасности АНБ рассказал мне, что там стандартным предположением было то, что серийный номер 1 любого нового устройства поставляется в Кремль.)

Сохранение безопасности

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

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

Приложения

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