# Adversaire (algorithme)

En cryptologie, un adversaire (traduit directement de l'anglais adversary) est une entité malveillante dont le but est d'empêcher les utilisateurs légitimes d'un cryptosystème de réaliser leur but (principalement confidentialité, intégrité et disponibilité des données). Les efforts d'un adversaire peuvent être dirigés vers la découverte de données secrètes, la corruption de données, le spoofing de l'identité d'un expéditeur ou d'un récepteur de message ou la pression pour mettre le système en temps d'arrêt.

## Adversaires et théorie de l'information

Ce concept permet de marquer une différence fondamentale entre la cryptographie et les éléments classiques de la théorie de l'information dans le cadre de la gestion et de la transmission de données. La cryptographie doit faire face à un adversaire « intelligent » dans le sens où cet adversaire est capable de mettre à mal le système par une réflexion, une analyse et la conception d'une attaque précise qui peut être mise en œuvre.
La théorie de l'information tient habituellement compte, quant à elle, de phénomènes physiques aléatoires qui viennent perturber les communications. Même si un bruit présent sur un canal de communication peut être mathématiquement décrit, on peut le considérer comme un « adversaire » sans intelligence, c'est-à-dire une attaque « au hasard ». Toutefois, il est également possible de traiter du bruit produit « intelligemment » par un adversaire avec la théorie de l'information, ce qui en modifie les théorèmes. Par exemple, avec un bruit-adversaire, on peut corriger la moitié moins d'erreurs.

### En pratique

Les adversaires réels (non-idéalisés par une théorie) sont appelés « attaquants », et ce terme est prédominant en sécurité informatique, beaucoup moins en cryptographie et vice-versa. Dans la pratique comme en théorie, des personnages fictifs tiennent le rôle de variables d'adversaires et on les nomme couramment Eve, Mallory, Oscar et Trudy.
Les analyses d'adversaires dites théoriques sont néanmoins d'application pratique, puisqu'elles sont prises en considération en sécurité informatique. Il est utile de considérer tout attaquant comme une boîte noire, donc comme un adversaire tel que défini.

### En théorie

Cette notion d'adversaire aide le raisonnement intuitif et formel au sujet des cryptosystèmes en moulant l'analyse de leur valeur comme un « jeu » entre les utilisateurs et un ennemi centralement coordonné. La notion de la sécurité d'un cryptosystème est significative seulement en ce qui concerne des attaques particulières (habituellement présumées effectuées par des adversaires d'un type donné).
L'« avantage » est la mesure de l'avantage qu'a un adversaire à casser un système. L'avantage d'un adversaire est la différence entre la probabilité de l'adversaire à casser le système et la probabilité que le système puisse être cassé en devinant directement. L'avantage est indiqué en fonction du paramètre de sécurité.
Il y a plusieurs types d'adversaires selon quelles possibilités ou intentions sont présumées. Un adversaire peut être :
* calculatoirement limité ou illimité (c.-à-d. en termes de ressources de temps et de stockage) ;
* écoutant ou byzantin (c.-à-d. passivement écoutant dessus ou données activement corrompant dans le canal) ;
* statique ou adaptatif (comportement fixe ou variable) ;
* mobile ou non-mobile (par exemple dans le contexte de la sécurité de réseau).

### Principe de Kerckhoffs

Selon le principe de Kerckhoffs, l'adversaire est supposé toujours connaître le détail du procédé de chiffrement. Ce principe, énoncé par le linguiste Auguste Kerckhoffs en 1882, soutient le fait qu'une méthode ne doit pas reposer sur le secret du procédé, mais seulement sur celui d'une clé facilement modifiable.