Sunteți pe pagina 1din 4

Universitatea de Stat din Tiraspol Numele prenumele masterandului

Bacal Galina
Specialitatea ITI
Catedra Informatică și Tehnologii Informaționale Grupa C2I2
Data 08.10.2020
_______________________________________________________________________________________________________________________________________________________________________________________________________________________

STRUCTURI ALGEBRICE PE CALCULATOR


V-4 Acordat: 30 minute.

Sarcina 1. Criptarea și decriptarea mesajelor.


Fie dat alfabetul Al= {A, P, R, T}
Mulțimea Q={1, 2, 3, 4}. Pe mulțimea Q este definită operația „•” în felul următor
•| 1 2 3 4
--+------------
1| 2 3 1 4
2| 1 4 2 3
3| 3 2 4 1
4| 4 1 3 2
Cuplul (Q, •) este un quasigrup. Stabilim o corespondență arbitrară dintre alfabetul
Al și mulțimea Q, în felul următor:
A P R T
F:
1 2 3 4 (1)
Se cere de criptat mesajul M={P, A, T, R, A, T} folosind algoritmul Markovschi.
Cheia secreta (ascunsa) utilizată este a= 2.
Este necesar de finalizat criptarea și decriptarea mesajului folosind sistemul de
criptare cu cheie ascunsă Markovschi bazat pe quasigrup.
1.1. Determinați operația binară (\).Completați spațiile marcate cu ecuațiile respective
și rezultatele corespunzătoare.
Ecuația quasigrupului Operația divizare stânga Quasigrupul (Q, \)
a•x=b x=a\b
1•1=2 1=1∖2

1•3=1 3=1∖1
1•4=4 4=1∖4
operația binară:
2•2=4 2=2∖4 \| 1 2 3 4
2•3=2 3=2∖2 --+------------
2•4=3 4=2∖3 1| 3 1 4
3•1=3 1=3∖3 2| 3 4 2
3•2=2 2=3∖2 3| 2 1 3
3•3=4 3=3∖4 4| 4 3 ’

4•1=4

4•3=3 3=4∖3
4•4=2 4=4∖2
1.2. Pe baza corespondenței F din (1) stabiliți corespondența K între literele mesajului
care trebuie criptat și elementele mulțimii Q.
1
M: P A T R A T
2 1 4
K:
k1 k2 k3 k4 k5 k6
1.3. Efectuați iterațiile care țin de criptarea mesajului.
P. b1 = a \ k1 = 2 \ 2 = 3
A. b2 = \ = \ = ’
T. b3 = b2 \ k3 = \ = ’
R. b4 = b3 \ k4 = \ = ’
A. b5 = b4 \ k5 = 2 \ 1 = ’
T. b6 = b5 \ k6 = 1 \ 4 = 4
Astfel am obținut mesajul criptat:
b1 b2 b3 b4 b5 b6
B:
3 4
1.4. Efectuați iterațiile care țin de decriptarea mesajului.
R. u1 = a * b1 = 2 * 3 = ’
T. u2 = b1 * b2 = 3 * 4 = 1
A. u3 = * b3 = * 1 = ’
P. u4 = b3 * = 1 * = ’
A. u5 = b4 * b5 = * = ’
T. u6 = b5 * b6 = 1 * 4 = 4
Astfel am obținut mesajul decriptat:
u1 u2 u3 u4 u5 u6
U:
1 4
1.5. Restabiliți mesajul folosind corespondența F din (1):
u1 u2 u3 u4 u5 u6
U:
1 4
Md: A T

6. Scrieți mesajul decriptat Md= __________________________

Sarcina 2. Finalizați scrierea secvenței de program ce determină operația binară diviziune


de stânga (∖), în limbajul C++:
const int nn=100;//dimensiune maximală matrice
char Al[nn]=" ";//Alfabetul
int n=strlen(Al)-1; //numărul de simboluri în alfabet
int P[nn][nn];//operația binară punct (•)
int S[nn][nn]; //operația binara diviziune de stânga (∖)
int i, j;
for (i=1; i<=n; i++){//a
for (j=1; j<=n; j++){//x //b=P[i][j]
;
}
}

Sarcina 3. Se cere de rulat manual secvența de program cu următoarele condiții:


alfabetul

2
Al= {N, O, R, T}
Corespondența F dintre alfabetul Al și mulțimea Q, este stabilită în felul următor:
N O R T
F:
1 2 3 4
Cheia secretă de criptare
a=1
Quasigrupul (Q, ∖)
S= ∖ 1 2 3 4
1 4 3 1 2
2 3 4 2 1
3 1 2 4 3
4 2 1 3 4
Mesajul original de criptare: TORONTO
M O
T O R O N T
=
K= 4 2 3 2 1 4 2
m=7
secvența de criptare a mesajelor Finalizați pașii de realizare a secvenței de program
prin completarea spațiilor marcate cu rezultatele
realizării programului:
i=1; i=1
B[i]=S[a][K[i]]; B[1]= S[1][K[1]]=S[1][4]=2
for (i=2; i<=m; i++){ i=2, i ≤ m, 2 ≤ 7 ? Da
B[i]=S[B[i-1]][K[i]]; B[2]= S[ ][ ]=S[ ][ ]= ‘
} i=3, i ≤ m, 3 ≤ 7 ? Da
cout<<"B= {"; B[3]= S[B[3-1]][ ]=S[4][ ]= ‘
for (i=1; i<m; i++) i=4, i ≤ m, 4 ≤ 7 ? Da
cout<<B[i]<<", "; B[4]= S[ ][K[4]]=S[ ][2]= ‘
cout<<B[m]<<"}"; i=5, i ≤ m, 5 ≤ 7 ? Da
B[5]= S[ ][K[5]]=S[ ][1]= ‘
unde S este operația diviziune de
i=6, i ≤ m, 6 ≤ 7 ? Da
stânga „∖” definită pe mulțimea Q;
B[6]= S[ ][ ]=S[ ][ ]= ‘
B este rezultatul criptării, cu
i=7, i ≤ m, 7 ≤ 7 ? Da
elemente din mulțimea Q. B[7]= S[B[7-1]][ K[7]]=S[3][2]=2‘
i=8, i ≤ m, 8 ≤ 7 ? Nu

B={2, , , , , , 2}

3
Sarcina 4. Se cere de rulat manual secvența de program cu următoarele condiții.
Fie dată mulțimea Q={1, 2, 3, 4}. Pe mulțimea Q este definită operația „•” în felul următor
P= • 1 2 3 4
1 2 4 1 3
2 3 1 4 2
3 1 3 2 4
4 4 2 3 1
n=4
secvența care determină operația binară diviziune de dreapta (/) este
const int nn=100;//dimensiune maximală matrice
int D[nn][nn];//operatia (/)
for (i=1; i<=n; i++){//a
for (j=1; j<=n; j++){//y //b=P[j][i]
D[P[j][i]][i]=j; }
}
4.1. Finalizați pașii de realizare a secvenței de program prin completarea spațiilor
marcate cu rezultatele realizării programului:
i=1, i ≤ n, 1 ≤ 4 ? Da
j=1, j ≤ n, 1 ≤ 4 ? Da, D[P[1][1]][ ]= D[2][ ]= ’
j=2, j ≤ n, 2 ≤ 4 ? Da, D[ ][ ]= D[ ][ ]= ’
j=3, j ≤ n, 3 ≤ 4 ? Da, D[ ][1]= D[ ][1]= ’
j=4, j ≤ n, 4 ≤ 4 ? Da, D[P[4][1]][1]= D[4][1]=4
j=5, j ≤ n, 5 ≤ 4 ? Nu
i=2, i ≤ n, 2 ≤ 4 ? Da
j=1, j ≤ n, 1 ≤ 4 ? Da, D[P[1][2]][ ]= D[4][ ]= ’
j=2, j ≤ n, 2 ≤ 4 ? Da, D[ ][2]= D[ ][2]= ’
j=3, j ≤ n, 3 ≤ 4 ? Da, D[P[3][2]][2]= D[3][2]=3
j=4, j ≤ n, 4 ≤ 4 ? Da, D[ ][ ]= D[ ][ ]= ’
j=5, j ≤ n, 5 ≤ 4 ? Nu
i=3, i ≤ n, 3 ≤ 4 ? Da
j=1, j ≤ n, 1 ≤ 4 ? Da, D[ ][3]= D[ ][3]= ’
j=2, j ≤ n, 2 ≤ 4 ? Da, D[P[2][3]][ ]= D[4][ ]= ’
j=3, j ≤ n, 3 ≤ 4 ? Da, D[ ][ ]= D[ ][ ]= ’
j=4, j ≤ n, 4 ≤ 4 ? Da, D[P[4][3]][3]= D[3][3]=4
j=5, j ≤ n, 5 ≤ 4 ? Nu
i=4, i ≤ n, 3 ≤ 4 ? Da
j=1, j ≤ n, 1 ≤ 4 ? Da, D[ ][4]= D[ ][4]= ’
j=2, j ≤ n, 2 ≤ 4 ? Da, D[ ][ ]= D[ ][ ]= ’
j=3, j ≤ n, 3 ≤ 4 ? Da, D[ ][ ]= D[ ][ ]= ’
j=4, j ≤ n, 4 ≤ 4 ? Da, D[P[4][4]][4]= D[1][4]=4
j=5, j ≤ n, 5 ≤ 4 ? Nu
i=5, i ≤ n, 5 ≤ 4 ? Nu
4.2. Completați matricea operației diviziune de dreapta (/) bazându-vă pe rezultatele
punctului 4.1.
S= / 1 2 3 4
1 4
2
3 3 4
4 4

S-ar putea să vă placă și