Sto cercando di implementare, come esercizio, un protocollo basato sulla suite di cifratura ECDHE-RSA-AES256-GCM-SHA384
.
Come ho capito, ECDHE
è usato per lo scambio di chiavi, RSA
per l'autenticità della chiave pubblica ECDHE, AES (in GCM) per la cifratura, e SHA per ottenere una chiave casuale da usare con AES dalla chiave segreta derivata da ECDHE.
Ora la cosa che non capisco è che AES256 richiede una chiave da 256 bit, ma SHA384 produce un digest 384. Quindi ho due domande:
- Perché non usare semplicemente SHA256 qui per produrre un digest le cui dimensioni corrispondono alle dimensioni previste per la chiave dell'algoritmo di cifratura? (Ha qualcosa a che fare con il fatto che sia AES256 che SHA384 funzionano più velocemente su architetture a 64 bit?)
- Quale operazione si dovrebbe eseguire per utilizzare il digest a 384 bit come chiave AES256? Tieni solo i primi 256 bit? O mi sto perdendo qualcosa?