37
Curvas Elípticas pralogy.com.co Expertos en Seguridad de la Información

Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Curvas Elípticaspralogy.com.co

Expertos en Seguridad de la Información

Page 2: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

TOPICS

• Pros y Contras de el uso de ECC vs RSA vs DL

• Que es una curva elíptica y como es calculada

• Como construir un problema DL en curvas elípticas

• Protocolos aplicables a curvas elípticas

• Estimaciones de seguridad

Page 3: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

DEFINICIÓN

Conjunto de soluciones de una ecuación de la forma (Weierstrass)

𝑦2 + 𝑎1𝑥𝑦 + 𝑎3 𝑦 = 𝑥3 + 𝑎2𝑥2 + 𝑎4𝑥 + 𝑏

Weierstrass(𝑎1, 𝑎2, 𝑎3, 𝑎4, 𝑏)

En Criptografía se usan las de la forma

𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏

Weierstrass(0,0,0, 𝑎, 𝑏)

Sage: show(EllipticCurve([0,1]).plot(xmin=-4, xmax=4, ymin=-3, ymax=3))show(EllipticCurve([0,0,0,0,1]).plot(xmin=-4, xmax=4, ymin=-3, ymax=3))

𝑦2 = 𝑥3 +1

Page 4: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

SAGEMATH

• https://sagecell.sagemath.org/

Page 5: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Curvas Elípticas en Criptografía

4𝑎3 + 27𝑏2 ≠ 0

Imagen Tomada de Wikipedia

Las curvas elípticas aplicables en criptografía debe tener bien derivada este bien definida en todos los puntos de la curva (nonsingular; Geométricamente sin vértices o sin intersecciones a si misma)

Page 6: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Propiedades

𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏

• Para cada punto 𝑥 hay dos soluciones en 𝑦

𝑦 = ± 𝑥3 + 𝑎𝑥 + 𝑏

Por lo tanto estas curvas son simétricas sobre el eje 𝑥

• La curva intersecta al eje 𝑦 en 𝑏 (resolver ecuación para 𝑥 = 0)

• La curva intersecta intersecta al eje 𝑥 en 1 o 3 puntos reales (resolver ecuación para y = 0)

Page 7: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Componentes de ECC

• Una Curva definida E

• Conjunto de puntos E(a,b)

• Point at infinity o Zero Point: Punto en el infinito sobre el eje Y (donde todas las rectas paralelas se interceptan)

𝑂 = (0,∞)

• Grupo cíclico 𝐺 ;operación cerrada es la suma ‘+’ y el elemento de identidad es el punto 0

• Campo finito, generalmente sobre un numero primo 𝐺𝐹 (𝑝)

Page 8: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

PROPIEDADES DE GRUPO

• ClausuraSi 𝑃 y 𝑄 ∈ (𝑎, 𝑏) entonces 𝑃 + 𝑄 ∈ 𝐸 𝑎, 𝑏

• Asociatividad 𝑃 + 𝑄 + 𝑅 = 𝑃 + 𝑄 + 𝑅

• Elemento de Identidad𝑃 + 0 = 0 + 𝑃 = 𝑃

• Elemento Inverso 𝑃 + −𝑃 = −𝑃 + 𝑃 = 0

• Conmutativo𝑃 + 𝑄 = 𝑄 + 𝑃

Page 9: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Addition

Se definen dos puntos sobre la curva𝑃 = (𝑥1, 𝑦1) 𝑄 = (𝑥2, 𝑦2)

La suma de estos puntos da como resultado otro punto sobre la curva𝑃 + 𝑄 = 𝑅 𝑥1, 𝑦1 + 𝑥2, 𝑦2 = 𝑥3, 𝑦3 = 𝑅

-𝑅 = 𝑥3,−𝑦3

𝑅 = 𝑥3, 𝑦3

Page 10: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

CORDENADAS DEL PUNTO R

• Ejercicio Encuentre las coordenadas (𝑥3, 𝑦3) en términos de las variables conocidas

Hint: recuerde que un polinomio de grado 3 posee 3 soluciones de las cuales usted ya conoce 2

Page 11: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Addition

𝑋3 = 𝑠2 − 𝑥1 – 𝑥2

𝑦3 = 𝑠 𝑥1 − 𝑥3 − 𝑦1

𝑆 =𝑦2 − 𝑦1

𝑥2 − 𝑥1

Page 12: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Point Doubling

Si 𝑃 = 𝑄

Page 13: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Point Doubling

Si 𝑃 = 𝑄𝑋3 = 𝑠2 − 2𝑥1

𝑦3 = 𝑠 𝑥1 − 𝑥3 − 𝑦1

𝑆 =𝑑𝑦

𝑑𝑥

𝐷 𝑦2 = 2yD y = 2y ư𝑦

2y𝑑𝑦

𝑑𝑥= 3𝑥2 + 𝑎

𝑑𝑦

𝑑𝑥=3𝑥2 + 𝑎

2𝑦

𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏

Page 14: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Resta

¿Cuál es el punto 𝑃 − 𝑄?

Page 15: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Resta

𝑃 − 𝑃 = ?

Page 16: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Casos Especiales

Imagen Tomada de Wikipedia

Page 17: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Multiplicación Entera

• Encuentre 3P

Page 18: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Multiplicación Entera

3𝑃 + 𝑃 = 2𝑃 + 2𝑃 = 2 2𝑃 = 4𝑃

5 7𝑃 = 7(5𝑃)

¿En cuantas operaciones puede encontrar el punto: • 128 𝑃• 127 P• 101 P• 100 P

¿En cuantas operaciones puede encontrar el punto 𝑥𝑃?

El algoritmo mas eficiente es :Double-and-Add Algorithm for Point Multiplication 𝓞(𝒍𝒐𝒈𝟐 (𝒏))

Page 19: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Curvas Elípticas sobre Campos Finitos

• En criptografía se usan curvas con variables y coeficientes finitos, por lo que el numero de puntos que componen una curva son finitos, se le conoce como Cardinalidad de la curva

Tipos de curvas• Curvas Primas 𝐸𝑝 = 𝑎, 𝑏 estas curvas se definen sobre 𝐺𝐹(𝑝) Curvas Binarias

• Curvas Binarias 𝐸2𝑚 = 𝑎, 𝑏 estas curvas se definen sobre 𝐺𝐹(2𝑚) Curvas Binarias

𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏 𝑚𝑜𝑑 𝑝

𝑥3 = 𝑠2 − 𝑥1 − 𝑥2 𝑚𝑜𝑑 𝑝𝑦3 = 𝑠 𝑥1 − 𝑥3 − 𝑦1 𝑚𝑜𝑑 𝑝

Page 20: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Teorema 1

• Todos los puntos de una curva elíptica y el punto O poseen subgrupos cíclicos. Bajo ciertas condiciones todos los puntos de una curva elíptica forman un grupo cíclico.

Esto quiere decir existe un punto 𝐴 en la curva cuyo 𝑜𝑟𝑑 𝐴 = 𝐸 , se les conoce como elemento primitivos.

|𝐸| es la cardinalidad de la curva elíptica.

𝑜𝑟𝑑 𝐴 es el menor 𝑘 tal que cumpla 𝑘𝐴 = 𝐴 + 𝐴 +⋯+ 𝐴 = 𝑂

Recuerde que 𝑂 es elemento de identidad de la curva 𝐴 + 𝑂 = 𝐴

Esto implica que cada punto en la curva puede ser escrito de la forma 𝑘𝐴

Page 21: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Logaritmo Discreto ECDLP

• Dada la curva Elíptica 𝐸(𝑎, 𝑏), y los puntos 𝑃 y 𝑄 p, donde 𝑄 = 𝑛𝑃, El problema de logaritmo discreto es encontrar el entero 𝑛, donde 1 ≤ 𝑛 ≤ #𝐸, de tal forma que:

𝑃 + 𝑃 +⋯+ 𝑃 = 𝑛𝑃 = 𝑄

n es la clave privada del sistema y los puntos <P , Q> son la clave publica

Page 22: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Teorema 2

Sea un G un grupo finito Cíclico. se cumple:

1. El numero de elementos primitivos de G es Φ 𝐺

2. Si 𝐺 es primo, entonces todos los elementos son primitivos excepto el elemento de identidad

Page 23: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Teorema 3: Hasse’s

Dada una curva elíptica E modulo P, el numero de puntos de la curva se denota por #𝐸 y esta limitada por:

𝑃 + 1 – 2 𝑝 ≤ #𝐸 ≤ 𝑝 + 1 + 2 𝑝

Mediante este teorema sabemos que si queremos una curva con 2160

puntos, necesitamos un numero primo de longitud de 160 bits.

Page 24: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Ejercicio

• Dada la curva elíptica E(2,2) sobre GF(17) y el punto inicial 𝑃 = (5, 1), encuentre el punto −𝑃

Page 25: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Ejercicio

• Dada la curva elíptica E(2,2) sobre GF(17) y el punto inicial 𝑃 = (5, 1), encuentre el punto 2𝑃

• Verifique el punto encontrado si este sobre la curva

Page 26: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Ejercicio

• Dada la curva elíptica E(2,2) sobre GF(17) y el punto inicial 𝑃 = (5, 1), encuentre la clave privada usada para generar el punto (3,1)

Page 27: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Ejemplo

E: 𝑦2 ≡ 𝑥3 + 2𝑥 + 2 𝑚𝑜𝑑 17#𝐸 = 19

Si empezamos con el punto 𝑃 (5,1)2𝑃 = (5,1) + (5,1) = (6,3)3𝑃 = 2𝑃 + 𝑃 = (10,6)

4𝑃 = (3,1)5𝑃 = (9,16)6𝑃 = (16,13)7𝑃 = (0,6)8𝑃 = (13,7)9𝑃 = (7,6)10𝑃 = (7,11)

11𝑃 = (13,10)12𝑃 = (0,11)13𝑃 = (16,4)14𝑃 = (9,1)15𝑃 = (3,16)16𝑃 = (10,11)17𝑃 = (6,14)18𝑃 = (5,16)

19𝑃 = 𝑂

Calcule el punto 20𝑃 y 21𝑃

¿Que implica que 18𝑃 + 𝑃 = 0?Verifíquelo

Page 28: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este
Page 29: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Diffie-Hellman Key Exchange - ECDH

Preparación:

1. Escoger un numero (2𝑚 o primo) 𝑝 y la curva elíptica

𝐸: 𝑦2 ≡ 𝑥3 + 𝑎𝑥 + 𝑏 𝑚𝑜𝑑 𝑝

2. Escoga un elemento primitivo 𝑃 = 𝑥, 𝑦

< 𝑝, 𝑎, 𝑏, 𝑃 > son los parámetros de dominio.

Page 30: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Key Exchange - ECDH

Escoger 𝐾𝑝𝑟𝐴 = 𝑎 ∈ {2,3, … , #𝐸 − 1}𝐾𝑝𝑢𝑏𝐴 = 𝑎𝑃 = 𝐴 = (𝑥𝐴, 𝑦𝐴)

Escoger 𝐾𝑝𝑟𝐵 = 𝑏 ∈ {2,3, … , #𝐸 − 1}

𝐾𝑝𝑢𝑏𝐵 = 𝑏𝑃 = 𝐵 = (𝑥𝐵 , 𝑦𝐵)

𝑎𝐵 = 𝑇𝐴𝐵Calcular𝑏𝐴 = 𝑇𝐴𝐵Calcular

Se acordó el secreto entre Alice y Bob: 𝑇𝐴𝐵 = (𝑥𝐴𝐵, 𝑦𝐴𝐵)

𝑎𝐵 = 𝑎 𝑏𝑃 = 𝑎𝑏𝑃 𝑏𝐴 = 𝑏 𝑎𝑃 = 𝑎𝑏𝑃

Page 31: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Key Exchange - ECDH- EJEMPLO

Escoger 𝐾𝑝𝑟𝐴 = 𝑎 = 3𝐾𝑝𝑢𝑏𝐴 = 3𝑃 = (10, 6)

Escoger 𝐾𝑝𝑟𝐵 = 𝑏 = 10

𝐾𝑝𝑢𝑏𝐵 = 10𝑃 = (7, 11)

𝑎𝐵 = 3 7,11 = (13,10)Calcular𝑏𝐴 = 10 10,6 = 13,10Calcular

Típicamente se usa como clave acordada el hash de la coordenada en x: A partir de aquí se pude usar AES usando como clave AES(𝑆𝐻𝐴 𝑥𝐴𝐵 , 𝑀). Una coordenada en x típicamente tiene 160 bits en las curvas mas usadas

Page 32: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Cifrado y descifrado EC

1. Se eligen y se comparten los parámetros de dominio

2. Allice Convierte el mensaje m en un punto 𝑃𝑚 sobre la curva

3. Para cifrar con la llave Publica de Bob, genera 𝑘 aletorio y envia• 𝐶𝑚 = (𝑘𝑃, 𝑃𝑚 + 𝑘𝐵)

4. Para descifrar con la llave Privada de Bob1. 𝑃𝑚 + 𝑘𝐵 − 𝑏 𝑘𝑃 = 𝑃𝑚 + 𝑘 𝑏𝑃 − 𝑏 𝑘𝑃 = 𝑃𝑚

Page 33: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Digital Signature : ECDSAGeneración de Clave para ECDSA:

1. Esoger una Curva E con:• Modulo 𝑝

• E( 𝑎, 𝑏)

• Un punto 𝑃 que genera un grupo cilicio de orden 𝑞

2. Allice y Bob calculan sus claves privadas y publicas.

𝐾𝑝𝑢𝑏𝐴 = 𝑝, 𝐸, 𝑞, 𝑃, 𝑎𝑃

𝐾𝑝𝑟𝐴 = (𝑎)

𝐾𝑝𝑟𝐴 = 𝑎 ∈ {2,3, … , #𝐸 − 1 𝐾𝑝𝑟𝐵 = 𝑏 ∈ {2,3, … , #𝐸 − 1}

𝐾𝑝𝑢𝑏𝐵 = 𝑝, 𝐸, 𝑞, 𝑃, 𝑏𝑃

𝐾𝑝𝑟𝐵 = (𝑏)

Page 34: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Digital Signature : ECDSA

Alice quiere firmar el documento 𝑚 con la función de hash ℎ() y enviárselo a Bob

Escoger 𝑘𝐸 (Key Ephemeral) con 0 < 𝑘𝐸 < 𝑞

Calcular 𝐾 = 𝑘𝐸 ∙ 𝑃 = (𝑥𝐾, 𝑦𝐾) < 𝑚 , 𝑟 = 𝑥𝐾 , 𝑠 ≡ ℎ 𝑚 + 𝑎 ∙ 𝑟 𝐾𝐸−1 𝑚𝑜𝑑 𝑞 >

Calcular

𝑥𝐾 ቊ≡ 𝑟 𝑚𝑜𝑑 𝑞 ⟹ 𝑣á𝑙𝑖𝑑𝑜≢ 𝑟 𝑚𝑜𝑑 𝑞 ⟹ 𝑖𝑛𝑣á𝑙𝑖𝑑𝑜

𝑤 ≡ 𝑠−1𝑚𝑜𝑑 𝑞

𝑢1 ≡ 𝑤 ∙ ℎ 𝑚 𝑚𝑜𝑑 𝑞

𝑢2 ≡ 𝑤 ∙ 𝑟 𝑚𝑜𝑑 𝑞

Calcular K= 𝑢1𝑃 + 𝑢2𝐴

Page 35: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Seguridad

• Las curvas elípticas son buenas funciones one-way• Si un atacante quisiera romper ECDH tiene que conocer 𝐸, 𝑝, 𝑃, 𝐴 𝑦 𝐵

• Solo hay una forma de calcular 𝑇𝐴𝐵 = 𝑎𝑏𝑃:

𝑎 = 𝑙𝑜𝑔𝑃𝐴

𝑏 = 𝑙𝑜𝑔𝑃𝐵

• El mejor ataque conocido sobre ECDLP es mucho mas débil que los ataques sobre DLP y RSA.

• El mejor algoritmo de ataque a ECDLP requiere recorrer 2160 = 280 pasos

Page 36: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Seguridad

NIST Publication 800-57

Page 37: Curvas Elípticas - PralogyCurvas Elípticas en Criptografía 4 3+27 2≠0 Imagen Tomada de Wikipedia Las curvas elípticas aplicables en criptografía debe tener bien derivada este

Referencias

• Understanding Cryptography 1st Edition

• Elliptic Curves: Number Theory and Cryptography, Second Edition

• Modern Cryptography and Elliptic Curves: A Beginner’s Guide

• Wikipedia