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. Les blocs sont ensuite chiffrés les uns après les autres. Il est possible de transformer un chiffrement de bloc en un chiffrement par flot en utilisant un mode d'opération comme CTR (des blocs formant un compteur sont chiffrés pour former une séquence pseudo-aléatoire) ou CFB (on chaîne le chiffrement en effectuant un XOR entre les résultats successifs).
Une liste non exhaustive de chiffrement par bloc :
En 1997, la sécurité du DES n'était plus garantie face à une recherche exhaustive de la clé désormais envisageable et le chiffrement Triple DES était jugé trop lent. C'est alors que le National Institute of Standard and Technology (NIST) américain - une agence du département du commerce des Etats-Unis - lanca un processus de standardisation appelé Advanced Encryption Standard process pour concevoir un nouvel algorithme de chiffrement par bloc. Pas moins de 16 équipes de cryptologues du monde entier y participèrent. En 2000, c'est l'équipe belge qui l'emporta et vit son algorithme remplacer le DES[1]. La version de Rijndael standardisée par le NIST, appelé chiffrement AES, est un chiffrement par bloc de 128 bits de type réseau de substitutions-permutations utilisant des clés de 128, 192 ou 256 bits.[2]
Il y en a encore bien d'autres qui sont adaptés à des besoins particuliers. Certains consomment plus de mémoire ou sont plus gourmands en puissance de calcul. Un chiffrement par bloc peut également être utilisé comme une fonction de hachage, c'est-à-dire une fonction à sens unique. Une variante de DES est employée pour le système de mots de passe dans Unix. Une chaîne contenant uniquement des zéros est chiffrée avec une clé correspondant au mot de passe (une composante aléatoire appelée "sel" est encore intégrée à l'algorithme). Ce chiffrement est itératif et se fait 25 fois avant d'obtenir le résultat final.