Cryptographie Master de cryptographie Chirement par blocs 13 et 18 janvier 2016 Université Rennes 1 Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 1 / 28
Principe des chirements par blocs Dénition Soit A un alphabet. Un cryptosystème est un chirement par blocs si P et C sont tous les 2 A n. n est la longueur des blocs. Propriétés Les fonctions de chirement par blocs sont des permutations. En pratique l'espace des clés n'est qu'un sous ensemble de S(A n ) facile à représenter et à évaluer. Les modes opératoires permettent de déterminer la façon dont on chire la suite des blocs d'un message long. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 2 / 28
Le mode ECB (Electronic Code Book) Principe : On découpe le message m en blocs m i de taille n et on chire indépendemment chaque m i avec la clé k. Propriétés La clé xée, le chirement d'un bloc ne dépend que du message clair. Les blocs sont chirés de manière indépendante. Pas de propagation d'erreur. Sensible aux attaques par répétition (rejeu). Sensible à des motifs de blocs répétés fréquemment. Attaque statistiques facilitées. Substitution d'un bloc chiré par un autre possible (intégrité). Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 3 / 28
Problème de la répétition de bloc Sur un texte JO HN 10 50 00 JA CK 50 00 00 Q9 2D FP VX C9 IO LD AS FP C9 IO IO Sur une image Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 4 / 28
Le mode CBC (cipher-block chaining) Principe : Avant d'être chiré, un bloc est "Xoré" avec le chiré du bloc précédent. Cela nécessite un vecteur d'initialisation (IV) pour chirer et déchirer. Chirement : c j = E k (c j 1 m j ) Déchirement : m j = c j 1 D k (c j ) avec c 0 = IV Propriétés Chirement dépendant du contexte. Permet de contrer les attaques par dictionnaire. Une erreur sur le chiré peut se propager sur deux blocs consécutifs. Le IV n'a pas besoin d'être secret, mais c'est une donnée sensible. Si un bloc clair est modié, le déchirage de la suite est impossible. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 5 / 28
Le mode CFB (Cipher FeedBack) Principe : La fonction de chirement sert à générer des clés qu'on Xor avec le message clair. Le message est coupé en bloc de r bits (r n). Chirement I 1 initialisé à IV {0, 1} n. A la j-ème étape, O j = E k (I j ) t j = les r premiers bits de O j c j = m j t j I j+1 = 2 r I j + c j mod 2 n Déchirement I 1 initialisé à IV. A la j-ème étape on reçoit c j, O j = E k (I j ) t j = les r premiers bits de O j m j = c j t j I j+1 = 2 r I j + c j mod 2 n Si r = n, cela revient à chirer les blocs de sortie en mode ECB et à faire un Xor avec les blocs de clair Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 6 / 28
Le mode CFB (Cipher FeedBack) Propriétés N'utilise pas la fonction de déchirement. Une erreur simple peut se propager sur plusieurs blocs consécutifs. Si un bloc clair est modié, le déchirage de la suite est impossible. L'émetteur et le récepteur engendrent simultanément les blocs de clé. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 7 / 28
Le mode OFB (Output FeedBack) Similaire à CFB sauf que la dernière étape est I j+1 = O j. Propriétés N'utilise pas la fonction de déchirement. Pas d'erreur de propagation. La suite des chireurs (O j ) peut être précalculée. Il faut changer de clé ou de IV à chaque message. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 8 / 28
Le mode CTR (CounTeR) Propriétés N'utilise pas la fonction de déchirement. Pas d'erreur de propagation. La suite des chireurs peut être précalculée. Accès aléatoire aux données possible. Très facilement parallélisable. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 9 / 28
Remarques sur les modes opératoires Il en existe de nombreux autres (CTS, EAX,...). Ces modes de chirement n'assurent pas l'intégrité, il faut les coupler avec des MAC (Message Authentication Code). Propagation d'erreur et intégrité sont contradictoires. Si on veut tout assurer il faut rajouter des MAC et des codes correcteurs ou utiliser des modes spéciques (XCBC, IACBC, IAPM, OCB, EAX, CWC, CCM, GCM) Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 10 / 28
Le mode GCM (Galois Counter Mode) Combinaison du mode CTR et de l'utilisation du corps ni F 2 128 = F 2 [X ]/X 128 + X 7 + X 2 + X + 1. Recommandé par le NIST et la NSA standard. Intègre l'authentication des données. Blocs de 128 bits impératif. Propriétés Mêmes propriétés que le mode CTR. Bon rapport vitesse/ressources nécessaires. La valeur initiale du compteur doit changer à chaque chirement. Libre de droits. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 11 / 28
Le mode GCM (Galois Counter Mode) Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 12 / 28
Chirement par blocs itérés Dénition Les paramètres d'un chirement par blocs itérés sont la taille des blocs n, le nombre de rondes (round) r et une clé K. Le chiré est obtenu par r applications itérées d'une fonction de ronde au même clair dépendant d'une clé de ronde. Les clés de ronde sont dérivées de la clé K. Ainsi dans un chirement par blocs itérés à r rondes C i = g(c i 1, K i ) pour i = 1,, r avec C 0 le clair, g la fonction de ronde, K i les clés de ronde et C r le chiré Le déchirement se déroule suivant le processus inverse. g doit être inversible. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 13 / 28
Chirement de Feistel Dénition Un chirement (ou réseau) de Feistel est un chirement par blocs itérés avec n pair. De plus, à chaque ronde, Les blocs sont séparés en deux parties égales L i et R i et une ronde se déroule de la manière suivante On retourne nalement (R n, L n ). L i+1 = R i, R i+1 = L i f (R i, K i ). Remarque : il n'est pas nécessaire d'inverser f pour déchirer. En fait chirement et déchirement utilisent le même algorithme. Exemples de chirement basés sur les réseaux de Feistel : DES, Blowsh, KASUMI, Twosh, FEAL, en fait une grande majorité. Réseau de substitution/permutation En théorie f est arbitraire. En pratique f est constitué d'une combinaison de permutation des bits et de subsitutions (non linéaires). Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 14 / 28
Schema de chirement de Feistel Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 15 / 28
Les paramètres du DES Taille des blocs : 64 bits. P = C = {0, 1} 64. K { = (b 1,, b 64 ) {0, 1} 64 tq } 8 b i=1 8k+i = 1 mod 2 pour k = 1 8 K est de cardinal 2 56. 16 rondes. 16 clés de ronde de 48 bits. En plus du réseau de Feistel, on rajoute un permutation initiale Restent à décrire la fonction f, la permutation initiale et la génération des clé de ronde. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 16 / 28
Schéma du DES Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 17 / 28
La permutation initiale IP Si p = p 1 p 2 p 3 alors IP(p) = p 58 p 50 p 42 IP 1 est également donnée par une table. Opération très rapide (lecture d'une table). Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 18 / 28
La fonction de ronde f Application de {0, 1} 32 {0, 1} 48 dans {0, 1} 32 fabriquée à partir de substitutions (S-box) Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 19 / 28
Les S-box Substitution de 6 bits sur 4 bits Utilisation des S-box Si l'entrée d'une S-box est b 1 b 2 b 3 b 4 b 5 b 6, sa sortie est le développement binaire de la valeur se situant sur à l'intersection de la ligne b 1 b 6 et de la colonne b 2 b 3 b 4 b 5 dans la S-box (on numérote les lignes et les colonnes à partir de 0). Les S-box sont le coeur du DES. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 20 / 28
Génération des clés de ronde avec PC-1 et PC-2 des permutations (tables) et LS i une permutation circulaire de 2 bits vers la gauche (ou 1 bit si i = 1, 2, 9, 16) Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 21 / 28
Historique et cryptanalyse du DES 1975 : DES est ocialisé 1977 : DES devient un standard FIPS 1992 : Attaque (théorique) de DES par Biham et Shamir via la cryptanalyse diérentielle. Nécessite 2 47 textes choisis. 1994 : Cryptanalyse linéaire de DES par Matsui (2 47 puis 2 36 ) 1998 : une machine dédiée casse une clé DES en 56h 1999 : clé DES cassée en 22h via un calcul distribué 2005 : DES est retiré des standards FIPS Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 22 / 28
Combiner plusieurs DES? Double-DES Idée : chirer le chiré, i.e. c = E k (E k (m)). Se casse en à peine plus longtemps qu'un DES (2 60 ) Triple-DES Avec 3 clés de 56 bits environ 120 bits de sécurité (et 3 fois plus long qu'un simple DES) Avec seulement 2 clés de 56 bits environ 112 bits de sécurité c = E k (D k (E k (m))) Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 23 / 28
La sélection de AES (Advanced Encryption Standard Appel d'ore lancé en 1997 par le NIST pour remplacer le DES. Conférence AES1 en 1998 pour présenter les candidats (15). Conférence AES2 en 1999 pour sélectionner les nalistes : MARS, RC6, Rijndael, Serpent et Twosh. Tous considérés comme sûrs (NSA). Critères de jugement Sécurité pour une même taille de clé Indiscernabilité entre la sortie et une suite aléatoire Resistance aux nouvelles méthodes de cryptanalyse Propriété intellectuelle Ecacité Facilité/Cout d'implémentation Conférence AES3 en 2000. Vainqueur : Rijndael. Eprouvé 3 ans par la communauté mondiale avant son avènement. Standardisé en 2001. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 24 / 28
Description rapide de l'aes Chirement par blocs itérés taille des blocs : 128 bits taille des clés : 128, 192 ou 256 bits 10,12 ou 14 rondes Travaille sur F 2 8 (ie sur les octets) Utilise des tableaux 4 4 d'octets (états) Déchirement identique au chirement mais diérent Conçu pour résister aux attaques linéaires et diérentielles. Nouvelles attaques (canaux cachés, algébriques, cube attack, attaques sur les rondes) pour l'instant inecaces. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 25 / 28
Les rondes de l'aes Constituées de 4 étapes SubBytes : substitution non linéaire où chaque octet est remplacé par un autre via une table (S-box sur des octets). ShiftRows : permutation où chaque ligne de l'état est soumise à une permutation circulaire de longueur variable. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 26 / 28
Les rondes de l'aes MixColumns : mélange sur les colonnes via une transformation linéaire. AddRoundKey : Chaque octet de l'état est combiné avec la clé de ronde. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 27 / 28
Paramètres d'évaluation d'un chirement par blocs Taille des clés, i.e. niveau de sécurité théorique. Niveau de sécurité estimé (résistance aux attaques connues, intensité de la cryptanalyse). Débit. Complexité de la fonction de chirement. Intégrité et propagation d'erreur. Master Crypto (2015-2016) Cryptographie 13 et 18 janvier 2016 28 / 28