WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

La stéganographie par les images pour la sécurisation du transfert des messages

( Télécharger le fichier original )
par Richard ISHARA
Institut Superieur Pedagogique - Graduat 2008
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

III.5 INSERTION DES BITS DU MESSAGE EN VUE DU MARQUAGE

Au chapitre deux, nous avions donné un exemple englobant les opérations d'insertion du message dans une image (II.4 LA STEGANOGRAPHIE).

Ici-bas se trouve la méthode qui nous a servi de faire cette tache aussi importante de notre logiciel stéganographique :

public static int[] ecriturebin(int temp1,int temp2,int temp3,int tmess){

int[] Ttemp1=converDecimalBinaire(temp1);

int[] Ttemp2=converDecimalBinaire(temp2);

int[] Ttemp3=converDecimalBinaire(temp3);

int[] mess=converDecimalBinaire(tmess);

int z=0;

for(int t=0;t<3;t++){

Ttemp1[t]=mess[z];

z++;

}

for(int q=0;q<3;q++){

Ttemp2[q]=mess[z];

z++;

}

for(int n=0;n<2;n++){

Ttemp3[n]=mess[z];

z++;

}

tableauret=new int[3];

tableauret[0]=coBinaireDdec(Ttemp1);

tableauret[1]=coBinaireDdec(Ttemp2);

tableauret[2]=coBinaireDdec(Ttemp3);

return tableauret;

}

Cette méthode recevra en arguments une liste des trois valeurs représentant les trois octets codant un pixel et un, donnant le caractère du message à insérer auprès de trois octets. Le nombre des valeurs retournées par cette méthode seront égaux que le nombre des valeurs à insérer dans le fichier à envoyer. Aussi longtemps que la boucle prévue pour parcourir les trois tableaux comportant les valeurs d'octets lues n'aura pas atteint la fin, les valeurs retournées par la méthode précédente qui comportent déjà le message seront entrain d'être récupérées et insérées dans un autre tableau en vue de l'écriture dans le fichier appelé « Image destination ».

III.6 ECRITURE SUR L'IMAGE

Les valeurs qui sont traitées dans la méthode précédente sont récupérées immédiatement et mises dans un tableau afin d'être insérés simplement au sein de l'Image de destination. Voici une méthode qui nous a servi de le faire :

static void ecrireImage(String adresse){

try{

FileOutputStream stg=new FileOutputStream(adresse);

BufferedOutputStream nogra=new BufferedOutputStream(stg);

DataOutputStream phie=new DataOutputStream(nogra);

phie.write(66);

phie.write(77);

for(int i=0;i<16;i++) phie.write(entete[i]);

phie.write(a1);phie.write(b1);phie.write(c1);phie.write(d1);

phie.write(a2);phie.write(b2);phie.write(c2);phie.write(d2);

complement=largeur%4;

for(int i=0;i<28;i++)phie.write(tabEntete[i]);

CacherTexte cd=new CacherTexte();

int kiba=0;

int []rasta=cd.ecritureBinaire();

CacherTexte pm=new CacherTexte();

System.out.println("");

System.out.println("complement"+complement);

for (int i=hauteur-1; i>=0; i--){

for(int j=0; j<largeur*3; j++){

phie.write(rasta[kiba]);

System.out.println(rasta[kiba]);

kiba++;

}

System.out.println(" ");

for(int j=0; j<complement; j++){

phie.write(0);

System.out.println(0);

}

}

System.err.println("L'ECRITURE EST TERMINEE AVEC SUCCES");

phie.close();

}catch(IOException e) {

System.err.println("Erreur du camouflage dans l'image");

}

}

Le fichier « Image de destination » détenant déjà le message caché aura visiblement par l'oeil humain, les mêmes qualités que celles du fichier appelé « Image Initiale », alors qu'en réalité il y en a une différence.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Il faut répondre au mal par la rectitude, au bien par le bien."   Confucius