fbpx
Wikipedia

Criptosistema de Merkle-Hellman

Merkle-Hellman (MH) fue uno de los primeros criptosistemas de llave pública y fue inventado por Ralph Merkle y Martin Hellman en 1978.[1]​ Aunque sus ideas eran elegantes, y mucho más simples que RSA, no tuvo el mismo éxito que este último, debido a que MH ya fue roto,[2]​ y además no ofrece funcionalidades para firmar.

Descripción

Merkle-Hellman es un criptosistema asimétrico, esto significa que para la comunicación, se necesitan dos llaves: una llave pública y una privada. Otra diferencia con RSA, es que sirve solo para cifrado, es decir, la llave pública es usada solo para cifrar (no para verificar firma) y la llave privada es usada solo para descifrar (no para firmar). De este modo, no se puede usar para tareas de autentificación por firma electrónica.

El algoritmo de Merkle-Hellman está basado en el problema de la mochila de decisión (un caso especial del problema de la mochila de optimización): dados una secuencia de números y un número, determinar si existe un subconjunto de la secuencia cuya suma dé dicho número. En general, es sabido que este problema es de clase NP-completo. Sin embargo, si la secuencia de números es supercreciente -- esto es, si cada elemento de la secuencia es mayor que la suma de todos los anteriores -- el problema es "fácil", y es posible resolverlo en tiempo polinómico con un simple algoritmo voraz.

Generación de las claves

En Merkle-Hellman, las claves están compuestas por secuencias. La clave pública es una secuencia "difícil", y la clave privada es una "fácil", o secuencia de valores supercrecientes, junto con dos números adicionales, un multiplicador y un módulo, los cuales son usados para convertir la secuencia supercreciente en una secuencia difícil. Estos mismos números son usados para transformar la suma de la subsecuencia de la secuencia "difícil" en la suma de la subsecuencia de la secuencia "fácil", la cual se puede solucionar en tiempo polinómico.

Cifrado

Para cifrar un mensaje, el cual debe ser una secuencia de bits de la misma longitud de la secuencia difícil, se eligen los elementos de la secuencia difícil que correspondan a bits en 1 del mensaje (mientras que los elementos correspondientes a bits en 0 son descartados). Luego se suman los elementos así elegidos, y el resultado de esto es el texto cifrado.

En caso que el mensaje no sea de la misma longitud de la llave, se subdivide en secuencias que tengan esta longitud y se aplica el mismo procedimiento.

Descifrado

El descifrado es posible, porque el multiplicador y el módulo usados para transformar la secuencia supercreciente (la llave privada) y por tanto "fácil" en la secuencia general (la llave pública) y por tanto difícil, también pueden ser usados para transformar el texto cifrado (representado por un número) en la suma de los elementos que conforman la subsecuencia supercreciente (una subsecuencia de una secuencia supercreciente, también es supercreciente). Luego, usando un algoritmo voraz, el problema "fácil" de la mochila puede ser resuelto usando O(n) operaciones, con lo cual se logra descifrar el mensaje.

Método Matemático

Generación de las claves

Para cifrar un mensaje de n-bits, elegir una secuencia supercreciente :

 

de n números naturales (distintos de cero). Elegir un número q (preferiblemente al azar), tal que

 

y otro número entero, r tal que mcd(r,q) = 1.

q es escogido de esta forma para asegurar la unicidad del texto cifrado. Si fuera menor, podría haber varios textos claros que resultarían en el mismo texto cifrado. r debe ser coprimo con q puesto que de otra forma podría no tener inverso en  . La existencia del inverso de r es necesaria para que se pueda realizar el descifrado.

A continuación, se calcula la secuencia:

 

La clave pública es   , mientras que la llave privada es  .

Cifrado

Para cifrar un mensaje de n-bits

 

donde   es el i-ésimo bit del mensaje y  , calcular

 .

El criptograma o texto cifrado es c.

Descifrado

Para descifrar el criptograma c, el receptor tiene que encontrar los bits del mensaje   tales que satisfacen

 .

Este problema sería difícil de resolver si los   fueran valores aleatorios, debido a que el receptor tendría que resolver una instancia del problema de la mochila, el cual se sabe que es NP-hard. Sin embargo, los valores   fueron elegidos de forma que el descifrado sea fácil si la clave privada   es conocida.

Para el descifrado se debe encontrar un entero s tal que es el inverso de r módulo q. Esto es, s satisface la ecuación :

 

o equivalentemente, existe un entero k tal que sr = kq + 1. Dado que r fue escogido como un coprimo de q es posible encontrar s y k usando el Algoritmo de Euclides extendido. Luego el receptor del criptograma c calcula:

 

Por tanto

 

Ya que   y   entonces

 

Con esto

 

La suma de todos los valores   es menor que q y por ende   también está en el intervalo  .

De este modo el receptor tiene que resolver el siguiente problema de la mochila.

 


Este problema es fácil debido a que la secuencia w es supercreciente.

El algoritmo avaro para resolver esto consiste en lo siguiente:

 Tomar el elemento más grande en  , digamos  . Si  , luego  , Sino   Disminuímos c' en   y repetimos estos pasos hasta que se haya alcanzado c'. 

El pseudo código para este algoritmo sería:

 While  {   If    then  , Else      } 

Este algoritmo no se puede usar para firmar puesto que el criptograma es un número (c) y no un texto, de este modo no se puede descifrar un mensaje claro y por ende no se puede firmar.

Referencias

  1. Ralph Merkle and Martin Hellman, Hiding Information and Signatures in Trapdoor Knapsacks, IEEE Trans. Information Theory, 24(5), September 1978, pp525–530.
  2. Adi Shamir, A Polynomial Time Algorithm for Breaking the Basic Merkle-Hellman Cryptosystem. CRYPTO 1982, pp279–288. . Archivado desde el original el 24 de abril de 2005. Consultado el 24 de abril de 2005. 
  •   Datos: Q1760368

criptosistema, merkle, hellman, merkle, hellman, primeros, criptosistemas, llave, pública, inventado, ralph, merkle, martin, hellman, 1978, aunque, ideas, eran, elegantes, mucho, más, simples, tuvo, mismo, éxito, este, último, debido, roto, además, ofrece, fun. Merkle Hellman MH fue uno de los primeros criptosistemas de llave publica y fue inventado por Ralph Merkle y Martin Hellman en 1978 1 Aunque sus ideas eran elegantes y mucho mas simples que RSA no tuvo el mismo exito que este ultimo debido a que MH ya fue roto 2 y ademas no ofrece funcionalidades para firmar Indice 1 Descripcion 1 1 Generacion de las claves 1 2 Cifrado 1 3 Descifrado 2 Metodo Matematico 2 1 Generacion de las claves 2 2 Cifrado 2 3 Descifrado 3 ReferenciasDescripcion EditarMerkle Hellman es un criptosistema asimetrico esto significa que para la comunicacion se necesitan dos llaves una llave publica y una privada Otra diferencia con RSA es que sirve solo para cifrado es decir la llave publica es usada solo para cifrar no para verificar firma y la llave privada es usada solo para descifrar no para firmar De este modo no se puede usar para tareas de autentificacion por firma electronica El algoritmo de Merkle Hellman esta basado en el problema de la mochila de decision un caso especial del problema de la mochila de optimizacion dados una secuencia de numeros y un numero determinar si existe un subconjunto de la secuencia cuya suma de dicho numero En general es sabido que este problema es de clase NP completo Sin embargo si la secuencia de numeros es supercreciente esto es si cada elemento de la secuencia es mayor que la suma de todos los anteriores el problema es facil y es posible resolverlo en tiempo polinomico con un simple algoritmo voraz Generacion de las claves Editar En Merkle Hellman las claves estan compuestas por secuencias La clave publica es una secuencia dificil y la clave privada es una facil o secuencia de valores supercrecientes junto con dos numeros adicionales un multiplicador y un modulo los cuales son usados para convertir la secuencia supercreciente en una secuencia dificil Estos mismos numeros son usados para transformar la suma de la subsecuencia de la secuencia dificil en la suma de la subsecuencia de la secuencia facil la cual se puede solucionar en tiempo polinomico Cifrado Editar Para cifrar un mensaje el cual debe ser una secuencia de bits de la misma longitud de la secuencia dificil se eligen los elementos de la secuencia dificil que correspondan a bits en 1 del mensaje mientras que los elementos correspondientes a bits en 0 son descartados Luego se suman los elementos asi elegidos y el resultado de esto es el texto cifrado En caso que el mensaje no sea de la misma longitud de la llave se subdivide en secuencias que tengan esta longitud y se aplica el mismo procedimiento Descifrado Editar El descifrado es posible porque el multiplicador y el modulo usados para transformar la secuencia supercreciente la llave privada y por tanto facil en la secuencia general la llave publica y por tanto dificil tambien pueden ser usados para transformar el texto cifrado representado por un numero en la suma de los elementos que conforman la subsecuencia supercreciente una subsecuencia de una secuencia supercreciente tambien es supercreciente Luego usando un algoritmo voraz el problema facil de la mochila puede ser resuelto usando O n operaciones con lo cual se logra descifrar el mensaje Metodo Matematico EditarGeneracion de las claves Editar Para cifrar un mensaje de n bits elegir una secuencia supercreciente w w 1 w 2 w n tal que w i 1 gt j 1 i w j displaystyle w w 1 w 2 w n mbox tal que w i 1 gt sum j 1 i w j de n numeros naturales distintos de cero Elegir un numero q preferiblemente al azar tal que q gt i 1 n w i displaystyle q gt sum i 1 n w i y otro numero entero r tal que mcd r q 1 q es escogido de esta forma para asegurar la unicidad del texto cifrado Si fuera menor podria haber varios textos claros que resultarian en el mismo texto cifrado r debe ser coprimo con q puesto que de otra forma podria no tener inverso en mod q displaystyle pmod q La existencia del inverso de r es necesaria para que se pueda realizar el descifrado A continuacion se calcula la secuencia b b 1 b 2 b n tal que b i r w i mod q displaystyle mathbf beta beta 1 beta 2 beta n mbox tal que beta i rw i pmod q La clave publica es b displaystyle beta mientras que la llave privada es w q r displaystyle w q r Cifrado Editar Para cifrar un mensaje de n bits a a 1 a 2 a n displaystyle mathbf alpha alpha 1 alpha 2 alpha n donde a i displaystyle mathbf alpha i es el i esimo bit del mensaje y a i 0 1 displaystyle mathbf alpha i in 0 1 calcular c i 1 n a i b i displaystyle c sum i 1 n alpha i beta i El criptograma o texto cifrado es c Descifrado Editar Para descifrar el criptograma c el receptor tiene que encontrar los bits del mensaje a i displaystyle alpha i tales que satisfacen c i 1 n a i b i displaystyle c sum i 1 n alpha i beta i Este problema seria dificil de resolver si los b i displaystyle beta i fueran valores aleatorios debido a que el receptor tendria que resolver una instancia del problema de la mochila el cual se sabe que es NP hard Sin embargo los valores b i displaystyle beta i fueron elegidos de forma que el descifrado sea facil si la clave privada w q r displaystyle w q r es conocida Para el descifrado se debe encontrar un entero s tal que es el inverso de r modulo q Esto es s satisface la ecuacion r s 1 mod q displaystyle rs equiv 1 pmod q o equivalentemente existe un entero k tal que sr kq 1 Dado que r fue escogido como un coprimo de q es posible encontrar s y k usando el Algoritmo de Euclides extendido Luego el receptor del criptograma c calcula c c s mod q displaystyle c equiv cs pmod q Por tanto c c s i 1 n a i b i s mod q displaystyle c equiv cs equiv sum i 1 n alpha i beta i s pmod q Ya que r s 1 mod q displaystyle rs equiv 1 pmod q y b i r w i mod q displaystyle mathbf beta i equiv rw i pmod q entonces b i s w i r s w i mod q displaystyle beta i s equiv w i rs equiv w i pmod q Con esto c i 1 n a i w i mod q displaystyle c equiv sum i 1 n alpha i w i pmod q La suma de todos los valores w i displaystyle w i es menor que q y por ende i 1 n a i w i mod q displaystyle sum i 1 n alpha i w i bmod q tambien esta en el intervalo 0 q 1 displaystyle mathbf 0 q 1 De este modo el receptor tiene que resolver el siguiente problema de la mochila c i 1 n a i w i displaystyle c sum i 1 n alpha i w i Este problema es facil debido a que la secuencia w es supercreciente El algoritmo avaro para resolver esto consiste en lo siguiente Tomar el elemento mas grande en w displaystyle w digamos w k displaystyle w k Si w k gt c displaystyle w k gt c luego a k 0 displaystyle alpha k 0 Sino a k 1 displaystyle alpha k 1 Disminuimos c en w k a k displaystyle w k alpha k y repetimos estos pasos hasta que se haya alcanzado c El pseudo codigo para este algoritmo seria While c gt 0 displaystyle c gt 0 w k extract max w displaystyle w k mbox extract max w If w k gt c displaystyle w k gt c then a k 0 displaystyle alpha k 0 Else a k 1 displaystyle alpha k 1 c c w k a k displaystyle c c w k alpha k Este algoritmo no se puede usar para firmar puesto que el criptograma es un numero c y no un texto de este modo no se puede descifrar un mensaje claro y por ende no se puede firmar Referencias Editar Ralph Merkle and Martin Hellman Hiding Information and Signatures in Trapdoor Knapsacks IEEE Trans Information Theory 24 5 September 1978 pp525 530 Adi Shamir A Polynomial Time Algorithm for Breaking the Basic Merkle Hellman Cryptosystem CRYPTO 1982 pp279 288 Copia archivada Archivado desde el original el 24 de abril de 2005 Consultado el 24 de abril de 2005 Datos Q1760368Obtenido de https es wikipedia org w index php title Criptosistema de Merkle Hellman amp oldid 125291618, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos