Aceasta este o întrebare reală (și, deoarece nu sunt un expert în criptografie, am doar câteva cunoștințe de bază în ceea ce privește doar utilizarea acesteia, nu o înțelegere profundă a modului în care funcționează sub capotă.): Un sistem de colectare a datelor de la mulți dispozitivele terminale încorporate utilizează AES128 GCM/GMAC pentru a proteja mesajele în termeni de confidențialitate și autenticitate: fiecare mesaj $M$ este criptat $C = E(K, M)$ și protejat cu o etichetă $T=T(K, M)$ folosind taste simetrice: $(C, T)$ este trimis la receptor.
Într-o versiune avansată a sistemului, în plus față de această protecție, o semnătură digitală $S=S(M)$ bazat pe ECDSA (folosind material cheie ECC NIST) este folosit: primul semn $M$, apoi criptați:
Rezultatul semnării este tuplu $(S, M)$
atunci ${ E(K,(S,M)), T(K, (S,M))}$ este trimis către receptor care are cheia publică ECC.
Î1: Care este beneficiul suplimentar pe care îl obținem în urma utilizării acestei semnări suplimentare?
Dacă GCM/GMAC este utilizat în mod corect (de exemplu, folosind vectori de inițializare o singură dată) și cheia simetrică nu este compromisă, atunci GCM/GMAC este o protecție bună. Care sunt scenariile în care utilizarea suplimentară a semnăturii ajută la o îmbunătățire în ceea ce privește securitatea?
Î2: Pe lângă semnarea mesajelor, ECDH este folosit pentru a conveni noi chei simetrice din când în când. În versiunea „veche”, acest lucru a fost realizat prin intermediul algoritmului (standardizat) de înfășurare a cheii, care depinde de un KEK simetric. Din nou, întreb: Care este beneficiul real al utilizării ECDH în loc de Key Wrap?
Cunosc, desigur, principiile criptografiei cu cheie publică, dar nu pot estima cu adevărat valoarea suplimentară pe care o câștigăm în comparație cu utilizarea doar a variantei simetrice care justifică efortul de a implementa versiunea avansată.