Aceasta este dintr-o lucrare de examen trecută. Întrebarea este următoarea:
Un designer de protocol folosește semnătura pentru a simplifica și, sperăm, pentru a corecta, NSPK:
- $A â B$ : $semn(sk_A, criptare(pk_B, N_A))$
- $B â A$ : $semn(sk_B, criptare(pk_A,(N_A, k)))$
Unde $N_A$ este un nonce proaspăt aleatoriu creat de $A$, $k$ este o cheie de sesiune nouă creată de $B$, iar operațiunile de semnare și criptare folosesc criptosistemul cu cheie publică pentru a semna și respectiv
criptați sub cheile respective. Ar trebui să presupui că $A$ și $B$ cunoașteți-vă...
chei publice $pk_A$ și $pk_B$.
Funcționează (i) în cazul în care semnătura și criptarea nu îndeplinesc proprietăți algebrice
altele decât cele implicate de definițiile lor și (ii) dacă semnătura și criptarea fac naveta
(adică $semn(k_1, criptați(k_2, x))$ = $criptare(k_2,(semn(k_1, x)))$?
În fiecare caz fie argumentați convingător că protocolul revizuit funcționează, fie analizați exact
ce atinge atacul tău asupra ei.
Nu pot veni cu un atac de tip om în mijloc sau cu un atac de reflexie pentru acest protocol - și nu văd cu adevărat cum sunt relevante proprietățile algebrice ale acestor funcții? Cum rezolv această întrebare?