Mi prenderò una brutta piega spiegando questo senza un gergo tecnico.
Diciamo che vuoi inviare una brutta lettera a qualcuno, ma preferisci non consegnare la lettera di persona per paura che possano arrabbiarsi con te.
Puoi chiedere a un corriere di prendere la lettera da casa tua e consegnarla al destinatario, giusto? Funziona, ma ha il problema che il corriere conosce entrambe le identità, e un corriere malvagio potrebbe spiarti contro di te.
Potresti usare due corrieri e istruire il primo a passarlo al secondo e istruire il secondo a trasmetterlo al destinatario. Funziona quasi, perché ora sei l'unica persona che conosce entrambi i endpoint nella conversazione. Courier A
ti conosce e courier B
, mentre courier B
conosce courier A
e il destinatario;
You --- A --- B --- Recipient
E proprio per diminuire le possibilità di ottenere un circuito cattivo (quando tutti i corrieri sono malvagi e lavorano insieme), ToR usa 3 corrieri, quindi aggiungi un ' C
' a quel diagramma nella tua testa.
C'è un problema rimanente; come consegniamo le istruzioni a ciascun corriere senza rivelare la nostra identità? Se hai scritto 'passa a B' su un pezzo di carta, puoi assegnarlo a courier A
insieme alla tua brutta lettera, ma qualsiasi istruzione che invii insieme a A
può anche leggere e quindi conoscerà le identità di tutti sul circuito.
ToR risolve questo problema finale con crittografia ripetuta , crittografando il messaggio e le istruzioni ripetutamente, una volta per ogni corriere. In termini di analogia, questo è ciò che fai;
Se segui questo, vedrai che nessuno dei corrieri potrà mai avere conoscenza dell'intero circuito, e non c'è modo per il destinatario di scoprire che hai inviato la brutta lettera.