Protocolo de Ko-Lee-Cheon-Hang-Park

De testwiki
Ir a la navegación Ir a la búsqueda
El protocolo basa su funcionamiento y fiabilidad en el uso del grupo de trenzas.

El protocolo Ko-Lee-Hang-Park es un protocolo de clave pública que usa grupos no abelianos. Fue propuesto por Ki Hyoung Ko, Sang Jin Lee, Jung Hee Cheon, Jae Woo Han, Ju-sung Kang y Choonsik Park. Utiliza el fundamento de que los grupos trenza pueden servir como una buena fuente de enriquecimiento para la criptografía, lo cual incluye lo siguiente:

  • El problema de la palabra es solucionado por medio de un algoritmo rápido que computa la forma canónica que puede ser manejada de manera eficiente por computadores.
  • Las operaciones de grupo pueden ser ejecutadas de manera eficiente.
  • Los grupos de trenzas tienen algunos problemas matemáticos difíciles que pueden ser utilizados para diseñar primitivos criptográficos.

También tiene como fin proponer e implementar un protocolo de acuerdo de llave y sistema criptográfico de llave pública que puede ser utilizado para diseñar primitivas criptográficas. La seguridad de este sistema está basada en problemas topológicos, combinatorios y teóricos de grupos que son intractibles de acuerdo al actual conocimiento matemático. La fundamentación de este sistema es diferente a la mayoría de criptosistemas usados en teoría de números, pero existen algunas similitudes en el diseño.

Antecedentes

Desde que Diffie y Hellman presentaron por primera vez un criptosistema de llave pública usando funciones de una sola vía, algunos sistemas de cifrado de llave pública han sido vulnerados. Muchos de los sistemas de cifrado de llave pública requieren una gran cantidad de números primos. La dificultad de factorización de enteros con una gran cantidad de factores primos forma la base del sistema RSA y sus variantes como la de Rabin-Williams, el esquema de LUC o el cifrado de curva elíptica. También la dificultad del problema de algoritmo discreto forma la base de los cifrados tipo Diffie-Hellman como ElGamal.

Ha habido bastantes esfuerzos para desarrollar cifrados de llave pública alternativos que no están basados en la teoría de números. El primer intento fue usar los problemas de dificultad NP en combinatoria como el cifrado Merkle-Hellman y sus modificaciones. Algunos criptógrafos han sido pesimistas acerca de la criptografía combinatoria después del desciframiento del cifrado de clave pública tipo Knapsack realizado por Shamir, Brickell, Lagarias, Odlyzko, Vaudenay y otros. La mayoría de los criptosistemas derivados de la teoría de grupos combinatorios son principalmente teóricos o tienen ciertas limitaciones en la práctica amplia y general.[1]

Descripción de funcionamiento

Para este protocolo de encriptación se utiliza una función unidireccional basada en el problema de conjugación en grupos trenzados, y de esta función se derivara un protocolo de establecimiento de clave y un protocolo de clave pública.

Función unidireccional

Si consideramos dos subgrupos LBl y RBr que pertenecen a Bl+r, tales que LBl son las trenzas formadas al trenzar las trenzas izquierdas entre l+r , es decir, que las trenzas 1,2,...,l son las únicas que están trenzadas, y las trenzas l+1,l+2,...,r no lo están. De forma similar el subgrupo RBr son las trenzas formadas por las trenzas trenzadas de la derecha, es decir que las trenzas l+1,l+2,...,r están trenzadas, pero las trenzas 1,2,...,l no están trenzadas. De esta forma, cada subgrupo se genera así:

LBl se genera por σ1, σ2,..., σl1, y el subgrupo RBr se genera por σl+1, σl+2,..., σr1.

En la función también debe considerarse la propiedad conmutativa de los grupos trenza que dice que σiσj= σjσi para |ij|2. Así, se puede decir que para cualquier a Є LBl y b Є RBr, entonces ab=ba. Así, se tiene que la función es:

f:LBl × Bl+rBl+r × Bl+r, f(a,x)=(axa1)

Esta función es unidireccional debido a que dados (a,x) es fácil calcular axa1, pero requiere un tiempo exponencial para calcular a conociendo (axa1,x), y en esto se basa la seguridad de este protocolo criptográfico. En este aspecto es similar al protocolo de Diffie-Hellman, ya que el rol de x es similar al de g en el protocolo Diffie-Hellman.

Establecimiento de clave

  • Paso de preparación: Se eligen dos enteros l y r tales que la trenza x de orden l+r es suficientemente complicada, y luego esta se publica.
  • Paso de establecimiento de clave:
    • Alice escoge un a Є LBl aleatoriamente y le envía y1=axa1 a Bob
    • Bob escoge un b Є RBr aleatoriamente y le envía y2=bxb1 a Alice
    • Alice recibe y2 y calcula la clave compartida K=ay2a1
    • Bob recibe y1 y calcula la clave compartida K=by1b1

Como se sabe que ab=ba, entonces:

K=ay2a1=a(bxb1)a1=b(axa1)b1=by1b1

Obteniendo Alice y Bob la misma trenza.

Protocolo de clave pública

Usando el establecimiento de clave anterior, ahora se toma una función hash H:Bl+r → {0,1} k que se adapte del grupo de trenzas al mensaje que se quiere encriptar.

  • Generación de clave:
    • Se escoge un x Є Bl+r suficientemente complicado
    • Se escoge una a Є LBl
    • Se define la clave pública como (x,y), donde y=axa1, y la clave privada sería a
  • Encriptación: Tomando el mensaje m Є {0,1} k y la clave pública definida
    • Se escoge una trenza cualquiera b Є RBr
    • Obteniendo así el texto cifrado (c,d), donde c=bxb1 y d=H(bxb1)*m
  • Descifrado:
    • Con el texto cifrado y la clave privada se calcula m=H(aca1)*d


Como a y b conmutan, entonces aca1=abxb1a1=baxa1b1=byb1. Así que H(axa1)*d=H(bxb1)*H(axa1)*m recuperando así el mensaje original. Para este protocolo debe elegirse un x lo suficientemente complicado para evitar la “factorización” de x en x1x2z, donde x1 Є LBl, x2 Є RBr y z es una trenza de orden l+r conmutable con LBl y RBr. Esto es así ya que si es posible descomponer fácilmente x, entonces:

byb1=(ax1a1)(bx2b1)z sería fácil de calcular usando y1=(ax1a1)x2z y y2=x1(bx2b1)z sin conocer a o b.[2]

Operación del protocolo

Se discuten las características operativas teóricas del protocolo propuesto y los parámetros de seguridad / longitud del mensaje para futuras implementaciones, esto debido a que en el protocolo Ko-Lee-Cheon-Hang-Park no es posible comparar su desempeño con el de otros cifrados de clave pública. Recordemos que el protocolo usa tres hebras: xB+r,aLB y bRBr, y el texto cifrado es (bxb1,H(abxa1b1m)). Cuando se trabaja con hebras, debemos considerar dos parámetros, el índice de la hebra y la longitud canónica. Por simplicidad, asumimos que los índices de las hebras en nuestro protocolo son l=r=n2 y las longitudes canónicas son len(x)=len(a)=len(b)=p. Las siguientes son las discusiones acerca de las características de operación del protocolo:

  • Una npermutación puede ser representada por un entero 0N<N!. Mientras n!exp(nlogn), una hebra con pcantidad de factores canónicos puede ser representada por una cadena de bits de tamaño pnlogn.
  • Para trenza y1,y2Bn,len(y1,y2)len(y1)+len(y2) y para y1LB,y2RBr,len(y1,y2)=max(len(y1),len(y2)). Entonces len(bxb1) y len(abxa1b1) son a lo sumo 3p. Para selecciones genéricas de a,b y x, estos son no menores que 2p. Además, asumimos que len(bxb1) y len(abxba1b1) están entre 2p y 3p.
  • El tamaño de la llave privada a es plogpn2logn212pnlogn.
  • El tamaño de la llave pública bxb1 es a lo sumo 3pnlogn.
  • La dificultad de un ataque de fuerza bruta para computar de a a axa1, o de manera equivalente, calcular b de bxb1, es proporcional a (!)p=(n2!)pexp(12pnlogn)
Estadísticas de operación del protocolo
Bloque de texto plano bits de pnlogn
Bloque de texto cifrado bits de 4pnlogn
Velocidad de encriptado O(p2nlogn)
Velocidad de desencriptado O(p2nlogn)
Expansión de mensajes 41
Longitud de llave privada bits de12pnlognbits
Longitud de llave pública bits de 3pnlogn
Dificultad de un ataque de fuerza bruta (n2!)pexp(12pnlogn)

Análisis de seguridad

Similitudes con el esquema de ElGamal

El protocolo es similar al protocolo de ElGamal en diseño y tiene las siguientes propiedades:

  • El problema de romper el protocolo Ko-Lee-Cheon-Hang-Park es equivalente a resolver el problema base, al igual que en el rompimiento del protocolo de ElGamal es equivalente a resolver el problema de Diffie-Hellman. En el esquema propuesto, el texto cifrado es:
(c,d)=(bxb1,H(abxa1b1)m)

Y desencriptar el texto cifrado m en un texto plano m es equivalente a conocer abxa1b1

  • Como cualquier otro sistema de cifrado de llave pública, es crítico usar una llave b diferente para cada sesión: Si la misma llave de sesión b es usada para encriptar m1 y m2 cuyos textos cifrados correspondientes son (c1,d1) y (c2,d2), luego m2 puede ser fácilmente computado de (m1,d1,d2) porque H(byb1)=m1d1=m2d2.

Ataque de fuerza bruta

Un posible ataque de fuerza bruta es computar a de axa1 o b de bxb1,lo cual es justamente un ataque al problema generalizado de búsqueda conjugada. Asuma que le ha sido dada una pareja (x,y) de trenzas en B+r, tal que y=axa1 para algún aLB. La trenza a puede ser elegida de un grupo infinito LB en teoría. Pero en un sistema práctico, el adversario puede generar todas las trenzas a=ΔuA1Ap en la forma canónica con algún límite razonable para p y revisar el punto en el que y=axa1 corresponde.

El número necesario es como mínimo (12!)p. Si el =45 y p=2, luego (12!)p>2139, lo cual muestra que el ataque de fuerza bruta es inútil.[3]

Referencias

Plantilla:Listaref

Bibliografía

  • I. Anshel and M. Anshel, From the Post-Markov theorem through decision problems to public-key cryptography, Amer. Math. Monthly 100 (1993), no. 9, 835–844.
  • I. Anshel, M. Anshel and D. Goldfeld, An algebraic method for public-key cryptography, Mathematical Research Letters 6 (1999) 287–291
  • E. Artin, Theory of braids, Annals of Math. 48 (1947), 101–126

Plantilla:Control de autoridades