Cryptographie Visuelle
Auteurs : Gabriel Gomila, Anthony Vincent et Nicolas Baudon
Introduction
La cryptographie visuelle est une technique qui permet de crypter des informations visuelles (images, textes etc..) afin que leurs décryptages se fassent par lecture visuelle.
Cette méthode a été développé en 1994 d'un travail de Moni Naor et Adi Shamir (RSA), même si des méthodes similaires ont été utilisées dans les années 1960.
Un simple exemple de son fonctionnement est l'utilisation de transparents, où l'un représente le masque (clé de déchiffrement) et l'autre l'image cryptée. Chacun de ses transparents ne révèle aucune information sur le secret (image claire), mais une fois superposés ce dernier apparaît à l'oeil.
La cryptographie visuelle peut être utilisée pour protéger des modèles biométriques où le décryptage ne nécessite pas de calculs complexes.
Principe
Partons d'une image M (le masque) dont les pixels (noirs ou blancs) sont tirés aléatoirement et d'une image S (le secret) de meme taille et composée également de pixels noirs ou blancs représentant l'image qu'on souhaite cacher. Le secret peut etre un dessin, une photo ou un texte. Il faut ensuite opérer le "ou exclusif" (noté XOR en informatique) entre les pixels de M et de S. Le résultat sera une image chiffrée, que l'on appellera C.
C = M XOR S
Si le pixel de M et celui de S sont de meme couleur, il sera blanc sur C. Si le pixel de M et de celui de S sont différents, il sera noir sur C.
Maintenant en possession des images M et C, imaginons qu'on les imprime sur des transparents, on constatera que leur superposition fait apparaitre S.
En effet, la superposition de transparents correspond à faire l'opération "OU" pour notre oeil. L'image apparaitra donc sur un fond gris car environ 50% des pixels blancs deviendront noirs lors de la création de C. Cependant, l'oeil humain distinguera tout de meme l'image.
Afin de reconstituer l'image originale sans bruit, il est nécessaire d'opérer le "ou exclusif" (XOR) entre M et C en utilisant un logiciel.
Opérer un XOR entre M et C redonne bien S car:
M XOR C = M XOR (M XOR S) = (M XOR M) XOR S = O XOR S = S
Cette méthode étant basée sur le principe du "masque jetable", il est important de ne jamais utiliser deux fois le meme masque !
En effet, considérons 2 secrets de meme taille S et S' et un masque unique M :
C = M XOR S et C' = M XOR S'
Si un espion s'empare de C et C' et opère un XOR entre leurs pixels, il distinguera alors S et S' car :
C XOR C' = (M XOR S) XOR (M XOR S') = S XOR 0 XOR S'= S XOR S'.
L'espion obtiendra donc une image représentant la superposition de S et S'. L'utilisation de masque aléatoire à usage unique est donc une condition nécessaire à l'inviolabilité de cette méthode !
== suite ==