Înțeleg că există deja câteva întrebări similare aici, dar a mea este puțin diferită prin faptul că vreau să împart AES 256 de biți în două chei de 128 de biți și apoi să folosesc o cheie AES diferită de 128 de biți pentru a cripta cele două chei de 128 de biți pentru transportul cheia dintre două procesoare. este sigur de făcut?
Oferă doar securitate pe 128 de biți, deoarece un atacator trebuie doar să spargă cheia de transport pe 128 de biți. Ceea ce este sigur, dar nu obțineți nicio securitate din utilizarea unei chei pe 256 de biți.
Dacă utilizați două chei separate de 128 de biți, devine de fapt puțin complicat. Dacă atacatorul are vreo modalitate de a verifica în mod independent că a decriptat corect fiecare jumătate a cheii de 256 de biți – de exemplu, dacă algoritmul de criptare a cheii este autentificat – atunci poate decripta prin
- Găsirea primei chei pe 128 de biți prin forță brută ($2^{128}$ pași);
- Găsirea celei de-a doua chei pe 128 de biți prin forță brută ($2^{128}$ pași);
care este $2^{128} + 2^{128} = 2 \time 2^{128} = 2^{129}$ pași și astfel obțineți doar securitate pe 129 de biți.
Cu toate acestea, dacă algoritmul de criptare a cheii nu oferă nicio modalitate de a verifica decriptările corecte, iar cheia de 256 de biți este aleatorie, acel atac nu funcționează, deoarece nu există nicio modalitate de a verifica la pasul #1 dacă aveți cheia corectă pentru prima jumătate. Algoritmul de forță brută devine apoi:
- Pentru fiecare valoare posibilă (din $2^{128})$ din prima cheie:
- Pentru fiecare valoare posibilă (din $2^{128}$) din a doua cheie:
- Încercați să decriptați fiecare jumătate de cheie transportată cu acea combinație și apoi să decriptați mesajul cu cheia de 256 de biți pe care o primiți.
Și asta este $2^{128} \time 2^{128} = 2^{128 + 128} = 2^{256}$ pași și nu mai bine decât să ataci cheia pe 256 de biți prin forță brută.
Algoritmii de criptare recomandați în mod normal în zilele noastre se numesc „AEAD-uri” (criptare autentificată cu date asociate), care ar intra în prima categorie și astfel veți obține o putere de doar 129 de biți. Ar trebui să utilizați algoritmi mai vechi, non-AEAD pentru a transporta jumătățile cheie.