L'uso delle chiavi o l'utilizzo di un algoritmo segreto è lo stesso . Permettetemi di ripetere che: l'uso di chiavi in algoritmi di cifratura noti o l'utilizzo di uno speciale algoritmo intelligente della vostra invenzione è lo stesso: in entrambi i casi, c'è un segreto condiviso che può essere misurato in bit di informazioni non elaborate.
Tutti i metodi di cifratura si basano su "oscurità" , che è fondamentalmente la protezione del segreto condiviso . Fondamentalmente, si tratta di mantenere segreto il segreto condiviso . La segretezza della tua chiave è correlata alla casualità di essa (la sua entropia). Meno casuale sarà, più potrei indovinare parte del tuo segreto. Poiché queste parti indovinate non sono più segrete, potremmo dire che il shared-secret è un bit di informazioni non elaborate.
E hai perfettamente ragione nel senso che puoi escogitare un modo che è indissolubile se hai un pre-shared secret abbastanza lungo
Tuttavia, non è necessario essere troppo complicati per l'algoritmo: se si utilizza la crittografia con chiave standard e la chiave è abbastanza lunga (più lunga del messaggio, ad esempio), è abbastanza facile capire che la protezione è perfetta .
Come promemoria: una semplice cifratura XOR con una chiave veramente casuale più lunga del messaggio è indistruttibile. Ma non dimenticare quanto segue: hai bisogno di un segreto abbastanza lungo precondiviso (e uno nuovo per ogni comunicazione).
Quindi dov'è il problema? Perché non lo facciamo? Perché il tuo segreto condiviso si consuma ogni volta che lo usi . E alla fine finirai per esaurirlo. L'uso della tua chiave ne dà una parte sottile: ad esempio, guardare ciò che produce il tuo algoritmo fornisce alcuni suggerimenti sottili. Più vediamo uscire dal tuo algoritmo, più modelli saranno notati.
Quindi, nella maggior parte dei casi pratici, ci piace iniziare dal punto in cui Alice e Bob non condividono inizialmente , o almeno questo segreto non è abbastanza lungo per coprire la loro comunicazione. Ricorda che nel tuo caso il segreto è l'algoritmo e nel caso standard è spesso una chiave e chiamiamo questo segreto condiviso .
Quindi, nel caso crittografico standard, le preoccupazioni vengono spostate verso la creazione (più) segreta condivisa . Quindi, la maggior parte degli sforzi vengono poi spesi per trovare il modo di creare un tasto che poi porterà al punto in cui Bob e Alice sono protetti dalla teoria e da una cifratura infrangibile standard: avere un segreto abbastanza lungo .
La maggior parte della comunicazione crittografica odierna funzionerà in questo modo: creare una chiave condivisa al volo (spesso a intervalli regolari in comunicazioni continue), quindi utilizzare qualsiasi banale ma perfetta algoritmo di cifratura (come per esempio XOR) con questa chiave. Diffie Hellman è uno di questi algoritmi. Di solito, la prima parte è la più complicata e può richiedere molta potenza del computer, e la seconda è banale.
Quindi la parte difficile è avere (o generare) abbastanza segreto condiviso per crittografare i tuoi dati.