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.