A5/1 est un algorithme de chiffrement par flot utilisé dans le cadre des communications GSM. Il produit une suite pseudo-aléatoire avec laquelle on effectue un XOR avec les données. Une autre variante existe, la A5/2. On trouve aussi le terme de A5/3 (KASUMI), bien que ce dernier ne soit pas un algorithme de chiffrement par flot mais de bloc. L'algorithme A5 utilise une clé de mais son implémentation dans le GSM n'utilise que effectifs ( sont mis à zéro). La version A5/1 est utilisée en Europe. La version A5/2 est plus vulnérable mais utilisée sur d'autres marchés, notamment en Amérique du Nord. En 1994, l'architecture du A5/1, à l'origine secrète, est publiée. En 1999, les versions 1 et 2 sont complètement spécifiées après de l'ingénierie inverse effectuée par Marc Briceno à partir d'un téléphone GSM. En 2000, on comptait environ 130 millions d'utilisateurs du GSM basé sur A5/1. Une conversation GSM s'effectue par division en blocs temporels, chacun dure et contient 2× pour les deux canaux de communication (full-duplex). Une clé de session K est utilisée pour la communication. Pour chaque bloc, K est mélangée à un compteur de blocs et le résultat est utilisé comme état initial d'un générateur de nombres pseudo-aléatoires qui produit . Ceux-ci servent au chiffrement après un XOR avec les données des deux canaux. L'architecture de A5/1 est basée sur trois registres à décalage à rétroaction linéaire. Ils ont une longueur de 19, 22 et . Ces degrés n'ont pas été choisis au hasard : comme les degrés de ces trois registres sont premiers entre eux, la période est égale au produit des périodes des trois registres. Ainsi la période de A5/1 (avant répétition) est de 2^64 bits (2 puissance 64). Pour insérer un nouveau bit dans le registre lors d'un décalage, on effectue pour chaque registre un XOR entre quelques bits déjà présents dans le registre. Les positions des bits utilisés sont constantes. On récupère ensuite trois bits à des positions fixes, un par registre, avec lesquels on calcule une fonction « majorité » (le bit qui « gagne » est celui qui apparaît au moins deux fois).
Serge Vaudenay, Asli Bay, Jialin Huang