L’article révèle qu’au lieu de fournir une sécurité complète de 64 bits, l'état initial de GEA-1 peut être récupéré à partir de 65 bits seulement de flux de clés connus (avec au moins 24 bits provenant d'une trame) en évaluant 240 fois GEA-1 et en utilisant 44,5 GiB de mémoire. En revanche, pour GEA-2, les chercheurs ont découvert la même faiblesse intentionnelle. Cependant, en utilisant une combinaison de techniques algébriques et d'algorithmes de fusion de listes, il est toujours possible de casser GEA-2 en 245.1 minutes.
Longtemps réservée aux usages diplomatiques et militaires, la cryptologie répond aujourd'hui aux besoins du marché et constitue un domaine scientifique en pleine activité. Elle intervient dans de multiples applications et représente l'élément essentiel de la sécurisation du commerce électronique et du réseau Internet. L'International Association for Cryptologic Research (IACR) est une organisation scientifique à but non lucratif dont l'objectif est de faire progresser la recherche en cryptologie et dans les domaines connexes.
En 2011, des chercheurs ont analysé la sécurité du trafic GPRS et ont montré que les signaux GPRS pouvaient facilement être écoutés. Ce point a été signalé comme une grave faiblesse, d'autant plus que certains fournisseurs n'activaient pas du tout le chiffrement. Cependant, selon les auteurs, la plupart des opérateurs utilisaient à l'époque les algorithmes de chiffrement propriétaires GEA-1 ou GEA-2 pour chiffrer le trafic GPRS. Dans le même exposé, ces chercheurs ont également rapporté la rétro-ingénierie de ces algorithmes de chiffrement. Sans présenter tous les détails de la spécification, les propriétés suivantes de la conception de GEA-1 ont été démontrées :
- une fonction non linéaire est employée pour l'initialisation ;
- l'état est conservé dans trois registres de 31, 32 et 33 bits ;
- la fonction qui génère le flux de sortie est de degré algébrique 4 ;
- la fonction de mise à jour de l'état est linéaire, c'est-à-dire que les registres sont des LFSR ;
- il s'agit d'un chiffrement par flux qui fonctionne sur un état interne de 96 bits et utilise une clé de 64 bits.
*La structure du chiffrement de flux GEA-1 avec son état de 96 bits connu. Le degré algébrique de la fonction de sortie est 4.
Description de GEA-1 et GEA-2
GEA-1
GEA-1 est construit à partir de trois registres à décalage à rétroaction linéaire sur F2, appelés A, B et C, ainsi que d'une fonction de filtrage non linéaire, appelée f. Les registres A, B, C ont des longueurs de 31, 32 et 33, respectivement, et f est une fonction booléenne sur sept variables de degré 4. Les registres fonctionnent en mode Galois. Cela signifie que si le bit qui est décalé hors d'un registre est 1, les bits dans un ensemble spécifié de positions dans le registre sont inversés. La spécification de f = f(x0, x1, . . . , x6) est donnée sous la forme algébrique normale suivante :
x0x2x5x6 + x0x3x5x6 + x0x1x5x6 + x1x2x5x6 + x0x2x3x6 + x1x3x4x6 + x1x3x5x6 + x0x2x4 + x0x2x3 + x0x1x3 + x0x2x6 + x0x1x4 + x0x1x6 + x1x2x6 + x2x5x6 + x0x3x5 + x1x4x6 + x1x2x5 + x0x3 + x0x5 + x1x3 + x1x5 + x1x6 + x0x2 + x1 + x2x3 + x2x5 + x2x6 + x4x5 + x5x6 + x2 + x3 + x5
Aperçu de la génération du flux de clés de GEA-1 et GEA-2. Le registre D
n'est présent que dans GEA-2
n'est présent que dans GEA-2
Initialisation : le chiffrement est initialisé par un registre à décalage à rétroaction non linéaire de longueur 64, désigné par S. Ce registre est rempli de 0-bits au début du processus d'initialisation IV. L'entrée pour l'initialisation de GEA-1 se compose d'un vecteur d'initialisation public de 32 bits, d'un bit public dir (indiquant la direction de la communication) et d'une clé secrète de 64 bits K. L'initialisation commence en synchronisant S 97 fois, en introduisant un bit d'entrée à chaque horloge. Les bits d'entrée sont introduits dans la séquence IV0, IV1, . . . , IV31, dir, K0, K1, . . . , K63.
Initialisation du registre S
Lorsque tous les bits d'entrée ont été chargés, le registre est synchronisé 128 fois de plus avec des bits 0 en entrée. La fonction de rétroaction est constituée de f, xorée (c’est-à-dire à appliquer un OU exclusif (XOR) avec le bit qui est décalé et le bit suivant de la séquence d'entrée. Après que S ait été cadencé 225 fois, le contenu du registre est pris comme suit, une chaîne de 64 bits s = s0, . . . , s63. Cette chaîne est prise comme germe pour initialiser A, B et C comme suit. Premièrement, les trois registres sont initialisés à l'état zéro.
Ensuite, chaque registre est synchronisé 64 fois, avec un si-bit xoré sur le bit qui est décalé vers l'extérieur avant la rétroaction. Le registre A insère les bits de s dans l'ordre naturel s0, s1, . . . , s63. La séquence s est décalée cycliquement de 16 positions avant d'être insérée dans le registre B, de sorte que les bits sont introduits dans l'ordre suivant : s16, s17, . . . , s63, s0, . . . , s15. Pour le registre C, la séquence s est décalée cycliquement de 32 positions avant le début de l'insertion. Si l'un des registres A, B ou C se retrouve à l'état zéro, le bit en position 0 du registre est forcé d'être inséré. 0 du registre est obligatoirement mis à 1 avant le début de la génération du keystream.
Génération du Keystream : une fois que tous les registres ont été initialisés, la génération du keystream commence. Ceci est fait en prenant les bits dans sept positions spécifiées de chaque registre pour être l'entrée de f. Les trois sorties des fonctions f sont xorées (c’est-à-dire à appliquer un OU exclusif (XOR) ensemble pour produire un bit du keystream. Après avoir calculé le keystream, tous les registres sont synchronisés une fois chacun avant que le processus ne se répète.
GEA-2
Le chiffrement GEA-2 est une simple extension de GEA-1. Un quatrième registre de longueur 29, appelé D, est ajouté au système avec une instance de f. Pendant la génération du flux de clés, la sortie de f du registre D est ajoutée au flux de clés avec les trois autres à chaque horloge. Le processus d'initialisation de GEA-2 suit le même mode que pour GEA-1, mais il est effectué dans un registre plus long qui est cadencé plus souvent.
Initialisation de GEA-2 : comme pour GEA-1, l'initialisation de GEA-2 se fait par l'intermédiaire d'un registre à décalage à rétroaction non linéaire, appelé W. La longueur de W est de 97, et utilise f comme fonction de rétroaction. L'entrée de GEA-2 est la même que pour GEA-1 ; un IV de 32 bits et une direction de bit dir qui sont publiques, et une clé secrète de 64 bits K. L'initialisation commence par la mise de W à l'état zéro. Ensuite, il est cadencé 97 fois, en insérant un bit de la séquence d'entrée pour chaque horloge. L'ordre d'insertion de IV, dir et K est le même que pour GEA-1. Après l'insertion de K63, W est synchronisé 194 fois de plus, avec 0 en entrée.
Initialisation du registre W
Le contenu de W est maintenant considéré comme une chaîne de 97 bits w = w0, . . . , w96, et inséré dans A, B, C et D de la même manière qu'avec GEA-1. Les quatre registres commencent à partir de l'état zéro, et sont remplis avec les bits de w. Les décalages de l'endroit où chaque registre commence dans la séquence w est différent de celui du GEA-1. Le registre D insère les bits de w dans l'ordre naturel suivant w0, . . . , w96, alors que les registres A, B et C commencent avec les bits w16, w33 et w51, respectivement. Si l'un des registres se retrouve à l'état zéro après l'initialisation, le bit en position 0 est codé en dur à 1 avant le début de la génération de la clé.
Les chercheurs ont montré que l'algorithme de chiffrement du GPRS, GEA-1 n'offre qu'une sécurité de 40 bits (sur 64). Ils ont également montré qu'il est très peu probable qu'une instance aléatoire souffre de telles faiblesses. Puisque GEA-1 a été conçu pour être exportable dans le cadre des restrictions à l'exportation dans les pays européens à la fin des années 1990, cela pourrait être une indication qu'un niveau de sécurité de 40 bits était une barrière pour les algorithmes cryptographiques afin d'obtenir les autorisations nécessaires. En fin de compte, la conception faible du GEA-1 pose des problèmes de sécurité pour les communications actuelles, même si elle n'est pas activement utilisée par les opérateurs.
L'algorithme GEA-2 semble être une conception plus solide, dans laquelle les faiblesses de GEA-1 ne sont pas présentes. Néanmoins, le chiffrement n'offre pas une sécurité 64 bits complète. Bien qu'une telle attaque soit plus difficile à appliquer en pratique, il est possible que GEA-2 n'offre pas un niveau de sécurité assez élevé pour les normes actuelles. Par conséquent, les auteurs de l’article Cryptanalysis of the GPRS Encryption Algorithms GEA-1 and GEA-2 recommandent fortement que seuls les algorithmes de cryptage GPRS, beaucoup plus sûrs, soient utilisés.
Source : IACR
Et vous ?
Quel est votre avis sur le sujet ?
Voir aussi :
Les entreprises technologiques européennes mettent en garde contre une baisse des niveaux de protection des données dans l'UE, menacée par une initiative de la Commission européenne
Intel va fabriquer une puce pour le chiffrement entièrement homomorphe, dans le cadre du programme DPRIVE de la DARPA
StopCovid : l'INRIA va remplacer l'algorithme de chiffrement de l'application de contact tracing à quelques jours d'un passage à l'Assemblée nationale
Des failles du protocole GTP (GPRS Tunneling Protocol) laissent la 5G et d'autres réseaux mobiles ouverts aux vulnérabilités, selon un rapport