¿Cómo se cifran y descifran los datos en el enrutamiento de cebolla?

Onion Routing funciona de la siguiente manera:
Una aplicación, en lugar de hacer una conexión (socket) directamente a una máquina de destino, realiza una conexión de socket a un Proxy de enrutamiento de cebolla. Ese proxy de enrutamiento de cebolla crea una conexión anónima a través de varios otros enrutadores de cebolla al destino. Cada enrutador de cebolla solo puede identificar enrutadores de cebolla adyacentes a lo largo de la ruta.

Antes de enviar datos a través de una conexión anónima, el primer Onion Router agrega una capa de cifrado para cada Onion Router en la ruta. A medida que los datos se mueven a través de la conexión anónima, cada Onion Router elimina una capa de cifrado, por lo que finalmente llega como texto sin formato. Esta estratificación ocurre en el orden inverso para que los datos vuelvan al iniciador. Los datos pasados ​​a lo largo de la conexión anónima parecen diferentes en cada Onion Router, por lo que los datos no pueden rastrearse en el camino y los Onion Routers comprometidos no pueden cooperar.

Cuando se interrumpe la conexión, toda la información sobre la conexión se borra en cada Onion Router.

Cortesía: Resumen Ejecutivo

Las imágenes que se muestran arriba deben descomplicar el método de cifrado de cebolla. Además, puede ver este video de YouTube por el mismo

¡Espero que esto ayude!

En el enrutamiento de cebolla, los datos que transferimos pasan por 3 saltos. La dirección IP real de nuestra máquina es conocida por el primer y el último nodo.
Puede entenderlo como si los datos estuvieran envueltos en 3 capas, en cada salto se elimina una capa de cifrado.