8 este lungimea etichetei (în octeți).
CCM este o familie de algoritmi AEAD (criptare autentificată cu date asociate) care este parametrizată prin:
- un algoritm de cifrare în bloc (de exemplu, AES-128, AES-192, AES-256, Camellia-128, â¦) cu o dimensiune a blocului de 128 de biți;
- o funcție de generare a contorului;
- o funcție de formatare pentru primul bloc;
- o lungime de etichetă.
CCM este definit de NIST SP 800-30C.
În practică, toată lumea folosește generarea contorului și funcția de formatare
specificat în NIST SP 800-30C anexa A. Specificarea funcției de formatare este de fapt o familie de funcții cu un singur parametru: lungimea câmpului AEAD. Deci âAES-CCMâ lasă trei parametri ambigui: lungimea tastei AES, lungimea q a câmpului AEAD și a lungimii t a etichetei.
Valoarea a q nu are impact direct asupra securității. Limitează dimensiunea AEAD care poate fi transmisă și limitează dimensiunea nonce. Valoarea a t are un impact asupra securității: o etichetă prea scurtă poate fi forțată. Lungimea etichetei poate fi de până la 4 octeți, ceea ce este ușor de folosit cu forța brută. Astfel de etichete scurte sunt utilizate în protocoalele de comunicare în care forțarea brută a etichetei ar fi un atac activ și probabilitatea ca un atac activ să reușească este considerată acceptabil de scăzută.
Parametrii q și t sunt codificate în primul bloc de date, astfel încât o implementare a verificării-decriptării CCM pentru un anumit cifr de bloc poate decripta și verifica fără ambiguitate intrarea indiferent de valorile respective. Unele protocoale restricţionează q și t la valori specifice. Pentru lungimea etichetei t, acesta este un parametru de securitate. Pentru q, acest lucru poate permite implementărilor să fie puțin mai simple și face interoperabilitatea mai ușoară (risc mai mic de diferențe de suport, limită de dimensiune AEAD consecventă, sarcină mai mică pentru testarea interoperabilității...).
Rețineți că q și t sunt intrări pentru calculul etichetei. Prin urmare, valoarea etichetei depinde de acești parametri. În special, pentru un mesaj dat, n-byte eticheta CCM nu este trunchierea etichetei de 16 octeți la n octeți. (Acest lucru este diferit pentru GCM, unde GCM cu o etichetă mai scurtă este doar GCM cu eticheta de lungime completă trunchiată.)
Dacă nu este specificată în mod explicit, lungimea etichetei este de obicei maxima posibilă, care este un bloc (128 biți = 16 octeți). Acesta poate fi scris și âAES-CCM-16â (sau variante tipografice). âAES-CCM-8â înseamnă AES-CCM cu o etichetă de 64 de biți = 8 octeți și așa mai departe.
De exemplu, în TLS 1.2, suitele de criptare CCM sunt definite de RFC 6655 (și alte RFC pentru Camellia și ARIA), cu referire la RFC 5116 §5.3 și §5.4. RFC 6655 §3 specifică un nonce de 12 octeți, ceea ce este echivalent cu a spune asta q = 3. xxx_CCM
suitele de cifrare folosesc o etichetă de lungime maximă (t = 16), în timp ce xxx_CCM_8
suitele de cifrare folosesc o etichetă de jumătate de lungime (t = 8).
O etichetă de 8 octeți (64 de biți) ar fi incomod de mică în situațiile în care atacatorul poate forța toate etichetele posibile. Cu toate acestea, atunci când eticheta este utilizată pentru comunicarea TLS, dacă atacatorul face o presupunere greșită pentru etichetă, receptorul va închide imediat conexiunea, astfel încât fiecare presupunere necesită o nouă conexiune. Acest lucru face ca forța brută să fie foarte scumpă. Cu DTLS, receptorul va accepta un număr de pachete corupte, astfel încât atacatorul poate face mai multe presupuneri per conexiune, dar un atac este încă un atac activ asupra unei conexiuni aflate în desfășurare și deseori este imposibil ca atacatorul să încerce o cantitate deloc neglijabilă de ghicește fără a satura lățimea de bandă a receptorului sau a declanșa o apărare împotriva inundațiilor.