Simmetrica gli algoritmi a chiave sono algoritmi per la crittografia che utilizza le stesse chiavi di crittografia per cifrare del testo in chiaro e la decodifica di un testo cifrato. I tasti possono essere identici o ci può essere una semplice trasformazione per andare tra i due tasti.Le chiavi, in pratica, rappresentano un segreto condiviso tra due o più parti che può essere utilizzato per mantenere un collegamento di informazioni private., Questo requisito che entrambe le parti hanno accesso alla chiave segreta è uno dei principali svantaggi di crittografia a chiave simmetrica, rispetto alla crittografia a chiave pubblica (noto anche come cifratura a chiave simmetrica)
crittografia a chiave Simmetrica possibile utilizzare uno stream ciphers o cifrari a blocchi
- Stream ciphers crittografare le cifre (in genere byte) o lettere (in sostituzione di codici) di un messaggio, uno alla volta. Un esempio è il codice Vigenère.
- I cifrari a blocchi prendono un numero di bit e li crittografano come una singola unità, riempiendo il testo in chiaro in modo che sia un multiplo della dimensione del blocco., L’algoritmo Advanced Encryption Standard (AES), approvato dal NIST nel dicembre 2001, utilizza blocchi a 128 bit.
Implementazioni
Primitive crittografiche basate su cifrari simmetrici
I cifrari simmetrici sono comunemente usati per ottenere altre primitive crittografiche oltre alla semplice crittografia.
La crittografia di un messaggio non garantisce che questo messaggio non venga modificato durante la crittografia. Quindi spesso un codice di autenticazione del messaggio viene aggiunto a un testo cifrato per garantire che le modifiche al testo cifrato vengano annotate dal destinatario., I codici di autenticazione dei messaggi possono essere costruiti da cifrari simmetrici (ad esempio CBC-MAC).
Tuttavia, i cifrari simmetrici non possono essere utilizzati per scopi di non ripudio se non coinvolgendo parti aggiuntive.Vedere la norma ISO / IEC 13888-2.
Un’altra applicazione è quella di costruire funzioni hash da cifrari a blocchi., Vedere one-way funzione di compressione per una descrizione dei diversi metodi
Costruzione di algoritmi simmetrici
Molti moderni cifrari a blocchi sono basati su una costruzione proposta da Horst Feistel. La costruzione di Feistel consente di costruire funzioni invertibili da altre funzioni che a loro volta non sono invertibili.,
Sicurezza dei cifrari simmetrici
I cifrari simmetrici sono stati storicamente suscettibili di attacchi con testo in chiaro noto, attacchi con testo in chiaro scelto, crittanalisi differenziale e crittanalisi lineare. Un’attenta costruzione delle funzioni per ogni round può ridurre notevolmente le possibilità di un attacco riuscito.
Gestione delle chiavi
Gestione delle chiavi si riferisce alla gestione delle chiavi crittografiche in un crittosistema. Ciò include la gestione della generazione, dello scambio, dello stoccaggio, dell’uso, della cripto-triturazione (distruzione) e della sostituzione delle chiavi., Include la progettazione di protocolli crittografici, i server chiave, le procedure utente e altri protocolli pertinenti.
La gestione delle chiavi riguarda le chiavi a livello di utente, tra utenti o sistemi. Ciò è in contrasto con la pianificazione delle chiavi, che in genere si riferisce alla gestione interna delle chiavi all’interno dell’operazione di un codice.
La corretta gestione delle chiavi è fondamentale per la sicurezza di un criptosistema., È il lato più impegnativo della crittografia in un certo senso che coinvolge aspetti dell’ingegneria sociale come la politica del sistema, la formazione degli utenti, le interazioni organizzative e dipartimentali e il coordinamento tra tutti questi elementi, in contrasto con le pratiche matematiche pure che possono essere automatizzate.,
definizione della Chiave
Gli algoritmi a chiave simmetrica richiedono sia il mittente e il destinatario di un messaggio per avere la stessa chiave segreta. Tutti i primi sistemi crittografici richiedevano a una di quelle persone di ricevere in qualche modo una copia di quella chiave segreta su un canale fisicamente sicuro.,
Quasi tutti i sistemi crittografici moderni utilizzano ancora internamente algoritmi a chiave simmetrica per crittografare la maggior parte dei messaggi, ma eliminano la necessità di un canale fisicamente sicuro utilizzando lo scambio di chiavi Diffie-Hellman o qualche altro protocollo a chiave pubblica per trovare un accordo sicuro su una nuova chiave segreta per ogni messaggio (forward secrecy).
Generazione di chiavi
Quando viene utilizzato con cifrari asimmetrici per il trasferimento di chiavi, generatori di chiavi pseudorandom sono quasi sempre utilizzati per generare le chiavi di sessione cifratura simmetrica., Tuttavia, la mancanza di casualità in quei generatori o nei loro vettori di inizializzazione è disastrosa e ha portato a interruzioni crittanalitiche in passato. Pertanto, è essenziale che un’implementazione di utilizzare una sorgente di alta entropia per la sua inizializzazione
Reciproca cipher
Un reciproco cipher è un algoritmo, dove, proprio come si entra il testo di riferimento nel sistema di crittografia per ottenere il testo cifrato, si potrebbe inserire il testo nel luogo stesso del sistema per ottenere il testo in chiaro. Un cifrario reciproco è anche a volte indicato come cifrario auto-reciproco.,
Praticamente tutte le macchine cifratrici meccaniche implementano un cifrario reciproco, un’involuzione matematica su ogni lettera digitata. Invece di progettare due tipi di macchine, una per la crittografia e una per la decrittografia, tutte le macchine possono essere identiche e possono essere impostate (con chiave) allo stesso modo.
Esempi di cifrari reciproci includono:
- Atbash
- Beaufort cipher
- Enigma machine
- Maria Antonietta e Axel von Fersen comunicavano con un cifrario auto-reciproco.
- il cifrario Porta polialfabetico è auto-reciproco.,
- Viola cipher
- RC4
- ROT13
- XOR cipher
- Vatsyayana cipher
Praticamente tutti i cifrari moderni possono essere classificati come un cifrario a flusso, la maggior parte dei quali utilizza un reciprocol XOR cipher combiner, o un blocco di cifratura, la maggior parte dei quali utilizza una rete di Feistel cifra o Lai–Massey schema con una reciproca trasformazione in ogni round