Cosa fare con i byte extra in ECDHE-RSA-AES-GCM-SHA?

2

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?
posta ereOn 12.03.2014 - 09:38
fonte

1 risposta

3

Secondo RFC5246 , la specifica TLS 1.2, SHA384 viene utilizzata per firme e MAC, non per un KDF.

Inoltre, la sezione 1.2 del documento specifica che tutte le suite di crittografia TLS 1.2 utilizzano P_SHA256 come PRF per il calcolo delle chiavi, quindi utilizzano una funzione pseudocasuale basata su SHA256 definita in sezione 5 . Il PRF specifica un modo per generare esattamente quanti più dati necessari (modulo la dimensione del blocco SHA-256). I dati in eccesso all'interno del blocco finale vengono semplicemente scartati alla fine.

    
risposta data 13.03.2014 - 08:40
fonte

Leggi altre domande sui tag