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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
| program TPvac;
type ligne=string[100];
tab=array [1..100] of integer;
PROCEDURE chiffrage(a,b,c,d,n:integer;t,r:tab);
var i:integer;
begin
i:=1 ;
while (i<=n) do
begin
r[i]:=((a*t[i]+b*t[i+1]) mod 26);
r[i+1]:=((c*t[i]+d*t[i+1]) mod 26);
i:=i+2
end;
end;
PROCEDURE dechiffrage(a,b,c,d,n:integer; t,r:tab);
var i,j,k:integer; boo:boolean ;
begin
i:=1; j:=1; boo:= true;
while (i<=n) do
begin
k:(a*d)-(b*c);
while (j<= 26) and ( boo =true) do
begin
If ((k*j) mod 26) =1 then boo := false
else j:= j+2;
end;
t[i]:= ((j*d)-(j*b)) ;
t[i+1]:=((j*a)-(j*c));
i:=1+2;
end;
PROCEDURE strtoint(n:integer,C:ligne;T:tab);
var i:integer;
begin
for i:=1 to n do
case C[i] of
'A': T[i]:=1;
'B': T[i]:=2;
'C': T[i]:=3;
'D': T[i]:=4;
'E': T[i]:=5;
'F': T[i]:=6;
'G': T[i]:=7;
'H': T[i]:=8;
'I': T[i]:=9;
'J': T[i]:=10;
'K': T[i]:=11;
'L': T[i]:=12;
'M': T[i]:=13;
'N': T[i]:=14;
'O': T[i]:=15;
'P': T[i]:=16;
'Q': T[i]:=17;
'R': T[i]:=18;
'S': T[i]:=19;
'T': T[i]:=20;
'U': T[i]:=21;
'V': T[i]:=22;
'W': T[i]:=23;
'X': T[i]:=24;
'Y': T[i]:=25;
else T[i]:=26;
end;
end;
PROCEDURE inttostr(n:integer,C:ligne;T:tab);
var i:integer;
begin
for i:=1 to n do
case T[i] of
1: C[i]:='A';
2: C[i]:='B'2;
3: C[i]:='C';
4: C[i]:='D';
5: C[i]:='E';
6: C[i]:='F';
7: C[i]:='G';
8: C[i]:='H';
9: C[i]:='I';
10: C[i]:='J';
11: C[i]:='K';
12: C[i]:='L';
13: C[i]:='M';
14: C[i]:='N';
15: C[i]:='O';
16: C[i]:='P';
17: C[i]:='Q';
18: C[i]:='R';
19: C[i]:='S';
20: C[i]:='T';
21: C[i]:='U';
22: C[i]:='V';
23: C[i]:='W';
24: C[i]:='X';
25: C[i]:='Y';
else C[i]:='Z';
end;
VAR M,MC,MD :ligne;
a,b,c,d,n:integer;
T1,T2:tab;
BEGIN
writeln('entrez le message a chiffrer svp');
readln(M);
n:=length(M);
writeln('veuillez entrez la cl de chiffrement se composant de 4 code');
readln(a,b,c,d);
strtoint(n,M,T1);
chiffrage(a,b,c,d,n,T1,T2);
inttostr(n,T2,MC);
writeln('le message cod est : ',MC);
strtoint(n,MC,T1);
dechiffrage(a,b,c,d,n,T1,T2);
inttostr(n,MD,T2);
writeln('le message dechifrer est normalement comme celui donner a l'entre : ',MD);
END. |
Partager