Puncte:4

De ce sunt folosite în mare parte cifrurile bloc ca cifruri de flux?

drapel al

Folosirea unui cifru bloc cu utilizarea fie a modului CTR, fie GCM ne oferă un cifru de flux, singura diferență fiind că CTR nu include o etichetă MAC sau AAD, dar GCM o face. Cred că acestea sunt cele mai utilizate moduri de operare pentru cifrurile bloc, deoarece ECB este nesigur și CBC nu este paralelizabil.

Acest lucru nu reduce dimensiunea efectivă a blocului algoritmului la 1 bit, deoarece un bit este mapat la un alt bit, în funcție de biții keystream? Nu ar fi de preferat să păstrăm dimensiunea blocului unui cifr?

Puncte:7
drapel in

De ce sunt folosite în mare parte cifrurile bloc ca cifruri de flux?

Modul CTR nu are nevoie de umplutură, cum ar fi modul CBC, care a provocat multe atacuri de-a lungul anilor, cunoscut sub numele de atacul padding oracle [1] [2]. In cele din urma, CBC este eliminat din TLS, TLS 1.3 are doar cifruri în modul CTR (rfc 8446).

          +------------------------------+-------------+
          | Descriere | Valoare |
          +------------------------------+-------------+
          | TLS_AES_128_GCM_SHA256 | {0x13,0x01} |
          | | |
          | TLS_AES_256_GCM_SHA384 | {0x13,0x02} |
          | | |
          | TLS_CHACHA20_POLY1305_SHA256 | {0x13,0x03} |
          | | |
          | TLS_AES_128_CCM_SHA256 | {0x13,0x04} |
          | | |
          | TLS_AES_128_CCM_8_SHA256 | {0x13,0x05} |
          +------------------------------+-------------+

Atacurile și decizia TLS au crescut utilizarea modului CTR. Amintiți-vă că aproape toată securitatea pe internet se bazează pe TLS. Conform sondajului SSLlabs, %46.6 dintre site-uri acceptă TLS 1.3 ( Suport protocol )

Nici modul CTR, nici CBC, nici CFB (toate modurile de arhivare a operațiunilor) nu au un MAC prin design. Pentru a avea un Mac fie folosiți HMAC, fie folosiți GCM, CCM, Poly1305 etc.

Dacă vorbim despre mod teoretic, CBC și CTR pot furniza doar Ind-CPA. Dincolo de aceasta, este nevoie de integritate pentru Ind-CCAx. Pe de altă parte, criptarea autentificată (GCM, CCM, Poly1305) oferă o securitate mai mare decât Ind-CCAx,

Acest lucru nu reduce dimensiunea efectivă a blocului algoritmului la 1 bit, deoarece un bit este mapat la un alt bit, în funcție de biții fluxului cheie?

Ei bine, dacă utilizați CBC și aplicați o umplutură, atunci executați mai multe lucruri decât eliminarea biților inutile din bloc. În ambele cazuri, numărul de blocuri criptate este aproape același (cu excepția cazului în care blocul este plin, atunci pentru PKCS#7 este nevoie de un bloc suplimentar). Apoi, aplicarea căptușelii și a depășirii sunt funcții suplimentare de aplicat. Modul CTR trebuie să x-sau fluxul.

După cum s-a menționat în comentarii, modul CTR este extrem de paralelizabil, chiar și permite accesul aleatoriu sau pre-chaching-ul fluxului. Performanțele OpenSLL de mai jos pe mașina mea

viteză openssl -evp aes-128-cbc aes-128-ctr
tip 16 octeți 64 de octeți 256 de octeți 1024 de octeți 8192 octeți 16384 octeți
aes-128-cbc 818912,47k 1365115.22k 1404590,75k 1409671,85k 1410523.14k 1411497,98k
aes-128-ctr 561928,57k 1899517,87k 3908505.17k 5220669,78k 5835377.32k 5876869.80k

După cum putem vedea, cu excepția mesajelor foarte scurte CTR a batut CBC în AES-NI.

Nu ar fi de preferat să păstrăm dimensiunea blocului unui cifr?

Nu

  • Trebuie să ne ocupăm de căptușeală și problemele sale de nesiguranță, de ce să nu o eliminăm deloc când avem modul CTR.

  • De asemenea, crește dimensiunea datelor cu maximum 16 octeți pentru AES.

  • Modul CTR prin proiectare folosește PRF în loc de PRP (cifrele bloc sunt PRP), aceasta oferă o gamă mai largă de funcții de utilizat - la fel cum folosim ChaCha20. În modul CBC trebuie să folosim un PRP.


Desigur, nimic nu este perfect! Fiecare mod are avantajele și dezavantajele sale. În funcție de context, se poate prefera unul altuia. În sensul comun, în criptografia modernă, preferăm modurile de criptare autentificate precum AES-GCM (probabil cu SIV) și ChaCha20-Poly1305 (mai bine xChaCha20-1305 pentru nonces pe 192 de biți).

SEJPM avatar
drapel us
În plus, paralelizarea cifrurilor de flux (în special pentru cele bazate pe AES) este, de asemenea, utilă în procesarea cu un singur thread, deoarece procesoarele moderne _iubesc_ instrucțiuni independente. Acest lucru vă poate aduce cu ușurință o performanță AES de 4-8 ori mai bună de la un mod serial precum criptarea CBC la un mod paralel precum CTR. Un argument similar este valabil atunci când nu aveți instrucțiuni AES, ci în schimb aveți o implementare AES fragmentată.
kelalaka avatar
drapel in
Da, exact, din moment ce a fost inclus în OP că _CBC nu este paralelizabil_ (deși decriptarea nu este cazul), nu am scris despre asta. AFAIK, paranteza pe care o folosești se datorează faptului că dimensiunea blocului ChaCha20, nu?

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.