È credenza comune che i crittosistemi ibridi siano migliori di quelli asimmetrici. È sempre così?
Qual è il vantaggio dell'uso della crittografia asimmetrica e simmetrica per i blocchi di dati di piccole dimensioni (< 100 byte)?
È credenza comune che i crittosistemi ibridi siano migliori di quelli asimmetrici. È sempre così?
Qual è il vantaggio dell'uso della crittografia asimmetrica e simmetrica per i blocchi di dati di piccole dimensioni (< 100 byte)?
Se hai messaggi da inviare e usi un algoritmo di crittografia asimmetrico, e che l'algoritmo è in grado di elaborare ogni messaggio all'ingrosso perché i messaggi sono abbastanza piccoli, allora in effetti può progettare il protocollo senza ricorrere alla crittografia simmetrica extra.
Tuttavia potrebbe perdere un po 'di flessibilità e avere un costo non banale in termini di prestazioni. La flessibilità riguarda la possibilità di sostituire, in un'ulteriore versione del protocollo, l'algoritmo di crittografia asimmetrica (ad esempio RSA) con un altro algoritmo che può solo eseguire lo scambio di chiavi (ad esempio Diffie-Hellman); in quest'ultimo caso, è assolutamente necessario accoppiarlo con una crittografia simmetrica.
Per la prestazione , un punto critico è se si prevede che due parti si possano inviare reciprocamente più messaggi in un breve lasso di tempo. Con "pura RSA" e una chiave RSA a 4096 bit, ogni messaggio crittografato avrà bisogno di 512 byte. Con un sistema ibrido, i messaggi successivi possono riutilizzare una chiave di sessione già negoziata, e quindi necessitare solo di 120 byte circa (se i messaggi in testo sono lunghi circa 100 byte). Ovviamente c'è anche il problema del costo della CPU (la decodifica RSA-4096 non è esattamente gratuita), ma i problemi di larghezza di banda della rete sono spesso più importanti.
Prendi nota che se vengono inviati diversi messaggi e ognuno di essi viene crittografato separatamente, è responsabilità dell'utente includere nei messaggi qualcosa che permetta al destinatario di rilevare se alcuni messaggi sono stati rilasciati, duplicati o arrivati fuori -ordine. Potresti anche voler aggiungere alcune contromisure specifiche per rilevare alterazioni dei messaggi e messaggi completamente falsi.
Più in generale, con la crittografia RSA, la chiave pubblica è pubblica, quindi tutti può utilizzare la chiave per crittografare i messaggi. Se hai una nozione di "flusso di messaggi", avrai bisogno di un po 'più di crittografia per evitare l'inserimento esterno di messaggi aggiuntivi. Questo è collegato con le nozioni di autenticazione. Anche in questo caso, i sistemi che si basano sulla crittografia ibrida possono riutilizzare una procedura iniziale di handshake e quindi garantire che tutti i messaggi protetti (tramite crittografia simmetrica e MAC) con una determinata chiave di sessione provengano tutti dalla stessa fonte.
Per riassumere: dovresti utilizzare TLS o DTLS . Progettare il tuo protocollo è un percorso pieno di pericoli.
Se decidi di utilizzare la crittografia asimmetrica da sola, devi includere un po 'di casualità in ogni messaggio. Se non lo fai:
Supponiamo che un intercettatore catturi una comunicazione militare e sa che il messaggio sarà una delle due cose:
Sebbene non possa decrittografare il messaggio, conosce la chiave pubblica, quindi può provare a crittografare ogni possibile messaggio a turno e vedere se corrisponde al testo cifrato.
È a causa di sottigliezze come questa che la gente dice sempre "non tirare la tua cripta".
Leggi altre domande sui tag encryption public-key-infrastructure asymmetric