Utilisation d automates cellulaires pour un système de cryptographie à clé secrète Pascal Bouvry Institut Supérieur de Technologie 6, rue Coudenhove Kalergi, L-1359 Luxembourg-Kirchberg, Luxembourg Email: pascal.bouvry@ist.lu, Tel: +385-420101-1, Fax: +352-432124 and Franciszek Seredynski Wyzsza Szkola Umiejetnosci Wesola 52, 25-353 Kielce Pologne Email: sered@ipipan.waw.pl, Tel: +48-22-836-2885, Fax: +48-22-837-6564 and Albert Y. Zomaya School of Information Technologies, University of Sydney Sydney, NSW 2006 Australie Email: zomaya@it.usyd.edu.au, Tel: +61-2-9351-6442, Fax: +61-2-9351-3838 Abstract Cet article décrit un système cryptographique à clés symmétriques basé sur des automates cellulaires (AC). L encodage cryptographique de base de Vernam y est considéré. La robustesse de l algorithme de Vernam dépend directement de la qualité des nombres aléatoires utilisés dans le processus d encodage. Des ACs unidimensionnels sont utilisés comme générateur de séquence de nombres pseudo-aléatoires (SNPA). La qualité de ces SNPAs générés dépend des règles de l AC utilisées. Des ACs non-uniformes avec deux types de règles utilisant des des règles de qualités ont été étudiı es. La recherche des règles a été effectuée à l aide d une technique évolutive appelée programmation cellulaire. Le comportement collectif des règles ainsi découvertes produit des SNPAs d une très grande qualité. La qualité de ces SNPAs est meilleure que celle des autres générateurs basé sur des ACs et trouvés dans la littérature pour la cryptographie à clé secrète. L ensemble étendu de règles trouvé augmente de plus la difficulté de casser les clés. Mots clés: automates cellulaires, nombres pseudoaléatoires, cryptographie à clé symmétrique, encodage de Vernam 1
1 Introduction Le nombre croissant d utilisateurs d Internet échangeant des messages et le nombre croissant d opérations commerciales conduites sur Internet nécessitent continuellement de nouveaux moyens d augmenter la sécurité et en particulier l encodage sûr des données échangées. Deux concepts de base au niveau des systèmes cryptographiques sont utilités: les systèmes à clé secrète et les systèmes à clé publique. Un état de l art en matière de systèmes à clé secrètes et publiques connus ou émergeants est proposé dans [13]. Une des techniques prometteuses est basée sur les automates cellulaires (ACs). Les ACs sont des modèles simples de calcul hautement parallèles et distribués porteurs de comportements complexes, en particulier, certains de ceux-ci sont capables d universalité des calculs. Un état de l art sur les recherches en ACs et leurs applications est disponible dans [12]. Les ACs pour les crypto-systèmes à clé publique furent proposés par Guan [1] et Kari [5]. Dans de tels systèmes deux clés sont requises: une clé pour l encodage et une autre pour le décodage. Notre article se concentre sur les systèmes à clé secrète. Dans de tels systèmes la clé d encodage et de décodage est identique. Le processus d encryption est basé sur la génération de séquences de bits peudo-aléatoires, et les ACs peuvent avantageusement être utilisé pour cela. Les ACs à clé secrète furent tout d abord étudiés par Wolfram [17], et ensuite par Habutsu et al. [3], Nandi et al. [10] et Gutowitz [2]. Récemment ils furentétaient aussi sujet d études pour Tomassini & Perrenoud [15], et Tomassini & Sipper [16], qui étudièrent des automates monodimensionnels (1D) et bidimensionnels (2D) pour l encryption. Notre article étend ces études récentes et étudie des automates unidimensionnels (1D) pour la cryptographie à clé secrète. L article est organisé comme suit. La section suivante présente l idée d un processus d encryption à clé secrète basé sur l encodage de Vernam et utilisant les ACs. La troisième section souligne les concepts principaux régissant les ACs, présente l état actuel des recherches en cryptographie à clé secrète et en particulier le système à la base de l article. La quatrième section d éveloppe une technique évolutive appelée programmation cellulaire et la cinquième section montre comment cette technique est utilisée pour découvrir de nouvelles règles pour les ACs adaptées à l encryption. La sixième section contient une analyse des résultats et la dernière section la conclusion. 2 Encodage de Vernam Cipher et Cryptographie à clé secrète Soit P, le texte d un message constitué de m bits p 1 p 2...p m, et k 1 k 2...k m une suite de bits correspondante à une clé k. Soit c i le i ème bit d un texte encodé obtenu par l utilisation de l opération d encodage XOR (ou exclusif): c i = p i XOR k i. Le bit p i du message originel peut être retrouvé eb appliquant la même opération XOR sur c i en utilisant la même clé k composée d une suite de bits: p i = c i XOR k i. L algorithme d encryptage appelé encodage de Vernam est connu pour être la base d un système parfaitement sécurié [8, 13] si la suite de bits composant la clé est vraiment imprédictible et utilisée une seule fois. D un point de vue pratique, cela signifie qu il faut trouver réponse aux questions suivantes: (a)comment fournir une clé composée d une suite purement aléatoire et imprédictible de bits, (b)comment obtenir une telle clé ayant une taille suffisante pour encoder des données utiles, et (c) comment passer de manière sécurisée la clé de l encodeur au décodeur et protéger son accès des intrusions. Dans ce papier, nous nous concentrons sur les questions (a) et (b). Nous proposerons des ACs pour générer des nombres pseudos aléatoires d une grande qualité (SNPAs) et une clé secrète sûre. 3 Automates Cellulaires et Cryptographie Un AC unidimensionnel est consistitué dans le cas le plus simple une collection d automates élémentaires à deux états qui sont arrangés dans un latice de longeur N, et qui inter-agissent de manière locale dans un temps discret t. Pour chaque cellule i, appelée cellule centrale, un 2
44 22 11 6 voisinage de rayon r est défini, consistant de de n i = 2r + 1 cellules, comprenant la cellule i. Lorsque un AC a taille finie, une condition frontière cyclique est appliquée, résultant en une grille circulaire. Considérons qu un état q t+1 i d une cellule i au temps t + 1 dépend uniquement des états de son voisinage au = f(qi t, qt i1, qt i2,..., qt ni ), et une fonction de transition f, appelée règle, qui définit une règle de mise à jour de la cellule i. Pour un AC binaire uniforme, la longueur L de règle est L = 2 n, où n = n i est le nombre de cellule d un voisinage donné, et le nombre de telles règles peut être exprimé comme 2 L. Pour les ACs qui ont par exemple un rayon r = 2 la longeur d une telle règle est L = 32, et le nombre de telles règles est 2 32 et croît très rapidement en fonction de L. Quand on applique une même règle à toutes les cellules d un AC, cet AC est appelé uniforme, à l opposé des ACs non-uniformes où différentes règles sont assignées aux cellules. temps t, c-à-d q t+1 i 4 Environnement de programmation cellulaire 4.1 Programmation cellulaire La PC est une technique de calcul évolutif similaire au modèle de diffusion des algorithmes parallèles génétiques et est utilisé [14] pour découvrir les règles de ACs nonuniformes. Fig. 1 montre un système de PC implémenté pour la découverte de telles règles [9]. Par opposition au PC utilisé dans [15] le système a la possibilité d évaluer des règles non-uniformes de deux types. Le système est constitué d une population de N règles (partie gauche) et chaque règle est assignée à une cellule unique d ACs (partie droite). Après avoir initialisé l état de chaque cellule, c-à-d, défini une configuration initiale, les ACs commencent à évoluer suivant les règles assignées et ce durant un nombre pré-défini d étapes dans le temps. Chaque cellule produit une séquence de bits, créant de ce fait une SNPA. Le premier à utiliser les ACs pour générer des SNPAs fût Wolfram [17]. Il utilisa des ACs uniformes unidimensionnels et la règle 30. Hortensius et al. [4] et Nandi et al. [10] utilisèrent des automates non-uniformes avec les règles 90 et 150, et démontrèrent la supériorité de la qualité des SNPAs généré à celle du système de Wolfram. Plus récemment, Tomassini et Perrenoud [15] proposèrent d utiliser des automates non-uniformes unidimensionnels avec r = 1 et les quatre règles 90, 105, 150 et 165, qui fournissent des SNPAs de très bonne qualité et un très grand espace de clé secrètres possible qui rend difficile la crypto-analyse. Au lieu de concevoir eux-même les règles pour les ACs, ils utilisèrent une technique évolutive appelée programmation cellulaire (PC) pour rechercher les règles. Dans notre étude, nous étendons cette ligne de recherche. Nous utilisons des ACs finis, non-uniformes et unidimensionnels. Nous étendons l espace potential de règles en considérant deux tailles de voisinage, c-à-d des voisinages de rayon r = 1 et r = 2. Afin de découvrir les règles appropriée dans cet immense espace de règles, nous allons utiliser la PC. POPULATION DE REGLES 22 0.00807 44 0.00802 82 91 46 11 105 26 18 100 6 2.32234 2.32599 2.32420 2.34358 2.36038 2.34283 2.32897 0.00431 0.00608 0 1 k-2 k-1 k k+1 k+2 N-2 N-1 } AC non-uniforme REGLES 1 0...... 0 0 1 1 0...... 1 0 i-1 i N-1 } NPAs Figure 1: Environnement de PC pour l évaluation des règles d ACs non-uniformes. Après l arrêt des ACs, l ensemble des SNPAs sont évaluées. L entropie E h est utilisée pour évaluer la qualité statistique de chaque SNPA. Pour calculer une valeur de l entropie, chaque SNPA est divisée en sous-séquences de taille h. Dans l ensemble des expérimentations, la valeur h = 4 a été utilisée. Soit k le nombre de valeurs que peut prendre chaque élément d une séquence (dans notre cas, la valeur binaire de tous les éléments k = 2) et k h un nombre d état possible de chaque séquence (k h = 16). 3
......... E h peut être calculé de la manière suivante: E h = k h j=1 p hj log 2 p hj, où p hj est la probabilté mesurée d occurence d une séquence h j dans une SNPA. L entropie obtaint sa valeur maximale E h = h quand les probabilités des k h séquences possibles de longueur h sont égales à 1/k h. Il est utile de souligner que l entropie est seulement une des mesures statistiques possibles des SNPAs. Elle sera utilisée comme fonction d évaluation dans la PC. Afin de décider la qualité statistique finale des SNPAs et l utilisabilité des règles découvertes dans le cadre de la cryptographie, certains tests additionnels devront être effectués. Une simple SNPA est produite par une cellule de l AC suivant la règle appliquée et dépend de la configuration c i des états des ACs. Pour évaluer de manière statistique une valeur fiable de l entropie, les ACs tournent avec le même ensemble de règles C fois pour différentes configurations c i, et finalement la valeur moyenne de l entropie est calculée et sert de fonction d évaluation de chaque règle appartenant à la population de règles. Après évaluation de la fonction objective de toutes les règles de la population, les opérateurs génétiques de sélection, cross-over et mutation sont appliqués de manière locale sur les règles. L algorithme évolutif se termine après un nombre pré-défini de générations de la PC. L algorithme peut être décrit de la manière suivante: 1: Initialisation aléatoire de la population de N règles de type 1 (r = 1) ou de type 2 (r = 2), ou des deux types, et création des ACs consistant de N cellules 2: assigner la règle k ième de la population de PC à la k ième cellule des ACs 3: pour i=1.. C faire { créer de manière aléatoire c i des ACs évoluer les ACs durant M étapes de temps évaluer l entropie de chaque SNP A } 4: Evaluer la fonction objective de chaque règle 5: Appliquer localement aux règles de fa con spécifiée les opérateurs génétiques de sélection, crossover et mutation 6: si la condition d ARRET n est pas satisfaite, retour à 2. 4.2 Opérateurs génétiques A l opposé de la population des algorithmes génétiques standards, les règles - individus de la population de la PC occupent une place spécifique dans la population et ont un voisinage strictement défini. Par exemple, la règle 105 (cf Fig. 1) (aussi indexée par k) correspond à la k ième cellule des ACs, et les règles 11 et 26 sont ses voisins immédiats. Toutes les règles montrées dans la figure appartiennent au premier type de règle avec r = 1, c-à-d, une fonction de transition d une règle dépend de trois cellules, une cellule donnée et deux cellules voisines. Dans le cas plus général considéré dans l article, on assume que les règles sont soit de type 1 (r = 1, règles courtes) ou de type 2 (r = 2, règles longues) comme montré dans Fig. 2. REGLES SOUS FORME DECIMALE 237267916 1953893097 87 0.00715 1087834447 93 1.67587 1688734159 41 2.00929 1304513194 a) 2.08859 2.10947 0.00751 2.69286 2.36826 REGLES SOUS FORME BINAIRE 00001110001001000110101111001100 0 01110100011101100000101011101001 1 01010111 2 01000000110101110000100101001111 3 01011101 N-4 01100100101010000000100111001111 N-3 00101001 N-2 01001101110000010100101010101010 N-1 Figure 2: Population de règles courtes et longues: les règles sont représentées sous forme décimale dans (a), et sous forme binaire dans (b). En plus du voisinage associé par les deux types de règle, nous introduisons un voisinage évolutif, c-à-d le voisinage des règles qui sont considérées pour la reproduction quand les opérateurs génétiques sont appliqués localement à une règle donnée. La taille et le format (pattern) de ce voisinage peut différer du voisinage associé suivant les types de règles. Fig. 1 montre un example b) 4
de voisinage évolutif pour la règle k qui est créé par les règles k 2, k 1, k, k + 1, k + 2. Il est assumé que le format d un tel voisinage est identique pour toutes les règles et est un paramètre prédéfini d une expérience. La séquence d opérateurs génétiques effectuée localement sur une règle donnée dépend des valeurs de la fonction objective des règles (le nombre sur le côté droit du nom de la règle, cf. Fig. 1) du voisinage évolutif de cette règle. Les opérateurs génétiques sont appliqués de la manière suivante: part à la reproduction, l espèce de l enfant va être identique à celle de la règle remplacée. Fig. 3 montre un cross-over entre unr règle courte 156 (r = 1) et une règle longue 617528021 (r = 2), et le résultat du cross-over, une règle courte 154. 1. si la k ième règle est la meilleure (la plus grande valeur de fonction objective) dans son voisinage évolutif alors la règle survit (sélection) et reste inchangée pour la génération suivante; aucun autre opérateur génétique n est appliqué 2. si dans le voisinage évolutif de la règle k seulement une règle existe qui est meilleure que la règle considérée alors la règle k est remplacée par la meilleure règle (sélection) seulement si les deux règles sont de même type, et ensuite l opérateur de mutation est appliqué; la règle reste inchangée si la meilleure règle est de l autre type 3. si deux règles sont meilleures que la règle k existe dans le voisinage alors l opération de crossover est appliqué sur la paire de règle, un enfant aléatoirement sélectionné de la paire de remplace la règle k, et en plus, l opérateur de mutation est appliqué 4. si plus de deux règles sont meilleures que la règle k dans le voisinage alors deux de celles-ci sont sélectionnées aléatoirement et vont créer (opérateur de cross-over) une paire d enfant; sur un des enfants sélectionné de manière aléatoire, une mutation est appliquée, et l enfant remplace la règle k. Deux types de règles existant dans une population de PC peuvent être considérée comme deux espèces d un algorithme co-évolutif. De ce fait, pour effectuer un cross-over entre les règles, des régulations spéciales sont nécessaires. On assume que deux règles parents de la même espèce créent une règle enfant de cette même espèce, ce qui peut être effectué pour le premier ou le second type de règle. Si des règles de type différent prennent Figure 3: Exemple de cross-over de règles courtes et longues. La règle courte P 1 prenant part au cross-over est constituée de 8 gènes (n = 0,..., 7) dont les valeurs correspondent aux valeurs de la fonction de transition définie sur les huit états voisins {000, 001,..., 111} existant pour r = 1. La règle longue P 2 est constituée de 32 gènes, chacun correspondant aux valeurs de la fonction de transition définie pour les 32 états voisins existant pour r = 2. La longue règle est repliée parcequ il existe une relation stricte entre le numéro d ordre de l état qui correspond au j ı eme gène de P 1 et les numéros d ordre des états correspondants aux gènes 2j, 2j + 1 et 2j + 16, 2j + 17 de P 2. Ces numéros d ordre des états de P 2 sont juste une extension du numéro d ordre des états correspondants d un gène de P 1. Par example, le gène n = 7 de P 1 correspond à l état {111} du voisinage, et les gènes 15, 14 et 31, 30 de P 2 correspondent respectivement aux états {01111, 01110} et {11111, 11110} contenant l état de P 1 (marqué en caractères gras). La figure Fig. 3 comment les règles P 1 et P 2 sont transformées via un cross-over entre les gènes 2 et 3 et un enfant Ch correspondant à une règle courte (r = 1) est créé. A cet effet la partie gauche de la règle la plus courte est copiée dans la partie gauche de l enfant. La partie droite de Ch est crée en fonction de la partie droite de P 2 sur la base de la majorité de 0s et de 1s dans les gènes 5
Entropie correspondants. Par example, le gène 1 de Ch a la valeur 1 parce que les 1s sont majoritaires aux 0s dans les gènes 2,3 et 18,19. Si le nombre de 0s et de 1s est identique dans un gène donné de P 2 alors la valeur du gène correspondant de P 1 décide d une valeur pour le gène de Ch (cf le gène 0 de Ch). Le dernier opérateur génétique est une mutation de type flip-bit effectuée avec la probabilité p m 0.001. 5 Découverte des règles 1D, ACs non-uniformes et utilisation de PC Pour l ensemble des expérimentation une population de PC et la taille des ACs étaient égale à 50 et la population était traitée durant 50 générations. Les ACs avaient une configuration initiale aléatoire d états et une ensemble de règles assignées évoluant durant M = 4096 étapes de temps. L exécution des ACs avec un ensemble donné de règles était répété pour C = 300 configurations initiales. 4 3.95 3.9 3.85 3.8 N = 50 Meilleur Moyen Pire VOISINAGE EVOLUTIF = i-3,i-2,i,i+2,i+3 0 5 10 15 20 25 30 35 40 45 50 GENERATION de PC Figure 4: Un example d exécution du processus évolutif de PC pour un voisinage évolutif 11 1 11. L objectif du premier ensemble d expérimentations était d étudier l influence d une taille et d une forme de voisinage évolutif sur la qualité entropique des SNPAs générées par les ACs. Dans cette optique, les voisinages évolutifs suivants furent considérés pour la i ième cellule des ACs et pour les deux types de règles: i 1, i, i+1 (aussi notée 111), i 2, i 1, i, i + 1, i + 2 (11111), i 3, i 2, i 1, i, i + 1, i + 2, i + 3 (1111111), i 3, i 2, i, i + 2, i + 3 (11 i 11) et i 3, i, i + 3 (1 i 1). Fig. 4 montre un exemple s exécutant de PC pour le voisinage évolutif i 3, i 2, i, i + 2, i + 3. On peut voir que la meilleure règle ayant une valeur d entropie proche de 4 est trouvée après 20 générations et les l ensemble des ACs produit de très bonnes SNPAs après 40 générations (cf, la valeur moyenne Moyen de l entropie). Génération 50 Règle Numéro Fitness --------------------------------------------------------------- 01011010 90 3,98924 01011010 90 3,98943 01011010 90 3,98920 01011010 90 3,98981 00110011110011000011001111001100 869020620 3,98924 00110011110011000011001111001100 869020620 3,98959 00110011110011000011001111001100 869020620 3,98940 00110011110011000011001111001100 869020620 3,98906 00110011110011000011001011001100 869020364 3,94157 00110011110011000011001111001100 869020620 3,98960 00110011110011000011001111001100 869020620 3,98952 00110011110011000011001111001100 869020620 3,98929 00110011110011000011001111001100 869020620 3,98931 00110011110011000011001111001100 869020620 3,98933 00110011110011000011001111001100 869020620 3,98955 00110011110011000011001111001100 869020620 3,98964 00110011110011000011001111001100 869020620 3,98911 00110011110011000011001111001100 869020620 3,98941 00110011110011000011001111001100 869020620 3,98952 00110011110011000011001111001100 869020620 3,98933 00110011110011000011001111011100 869020636 3,97190 00110011110011000011001111001100 869020620 3,98981 00110011110011000011001111001100 869020620 3,98940 00110011110011000011001111001100 869020620 3,98930 00110011110011000011001111001100 869020620 3,98978 00110011110011000011001111001100 869020620 3,98922 00110011110011000011001111001100 869020620 3,98922 00110011110011000011001111001100 869020620 3,98957 01011010 90 3,98977 00110011110011000011001111001100 869020620 3,98949 01011010 90 3,98971 01011010 90 3,98988 01011010 90 3,98950 01011010 90 3,98945 01011010 90 3,98934 01011010 90 3,98935 01011010 90 3,98897 01011010 90 3,98942 01011010 90 3,98961 01011010 90 3,98962 01011010 90 3,98960 01011010 90 3,98970 01011010 90 3,98962 01011010 90 3,98933 01011010 90 3,98943 01011010 90 3,98955 01011010 90 3,98927 01011010 90 3,98925 01011010 90 3,98935 01011010 90 3,98948 --------------------------------------------------------------- Figure 5: Domaines dans une population finale d un processus de PC évolutif. 6
Un résultat typique d une exécution unique d un processus évolutif démarrant avec des règles aléatoires assignées aux cellules des ACs est la découverte par PC d un petit ensemble de bonnes règles qui divise l espace cellulaire des ACs en domaines - endroits où des règles identiques, courtes (r = 1) ou longues (r = 2), coexistent (cf, Fig. 5). Le processus évolutif continue en frontière de domaine où des règles différentes existent. Ce processus peut résulter dans l augmentation des règles des règles de domaines qui sont seulement sensiblement meilleures que leurs règles voisines, lesquels domaines vont diminuer et ensuite disparaître. Cela se passe en particulier quand deux domaines voisins sont occupés respectivement par les même règles courtes et les mêmes règles longues. L espace de recherche des règles courtes est beaucoup plus petit que celui des règles longues, et pour cette raison les règles longues sont graduellement remplacées par des règles courtes. Afin de limiter la convergence prématurée des règles courtes, les règles courtes et les règles longues sont initialement aléatoirement assignées aux cellules dans la proportion 1:3 dans toutes les expérimentations. Pour découvrir quelle est l influence de la forme de voisinage évolutifs sur la qualité des SNPAs générées par les ACs, chaque expérimentation avec une forme donnée de voisinage a été répétée 10 fois, et la valeur moyenne de l entropie sur chaque expérimentation fut considérée. Les expérimentations ont montré que tandis que pour chaque forme de voisinage certaines très bonnes règles avec une entropie égale ou proche de 3.989 étaient observées, la valeur moyenne de l entropie sur plusieurs ensembles d expérimentations allait de 3.946 à 3.956 pour les voisinages 111 et 1 1 1, et de 3.960 à 3.975 pour le reste des voisinages. Pour cette raison, seulement les voisinages 11111, 1111111, et 11 1 11 ont été considérés pour la suite des expérimentations. Le but des expérimentations suivantes sera de découvrir un ensemble élargi de règles (afin d agrandir l espace de clés du système cryptographique) qui travaillant ensemble produirait des SNPAs de très grande qualité. Il a été noté qu en une exécution unique du PC, typiquement, l algorithme évolutif produit un nombre restreint de règles avec une très haute valeur de l entropie. Dans les résultats du processus de recherche évolutif, a été découvert un ensemble de 8 règles courtes (comprenant 5 règles trouvées par [15]) et un ensemble de 39 règles longues. 6 Analyse et Comparaison des Résultats L entropie utilisée comme fonction objective pour les règles de l AC produisant des SNPAs de haute qualité est seulement un des tests statistiques possibles des SNPAs. Aucun de ces tests est assez fort pour déclarer le caractère statistique aléatoire des SNPAs par lui-même. Faire passer n tests statistiques pour un séquence de SNPAs augmente la certitude sur son caractère aléatoire, mais il n y a toujours pas de garantie que la SNPA ne vas pas rater le test suivant. Pour vérifier statistiquement la qualité des règles découvertes et leur adéquation à la cryptographie, des tests systématiques supplémentaires des règles ont été effectués. Pour cela des ACs uniformes formés de 50 cellules ont évolués durant 65536 étapes temporelles avec chaque règle découverte. Chaque SNPA produite par les ACs fut divisées en mots de 4 bits et testée par des tests statistiques généraux tels que l entropie,le test de chi-carré, les tests de corrélation des séries [6] (suite à ces tests, certaines règles plus faibles furent éliminées), et ensuite un nombre de tests statistiques requis par le standard FIPS 140-2 [11], tels que le test monobit, le test du poker, le test des exécutions et les tests d exécution longues. Fig. 6 montre les résultats des tests sur les règles en utilisant le standard FIPS 140-2. Les meilleurs scores furent atteint par les règles 30, 86, 101, 153 et par 8 règles longues. Les règles 90, 105, 150 and 65 [15] travaillant séparemment dans des ACs uniformes obtiennent des bons résultats dans les tests d entropie et dans les tests d exécution longs, de bons résultats dans les tests de corrélation des séries et le test monobit mais furent fragiles dans le test chi-carré, le test de poker et les tests d exécution. Cependant cet ensemble de règles travaillant collectivement dans des ACs non-uniformes obtiennent des bons résultats. Pour cette raison seulement 10 règles furent enlevées de l ensemble des règles découvertes qui ont passé le test standard FIPSn140-2. Ces règles étaient moins bonnes que celles découvertes par Tomassini & Perrenoud. Même le fait de passer tous les tests avec succès n exclut pas la possibilité que les SNPAs ne sont pas adaptées pour la cryptographie. Avant qu une SNPA soit acceptée, elle doit passer des tests spécialisés pour la cryptographie. 7
No Règle Test Monobit Test Poker Test d exécutions Règles découvertes par Tomassini & Perrenou: Tests d exécution longs 1 30 50 50 50 50 2 90 46 0 23 50 3 105 41 0 4 50 4 150 45 0 12 50 5 165 46 0 14 50 Règles de rayon r = 1 (No 6, 7, 8) et r = 2 6 86 50 50 50 50 7 101 50 50 50 50 8 153 50 50 50 50 11 728094296 50 5 17 50 12 869020563 50 50 49 50 13 892695978 50 2 9 50 14 898995801 50 0 4 50 15 988725525 50 11 16 50 17 1042531548 38 0 12 50 18 1047380370 50 50 47 50 19 1367311530 50 5 5 50 20 1378666419 42 3 16 50 21 1386720346 50 20 32 50 22 1403823445 50 19 32 50 23 1427564201 46 1 27 50 24 1436194405 50 50 50 50 25 1436965290 50 50 50 50 27 1457138022 50 0 0 50 28 1470671190 50 50 49 50 29 1521202561 40 0 3 50 30 1537843542 50 48 37 50 31 1588175194 50 21 27 50 32 1704302169 50 50 50 50 33 1705400746 50 50 50 50 35 1721277285 49 1 4 50 37 1721325161 50 50 50 50 38 1746646725 49 6 2 50 39 1755030679 50 49 34 50 43 1815843780 50 50 50 50 45 2036803240 50 0 0 50 46 2084275140 50 50 50 50 47 2592765285 50 50 49 50 Figure 6: Test des règles suivant le standard FIPS 140-2. Dès lors, les règles qui ont passé les tests précédent furent ensuite soumis aux tests de Marsaglia [7] - un ensemble de 23 tests du caractère aléatoire considérés très forts et implémentés dans le programme de Diehard. Seulement 11 règles ont passés avec succès les 23 tests de Marsaglia. il s agit des règles courtes 30, 86, 101, et des règles longues 869020563, 1047380370, 1436194405, 1436965290, L objectif de ces dernières expérimentations était de sélectionner un ensemble restreint de règles courtes et de règles longues pour des ACs non-uniformes qui travaillant collectivement fourniraient une génération de SNPAs de très grande qualité utilisable pour la cryptographie à clé secrète. Simplement combiner différentes règles qui toutes passent avec succès le test de Marsaglia en Acs non-uniformes a montré ques les SNPAs en résultant peuvent avoir un comportement statistique plus mauvais que les SNPAs obtenues avec des règles dans des ACs uniformes. D un autre côté, les expérimentations avec les règles de Tomassini & Perrenoud montrent que les règles travaillant mal séparemment peuvent donner des résultats de meilleure qualité en travail collectif. Pour ces raisons les règles 153 et quelques règles longues qui obtenaient de très bons résultats dans les tests généraux mais ne passaient pas avec succès les tests de Marsaglia furent aussi acceptés comme faisant partie de l ensemble de règles à chercher pour trouver l ensemble final de règles. Comme résultat des combinaison de règles en ensembles de règles et des test de leur comportement collectif dans des ACs non-uniformes, les ensembles de règles suivants ont été sélectionnées: 86, 90, 101, 105, 150, 153, 165 (r = 1), et 1436194405 (r = 2). Parmi ces règles, 4 règles furent découvertes dans [15]. L ensemble de règles trouvées a été ensuite épprouvé par des tests statistiques et cryptographiques en utilisant des ACs nonuniformes avec une assignation aléatoire des règles aux cellules d ACs. Fig. 7 montre des résultats de test de cet nouvel ensemble de règles et compare les résultats à ceux obtenus par les règles de Tomassini & Perrenoud. On peut voir que les résultats des tests généraux et FIPS 140-2 tests sont similaires. Cependant, la différence principale entre ces résultats peut être observée en vérifiant les tests de Marsaglia: tandis que le nouvel ensemble de règles découvertes passe avec succès les 23 tests de Marsaglia, l ensemble de règles de Tomassini & Perrenoud ne passe avec succès que 11 de ces règles. Fig. 8 montre un diagramme espace-temps des deux ensembles de règles travaillant de manière collective. La clé secrète K qui devrait être échangée entre 2 utilisateurs du système cryptographique basé sur des ACs consiste en une paire de vecteurs générés aléatoirement: le vecteur R i informant de l assignation de 8 règles à N cellules des ACs et le vecteur C(0) décrivant un état binaire initial de cellules d ACs. L espace total de clés a une taille 8 N 2 N. L espace de clé est dès lors beau- 8
coup plus grand que l espace de clé du système unidimensionnel d ACs de [15] (4 N 2 N ) et une espace sensiblement plus grand que le système basé sur des AC 2D de [16]. Pour cela, le système proposé ici est beaucoup plus résistant aux attaques cryptographiques. Test Règles de Tomassini & Perrenoud (90, 105, 150, 165) Règles découvertes (86, 90, 101, 105, 150, 153, 165, 1436194405) Entropie min. 3,9988 3,9987 Entropie max. 3,9998 3,9997 chi-carré min. 5,0254 6,998 chi-carré max. 26,396 30,805 Corrélation min. 0,00007-0,00006 Corrélation. max. 0,02553 0,01675 Test monobit 50 50 Test poker 50 50 Tests d exécution 50 50 Tests d exécution longs 50 50 Nombre de tests de Marsaglia réussis 11 23 7 Conclusions Figure 7: Comparaison des règles découvertes par Tomassini & Perrenoud [15] avec le nouvel ensemble de règles découvertes. Dans ce papier nous avons rapporté les résultats de l étude de l application d ACs pour la cryptographie à clé secrète. Le but de cette étude était de découvrir un ensemble règles d ACs qui produit des SNPAs de très haute qualité statistique pour les systèmes cryptographiques à base de ACs et qui est de plus est résistant aux tentatives de cassage des clés. L idée de base de notre approche était de considérer des ACs 1D opérant avec 2 types de règles. L approche évolutive, appelée CP, a été utilisée pour découvrir les règles adaptées. Après avoir découvert un ensemble de règles, elles furent sélectionnées en utilisant des tests statistiques et cryptographiques forts. Finalement, Un ensemble composé de 8 règles a été sélectionné. Le résultat des expérimentations a montré que les règles découvertes travaillant collectivement sont capables de produire des SNPAs de trè haute qualité et même de qualité supérieure aux systèmes cryptographiques connus basés sur des automates unidimensionnels, et elles sont aussi beaucoup plus résistantes aux tentatives de cassage des clés des systèmes connus. a) b) Figure 8: Diagrammes espace-temps des CAs avec comme tapes de temps N = 100 et M = 200 travaillant de manière collective pour (a) les règles de Tomassini & Perrenoud assignées aléatoirement [15], et (b) pour le nouvel ensemble de règles découvertes. 9
References [1] P. Guan, Cellular Automaton Public-Key Cryptosystem, Complex Systems 1, 1987, pp. 51-56 [2] H. Gutowitz, Cryptography with Dynamical Systems, in E. Goles and N. Boccara (Eds.) Cellular Automata and Cooperative Phenomena, Kluwer Academic Press, 1993 [3] T. Habutsu, Y. Nishio, I. Sasae, and S. Mori, A Secret Key Cryptosystem by Iterating a Chaotic Map, Proc. of Eurocrypt 91, 1991, pp. 127-140 [4] P. D. Hortensius, R. D. McLeod, and H. C. Card, Parallel random number generation for VLSI systems using cellular automata, IEEE Trans. on Computers 38, October 1989, pp. 1466-1473 [5] J. Kari, Cryptosystems based on reversible cellular automata, personal communication, 1992 [6] D. E. Knuth, The Art of Computer Programming, vol. 1 & 2, Seminumerical Algorithms, Addison- Wesley, 1981 [7] G. Marsaglia, Diehard http://stat.fsu.edu/ geo/diehard.html, 1998 [8] A. Menezes, P. van Oorschot, and S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996 [9] A. Mroczkowski, Application of Cellular Automata in Cryptography, Master Thesis (in Polish), Warsaw University of Technology, 2002 [10] S. Nandi, B. K. Kar, and P. P. Chaudhuri, Theory and Applications of Cellular Automata in Cryptography, IEEE Trans. on Computers, v. 43, December 1994, pp. 1346-1357 [11] National Institute of Standards and Technology, Federal Information Processing Standards Publication 140-2: Security Requirements for Cryptographic Modules, U.S. Government Printing Office, Washington 1999 [12] P. Sarkar, A Brief History of Cellular Automata, ACM Computing Surveys, vol. 32, No. 1, March 2000, pp. 80-107 [13] B. Schneier, Applied Cryptography, Wiley, New York, 1996 [14] M. Sipper and M. Tomassini, Generating parallel random number generators by cellular programming, Int. Journal of Modern Physics C, 7(2), 1996, pp. 181-190 [15] M. Tomassini and M. Perrenoud, Stream Ciphers with One- and Two-Dimensional Cellular Automata, in M. Schoenauer at al. (Eds.) Parallel Problem Solving from Nature - PPSN VI, LNCS 1917, Springer, 2000, pp. 722-731 [16] M. Tomassini and M. Sipper, On the Generation of High-Quality Random Numbers by Two- Dimensional Cellular Automata, IEEE Trans. on Computers, v. 49, No. 10, October 2000, pp. 1140-1151 [17] S. Wolfram, Cryptography with Cellular Automata, in Advances in Cryptology: Crypto 85 Proceedings, LNCS 218, Springer, 1986, pp. 429-432 10