-
Notifications
You must be signed in to change notification settings - Fork 0
/
RSA_dechiffrement.m
61 lines (55 loc) · 1.65 KB
/
RSA_dechiffrement.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function RSA_dechiffrement
%%% Fonction permettant le dechiffrement d'un fichier avec RSA
% Lecture du texte (voir fonction ci-dessous) et conversion pour pouvoir utilisable sous Matlab
texte_clair = lecture_texte_entre;
[n,d] = lecture_cle;
disp('Dechiffrement en cours...');
for i = 1:size(texte_clair,1)
C = GMPintModPower(texte_clair(i,:),d,n);
texte_dechiffre(1,i) = char(bin2dec(num2str(char(C))));
end
%Enregistrer la message dechiffre
fid = fopen('./RSAdechiff.txt','w');
fwrite(fid,texte_dechiffre);
fclose(fid);
disp('Message dechiffre:');
disp(texte_dechiffre);
disp('Enregistre dans RSAdechiff.txt');
return
%%%%% Fonction de lecture du texte %%%%%%%%%%%%%%%
function [ texte ] = lecture_texte_entre
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
string = input('Entrez le nom de fichier a dechiffrer\n', 's');
if exist(string)~=2
error('Le fichier demande est introuvable');
end
fid = fopen(string);
texte_chiffre = fread(fid);
fclose(fid);
for i=1:8:size(texte_chiffre,1)
message = texte_chiffre(i:i+7);
texte((i+7)/8,:) = hex2dec(char(message'));
end
return,
%%%%% Fonction de lecture de la cle %%%%%%%%%%%%%%%
function [ n,d ] = lecture_cle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
string = input('Entrez le nom de fichier contenant la cle privee\n', 's');
if exist(string)~=2
error('Le fichier demande est introuvable');
end
fid = fopen(string);
cle = fread(fid);
fclose(fid);
for i = 1:size(cle,1)
if cle(i,1) == 32
n = cle (1:i-1,1);
d = cle (i+1:end,1);
break
end
end
n = bin2dec(num2str(n'-48));
d = bin2dec(num2str(d'-48));
n = GMPint(num2str(n));
d = GMPint(num2str(d));
return,