Propunere care vizează 1/2/3/4 din ultima secțiune a întrebării: criptare hibridă înlănțuită.
Vom folosi
- O schemă de criptare autentificată simetrică rapidă, cum ar fi AES-GCM sau ChaCha20-Poly1305 cu cheie secretă de 256 de biți, criptare cu cheie $K$ remarcat $C=E_K(M)$ și decriptare $M=D_K(C)$.
- O schemă de criptare asimetrică capabilă să cripteze mesaje pe 256 de biți, cu criptarea notă $C=\mathcal E_P(M)$ și decriptare $M=\mathcal D_S(C)$, Unde $(P,S)$ este o pereche de chei (publică, privată/secretă). RSAES-OAEP sau ECIES se va face.
Presupunem că Bob și Carol au generat perechi de chei $(P_B,S_B)$ și $(P_C,S_C)$, și chei publice transmise $P_B$ și $P_C$ lui Alice într-un mod care să asigure integritatea și dovada originii (poate, prin intermediul certificatelor digitale).
Pentru a cripta către Carol prin proxy a lui Bob, Alice
- trage două chei aleatoare de 256 de biți $K_B$ și $K_C$
- calculează $C_B=\mathcal E_{P_B}(K_B)$
- calculează $C_C=\mathcal E_{P_C}(K_C)$
- calculează $C_0=E_{K_B}(C_C)$
- calculează $C_1=E_{K_C}(M)$
- îi trimite lui Bob mesajul $C=C_B\mathbin\|C_0\mathbin\|C_1$.
Bob primește și depozitează $C$. Când Carol solicită mesajul criptat, Bob
- extracte $C_B$, $C_0$ și $C_1$ din $C$
- calculează $K_B=\mathcal D_{S_B}(C_B)$
- calculează $C_C=D_{K_B}(C_0)$
- formează și trimite lui Carol $C'=C_C\mathbin\|C_1$.
Carol primește $C'$ și
- extracte $C_C$ și $C_1$ din $C'$
- calculează $K_C=\mathcal D_{S_C}(C_C)$
- calculează $M=D_{K_C}(C_1)$
Ori de câte ori o decriptare eșuează, Bob sau Carol abandonează.
Observați că mesajul în bloc $M$ este criptat o singură dată, îndeplinind cerințele de performanță.
Putem înlocui schema de criptare asimetrică cu una simetrică, $(P_B,S_B)$ cu intrebarea $K_2$ și $(P_C,S_C)$ cu întrebările $K_3$ (și apoi, ca o parte, sistemul poate fi simplificat pentru a scăpa de el $K_B$). Dar, devenind simetric, pierdem beneficiul criptografiei asimetrice: că Alice nu trebuie să păstreze nimic secret și nu poate folosi un astfel de secret pentru a încerca să descifreze alte comunicări trimise lui Bob sau Carol.