Puncte:2

Care este diferența dintre modul AES-CCM8 și modul AES-CCM?

drapel id

Știu AES-GCM și AES-CCM, dar care este diferența dintre modul AES-CCM8 și modul AES-CCM? Este lungimea cifrului?

Puncte:3
drapel cn

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.

dawklrw avatar
drapel id
deci aes-ccm este mai sigur decât aes-ccm8?
Achim Kraus avatar
drapel ph
Există o diferență între trecerea validării etichetei și injectarea datelor în mesajul criptat, ceea ce duce apoi la o valoare decriptată „intenționată”. Trecerea numai a MAC-ului poate fi considerată a fi mai ușoară. Dar asta are ca rezultat o „încărcare utilă aleatorie” a mesajului decriptat. Dacă acest lucru doare, sau este apoi detectat de următorul strat de protocol, nu este în general clar. Ideea pare să fie mai mult, că economiile generale ale unei etichete de 8 octeți în comparație cu o etichetă de 16 octeți ar putea să nu merite riscul mai mare.
Achim Kraus avatar
drapel ph
„În special, pentru un mesaj dat, eticheta CCM de n octeți nu este trunchierea etichetei de 16 octeți la n octeți.” apoi există implementări rupte, exact ceea ce se face din experiența mea, ccm8 doar trunchiază ccm16.
Gilles 'SO- stop being evil' avatar
drapel cn
@AchimKraus [RFC 6655](https://datatracker.ietf.org/doc/html/rfc6655#section-6.1) afirmă „Textul cifrat AEAD_AES_128_CCM_8 constă din (…) ieșirea etichetei de autentificare cu 8 octeți Operațiunea de criptare CCMâ â rețineți că _nu_ spune că aceasta este trunchierea etichetei la 16 octeți. RFC 6655 se referă la [RFC 5116](https://datatracker.ietf.org/doc/html/rfc5116#section-5.3) care afirmă: „Funcția de formatare și generare a contorului sunt așa cum sunt specificate în apendicele A din [SP 800 -38C]â.
Gilles 'SO- stop being evil' avatar
drapel cn
În OpenSSL, [CCM-8 transmite `taglen=8` la `EVP_CTRL_AEAD_SET_TAG](https://github.com/openssl/openssl/blob/openssl-3.0/ssl/t1_enc.c#L410), [`aes_ccm_ctrl` magazin 8 în `cctx->M`](https://github.com/openssl/openssl/blob/openssl-3.0/crypto/evp/e_aes.c#L3350), [`aes_ccm_init_key` îl trece la `CRYPTO_ccm128_init`] (https://github.com/openssl/openssl/blob/openssl-3.0/crypto/evp/e_aes.c#L3395) care [codifică `M=8` în blocul inițial](https://github.com /openssl/openssl/blob/openssl-3.0/crypto/modes/ccm128.c#L31). O implementare care este incompatibilă cu OpenSSL ar ieși în evidență ca fiind întreruptă.
Achim Kraus avatar
drapel ph
Da, ai dreptate! Mă înșel, mi-am amintit doar partea care copia eticheta. Dar și chestiile inițiale sunt diferite.
Puncte:1
drapel ru

După cum este definit în secțiunea 6.1 din RFC6655, AES-CCM8 diferă prin faptul că dimensiunea etichetei de autentificare este de 8 octeți (adică 64 de biți) și nu de 16 octeți (adică 128 de biți) pentru AES-CCM. NIST Specificația CCM în SP800-38C secțiunea 6.1 permite o serie de lungimi posibile de etichetă de autentificare. Etichetele mai scurte pot fi considerate cele mai semnificative biți ale etichetelor mai lungi. Nu există nicio diferență în încărcăturile utile criptate.

Gilles 'SO- stop being evil' avatar
drapel cn
Pentru CCM, etichetele mai scurte nu sunt trunchieri ale etichetei cu lungime completă: lungimea etichetei este o intrare în calculul etichetei.

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.