mardi 6 août 2013

crypter en vb

Bonjour à tous ,

je suis pas très fort en vb mais je me lance dans la programmation d'un code pour crypter/décrypter des fichiers de tous types (je commence par tester sur les fichiers txt) à partir du principe de l'algorithme RSA :

avant tout je créer une clé du type : n = pq où p et q sont deux entiers , d un entier quelconque premier avec phi(n) = p-1 q-1 et e son inverse dans Z/phi(n) Z .

Je met ces informations la forme suivante dans un fichier texte : "n,phi(n);d:e" (les séparateurs , ; : sont volontaires pour pouvoir recueillir les informations dans le programme).



Ensuite je programme l'algorithme suivant :

l'utilisateur rentre le chemin d'accès au fichier clair

je récupère sous forme de chaine de caractère son contenu :



dim fic = My.Computer.Filesystem.Readall text(textbox2.text)



ainsi que sa longueur



dim len = fic.length



j'invite l'utilisateur à choisir le fichier contenant la clé

je récupère le contenu string du fichier texte contenant la clé : key

je récupère ses informations en utilisant les fonctions mid , instr et en convertissant sous le type integer :

dim n as integer

dim phi as integer

.

.

.

n = mid(key, 1, Instr(key, ",")-1)

phi = mid(key , instr(key, ",") +1 , instr(key , ";")-1)

d = mid (key , instr(key,";") +1, instr(key,":") -1 )

e = mid(key, instr(key,":") +1 , )



ensuite je débute l'algorithme:



dim i as integer

i = 1

dim s

dim t

dim result = ""





while i <= len



s = Asc (Mid(fic,i,1))

t = s^e

t=t mod n

result = result & char(t)

i = i+1



end while



My.Computer.Filesystem.writeal ltext(textbox3.text , result)





Pour le décryptage , l'algorithme est le suivant :

je récupère les mêmes informations que précédemment dans le fichier clé dans les variables n , phi ,d et e ainsi que le contenu du fichier crypté dans la variable fic.



i=1

While i<= len

s = Asc(mid(fic,i,1))

t = s^d

t=t mod n

result = result & char(t)

i= i +1

end while





.

J'éxecute ce programme (cryptage puis décryptage sur le même fichier texte) sur un fichier texte contenant la chaine "abcdefghijklmnopqrstuvxy" au départ ... mais PAS A l'ARRIVEE ...



Je ne comprends pas d'où ca vient , outre les probleme de "dépassement de capacité" lorsque je calcul les puissances (que je résout en mettant une boucle en remettant le résultat de t*t modulo n à chaque incrémentation) .

Pourriez vous m'aider ?



Merci d'avance

Bonne journée





via Forum FS Generation http://forums.futura-sciences.com/programmation-langages-algorithmique/610383-crypter-vbulletin.html

Aucun commentaire:

Enregistrer un commentaire