Steganographie

bsupetnain - 21 nov. 2001 à 17:43
cs_ragam Messages postés 1 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 27 mars 2005 - 27 mars 2005 à 10:11
Je galere grave pour trouver des infos serieuses sur la
steganographie.Je voudrais pouvoir developper un programme
dos en C++ pour cacher un texte dans une image BMP ou JPEG.
Help please et donnez moi un algorithme pour pouvoir faire
ca ou alors un morceau de code.
Merci

8 réponses

J'ai programmé ça en Turbo Pascal, mais je n'ai pas le code ici (il est chez moi, là chui à l'école :-).

Le truc est d'utiliser des images BMP en 24bits/pixel :
8 bits pour le Bleu
8 pour le Vert
8 pour le Rouge

Mais vu que 2^8 ça donne 256 combinaisons, et 256^3=16.7 millions de nuances, ça fait un paquet! Ton oeil ne verra pas la différence entre 543789 et 543689 (déjà rien que le nom on peut se tromper ;-). Donc le truc est d'écrire sur le bit de poids faible de chaque couleur primaire :
8 bits -> xxxxxxxA, et tu écris dans A le bit 0 ou 1

Pour lire le bit 0 (faible) : valeur8bits & 1 (AND 1).
Ecrire : "valeur8bits & (~1) | monboolean", le "& (~1)" permet de mettre le bit 1 à zéro. "|" = OR, écrit le bit (s'il est à zéro avant).

Lit le bit n°x dans ta valeur 8 bits : "valeur8bits >> (x-1) & 1", ">> n" = division par 2^n (d'où le -1 car pour le 1er bit, pas besoin de diviser!)

Tu peux écrire deux bits pour gagner de la place. Pas 3 car entre 240 et 255, on voit la nuance à l'oeil nu!

Tu peux aussi faire ça sur des BMP codé en RLE! ... pas essayé, mais c plus dur.

Pour + de sécurité : tu écris juste sur une couleur primaire, par exemple : le bleu. Voir écrire la même valeur sur les 3 ... enfin tout ça j'en doute! ... Faut voir.

Sache aussi qu'il existe des softs pour détecter la stéganographie!!!

Allez @+
Haypo
haypo.pasdepub@ifrance.com (sans le ".pasdepub" bien sûr) pour + d'info
0
J'ai programmé ça en Turbo Pascal, mais je n'ai pas le code ici (il est chez moi, là chui à l'école :-).

Le truc est d'utiliser des images BMP en 24bits/pixel :
8 bits pour le Bleu
8 pour le Vert
8 pour le Rouge

Mais vu que 2^8 ça donne 256 combinaisons, et 256^3=16.7 millions de nuances, ça fait un paquet! Ton oeil ne verra pas la différence entre 543789 et 543689 (déjà rien que le nom on peut se tromper ;-). Donc le truc est d'écrire sur le bit de poids faible de chaque couleur primaire :
8 bits -> xxxxxxxA, et tu écris dans A le bit 0 ou 1

Pour lire le bit 0 (faible) : valeur8bits & 1 (AND 1).
Ecrire : "valeur8bits & (~1) | monboolean", le "& (~1)" permet de mettre le bit 1 à zéro. "|" = OR, écrit le bit (s'il est à zéro avant).

Lit le bit n°x dans ta valeur 8 bits : "valeur8bits >> (x-1) & 1", ">> n" = division par 2^n (d'où le -1 car pour le 1er bit, pas besoin de diviser!)

Tu peux écrire deux bits pour gagner de la place. Pas 3 car entre 240 et 255, on voit la nuance à l'oeil nu!

Tu peux aussi faire ça sur des BMP codé en RLE! ... pas essayé, mais c plus dur.

Pour + de sécurité : tu écris juste sur une couleur primaire, par exemple : le bleu. Voir écrire la même valeur sur les 3 ... enfin tout ça j'en doute! ... Faut voir.

Sache aussi qu'il existe des softs pour détecter la stéganographie!!!

Allez @+
Haypo
haypo.pasdepub@ifrance.com (sans le ".pasdepub" bien sûr) pour + d'info
0
-------------------------------
Réponse au message :
-------------------------------

J'ai programmé ça en Turbo Pascal, mais je n'ai pas le code ici (il est chez moi, là chui à l'école :-).

Le truc est d'utiliser des images BMP en 24bits/pixel :
8 bits pour le Bleu
8 pour le Vert
8 pour le Rouge

Mais vu que 2^8 ça donne 256 combinaisons, et 256^3=16.7 millions de nuances, ça fait un paquet! Ton oeil ne verra pas la différence entre 543789 et 543689 (déjà rien que le nom on peut se tromper ;-). Donc le truc est d'écrire sur le bit de poids faible de chaque couleur primaire :
8 bits -> xxxxxxxA, et tu écris dans A le bit 0 ou 1

Pour lire le bit 0 (faible) : valeur8bits & 1 (AND 1).
Ecrire : "valeur8bits & (~1) | monboolean", le "& (~1)" permet de mettre le bit 1 à zéro. "|" = OR, écrit le bit (s'il est à zéro avant).

Lit le bit n°x dans ta valeur 8 bits : "valeur8bits >> (x-1) & 1", ">> n" = division par 2^n (d'où le -1 car pour le 1er bit, pas besoin de diviser!)

Tu peux écrire deux bits pour gagner de la place. Pas 3 car entre 240 et 255, on voit la nuance à l'oeil nu!

Tu peux aussi faire ça sur des BMP codé en RLE! ... pas essayé, mais c plus dur.

Pour + de sécurité : tu écris juste sur une couleur primaire, par exemple : le bleu. Voir écrire la même valeur sur les 3 ... enfin tout ça j'en doute! ... Faut voir.

Sache aussi qu'il existe des softs pour détecter la stéganographie!!!

Allez @+
Haypo
haypo.pasdepub@ifrance.com (sans le ".pasdepub" bien sûr) pour + d'info

-------------------------------
Réponse au message :
-------------------------------

Je galere grave pour trouver des infos serieuses sur la
steganographie.Je voudrais pouvoir developper un programme
dos en C++ pour cacher un texte dans une image BMP ou JPEG.
Help please et donnez moi un algorithme pour pouvoir faire
ca ou alors un morceau de code.
Merci
0
Et tu sais comment on fait pour les fichiers jpeg parceque le bmp 54 bits c'est pas courant et lourd pour passer par e-mail(avec un 56K)?En plus je sais que le message est inutilisable apres compression.Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Si tu est intéressé par un programme de stéganographie avec des documents qui expliquent la stégano donne moi ton adresses je vais te les envoyer LUDAW
0
OK
plize@club-internet.fr
0
Koryn38 Messages postés 6 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 22 septembre 2003
4 août 2003 à 14:52
Bonjour,

Je suis intéressé également.
Ma problèmatique est la suivante : je dois ajouter à une image (BMP 8 bits 256 couleurs) des informations textes sur les conditions de prise de vue. Je dois conserver une qualité irréprochable de l'image afindde passer un OCR (reconnaissance de caractères) ensuite sur cette image (l'OCR passera sur des plaques de véhicules prises en photos et non sur le texte ajouté).

J'essaye actuellement d'afficher les infos textes sur l'image acquise avant de sauvegarder le tout, mais l'affichage réalisé se fait sur un calque en avant plan de l'image et je n'arrive pas à sauvegarder les informations avec l'image. C'est pourquoi, je penses que le principe de stéganographie peut m'intéresser.

Maintenant si tu est aussi en mesure de me fournir une solution dans le sens actuel de ma recherche, je suis partente.

Koryn38

NB : environnement de programmation VISUAL Studio .NET (visual C++) avec les MFC.
0
cs_ragam Messages postés 1 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 27 mars 2005
27 mars 2005 à 10:11
salut tout le monde
je suis entrains de devellopper le meme programme et j'aurrais vraiment besoin
de plus d'informations sur le sujet "comment faire pour changer le bit le moins
significatif dans un canal donnè et eviter le pading aussi", l'algorithme avec si
c'est possible ca va etre plus claire.
je vous remerci d'avance.
0
Rejoignez-nous