Cryptage d`Images par Chiffrement de Vigenère Basé sur le Mixage
Transcription
Cryptage d`Images par Chiffrement de Vigenère Basé sur le Mixage
4th International Conference on Computer Integrated Manufacturing CIP’2007 03-04 November 2007 Cryptage d’Images par Chiffrement de Vigenère Basé sur le Mixage des Cartes Chaotiques Z. Amrani, S Chitroub et A. Boukhari Laboratoire de traitement du Signal et des Images Faculté d’Electronique et d’Informatique, U. S. T. H. B. BP. 32, El – Alia, Bab – Ezzouar, 16111, Alger, Algérie. [email protected], [email protected], [email protected] Résumé- Dans le domaine des télécommunications, où les échanges d’informations multimédias se développent rapidement, il est indispensable de pouvoir disposer de systèmes sécurisés pour protéger les données à caractère personnel ou confidentiel et assurer la sécurité des transferts de données. Il est donc nécessaire de développer un outil de protection efficace des données transférées et des communications contre les intrusions arbitraires. Le cryptage des données est très souvent le seul moyen efficace pour répondre à ces exigences. Dans ce contexte, un schéma de transfert et d’archivage sécurisé des images par le chiffrement de Vigenère avec un générateur des clés basé sur le mixage des cartes chaotiques est proposé dans cet article. Les aptitudes du schéma proposé pour la confusion, la sensibilité à l’image nette et la clef ont été testées. Les résultats obtenus montrent l’efficacité du schéma contre les attaques avancées. I. INTRODUCTION La prolifération des terminaux d’accès à l’information ainsi que l’usage croissant des télécommunications (mettant en oeuvre des transferts de données électroniques de caractères personnelles) imposent de disposer de techniques fiables, sécurisées et communément acceptées. En fait, l’utilisation d’un réseau de communication expose les échanges à certains risques, qui nécessitent l’existence de mesures de sécurité adéquates. Par exemple, les images à transmettre peuvent être enregistrées et copiées durant leur parcours sans pertes de qualité. Les images piratées peuvent être par la suite le sujet d’un échange de données et de stockage numérique illégal. Il est donc nécessaire de développer un outil de protection efficace des données transférées contre les intrusions arbitraires. Le cryptage des données est très souvent le seul moyen efficace pour répondre à ces exigences. D’après Shannon, les techniques de bases [1] pour un système de cryptage peuvent être classées en deux catégories principales : transformation des valeurs (confusion) et permutation des positions (diffusion). La combinaison entre les deux classes est aussi possible. Dans la littérature, plusieurs algorithmes ont été développés et analysés. Dans cet article, on s’intéresse à la sécurisation des données images, qui sont considérées comme des données particulières en raison de leurs tailles et de leurs informations qui sont de natures bidimensionnelles et redondantes. Ces particularités des données rendent les algorithmes développés dans la littérature inutilisables sous leurs formes classiques, à cause des contraintes de la vitesse et de la perte de l’information qui peuvent être causées par un cryptosystème classique. Ainsi, des travaux récents pour la sécurisation des données images ont été orientés vers la conception des nouveaux algorithmes qui assurent une sécurité fiable tout en minimisant le coût de temps de calcul et la perte d’information. Nous citons par exemple, les algorithmes qui sont basés sur les signaux chaotiques. Un signal chaotique ressemble à un bruit, mais qui est totalement reproductible du fait qu’il est généré par des modèles mathématiques déterministes. Ce signal est sensible aux conditions initiales, rendre ainsi difficile sa reproduction si le modèle de génération demeure inconnu. Cependant, ses inconvénients résident principalement dans la nécessité d’effectuer des calculs avec une grande précision et dans le risque d’avoir réussir d’obtenir la clef initiale, après plusieurs tentatives de lancement, et de ce fait, l’attaque du cryptosystème devient facile. II. CLASSIFICATION DES CRYPTO – SYSTEMES Les cryptosystèmes peuvent être classés conformément aux différentes caractéristiques. Ainsi, selon les types des clefs utilisées, on a la catégorie suivante des cryptosystèmes : systèmes symétriques, systèmes asymétriques et systèmes hybrides. Une autre catégorie des cryptosystèmes est basée sur les techniques de chiffrement : chiffrement par bloc ou chiffrement par flot. Notion de sécurité est une autre caractéristique qui peut être utilisée pour classes les cryptosystèmes. Ainsi, on a les systèmes à sécurité parfaite ou inconditionnelle, les systèmes à sécurité sémantique et les systèmes à sécurité calculatoire liée à la quantité de ressources informatiques. Cette classification a été inspire à partir de la référence [2]. L'algorithme proposé dans cet article est un algorithme de chiffrement par bloc à clef symétrique. III. RELATION ENTRE LE CHAOS ET LES CRYPTOSYSTEMS Tout d’abord, nous notons qu’il y a une forte ressemblance entre les systèmes chaotiques et les cryptosystèmes symétriques à chiffrement par bloc [3]. 4th International Conference on Computer Integrated Manufacturing CIP’2007 Pour commencer, un cryptosystème est dit bon s’il satisfera les trois caractéristiques suivantes : 1) transformation aléatoire des données nettes aux données chiffrées sans garder aucune information sur les données nettes, 2) soit fortement sensible aux données nettes de telle sorte qu’un plus petit changement dans les données nettes engendre des données chiffrées complètement différentes, 3) soit aussi fortement sensible à la clef de telle sorte qu’un plus petit changement dans la clef donne une naissance à des nouvelles données chiffrées complètement différentes. Une autre caractéristique importante des cryptosystèmes symétriques et qu’ils utilisent quelques fonctions de chiffrage en mode itératif qui est une condition pratique pour certains cryptosystèmes populaires. En ce qui concerne les caractéristiques particulières des systèmes chaotiques, notons qu’un système chaotique est constitué de quelques fonctions de base f qui sont itérées sur un ensemble X. Le fonctionnement d’un tel système consiste à remplir les conditions suivante : 1) soit un mélangeur, ceci signifie que l’ensemble X devrait être aléatoirement mélangé par la répétition de l’action de f, 2) soit sensible à l’état initial de telle sorte qu’une légère modification dans les états initiaux engendra des états complètement différents, 3) soit sensible aux certains paramètres de contrôle et un léger changement dans ces paramètres causera un changement dans les propriétés de la carte chaotique. En comparant entres les particularités d’un cryptosystème et les caractéristiques d’un système chaotique, il est évident que le chiffrage et le chaos montrent des similarités remarquables, si nous considérons que les données nettes correspond à un état initial, la clef correspond à l’ensemble des paramètres, et la fonction de chiffrage correspond à la fonction de base f. Cependant, il y a une différence importante entre ces deux concepts. En fait, le cryptosystème travaille sur des ensembles finis (discrets), alors que le système chaotique est conçu pour travailler sur des ensembles infinis (continus). C’est probablement la raison principale pour laquelle la relation entre le chaos et le chiffrage a été restée inaperçue. IV. LE CHIFFREMENT DE VIGENERE POUR LES IMAGES D’une manière générale, dans le chiffrement de Vigenère, la longueur de la clef peut éventuellement être aussi longue que le message [4], [5] qui définit le chiffrement de Vigenère pour une valeur b(n) par : k b' ( n) = b( n) + ∑ α (i )b' ( n − i ) i =1 pour n ∈]k , N ] (1) avec b’(n) est le résultat de chiffrement de b(n), b’(n-i) est le résultat de chiffrement de b(n-i), α(i) est une séquence aléatoire, k est l’ordre de récurrence et N est la longueur du message. Pour les premiers valeurs (les indices n ∈ [1, k ] ), les valeurs précédentes sont fixées d’une manière aléatoire. Ces valeurs initiales sont appelées valeurs virtuelles. 03-04 November 2007 V. GENERATEUR CHAOTIQUE Pour ce schéma, deux cartes chaotiques sont utilisées [8], la carte logistique [6] (expression (2)) et la carte de Chebyshev [7] (expression (3)) : xn+1 = µ xn (1 - xn) xn+1 = cos (4 acos ( xn) ) avec xn ∈ [0,1] (2) avec xn ∈ [-1,1] (3) La figure 1, présente l’attracteur de l’équation logistique, qui justifie le choix du paramètre μ = 3.9999 [9]. Avant la génération des séquences aléatoires, la clef doit subir à des transformations chaotiques pour que sa taille devienne un multiple de 32 bits. A la fin de ces transformations, la clef est découpée et normalisée en blocs de 32 bits, qui présentent les valeurs initiales du générateur chaotique. La sortie de ce dernier sera quantifiée sur 8 bits (de 0 à 255) qui présentent les séquences aléatoires et les valeurs virtuelles. VI. DESCRIPTION DE L’ALGORITHME PROPOSE On peut mettre l’image sous forme d’un vecteur et on applique le chiffrement de Vigenère directement comme il a été défini dans [4] et [5]. Dans notre cas, nous avons découpé l’image en blocs. Chaque bloc est une ligne ou une colonne de la matrice image. Ce choix a été effectué afin que l’application de chiffrement de Vigenère ne perde pas sa robustesse vis – à vis la taille de la matrice image. Pour chaque bloc de taille N, nous générons une séquence aléatoire α, de dimension N + k – 1, et k valeurs virtuelles. En utilisant l’équation (1), les étapes pratiques de l’algorithme de chiffrement peuvent être exprimées comme suit : (1) Introduire la clef, l’ordre de récurrence k et le nombre d’itérations. (2) Découper la clef en blocs de 32 bits et les normaliser par rapport à 1 pour l’élaboration de k’. (3) Générer α et les valeurs virtuelles pour un bloc en utilisant le générateur chaotique initialisé par les valeurs de k’. (4) Chiffrer le bloc courant en utilisant l’équation (1). (5) Extraire une nouvelle clef k’ à partir du signal chaotique actuel. (6) Répéter les étapes (3), (4) et (5) jusqu’à la dernière ligne de l’image. Ainsi l’image obtenue doit subir aux mêmes opérations, étapes (3), (4), (5) et (6), mais cette fois-ci les blocs sont les colonnes. La même procédure (chiffrement en lignes et ainsi en colonnes) se répète jusqu'à ce que le nombre d’itérations fixé soit atteint. Cette procédure de chiffrement est répétée à partir de l’étape 3 sur l’image résultante de l’itération précédente. 03-04 November 2007 4th International Conference on Computer Integrated Manufacturing CIP’2007 TABLE I VARIATION DU TEMPS DE CALCUL MOYEN DE CHIFFREMENT ET DECHIFFREMENT EN FONCTION DU NOMBRE D’ITERATIONS ET L’ORDRE DE RECURRENCE Nombre d’itérations \ k 1 5 10 1 5 10 0.21 0.77 1.57 0.24 0.94 1.96 0.29 1.14 2.27 TABLE II NIVEAUX DE CONFUSION Fig. 1. Attracteur de l’équation logistique. NPCR MAE MSE Image Claire 0.03051 0.00573 0.00142 Image Chiffrer 99.58801 33.51814 16.85499 VII. ANALYSE DE LA SECURITE La mesure cruciale de la qualité d’un cryptosystème est ses possibilités de résister aux tentatives d’attaque. Cette mesure s’appelle la sécurité [10]. Dans cet article, l’évaluation de la sécurité du cryptosystème conçu es basée sur les critères suivants : la vitesse de l’algorithme, l’attaque différentielle, l’analyse statistique et l’analyse de l’espace des clefs. Les testes en été effectues sur un PC Intel PIV, 2.6 GHz et 256 DDR et avec une clef de 128 bits. (a) (b) Fig. 2. Image originale (a) et image chiffrée (b). A. Vitesse de l’algorithme On résume les différents lancements avec des nombres d’itérations et des ordres de récurrence k différents dans le tableau 1. D’après le tableau, la vitesse de cet algorithme n’est pas très influencée par k inversement à l’algorithme Vigenère conventionnelle [4], [5]. Par contre, le temps de calcul est linaire avec le nombre d’itérations. B. Attaque statistique Ce type d’attaque considère le cryptosystème comme une boite noire, il analyse statistiquement les entres et les sortis de ce système. Le facteur NPCR (Number of Pixels Change Rate) donné dans l’expression (4), l’erreur absolue moyenne (MAE : Mean Absolute Error) donnée dans l’expression (6) et l’erreur quadratique moyenne (MSE :Mean Square Error) donnée dans l’expression (7) sont des mesures que nous avons utilisé dans cet article pour quantifier la différence entre deux images de même dimensions avec des manières différentes. En outre, ces mesures nous permettent d’évaluer la différences entre l’image originale et l’image chiffrer d’une part, et la distorsion dans l’image déchiffrée d’autre part. Le tableau 2 résume les valeurs des différentes mesures obtenues après les testes qui ont été effectues sur une image originale (Fig. 2.a, image de taille 256*256 en niveau de gris) et sa version chiffrée (Fig. 2. b). Une autre image chiffrée est obtenue en faisant changer 20 octets dans l’image originale est en chiffrant l’image résultante pat la même clef. L’image différence entre les deux versions chiffrées est présentée par la figure 3. Fig. 3. Image différence entre les images chiffrées. NPCR = 1 M N ∑ ∑ D(i, j ) MN i =1 j =1 ⎧0 Si Imo(i,j)=Imc(i,j) D(i, j ) = ⎨ ⎩1 Si Imo(i,j)≠Imc(i,j) MAE = MSE = 1 M N ImO (i, j ) − ImC (i, j ) ∑∑ MN i =1 j =1 255 1 MN M N ∑∑ i =1 j =1 (ImO (i, j ) − ImC (i, j )) 2 2552 (4) (5) (6) (7) L’analyse statistique est basée sur l’utilisation de la notion de l’entropie, H(ng) donnée dans l’expression (8), et sur le calcul du coefficient de corrélation entre les pixels adjacents rxy donné dans l’expression (9). Ces deux mesures statistiques nous donnent une idée sur la capacité du cryptosystème de 03-04 November 2007 4th International Conference on Computer Integrated Manufacturing CIP’2007 résister aux attaques qui réduisent l’espace d’une recherche exhaustive. H(ng) est l’entropie de la source ng qui est les niveaux de gris de l’image : 255 H ( ng ) = − ∑ P(ng ) log i 2 (P ( ng i )) (8) i =0 TABLE III COEFFICIENTS DE CORRÉLATION DES PIXELS ADJACENTS DANS DEUX IMAGES Corrélation Horizontal Vertical Diagonal principal Diagonal anti-principal Image claire 0.98506 0.97171 0.98123 0.98782 Image chiffrer 0.00993 -0.07076 0.03618 0.03532 P(ngi) est la probabilité d’apparition du niveau de gris ngi dans l’image. rxy caractérise l’homogénéité des pixels adjacents : ( rxy = cov( x, y ) cov( x, y ) = avec E ( x) = 1 N 1 N var( x) var( y ) i (9) N ∑ (x i − E ( x))( y i − E ( y )) (10) i =1 N ∑x ) et i =1 var( x) = 1 N N ∑ (x i − E ( x)) 2 (a) (b) i =1 cov(x,y) est la covariance, E(x) est l’espérance mathématique et var(x) est la variance. Les résultats de la corrélation sont résumés dans le tableau 3. L’entropie a donné 7.67053 pour l’image originale et 7.99733 pour l’image chiffrée. D’après ces résultats de corrélation de l’entropie, l’algorithme proposé présente des bonnes aptitudes pour la confusion et la diffusion, et peut résister aux attaques statistiques. C. Analyse de l’espace des clés D’après [4] et [5], la taille de la clef peut être plus long que la taille du message. Dans notre cas, le message correspond à un bloc et donc l’ordre de sa taille en octet peut varier de un à la taille du bloc le plus petit, de plus qu’elle soit un multiple de 32 bits. Ceci est valable si on veut que tous les bits aient le même poids d’importance pour la génération des séquences chaotiques. Pour les testes de la sensibilité aux clefs, on chiffre l’image avec une clef de 128 bits et on le déchiffrer avec trois clefs différentes du première d’un seul bit. Les résultas obtenus prouvent la sensibilité de cet algorithme à la clef. Les trois images déchiffrées avec les trois clefs différentes sont représentées dans la figure 4. VII. CONCLUSION Un schéma qui améliore celui proposé dans [4] et [5] selon plusieurs critères est proposé ici. Le taux de transfert est réduit à un taux optimal. La clef se change pour chaque bloc par un générateur chaotique. Chaque octet est chiffré deux fois (le passage en ligne et en colonne). L’application du chiffrement de Vigenère par bloc pour les images a prouvé sa robustesse face à la dimension des images. Les résultas obtenus montrent que le schéma proposé présente des aptitudes dans la confusion et dans la sensibilité à l’image originale qui le rende loin des attaques différentielles. (c) Fig. 4. Images déchiffrées avec des clefs différentes de la clef de chiffrement. REFERENCES [1] Ming Yang, Nikolaos Bourbakis, and Shujun Li, "Data-image-video encryption," IEEE potentials, pp. 28-34, August/September 2004. [2] José Marconi M. Rodrigues, Transfert sécurisé d’images par combinaison de techniques de compression, cryptage et marquage. Thèse de doctorat, Université Montpellier II, 2006. [3] Jiri Fridrich, “Image encryption based on chaotic maps”, IEEE Conf. on System, Man, and Cybernetics, pp.1105–1110, 1997. [4] William Puech, Jean-Jacques Charre, et Michel Dumas, "Transfert sécurisé d’images par chiffrement de Vigenère", centre d’électronique et de microoptoélectronique de Montpellier, UMR CNRS 5507, STINIM, université de Montpellier II, France. Article sur Internet. [5] William Puech, et José Marconi Rodrigues, "Sécurisation d’image par crypto-tatouage," Laboratoire LIRMM, UMR CNRS 5506, Université Montpellier II, France. Article sur Internet [6] Jiancheng Zou, ChangZhen Xiong, Dongxu Qi, and Rabab K.Ward, "The application of chaotic maps in image encryption," IEEE International Symposium on Circuits and Systems, 2005. [7] Jun Peng, Xiaofeng Liao, and Zhongfu Wu, "Digital image secure communication using Chebyshev map chaotic sequences," IEEE secure communication, pp. 492-496, 2002. [8] Pen Fei, Shui-sheng Qiu, and Long Min, "An image encryption algorithm based on mixed chaotic dynamic systems and external key," IEEE, pp. 1135-1139, 2005. [9] Aditya Dixit, Gaurav Kumar, Nitin Gupta, and Puneet Maheshwari, “nChaos Cryptography”. [10] S. Behnia, A. Akhshani, H. Mohmodi, and A. Akhavan, ”A novel algorithm for image encryption based on mixture of chaotic maps,” ELSEVIER Chaos, Solitons and Fractals, in press. [11] C.E. Shannon, “A mathematical theory of communication”, Bell System Technical Journal, vol. 27, pp 623-656, 1948.