Правила Керкгоффса (не путать с законами Кирхгофа)

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

  1. Система должна быть практически, если не математически, невзламываемый.
  2. Система не должна требовать сохранения ее в тайне и попадание ее в руки врагов не должно вызывать проблем.
  3. Хранение и передача ключа должны быть осуществимы без помощи бумажных записей; участники должны располагать возможностью легко менять ключ по своему усмотрению.
  4.  Система должна быть совместима с телеграфной связью (напомню, что речь идет о конце 19-го века, когда единственным способом связи был телеграф).
  5. Система должна быть портативной и работа с ней не должна требовать более одного человека.
  6. Наконец, от системы требуется, учитывая возможные обстоятельства ее использования, чтобы она была проста в использовании и не требовала значительного напряжения ума или соблюдения большого количества правил.

Данные шесть принципов были впервые опубликованы в журнале "Военная наука" в 1883-м году (издается до сих пор). Две статьи, в январском и февральском выпусках, описывали существующие в 19-м веке системы шифрования и способы их криптоанализа. Там же Огюст Керкгоффс сформулировал и основы создания надежных криптографических систем, упомянутые выше.


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

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



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

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

ЗЫ. Кстати, не стоит путать Керкгоффса и Кирхгофа. Первый предложил принципы создания криптографических систем, актуальные до сих пор. И звали его Огюст. А второй был великим физиком, который сформулировал правила (часто именуемые законами) в области электричества. И звали его Густав. Но это так, из области общих знаний. 
Alt text

Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!