Posgrado

PosgradoMatemáticas discretasCriptografía


RSA y criptografía de curvas elípticas


La codificación y el cifrado están en el núcleo de las comunicaciones digitales modernas. Los dos métodos más conocidos para comunicaciones seguras, RSA y la Criptografía de Curvas Elípticas (ECC), se basan en los principios de las matemáticas discretas. Este artículo profundizará en estos sistemas criptográficos y ayudará a aclarar cómo utilizamos principios matemáticos para cifrar datos, de modo que se mantengan seguros de miradas curiosas.

Criptografía RSA

RSA lleva el nombre de sus desarrolladores, Ron Rivest, Adi Shamir y Leonard Adleman, quienes lo introdujeron en 1977. Es una forma de criptografía de clave pública, que utiliza dos claves: una clave pública utilizada para cifrar y una clave privada utilizada para descifrar.

Principios básicos de RSA

La seguridad de RSA depende de la dificultad de factorizar enteros grandes. Funciona de la siguiente manera:

  1. Creación de claves:
    • Elegir dos números primos diferentes p y q.
    • Calcular n = p * q. El número n se utiliza como el módulo para ambas claves, pública y privada. Su longitud, generalmente expresada en bits, es la longitud de la clave.
    • Calcular φ(n) = (p-1)(q-1).
    • Elegir un entero e tal que 1 < e < φ(n) y gcd(e, φ(n)) = 1. El número e es el exponente público.
    • Definir d como d ≡ e -1 (mod φ(n)), lo que significa que d es el inverso multiplicativo modular de e módulo φ(n).
    La clave pública es (e, n), y la clave privada es (d, n).
  2. Cifrado:
    • El mensaje M se cifra con la clave pública del destinatario: C ≡ M e (mod n), donde C es el texto cifrado.
  3. Descifrado:
    • El texto cifrado C se descifra utilizando la clave privada: M ≡ C d (mod n), devolviendo el mensaje original M.

Ejemplos ilustrativos

Supongamos que elegimos números primos p = 61 y q = 53, entonces n = 61 * 53 = 3233.

El total es φ(n) = (61-1)(53-1) = 3120.

Elija e = 17, que es coprimo con 3120.

Para encontrar d, el algoritmo de Euclides extendido da d = 2753.

Cifrando un mensaje

Deje que M = 65 mensajes cifrados C:

C = 65 17 mod 3233

Usando exponenciación rápida, obtenemos C = 2790.

Descifrando el mensaje

Para recuperar M:

M = 2790 2753 mod 3233

Una vez más, utilizando una computación eficiente regresamos a M = 65.

Seguridad de RSA

La fortaleza de RSA radica en el tamaño del módulo n. Cuanto mayor sea el valor, más difícil será dividir n en sus componentes primos, p y q. Esta dificultad computacional asegura la seguridad de la clave privada. Además, elegir un exponente e suficientemente grande juega un papel en hacer que RSA sea robusto contra ciertos tipos de ataques.

Criptografía de curvas elípticas (ECC)

La criptografía de curvas elípticas es un método moderno de criptografía. Utiliza las propiedades de las curvas elípticas sobre campos finitos. ECC es elogiado por su eficiencia, ya que proporciona seguridad equivalente a RSA, pero con tamaños de clave mucho más pequeños.

Entendiendo las curvas elípticas

Una curva elíptica se define por la siguiente ecuación:

y 2 = x 3 + ax + b

Para fines criptográficos, nos centramos en curvas elípticas sobre campos finitos, especialmente campos de orden primo.

y 2 = x 3 + ax + b sobre campos finitos

Considere un campo finito F p donde p es un número primo. Luego, la curva elíptica consiste en los puntos (x, y) que satisfacen la ecuación de la curva, que incluye un punto especial en el infinito denotado como O

Operaciones de puntos en curvas elípticas

Las operaciones en curvas elípticas se rigen por las reglas de suma de puntos y multiplicación escalar. Estas operaciones operan bajo la aritmética modular de campos finitos.

Sumando dígitos

Dado dos puntos P = (x 1 , y 1) y Q = (x 2 , y 2), su suma R = P + Q = (x 3 , y 3) se calcula de la siguiente manera:

  • Si P ≠ Q, entonces use:
    λ = (y 2 - y 1) / (x 2 - x 1) mod px 3 = λ 2 - x 1 - x 2 mod py 3 = λ(x 1 - x 3) - y 1 mod p
  • Si P = Q, entonces use:
    λ = (3x 1 2 + a) / 2y 1 mod px 3 = λ 2 - 2x 1 mod py 3 = λ(x 1 - x 3) - y 1 mod p

Multiplicación escalar

Esta operación es importante en ECC. Si k es un escalar y P es un punto en la curva, entonces kP es el resultado obtenido al sumar P a sí mismo k veces.

Generación de claves ECC

ECC utiliza la multiplicación escalar para generar claves. Aquí hay un esquema simple para generar un par de claves de una curva elíptica:

  1. Elija un número primo p y parámetros a y b para definir la curva.
  2. Elija el punto base G en la curva.
  3. Seleccione un entero aleatorio d como la clave privada.
  4. Calcule Q = dG, donde Q es la clave pública.

Ejemplo de generación de clave pública ECC

Considere una curva elíptica en F p donde p = 17, a = 2 y b = 2. Elijamos G = (5,1).

Supongamos d = 7, entonces calculamos:

Q = 7G = G + G + G + G + G + G + G

Al sumar repetidamente los puntos, obtenemos Q

Seguridad de ECC

La seguridad de ECC se basa en el Problema del Logaritmo Discreto de Curvas Elípticas (ECDLP). Dados dos puntos P y kP, determinar k es computacionalmente imposible. Esto es similar al problema de factorizar números primos grandes en RSA.

Comparación entre RSA y ECC

Mientras que RSA y ECC sirven para el mismo propósito en términos de cifrar, firmar y verificar datos, lo hacen a través de diferentes principios matemáticos. Aquí hay algunas diferencias clave:

  • Tamaño de clave: ECC ofrece mayor resistencia por bit que RSA, lo que significa claves más pequeñas para el mismo nivel de seguridad.
  • Rendimiento: ECC puede ser más eficiente en términos de costo computacional, especialmente para dispositivos móviles y entornos con recursos limitados.
  • Longitud de vida: Dado que RSA requerirá tamaños de clave mayores para mantener la seguridad en el futuro, ECC es un candidato más prometedor para la seguridad criptográfica a largo plazo.

Representación visual

Considere cómo funcionan estos principios en la representación gráfica de una curva elíptica.

Hey

En este ejemplo, la curva azul representa una curva elíptica, mientras que el punto etiquetado O representa el punto en el infinito, un concepto esencial en la aritmética de curvas elípticas.

Tanto RSA como ECC representan importantes logros criptográficos basados en matemáticas discretas. RSA se basa en gran medida en la factorización de enteros, mientras que ECC se basa en las propiedades geométricas de las curvas elípticas. Juntas, proporcionan soluciones robustas para asegurar datos en la era digital, cada una con sus propias fortalezas y aplicaciones únicas.


Posgrado → 10.3.3


U
username
0%
completado en Posgrado


Comentarios