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 |
III.3 CONVERSION DES NOMBRES DECIMAUX EN BINAIRESDans le calcul de la conversion d'un nombre décimal en binaire par une suite de division euclidienne par deux, il est connu que le premier reste sera le nombre binaire du poids le plus faible, car il se placera le plus à droite possible du correspondant binaire. Le tableau des binaires qui sera retourné par la méthode ici-bas quant à lui sera lue de droite à gauche car il est rempli peu à peu par les premiers restes de la divisions euclidienne par 2. La méthode suivante nous a aidé à convertir un nombre entré en argument de décimal un tableau de huit bits : static int[] converDecimalBinaire(int nombre){ int[] Tconversion=new int[8]; int a=nombre; for(int i=0;i<8;i++){ int h=a%2; Tconversion[i]=h; a/=2; if(a==0)Tconversion[i]=0; if(h==1)Tconversion[i]=1; } return Tconversion; } Le tableau retourné par cette méthode est toujours constitué par huit bits d'autant plus que le chiffre maximal 255 correspondant à ÿ est représenté au moins et suffisamment par huit bits. Quant aux chiffres qui ne totalisent pas 8 bits en leurs correspondants binaires, celui-ci sera complété par des 0 à son côté droit. Cette méthode sera appelée tant pour convertir le message en binaire que les octets lus du message et insérés dans des tableaux. Cette méthode sera encore appelée lorsqu'il faudra copier les bits du message de l'image. Des que les bits du message seront insérés dans ceux de trois tableaux, il restera alors de transformer chaque suite des bits en des nombres décimaux en vue d'être écrits dans l'Image de destination. La suite de montrera comment il faudra-t-il remettre les listes des binaires en des nombres entiers. III.4 CONVERSION DES TABLEAUX BINAIRES (UN BIT) EN DES NOMBRES ENTIERS Le terme bit (b avec une minuscule dans les notations) signifie « binary digit », c'est-à-dire 0 ou 1 en numérotation binaire. Il s'agit de la plus petite unité d'information manipulable par une machine numérique. Il est possible de représenter physiquement cette information binaire.4(*)8 Quand on convertie un nombre de la base 2 en base 10, il est connu qu'il faut y aller en multipliant le chiffre significatifs par deux, exposant le nombre des chiffres significatifs se trouvant directement à droite. Tout en sachant que 2 exposant zéro donne un. Voici la méthode qui nous a servi de correspondre un tableau de huit chiffres binaires en un chiffre décimal : static int coBinaireDdec(int[] tab){ int k=0; int decimal=0; CacherTexte od=new CacherTexte(); for(int j=0;j<8;j++){ k=tab[j]*od.deuxExposantN(2,j); decimal+=k; } return decimal; } Remarquez qu'à la cinquième ligne, l'instruction : k=tab[j]*deuxExposantN(2,j) Comporte l'identifiant `deuxExposantN' qui ne figure pas entre les mots clés du langage java. Celui-ci est un nom d'une autre méthode que nous avions conçu, méthode qui calcule pour toute tournure de la boucle : 2 exposant le nombre des chiffres significatifs se trouvant à droite du multiplicateur en cours. C'est pourquoi cette méthode reçoit dans la liste de ses arguments 2 et j, le compteur des nombres se trouvant après le chiffre multiplicateur, significatif en cours. Voici le corps de la méthode deuxExposantN : static int deuxExposantN(int coeff,int exposant){ int m,n; m=1; n=0; do{ if(exposant==0)m=1; else m=m*coeff; n+=1; }while(n<exposant); return m; } Cette méthode recevra en argument deux nombres: un coefficient qui est généralement 2 et un exposant qui doit être entre 7 et 0 tout en sachant que 20=1. Toutes les méthodes que nous venons de montrer n'ont pas explicité comment les bits du message seront insérés dans ceux de l'image. L'intertitre suivant expliquera comment nous pouvons à partir d'une méthode qui sera appelée pour chaque pixel, cacher les bits du message dans ceux des octets de l'image. * 8 http://www.commentCamarche.net, valide le 16 novembre 2008.88856323 22 6323288888 |
|