initiation stéganographie et cryptage -...

8
Nom : Desse Prénom : Flavien Classe : TS1 Professeur ISN : Monsieur Fourlegnie Initiation Stéganographie et cryptage source : http://ssociologos.com/2014/11/11/matrix-y-neo-un-metarrelato-del-sujeto-historico- y-su-relacion-con-el-gran-otro-lacaniano/

Upload: ledang

Post on 12-Sep-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Nom : DessePrénom : FlavienClasse : TS1Professeur ISN : Monsieur Fourlegnie

InitiationStéganographie et cryptage

source : http://ssociologos.com/2014/11/11/matrix-y-neo-un-metarrelato-del-sujeto-historico-y-su-relacion-con-el-gran-otro-lacaniano/

Présentation

Enjeu et problématique du projet : pourquoi ce projet ?

Nous avons choisi ce projet puisqu'en cherchant sur internet aucun outil ne permet de regrouper àla fois des outils de stéganographie et de cryptage , entre autre souvent ces programmes sont à télécharger et donc plus difficile à utiliser , de plus la stéganographie est complexe à comprendre.Notre projet est d'expliquer la stéganographie ainsi que le cryptage.

Positionnement du projet avec des solutions existantes.

Il existe de nombreux outils qui ont déjà été réalisés comme celui-ci : https://www.depotnumerique.com/outils/steganographie/cacher-du-texte.php permettant de faire la même chose que notre programme de dissimulation d'un texte dans une image, mais celui-ci utilise une autre technique.

Voici un autre site web regroupant tous les logiciels de stéganographie mais souvent ils sont à télécharger : http://www.commentcamarche.net/faq/109-logiciels-de-cryptographie-et-steganographie ce qui rend son utilisation plus complexe.

Enfin pour le cryptage, de très nombreux site / logiciel existent par exemple : http://www.dcode.fr/chiffre-machine-enigma

Il existe donc de très nombreux sites qui contiennent des outils de stéganographie mais aucun n'explique son fonctionnement ,de plus ils sont à télécharger ce qui rend encore plus complexe leur utilisation et sans la garantie que le résultat soit satisfaisant.

Cahier des charges de l’équipe :

Le but visé de notre projet est de créer une page HTML qui regroupe des outils de stéganographie et un outil de cryptage avec en plus des explications pour que l'utilisateur néophyte apprenne un peu plus sur ces programmes .Pour cela nous avons réalisé des outils de stéganographie ou l'utilisateur aura juste à suivre des étapes simples , et pour ceux qui veulent aller plus loin et apprendre la stéganographie ou le cryptage nous avons créé des pages HTML qui expliquent le fonctionnement des outils utilisés.

L’environnement de travail utilisé et les moyens :

Pour réaliser ce projet nous avons utilisé comme outil la programmation en JavaScript et en HTML nous avons tout mis en place,du projet à la réalisation finale, pour nous aider à réaliser ce projet nous avons pu trouver des informations sur des forums tel que OpenClassroom , si nous rencontrions un problème conséquent nous pouvions faire appel à leur aide et très souvent une personne nous venez en aide.

Répartition des tâches etDémarche collaborative

( dans l'ordre des tâches accompliet à accomplir )

Tâches Planning Noms

Finition du menu 1 séancepuis des ajoutstout au long de

l'année

Flavien D.Gaëtan V.

( anecdotes)

Cacher message Trouver message

Vacancesde noël Flavien D.

Page HTML expliquant le fonctionnementdes outils cacher un message

et trouver un message2 séances Flavien D.

Cacher imageRetrouver message

Vacances( février ) + 2

séances

Flavien D.

Page HTML expliquant le fonctionnementdes outils :cacher une image

et trouver une image2 séances Flavien D.

Notre propre système de cryptage

Vacance( février )

Gaëtan V.

Finition Jusqu'à la fin FlavienGaëtan

Légende

: Commun : Réalisé par Gaëtan : Réalisé par Flavien

Réalisation

Les démarches :

Pour chaque programme nous avons la même base , qui se trouve sur le wiki , nous sommes parti de cette base puis nous avons effectué la programmation , mais avant de se lancer à corps perdu dans la programmation nous avons défini les différentes tâches à accomplir , bien entendu nous avons rencontré quelques difficultés à réaliser notre projet.

Les fonctions :

Chacun de nos programmes a une fonction principale qui lui est dédié ,toute les fonctions principales de nos programmes portent le même nom, qui est : « go « .Pour le programme retrouver un message dans une image ,il s'agit de la partie la plus complexe de notre projet car celle-ci fait appelle à un web-worker .Un web-worker permet de réaliser 2 taches simultanément et évite que le programme s'arrête car celui-ci met trop de temps à calculer, par exemple pour retrouver un message dans une image, le programme avec une image moyenne (1920x1080) met environ 5 minutes , ce qui l'interrompt .D’où l'importance d'utilisé un web-worker , son fonctionnement est assez simple, il alloue une partie du processeur non-utilisé par le fichier principale et permet d'avoir un programme qui tourne a l'infini. Mais l'utilisation du web-worker a généré un second problème : son fonctionnement ,car le web-worker doit se trouver sur un autre fichier JS.Le fichier principale et le web-worker doivent se communiquer les variables ceci est réalisé grâce à « PostMessage « .Le programme pourrait être améliorer en optimisant la conversion en binaire ou en augmentant la visibilité du résultat , mais avec le manque de temps Gaëtan et moi avons préféré nous concentrer sur des tâches encore a réaliser.

début du web-worker

Dans le programme pour cacher un texte dans une image la fonction « go « est beaucoup plus simple que celle pour retrouver un texte dans une image ,elle est très optimisé car il n'y a aucun temps de chargement , son fonctionnement est assez simple .Nous convertissons le texte en ASCII ensuite en binaire , puis nous cachons le texte en binaire dans le bit le plus faible d'une valeur d'unpixel , rouge par exemple , nous nous sommes permis aussi d'innover et de créer un choix qui permet d'inverser le texte par exemple bonjour est codé ruojnob ce qui rend le texte impossible à retrouver.

Entre autre tous nos programmes à l'exception du cryptage contienne la fonction « onChange « qui permet d'afficher une image de l'ordinateur sur la page HTML qui facilite la vie de l'utilisateur. Cette fonction a été faite grâce a l'aide d'une personne sur le forum d'OpenClassroom, son principe est très simple , la fonction récupère une image la met dans une div la charge puis l'affiche, en outre tous nos programmes comportent les fonctions « passer « qui permettent juste de passer d'une étape à l'autre en changeant la valeur des div ou d'afficher des abonnements.

La fonction principale pour cacher une image dans une autre image est notre réalisation la plus aboutit , car nous avons optimisé son fonctionnement au maximum , de plus celle-ci est assez simple et se résume par ce schéma :

Schéma pour cacher une image dans

une autre image selon la seconde

techniques

Le schéma correspond a la deuxième technique pour cacher une image dans une autre image ,il existe 2 autres façons ,mais le principe fondamentale reste inchangé , cacher les bits de poids fort de l'image à dissimuler qui se retrouvent dans les bits de poids faibles de l'image de base ,il en est de même pour les 3 techniques.

///// La partie d'explication du cryptage est en cours de rédaction car nous n'avons pas encore programmé l'outil \\\\\\

Intégration et validation

Mon travail dans l'équipe a consisté à réaliser les outils pour cacher une image dans une autre image , la retrouver ,cacher un texte dans une image , retrouver cette image , l'explication de ces outils et pour finir la page principale.Gaëtan quant à lui s'est occupé du cryptage.

Notre projet correspond à notre cahier des charges car nous avons réussi a combiner des outils simples avec des explications.

Les tests sont assez simples car nous avons aussi créer des outils permettant de retrouver les informations dissimulées qui font partie du projet.

Image provenant du programmepour retrouver un texte dans une

image

Ici nous avons caché le message « bonjour « dans l'opacité et nous l'avons retrouvé.