No, lo scambio di chiavi avviene tra il client e ciascun relay. Questa è la tecnica generale dietro il routing della cipolla. Per il moderno protocollo Tor, il client scambierà una chiave simmetrica (AES128) con tre relè usando ECDHE (non DHE), in particolare usando Curve25519. Un messaggio inviato dal client verrà crittografato tre volte con ciascuna chiave e ogni relay eliminerà un singolo livello di crittografia. Una volta che il messaggio raggiunge il relè di uscita, rimane solo un livello, il livello crittografato con la chiave conosciuta dall'uscita. L'uscita la decrittografa e la invia a modo suo.
Si noti inoltre che il diagramma non è corretto. Il protocollo SOCKS non è usato per connettersi al primo relay (la guardia), ma piuttosto per consentire a un programma locale sul tuo computer di connettersi al tuo client Tor (di solito su localhost). Il protocollo utilizzato per connettersi al primo relè è il protocollo Tor stesso.