Принцип Керкгоффса и максима Шеннона

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

Алексей Лукацкий  https://www.securitylab.ru/blog/personal/Business_without_danger/344752.php

 

13 Сентября, 2018

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

 

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


Данные шесть принципов были впервые опубликованы в журнале "Военная наука" в 1883-м году (издается до сих пор).

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

 


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

 

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


 

 

 

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

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

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

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

От репостера, т.е. меня)) 

Возникает вопрос, а были созданы такие системы, которые удовлетворяли всем требованиям Керкгоффса? Ответ положительный – Да! На пример: Diana Cryptosystem.

Этим шифром первоначально пользовались агенты ЦРУ в странах социалистического лагеря, потом во время Вьетнамской войны, начиная с конца 1965 года, АНБ обеспечила им «зеленых беретов» и РДГ. В 80-х этим шифром пользовалась Береговая охрана США.

В чем особенность этой криптосистемы – в таблице Бофорта (Бофора) с конечным числом триграмм (126) и одноразовом буквенном шифроблокноте (OTP).

Как это работает можно посмотреть в этом ролике:

https://www.youtube.com/watch?v=Gw1-0X0Ffm0

Более подробно здесь http://militaryradio.com/spyradio/otp.html

и здесь http://www.vietnamgear.com/Article.aspx?Art=47

PS Не путайте таблицу Бофорта (Бофора) с таблицей Виженера, они очень похожи, но разные. Таблица Бофора позволяет шифровать на лету, а Вижинера - нет.