In che modo le cifre sono correlate agli algoritmi crittografici come DES o AES?

3

Sembra che abbia un problema terminologico qui. Nella crittografia, abbiamo cifrari di flusso e cifrari a blocchi. Capisco la loro differenza. Abbiamo anche algoritmi crittografici come AES (Rijndael).

Il mio punto di confusione è il modo in cui algoritmi e crittografi crittografici si connettono tra loro. Fondamentalmente sembra che stiano facendo cose simili (crittografia e decrittografia).

AES ecc. è un "caso speciale" di un codice a blocchi? Il codice a blocchi è una famiglia di algoritmi che uno di loro è AES?

    
posta py_script 04.11.2018 - 19:40
fonte

2 risposte

5

Una cifra è un algoritmo crittografico.

I codici di flusso generano il keystream mediante x-oring del testo in chiaro per crittografare. Sono molto veloci rispetto ai cifrari a blocchi. Un confronto tra benchmark può essere visto su sito web WolfSSL , confrontare AES-128 vs ChaCha.

I codici a blocchi funzionano su blocchi poiché Advanced Encryption Standard (AES) ha dimensioni di blocco a 128 bit.

AES è uno dei cifrari a blocchi come standard corrente da NIST (prima di AES, c'erano i Data Encryption Standard (DES) come lo standard precedente). Twofish, Speck e Simon (gli ultimi due di NSA), ecc. Sono altri membri di block cipher.

Esiste una relazione interessante tra cifrari a blocchi e cifrari a flusso. Questo è; puoi convertire qualsiasi cifra di blocco in codice di flusso utilizzando una modalità di crittografia a blocchi appropriata, come OFB e CTR. La modalità operativa AES in CTR è utilizzata nella modalità AES-GCM , ed è attualmente utilizzato in suite di crittografia standard in TLS 1.3;

  • {0x13,0x01} - TLS_AES_256_ GCM _SHA384
  • {0x13,0x02} - TLS_CHACHA20_POLY1305_SHA256
  • {0x13,0x03} - TLS_AES_128_ GCM _SHA256
  • {0x13,0x04} - TLS_AES_128_ CCM _8_SHA256
  • {0x13,0x05} - TLS_AES_128_ CCM _SHA256
risposta data 04.11.2018 - 20:15
fonte
5

Un algoritmo crittografico può essere una specifica descrizione matematica (l'algoritmo) relativa alla crittografia. Esistono tipi specifici di algoritmi come algoritmi di hash, cifrari a blocchi, cifrari a flusso, algoritmi di firma, generatori di numeri pseudo casuali ecc.

Gli algoritmi crittografici possono essere utilizzati per eseguire crittografia / decrittografia. In quel caso l'algoritmo sarebbe chiamato un cifrario. Questo potrebbe essere un codice di flusso, un codice a blocchi o un codice asimmetrico come RSA. Il cifrario a blocchi generalmente deve essere usato in una modalità operativa per essere sicuro, cioè per conformarsi alle proprietà che normalmente si associano a un cifrario completo. Le modalità operative comprendono la modalità CBC e la modalità GCM.

AES è un codice a blocchi e sì, è certamente nella famiglia dei codici a blocchi. È speciale nel senso che è stato standardizzato dal NIST come il principale codice da utilizzare negli Stati Uniti, con successo nel DES. Il suo nome originale è Rijndael dopo gli autori, Vincent Rijmen e Joan Daemen (anche se AES utilizza solo uno specifico sottoinsieme delle specifiche Rijndael).

Rijndael divenne l'Advanced Encryption Standard dopo aver vinto la competizione AES; se un altro cifrario avesse vinto, quel codice sarebbe diventato AES - e c'erano algoritmi come Serpent che sarebbero stati considerati più sicuri. Rijndael è tuttavia anche efficiente da implementare sia nell'hardware sia nel software - almeno rispetto agli altri algoritmi della competizione, in quel momento.

Si noti che i codici a blocchi non vengono solo usati per la crittografia / decrittografia. Come gli algoritmi di hash, sono spesso usati come primitivi per costruire altre funzioni. Per esempio, i codici a blocchi possono essere usati per costruire modalità di autenticazione. Esempi sono AES-CMAC, AES-GMAC e AES in Poly1305. Questo è un vantaggio che hanno cifrari overstream, che sono più limitati: i cifrari a blocchi sono permessi Pseudo casuali (con chiave) che hanno proprietà specifiche richieste da tali schemi.

    
risposta data 07.11.2018 - 03:47
fonte

Leggi altre domande sui tag