# Niveaux d'attaques

La résistance à un niveau d'attaque permet de caractériser la sécurité d’un schéma de chiffrement et sont données dans la définition des primitives cryptographiques. La cryptanalyse permet de s’assurer qu’un schéma donné est résistant aux différentes attaques. C'est un formalisme pour décrire avec précision la résistance d’un schéma par rapport à la puissance d’un attaquant.
Un des axiomes fondamentaux de la cryptographie, énoncé pour la première fois par Auguste Kerckhoffs au XIXe siècle, est que l'ennemi possède tous les détails de l'algorithme et qu'il ne lui manque que la clef spécifique pour le chiffrement. Pour un article détaillé, voir principe de Kerckhoffs.
Goldwasser et Micali ont démontré que la notion de sécurité par rapport à une attaque à texte clair choisi est équivalente à celle de sécurité sémantique pour un chiffrement.

## Chiffrement

Les définitions de sécurité sont construites sur un modèle tel que « XYZ-ZYX », où XYZ désigne le type d’attaque (distinguer deux messages, distinguer par rapport à l'uniforme, récupération de clef,…) et ZYX la puissance de l’attaquant (accès aux clefs uniquement, accès à texte clairs aléatoires, accès à texte clair choisis…). Par exemple le cryptosystème de ElGamal est indistinguable face aux attaques à clair choisi, mais pas à chiffré choisi (dû à sa malléabilité).

### Attaque à texte chiffré seulement (ciphertext-only attack)

Le cryptanalyste dispose du texte chiffré de plusieurs messages, tous ayant été chiffrés avec le même algorithme. La tâche du cryptanalyste est de retrouver le plus grand nombre de messages clairs possibles, ou mieux encore de retrouver la ou les clefs qui ont été utilisées, ce qui permettrait de déchiffrer d'autres messages chiffrés avec ces mêmes clefs.

### Attaque à texte clair connu (known-plaintext attack)

Le cryptanalyste a non seulement accès aux textes chiffrés de plusieurs messages, mais aussi aux textes clairs correspondants. La tâche est de retrouver la ou les clefs qui ont été utilisées pour chiffrer ces messages ou un algorithme qui permet de déchiffrer d'autres messages chiffrés avec ces mêmes clefs.

### Attaque à texte clair choisi (chosen-plaintext attack)

Le cryptanalyste a non seulement accès aux textes chiffrés et aux textes clairs correspondants, mais de plus il peut choisir les textes en clair. Cette attaque est plus efficace que l'attaque à texte clair connu, car le cryptanalyste peut choisir des textes en clair spécifiques qui donneront plus d'informations sur la clef.

### Attaque à texte chiffré choisi (chosen-ciphertext attack)

Le cryptanalyste peut choisir différents textes chiffrés à déchiffrer. Les textes déchiffrés lui sont alors fournis. Par exemple, le cryptanalyste a un dispositif qui ne peut être désassemblé et qui fait du déchiffrement automatique. Sa tâche est de retrouver la clef.
Ronald Cramer et Victor Shoup ont notamment exposé la différence (minime) entre IND-CCA1 et IND-CCA2.
Il existe des méthodes pour construire des schémas de chiffrement IND-CCA2 à partir de systèmes IND-CPA en utilisant des fonctions de hachage universelles à sens unique.

## Signature

De manière similaire au chiffrement, la sécurité d’un schéma de signature numérique prend une forme du type « YXZ-ZXY », YXZ étant le type d'attaques, pouvant la récupération de la clef, l’usurpation d’identité, ou la falsification d’une signature ; et ZXY pouvant être similairement au chiffrement un accès aux clefs seuls, une attaque passive, un accès à un oracle de signature$^,$…