Théorie de l'information et codage Master de cryptographie Cours 9 : Chirement par ot 13 et 16 mars 2009 Université Rennes 1 Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 1 / 24
Qu'est ce que la cryptographie par ot? Rappel : le masque jetable XOR entre le message et une clé de même longueur qu'on jette ensuite Seul prouvé sûr Inutilisable (échanger la clé = même problème qu'échanger le message) Chirement par ot = se rapprocher du masque jetable Méthode Générer un ux de bits aléatoires : la clé. Faire un XOR avec le message (ou autre). Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 2 / 24
Caractéristiques des chirements par ot Comparaison avec les chirements par blocs Chirement par ot Chirement par bloc en mode CFB ou OFB 1 bit à la fois blocs de bits débit élevé débit moyen bien adapté à une implémentation hard soft implémentation spécique ré-utilisation de l'existant Utilisation Essentiellement pour des communications sans l (GSM, Wi, Bluetooth,...) à cause du besoin de débit élevé. Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 3 / 24
Générateurs aléatoires et pseudo-aléatoires Un (vrai) générateur aléatoire doit être non-déterministe (il ne doit pas pouvoir être reproduit de manière able). Un générateur pseudo-aléatoire doit produire une suite qui a l'air aléatoire, c.a.d. qui satisfait des tests probabilistes disponibles sur http ://csrc.nist.gov/groups/st/toolkit/rng/index.html, imprévisible (impossible, étant donné l'algo et les premiers bits de construire le bit suivant), déterministe (c.a.d. il peut être reproduit). Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 4 / 24
Réalisation un ordinateur est déterministe générateurs aléatoires diciles à réaliser. un ordinateur n'a qu'un nombre ni d'états possibles générateurs pseudo-aléatoires périodiques (on va utiliser deux fois la même clé). De grandes périodes sont nécessaires. Le monde réel est aléatoire (bruit dans un ordinateur, temps de lecture d'un chier, vitesse de frappe au clavier) débits très faibles Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 5 / 24
Principe d'un générateur pseudo-aléatoire dans un chirement par ot Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 6 / 24
Types de Chirement par ot : chirement synchrone La séquence de clé est indépendante du message k i = f (k i 1) c i = k i m i Avantage : Inconvénient : Avantage de l'inconvénient : Inconvénient de l'avantage : pas de propagation d'erreur tout faux si désynchronisation une attaque par omission ou insertion provoque une désynchronisation modication facile et indétectable Si on utilise le même ux de clé, ça casse tout Solutions : - changer la clé de départ (graine), - utiliser un générateur avec une grande période équivalent au mode OFB Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 7 / 24
Types de Chirement par ot : chirement asynchrone Les bits de clé dépendent des bits de clé précédents et des bits du message. Un chirement auto-synchrone ne dépend que de ça k i = f (k i 1, c i t,, c i 1) c i = k i m i Avantage : Inconvénients : synchronisation automatique propagation d'erreurs possibilité de rejouer les données (attaque par rejeu) équivalent au mode CFB Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 8 / 24
Générateurs linéaires congruentiels z n = (az n 1 + b) mod m où z n est le n-ième bit de ux de clé, a, b et m sont publics et z 0 est la graine. Si a, b et m sont choisis correctement, le générateur sera de période maximale (m). Avantages : rapides car peu d'opérations, bonne répartition Inconvénient : cryptographiquement mauvais Utilisation non cryptographique Combinaison de générateurs linéaires (ou polynomiaux) congruentiels meilleur comportement statistique plus grandes périodes pas plus sûrs Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 9 / 24
Registres à décalage à rétroaction Composé de deux éléments un registre à décalage une fonction de rétroaction f A chaque étape (top d'horloge), s 0 est retourné, tous les autres bits sont décalés vers la gauche et s n est calculé par la fonction de rétroaction f. Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 10 / 24
Registres à décalage à rétroaction linéaire (LFSR) Par exemple s n = f (s 0,..., s n 1) = n c i s n i. i=1 Il y a 2 n possibilités d'initialisation (la clé) période maximale T = 2 n 1 Dans le cas de la période maximale, on parle de m-suite. Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 11 / 24
Polynôme de rétroaction On appelle polynôme de rétroaction le polynôme de F 2 [X ] F (X ) = 1 + c 1 X + c 2 X 2 + + c n X n Theorem La suite est une m-suite si son polynôme de rétroaction est le polynôme minimal d'un générateur du groupe cyclique F 2 n primitif), autrement dit si F est irréductible F divise X 2n 1 + 1 F ne divise pas X d + 1 si d 2 n 1 Générer un polynôme primitif est un problème dicile. Méthode : prendre un polynôme au hasard et vérier. (c.a.d. le polynôme est Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 12 / 24
Exemple de LFSR Le polynôme de F 2 [X ] est primitif et donc le LFSR X 16 + X 14 + X 13 + X 11 + 1 a une période de 2 16 1. On utilise souvent des polynômes clairsemés qui sont plus rapides mais moins sûrs. Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 13 / 24
Un peu de théorie Dénition La complexité linéaire d'une suite périodique s est la longueur du plus petit LFSR qui l'engendre. On la note L(s). Si s est une m-suite de période 2 L 1, alors sa complexité linéaire est L. Algorithme de Berlekamp-Massey Calcul en temps quadratique la complexité linéaire et un polynôme engendrant un ot identique à celui d'un LFSR donné. il sut de connaître 2L(s) bits consécutifs de la suite pour la retrouver entièrement. LFSR pas sûrs du tout Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 14 / 24
Combinaison de LFSR avec f non linéaire. f et les polynômes de rétroaction sont publics. La clé est l'état initial des LFSR. Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 15 / 24
Combinaison de LFSR (2) La suite est forcément périodique attaquable par Berlekamp-Massey La complexité linéaire vaut dans ce cas f (L 1, L 2,..., L n ) Exemple : générateur de Gee 3 LFSR de longueurs premières entre elles 2 à 2. f (x 1, x 2, x 3 ) = x 1 x 2 x 1 x 3 x 2 période (2 L 1 1)(2 L 2 1)(2 L 3 1) complexité linéaire : L 1 L 2 + L 1 L 3 + L 2 Autres moyens d'introduire de la non-linéarité contrôle d'horloge (un LFSR contrôle l'horloge de l'autre) utilisation d'une mini mémoire (permettant de retarder la sortie) rétroaction non-linéaire (mais pas de théorie mathématique derrière) Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 16 / 24
Attaques par corrélation On exploite une éventuelle corrélation entre la sortie d'un des LFSR et la sortie générale. Exemple : Générateur de Gee La sortie du générateur est égale à celle de LFSR2 dans 75% des cas. On essaye de deviner l'état initial du LFSR2 (i.e. on essaye tous les états initiaux possibles). On compare les résultats obtenus avec le Gee attaqué d'une part et avec le LFSR2 deviné d'autre part. Si on a deviné le bon LFSR2, les résultats sont les mêmes dans 75% des cas, sinon seulement dans 50% des cas. Cette attaque peut être généralisée à tous les générateurs pseudo-aléatoires qui ont plusieurs composantes Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 17 / 24
Quelques exemples de chirement par ot : A5 (GSM) 3 LFSR de tailles 19,22 et 23, utilisant les polynômes clairsemés X 19 + X 18 + X 17 + X 14 + 1 X 22 + X 21 + 1 X 23 + X 22 + X 21 + X 8 + 1 Les registres sont remplis au départ avec une clé de 64 bits (en fait 54 seulement). Non-linéarité : les registres sont décalés à la majorité des bits du milieu (si on a deux 0 et un 1, on décale les registres où il y a les 0). Fait pour être cassable. Fondamentalement bon (bonne répartition de la sortie). Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 18 / 24
Quelques exemples de chirement par ot : E 0 (Bluetooth) 4 LFSR de 25, 31, 33 et 39 bits X 25 + X 20 + X 12 + X 8 + 1 X 31 + X 24 + X 16 + X 12 + 1 X 33 + X 28 + X 24 + X 4 + 1 X 39 + X 36 + X 28 + X 4 + 1 Clé de 128 bits. Non-linéarité assurée par 2 états internes de 2 bits chacun (mémoire tampon) mis à jour en fonction de l'état courant l'état précédent les sorties des LFSR Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 19 / 24
Quelques exemples de chirement par ot : E 0 (Bluetooth) Attaques en 2 40 mais gourmandes en mémoire. Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 20 / 24
Très facile à implémenter. Rien n'empêche des tables plus grandes. Des attaques existent, considéré comme peu sûr. Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 21 / 24 Quelques exemples de chirement par ot : RC4 (Wep, SSL) Dû à Rivest (1987), commercial. Détails connus depuis 1994 (équivalent libre : Arcfour). Fonctionnement Pas basé sur les LFSR mais sur une table S a 255 cases (S 0,..., S 255 ) formant une permutation des nombres entre 0 et 255. Cette permutation initiale dépend de la clé (de 40 à 256 bits). 2 compteur i et j sont initialisés à 0. Pour générer un octet aléatoire : i = i + 1 mod 256 j = j + S i Échanger S i et S j t = S i + S j mod 256 Renvoyer S t
Mauvais exemple d'intégration : le WEP RC4-64 (ou 128) avec 24 bits de vecteur initialisation (IV), envoyé en clair. reste 40 bits de clé (ou 104) Rôle de IV : éviter d'utiliser 2 fois la même graine. En pratique le IV change pour chaque paquet. Problèmes IV très court Aucune recommandation sur la sélection des IV (incrémentation, tirage aléatoire?) ensemble des IV très vite parcouru (11h à 54Mbps, voire 10 secondes si c'est aléatoire) Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 22 / 24
Attaque du WEP Étape 1 : se faire un dictionnaire de couples (IV, RC4(IV,k)) grâce à des couples clair/chirés obtenus en espionnant les authentications (la borne envoie une trame T, il faut répondre le bon chiré pour s'authentier), envoyant plein de mails, la borne va les chirer. Étape 2 : s'authentier en répondant T RC 4(IV, k) à la requête T grâce au dictionnaire. http ://www.tuto-fr.com/tutoriaux/tutorial-crack-wep-aircrack.php La faiblesse ne vient pas du RC4. Alternatives WPA (IV de 48 bits, clés changées régulièrement) compatible avec le WEP. WPA2 utilisant AES, pas compatible, plus lent, plus sûr. Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 23 / 24
Conclusion Très bien en hardware. Pas assez étudiés. Très peu ne sont pas attaqués. Chirement par bloc en mode ot conseillé en software. Un des grands chantier de la cryptographie Master Crypto (2008-2009) Théorie de l'information et codage 13 et 16 mars 2009 24 / 24