Принцип Керкхоффса - Kerckhoffs's principle

Принцип Керкхоффса (также называемый желанием , предположением , аксиомой , доктриной или законом Керкхоффса ) криптографии был провозглашен криптографом из Нидерландов Огюстом Керкхоффсом в 19 ​​веке. Принцип гласит, что криптосистема должна быть безопасной, даже если все о системе, кроме ключа , является общеизвестным.

Принцип Керкхоффса был переформулирован (или, возможно, независимо сформулирован) американским математиком Клодом Шенноном как « противник знает систему», т. Е. «Следует разрабатывать системы в предположении, что противник немедленно ознакомится с ними полностью». В такой форме это называется максимой Шеннона .

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

Эта концепция широко используется криптографами, в отличие от концепции « безопасность через неизвестность », которой нет.

Происхождение

В 1883 году Огюст Керкхоффс   написал две журнальные статьи о La Cryptographie Militaire , в первой из которых он изложил шесть принципов построения военных шифров . В переводе с французского это:

  1. Система должна быть практически, если не математически, неразборчивой;
  2. Он не должен требовать секретности, и не должно быть проблем, если он попадет в руки врага;
  3. Должна быть обеспечена возможность передачи и запоминания ключа без использования письменных заметок, а корреспонденты должны иметь возможность изменять или модифицировать его по своему желанию;
  4. Это должно быть применимо к телеграфной связи;
  5. Он должен быть портативным и не должен требовать, чтобы для его манипуляции или работы требовалось несколько человек;
  6. Наконец, учитывая обстоятельства, в которых она будет использоваться, система должна быть простой в использовании и не должна вызывать стресса при использовании или требовать от пользователей знания и соблюдения длинного списка правил.

Некоторые из них больше не актуальны, учитывая способность компьютеров выполнять сложное шифрование, но его вторая аксиома, теперь известная как принцип Керкхоффа, по-прежнему критически важна.

Объяснение принципа

Керкхоффс рассматривал криптографию как конкурента и лучшую альтернативу стеганографическому кодированию, которое было распространено в девятнадцатом веке для сокрытия смысла военных сообщений. Одна из проблем со схемами кодирования заключается в том, что они полагаются на человеческие секреты, такие как «словари», которые раскрывают, например, секретное значение слов. Словари, подобные стеганографическим, однажды обнаруженные, навсегда скомпрометируют соответствующую систему кодирования. Другая проблема заключается в том, что риск разоблачения увеличивается по мере увеличения числа пользователей, владеющих секретами.

Криптография девятнадцатого века, напротив, использовала простые таблицы, которые обеспечивали транспонирование буквенно-цифровых символов, обычно с учетом пересечений строк и столбцов, которые могли быть изменены с помощью ключей, которые, как правило, были короткими, числовыми и могли быть сохранены в человеческой памяти. Система считалась «не поддающейся расшифровке», потому что таблицы и ключи сами по себе не передают смысла. Секретные сообщения могут быть скомпрометированы только в том случае, если соответствующий набор таблицы, ключа и сообщения попадет в руки врага в соответствующий период времени. Керкхоффс считал, что тактические сообщения актуальны только на несколько часов. Системы не обязательно скомпрометированы, потому что их компоненты (например, таблицы буквенно-цифровых символов и ключи) могут быть легко изменены.

Преимущество секретных ключей

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

Существует множество способов обнаружения внутренних деталей широко используемой системы. Наиболее очевидным является то, что кто-то может подкупить, шантажировать или иным образом запугать сотрудников или клиентов, чтобы они объяснили систему. Во время войны, например, одна сторона, вероятно, захватит какое-то оборудование и людей с другой стороны. Каждая сторона также будет использовать шпионов для сбора информации.

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

Обеспечение безопасности

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

Принцип применим не только к кодам и шифрам, но и к системам безопасности в целом: каждый секрет создает потенциальную точку отказа . Другими словами, секретность - это первопричина хрупкости и, следовательно, то, что может сделать систему склонной к катастрофическому коллапсу. И наоборот, открытость обеспечивает пластичность.

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

Например, криптографический алгоритм может быть реализован аппаратным и программным обеспечением, широко распространенным среди пользователей. Если безопасность зависит от сохранения этого секрета, то раскрытие информации приводит к серьезным логистическим трудностям при разработке, тестировании и распространении реализаций нового алгоритма - он «хрупкий». С другой стороны, если сохранение алгоритма в секрете не важно, но только ключи, используемые с алгоритмом, должны быть секретными, то раскрытие ключей просто требует более простого и менее затратного процесса генерации и распространения новых ключей.

Приложения

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

Безопасность через безвестность

Компании, а иногда и органы по стандартизации, как в случае с шифрованием CSS на DVD-дисках , обычно сохраняют внутреннюю работу системы в секрете. Некоторые утверждают, что эта «безопасность за счет неизвестности» делает продукт более безопасным и менее уязвимым для атак. Контраргумент состоит в том, что сохранение в секрете внутреннего устройства может улучшить безопасность в краткосрочной перспективе, но в долгосрочной перспективе следует доверять только системам, которые были опубликованы и проанализированы.

Стивен Белловин и Рэнди Буш прокомментировали:

Безопасность через неизвестность считается опасной

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

Открытое обсуждение способствует повышению безопасности

Долгая история криптографии и криптоанализа снова и снова показывала, что открытое обсуждение и анализ алгоритмов выявляют слабые места, о которых не задумывались первоначальные авторы, и, таким образом, приводят к созданию лучших и более безопасных алгоритмов. Как Керкхоффс заметил о шифровальных системах в 1883 году [Kerc83]: «Il faut qu'il n'exige pas le secret, et qu'il puisse sans inconvénient tomber entre les mains de l'ennemi». (Грубо говоря, «система не должна требовать секретности и должна быть в состоянии украсть противник, не создавая проблем».)

Примечания

использованная литература

Эта статья включает материал из статьи Citizendium « Принцип Керкхоффса », которая находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License, но не GFDL .

внешние ссылки