ECDH y DIDs: El Túnel Matemático de la Identidad Soberana

En el artículo anterior, exploramos cómo las 12 palabras de tu frase semilla originan tus llaves. Pero, ¿qué pasa cuando queremos usar esas llaves para algo más que mover dinero? ¿Cómo podemos establecer una conversación secreta con alguien a quien no conocemos, sin que un servidor central (como WhatsApp o Google) guarde las llaves?

La respuesta reside en una danza matemática llamada ECDH (Elliptic Curve Diffie-Hellman), coordinada por una infraestructura de confianza llamada DIDs (Identidades Descentralizadas).


1. El Núcleo Matemático: Multiplicación Escalar

Para entender ECDH, primero debemos entender por qué las Curvas Elípticas son tan potentes. Trabajamos sobre el Problema del Logaritmo Discreto de Curva Elíptica (ECDLP).

La Función de un Solo Sentido

Dada una curva elíptica $E$ y un punto generador $G$, la operación fundamental es: $$Q = d \cdot G$$ Donde:

  • $d$ es un número entero (tu clave privada).
  • $G$ es un punto fijo en la curva (parámetro público).
  • $Q$ es el punto resultante en la curva (tu clave pública).

Es computacionalmente fácil calcular $Q$ a partir de $d$. Sin embargo, es virtualmente imposible encontrar $d$ si solo conoces $Q$ y $G$. Esta asimetría es el escudo de toda la Web3.

El Protocolo de Intercambio (DH)

Imagina que Alice y Bob quieren una clave compartida $S$.

  1. Alice elige su privada $a$ y calcula su pública $A = aG$.
  2. Bob elige su privada $b$ y calcula su pública $B = bG$.
  3. Se intercambian $A$ y $B$ (públicamente).
  4. Alice calcula: $S = a \cdot B = a(bG)$
  5. Bob calcula: $S = b \cdot A = b(aG)$

Debido a la propiedad conmutativa de la multiplicación escalar: $$abG = baG$$ Ambos llegan al mismo punto $S$, ¡pero nadie que haya interceptado $A$ y $B$ puede calcular $S$ sin conocer $a$ o $b$!


2. X25519: El Estándar de Oro

No todas las curvas son iguales. Mientras que Bitcoin usa secp256k1, para comunicación segura (como en DIDs y DIDComm) solemos usar Curve25519 a través de la función X25519.

¿Por qué es superior?

  • Resistencia: Está diseñada para evitar ataques de canal lateral (side-channel attacks).
  • Eficiencia: Implementa la Escalera de Montgomery, permitiendo cálculos ultra rápidos usando solo la coordenada X de los puntos.
  • Seguridad: No tiene parámetros sospechosos (a diferencia de algunas curvas de la NIST).

3. DIDs: Resolviendo el problema de la Identidad

El intercambio ECDH tiene una falla fatal: No hay autenticación. Si un atacante intercepta las claves y envía las suyas, puede realizar un ataque Man-in-the-Middle (MITM).

Aquí es donde entran los DIDs (Decentralized Identifiers). Un DID es una dirección persistente que apunta a un Documento DID.

El rol del keyAgreement

En un Documento DID, existe una propiedad específica llamada keyAgreement. Aquí es donde publicamos nuestra clave pública X25519:

{ "id": "did:example:123", "keyAgreement": [{ "id": "did:example:123#key-1", "type": "JsonWebKey2020", "publicKeyJwk": { "crv": "X25519", "x": "..." } }] }

Al usar DIDs, Alice no solo recibe una clave pública; recibe una llave que está vinculada criptográficamente a la identidad descentralizada de Bob. El DID actúa como la infraestructura de PKI (Public Key Infrastructure) sin necesidad de una entidad certificadora central.


4. El Cambio de Paradigma: De Transacciones a Relaciones

Esta tecnología cambia fundamentalmente cómo interactuamos con el software:

  1. Privacidad Total: Los mensajes no solo viajan cifrados; la clave se genera de forma efímera para cada sesión (Perfect Forward Secrecy). Si hackean tu dispositivo en el futuro, no podrán descifrar los mensajes pasados.
  2. Relaciones Peer-to-Peer: Ya no "te registrás" en el servidor de una empresa. Establecés un "túnel" directo entre tu DID y el de otra persona o servicio.
  3. Identidad Portátil: Tu Mnemonic (del post anterior) genera la entropía original. Si perdés tu celular, podés recuperar tu identidad y tus canales de comunicación directos sin pedir permiso a nadie.

Conclusión

ECDH es el túnel y los DIDs son el mapa. Juntos, nos permiten construir una web donde la privacidad no es una promesa de términos y condiciones, sino una garantía matemática.

Si en el post anterior vimos cómo ser dueños de nuestro dinero, hoy vemos cómo ser dueños de nuestras conversaciones y de nuestra identidad digital.

Para ver la implementación técnica en Python y los ataques MITM explicados con código, no dejes de revisar mi notebook científico: ECDH Protocol Explainer.

💬

Comentarios

Powered by Giscus · GitHub Discussions

🧠 Web3 & Blockchain