Vorrei implementare una sorta di crittografia semplice (eppure più strong possibile) per il mio traffico di rete delle applicazioni client-server. I dati da crittografare possono essere sia testuali che binari.
Ora sto pensando di utilizzare solo una semplice crittografia XOR, ma con le seguenti funzionalità:
- La chiave sarà casuale (cioè una sequenza casuale di byte distribuita uniformemente) per ogni sessione.
- La modalità CBC con IV casuale verrà utilizzata per ogni sessione. Cioè, il testo in chiaro sarà XORed con testo cifrato precedente (o nel caso del primo "blocco" - IV), e il risultato sarà quindi XORed con (ripetendo sequenze di) la chiave di crittografia. In questo modo gli attacchi menzionati in Cosa non va con la crittografia XOR non sarà possibile, giusto?
Quindi la mia domanda è: quanto è strong tale crittografia? Molti punti menzionati nella Cosa c'è di sbagliato nella crittografia XOR le risposte alle domande non saranno valide Penso che , dato che l'IV casuale assicurerà che i pattern in testo in chiaro (es. spazi, byte NULL, ecc.) non saranno osservabili, e il testo cifrato sembrerà "più casuale".
Quali sono i punti deboli di tale crittografia? Grazie!
P.S .: So che per la massima sicurezza, implementando TLS con ad es. OpenSSL sarebbe la strada da percorrere, ma in realtà non ho bisogno di quel livello di sicurezza "teoricamente indistruttibile", usando certificati e grandi librerie come OpenSSL è semplicemente eccessivo per il mio progetto. Ho solo bisogno di una difesa più semplice contro qualcuno che scarica il mio traffico.