Diferencia entre revisiones de «Algoritmo ECDSA»

(Clave privada, pública y firmas)
(Etiquetas: nuestro-nuestra, revisar proyecto)
(ECDSA y la tecnología blockchain)
(Etiquetas: nuestro-nuestra, revisar proyecto)
 
Línea 51: Línea 51:
  
 
==ECDSA y la tecnología blockchain==
 
==ECDSA y la tecnología blockchain==
Uno de los principales problemas a los que se enfrentó [[Satoshi Nakamoto]] con el [[Bitcoin]], fue la distribución de las claves públicas. La visión de Nakamoto era la de permitir compartir claves públicas de poca extensión, seguras, con bajo coste computacional y sencillas de usar.
+
Uno de los principales problemas a los que se enfrentó [[Satoshi Nakamoto]] con el Bitcoin, fue la distribución de las claves públicas. La visión de Nakamoto era la de permitir compartir claves públicas de poca extensión, seguras, con bajo coste computacional y sencillas de usar.
  
 
Estas características serían alcanzables gracias a la [[criptografía]] de [[curva elíptica]]. Por lo tanto, está es la razón por la que Nakamoto decidió usar ECDSA para su sistema. Y con ello, se aseguraba que:
 
Estas características serían alcanzables gracias a la [[criptografía]] de [[curva elíptica]]. Por lo tanto, está es la razón por la que Nakamoto decidió usar ECDSA para su sistema. Y con ello, se aseguraba que:
  
*Fuese un sistema muy seguro. [[Satoshi]] decidió usar el estándar de [[curva elíptica secp256k1]] para el [[Bitcoin]]. Esta [[curva elíptica]] tiene una seguridad muy bien probada, por lo que resultó perfecta para aplicarla.
+
*Fuese un sistema muy seguro. [[Satoshi]] decidió usar el estándar de [[curva elíptica secp256k1]] para el Bitcoin. Esta curva elíptica tiene una seguridad muy bien probada, por lo que resultó perfecta para aplicarla.
 
*El coste computacional de generar claves y validar firmas es muy bajo.
 
*El coste computacional de generar claves y validar firmas es muy bajo.
 
*Permite la generación de claves públicas infinitas.
 
*Permite la generación de claves públicas infinitas.
  
Sin embargo, las claves ECDSA de 256 bits son muy extensas. Teniendo en cuenta en eso, Nakamoto decidió refactorizar las [[claves públicas]] para hacerlas más cortas. Fue así que usando codificación [[Base58]] y funciones hash como [[SHA-256]] y [[RIPEMD-160]], redujo el tamaño de las claves públicas y creó las direcciones [[Bitcoin]].
+
Sin embargo, las claves ECDSA de 256 bits son muy extensas. Teniendo en cuenta en eso, Nakamoto decidió refactorizar las claves públicas para hacerlas más cortas. Fue así que usando codificación [[Base58]] y funciones hash como [[SHA-256]] y [[RIPEMD-160]], redujo el tamaño de las claves públicas y creó las direcciones [[Bitcoin]].
  
 
Todo ello resultó, es un sistema computacional que permitía a sus usuarios enviar y recibir bitcoin de forma segura.
 
Todo ello resultó, es un sistema computacional que permitía a sus usuarios enviar y recibir bitcoin de forma segura.

última versión al 13:25 18 feb 2022

Elliptic Curve Digital Signature Algorithm (ECDSA)
Información sobre la plantilla
ECDSA.jpg

ECDSA son las siglas en inglés de Elliptic Curve Digital Signature Algorithm (Algoritmo de Firma Digital de Curva Elíptica). Este sistema, se utiliza para crear una firma digital que permite la verificación por parte de terceros sin comprometer la seguridad.

Principios básicos de ECDSA

El funcionamiento matemático y algorítmico de ECDSA es bastante complejo. Para empezar, ECDSA basa su funcionamiento en base a una ecuación matemática que dibuja una curva. El proceso, a grandes rasgos, sería el siguiente:

El algoritmo ECDSA funciona mediante un mecanismo de criptografía llamado, criptografía asimétrica. Este sistema de firmado, genera dos claves que reciben el nombre de clave privada y clave pública. Ambas claves están relacionadas por una compleja operación matemática realizada sobre una función de curva elíptica.

Bajo este esquema de funcionamiento, ECDSA garantiza en primera instancia lo siguiente:

  • Firmas únicas e irrepetibles para cada conjunto de generación de claves privadas y públicas.
  • La imposibilidad práctica de falsificar las firmas digitales. Esto es así porque la potencia computacional necesaria para ello, está fuera de los límites actuales.

Gracias a estas dos características, ECDSA se considera un estándar seguro para desplegar sistemas de firmas digitales. Su uso en la actualidad es tan variado, que hay aplicación de las mismas en casi todos los campos informáticos. Por ejemplo, la infraestructura de certificados de seguridad SSL y TLS de Internet hace uso intensivo de ECDSA. El Bitcoin, precursor de la tecnología blockchain, también hace uso de ECDSA para alcanzar el elevado nivel de seguridad que lo caracteriza.

De esta forma, cuando un usuario quiera firmar un archivo, usará su clave privada (el número aleatorio) con un hash del archivo (un número único para representar el archivo) en una ecuación mágica y eso le dará su firma. Si alguien quiere comprobar la veracidad de la información, solo necesita la clave pública y con ella será capaz de verificar la autenticidad.

Así pues, las claves públicas pueden ser conocidas por todos, sin poner en riesgo la autenticidad de nuestra firma, pues la clave pública solo sirve para verificar, no para firmar.

Clave privada, pública y firmas

El esquema de funcionamiento de ECDSA se basa en los siguientes tres pilares:

  • La clave privada, que en realidad es un número secreto conocido solo por la persona que lo generó. Una clave privada es esencialmente un número generado aleatoriamente. En Bitcoin, alguien con la clave privada que corresponde a los fondos en la blockchain es el único que puede gastar esos fondos.
  • La clave pública, el cual es un número generado a partir de una relación matemática usando la clave privada. Solo se puede obtener conociendo la clave privada con anterioridad, y no al revés. Esta clave se genera con el fin de compartirse públicamente para que otros puedan determinar si una firma es genuina.

La firma en realidad, es simplemente un número que indica al verificador que se realizó la operación de firma digital, de forma exitosa. Una firma se genera matemáticamente a partir de el hash de lo que se firmará, más una clave privada. La firma en sí es dos números conocidos como “r” y “s“. Con la clave pública, se puede usar un algoritmo matemático en la firma. La finalidad de esto es determinar que se produjo originalmente a partir del hash y la clave privada. Un sistema que funciona perfectamente, sin necesidad de conocer la clave privada.

ECDSA y la tecnología blockchain

Uno de los principales problemas a los que se enfrentó Satoshi Nakamoto con el Bitcoin, fue la distribución de las claves públicas. La visión de Nakamoto era la de permitir compartir claves públicas de poca extensión, seguras, con bajo coste computacional y sencillas de usar.

Estas características serían alcanzables gracias a la criptografía de curva elíptica. Por lo tanto, está es la razón por la que Nakamoto decidió usar ECDSA para su sistema. Y con ello, se aseguraba que:

  • Fuese un sistema muy seguro. Satoshi decidió usar el estándar de curva elíptica secp256k1 para el Bitcoin. Esta curva elíptica tiene una seguridad muy bien probada, por lo que resultó perfecta para aplicarla.
  • El coste computacional de generar claves y validar firmas es muy bajo.
  • Permite la generación de claves públicas infinitas.

Sin embargo, las claves ECDSA de 256 bits son muy extensas. Teniendo en cuenta en eso, Nakamoto decidió refactorizar las claves públicas para hacerlas más cortas. Fue así que usando codificación Base58 y funciones hash como SHA-256 y RIPEMD-160, redujo el tamaño de las claves públicas y creó las direcciones Bitcoin.

Todo ello resultó, es un sistema computacional que permitía a sus usuarios enviar y recibir bitcoin de forma segura.

Referencias

https://guiabit.win/que-es-el-algoritmo-de-firma-ecdsa/
https://www.oroyfinanzas.com/2014/01/criptografia-curva-eliptica-bitcoin-por-que-utiliza-ecdsa/
https://entrecriptos.com/que-es-el-algoritmo-de-firma-ecdsa/
https://www.coin-report.net/esp/ecdsa/
https://academy.bit2me.com/que-es-ecdsa-curva-eliptica/