Por qué la fuente de entropía es clave en la generación de claves privadas

Author logo
Patrick Dike-Ndulue
Post image

¿Sabías que una clave privada de Bitcoin es un número de 256 bits? Eso significa que existen unas 2^256 combinaciones posibles—una cifra tan inmensa que supera el número total de átomos en el universo observable.
Las claves privadas son el pilar de la seguridad en las criptomonedas, funcionando como la contraseña maestra criptográfica para tus activos digitales. Su seguridad depende en gran medida de la aleatoriedad o entropía, que es fundamental en su generación. La entropía se mide en bits y cuantifica el grado de aleatoriedad o incertidumbre de un sistema.

Para entender la importancia de la aleatoriedad, considera esto: una mala entropía al generar claves privadas ha provocado vulnerabilidades graves e incluso hackeos. En 2024, se perdieron más de US$ 239 millones debido a claves privadas comprometidas, lo que subraya la importancia de asegurar que estas claves se generen con entropía de alta calidad.

Entonces, si una clave privada de Bitcoin es solo un número, ¿cuánto tiempo le tomaría a una supercomputadora descifrarla por fuerza bruta? Quédate hasta el final de este artículo para descubrir la respuesta.

¿Qué es la entropía?

La entropía es una medida de aleatoriedad o imprevisibilidad, y es crucial para generar claves criptográficas seguras. El concepto proviene de la teoría de la información, donde la entropía cuantifica la incertidumbre de un sistema. En términos simples, cuanto más impredecible es algo, mayor es su entropía.

Una alta entropía es esencial para las claves privadas en criptomonedas porque garantiza que las claves sean prácticamente imposibles de adivinar o descifrar por fuerza bruta. Esta aleatoriedad suele derivarse de diversas fuentes, como eventos de hardware, ruido ambiental o interacciones del usuario como movimientos del mouse y pulsaciones de teclado. El sistema operativo agrupa estos eventos impredecibles para generar un número verdaderamente aleatorio que sirve de base para una clave privada segura.

Sin suficiente entropía, las claves generadas pueden volverse predecibles y vulnerables a ataques. Por ejemplo, si la fuente de entropía es defectuosa, podría producir resultados iguales o similares repetidamente, permitiendo que atacantes predigan o incluso recreen la clave privada.

Esta aleatoriedad es tan crítica que incluso sistemas sofisticados como plataformas en la nube y máquinas virtuales utilizan hardware dedicado para asegurar un suministro confiable de entropía de alta calidad para operaciones criptográficas.

¿Cómo funciona la entropía?

En las billeteras de hardware, la entropía es fundamental para generar claves privadas seguras. Así es como funciona:

Fuente de entropía

Billeteras de hardware como Tangem Wallet cuentan con Generadores de Números Aleatorios por Hardware (HRNGs). Estos dispositivos generan aleatoriedad midiendo fenómenos físicos como el ruido electrónico o variaciones térmicas. Esta entropía bruta es clave para crear claves privadas impredecibles.
Algunas billeteras de hardware permiten que los usuarios aporten entropía ingresando manualmente datos aleatorios, como tiradas de dados. Aunque mezclar entropía controlada por el usuario con la generada por hardware puede no cambiar el grado de entropía, es un añadido interesante.

Generación de la clave

Una vez que se ha recolectado suficiente entropía, la billetera la utiliza para generar una clave privada. Este proceso suele combinar la entropía con algoritmos criptográficos como SHA-256 para producir una clave de 256 bits. Muchas billeteras de hardware emplean el estándar BIP39 para generar una frase mnemotécnica (una serie de 12 a 24 palabras) a partir de la entropía. Esta frase puede usarse para recuperar la clave privada si es necesario.

Seguridad del proceso

El firmware de la billetera asegura que la entropía se mezcle completamente para evitar cualquier previsibilidad. Luego almacena la clave privada de forma segura en un entorno resistente a manipulaciones dentro del dispositivo. Por eso, la mayoría de las billeteras de hardware cuentan con un elemento seguro certificado por CC. El firmware de Tangem también ha sido auditado dos veces por reconocidas firmas independientes de seguridad: Kudelski Security y Riscure.
En general, las billeteras de hardware aíslan los procesos de generación de entropía y almacenamiento de claves del resto de las operaciones del dispositivo. Esta separación minimiza el riesgo de exposición a malware u otras amenazas externas.

Respaldo y recuperación

La frase mnemotécnica generada a partir de la entropía puede anotarse y guardarse en un lugar seguro. Esta frase es fundamental para recuperar la billetera si el dispositivo se pierde o se daña. La propia frase contiene la entropía utilizada para generar la clave, lo que la convierte en un método de respaldo seguro.

Las billeteras de hardware dependen de entropía de alta calidad para garantizar que las claves privadas que generan sean seguras y resistentes a ataques, convirtiéndolas en uno de los métodos más seguros para almacenar criptomonedas.

¿Por qué es importante la entropía?

Como contienen la misma información pero en diferentes formatos, tu entropía debe mantenerse tan privada como tu frase de recuperación. Para reiterar: ¡cualquiera que tenga acceso a tu entropía puede acceder a toda tu billetera!

Así como tu frase semilla otorga acceso a todas tus claves privadas y, por tanto, a cada cuenta protegida por esa billetera, lo mismo sucede con tu entropía. Por eso, es fundamental para la seguridad que tu entropía sea lo más aleatoria posible y difícil de descifrar.

¿No querrías que alguien adivinara tu entropía y accediera a tus fondos, verdad? Justamente por eso, este número debe ser tan difícil de predecir. Debe ser tan aleatorio que adivinar la secuencia o encontrar la misma combinación dos veces sea estadísticamente imposible.

Si tu entropía es fácil de adivinar, los hackers podrían aprovecharse y acceder a tus fondos. Por eso, elegir una billetera cripto que tome en cuenta este aspecto es sumamente importante.
 

Entendiendo la entropía y las frases semilla

La aleatoriedad de tu frase semilla es clave para mantener la seguridad. Elegir palabras manualmente o usar patrones predecibles debilitaría considerablemente la protección de tu billetera. El método basado en entropía que emplea Tangem garantiza un nivel de aleatoriedad esencial para una protección robusta frente a ataques cripto.

Si bien Tangem proporciona las herramientas para una generación segura de entropía, es importante recordar que resguardar tu frase semilla es tu responsabilidad. Nunca compartas esta información con nadie, ni siquiera con representantes de Tangem. Tu frase semilla es la llave de tus activos digitales, y su secreto es vital para la seguridad de tu billetera.
 

Caso Trust Wallet: por qué la buena entropía importa

Al elegir una billetera cripto, debes priorizar cómo genera la aleatoriedad. La brecha de seguridad en Trust Wallet en 2022 se debió en gran parte a la naturaleza predecible de la generación de entropía de la billetera.

SecBit realizó un excelente trabajo investigando y explicando esta vulnerabilidad en su artículo: Trust Wallet's Fomo3D Summer: Fresh Discovery of Low Entropy Flaw From 2018, pero aquí resumimos los puntos clave.

La plataforma iOS de Trust Wallet dependía de la biblioteca trezor-crypto para generar palabras mnemotécnicas BIP39. La biblioteca contenía código de ejemplo que nunca debió usarse en un entorno real. El código tenía una advertencia que indicaba que solo debía utilizarse para pruebas.

  1. El código tiene dos partes principales: random32() y random_buffer().
  2. random32():
    - Esta parte crea números aleatorios, pero lo hace de una manera poco segura.
    - Utiliza la hora actual para iniciar el proceso de generación.
    - El problema es que, si sabes aproximadamente cuándo se creó el número, podrías adivinarlo.
    - Aún peor, si dos personas crean números exactamente en el mismo segundo, obtendrán el mismo número "aleatorio".
  3. random_buffer():
    - Esta parte llena un espacio con bytes aleatorios (unidades de datos).
    - Utiliza random32() para hacerlo, por lo que hereda los mismos problemas de seguridad.
  4. El gran problema:
    - Este código se usó para crear frases semilla que daban acceso a las billeteras de los usuarios.
      - Como su aleatoriedad no era realmente aleatoria, era mucho más fácil para los hackers adivinar estas frases de lo que debería ser.
      - En vez de adivinar entre millones de posibilidades, solo necesitaban probar entre unos pocos miles (basados en los posibles momentos de creación de la frase).
  5. El error:
      - Trust Wallet ignoró esta advertencia y usó el código de todas formas.
      - Esto significó que la entropía para las frases utilizadas al crear las billeteras de los usuarios era mucho más fácil de recrear de lo que debía ser.

La reciente brecha de seguridad en Trust Wallet nos recuerda la importancia vital de una generación de entropía robusta para proteger las billeteras de criptomonedas. Trust Wallet resolvió el problema compensando a los usuarios por sus pérdidas.

¿Cómo genera entropía Tangem Wallet?

Tangem Wallet ofrece una seguridad sólida para tus criptoactivos, comenzando por su proceso de generación de entropía. La billetera utiliza un Generador de Números Aleatorios Verdaderamente Aleatorio certificado, probado exhaustivamente por expertos independientes. Esto garantiza que los números generados sean impredecibles, protegiendo tus activos frente a posibles ataques.

¿Cuánto tardaría en descifrarse por fuerza bruta una clave privada de Bitcoin?

Para responder a esta pregunta, desglosaremos el proceso y consideraremos la magnitud de la tarea:

Una clave privada de Bitcoin es, en efecto, solo un número, pero es inmensamente grande. Específicamente, es un número de 256 bits, lo que significa que existen 2^256 claves privadas posibles.

Incluso con las supercomputadoras más potentes disponibles hoy, descifrar una clave privada de Bitcoin por fuerza bruta tomaría un tiempo inconcebiblemente largo. Hablamos de escalas de tiempo mucho mayores que la edad del universo.

 

Suponiendo que una supercomputadora pudiera revisar 1 billón (10^12) de claves por segundo, encontrar una sola clave privada aún tomaría aproximadamente 3.67 x 10^57 años en promedio. El universo tiene unos 13.800 millones de años (1.38 × 10^10 años).

Así que el tiempo necesario para descifrar por fuerza bruta una clave privada de Bitcoin es unas 1.33 × 10^47 veces la edad del universo.

Es asombroso lo que hemos logrado en una roca joven y húmeda llamada Tierra.

Author logo
Autor Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
Revisado por Rukkayah Jigam

Writer & editor covering digital assets and product updates.