Se vuoi garantire la sicurezza delle tue comunicazioni, in particolare previ attacchi Man-in-the-Middle , hai bisogno di molto più della crittografia. La crittografia fornisce solo riservatezza , ma non impedisce modifiche (ad esempio, riproduzione di pacchetti, eliminazione di pacchetti, riordinamento di pacchetti, commutazione di bit ...). Sono inoltre necessari alcuni controlli di integrità e un modo per garantire che il client stia parlando con il server giusto. Assemblare protocolli crittografici è molto difficile (farlo funzionare non è difficile, ottenere sicurezza è difficile), quindi la cosa intelligente da fare è riutilizzare un protocollo già definito che fa il lavoro ed è stato ben studiato. Questo è chiamato SSL (aka "TLS" nelle sue versioni recenti). Sarà molto meglio di qualsiasi schema homegrown, e molto più semplice per te dal momento che esistono già le librerie che lo implementano. Il software che è più semplice da implementare è il software che è già stato implementato.
Per la tua domanda specifica, è possibile trasformare un deterministico PRNG crittograficamente sicuro in uno schema di crittografia utilizzando come chiave lo stato iniziale interno del PRNG: si genera il flusso pseudo-casuale dipendente dalla chiave, che quindi si XOR con i dati da crittografare; la decrittazione è identica. Questo è il modo in cui la maggior parte dei codici a flusso funziona. L'utilizzo è delicato: non devi MAI criptare due messaggi con la stessa chiave, perché quello sarebbe il famigerato > two-time pad . Quando SSL utilizza RC4 (un altro codice di flusso più noto), ogni connessione utilizza una nuova chiave.
Resta da vedere se ISAAC è crittograficamente sicuro. È vecchio e ha attirato alcune recensioni dei crittografi, il che è positivo; tuttavia, non faceva parte del progetto eSTREAM e non è mai stato inviato a eBASC (per il benchmarking su molti tipi di PC), quindi sembra un po '"abbandonato". Dato che la parte "seeding" (girando una chiave iniziale, come una piccola sequenza di bit, nello stato iniziale iniziale del PRNG) non è specificata, si può sostenere che ISAAC, come algoritmo crittografico, non è mai stato "completato", precludendo qualsiasi sforzo decente alla crittanalisi. Studiarlo a fini accademici va bene, ma devo raccomandare di non utilizzarlo per nessun utilizzo di produzione. E, comunque, dovresti davvero usare SSL.