Принцип Керкгоффса - Kerckhoffss principle
Принцип Керкхоффса (также называемый Желание Керкхоффса, предположение, аксиома, доктрина или же закон) из криптография заявил криптограф из Нидерландов Огюст Керкхоффс в 19 веке: А криптосистема должен быть безопасным, даже если все в системе, кроме ключ, является общеизвестным.
Принцип Керкхоффса был переформулирован (или, возможно, независимо сформулирован) американским математиком. Клод Шеннон как " враг знает систему ",[1] т. е. «следует проектировать системы в предположении, что противник немедленно ознакомится с ними полностью». В таком виде он называется Изречение Шеннона. Эта концепция широко используется криптографами, в отличие от "безопасность через безвестность ", который не.
Происхождение
В 1883 г. Огюст Керкхоффс [2]написал две журнальные статьи о La Cryptographie Militaire,[3]в первом из них он изложил шесть принципов проектирования для военных шифры. В переводе с французского это:[4][5]
- Система должна быть практически, если не математически, неразборчивой;
- Он не должен требовать секретности, и не должно быть проблем, если он попадет в руки врага;
- Должна быть предусмотрена возможность передачи и запоминания ключа без использования письменных заметок, а корреспонденты должны иметь возможность изменять или модифицировать его по своему желанию;
- Это должно быть применимо к телеграфной связи;
- Он должен быть портативным, и для его манипуляции или работы не требуется несколько человек;
- Наконец, учитывая обстоятельства, в которых она будет использоваться, система должна быть простой в использовании и не должна вызывать стресса при использовании или требовать от пользователей знания и соблюдения длинного списка правил.
Некоторые из них больше не актуальны, учитывая способность компьютеров выполнять сложное шифрование, но его вторая аксиома, теперь известная как принцип Керкхоффа, по-прежнему критически важна.
Объяснение принципа
Керкхоффс рассматривал криптографию как соперника и лучшую альтернативу ему. стеганографический кодирование, которое было распространено в девятнадцатом веке для сокрытия смысла военных сообщений. Одна из проблем со схемами кодирования состоит в том, что они полагаются на человеческие секреты, такие как «словари», которые раскрывают, например, секретное значение слов. Словари, подобные стеганографическим, однажды обнаруженные, навсегда скомпрометируют соответствующую систему кодирования. Другая проблема заключается в том, что риск разоблачения увеличивается по мере увеличения количества пользователей, владеющих секретами.
Криптография девятнадцатого века, напротив, использовала простые таблицы, которые обеспечивали транспонирование буквенно-цифровых символов, обычно с учетом пересечений строк и столбцов, которые могли быть изменены с помощью ключей, которые обычно были короткими, числовыми и могли быть сохранены в человеческой памяти. Система считалась «не поддающейся расшифровке», потому что таблицы и ключи сами по себе не передают смысла. Секретные сообщения могут быть скомпрометированы только в том случае, если соответствующий набор таблицы, ключа и сообщения попадет в руки врага в соответствующий период времени. Керкхоффс считал, что тактические сообщения актуальны только на несколько часов. Системы не обязательно скомпрометированы, потому что их компоненты (например, таблицы буквенно-цифровых символов и ключи) можно легко изменить.
Преимущество секретных ключей
Предполагается, что использование безопасной криптографии заменит сложную проблему обеспечения безопасности сообщений гораздо более управляемой, сохраняя в безопасности относительно небольшие ключи. Очевидно, что система, которая требует долговременной секретности для чего-то столь же большого и сложного, как вся конструкция криптографической системы, не может достичь этой цели. Он только заменяет одну сложную проблему другой. Однако, если система безопасна, даже когда противник знает все, кроме ключа, то все, что нужно, - это управлять сохранением ключей в секрете.
Существует множество способов раскрытия внутренних деталей широко используемой системы. Наиболее очевидным является то, что кто-то может дать взятку, шантажировать или иным образом запугать сотрудников или клиентов, чтобы они объяснили систему. Во время войны, например, одна сторона, вероятно, захватит часть техники и людей с другой стороны. Каждая сторона также будет использовать шпионов для сбора информации.
Если метод включает программное обеспечение, кто-то может сделать дампы памяти или запустите программное обеспечение под управлением отладчика, чтобы понять метод. Если используется оборудование, кто-то может купить или украсть часть оборудования и создать любые программы или устройства, необходимые для его тестирования. Оборудование также можно разобрать, чтобы детали микросхемы можно было исследовать под микроскопом.
Обеспечение безопасности
Некоторые обобщают принцип Керкхоффса: «Чем меньше и проще секретов, которые нужно хранить для обеспечения безопасности системы, тем проще поддерживать безопасность системы». Брюс Шнайер связывает это с убеждением, что все системы безопасности должны быть спроектированы так, чтобы терпеть неудачу так же изящно по возможности:
Принцип распространяется не только на коды и шифры, но и на системы безопасности в целом: каждый секрет создает потенциальную точка отказа. Другими словами, секретность - это первопричина хрупкости и, следовательно, то, что может сделать систему склонной к катастрофическому коллапсу. И наоборот, открытость обеспечивает пластичность.[6]
Любая система безопасности в решающей степени зависит от сохранения некоторых вещей в секрете. Однако принцип Керкхоффса указывает на то, что вещи, которые хранятся в секрете, должны быть наименее дорогостоящими для изменения в случае непреднамеренного раскрытия.
Например, криптографический алгоритм может быть реализован аппаратным и программным обеспечением, которое широко распространено среди пользователей. Если безопасность зависит от сохранения этого секрета, то раскрытие информации приводит к серьезным логистическим трудностям при разработке, тестировании и распространении реализаций нового алгоритма - он «хрупкий». С другой стороны, если сохранение алгоритма в секрете не важно, а только ключи используемый с алгоритмом должен быть секретным, тогда для раскрытия ключей просто требуется более простой и менее затратный процесс создания и распространения новых ключей.
Приложения
В соответствии с принципом Керкхоффса в большинстве гражданских криптографий используются общеизвестные алгоритмы. Напротив, шифры, используемые для защиты секретной правительственной или военной информации, часто держатся в секрете (см. Шифрование типа 1 ). Однако не следует предполагать, что правительственные / военные шифры должны храниться в секрете для обеспечения безопасности. Возможно, они предназначены для того, чтобы быть такими же криптографически надежными, как и общедоступные алгоритмы, и решение сохранить их в секрете согласуется с многоуровневой политикой безопасности.
Безопасность через безвестность
Это умеренно характерно для компаний, а иногда и для органов стандартизации, как в случае с CSS-шифрование на DVD, чтобы сохранить внутреннюю работу системы в секрете. Некоторые утверждают, что такая «безопасность благодаря неизвестности» делает продукт более безопасным и менее уязвимым для атак. Контраргумент заключается в том, что сохранение в секрете внутреннего устройства может улучшить безопасность в краткосрочной перспективе, но в долгосрочной перспективе следует доверять только системам, которые были опубликованы и проанализированы.
Стивен Белловин и Рэнди Буш прокомментировал:[7]
Безопасность через неизвестность считается опасной
Скрытие уязвимостей безопасности в алгоритмах, программном обеспечении и / или оборудовании снижает вероятность их устранения и увеличивает вероятность того, что они могут и будут использованы. Предотвращение или запрещение обсуждения слабых мест и уязвимостей чрезвычайно опасно и пагубно для безопасности компьютерных систем, сети и ее граждан.
Открытое обсуждение способствует повышению безопасности
Долгая история криптографии и криптоанализа снова и снова показывает, что открытое обсуждение и анализ алгоритмов выявляют слабые места, о которых не задумывались первоначальные авторы, и, таким образом, приводят к созданию более совершенных и безопасных алгоритмов. Как заметил Керкхофф о шифровальных системах в 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». (Грубо говоря, «система не должна требовать секретности и должна быть в состоянии украсть противник, не вызывая проблем».)
Примечания
- ^ Шеннон, Клод (4 октября 1949). «Коммуникационная теория секретных систем». Технический журнал Bell System. 28 (4): 662. Дои:10.1002 / j.1538-7305.1949.tb00928.x. Получено 20 июн 2014.
- ^ Кан, Дэвид (1996), Взломщики кодов: история тайного письма (второе изд.), Scribners стр.235
- ^ Петитколас, Фабьен, Электронная версия и английский перевод "La Cryptographie militaire"
- ^ Kerckhoffs, Огюст (январь 1883 г.). "La Cryptographie Militaire" [Военная криптография] (PDF). Журнал военных наук [Военно-научный журнал] (На французском). IX: 5–83.
- ^ Kerckhoffs, Огюст (февраль 1883 г.). "La Cryptographie Militaire" [Военная криптография] (PDF). Журнал военных наук [Военно-научный журнал] (На французском). IX: 161–191.
- ^ Манн, Чарльз К. (сентябрь 2002 г.), «Неуверенность в Родине», The Atlantic Monthly, 290 (2).
- ^ Белловин, Стивен; Буш, Рэнди (февраль 2002 г.), Безопасность через неизвестность считается опасной, Инженерная группа Интернета (IETF), получено 1 декабря, 2018
Рекомендации
- В этой статье использованы материалы из Citizendium статья "Принцип Керкхоффа "под лицензией Creative Commons Attribution-ShareAlike 3.0 Непортированная лицензия но не под GFDL.