# Principe de Kerckhoffs

Le principe de Kerckhoffs a été énoncé par Auguste Kerckhoffs à la fin du XIXe siècle dans un article en deux parties « La cryptographie militaire » du Journal des sciences militaires (vol. IX, pp. 5–38, Janvier 1883, pp. 161–191, Février 1883). Ce principe exprime que la sécurité d'un cryptosystème ne doit reposer que sur le secret de la clef. Autrement dit, tous les autres paramètres doivent être supposés publiquement connus. Il a été reformulé, peut-être indépendamment, par Claude Shannon : « l'adversaire connaît le système ». Cette formulation est connue sous le nom de la maxime de Shannon. Il est considéré aujourd'hui comme un principe fondamental par les cryptologues, et s'oppose à la sécurité par l'obscurité.
Le principe de Kerckhoffs n'implique pas que le système de chiffrement soit public, mais seulement que sa sécurité ne repose pas sur le secret de celui-ci. Une tendance plus récente est de considérer que quand les systèmes de chiffrement sont publics, largement étudiés et qu'aucune attaque significative n'est connue, ils sont d'autant plus sûrs.

## Énoncé

Ce principe apparaît parmi les six « desiderata de la cryptographie militaire » énoncés par Kerckhoffs dans son traité, qui sont :
* Le système doit être matériellement, sinon mathématiquement indéchiffrable ;
* Il faut qu’il n’exige pas le secret, et qu’il puisse sans inconvénient tomber entre les mains de l’ennemi ;
* La clef doit pouvoir en être communiquée et retenue sans le secours de notes écrites, et être changée ou modifiée au gré des correspondants ;
* Il faut qu’il soit applicable à la correspondance télégraphique ;
* Il faut qu’il soit portatif, et que son maniement ou son fonctionnement n’exige pas le concours de plusieurs personnes ;
* Enfin, il est nécessaire, vu les circonstances qui en commandent l’application, que le système soit d’un usage facile, ne demandant ni tension d’esprit, ni la connaissance d’une longue série de règles à observer.
Kerckhoffs insiste sur les trois premiers desiderata, qui sont véritablement originaux à son époque, les trois derniers n'étant alors pas contestés. Ce qui est appelé aujourd'hui « principe de Kerckhoffs » est essentiellement le deuxième.

## Interprétations

L'interprétation de ce principe par Bruce Schneier a trait à l'« élégance » dans le cassage d'un cryptosystème. Traduit de l'anglais : « Le principe de Kerckhoffs s'applique au-delà des chiffres et des codes, c'est-à-dire aux systèmes de sécurité en général : tout secret est en fait un point de cassure possible. Par conséquent, le secret est une cause première de fragilité, donc cela même peut amener un système à un effondrement catastrophique. À l'inverse, l'ouverture amène la ductilité. »
Il est utile de détailler ce que Bruce Schneier entend par « fragilité » puisque tous les systèmes de sécurité dépendent du fait de garder quelque chose secret. Ce que Schneier insinue, c'est que ce qui est gardé secret doit être ce qui est le moins coûteux à changer si le secret s'avérait divulgué. Par exemple, un cryptosystème peut être implémenté sur du matériel informatique et des logiciels qui sont largement dispersés à travers plusieurs utilisateurs. Si la sécurité nécessite de tenir cette distribution secrète, alors sa divulgation mènera à un travail logistique considérable de développement, de tests et de distribution de nouveaux algorithmes. À l'opposé, si le secret de l'algorithme n'est pas important, et que seule celui de la clé l'est, alors la divulgation d'une clé entraîne moins de problèmes : il suffit d'en générer une nouvelle et de la distribuer. En bref, moins on a de secrets, moins on doit faire de maintenance.
Une autre interprétation, celle d'Eric Raymond, prêche en faveur du logiciel libre. Traduit de l'anglais : « Tout algorithme de sécurité dont la conception repose sur l'assurance que l'adversaire ne possède pas le code source n'est déjà pas sûr ; donc, il ne faut jamais faire confiance à un logiciel à code source fermé. ».