openssl EVP_aes_256_gcm - cosa c'è dentro?

0

Ho letto sulla crittografia e l'autenticazione. Ho percorso il percorso dall'autenticazione fatta in casa all'approccio encrypt-then-mac e infine alla modalità GCM.

Sono curioso di sapere cosa risiedeva all'interno di aes_256_gcm. Cosa è ovvio dal nome: AES algo e lunghezza della chiave a 256 bit. IV len Potrei capire da EVP_CIPHER_iv_length () call = 12 (Posso cambiarlo con ctrl) Dimensione del blocco che ho potuto capire da EVP_CIPHER_block_size () = 1

Ma che dire di "modalità operativa", CBC, OFB, CFB, altro? In quale modalità viene eseguito GCM? Posso selezionare la modalità?

    
posta boo9 12.04.2013 - 15:16
fonte

2 risposte

3

La pagina di Wikipedia ha alcune spiegazioni e un bel schema; e lo standard GCM è abbastanza chiaro. Per semplificare le cose, la crittografia effettiva viene eseguita in modalità CTR, ma la parte MAC utilizza operazioni aggiuntive (moltiplicazioni in un campo finito di caratteristica 2 e una crittografia di blocco aggiuntiva). Se crittografate 16n byte, userete n + 1 chiamate di crittografia a blocchi AES, n + 2 moltiplicazioni in GF (2 < sup> 128 ) e alcuni XOR. Non è richiesto per capire come GCM lavora internamente per utilizzare un'implementazione di GCM; ma aiuta.

In particolare, IV può avere una lunghezza qualsiasi, ma i valori IV oltre 96 bit non sono davvero interessanti per la sicurezza, motivo per cui OpenSSL si limita a 12 byte. La "dimensione del blocco" pubblicizzata da OpenSSL è 1 perché, grazie all'uso interno del CTR, la dimensione del messaggio crittografato non sarà "arrotondata" a causa di alcuni padding (tuttavia, per il MAC è previsto un overhead di dimensioni fisse.

    
risposta data 12.04.2013 - 15:50
fonte
2

La modalità Galois / Counter è una modalità di funzionamento a sé stante . Da quel documento, GCM prende una primitiva (ad esempio AES) e aggiunge le due funzioni galois:

The two functions that comprise GCM are called authenticated encryption and authenticated decryption. The authenticated encryption function encrypts the confidential data and computes an authentication tag on both the confidential data and any additional, non-confidential data. The authenticated decryption function decrypts the confidential data, contingent on the verification of the tag.

Queste funzioni sono definite più avanti nel documento. In particolare, la funzione GCTR sembra molto simile alla modalità Counter standard, su cui è basata e prende il nome. In questa modalità, aggiunge crittografia e decifratura autenticate in modo corretto.

Questo riduce la necessità di eseguire encrypt-then-mac da soli, dato che i dati che falliscono l'autenticazione non possono essere decifrati.

    
risposta data 12.04.2013 - 15:33
fonte

Leggi altre domande sui tag