Top Banner
Curvas Elípticas pralogy.com.co Expertos en Seguridad de la Información
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

Jun 24, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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