1/28 EJCIM, Perpignan 8-12 Avril 2013 Génération de nombres pseudo-aléatoires basée sur des fonctions chaotiques Vendredi 12 Avril 2013 Michael FRANÇOIS École Jeunes Chercheurs en Informatique-Mathématiques
2/28 Sommaire Sommaire 1 Introduction 2 Générateurs de nombres pseudo-aléatoires basés sur des fonctions chaotiques Fonction chaotique standard Nouvelle fonction chaotique 3 Application au chiffrement d images Fonction chaotique standard
3/28 Introduction Introduction Qu est-ce qu une suite de nombres (pseudo)-aléatoires? Comment obtenir une telle suite? Utilités des suites de nombres (pseudo)-aléatoires : simulation, transmissions, jeux de hasard, cryptographie, etc.
4/28 Sommaire 1 Introduction 2 Générateurs de nombres pseudo-aléatoires basés sur des fonctions chaotiques Fonction chaotique standard Nouvelle fonction chaotique 3 Application au chiffrement d images Fonction chaotique standard
Générateur basé sur une fonction chaotique standard 3-Mixer La fonction chaotique utilisée La fonction chaotique est de la forme : F (X ) = r X (1 X ). Elle peut être mise sous la forme d une suite logistique dont la récurrence est donnée par : X n+1 = r X n (1 X n ), avec n 0. Figure: Diagramme de bifurcations de la suite logistique 5/28
6/28 Générateur basé sur une fonction chaotique standard 3-Mixer La fonction chaotique utilisée Le générateur utilise la fonction chaotique (sous forme itérative) suivante : X n+1 = 3.9999X n (1 X n ), avec n 0 et X n ]0, 1[. Cette fonction est utilisée pour calculer des positions dans un vecteur initial. Celles-ci sont permutées durant le processus itératif. Le principe algorithmique est composé de quatre étapes.
Générateur basé sur une fonction chaotique standard Principe algorithmique du générateur Construction 1ère étape : choix d un vecteur initial I de la séquence pseudo-aléatoire in de taille N (M = N log 2 N) 2ème étape : choix d une graine X 0 ]0, 1[ pour la fonction chaotique La graine X 0 admet c chiffres décimaux où c = Floor[log 10 M] + 3 3ème étape : Boucle sur le vecteur binaire Iin bi et permutations Q 1 = Iin bi [i], (1) Q 2 = Iin bi [j] = Iin bi [i + 1 + [Floor[βX i+1 ] mod S]], (2) Q 3 = Q 1 Q 2, (3) Iin bi [i] = Q 3 puis Iin bi [j] = Q 1, (4) avec β = 10 c et la valeur de S est initialisée à M 1 et décrémentée après chaque itération. 4ème étape : rassemblement des bits par paquet de log 2 N Les bits du vecteur Iin bi sont rassemblés par paquet de log 2 N pour produire un nouveau vecteur I 1 de taille N. Ces quatre étapes constituent le schéma pour un tour (T = 1) sur le vecteur initial d entrée I in avec la graine X 0. 7/28
8/28 Générateur basé sur une fonction chaotique standard Principe algorithmique du générateur Construction de la séquence pseudo-aléatoire Pour construire la séquence pseudo-aléatoire, trois cartes chaotiques sont construites en appliquant itérativement l algorithme sur I in. où l = T /3 avec T mod 3 = 0. I in l tours I l l tours I 2l l tours I 3l Les trois vecteurs chaotiques I l, I 2l et I 3l sont mélangés avec l opérateur xor pour produire le vecteur I out de taille N. I out = I l I 2l I 3l.
9/28 Générateur basé sur une fonction chaotique standard Principe algorithmique du générateur Calcul du nombre de tours Entropie de l espace des clés : [ [10 c 1] T > 2 128 = T 1 = Floor 128 log 2 (10 c 1) ] + 1. Entropie de Shannon de I in : Supposons que dans I in la probabilité d apparition du bit 0 (resp. 1 ) est de p 0 (0) (resp. p 0 (1) = (1 p 0 (0))). À chaque nouveau tour t, la probabilité pt (0) est modifiée itérativement par : p t (0) = [p 2 t 1(0) + (1 p t 1 (0)) 2 ] t 1. La limite de la suite p t (0) doit converger vers la valeur 0.50, alors on obtient : lim t >T 2 p t (0) = 0.50 ɛ 1, avec ɛ 1 une tolérance permise (e.g. ɛ 1 = 0.001).
10/28 Générateur basé sur une fonction chaotique standard Principe algorithmique du générateur Sensibilité au vecteur d entrée I in : Soient I in et I in deux vecteurs qui ne diffèrent que d un bit. La probabilité s 0 des éléments identiques entre ces deux vecteurs est s 0 = (M 1)/M. Cette probabilité évolue selon : s r = [ ( ) s (0) 2 ( ) ] r 1 + 1 s (0) 2 r 1 r 1, Au tour T 3, la probabilité des éléments identiques s r doit satisfaire la relation : lim s r = 0.50 ɛ 2, r >T 3 avec ɛ 2 = ɛ 1. Le nombre de tours de l algorithme est donné par : T = max{t 1, T 2, T 3 } + δ, avec δ = [3 max{t 1, T 2, T 3 } mod 3] assurant que T soit un nombre multiple de 3.
11/28 Générateur basé sur une fonction chaotique standard Résultats et analyses statistiques Analyse d un ensemble de séquences produites On considère deux vecteurs initiaux de tailles N = 2048, donnés par Iin 1 = [0, 1,..., 2047] et I 2 in = [2011, 0,..., 0]. Le nombre de tours est de T = 18 et la précision c = 7. Les 17 premières valeurs de graines {X0 1,..., X 0 17 } sont choisies arbitrairement dans l intervalle ]0, 1[ et les valeurs de graines prises dans le dernier tour sont consécutives X0 18 {0.4603520,..., 0.4643519}. Dans chaque cas, on produit 40000 séquences de tailles 22528, lesquelles sont analysées statistiquement.
Générateur basé sur une fonction chaotique standard Test Résultats et analyses statistiques (Résultats des tests NIST pour Iin 1 APP-SI APP-SC APP-SR Séquences individuelles Séquence concaténée Séquences résultantes η en % Résultat p value Résultat η en % Résultat Frequency 99.06 Succès 0.7282 Succès 98.63 Succès Block-Freq 99.05 Succès 0.2854 Succès 98.68 Succès C. Sums (1) 99.02 Succès 0.6969 Succès 98.73 Succès C. Sums (2) 99.05 Succès 0.8876 Succès 98.82 Succès Runs 98.95 Succès 0.6066 Succès 98.97 Succès Longest Run 99.02 Succès 0.0108 Succès 98.82 Succès Rank 98.87 Succès 0.7395 Succès 98.82 Succès FFT 98.85 Succès 0.8487 Succès 98.87 Succès Non-Overlap 98.85 Succès 0.0241 Succès 98.43 Succès Overlap 98.89 Succès 0.3011 Succès 98.87 Succès Universal - - 0.5855 Succès 98.38 Succès Appro. Ent 98.91 Succès 0.9938 Succès 98.38 Succès Rand. Ex 96.29 Succès 0.2473 Succès 98.66 Succès Rand. E-Va 96.29 Succès 0.1956 Succès 98.90 Succès Serial (1) 98.96 Succès 0.9588 Succès 98.87 Succès Serial (2) 99.00 Succès 0.4846 Succès 98.38 Succès Linear Comp 98.95 Succès 0.8738 Succès 98.92 Succès 12/28
Générateur basé sur une fonction chaotique standard Test Résultats et analyses statistiques (Résultats des tests NIST pour Iin 2 APP-SI APP-SC APP-SR Séquences individuelles Séquence concaténée Séquences résultantes η en % Résultat p value Résultat η en % Résultat Frequency 99.00 Succès 0.4877 Succès 98.38 Succès Block-Freq 99.06 Succès 0.2689 Succès 98.58 Succès C. Sums (1) 98.98 Succès 0.8114 Succès 98.73 Succès C. Sums (2) 98.98 Succès 0.4487 Succès 98.38 Succès Runs 98.94 Succès 0.6222 Succès 99.26 Succès Longest Run 99.05 Succès 0.2035 Succès 99.07 Succès Rank 98.95 Succès 0.7277 Succès 98.82 Succès FFT 98.87 Succès 0.3328 Succès 98.97 Succès Non-Overlap 98.87 Succès 0.0181 Succès 98.38 Succès Overlap 98.93 Succès 0.4219 Succès 98.53 Succès Universal - - 0.6268 Succès 98.53 Succès Appro. Ent 98.86 Succès 0.7852 Succès 99.02 Succès Rand. Ex 90.90 Succès 0.0268 Succès 98.48 Succès Rand. E-Va 95.45 Succès 0.2692 Succès 98.80 Succès Serial (1) 98.93 Succès 0.5358 Succès 98.73 Succès Serial (2) 98.97 Succès 0.2559 Succès 98.77 Succès Linear Comp 98.63 Succès 0.2396 Succès 98.48 Succès 13/28
14/28 Générateur basé sur une fonction chaotique standard Résultats et analyses statistiques (Résultats des tests de corrélation) Histogramme de la distribution des coefficients de corrélation sur l intervalle [ 0.008, 0.008] Fréquence (en %) 14 12 10 8 6 4 2 1 I in 2 I in 0 0.08 0.06 0.04 0.02 0 0.02 0.04 0.06 0.08 Valeurs des coefficients de corrélation
15/28 Générateur basé sur une fonction chaotique standard Résultats et analyses statistiques (Sensibilité aux vecteur initial et graines) Sensibilité par rapport au vecteur initial On considère 2 groupes de trois vecteurs initiaux proches donnés par : J 1,a in = [0, 1, 2,..., 8388607] K 1,a J 1,b in = [1, 1, 2,..., 8388607] K 1,b J 1,c in = [0, 0, 2,..., 8388607] K 1,c in = [2011, 0,..., 0] in = [2010, 0,..., 0] in = [2012, 0,..., 0] Dans chaque cas, on produit 3 séquences pseudo-aléatoires en utilisant un ensemble de 30 graines {X0 1,..., X 0 30 } choisies arbitrairement dans ]0, 1[. Séquences 1/2 Jout/J 1,a out 1,b Jout/J 1,a out 1,c Jout/J 1,b out 1,c Coef. de corrélation 0.000021 0.000013 0.000013 Séquences 1/2 K 1,a out Coef. de corrélation 0.000174 0.000181 0.000174 out/kout 1,b Kout/K 1,a out 1,c Kout/K 1,b 1,c
16/28 Générateur basé sur une fonction chaotique standard Résultats et analyses statistiques (Sensibilité aux vecteur initial et graines) Sensibilité par rapport aux graines On fixe le vecteur initial à J in = [0, 1,..., 8388607] (resp. K in = [2011, 0,..., 0]). Dans chaque cas, on produit trois séquences pseudo-aléatoires en utilisant 3 ensembles de graines proches : X 1,a in = {X 1 0,..., X 29 0, X 30,a 0 } avec X 30,a X 1,b in = {X 1 0,..., X 29 0, X 30,b 0 } avec X 30,b X 1,c in = {X 1 0,..., X 29 0, X 30,c 0 } avec X 30,c 0 = 0.37201638375 0 = 0.37201638374 0 = 0.37201638376 Séquences 1/2 Jout/J 1,a out 1,b Jout/J 1,a out 1,c Jout/J 1,b out 1,c Coef. de corrélation 0.000389 0.000047 0.000505 Séquences 1/2 Kout/K 1,a out 1,b Kout/K 1,a out 1,c Kout/K 1,b out 1,c Coef. de corrélation 0.000543 0.000330 0.000772
17/28 Générateur basé sur une nouvelle fonction chaotique MGBR-11 La fonction chaotique utilisée Pour éviter le problème des nombres réels, une nouvelle fonction chaotique entière basée sur des congruences linéaires est utilisée. La fonction (sous forme itérative) est donnée par : X n+1 = [[ X 2 n mod C ] X n + X g ] mod C, où X 0 = g, X g = g 2, dont la valeur de la graine g {1,..., M} avec M la taille binaire du vecteur initial d entrée. La valeur C est initialisée à M 1 et décrémentée de 1 après chaque itération. Le processus algorithmique ainsi que la détermination du nombre de tours T sont les mêmes que pour 3-Mixer. (Ce PRNG ne sera pas détaillé)
18/28 Générateur basé sur une nouvelle fonction chaotique Comparaison entre les deux générateurs basés chaos Comparaison entre les deux générateurs basés chaos Temps d exécution : Taille seq. N = 512 N = 1024 N = 2048 N = 65536 N = 524288 (en bits) M = 4608 M = 10240 M = 22528 M = 1048576 M = 4718592 3-Mixer 0.01 s 0.03 s 0.08 s 5.47 s 72 s MGBR-11 0.00 s 0.01 s 0.03 s 2.51 s 45.89 s Espace mémoire : Le générateur 3-Mixer demande de sauvegarder un vecteur supplémentaire pour la production de la séquence pseudo-aléatoire. Qualités des séquences : Les deux générateurs produisent des séquences pseudo-aléatoires avec de bonnes propriétés statistiques. Portabilité du programme : 3-Mixer est processeur dépendant (utilisation des nombres réels) tandis que MGBR-11 n a pas de problème de portabilité.
19/28 Sommaire 1 Introduction 2 Générateurs de nombres (pseudo)-aléatoires basés sur des systèmes physiques Plasmonique Mesures interférométriques 3 Générateurs de nombres pseudo-aléatoires basés sur des fonctions chaotiques Fonction chaotique standard Nouvelle fonction chaotique 4 Application au chiffrement d images Fonction chaotique standard
Figure: Les principales étapes de l algorithme de chiffrement. 20/28 Application au chiffrement d images Description de l algorithme L algorithme utilise la fonction f (x) = 3.9999X (1 X ) et le même principe de permutation-substitution que le générateur 3-Mixer. Transformation en vecteur 1D b I 0 Image originale I 0 Tour 1 Substitution Permutation Tour 2 Substitution Permutation b I 1 b I 2 Tour r I r b Tour R Transformation Substitution Permutation en image I R b Image chiffrée I R
Application au chiffrement d images Analyse de la propagation de variation des pixels Propagation des pixels en fonction du nombre de tours (a) T = 0 tours (b) T = 1 tour (c) T = 2 tours (d) T = 5 tours (e) T = 7 tours (f) T = 9 tours (g) T = 11 tours (h) T = 23 tours 21/28
22/28 Application au chiffrement d images Résultats et analyses statistiques Sachant que le principe est le même, un format d image est utilisé pour les tests : une image couleur RGB. (i) Image couleur RGB 173 249 (j) Image chiffrée correspondante
23/28 Application au chiffrement d images Résultats et analyses statistiques Analyse de sensibilité à la clé Le nombre de tours est T = 23 et la précision est d = 9. Les valeurs des graines sont données par le tableau suivant : Graines Valeurs (d = 9) X 1,...,3 0 0.372517362 0.073559321 0.875371003 X 4,...,6 0 0.034203719 0.984941322 0.403519327 X 7,...,9 0 0.487302137 0.392510603 0.302543081 X 10,...,12 0 0.812174032 0.665371032 0.004723821 X 13,...,15 0 0.950317340 0.910451945 0.740255912 X 16,...,18 0 0.482664019 0.103619439 0.308598253 X 19,...,21 0 0.018036430 0.804104810 0.282906931 X 22,23 0 0.296051483 0.571410332 - Sur la dernière graine, une boucle est effectuée de 0.571410332 à 0.571411131 par incrémentation de 10 9 pour obtenir 800 clés (et donc 800 chiffrés).
Application au chiffrement d images Résultats et analyses statistiques (Résultats des tests NIST) Image du désert Test τ en % Résultat Test τ en % Résultat Frequency 98.50 Succès Non-Overlap 99.00 Succès Block-Freq 99.12 Succès Overlap 98.87 Succès C. Sums (1) 98.50 Succès Universal 98.62 Succès C. Sums (2) 98.62 Succès Appro. Ent 98.12 Succès Runs 98.62 Succès Rand. Ex 98.45 Succès Longest Run 99.62 Succès Rand. E-Va 98.45 Succès Rank 99.12 Succès Serial (1/2) 99.37/99.00 Succès FFT 99.12 Succès Linear Comp 99.00 Succès 14 12 Fréquence (en %) 10 8 6 4 2 0 0.01 0.0075 0.005 0.0025 0 0.0025 0.005 0.0075 0.01 Coefficient de corrélation Histogrammes des coefficients de corrélation entre les 800 images chiffrées de l image du désert. 24/28
25/28 Application au chiffrement d images Résultats et analyses statistiques Analyse de sensibilité à l image d origine Une petite variation est apportée sur l image initiale afin de générer plusieurs images proches. Pour l image RGB, le pixel (0, 0) situé en haut à gauche est codé par les valeurs [94, 148, 179] (bleu, vert, rouge). La valeur de la composante bleue (94) est incrémentée de 1 (i.e. 94 à 233) pour former 140 images consécutives. Les images de départ sont chiffrées avec une même clé donnant ainsi 140 images chiffrées.
Application au chiffrement d images Résultats et analyses statistiques (Résultats des tests NIST) Image du désert Test τ en % Résultat Test τ en % Résultat Frequency 100.00 Succès Non-Overlap 97.85 Succès Block-Freq 99.28 Succès Overlap 99.28 Succès C. Sums (1) 100.00 Succès Universal 97.85 Succès C. Sums (2) 100.00 Succès Appro. Ent 97.14 Succès Runs 97.85 Succès Rand. Ex 97.67 Succès Longest Run 100.00 Succès Rand. E-Va 97.67 Succès Rank 98.57 Succès Serial (1/2) 98.57/98.57 Succès FFT 99.28 Succès Linear Comp 100.00 Succès Fréquence (en %) 20 18 16 14 12 10 8 6 4 2 0 0.01 0.008 0.006 0.004 0.002 0 0.002 0.004 0.006 0.008 0.01 Coefficient de corrélation Histogrammes des coefficients de corrélation entre les 140 images chiffrées de l image du désert. 26/28
27/28 Application au chiffrement d images Résultats et analyses statistiques (Temps de chiffrement et entropie) Comparaison avec d autres algorithmes Taille de l image Algorithme proposé Algorithme référencé [1, 2] (8 bits/pixel) Temps (s) Entropie Temps (s) Entropie 256 256 2.25 654 6.01 [1] 84 1.01 [2] 113 512 512 11.10 713 36.53 [1] 84 4.73 [2] 113 1024 1024 58.89 773 253.87 [1] 84 19.78 [2] 113 [1] T. Gao and Z. Chen, Image encryption based on a new total shuffling algorithm, Chaos, Solitons Fractals 38 (1) (2008) 213 220. [2] X. Wang and J. Zhang, An image scrambling encryption using chaos-controlled Poker shuffle operation, in : Proceedings of International Symposium on Biometrics and Security Technologies, 23-24 April 2008, pp. 1 6.
28/28 Questions MERCI DE VOTRE ATTENTION