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