C3_ Crypto_symétrique_asymétrique
Transcription
C3_ Crypto_symétrique_asymétrique
Exemple d’algorithmes symétriques (2) Cours 3 : Cryptographie Exemple d’algorithmes à clé symétriques et algorithmes asymétriques DES (Data Encryption Standard) C=DES(M) - Permutation initiale x0=IP(M) - 16 itérations dans un réseau de Feiste - Permutation finale C=IP-1(x16) • Tous basés sur les opérations –Découpage –Permutation Entre la clé et l’entrée –XOR • DES (Data Encryption Standard) –Standard du gouvernement américain (76) –Réponse à un appel d’offres –Définit les S-box, transformation non linéaire –Utilise des clés de 56(!) bits } Exercice 1. Permutation : Exprimer IP-1 2. Expansion soit 0x12345678 en entrée du bloc E. Donner la sortie du bloc E (on se contentera des 6 premiers bits) 3. La sous clé Ki=0xABCDEF012345, quelle est l’entrée du bloc S1? 4. Quels sont les 4 premiers bits en sortie du bloc S1? Réseau de Feiste Fonction F Anecdote sur la NSA et la cryptanalyse différentielle AES (Advanced Encryption Standard) - Byte_Sub : Substitution non linéaire (sur octet) opération identique sur les 16 octets Pour les opérations suivantes les octets sont représentés dans une matrice 4x4 - Shift_Row : Transposition/Permutation : rotation de chaque ligne n°L de L octets - Mix_Colonne : chaque colonne est le résultat d’une multiplication par polynôme. Exemple d’algorithmes symétriques (3) • • • • IDEA RC4, RC5, RC6 Blowfish Un nouveau standard : AES (2002) –Ex Rijndael –Block cypher • AES est le standard de fait • Les algorithmes symétriques sont facilement implantables efficacement en matériel Limitations des algorithmes symétriques Algorithmes asymétriques • Dit aussi « chiffrement à clé publique » • Choix de la clé –Aléatoire de bonne qualité –Pas toujours facile (source?) • Transmission de la clé –Connaissance a priori de la clé nécessaire –Commerce électronique ? • Nombre de clés pour communications multi-points • Une clé = 2 parties différentes, k=(k1,k2) – Une pour chiffrer – Une pour déchiffrer ce qui a été chiffré – Si E(k1,M)=M’ alors D(k2,M’)=M – Si E(k2,M)=M’’ alors D(k1,M’’)=M – E : fonction de chiffrement D de déchiffrement • Typiquement k1=clé privée et k2=clé publique. – Algorithme à sens unique: • Mathématiquement, à partir de k2 il n’existe qu’un seul k1. Donc si on connait k2 on peut connaître k1! • Solution : L’algorithme permettant de trouver k1 à partir de k2 à un coût très élevé Avantages du chiffrement asymétrique • Pas de connaissance a priori des clés nécessaires –Seule la partie publique est nécessaire –Peut être récupéré sur un site de confiance (on verra comment plus tard) • Pas un nombre exponentiel de clés –Taille plus importante des clés. Quelques éléments sur l’arithmétique modulaire • x.y mod k=(x mod k).(y mod k) mod k • (x+y) mod k=(x mod k) + (y mod k) mod k • Petit théorème de Fermat: –Si p est premier, pour tout entier x • x^p mod p=x mod p • Théorème du reste chinois: –Si k1 et k2 sont premiers entre eux • x mod k1.k2=(x mod k1).(x mod k2) mod k1.k2 Exemples d’algorithmes asymétriques RSA • Le plus connu : RSA (77), chiffrement par blocs • Opérations identiques pour le chiffrement et le déchiffrement – E=D=exponentiation modulaire • Regardons la création d’une clé 1.Choisir deux grands nombres premier, p et q, au hasard 2.Calculer n=pq 3.Choisir un entier e premier avec (p-1)(q-1) 4.Calculer d tel que de=1 mod (p-1)(q-1) • K1=(d,n), K2=(e,n) RSA (2) • E(k1,M)=M^d mod n=M’ • D(k2,M’)=M’^e mod n=M’’ Exercice : - Montrer que M’’ est égal à M - Quel est le coût algorithmique d’un chiffrement? hyp: le coût d’une multiplication et d’une division euclidienne sur n bits est de l’ordre de O(n), en utilisant des algorithmes performants. RSA (3) Algorithmes asymétriques (3) • Caractéristiques de RSA –Opérations de chiffrement et déchiffrement coûteuses –Résistance de RSA dépend de la factorisation d’un nombre en deux premiers • Importance de choisir des grands (clés sur 1024 bits) • Log discret –Exemple El Gamal (DSA) • h=g^x mod p k1={h,g,p} –p premier, g un élément générateur, x clé privée • E(k1,M)=m.h^k mod p=M’ –k tiré au hasard, c2=E(k1,M) envoyé ainsi que c1=g^k • D(M’)=c2/c1^x mod p • Courbes elliptiques (ECC) –Assez compliqués,Appelées à détroner RSA Dans combien de temps ? Facteurs affaiblissants Taille de la clé : exemple de MSIE à l’époque de la limitation à 40 bits en france • Taille de la clé –Rendre la clé introuvable par recherche exhaustive, 128 bits est inatteignable en symétrique • Clé pas assez aléatoire –Voir la faille de la semaine • Clé accessible –Insuffisamment protégée –Problème d’organisation La faille de la semaine • Manque d’aléatoire dans les clés générées par les distributions Linux Debian • Lien – Date de mai 2008 – Tous les systèmes Debian affectés – Modification mal comprise d’une bibliothèque de chiffrement – Conséquences désastreuses – Rien de ce qui n’a été échangé avec une machine Debian avant la découverte de cette faille n’est sûr