Puncte:1

Atacuri de sincronizare: algoritmi simetrici vs asimetrici

drapel us

Există o declarație căreia nu pot da o referință;

„Deoarece caracteristicile de sincronizare ale algoritmilor simetrici nu sunt la fel de dependente de cheie precum algoritmii asimetrici, ei sunt mai rezistenți împotriva atacurilor de sincronizare.”

Este adevarat?

kelalaka avatar
drapel in
Secret în canal deschis, ciudat!
NB_1907 avatar
drapel us
Nu pentru că secretul, hârtia nu este în engleză!
Puncte:5
drapel ng

„Deoarece caracteristicile de sincronizare ale algoritmilor simetrici nu sunt la fel de dependente de cheie precum algoritmii asimetrici, ei sunt mai rezistenți împotriva atacurilor de sincronizare.”

Acest lucru este în mare măsură, dar nu absolut adevărat.

Caracteristicile de sincronizare dependente de date (inclusiv de cheie) provin în principal din

  1. Execuție condiționată, așa cum se întâmplă în dacă acest bit al exponentului/multiplicatorului secret este setat, atunci…¦ comune în RSA și ECC. Rareori există așa ceva în algoritmii simetrici, iar când există potențialul de a avea o astfel de execuție condiționată (de exemplu, în AES, XOR cu un polinom fix când este setat un bit deplasat), există alternative ușoare fără.
  2. Înmulțirea, care pe multe procesoare necesită timp în funcție de argument. Rareori există așa ceva în algoritmii simetrici (excepție: IDEE), dar asta este esențial pentru RSA și ECC (cu excepția curbelor binare).
  3. Diviziune (folosită rar în cripto simetric, și la nivel de instrucțiuni și în cripto asimetric, pentru că este lent, mai ales când nu există suport hardware).
  4. Rotație dependentă de date; este rar (excepție: RC5, RC6).
  5. Căutări în tabele (de exemplu, tabele de substituție), datorită efectelor de cache. Acest lucru este comun în unii algoritmi simetrici, inclusiv DES și AES, și cea mai importantă excepție de la citat. Cu toate acestea, nu există o căutare în tabel în mulți alți algoritmi, inclusiv hash-uri (de exemplu SHA-256) și Chacha stream cipher. Iar dependențele de sincronizare dependente de cache sunt mici și, prin urmare, destul de greu de exploatat de la distanță (aceasta este o altă problemă când adversarii au un picior în CPU: pot face măsurători de sincronizare cu o mai bună acuratețe și pot șterge memoria cache; pot, de asemenea, sonda memoria cache, dar atunci ăsta nu mai este un pur atac de sincronizare).

Notă: citatul sugerează că doar variațiile de sincronizare dependente de cheie contează. Acest lucru nu este în întregime adevărat: orice dependență de timp de date non-publice ar putea fi, teoretic, un potențial vector de atac, deoarece poate scurge informații despre date.

b degnan avatar
drapel ca
Cred că ai reușit cu adevărat. Câteva trivia, pe care probabil le știți. Diviziunea este întotdeauna cu mai multe cicluri, cu excepția cazului în care aveți cazuri speciale. Când facem împărțirea în timp fix pentru Y/X, am o unitate hardware care face 1/X, care durează 4 cicluri, și apoi rezultatul 1/X * Y care durează și 4 cicluri. Practic, nu merită făcut, deoarece se folosește atât de mult siliciu, cu excepția cazului în care știi că vei face această operație des. Din acest motiv, bănuiesc că nu vom vedea niciodată o divizare într-un cifr în practică.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.