Réseau de substitution-permutationvignette|Représentation d'un réseau de substitution-permutation en 3 rounds avec le texte en clair (noté PLAINTEXT), la clé de chiffrement (notée KEY) et le texte chiffré (noté CIPHERTEXT). En cryptographie, un réseau de permutation-substitution (SPN en anglais) est une architecture utilisée dans les chiffrements par bloc comme AES. Elle consiste en une série de transformations mathématiques sur le bloc en clair en entrée pour produire un bloc chiffré en sortie.
Chiffrement par blocvignette|un schéma de chiffrement par bloc Le chiffrement par bloc (en anglais block cipher) est une des deux grandes catégories de chiffrements modernes en cryptographie symétrique, l'autre étant le chiffrement par flot. La principale différence vient du découpage des données en blocs de taille généralement fixe. La taille de bloc est comprise entre 32 et 512 bits. Dans le milieu des années 1990, le standard était de 64 bits. Depuis 2000 et le concours AES, le standard est de 128 bits.
Cryptanalyse différentielle impossibleEn cryptanalyse, la cryptanalyse différentielle impossible ou cryptanalyse par différentielles impossibles est une technique basée sur la cryptanalyse différentielle (1990), elle a été proposée en 1999 par Eli Biham, Adi Shamir et Alex Biryukov dans le cadre de la cryptanalyse de Skipjack. Le principe en lui-même est apparu quelques années auparavant lors d'attaques différentielles mais il n'y avait pas de méthode formellement définie.
Confusion et diffusionEn cryptologie, confusion et diffusion sont deux propriétés dans une méthode de chiffrement qui ont été identifiées par Claude Shannon dans son document Communication Theory of Secrecy Systems publié en 1949. D'après la définition originale de Shannon, la confusion correspond à une volonté de rendre la relation entre la clé de chiffrement et le texte chiffré la plus complexe possible. La diffusion est une propriété où la redondance statistique dans un texte en clair est dissipée dans les statistiques du texte chiffré.
Cryptanalyse différentielleLa cryptanalyse différentielle est une méthode générique de cryptanalyse qui peut être appliquée aux algorithmes de chiffrement itératif par blocs, mais également aux algorithmes de chiffrement par flots et aux fonctions de hachage. Dans son sens le plus large, elle consiste en l'étude sur la manière dont les différences entre les données en entrée affectent les différences de leurs sorties.
Chiffrement par substitutionvignette|Exemple de chiffrement par substitution: le chiffre de César. Le chiffrement par substitution est une technique de chiffrement utilisée depuis bien longtemps puisque le chiffre de César en est un cas particulier. Sans autre précision, elle désigne en général un chiffrement par substitution monoalphabétique, qui consiste à substituer dans un message chacune des lettres de l'alphabet par une autre (du même alphabet ou éventuellement d'un autre alphabet), par exemple, ainsi que procédait César a par d, b par e et ainsi de suite.
Advanced Encryption StandardAdvanced Encryption Standard ou AES ( « norme de chiffrement avancé »), aussi connu sous le nom de Rijndael, est un algorithme de chiffrement symétrique. Il remporta en octobre 2000 le concours AES, lancé en 1997 par le NIST et devint le nouveau standard de chiffrement pour les organisations du gouvernement des États-Unis. Il a été approuvé par la NSA (National Security Agency) dans sa suite B des algorithmes cryptographiques. Il est actuellement le plus utilisé et le plus sûr.
TwofishTwofish est un algorithme de chiffrement symétrique par bloc inventé et analysé par Bruce Schneier, Niels Ferguson, John Kelsey, Doug Whiting, David Wagner et Chris Hall. Twofish chiffre des blocs de 128 bits avec une clé de 128, 192 ou 256 bits. Il reprend en partie des concepts présents dans le populaire Blowfish, du même auteur. Il était l'un des cinq finalistes du concours AES. mais il n'a pas été sélectionné pour le standard.
CryptanalyseLa cryptanalyse est la technique qui consiste à déduire un texte en clair d’un texte chiffré sans posséder la clé de chiffrement. Le processus par lequel on tente de comprendre un message en particulier est appelé une attaque. Une attaque est généralement caractérisée selon les données qu'elle nécessite : attaque sur texte chiffré seul (ciphertext-only en anglais) : le cryptanalyste possède des exemplaires chiffrés des messages, il peut faire des hypothèses sur les messages originaux qu'il ne possède pas.
Cryptanalyse linéaireLa cryptanalyse linéaire est une technique inventée par Mitsuru Matsui, chercheur chez Mitsubishi Electric. Elle date de 1993 et fut développée à l'origine pour casser l'algorithme de chiffrement symétrique DES. Ce type de cryptanalyse se base sur un concept antérieur à la découverte de Matsui : les expressions linéaires probabilistes. Ces dernières ont été étudiées par Henri Gilbert et Anne Tardy-Corfdir dans le cadre d'une attaque sur FEAL.
Cryptanalyse intégraleLa cryptanalyse intégrale est une technique formalisée par David Wagner et Lars Knudsen pour attaquer des chiffrements insensibles à la cryptanalyse différentielle. Elle nécessite de disposer d'un grand nombre de paires de textes clairs et chiffrés. Le but est de prédire la valeur des intégrales après un certain nombre de tours dans un chiffrement de bloc. La cryptanalyse intégrale est la duale de la cryptanalyse différentielle dans le sens où l'on ne s'intéresse pas aux propagations de différences dans la structure de chiffrement mais à la somme de plusieurs valeurs.
Serpent (cryptographie)Serpent est un algorithme de chiffrement par bloc finaliste pour le concours AES. Il obtiendra finalement la (59 votes contre 86 votes pour Rijndael). Serpent a été conçu par , Eli Biham et Lars Knudsen. Tout comme les autres candidats pour AES, Serpent a une taille de bloc de 128 bits et supporte des clés de 128, 192 ou 256 bits, mais également d'autres longueurs inférieures (multiple de 8 bits). L'algorithme comporte 32 tours d'un réseau de substitution-permutation opérant sur quatre mots de 32 bits.
Réseau de FeistelUn réseau de Feistel est une construction utilisée dans les algorithmes de chiffrement par bloc, nommée d'après le cryptologue d'IBM, Horst Feistel. Elle a été utilisée pour la première fois dans Lucifer et DES. Cette structure offre plusieurs avantages, le chiffrement et le déchiffrement ont une architecture similaire voire identique dans certains cas. L'implémentation matérielle est aussi plus facile avec un tel système même si les choses ont passablement changé depuis la fin des années 1970.
Lucifer (cryptographie)Lucifer est une famille d'algorithmes de chiffrement par bloc développés par Horst Feistel et ses collègues d'IBM. Il s'agit d'une des premières méthodes de chiffrement moderne destinée à un usage civil. Lucifer fut le précurseur direct de DES. Une des versions, DTD-1, fut utilisée pour la banque en ligne (e-banking) durant les années 1970. Une autre variante, décrite dans le brevet (; Juin 1971), utilise un bloc de 48 bits. Le chiffrement se fait via un réseau de permutations et de substitutions.
S-BoxS-Box (substitution box), terme anglais désignant une table de substitution utilisée dans un algorithme de chiffrement symétrique. Une S-Box contribue à la « confusion » (terme employé par Claude Shannon) en rendant l'information originale inintelligible. Les S-Boxes permettent de casser la linéarité de la structure de chiffrement et leur nombre varie selon les algorithmes. DES compte par exemple huit tables de 16x4 éléments.
Chiffrement par produitEn cryptographie, un chiffrement par produit est un type populaire de chiffrement de bloc qui exécute à la suite un certain nombre de transformations simples comme des substitutions, des permutations et des opérations d'arithmétique modulaire. Les chiffrements par produit sont une concaténation de plusieurs « tours » avec la même structure. Isolées, les opérations sont faibles du point de vue cryptanalytique, mais le chaînage permet d'accroître la robustesse en améliorant les qualités de confusion et diffusion.
Attaque temporelleEn cryptanalyse, une attaque temporelle consiste à estimer et analyser le temps mis pour effectuer certaines opérations cryptographiques dans le but de découvrir des informations secrètes. Certaines opérations peuvent prendre plus de temps que d'autres et l'étude de ces informations temporelles peut être précieuse pour le cryptanalyste. La mise en œuvre de ce genre d'attaque est intimement liée au matériel ou au logiciel attaqué. Des attaques temporelles peuvent aussi se faire à distance, via un réseau.
PermutationEn mathématiques, la notion de permutation exprime l'idée de réarrangement d'objets discernables. Une permutation d'objets distincts rangés dans un certain ordre correspond à un changement de l'ordre de succession de ces objets. La permutation est une des notions fondamentales en combinatoire, c'est-à-dire pour des problèmes de dénombrement et de probabilités discrètes. Elle sert ainsi à définir et à étudier le carré magique, le carré latin, le sudoku, ou le Rubik's Cube.
Arrondi (mathématiques)Arrondir un nombre consiste à le remplacer par un autre nombre considéré comme plus simple ou plus pertinent. Ce procédé s'appelle arrondissage ou arrondissement et le nombre obtenu est un arrondi. Le résultat est moins précis, mais plus facile à employer. Il y a plusieurs façons d'arrondir. En général, on arrondit un nombre en en donnant une valeur approchée obtenue à partir de son développement décimal en réduisant le nombre de chiffres significatifs. L'arrondi peut se faire au plus proche, par excès ou par défaut.
Round (cryptography)In cryptography, a round or round function is a basic transformation that is repeated (iterated) multiple times inside the algorithm. Splitting a large algorithmic function into rounds simplifies both implementation and cryptanalysis. For example, encryption using an oversimplified three-round cipher can be written as , where C is the ciphertext and P is the plaintext. Typically, rounds are implemented using the same function, parameterized by the round constant and, for block ciphers, the round key from the key schedule.