Input your search keywords and press Enter.

ELI5: Algoritmos criptográficos en la blockchain

No hay duda que la tecnología blockchain ha impactado a lo largo y ancho del mundo de muchas formas. Sus usos son muy amplios, y entre los sectores más favorecidos por el uso del sistema de cadena de bloques están:

  1. Finanzas. Agiliza las transacciones, que se pueden realizar a cualquier hora y en cuestión de minutos, y reduce los costos de las mismas al eliminar intermediarios.
  2. Salud. Es posible utilizar firmas digitales para controlar el acceso a registros médicos. Además permite la compartición de los mismos, previa autorización, rápida y fácilmente entre médicos, hospitales y aseguradoras.
  3. Servicios legales. Permite la celebración de contratos inteligentes cuyo cumplimiento se puede supervisar de manera automática.
  4. Defensa. La inviolabilidad de la información y la distribución de los datos garantiza que no se puedan modificar ni vulnerar equipos ni redes militares.
  5. Administración pública. Mejoraría el servicio al ciudadano si se puede compartir información en tiempo real y se reduciría la corrupción al agregar transparencia.
  6. Digitalización industrial. Un sistema que ofrece la máxima protección de datos permite desarrollar aplicaciones y usos avanzados en el manejo de los mismos.
  7. Proyectos sociales. La transparencia permite verificar el buen uso de los recursos utilizados por las empresas sociales, lo que da mayor confianza a los donantes.
  8. Combate a la pobreza. El menor costo de las transacciones hace posible que llegue más dinero a los beneficiarios de las transferencias de remesas que hacen los emigrantes económicos a sus familias en sus lugares de origen.
  9. Gestión de la identidad individual. Para usos financieros o para identificarse plenamente ante las autoridades. El sistema permite crear un registro de identidad digital que sirve para múltiples propósitos.

Sin lugar a dudas el impacto de la blockchain es prácticamente infinito, pero; ¿Como lo logra? ¿Como un simple sistema de software puede brindarnos todas estas posibilidades? La respuesta a esta dos preguntas está en la criptografía que usa estos sistemas para hacerlos tan seguros como sea posible.

¿Qué es la criptografía?

La palabra criptografía proviene del griego “kryptos” que significa oculto, y “graphia”, que significa escritura. Su definición según el dicccionario es “Arte de escribir con clave secreta o de un modo enigmático”. La criptografía es una técnica, o más bien un conjunto de técnicas, que originalmente tratan sobre la protección o el ocultamiento de la información frente a observadores no autorizados. Entre las disciplinas que engloba cabe destacar la Teoría de la Información, la Complejidad Algorítmica y la Teoría de números o Matemática Discreta, que como ya sabemos estudia las propiedades de los números enteros.

A través de la criptografía la información puede ser protegida contra el acceso no autorizado, su interceptación, su modificación y la inserción de información extra. También puede ser usada para prevenir el acceso y uso no autorizado de los recursos de una red o sistema informático y para prevenir a los usuarios la denegación de los servicios a los que sí están permitidos. Modernamente, la criptografía es la metodología para proveer la seguridad de las redes telemáticas, incluyendo la identificación de entidades y autenticación, el control de acceso a los recursos, la confidencialidad de los mensajes transmitidos, la integridad de los mensajes y su no repudio.

El cifrado nos ayuda a mantener privacidad

Historia de la Criptografía

Si bien la criptografía ha existido desde hace miles de años, sus primeras implementaciones fueron rudimentarias. Sistemas como el cifrado Ceśar, que consistía en el desplazamiento numéricos de letras en el alfabeto era uno de los más usados en la antigüedad. Esto por ser un sistema sencillo y que brindaba un buen nivel de seguridad para ese entonces.

Fue sin embargo, durante el Siglo XX cuando la historia de la criptografía cambio radicalmente. En la Segunda Guerra Mundial, las máquinas de cifrado mecánicas y electromecánicas se utilizaban extensamente. Se hicieron grandes avances en la rotura de cifrados, todos en secreto. El uso de avanzadas maquinas mecánicas, electromecánicas e inclusos computadores programables dio un impulso a la tecnología.

Con ventaja en esta área los Aliados, pudieron romper diversos sistemas criptográficos del Eje. Destacan el rompimiento del sistema alemán  “Enigma”, y el japones “Purpura” fueron una muestra del poder aliado, su conocimiento en criptografía y criptoanálisis.

Sin embargo, no fue hasta la década de los 70, que se estandarizo un sistema criptográfica de amplio uso. El primero fue la publicación del borrador del Data Encryption Standard (DES) en el Registro Federal estadounidense el 17 de marzo de 1975. La propuesta fue enviada por IBM, por invitación de la Oficina Nacional de Estándares (ahora NIST), en un esfuerzo por desarrollar sistemas de comunicación electrónica segura para las empresas como los bancos y otras organizaciones financieras grandes.

Tras asesoramiento y ciertas modificaciones por parte de la NSA, fue adoptado y publicado como un Federal Information Processing Standard en 1977 (actualmente el FIPS 46-3). El DES fue el primer cifrado accesible públicamente que fue bendecido por una agencia nacional como la NSA. La publicación de sus especificaciones por la NBS estimuló una explosión del interés público y académico por la criptografía.

DES fue suplantado oficialmente por el Advanced Encryption Standard (AES) en 2001, cuando el NIST anunció el FIPS-197. Tras una competición abierta, el NIST seleccionó el algoritmo Rijndael, enviado por dos criptógrafos belgas, para convertirse en el AES. El DES, y otras variantes más seguras (como el Triple DES), todavía se utilizan hoy en día, y se han incorporado en muchos estándares nacionales y de organizaciones.

Sin embargo, se ha demostrado que el tamaño de su clave, 56 bits, es insuficiente ante ataques de fuerza bruta y por lo tanto es inseguro. Sin embargo, a la par de estos sistemas estándares,  se generaron cientos de otros sistemas criptográficos muy seguros, algunos de ellos vetados por gobiernos alrededor del mundo.

Criptografía y blockhain. Una combinación de poder

Blockchain una combinación de tecnología con inmenso poder

Blockchain una combinación de tecnología con inmenso poder

Los proyectos de blockchain usan técnicas de criptografía en sus sistemas por una poderosa razón: asegurar máximos niveles de seguridad en sus sistemas. Y lo han logrado. La blockchain ha mostrado niveles de seguridad muy altos que ningún otro software ha alcanzado, quizás tal vez por OpenBSD, el sistema operativo más seguro del mundo.

Entre esos sistemas de criptografía podemos mencionar los siguientes:

ECDSA

Es una evolución del algoritmo DSA, su nombre completo es Elliptic Curve Digital Signature Algorithm (Algoritmo de Curva Elíptica para Firmado Digital). Este algoritmo emplea operaciones sobre puntos de curvas elípticas en lugar de las exponenciaciones com el DSA.Esto trae como consecuencia dos grandes ventajas:

  1. El algoritmo crea claves muy pequeñas pero con un altísimo nivel de seguridad.
  2. El criptoanalisis del mismo es más complejo por tanto más difícil de romper.

Ambas ventajas dieron el visto bueno para que se usara en las blockchain, donde es muy necesario ambas características para dar escalabilidad y seguridad.

Satoshi Nakamoto, creador del Bitcoin vio la utilidad de este algoritmo y lo implemento en su primera blockchain. Con esto logro crear un mecanismo que facilitaba la comparación de información pública, sin poner en riesgo la información privada de quienes participaran en su proyecto. Adicionalmente con el fin de hacer aún más sencillo el manejo de la información pública, Nakamoto agrego técnicas hash con el fin de convertir la clave pública ECDSA en una clave más publica más pequeña (ECDSA genera claves de 44 dígitos extensión), y fue así como termino generando las llamadas address wallets de Bitcoin.

Sobre la seguridad de ECDSA se habla mucho, pero lo cierto es que aunque no es infalible, es uno de los métodos más seguro y aún no criptoanalitcamente descifrable con el que se cuenta en la actualidad. Para ser más exactos, Bitcoin y el resto de las blockchain que usan ECDSA para su sistema de claves públicas y privadas, usan la variante estándar secp256k1. Esta variante a diferencia de la sec256r1, bajo la tutela de la NSA es segura.

SHA-256

SHA-256 es un algoritmo de hash diseñado por la NSA. SHA quiere decir Secure Hash Algorithm. Es usado para transformar en un solo sentido una cantidad de información en una cadena criptográfica segura. Se dice que es “de un solo sentido” porque cada hash es obtenido de una información previa conocida, y dicha información previa, no puede obtenerse en un proceso inverso sobre el hash generado. Esto asegura la información.

El algoritmo SHA-256 es usado en diferentes partes en una blockchain:

  1. Para el proceso de minado, se utiliza SHA-256 como el algoritmo de prueba de trabajo.
  2. Se usa para brindar direcciones públicas seguras, partiendo de la clave pública ECDSA generada.

El Bitcoin fue el primer proyecto en usar SHA-256 como parte de sus protocolo de trabajo.

ETHASH

También conocido como DaggerHashimoto, es un algoritmo de hash creado por los desarrolladores de Ethereum. Su principal característica es su alta resistencia a los chips ASIC debido a su enorme consumo de memoria. Está basado en SHA-3, usando el algoritmo de Keccak, que ofrece una característica inigualable. Y es que generar SHA-3 es muy rápido, incluso más rápido que SHA-2, siendo SHA-3 mucho más seguro.

SCRYPT

Diseñado por Colin Percival para el servicio de respaldo online Tarsnap. Scrypt es un algoritmo KDF (función de derivación de clave) muy intensivo, con alto uso de potencia de computo y de memoria, lo que hace resistente a dispositivos ASIC. Litecoin es una de las criptos que usan este algoritmo para su trabajo de minería.

EQUIHASH

Equihash es un algoritmo creado por el Centro Interdisciplinario de Seguridad, Confiabilidad y Confianza (SnT) de la Universidad de Luxemburgo en el Simposio de Seguridad de Redes y Sistemas Distribuidos de 2016. El algoritmo se basa en una generalización del problema de cumpleaños que encuentra valores hash en colisión. Fue diseñado de tal manera que las implementaciones paralelas tienen un cuello de botella por el ancho de banda de la memoria en un intento por empeorar las compensaciones de costo-rendimiento del diseño de implementaciones ASIC personalizadas. La resistencia de ASIC en Equihash se basa en la suposición de que el hardware comercialmente vendido ya tiene un ancho de banda de memoria bastante alto, por lo que las mejoras realizadas por hardware pueden no valer la pena el costo de desarrollo.  Zcash es la criptomoneda estrella en implementarlo.

CRYPTONIGHT

CryptoNight es un algoritmo de prueba de trabajo que fue diseñado para ser compatible con el CPU de una PC convencional. Una característica importante de CryptoNight es que es más difícil aumentar el poder de minería utilizando dispositivos ASIC. Desde hace un tiempo, este es el desafío al que se enfrentan los mineros y se prevé que este acuerdo ayudará a mantener la minería distribuida, en lugar de un sistema casi centralizado.

 

Apasionado por el mundo de la tecnologías y el Software Libre. Activista en las comunidades de soporte y desarrollo de GNU/Linux (Debian, Ubuntu y Gentoo). Blogger y redactor de todo lo relacionado con tecnologías.