Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 31-08-2009 11:02:46

ju_bicycle
Membre
Inscription : 31-08-2009
Messages : 79

Salutation et Steganographie

Bonjour a tous!
Ouhhh je sens que je vais me regaler sur ce forum. Je m'interesse depuis quelques temps à la cryptanalyse, et comme j'ai du me mettre à la programmation dans le cadre de mon boulot (en python pour etre précis), j'ai commencer a écrire des petits scripts dans ce domaine.
donc forcément en attérissant ici aujourd'ui j'ai pu voir que j'allais me faire des amis!! (hein yoshi ^^)
Bref j'ai beaucoup de questions (évidemment) mais je vais commencer par la premiere qui me turlupine depuis quelques temps.

J'ai écrit un programme de stéganographie qui cache du message dans une image (format bmp) de la maniere suivante:
(NB: Evidemment je n'ai rien inventé cette méthode est fort répendu, ca m'éclatait juste de coder l'algo. Je précise afin de ne pas me faire taxer de "voleur d'idée" par les aigris)

Je transforme mon message en une suite de bit (en utilisant l'alphabet ascii)
par exemple a ->  65 (en décimal) -> 1000001 (en binaire)

Chaque pixel de l'image est codé sur 8 bits (1 octet), et j'utilise le bit de poid faible pour inscrire les bits de mon message.

Par exemple, imaginons qu'on utilise une "image" composé d'une seule ligne ne contenant que 7 pixels avec les valeurs suivantes:

01101010   10111011   10001010   00001110   00010101   00010100   01110101

Je vais donc aller modifier le dernier bits de chaques pixel pour aller écrire mon bit d'infomation. Donc mon "a" sera ainsi inséré dans l'image:

01101011   10111010  10001010   00001110   00010100   00010100   01110101

Bien évidemment l'image n'est presque pas altérée (absolument imperceptible à l'oeil nu)

Mais voici ma question: Si au lieu d'écrire les bits "dans l'ordre", je les réparti sur mon image de maniere pseudo aléatoire. C'est à dire qu'on utilise une clef qui définit les coordonnées du pixel de départ et une fonction mathématique qui  permet de calculer les coordonnées du pixel suivant et ainsi de suite.

Cela me semblerait fort difficile à casser car on ne saurai jamais quells pixels contiennent de l'information et lesquels ne contienent que de l'image. Je ne voit même pas par quel bout commencer pour récupérer le message d'origine (si on ne connait pas la clef de départ). Quelqu'un aurait-il une réponse sur le sujet?

Hors ligne

#2 31-08-2009 12:06:46

thadrien
Membre
Lieu : Grenoble
Inscription : 18-06-2009
Messages : 526
Site Web

Re : Salutation et Steganographie

Salut,

Tout d'abord, le cryptage et la sténographie sont deux problèmes totalement indépendants ! Il faut donc les envisager séparément.

La sténographie sert uniquement à cacher des données secrètes dans d'autres données. Elle ne sert pas à empêcher quelqu'un qui connait leur présence de les lire, ce qui est le rôle du cryptage. Les deux vont d'ailleurs très bien ensemble.

L'idée de faire une transformation pseudo-aléatoire sur ton texte est bonne. En effet, les transformations que l'image de départ subit alors sont pseudo-aléatoires aussi et sont indiscernables du bruit ambiant.

En ce qui concerne le cryptage, il est difficile de répondre. Cela ne veut pas dire que ton idée ne soit pas sûre, juste qu'elle peut très bien ne pas l'être. La cryptographie est un domaine très compliqué. C'est pour cela que, quand on veut être sûr du coup, on utilise un algorithme de cryptage tout fait.

Pour ma part, je prendrai le schéma suivant :
* compression
* chiffrement
* stéganographie

La compression à deux avantages intéressants. D'une part, cela réduit la taille des données, ce qui vaut le coup car on dispose de peu de place quand on fait de la sténographie. Mais surtout, cela enlève les redondances de tes données, ce qui rend la cryptanalyse plus difficile.

Ensuite, le chiffrement. Il sert à protéger tes données si un attaquant arrivait à percer la stéganographie.

Enfin, le camouflage. Même si des données chiffrées et comprimées sont quasiment pseudo-aléatoires, répartir les données de manière pseudo-aléatoire est une bonne idée.

En espérant avoir pu t'aider.

Hadrien

P.S : N'oublie pas non plus qu'une mauvaise implémentation peut introduire des failles de sécurité. Si tu veux, je peux te donner des conseils là dessus.

Hors ligne

#3 31-08-2009 13:32:46

ju_bicycle
Membre
Inscription : 31-08-2009
Messages : 79

Re : Salutation et Steganographie

Salut

Alors oui, c'est exact que la crypto et la stegano sont des choses différentes. Mais justement maintenant que j'avais terminé le coté "stegano", je voulais améliorer la chose en y ajoutant le coté "crypto". Et l'idée de mélangé mes bits d'info sur toute l'image me paraissait bonne. Mais justement, voila tout le probleme, elle me "parait" bonne. Or vu le nombre d'algo de crypto qui semble completement inviolable a un néophyte comme moi et qui sont cassable (sans même utiliser un ordinateur) en quelques heures par certaines personnes, je n'en suis absolument pas sur.
C'est bien la en fait le fond de ma question, comment évaluer la solidité d'une telle procédure.

Evidemment cela dépendra (entre autre) de la pseudo aléatoirité de la fonction. Par exemple si je ne prend qu'un pixel sur 2 pour y cacher de l'info, il est évident que ca ne sera pas bien solide. Et j'avoue que pour l'instant j'ai pas vraiment réfléchit a une fonction qui permettrait ce que je veux faire...

Hors ligne

#4 31-08-2009 14:02:41

Golgup
Membre actif
Inscription : 09-07-2008
Messages : 574

Re : Salutation et Steganographie

Bonjour et bienvenu!

Faute de pouvoir répartir chaque bit aléatoirement dans l'ensemble de l'image, vous pouvez transposer de façon quasi aléatoire les bits de chaque octets du 'message' en clair puis réécrir ceux-ci à la fin de vos octets de l'image de départ.

Pour cela vous pouvez utiliser un schema de Feistel, méthode très efficace(point de vu aléatoire) mais qui peux s'avérer lourde à gérer.
Un lien très clair:

http://www.gymnase-yverdon.vd.ch/branch … eistel.htm

++

Hors ligne

#5 31-08-2009 18:00:37

thadrien
Membre
Lieu : Grenoble
Inscription : 18-06-2009
Messages : 526
Site Web

Re : Salutation et Steganographie

Salut,

Un algo simple que j'avais imaginé quand j'étais jeune pour résoudre ce type de problèmes. m étant le message dans l'ordre, c dans le désordre :

Dans un sens :
c = ""
pour chaque bit b de m faire
  tirer au hasard k, booléen
  si k vrai faire
    c = c + b
  sinon
    c = b + c
  fin si
fin pour

Pour déchiffrer le message, il suffit de dépiler les bits en sens inverse de celui dans lequel on les as mis. Cela impose de tirer tous les booléens, de les stocker dans un tableau, puis de les lire en sens inverse. C'est un des défauts de cette méthode.

L'autre défaut, c'est que cette méthode ne produit que 2^(n-1) ordres différents parmi les n! possibles. En fait, je poste surtout cette méthode comme source d'inspiration plutôt que comme code tout fait.

Sinon, un truc à t'assurer, c'est que les nombres aléatoires tirés lors du chiffrement et du déchiffrement soient bien les mêmes. Or, les fonctions random fournies avec les différents langages dont très dépendants de l'implémentation : le simple fait de compiler ton soft avec deux versions différentes d'un même compilateur peut générer des nombres aléatoires différents. Il te faut donc coder cette fonction toi-même pour être sûr !

Hors ligne

#6 05-09-2009 10:53:43

ju_bicycle
Membre
Inscription : 31-08-2009
Messages : 79

Re : Salutation et Steganographie

Feistel me semble etre une bonne idée (et beaucoup plus facile que de pondre une fonction pseudo aléatoire qui répartisse les bits d'info dans l'image)
Je vais implémenter ca avec
Bien sur si ca interesse quelqu'un le code est dispo
Je suis en train de réflechir a la faisabilité d'une stegano sur une image jpeg. Ca semble beaucoup moins évident, mais j'ai déja quelques idées, on verra si ca marche

Hors ligne

#7 06-09-2009 09:59:41

thadrien
Membre
Lieu : Grenoble
Inscription : 18-06-2009
Messages : 526
Site Web

Re : Salutation et Steganographie

ju_bicycle a écrit :

Je suis en train de réflechir a la faisabilité d'une stegano sur une image jpeg. Ca semble beaucoup moins évident, mais j'ai déja quelques idées, on verra si ca marche

Si tu veux faire de la stéganographie sur du JPEG, ne travaille pas sur les pixels de l'image décompressée, mais directement sur les coefficients de la DCT : changer les bits de poids faibles de ces coefficients ne devrait pas trop se voir. Et comme il n'y a plus de pertes ultérieures ensuite, c'est tout bon.

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt quatorze moins cinquante neuf
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums