ZeBrian Posté 18 Mars 2007 Posté 18 Mars 2007 Bonjour, J'écris juste pour vous faire connaître un énième gadget de ma conception : un petit script qui cache un texte dans une image avec un mot de passe ! Avec un peu de maths, mais j'ai réussi à faire que la perturbation engendrée pour obtenir l'image "secrète" ne soit pas visible à l'oeil nu... Voici par exemple une jolie moto : http://local.izipub.com/project_hide/moto.jpg et sa version contenant un texte crypté avec le mot de passe "test" : http://local.izipub.com/project_hide/abc878.png Pour décoder l'image cryptée, c'est ici Pour crypter une nouvelle image, c'est là ! Voilà, amusez-vous bien
Loupilo Posté 18 Mars 2007 Posté 18 Mars 2007 Je suis impressioné ! Tu peux en dire plus sur le fonctionnement de tout ça ?
Phobos Posté 18 Mars 2007 Posté 18 Mars 2007 (modifié) j'adore ! Par contre, ton original fait 65ko, tandis que la photo avec le texte fait 221ko. Sans ça ça me ferait un outil de copyright très pratique Modifié 18 Mars 2007 par Phobos
Loupilo Posté 18 Mars 2007 Posté 18 Mars 2007 Phobos, c'est sûrement car la sortie est en PNG. Donc pour les photos, ça donne un fichier très lourd !
ZeBrian Posté 18 Mars 2007 Auteur Posté 18 Mars 2007 (modifié) Le fonctionnement est très simple : 1) à partir du mot de passe, on génère une clef 2) pour chaque lettre du texte, on choisit un pixel de l'image : le parcours des pixels choisis dépend de la clef 3) étant donné que les lettres peuvent être codées sur 8 bits tandis que la couleur d'un pixel est codée sur 24 bits, il est relativement facile de modifier très légèrement la couleur du pixel afin d'y coder une valeur correspondant à la lettre (la manière de modifier la couleur dépend également de la clef) Pour décoder, une fois équipé du mot de passe, on génère la clef, on en déduit le parcours des pixels, on extrait chaque lettre une par une et on recolle le tout ! Par rapport à la sortie en PNG, je suis en train de voir si je ne pourrais pas sortir du JPEG mais mes premiers essais ne sont pas concluants : même avec une compression de qualité 100%, il semble que des informations sur les couleurs des pixels soient perdues, on ne peut alors plus récupérer le texte... Edit : En fait, après quelques tests, sur une image de 180.000 pixels que je passe en JPEG avec une compression de qualité maximale avec GD, j'ai 61.753 pixels dont les couleurs sont légèrement modifiées... Ma méthode ne peut donc pas s'appliquer avec une compression JPEG Modifié 18 Mars 2007 par ZeBrian
Yazerty Posté 18 Mars 2007 Posté 18 Mars 2007 C'est une méthode de watermark c'est ça :- ? Très bel exemple ZeBrian !
ZeBrian Posté 18 Mars 2007 Auteur Posté 18 Mars 2007 En effet, c'est un peu du watermark, sauf que le texte n'est pas accessible directement ! En fait, je n'avais même pas pensé à cette utilité au départ
Sarc Posté 18 Mars 2007 Posté 18 Mars 2007 Salut Assez impressionnant... J'ai regardé avec une image noire quels étaient les pixels changés, ça forme une jolie figure, ça doit être impossible à décrypter sans connaissances de cryptage Par contre... Fatal error: Maximum execution time of 30 seconds exceeded in E:\Public\project_hide\decode.php on line 68 Impossible de tester si le texte a bien marché sur mon image. Frustrant !
Wolf18 Posté 18 Mars 2007 Posté 18 Mars 2007 Excellent ce petit gadget ! Je ne savais même pas que ca pouvait éxister ce genre de petite protection pour cacher des infos... Je garde les liens précieusement en tout cas, merci
ZeBrian Posté 18 Mars 2007 Auteur Posté 18 Mars 2007 sarc : En effet, ton image génère une boucle infinie dans mon algorithme ! Il faut simplement que j'affine un peu la méthode pour générer les emplacements des pixels à changer, celui-ci finit par tourner en boucle pour certaines images... Je m'y mets de suite Wolf18 : De rien, mais puisque je vois que vous avez l'air d'aimer, j'en ferai une version plus correcte bientôt !
Sarc Posté 18 Mars 2007 Posté 18 Mars 2007 Cool ! J'étais sûr d'arriver à faire buguer ton programme rapidement ... J'ai eu la chance de créer un programme sur les images (algorithmes de compression, modifications d'images, etc.), et je sais quelles sont les erreurs à deux francs qu'on peut avoir... Généralement, les limites (255 et 0) sont génératrices d'erreurs. Je ne sais pas si c'est ça qui a fait buguer avec mon image noire, m'enfin... Et euh, juste par curiosité : ça sert à quoi ? Enfin, pour quelle application tu as écrit ce programme ? Simple entraînement ou tu y trouves un intérêt pour un site ?
Wolf18 Posté 18 Mars 2007 Posté 18 Mars 2007 Il risque d'être contacté par la mafia rapidement si il perfectionne encore un peu le principe En effet, une version plus stable et plus agréable à regarder sera la bienvenue Bonne continuation.
Théo B. Posté 18 Mars 2007 Posté 18 Mars 2007 (modifié) Moi qui utilise des images en PNG en temps normal, je vais aussi m'y mettre Merci! Ton outil est librement utilisable? /EDIT : Tu ne gères pas les transparences //EDIT 2 : J'avais mis comme mot de passe "azerty" mais j'ai récupéré le texte en ne mettant que "azert" en mot de passe... "azerty" marche aussi, d'ailleurs. Modifié 18 Mars 2007 par Théo B.
ZeBrian Posté 18 Mars 2007 Auteur Posté 18 Mars 2007 Bien sûr, ce n'est qu'une première version, j'ai omis de préciser qu'environ un mot de passe sur 600 fonctionne pour toutes les images En fait, j'ai fait ça par simple curiosité : l'idée m'est venue après m'être intéressé au problème de cacher une image dans une autre (en effaçant les bits faibles de chacune des deux images et en utilisant les bits forts de l'image à cacher en tant que bits faibles de l'image rendue) Par rapport au bug engendré par l'image noire, il est en fait dû aux dimensions de l'image et non aux couleurs Sinon pour la libre utilisation de cet outil, je ne vois pas pourquoi j'en restreindrai l'usage ! Je suis étudiant donc je n'ai pas le temps de me lancer dans des poursuites judiciaires Enfin, pour la question de la transparence, c'est une limitation de la librairie GD pour PHP : elle ne gère pas le canal alpha des PNG
Yazerty Posté 18 Mars 2007 Posté 18 Mars 2007 En effet, c'est un peu du watermark, sauf que le texte n'est pas accessible directement ! En fait, je n'avais même pas pensé à cette utilité au départ Parce que dans un watermark le texte est accessible directement :- ?
ZeBrian Posté 18 Mars 2007 Auteur Posté 18 Mars 2007 (modifié) D'après Wikipedia, il y a deux types de watermark : l'un visible, l'autre invisible => http://fr.wikipedia.org/wiki/Tatouage_num%C3%A9rique Modifié 18 Mars 2007 par ZeBrian
Yazerty Posté 18 Mars 2007 Posté 18 Mars 2007 Arf voui j'aurais du faire un tour sur Wikipédia . Mais y ayant passé l'aprem pour des recherches en économie je n'ai bizarrement pas eu le réflexe .
ZeBrian Posté 18 Mars 2007 Auteur Posté 18 Mars 2007 mdr Sinon, j'arrive à faire des trucs intéressants avec la prochaine version de l'algorithme... Par exemple stocker 50 ko de données dans une image de 500x360 pixels, sans que le changement ne soit visible (et pourtant j'ai de bons yeux ). Bien sûr, on garde les limitations de poids du format PNG, et les multiples nuances augmentent la taille du fichier final, mais le texte reste complètement invisible, ce qui quand on veut surtout faire passer anonymement des données est le principal ! Par contre, je ne vais peut-être pas trop vanter ce côté-là de l'algorithme car j'ai peur d'avoir des ennuis avec la CIA A bientôt pour une nouvelle version avec possibilité de cacher n'importe quel type de données
ludo88 Posté 18 Mars 2007 Posté 18 Mars 2007 y aurait il un moyen d'avoir le source, ca pourrait m'interesser pour certaines applicaions : en gros c'est open source (si oui quel type de licence) ? En tout cas un boulot vraiment interessant
ZeBrian Posté 18 Mars 2007 Auteur Posté 18 Mars 2007 (modifié) Entre libre d'utilisation et open source, il y a tout de même une grosse différence... Etant donné que ça a l'air de plaire, j'essaierai peut-être d'en faire un service web gratuit avec quelques publicités, ce qui rend donc l'idée de partager le code source assez risquée... Je ne pense donc pas distribuer le code source dans un premier temps ! De plus, je n'ai strictement aucune compétence en cryptographie ! Tout ce que j'ai fait est d'utiliser astucieusement quelques formules mathématiques, il est donc possible que l'on puisse hacker relativement rapidement le cryptage. Utiliser cet algorithme dans un logiciel sérieux serait donc contre-indiqué... Edit : La nouvelle version semble prometteuse : 300.000 essais de mots de passe ne suffisent pas pour arriver à décoder une image Edit2 : 1 million d'essais non plus Edit3 : Reste plus qu'à faire l'interface utilisateur, mais je vais me coucher, j'ai cours demain Modifié 18 Mars 2007 par ZeBrian
ludo88 Posté 18 Mars 2007 Posté 18 Mars 2007 (modifié) Open source ne veut pas dire réutilisation à l'identique mais possibiltés de l'améliorer pour l'adapter à une utilisation bien précise. Du beau travail dans tous les cas. Modifié 18 Mars 2007 par ludo88
Anonymus Posté 18 Mars 2007 Posté 18 Mars 2007 Bonjour, Le fait de crypter des données est réglementé, en France. Attention à bien te renseigner.
ZeBrian Posté 19 Mars 2007 Auteur Posté 19 Mars 2007 (modifié) Ah tiens ? Merci de l'info A vrai dire, je ne sais pas vraiment où me renseigner à ce sujet... Aurais-tu des sources plus précises ? Edit : En plus, maintenant que l'algorithme est capable de crypter n'importe quel fichier dans une image (on peut par exemple dissimuler une image de 800x600 pixels sans problème dans une image de 500x360), il faut que je trouve un moyen d'empêcher les utilisations malsaines (pédophilie...) de mon outil Modifié 19 Mars 2007 par ZeBrian
Leonick Posté 19 Mars 2007 Posté 19 Mars 2007 Excellent ce petit gadget ! Je ne savais même pas que ca pouvait exister ce genre de petite protection pour cacher des infos... Je garde les liens précieusement en tout cas, merci En fait, il s'agit de stéganographie, qui comprend 2 branches : - le watermarking et - le data-hidding (dont son programme fait partie) dans le watermarking, il y a 2 sous-types : - un fort (qui permet d'insérer un copyrit, je pense qu'ils doivent utiliser ce type d'outils pour marquer les DVD en avant première pour la presse pour voir d'où viennent les fuites) - un faible qui sera détruit à la moindre modification du fichier, celui-ci sert à authentifier la non modification d'un fichier, par exemple un acte de vente, etc...
Galeenet Posté 19 Mars 2007 Posté 19 Mars 2007 En fait, il s'agit de stéganographie, qui comprend 2 branches : Grilled :/ On en avait parlé après le 11 septembre, la légende disait qu'Al Qaida faisait passer ses messages sur internet, par des images, grâce à la stéganographie.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant