Принцип Керкгоффса
При́нцип Керкго́ффса — правило разработки криптографических систем, согласно которому в засекреченном виде содержится только определённый набор параметров алгоритма, называемый ключом, а сам алгоритм шифрования должен быть открытым. Другими словами, при оценке надёжности шифрования необходимо предполагать, что противник знает об используемой системе шифрования всё, кроме применяемых ключей. Широко применяется в криптографии. Впервые данный принцип сформулировал в XIX веке голландский криптограф Огюст КеркгоффсШаблон:Sfn.
Шесть требований Керкгоффса
В 1883 голландский криптограф Огюст Керкгоффс изложил шесть принципов проектирования военных шифров в своей книге «Военная криптография». Шесть основных требований к криптосистеме, все из которых до настоящего времени определяют проектирование криптографически стойких систем, в переводе с французского звучат так<ref>Шаблон:Citation</ref>: <templatestyles src="Шаблон:Начало_цитаты/styles.css" />{{#ifexpr: 0 mod 2 = 0 and 0 != 4 and 0 != 104 |
}}{{#if: |
:
}}
{{#ifexpr: 0 mod 2 = 0 and 0 != 4 and 0 != 104 |
}}
- Система должна быть по существу (…) не поддающейся расшифровке.
- Система не должна требовать секретности (…).
- Его должно быть легко передавать, и вы должны уметь запоминать ключи, не записывая их (…).
- Система должна быть совместима с телеграфной связью.
- Система должна быть портативной, и для ее эксплуатации не должно требоваться более одного человека.
- Система должна быть простой в использовании (…).
Шаблон:Oq {{#if: Auguste Kerckhoffs, «La Cryptographie Militaire»
| <templatestyles src="Шаблон:Конец цитаты/styles.css" />
}}
Второе из этих требований и стало известно как «принцип Керкгоффса».
История возникновения
Керкгоффс рассматривал криптографию как лучшую альтернативу стеганографическому кодированию, которое было распространено в девятнадцатом веке для сокрытия военных сообщений. Одна из проблем со схемами кодирования состоит в том, что они полагаются на секреты, хранящиеся человеком, такие как «словари», которые раскрывают, например, секретное значение слов. Обнаружение стеганографического словаря навсегда ставит под угрозу соответствующую систему кодирования. Другая проблема заключается в том, что риск раскрытия напрямую зависит от количества пользователей, владеющих секретом. В криптографии девятнадцатого века использовались простые таблицы, которые обеспечивали транспозицию буквенно-цифровых символов, как правило, с учетом пересечений строк и столбцов, которые могли быть изменены с помощью ключей, которые обычно были короткими, числовыми и могли быть зафиксированы в человеческой памяти. Секретные сообщения могут быть скомпрометированы только, если соответствующий набор таблицы, ключа и сообщения попадет в руки противника. Системы не подвергаются риску, потому что их компоненты, то есть буквенно-цифровые таблицы символов и ключи, могут быть легко измененыШаблон:Sfn.
Объяснение принципа
Суть принципа
Сущность принципа заключается в том, что мощь криптосистемы не должна основываться на незнании взломщика принципов работы алгоритмаШаблон:Sfn. Действительно, Брюс Шнайер полагает, что принцип Керкгоффса применим не только к кодам и шифрам, но и для систем безопасности в целом: каждый секрет создает потенциальную точку отказа. Другими словами, секретность является основной причиной хрупкости, и поэтому она может привести к катастрофическому краху системы. И наоборот, открытость обеспечивает гибкость системы. Принцип Керкгоффса направлен на то, чтобы сделать безопасность алгоритмов и протоколов независимой от их секретности; открытость не должна влиять на безопасность.<ref name="HomelandInsecurity">Шаблон:Citation</ref>
Преимущества
Использование безопасной криптографии заменяет сложную проблему обеспечения безопасности сообщений гораздо более управляемой: хранением относительно небольших ключей в безопасности. Хранить используемые методы в секрете сложнее, особенно в долгосрочной перспективе, как и изменять их после развертывания системыШаблон:Sfn.
Существует множество способов обнаружения внутренних деталей широко используемой системы. Наиболее мощным и эффективным способом вскрытия является бандитский криптоанализ. Криптоаналитик угрожает, шантажирует или пытает кого-нибудь, пока не получит ключ; может прибегать к вымогательству и взятничеству. Также существует возможность, что кто-то сможет дезассемблировать исходный код и восстановить алгоритмШаблон:Sfn.
В свою очередь раскрытие ключей влечет за собой более простой и менее затратный процесс генерации и распространения новых ключей. То есть безопасность должна зависеть только от секретности ключа, а не от секретности используемых методовШаблон:Sfn.
Применение
Большинство широко используемых в гражданской криптографии систем шифрования, в соответствии с принципом Керкгоффса, использует известные, не составляющие секрета криптографические алгоритмы. Но Агентство национальной безопасности хранит свои алгоритмы в секрете, и у них работают лучшие криптографы мира. И к тому же они обсуждают алгоритмы друг с другом, полагаясь на знание и компетенцию коллег. Соответственно, у них нет необходимости открывать алгоритмы для всехШаблон:Sfn.
Безопасность через неясность
Шаблон:Main Безопасность через неясность — антагонист принципа Керкгоффса, заключающийся в том, что необходимо скрывать внутреннее устройство системы для обеспечения её безопасности. В некоторых компаниях принято хранить в тайне внутреннюю работу системы. Они утверждают, что безопасность через неясность делает продукт более безопасным и менее уязвимым для атак. Противоположным аргументом является то, что безопасность через неясность может привести ко многим реальным атакам. Разработчики не должны недооценивать хитрость злоумышленников и никогда не должны использовать данный принципШаблон:Sfn.
Сокрытие уязвимостей в алгоритмах снижает вероятность их исправления и увеличивает вероятность того, что они могут и будут использоваться злоумышленниками. Открытое обсуждение и анализ алгоритмов выявляют слабые стороны, о которых не думали первоначальные авторы, и тем самым приводят к созданию более совершенных и более безопасных алгоритмов.Шаблон:Sfn
Максима Шеннона
Американский математик Клод Шеннон в статье «Теория связи в секретных системах», опубликованной в журнале Шаблон:Iw в 1949 году, сформулировал этот принцип (вероятно, независимо от Керкгоффса) следующим образом: «Враг знает систему»Шаблон:Sfn. В такой формулировке этот принцип называется максима Шеннона. Другими словами, нужно проектировать системы, исходя из предположения, что противник с ними полностью ознакомится.Шаблон:Sfn