protocolos criptográficos para uso futuro (y actual) [guadalajaracon 2013]
DESCRIPTION
http://www.guadalajaracon.org/conferencias/protocolos-criptograficos-para-uso-futuro-y-actual/ Esta charla está orientada a programadores que busquen confidencialidad pero no sólo cifrando datos, hay veces que se requieren protocolos más complejos como en bancos u otras entidades que manejen información para grandes cantidades de personas, se pretende motivar al uso de la criptografía para CUALQUIER problema que requiera confidencialidad y no sólo el cifrado de datos. Generalmente la criptografía se usa para cifrar información o firmarla, pero existen más aplicaciones que podrían ser útiles, por ejemplo ¿cómo compartir secretos entre N personas y que sólo si se juntan M ¿cómo comunico un password a mi compañero si hay N cantidad de espías, computadoras, etcétera analizando mi transmisión plana? y un vistazo al futuro de la criptografía en caso de que en este siglo nos toque la primera computadora cuántica (Algoritmos que rompen la criptografía actual, y ¿cuáles algoritmos de HOY serán seguros usando hardware con mecánica cuántica?) Abordaremos los conceptos y problemas matemáticos (muy autocontenido) con demostraciones; que se usan para poder construir este tipo de protocolos como son el cálculo de raíces, logaritmos, factorización permutaciones, transformada de Fourier, teoría de grupos et cétera, esta charla está motivada en mi proyecto para poder estudiar los conceptos usuales de logaritmos y factorización pero no sólo con números reales o complejos, sino bajo otras plataformas algebraicas donde computacionalmente podrían ser más eficientes y más difíciles de poder descifrar.TRANSCRIPT
Protocolos criptograficos para uso futuro y actual
Eduardo Ruiz Duarte
Facultad de Ciencias UNAM
19 de Abril 2013, GuadalajaraCON Mexico
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Agenda
Introduccion
Conceptos fundamentales
Uso de problemas no determinısticos en criptografıa
Intercambio de llaves
Reparticion de secretos entre n personas
Pruebas Zero-Knowledge
Criptografıa visual
Criptoanalisis y paradoja del cumpleanos
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Introduccion
La criptografıa generalmente se relaciona con cifrado de informacion peroesta tiene mas usos, nosotros trataremos de dar a conocer otros con el finde promover la investigacion en estos.
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Conceptos fundamentales
Un grupo G es un conjunto con una operacion binaria * que cumple:
Para cualesquiera dos elementos g , h ∈ G tenemos que g ∗ h ∈ G
∃e ∈ G tal que g ∗ e = g ∀g ∈ G
Si g , h, k ∈ G entonces (g ∗ h) ∗ k = g ∗ (h ∗ k)Si g ∈ G existe un g−1 ∈ G tal que g ∗ g−1 = e
Si se cumpliera que:Para todo g , h ∈ G g ∗ h = h ∗ g , decimos que G es un grupo abeliano
Ejemplo
< R+, ∗ > Es claro que todas las propiedades se cumplen, de hecho es un
grupo abeliano y si a ∈ R+ su inverso a−1 es 1/a ya que a ∗ (1/a) = 1
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Conceptos fundamentales
Un grupo < G , ∗ > es cıclico si puede ser generado por un solo elementob ∈ G , es decir que si a ∈ G entonces a = bn donde bn = b ∗ b ∗ ... ∗ b(nveces), y denotaremos a G como < b >
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Conceptos fundamentales
Ejemplo de grupo cıclico
El conjunto E = {(x , y) ∈ R× R : y2 = x5 − 2}forma un grupo cıclico, de hecho en vez de la aritmetica usual y aburridade la recta en la criptografıa moderna es usado preferentemente, lesllaman curvas elıpticas.
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Conceptos fundamentales
Un morfismo de un grupo < G , ∗ > a otro grupo < H,⊗ > es es unafuncion φ : G → H tal que
φ(g1 ∗ g2) = φ(g1)⊗ φ(g2) (1)
Si φ es biyectivo decimos que es un isomorfismo
Ejemplo de morfismo de < R,+ > con < R+, ∗ >
Sea φ(x) = ex con φ : R → R+
φ(a+ b) = ea+b = ea ∗ eb = φ(a) ∗ φ(b)
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Conceptos fundamentales
La aritmetica modulo p consiste en las operaciones del conjuntoZp = {1, 2, ..., ¯n − 1} donde p es primo y definimos el grupo < Zp, ∗ >con la operacion a ∗ b = r como a/b = q y bq = a+ r basicamente es elresiduo de dividir a y b con p
Ejemplo Z13
En Z13 5 ∗ 3 = 2 ya que 15/13 = 1 y sobra 2, y el inverso de 7 es 2 ya que7 ∗ 2 = 1 y 1 es el neutro
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Conceptos fundamentales
Una grafica G es un par ordenado G = (V ,E ) donde:
V es un conjunto de vertices o nodos
E es un conjunto de aristas que relacionan los vertices
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Conceptos fundamentales
Ejemplo
V := {1, 2, 3, 4, 5, 6}E := {(1, 2), (1, 5), (2, 3), (2, 5), (3, 4), (4, 5), (4, 6)}
Computacionalmente es util verla ası:
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Conceptos fundamentales
Dos graficas G = (VG ,EG ) y H = (VH ,EH) son isomorfas si existe unabiyeccion de vertices ψ : VG → VH y siempre que la arista (a, b) ∈ EG
entonces (ψ(a), ψ(b)) ∈ EH
Ejemplo, graficas G y H
ψ(a) = 1, ψ(b) = 6, ψ(c) = 8, ψ(d) = 3ψ(g) = 5, ψ(h) = 2, ψ(i) = 4, ψ(j) = 7y vemos que efectivamente por ejemplo(a, i) ∈ EG ⇒ (ψ(a), ψ(i)) = (1, 4) ∈ EH
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Problemas no determinısticos en criptografıa
En criptografıa se abordan problemas que aun no tiene solucion en tiempodeterminıstico polinomial es decir, los parametros privados estanprotegidos por un problema que no es Turing-tratable, por lo que veremos3 de ellos y despues veremos que hacer con ellos
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Problemas no determinısticos en criptografıa
Problema de logaritmo discreto:Sea < G , ∗ > cıclico , |G | = n , b ∈ G y < b >= G ⇒ ∀g ∈ G g = bk , kentero y definimos el morfismo de grupos:
logb : G → Zn
g 7→ [k]
de tal manera que bk = g mod n
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Problemas no determinısticos en criptografıa
Ejemplo de PLD
Tomemos el grupo < Z101, ∗ > y como generador al 39, entonces, cual esel valor de log39(44) =?? es decir quien es x en 39x ≡ 44 mod 101, larespuesta es x = 89, pero este valor para grupos Zp con la p muy grande(1024 bits en adelante) es intratable para una maquina de turing actual
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Problemas no determinısticos en criptografıa
Problema de isomorfismo de graficasSean G y H dos graficas finitas, determina si son o no isomorficas, esdecir, establece el isomorfismo entre vertices que respeten aristas en ambasgraficas.Este problema esta resuelto para cierto tipo de graficas (planas, arboles,entre otros) pero en general no lo esta y se cree que no se puede resolveren tiempo polinomial, de hecho el mas rapido de los algoritmos a la fecha
es exponencial 2O(√
n log(n)), Luks-1983
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Problemas no determinısticos en criptografıa
Ejemplo
Determina si son isomorfas las dos graficas, es decir, topologicamentepuedes mover los vertices ”arrastrando” sus aristas para que las dos sevean identicas, o algebraicamente puedes encontrar una funcion querelacione sus vertices y aristas???
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Problemas no determinısticos en criptografıa
Este problema es especial porque no tiene solucion unica y tiene un granuso en criptografıa:Solucion de un sistema de ecuaciones lineales en k variables con menos dek ecuaciones
Ejemplo
x + y = 0Este tiene una infinidad de soluciones
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Ahora veamos que podemos hacer con esta teorıa
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Intercambio de llaves
Imagina un escenario donde dos personas A = Alberto y B = Berenice
quieren transmitirse un archivo cifrado pero para esto ambos necesitan unpassword en comun pero el problema es que ambos estan siendomonitoreados por completo por E = Eulalio, ası que TODO lo que ellosdigan sera escuchado por el que pueden hacer?
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Intercambio de llaves
Protocolo Diffie-Hellman-Merkle-Ellis-Williamson
A y B se ponen de acuerdo en un < Z∗p, ∗ > y en un g ∈ G tal que g
es generador, (Notese que E ya tiene esta informacion)
A toma un a ∈ Z, calcula A1 = ga mod p y manda A1 a B (E yatiene A1)
B toma un b ∈ Z, calcula B1 = gb mod p y manda B1 a A (E yatiene B1)
A calcula Sa = Ba1 mod p
B calcula Sb = Ab1 mod p
Sa = Sb ya que Sa = (gb)a = Sb = (ga)b = gab = S
Alberto y Berenice ya tienen un secreto S y no importa que Eulalioconozca A1,B1, p y g ya que E tendrıa que saber calcular logaritmosdiscretos en < Z
∗p, ∗ >
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Reparticion de secretos
Recordemos antes un requerimiento:¿Como podemos generar una funcion continua que pase por ciertos puntosdados en el plano?
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Reparticion de secretos
Interpolacion de Lagrange.Dados n + 1 puntos (xi , yi ) con xi 6= xj queremos un p(x) tal quep(xi ) = yi ∀i
p(x) =n∑
j=0
yjLj(x)
Donde Lj(x) es el j-esimo polinomio de Lagrange definido por los puntosdados
Lj(x) =n∏
i=0,i 6=j
x − xi
xj − xi
Este polinomio existe no es parte de la presentacion demostrarlo pero paralos curiosos, la respuesta esta detras de la matriz de Vandermonde.
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Reparticion de secretos
Dividiremos a D (una clave, un numero) en n partes D1,D2, ...,Dn
1. El saber k o mas piezas Di hace que D sea facilmente computble2. El saber k-1 o menos piezas Di hace que D sea imposible de computarSi k=n entonces todos son requeridos para construir el secreto.
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Esquema Shamir para compartir secretos
Veamos un ejemplo del algoritmo.-Supongamos que el secreto es s = 1234-Dividiremos en n=6 partes pero queremos que con tan solo k=3 partessea suficiente construir el secreto-Calculamos k-1=2 numeros aleatorios a1 = 166, a2 = 94-Construimos un polinomio f (x) = s + a1x + a2x
2 = 1234 + 166x + 94x2
-Sacamos n=6 puntos de ese polinomio para cada entidad, por facilidadsera f (i) = yi i = 1, 2...6-Obtenemos (1,1494);(2,1942);(3,2578);(4,3402);(5,4414);(6,5614) y cadaquien le damos un punto.
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Reparticion de secretos
Reconstruccion de secreto:Supongamos que 3 entidades quieren construir el secreto, ellos tienen(2,1942);(4,3402);(5,4415)-Computamos los polinomios de Lagrange Lj(x)
L0(x) =x2
6 − x2 + 1
L1(x) =−x2
2 − 3x2 − 5
L2(x) =x2
3 − 2x + 43
Ahora el polinomio de lagrange es:
f (x) =2∑
j=0
yjLj(x) = 1942(x2
6− x
2+ 1) + 3401(
−x2
2− 3x
2− 5) +
4414(x2
3− 2x +
4
3) = 1234 + 166x + 94x2 y aqui tenemos s=1234
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Prueba Zero Knowledge
Ahora queremos resolver un problema que consiste en que alguien/algoquiere demostrarle a un verificador que una declaracion es verdadera, sinrevelar nada mas que la veracidad de la declaracion, esto sirve parametodos de autenticacion en los cuales alguien quiera demostrar que poseelas credenciales de acceso sin tener que revelar su passphrase a unamaquina secundaria
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Prueba Zero Knowledge
A = Alberto le quiere demostrar a B = Berenice que dos graficas Gs y Gt
son isomorfas pero no le quiere mostrar el isomorfismo π : Gs → Gt a B .
A y B conocen las graficas Gs y Gt
A genera k graficas S = {G1,G2, ...,Gk} simplemente permutandolos vertices, esto producirıa graficas isomorfas
A le manda a B S
B le pide a A que para cada grafica Gi ∈ S le de el isomorfismoψi t : Gi → Gt o ψi s : Gi → Gs
SOLO UNO para cada i
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Prueba Zero Knowledge
Es importante que A no le de el isomorfismo a ambas graficas Gt y Gs dela misma Gi ya que facilmente B podrıa deducir que:
Gs
Gi Gt
πψi s
ψ−1i t
π : Gt → Gs
π = ψi s ◦ ψ−1i t
Y esta bien definida porque todos son isomorfismos
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Prueba Zero Knowledge
Con esto B podra corroborar que Gt y Gs son isomorfas porque todas lasgraficas de S son isomorfas, B pidio isomorfismos de cada una de lasGi ∈ S a algun Gt o Gs (no ambos) y por transitividad del isomorfismo ,Gt y Gs deben ser isomorfas y A habra probado a B el isomorfismo sindarlo explıcitamente
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Criptografıa visual
La criptografıa visual nos permite poder repartir unsecreto en n personas yque solamente si estas se juntan, visualmente puedan reconstruir elsecreto, basiamente funciona como si fuera aritmetica modulo 2, pero enla vida real, NEGRO XOR NEGRO no es blanco, por lo que hay quereconstruir parcialmente el blanco, veamos esta tabla:
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Criptografıa visual
Por cada Pixel de la imagen a descomponer en criptogramas visuales, sieste es blanco, nos echamos un volado y escogemos uno de los 2 tipos deposibles combinaciones para formar el blanco (renglon), y se escriben cadapixel en cada archivo, lo mismo para el negro..El resultado seran dos criptogramas visuales que no podran reconstruir elsecreto por el simple hecho de que cada pixel esta randomizada la manerade construirse, por lo que si se necesitan N pixeles para ”deducir” laimagen, y esta tiene K pixeles, habra que encontrar la combinacion de losN Pixeles en los K pixeles lo cual como podran imaginar es un problemaexponencial.
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Paradoja del cumpleanos
Cual es la probabilidad de que 2 personas cumplan anos el mismo dıa enun conjunto de 23 personas?
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Paradoja del cumpleanos
Para calcularlo, primero necesitamos saber cuantas posibles parejas sepueden formar con 23 personas, de tal manera que (a, b) sea igual que(b, a), esto es simple combinatoria, y son las combinaciones de 23 en 2C (23, 2) = 23!
(23−2)!2 = 23∗222 = 253
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Paradoja del cumpleanos
Ahora la probabilidad de que 2 personas tengan diferente fecha decumpleanos es:1− 1
365 = 364365 = 0.99726
Lo cual suena muy logico, pero ahora, como el evento ”cumpleanios” entodas las personas estamos considerandolo como algo al azar, esindependiente, es decir, ningun cumpleanios depende de otro por lo quesabemos que si tenemos dos eventos A y B mutuamente excluyentes:Prob(AyB) = Prob(A) ∗ Prob(B)
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Paradoja del cumpleanos
Es decir la probabilidad de que en 23 personas haya un par que cumplan el
mismo dıa es de 364365
253= 0.4995 Y la formula para N personas es
364365
C(N,2), por lo que es facil ver que si N = 60, la probabilidad de que dos
personas cumplan anos el mismo dıa es de mas del 99%
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Paradoja del cumpleanos
Si no lo creen , intentenlo en su salon..., Es tan probable que suceda, aque ganen un volado, aquı el comportamiento del fenomeno
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Paradoja el cumpleanos
A lo que voy con esto ya para concluir es que, los hashes como MD5,SHA1, RIPEMD160, en teorıa todos sus valores tienen la mismaprobabilidad de existir, por lo que podemos calcular el conjunto mınimo dedatos a generar para poder colisionarlo, es decir, encontrar 2 valores quetengan el mismo hash, y siguiendo la misma dinamica te puedo decir queen un hash de 128 bits cuyos valores son Pseudo Random, generandocombinaciones de 32 bytes por cada 2.6× 1016 strings al menos tendreuna colision, esto es por mas chafa o bueno sea el algoritmo...
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
Problema abierto
Conjeturas El problema mas importante de la historia de las matematicasmodernas, actualmente sin responder, es la hipotesis de Riemann la cualcomo corolario nos dice que tan densos son los numeros primos usando lafuncion zeta de Riemann, este problema de los numeros primos se ha idoresolviendo a ”maquinazos” haciendo cada dıa el uso de las llaves masgrandes por lo que esto implica mayor computo, por lo que existen mejoresproblemas para criptografıa asimetrica como lo es el problema dellogaritmo discreto el cual veremos en mi otra presentacion
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39
¡Gracias! Eduardo Ruiz [email protected]://math.co.roblog: http://b3ck.blogspot.comtwitter: @toorandomPGP key fingerprint: 0xFEE7F2A0
Eduardo Ruiz Duarte (Facultad de Ciencias UNAM)Protocolos criptograficos para uso futuro y actual19 de Abril 2013, GuadalajaraCON Mexico
/ 39