SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
CRIPTOGRAFÍA CLÁSICA
Cifrado Asimétrico: Rabin,
Merkle-Hellman
Docente: Juan Carlos Broncano Torres
FISE-UTP Lima-Perú
Criptograma RABIN
Este criptosistema es asimétrico cuya seguridad esta basada en la
complejidad del problema de la factorización y el problema de la
raíz cuadrada modulo un número compuesto N , tiene cierta
similaridad con el RSA. El algoritmo de este sistema criptográfico
fue publicado en enero de 1979 por el investigador de origen israelí
Michael Oser Rabin, quien junto con Dana Scott ganaron el premio
Turing por su trabajo sobre autómatas no deterministas, el cual es
un concepto clave para la teoría de complejidad computacional, en
particular para describir las clases de complejidad P y NP.
Antes de explicar el criptosistema de Rabin sería conveniente aclarar el concepto de
raíces en operaciones modulares. Se dice que la raíz de un número es aquel que
multiplicado por sí mismo, da ese número. Pues bien, en Aritmetica modular, esto sigue
siendo así. Pero claro, un número al cuadrado en módulo n puede ser que sea mayor que
ese n, por lo que al hacer módulo, se reduce su valor. Por lo tanto, un mismo número
puede tener varias raíces. En el álgebra habitual, un número tiene 2 raíces reales (la
positiva y la negativa), pero cuando n es el producto de 2 primos, existen valores que
tienen 4 raíces distintas. De hecho, lo normal es que tengan 4 raíces. Y tendrán 4 raíces
todos los número que no tengan como divisor a uno de los dos primos con los que se
generó n, en cuyo caso tendrán sólo 2.
Criptosistema RABIN
Dado un número N de 10100 cifras, N = p.q con p y q primos tal que. p≡3mod4; q≡3mod4.
Sea M = C =ZN . Definimos el espacio de claves como:
K = { (n,p,q,β) / 0≤ β ≤ n-1 }
Para cada clave k∈ K, dada por k= (n,p,q, β) la regla de cifrado: encRAB:G → G es
definido como: encRAB(x):y=x(x+ β)modn
y el Estado de descifrado: descELG: G → G es definido como: descRAB(y)= 24
2

 y
la clave pública Rabin es (N, β) y p;q se mantienen en privado. La función de encripción
no es inyectiva, así que la decripción es ambigua pues existe cuatro posibles resultados.
En general, el receptor del mensaje no tiene forma de distinguir entre estos cuatro
textos planos posibles a menos que el texto plano contenga suficiente redundancia
como para eliminar tres de las cuatro posibilidades.
Un elemento clave para poder calcular es el hecho que p≡3mod 4 y q≡3mod 4, pues
en este caso tenemos un algoritmo determinista polinomial que nos permite calcular
las raíces cuadradas de residuos cuadráticos módulo p o q.
Observación
Algoritmo de Rabin
El sistema de llave asimétrica de Rabin se basa en el problema de cálcular raíces
cuadradas módulo un número compuesto. Este problema se ha demostrado que es
equivalente al de la factorización de dicho número.
En primer lugar escogemos dos números primos, p y q, ambos congruentes con 3mod 4.
Estos primos son la clave privada. La clave pública es su producto, y luego se
elige al azar un valor: 0 ≤ < n-1
Para codificar un mensaje m, simplemente se calcula:
  nbmmc mod
La decodificación del mensaje se hace calculando lo siguiente:
qpn .
24
2

 cm
Observación
Es interesante el hecho de que para el caso en que un primo p sea congruente a 1
módulo 4 no se conoce ningún algoritmo polinomial determinista para hallar las raíces
cuadradas de residuos cuadráticos modulo p.

No hay actualmente un estandar para el algoritmo Rabin pero es explicado en varios libros.
El proyecto IEEE P1363 podría proponer un estandar y de esta manera hacerlo ampliamente
utilizado.
Diseño e Implementación del Sistema de Encriptación de Rabin
Para el desarrollo del diseño e Implementación se tomaran en consideración dos cosas:
 El lenguaje de programación.
 El protocolo de encriptación y desencriptación
Estos dos punto se deben principalmente a que estos determinan la forma de organizar
el concepto del modelo de programación, y la forma de poder controlar el flujo de datos
entre los diferentes módulos.
Aritmética de precisión Infinita.
Uno de los problemas principales que se enfrenta con los lenguajes de programación, es
implementar la Aritmética de precisión infinita. Por ejemplo en C o C++, esta
implementación se debe de realizar a fuerza, si se quiere realizar un criptosistema seguro.
Que ofrece Java para la Aritmética de precisión Infinita:
 Package java.math Description
 Class BigInteger.
El Criptosistema de Merkle y Hellman
Es uno de los inventores de la criptografía de clave pública, el inventor de
hash criptográfica, y más recientemente, un investigador y conferencista en
la nanotecnología molecular y la criónica. Merkle aparece en la novela de
ciencia ficción La era del diamante, que implica la nanotecnología.
Merkle era el gerente de desarrollo compilador Elxsi a partir de 1980. En
1988, se convirtió en un científico de investigación en Xerox PARC. En 1999
se convirtió en un teórico de la nanotecnología para Zyvex.
Hellman es famoso por ser el inventor junto a Diffie de la criptografía de
clave pública y junto con Ralph Merkle publicaron en 1976 el New
Directions in Criptografhy que introducía un cambio radical, un nuevo
método de distribución de claves que solucionó uno de los mayores
problemas de la criptografía hasta entonces, la distribución de claves.
Es autor de más de setenta trabajos técnicos ( haga clic para ver la lista de
la publicación) , diez patentes de Estados Unidos y un número de
equivalentes extranjeros.
Problema de la mochila
En algoritmia, el problema de la mochila, comúnmente abreviado por
KP (del inglés Knapsack problem) es un problema de optimización
combinatoria, es decir, que busca la mejor solución entre un conjunto
de posibles soluciones a un problema. Modela una situación análoga
al llenar una mochila, incapaz de soportar más de un peso
determinado, con todo o parte de un conjunto de objetos, cada uno
con un peso y valor específicos. Los objetos colocados en la mochila deben maximizar el
valor total sin exceder el peso máximo.
El problema de la mochila es uno de los 21 problemas NP-completos de
Richard Karp, establecidos por el informático teórico en un famoso artículo
de 1972. Ha sido intensamente estudiado desde mediados del siglo XX y se
hace referencia a él en el año 1897, en un artículo de George Mathews
Ballard.
Si bien la formulación del problema es sencilla, su resolución es más
compleja, la estructura única del problema, y el hecho de que se presente
como un subproblema de otros problemas más generales, lo convierten
en un problema frecuente en la investigación.
El problema matemático de la mochila, referido ahora a números y no a los elementos
físicos que puedan entrar en ella, se plantea como sigue:
Dada la siguiente secuencia de m números enteros positivos
S = {S1, S2, S3, ..., Sm-2, Sm-1, Sm}
y un valor u objetivo T, se pide encontrar un subconjunto de S
SS = {Sa, Sb, ..., Sj}
que cumpla con ese objetivo T:
T =  SS = Sa + Sb + ... + Sj
Solución al problema de la mochila
Tenemos la mochila S = {20, 5, 7, 36, 13, 2} con m = 6 y el valor T = 35. Se pide encontrar
una solución, si es que ésta existe. En este momento no importa que los valores de la
mochila no estén ordenados.
SOLUCIÓN: Sin hacer ningún cálculo mental, podemos recorrer todos los valores (se
puede descartar el elemento S4 pues es mayor que el objetivo T) de la mochila S, bien
de izquierda a derecha o al revés (da igual el sentido elegido) y restaremos el elemento
i-ésimo si es menor o igual que el objetivo T en esa etapa del algoritmo y termina
cuando T = 0, como se indica:
S = {S1, S2, S3, S4, S5, S6} = {20, 5, 7, 36, 13, 2}; T = 35
S1=20 ¿Es menor que objetivo T=35? Sí  T = 35-20 = 15
S2=5 ¿Es menor que objetivo T=15? Sí  T = 15-5 = 10
S3=7 ¿Es menor que objetivo T=10? Sí  T = 10-7 = 3
S4=36 ¿Es menor que objetivo T=3? No  T = 3
S5=13 ¿Es menor que objetivo T=3? No  T = 3
S6=2 ¿Es menor que objetivo T=3? Sí  T = 3-2 = 1  0
Se ha recorrido toda la mochila y no se ha encontrado solución.
En cambio sí existe una solución:
SS = {S1+S5+S6} = 20+13+2 = 35
Vi = [1,0,0,0,1,1]
¿Puede haber soluciones múltiples?
Si para la misma mochila S = {20, 5, 7, 36, 13, 2} buscamos ahora el valor T = 27,
encontramos tres soluciones válidas:
SS1 = {S1+S3} = 20+7; SS2 = {S1+S2+S6} = 20+5+2 ; SS3 = {S2+S3+S5+S6} = 5+7+13+2
Esto sería inadmisible en un sistema de cifra puesto que el resultado de una operación
de descifrado debe ser única ya que proviene de un único mensaje.
La solución será el uso de las denominadas mochilas simples en que la solución al
problema de la mochila, si existe, es única.
Esto sería inadmisible en un sistema de cifra puesto que el resultado de una operación
de descifrado debe ser única ya que proviene de un único mensaje.
La solución será el uso de las denominadas mochilas simples en que la solución al
problema de la mochila, si existe, es única.
Mochila simple o supercreciente
Una mochila es simple o supercreciente si el elemento Sk es mayor que la suma de los
elementos que le anteceden:
k-1
Sk   Sj
j = 1
Por ejemplo, la mochila S = {2, 3, 7, 13, 28, 55, 110, 221} con m = 8 elementos es
supercreciente y la solución para un objetivo T = 148 es única: Vi = [S2+S3+S5+S7].
Para resolver cualquier valor T válido para esta mochila, ésta se recorre de derecha a
izquierda (desde el valor mayor al menor) una sola vez con el algoritmo ya visto.
Compruebe que para T = 289, 196 y 353 los vectores son V1 = 00010101; V2 = 01001110;
V3 = 10110011.
Operación de cifra con mochila simple
Se representa la información en binario y se pasan los bits por la mochila.
Con la mochila S = {2, 4, 10, 19, 40} de m = 5 elementos cifraremos el mensaje
M = ADIOS.
SOLUCIÓN
Usando código ASCII/ANSI: A = 01000001; D = 01000100; I = 01001001; O = 01001111;
S = 01010011
M = 01000 00101 00010 00100 10010 10011 11010 10011
C = (4), (10+40), (19), (10), (2+19), (2+19+40), (2+4+19), (2+19+40)
C = 4, 50, 19, 10, 21, 61, 25, 61
Descifrado con mochila simple
C = 4, 50, 19, 10, 21, 61, 25, 61 S = {2, 4, 10, 19, 40}
La operación de descifrado es elemental: pasamos por la mochila los valores de C,
encontramos el vector Vi y por último agrupamos el resultado en grupos de 8 bits.
En este caso:
4  Vi = 01000
50  Vi = 00101, etc.
Se forma grupos de m en m
Se multiplica bloque a bloque
los elementos de M con S
Se calcula los vi usando
el algoritmo propuesto
Criptosistema de Merkle-Hellman
En 1978 Ralph Merkle y Martin Hellman proponen un sistema de cifra de clave pública
denominado Mochila con Trampa.
El algoritmo se basa en crear una mochila difícil a partir de una mochila simple de forma
que el cifrado se haga con la mochila difícil y el descifrado con la mochila simple o fácil.
Se puede pasar fácilmente de la mochila simple a la difícil o viceversa usando una
trampa.
La trampa será nuestra clave secreta. La mochila difícil será
nuestra clave pública.
Una función unidireccional
Diseño mochila de Merkle y Hellman
1. Se selecciona una mochila supercreciente de m elementos:
S’ = {S1’, S2’, ..., Sm’}.
2. Se elige un entero  (módulo de trabajo) mayor que la suma de los
elementos de la mochila.
m
   Si’
i = 1
más fácil:
  2Sm’
3. Se elige un entero  primo relativo con .
mcd (,) = 1
Se asegura el
inverso
Se recomienda que  no tenga factores con los elementos de S’
4. Se multiplica S’ por  mod .
Si = Si’ mod 
Obteniendo una mochila difícil S = {S1, S2, ..., Sm}
5. Se calcula el inverso de  en el cuerpo .
-1 = inv (,)
Clave privada: , -1
Clave pública: mochila S
CIFRADO: C = S  M
como S =   S’ mod 
C =   S’ M mod 
DESCIFRADO: M = -1  C mod 
Entonces obtenemos: S’ M
Esto se interpreta como
encontrar los vectores que
cumplan con un valor de T.
Parámetros para el diseño de mochilas
a) Tamaño de la mochila m  100
b) Módulo  uniforme en el siguiente intervalo: [22m+1+1, 22m+2-1  (2m+2) bits
Si m = 100: todos los elementos de S son de 202 bits.
c) Valores de Si’ elegidos uniformemente en el intervalo: [(2i-1-1).2m +1, 2i-1.2m
Si m = 100: 1  S1’  2100  S2’  2101  S3’  2102 ...
d) Elegir un valor x en el intervalo [2, -2. El factor  se calcula como:  = mcd(, x)
Mochila con parámetros proporcionales
a) Mochila con m = 6
b) Intervalo : [22m+1+1, 22m+2-1 = [226+1+1, 226 +2-1 =[213+1, 214+1 = [8193, 16385
Sea  = 13515
c) Elección de los valores S’i:
i=1 : [(21-1-1)26+1, (21-1) 26 1  S1’  64
i=2 : [(22-1-1)26+1, (22-1) 26 65  S2’  128
i=3 : [(23-1-1)26+1, (23-1) 26 193  S3’  256
i=4 : [(24-1-1)26+1, (24-1) 26 449  S4’  512
i=5 : [(25-1-1)26+1, (25-1) 26 961  S5’  1024
i=6 : [(26-1-1)26+1, (26-1) 26 1985  S6’  2048
UNA ELECCIÓN
S1’ = 39
S2’ = 72
S3’ = 216
S4’ = 463
S5’ = 1.001
S6’ = 1.996
Todos estos elementos serán de (2m+2) = 14 bits
d) Cálculo del factor . Buscamos un valor x en el intervalo [2, -2 = [2, 13513, por
ejemplo x = 9805.
Como el máximo común divisor entre  = 13515 y x = 9805 es 265, luego
 = 9805/265 = 37.
Vamos a elegir:
 = 37 de forma que -1 = 4018 inv (37, 13515) = 4018
Luego, la mochila simple y la clave privada serán:
Mochila simple: S’ = {39,72, 216, 463, 1001, 1996}
Clave Privada:  = 13515 -1 = 4018
Mochila simple:
S’ = {39, 72, 216, 463, 1.001, 1.996} Módulo:  = 13515 Factor multiplicador:
 = 37; -1 = 4.018  Clave privada
S1 = 3937 mod 13515 = 1443
S2 = 7237 mod 13515 = 2664
S3 = 21637 mod 13515 = 7992
S4 = 46337 mod 13515 = 3616
S5 = 100137 mod 13515 =10007
S6 = 199637 mod 13515 = 6277
Mochila difícil: S = {1.443, 2.664, 7.992, 3.616, 10.007, 6.277}  Clave pública
Fortaleza de las mochilas
En el año 1982 Adi Shamir y Richard Zippel encuentran debilidades a las mochilas de
Merkle-Hellman:
Si se conoce el módulo  (o bien éste puede deducirse)
Y si los dos primeros elementos (S1 y S2) de la mochila difícil se corresponden con los
dos primeros elementos (S1’ y S2’) de la mochila simple y son primos con 
 Entonces podemos generar la mochila simple a partir de la difícil ya que
encontraremos la clave secreta -1 .Esta debilidad no hace recomendable el uso de
mochilas Merkle y Hellman para el cifrado de la información
Criptoanálisis de Shamir y Zippel
Este ataque exige fuertes restricciones. Para una mochila con 100 elementos, los autores
suponen:
a) Que los dos primeros elementos de S’ de 100 y 101 bits son mucho más pequeños
que el módulo  de 202 bits.
b) Que podemos identificar los elementos S1 y S2 en la mochila difícil y hacerlos
corresponder con S1’ y S2’.
c) Que conocemos el módulo  o podemos deducirlo.
a) Con estos datos se trata de encontrar los valores de S1’ y S2’ además del factor de
multiplicación .
b) Con estos valores generamos la mochila fácil S.
Pasos del ataque de Shamir y Zippel
1. Se calcula q = (S1/S2) mod 
Como Si = Si’  mod  entonces:
q = (S1’/S2’) mod  = [S1’ inv (S2’, )] mod 
Esto implica una condición fuerte: mcd (S2’, ) = 1
2. Se calculan todos los múltiplos modulares del valor q con multiplicadores en el
rango [1, 2m+1] = [1, 2101]
CM = {1q mod , 2q mod , ..., 2m+1q mod }
3. El candidato para S1’ será el valor más pequeño de CM puesto que ese
elemento podría ser el más pequeño de la mochila fácil S’.
4. Encontrado el candidato para S1’se calcula:
 = (S1/S1’) mod  = [S1 inv (S1’, )] mod 
Esto implica otra condición fuerte: mcd (S1’, ) = 1
5. Conocido  encontramos -1 = inv (, ) y así calculamos todos los elementos de la
mochila Si’ = Si  -1 mod  que debería ser de tipo supercreciente o fácil.
6. Si no se genera una mochila supercreciente, se elige el siguiente valor más pequeño del
conjunto CM y así hasta recorrer todos sus valores. Si con este conjunto CM no se
obtiene una mochila simple, se repite el punto 2 tomando ahora valores en el rango 2m+i
con i = 2, 3, etc. Por lo general el ataque prospera con el primer conjunto CM.
Ejemplo de ataque de Shamir y Zippel
La clave pública de un sistema de mochila Merkle-Hellman es:
S = {S1, S2, S3, S4, S5} = {3.241, 572, 2.163, 1.256, 3.531}
Si de alguna forma hemos conseguido conocer que el módulo  = 4089, se pide
encontrar la mochila fácil S’ = {S1’, S2’, S3’, S4’, S5’}.
Solución:
• q = S1/S2 mod  = S1 inv (S2, ) mod . Calculamos ahora inv (S2, ) es decir
inv (572, 4,089) = 309, luego q = 3.241309 mod 4089 = 599
• Múltiplos CM = {1q mod , 2q mod , 3q mod , ..., 64q mod } puesto que la
mochila tiene m = 5 elementos y el intervalo será [1, 25+1].
• Luego CM = [599, 1198, 1.797, 2396, 2995, 3594, 104, 703, 1302, 1901, 2500, 3099,
3698, 208, 807, 1406, 2005, 2604, 3.203, 3802, 312, 911, 1510, 2109, 2708, 3307, 3906,
416, 1015, 1614, 2213, 2812, 3411, 4010, 520, 1119, 1718, 2317, 2916, 3515, 25, 624,
1223, 1822, 2421, 3020, 3619, 129,728, 1327, 1926, 2525, 3124, 3723, 233, 832, 1431,
2030, 2629, 3228, 3827, 337, 936, 1535].
• Suponemos que el número más pequeño de CM es candidato a S1’ = 25.
• El factor de multiplicación sería  = (S1/S1’) = S1  inv (S1’, ) mod .
• Como inv (S1’, ) = inv (25, 4089) = 2617, el factor de multiplicación  = 32412617
mod 4089 = 1111.
• Por lo tanto su valor inverso será -1 = inv (, ) = inv (1111, 4089). Luego -1 = 622.
• Multiplicamos ahora los valores S de la mochila difícil por -1 a ver si obtenemos una
mochila supercreciente S’ (Si’ = Si  -1 mod ):
• S1’ = 25 (valor elegido como candidato del conjunto CM)
• S2’ = S2  -1 mod  = 572  622 mod 4.089 = 41
• S3’ = S3  -1 mod  = 2.163  622 mod 4.089 = 105
• S4’ = S4  -1 mod  = 1.256  622 mod 4.089 = 233
• S5’ = S5  -1 mod  = 3.531  622 mod 4.089 = 489
• Como la mochila S’ = {25, 41, 105, 233, 489} es supercreciente, el ataque ha
prosperado y hemos encontrado la clave privada.
Uso de los criptosistemas de mochilas
Existen varios algoritmos propuestos como sistemas de cifra usando el problema de la
mochila: el de Graham-Shamir, Chor-Rivest, etc., pero su estudio aquí no tiene sentido.
No obstante todos han sucumbido a los criptoanálisis y en la actualidad en el único
entorno que se usan es en la protección de diversos programas de aplicación, en forma
de hardware que se conecta en la salida paralela del computador para descifrar el código
ejecutable de esa aplicación dejando, sin embargo, activa la salida a impresora. De esta
manera sólo en aquel sistema con la mochila instalada se puede ejecutar el programa.
No se usa en comunicaciones.

Más contenido relacionado

La actualidad más candente

Español estructurado
Español estructuradoEspañol estructurado
Español estructuradoJorge Garcia
 
Cinemática Inversa
Cinemática InversaCinemática Inversa
Cinemática Inversajonathanthan
 
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.Bryan Aguilar Yaguana
 
Ejemplo de Programación Dinámica
Ejemplo de Programación Dinámica Ejemplo de Programación Dinámica
Ejemplo de Programación Dinámica Johanna Castilla
 
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...JAVIER SOLIS NOYOLA
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalAngel Vázquez Patiño
 
Circuito de Hamilton
Circuito de HamiltonCircuito de Hamilton
Circuito de HamiltonVicentino
 
Algoritmo de dijkstra
Algoritmo de dijkstraAlgoritmo de dijkstra
Algoritmo de dijkstraKeily Solano
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y primfher969
 
Método de romberg
Método de rombergMétodo de romberg
Método de rombergTensor
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
Sistemas difusos
Sistemas difusosSistemas difusos
Sistemas difusosHugo Banda
 
Automata Finito No Determinista
Automata Finito No DeterministaAutomata Finito No Determinista
Automata Finito No DeterministaJean Bernard
 

La actualidad más candente (20)

Ángulos De Euler
Ángulos De EulerÁngulos De Euler
Ángulos De Euler
 
Español estructurado
Español estructuradoEspañol estructurado
Español estructurado
 
Cinemática Inversa
Cinemática InversaCinemática Inversa
Cinemática Inversa
 
Grafos 8.5.1
Grafos 8.5.1Grafos 8.5.1
Grafos 8.5.1
 
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
 
Modelo de redes m jejorado11
Modelo de redes m jejorado11Modelo de redes m jejorado11
Modelo de redes m jejorado11
 
Ejemplo de Programación Dinámica
Ejemplo de Programación Dinámica Ejemplo de Programación Dinámica
Ejemplo de Programación Dinámica
 
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de Kruskal
 
Circuito de Hamilton
Circuito de HamiltonCircuito de Hamilton
Circuito de Hamilton
 
Algoritmo de dijkstra
Algoritmo de dijkstraAlgoritmo de dijkstra
Algoritmo de dijkstra
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y prim
 
Método de romberg
Método de rombergMétodo de romberg
Método de romberg
 
Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Sistemas difusos
Sistemas difusosSistemas difusos
Sistemas difusos
 
Automata Finito No Determinista
Automata Finito No DeterministaAutomata Finito No Determinista
Automata Finito No Determinista
 
Problema del barbero durmiente
Problema del barbero durmienteProblema del barbero durmiente
Problema del barbero durmiente
 
20 arbol de_extension_minima
20 arbol de_extension_minima20 arbol de_extension_minima
20 arbol de_extension_minima
 

Similar a criptosistema Rabin, Merkle-Hellman

Fundamentos matematicos para la criptografia asimetrica
Fundamentos matematicos para la criptografia asimetricaFundamentos matematicos para la criptografia asimetrica
Fundamentos matematicos para la criptografia asimetricaJuan Carlos Broncanotorres
 
Matematicas para la Olimpiada
Matematicas para la OlimpiadaMatematicas para la Olimpiada
Matematicas para la OlimpiadaJoemmanuel Ponce
 
Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Spimy
 
Quadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplosQuadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplosDaniel Cam Urquizo
 
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)Spimy
 
Probabilidad y estadistica
Probabilidad y estadisticaProbabilidad y estadistica
Probabilidad y estadisticaSofia' Becerra
 
Diffie hellman expocicion
Diffie hellman expocicionDiffie hellman expocicion
Diffie hellman expocicionalex paz
 
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Ameth1991
 
Examenes uni 2009 2015-i
Examenes uni 2009 2015-iExamenes uni 2009 2015-i
Examenes uni 2009 2015-iEYLENSAN
 
Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2Meme delaTower
 
Ejercicios detallados del obj 7 mat i (175 176-177
Ejercicios detallados del obj 7 mat i (175 176-177Ejercicios detallados del obj 7 mat i (175 176-177
Ejercicios detallados del obj 7 mat i (175 176-177Jonathan Mejías
 
5to CusContest (PS)
5to CusContest (PS)5to CusContest (PS)
5to CusContest (PS)berthin
 

Similar a criptosistema Rabin, Merkle-Hellman (20)

2.6 aplicaciones
2.6 aplicaciones2.6 aplicaciones
2.6 aplicaciones
 
13 ciframochilas
13 ciframochilas13 ciframochilas
13 ciframochilas
 
Fundamentos matematicos para la criptografia asimetrica
Fundamentos matematicos para la criptografia asimetricaFundamentos matematicos para la criptografia asimetrica
Fundamentos matematicos para la criptografia asimetrica
 
Matematicas para la Olimpiada
Matematicas para la OlimpiadaMatematicas para la Olimpiada
Matematicas para la Olimpiada
 
Informe
InformeInforme
Informe
 
Mate derivadas
Mate derivadasMate derivadas
Mate derivadas
 
Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)
 
Quadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplosQuadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplos
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
 
Probabilidad y estadistica
Probabilidad y estadisticaProbabilidad y estadistica
Probabilidad y estadistica
 
INF_JARCH
INF_JARCHINF_JARCH
INF_JARCH
 
Criptofgrafia sobre curvas elípticas
Criptofgrafia sobre curvas elípticasCriptofgrafia sobre curvas elípticas
Criptofgrafia sobre curvas elípticas
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Diffie hellman expocicion
Diffie hellman expocicionDiffie hellman expocicion
Diffie hellman expocicion
 
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
 
Examenes uni 2009 2015-i
Examenes uni 2009 2015-iExamenes uni 2009 2015-i
Examenes uni 2009 2015-i
 
Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2
 
Ejercicios detallados del obj 7 mat i (175 176-177
Ejercicios detallados del obj 7 mat i (175 176-177Ejercicios detallados del obj 7 mat i (175 176-177
Ejercicios detallados del obj 7 mat i (175 176-177
 
5to CusContest (PS)
5to CusContest (PS)5to CusContest (PS)
5to CusContest (PS)
 

Más de Juan Carlos Broncanotorres

PRIMERA PRACTICA CALIFICADA MET MATEMATICOS DE TELECOMUNIACIONES II
PRIMERA PRACTICA CALIFICADA MET MATEMATICOS DE TELECOMUNIACIONES IIPRIMERA PRACTICA CALIFICADA MET MATEMATICOS DE TELECOMUNIACIONES II
PRIMERA PRACTICA CALIFICADA MET MATEMATICOS DE TELECOMUNIACIONES IIJuan Carlos Broncanotorres
 
Problemas sobre propabilidad Condicionada y Teorema de Bayes
Problemas sobre propabilidad Condicionada y Teorema de BayesProblemas sobre propabilidad Condicionada y Teorema de Bayes
Problemas sobre propabilidad Condicionada y Teorema de BayesJuan Carlos Broncanotorres
 
Hoja de trabajo sesión 02, guía deducción de modelos matematicos
Hoja de trabajo sesión 02, guía deducción de  modelos matematicosHoja de trabajo sesión 02, guía deducción de  modelos matematicos
Hoja de trabajo sesión 02, guía deducción de modelos matematicosJuan Carlos Broncanotorres
 

Más de Juan Carlos Broncanotorres (20)

S053-Limite.pptx
S053-Limite.pptxS053-Limite.pptx
S053-Limite.pptx
 
funciones parte 01
funciones parte 01funciones parte 01
funciones parte 01
 
numeros complejos
numeros complejosnumeros complejos
numeros complejos
 
criptosistema ELGAMAL
criptosistema ELGAMALcriptosistema ELGAMAL
criptosistema ELGAMAL
 
CRISPTOSISTEMA RSA MEJORADO
CRISPTOSISTEMA RSA MEJORADOCRISPTOSISTEMA RSA MEJORADO
CRISPTOSISTEMA RSA MEJORADO
 
Critografia Asimetrica el RSA
Critografia Asimetrica el RSACritografia Asimetrica el RSA
Critografia Asimetrica el RSA
 
primera practica calificada de criptografía
primera practica calificada de criptografíaprimera practica calificada de criptografía
primera practica calificada de criptografía
 
PRIMERA PRACTICA CALIFICADA MET MATEMATICOS DE TELECOMUNIACIONES II
PRIMERA PRACTICA CALIFICADA MET MATEMATICOS DE TELECOMUNIACIONES IIPRIMERA PRACTICA CALIFICADA MET MATEMATICOS DE TELECOMUNIACIONES II
PRIMERA PRACTICA CALIFICADA MET MATEMATICOS DE TELECOMUNIACIONES II
 
Metodos mat de tele ii 1 -
Metodos mat  de tele ii  1 -Metodos mat  de tele ii  1 -
Metodos mat de tele ii 1 -
 
Cuidades Inteligentes
Cuidades InteligentesCuidades Inteligentes
Cuidades Inteligentes
 
Historia de la Criptografía II
Historia de la Criptografía IIHistoria de la Criptografía II
Historia de la Criptografía II
 
Teoria de Numeros
Teoria de Numeros Teoria de Numeros
Teoria de Numeros
 
Problemas sobre propabilidad Condicionada y Teorema de Bayes
Problemas sobre propabilidad Condicionada y Teorema de BayesProblemas sobre propabilidad Condicionada y Teorema de Bayes
Problemas sobre propabilidad Condicionada y Teorema de Bayes
 
Criptosistemas
CriptosistemasCriptosistemas
Criptosistemas
 
Historia de la Criptografia 3
Historia de la Criptografia 3Historia de la Criptografia 3
Historia de la Criptografia 3
 
Ejercicios Probabilidades
Ejercicios ProbabilidadesEjercicios Probabilidades
Ejercicios Probabilidades
 
Probabilidad Condicional
Probabilidad CondicionalProbabilidad Condicional
Probabilidad Condicional
 
Defición de Probabilidades
Defición de ProbabilidadesDefición de Probabilidades
Defición de Probabilidades
 
Historia de la criptografia 1
Historia de la criptografia  1Historia de la criptografia  1
Historia de la criptografia 1
 
Hoja de trabajo sesión 02, guía deducción de modelos matematicos
Hoja de trabajo sesión 02, guía deducción de  modelos matematicosHoja de trabajo sesión 02, guía deducción de  modelos matematicos
Hoja de trabajo sesión 02, guía deducción de modelos matematicos
 

Último

Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 

Último (20)

Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 

criptosistema Rabin, Merkle-Hellman

  • 1. CRIPTOGRAFÍA CLÁSICA Cifrado Asimétrico: Rabin, Merkle-Hellman Docente: Juan Carlos Broncano Torres FISE-UTP Lima-Perú
  • 2. Criptograma RABIN Este criptosistema es asimétrico cuya seguridad esta basada en la complejidad del problema de la factorización y el problema de la raíz cuadrada modulo un número compuesto N , tiene cierta similaridad con el RSA. El algoritmo de este sistema criptográfico fue publicado en enero de 1979 por el investigador de origen israelí Michael Oser Rabin, quien junto con Dana Scott ganaron el premio Turing por su trabajo sobre autómatas no deterministas, el cual es un concepto clave para la teoría de complejidad computacional, en particular para describir las clases de complejidad P y NP. Antes de explicar el criptosistema de Rabin sería conveniente aclarar el concepto de raíces en operaciones modulares. Se dice que la raíz de un número es aquel que multiplicado por sí mismo, da ese número. Pues bien, en Aritmetica modular, esto sigue siendo así. Pero claro, un número al cuadrado en módulo n puede ser que sea mayor que ese n, por lo que al hacer módulo, se reduce su valor. Por lo tanto, un mismo número puede tener varias raíces. En el álgebra habitual, un número tiene 2 raíces reales (la positiva y la negativa), pero cuando n es el producto de 2 primos, existen valores que tienen 4 raíces distintas. De hecho, lo normal es que tengan 4 raíces. Y tendrán 4 raíces todos los número que no tengan como divisor a uno de los dos primos con los que se generó n, en cuyo caso tendrán sólo 2.
  • 3. Criptosistema RABIN Dado un número N de 10100 cifras, N = p.q con p y q primos tal que. p≡3mod4; q≡3mod4. Sea M = C =ZN . Definimos el espacio de claves como: K = { (n,p,q,β) / 0≤ β ≤ n-1 } Para cada clave k∈ K, dada por k= (n,p,q, β) la regla de cifrado: encRAB:G → G es definido como: encRAB(x):y=x(x+ β)modn y el Estado de descifrado: descELG: G → G es definido como: descRAB(y)= 24 2   y la clave pública Rabin es (N, β) y p;q se mantienen en privado. La función de encripción no es inyectiva, así que la decripción es ambigua pues existe cuatro posibles resultados. En general, el receptor del mensaje no tiene forma de distinguir entre estos cuatro textos planos posibles a menos que el texto plano contenga suficiente redundancia como para eliminar tres de las cuatro posibilidades. Un elemento clave para poder calcular es el hecho que p≡3mod 4 y q≡3mod 4, pues en este caso tenemos un algoritmo determinista polinomial que nos permite calcular las raíces cuadradas de residuos cuadráticos módulo p o q. Observación
  • 4. Algoritmo de Rabin El sistema de llave asimétrica de Rabin se basa en el problema de cálcular raíces cuadradas módulo un número compuesto. Este problema se ha demostrado que es equivalente al de la factorización de dicho número. En primer lugar escogemos dos números primos, p y q, ambos congruentes con 3mod 4. Estos primos son la clave privada. La clave pública es su producto, y luego se elige al azar un valor: 0 ≤ < n-1 Para codificar un mensaje m, simplemente se calcula:   nbmmc mod La decodificación del mensaje se hace calculando lo siguiente: qpn . 24 2   cm Observación Es interesante el hecho de que para el caso en que un primo p sea congruente a 1 módulo 4 no se conoce ningún algoritmo polinomial determinista para hallar las raíces cuadradas de residuos cuadráticos modulo p. 
  • 5.
  • 6. No hay actualmente un estandar para el algoritmo Rabin pero es explicado en varios libros. El proyecto IEEE P1363 podría proponer un estandar y de esta manera hacerlo ampliamente utilizado. Diseño e Implementación del Sistema de Encriptación de Rabin Para el desarrollo del diseño e Implementación se tomaran en consideración dos cosas:  El lenguaje de programación.  El protocolo de encriptación y desencriptación Estos dos punto se deben principalmente a que estos determinan la forma de organizar el concepto del modelo de programación, y la forma de poder controlar el flujo de datos entre los diferentes módulos.
  • 7. Aritmética de precisión Infinita. Uno de los problemas principales que se enfrenta con los lenguajes de programación, es implementar la Aritmética de precisión infinita. Por ejemplo en C o C++, esta implementación se debe de realizar a fuerza, si se quiere realizar un criptosistema seguro. Que ofrece Java para la Aritmética de precisión Infinita:  Package java.math Description  Class BigInteger.
  • 8. El Criptosistema de Merkle y Hellman Es uno de los inventores de la criptografía de clave pública, el inventor de hash criptográfica, y más recientemente, un investigador y conferencista en la nanotecnología molecular y la criónica. Merkle aparece en la novela de ciencia ficción La era del diamante, que implica la nanotecnología. Merkle era el gerente de desarrollo compilador Elxsi a partir de 1980. En 1988, se convirtió en un científico de investigación en Xerox PARC. En 1999 se convirtió en un teórico de la nanotecnología para Zyvex. Hellman es famoso por ser el inventor junto a Diffie de la criptografía de clave pública y junto con Ralph Merkle publicaron en 1976 el New Directions in Criptografhy que introducía un cambio radical, un nuevo método de distribución de claves que solucionó uno de los mayores problemas de la criptografía hasta entonces, la distribución de claves. Es autor de más de setenta trabajos técnicos ( haga clic para ver la lista de la publicación) , diez patentes de Estados Unidos y un número de equivalentes extranjeros.
  • 9. Problema de la mochila En algoritmia, el problema de la mochila, comúnmente abreviado por KP (del inglés Knapsack problem) es un problema de optimización combinatoria, es decir, que busca la mejor solución entre un conjunto de posibles soluciones a un problema. Modela una situación análoga al llenar una mochila, incapaz de soportar más de un peso determinado, con todo o parte de un conjunto de objetos, cada uno con un peso y valor específicos. Los objetos colocados en la mochila deben maximizar el valor total sin exceder el peso máximo. El problema de la mochila es uno de los 21 problemas NP-completos de Richard Karp, establecidos por el informático teórico en un famoso artículo de 1972. Ha sido intensamente estudiado desde mediados del siglo XX y se hace referencia a él en el año 1897, en un artículo de George Mathews Ballard. Si bien la formulación del problema es sencilla, su resolución es más compleja, la estructura única del problema, y el hecho de que se presente como un subproblema de otros problemas más generales, lo convierten en un problema frecuente en la investigación.
  • 10. El problema matemático de la mochila, referido ahora a números y no a los elementos físicos que puedan entrar en ella, se plantea como sigue: Dada la siguiente secuencia de m números enteros positivos S = {S1, S2, S3, ..., Sm-2, Sm-1, Sm} y un valor u objetivo T, se pide encontrar un subconjunto de S SS = {Sa, Sb, ..., Sj} que cumpla con ese objetivo T: T =  SS = Sa + Sb + ... + Sj Solución al problema de la mochila Tenemos la mochila S = {20, 5, 7, 36, 13, 2} con m = 6 y el valor T = 35. Se pide encontrar una solución, si es que ésta existe. En este momento no importa que los valores de la mochila no estén ordenados. SOLUCIÓN: Sin hacer ningún cálculo mental, podemos recorrer todos los valores (se puede descartar el elemento S4 pues es mayor que el objetivo T) de la mochila S, bien de izquierda a derecha o al revés (da igual el sentido elegido) y restaremos el elemento i-ésimo si es menor o igual que el objetivo T en esa etapa del algoritmo y termina cuando T = 0, como se indica:
  • 11. S = {S1, S2, S3, S4, S5, S6} = {20, 5, 7, 36, 13, 2}; T = 35 S1=20 ¿Es menor que objetivo T=35? Sí  T = 35-20 = 15 S2=5 ¿Es menor que objetivo T=15? Sí  T = 15-5 = 10 S3=7 ¿Es menor que objetivo T=10? Sí  T = 10-7 = 3 S4=36 ¿Es menor que objetivo T=3? No  T = 3 S5=13 ¿Es menor que objetivo T=3? No  T = 3 S6=2 ¿Es menor que objetivo T=3? Sí  T = 3-2 = 1  0 Se ha recorrido toda la mochila y no se ha encontrado solución. En cambio sí existe una solución: SS = {S1+S5+S6} = 20+13+2 = 35 Vi = [1,0,0,0,1,1] ¿Puede haber soluciones múltiples? Si para la misma mochila S = {20, 5, 7, 36, 13, 2} buscamos ahora el valor T = 27, encontramos tres soluciones válidas: SS1 = {S1+S3} = 20+7; SS2 = {S1+S2+S6} = 20+5+2 ; SS3 = {S2+S3+S5+S6} = 5+7+13+2 Esto sería inadmisible en un sistema de cifra puesto que el resultado de una operación de descifrado debe ser única ya que proviene de un único mensaje. La solución será el uso de las denominadas mochilas simples en que la solución al problema de la mochila, si existe, es única.
  • 12. Esto sería inadmisible en un sistema de cifra puesto que el resultado de una operación de descifrado debe ser única ya que proviene de un único mensaje. La solución será el uso de las denominadas mochilas simples en que la solución al problema de la mochila, si existe, es única. Mochila simple o supercreciente Una mochila es simple o supercreciente si el elemento Sk es mayor que la suma de los elementos que le anteceden: k-1 Sk   Sj j = 1 Por ejemplo, la mochila S = {2, 3, 7, 13, 28, 55, 110, 221} con m = 8 elementos es supercreciente y la solución para un objetivo T = 148 es única: Vi = [S2+S3+S5+S7]. Para resolver cualquier valor T válido para esta mochila, ésta se recorre de derecha a izquierda (desde el valor mayor al menor) una sola vez con el algoritmo ya visto. Compruebe que para T = 289, 196 y 353 los vectores son V1 = 00010101; V2 = 01001110; V3 = 10110011.
  • 13. Operación de cifra con mochila simple Se representa la información en binario y se pasan los bits por la mochila. Con la mochila S = {2, 4, 10, 19, 40} de m = 5 elementos cifraremos el mensaje M = ADIOS. SOLUCIÓN Usando código ASCII/ANSI: A = 01000001; D = 01000100; I = 01001001; O = 01001111; S = 01010011 M = 01000 00101 00010 00100 10010 10011 11010 10011 C = (4), (10+40), (19), (10), (2+19), (2+19+40), (2+4+19), (2+19+40) C = 4, 50, 19, 10, 21, 61, 25, 61 Descifrado con mochila simple C = 4, 50, 19, 10, 21, 61, 25, 61 S = {2, 4, 10, 19, 40} La operación de descifrado es elemental: pasamos por la mochila los valores de C, encontramos el vector Vi y por último agrupamos el resultado en grupos de 8 bits. En este caso: 4  Vi = 01000 50  Vi = 00101, etc. Se forma grupos de m en m Se multiplica bloque a bloque los elementos de M con S Se calcula los vi usando el algoritmo propuesto
  • 14. Criptosistema de Merkle-Hellman En 1978 Ralph Merkle y Martin Hellman proponen un sistema de cifra de clave pública denominado Mochila con Trampa. El algoritmo se basa en crear una mochila difícil a partir de una mochila simple de forma que el cifrado se haga con la mochila difícil y el descifrado con la mochila simple o fácil. Se puede pasar fácilmente de la mochila simple a la difícil o viceversa usando una trampa. La trampa será nuestra clave secreta. La mochila difícil será nuestra clave pública. Una función unidireccional
  • 15. Diseño mochila de Merkle y Hellman 1. Se selecciona una mochila supercreciente de m elementos: S’ = {S1’, S2’, ..., Sm’}. 2. Se elige un entero  (módulo de trabajo) mayor que la suma de los elementos de la mochila. m    Si’ i = 1 más fácil:   2Sm’
  • 16. 3. Se elige un entero  primo relativo con . mcd (,) = 1 Se asegura el inverso Se recomienda que  no tenga factores con los elementos de S’ 4. Se multiplica S’ por  mod . Si = Si’ mod  Obteniendo una mochila difícil S = {S1, S2, ..., Sm} 5. Se calcula el inverso de  en el cuerpo . -1 = inv (,) Clave privada: , -1 Clave pública: mochila S CIFRADO: C = S  M como S =   S’ mod  C =   S’ M mod  DESCIFRADO: M = -1  C mod  Entonces obtenemos: S’ M Esto se interpreta como encontrar los vectores que cumplan con un valor de T.
  • 17. Parámetros para el diseño de mochilas a) Tamaño de la mochila m  100 b) Módulo  uniforme en el siguiente intervalo: [22m+1+1, 22m+2-1  (2m+2) bits Si m = 100: todos los elementos de S son de 202 bits. c) Valores de Si’ elegidos uniformemente en el intervalo: [(2i-1-1).2m +1, 2i-1.2m Si m = 100: 1  S1’  2100  S2’  2101  S3’  2102 ... d) Elegir un valor x en el intervalo [2, -2. El factor  se calcula como:  = mcd(, x) Mochila con parámetros proporcionales a) Mochila con m = 6 b) Intervalo : [22m+1+1, 22m+2-1 = [226+1+1, 226 +2-1 =[213+1, 214+1 = [8193, 16385 Sea  = 13515 c) Elección de los valores S’i: i=1 : [(21-1-1)26+1, (21-1) 26 1  S1’  64 i=2 : [(22-1-1)26+1, (22-1) 26 65  S2’  128 i=3 : [(23-1-1)26+1, (23-1) 26 193  S3’  256 i=4 : [(24-1-1)26+1, (24-1) 26 449  S4’  512 i=5 : [(25-1-1)26+1, (25-1) 26 961  S5’  1024 i=6 : [(26-1-1)26+1, (26-1) 26 1985  S6’  2048 UNA ELECCIÓN S1’ = 39 S2’ = 72 S3’ = 216 S4’ = 463 S5’ = 1.001 S6’ = 1.996 Todos estos elementos serán de (2m+2) = 14 bits
  • 18. d) Cálculo del factor . Buscamos un valor x en el intervalo [2, -2 = [2, 13513, por ejemplo x = 9805. Como el máximo común divisor entre  = 13515 y x = 9805 es 265, luego  = 9805/265 = 37. Vamos a elegir:  = 37 de forma que -1 = 4018 inv (37, 13515) = 4018 Luego, la mochila simple y la clave privada serán: Mochila simple: S’ = {39,72, 216, 463, 1001, 1996} Clave Privada:  = 13515 -1 = 4018 Mochila simple: S’ = {39, 72, 216, 463, 1.001, 1.996} Módulo:  = 13515 Factor multiplicador:  = 37; -1 = 4.018  Clave privada S1 = 3937 mod 13515 = 1443 S2 = 7237 mod 13515 = 2664 S3 = 21637 mod 13515 = 7992 S4 = 46337 mod 13515 = 3616 S5 = 100137 mod 13515 =10007 S6 = 199637 mod 13515 = 6277
  • 19. Mochila difícil: S = {1.443, 2.664, 7.992, 3.616, 10.007, 6.277}  Clave pública Fortaleza de las mochilas En el año 1982 Adi Shamir y Richard Zippel encuentran debilidades a las mochilas de Merkle-Hellman: Si se conoce el módulo  (o bien éste puede deducirse) Y si los dos primeros elementos (S1 y S2) de la mochila difícil se corresponden con los dos primeros elementos (S1’ y S2’) de la mochila simple y son primos con   Entonces podemos generar la mochila simple a partir de la difícil ya que encontraremos la clave secreta -1 .Esta debilidad no hace recomendable el uso de mochilas Merkle y Hellman para el cifrado de la información Criptoanálisis de Shamir y Zippel Este ataque exige fuertes restricciones. Para una mochila con 100 elementos, los autores suponen: a) Que los dos primeros elementos de S’ de 100 y 101 bits son mucho más pequeños que el módulo  de 202 bits. b) Que podemos identificar los elementos S1 y S2 en la mochila difícil y hacerlos corresponder con S1’ y S2’. c) Que conocemos el módulo  o podemos deducirlo.
  • 20. a) Con estos datos se trata de encontrar los valores de S1’ y S2’ además del factor de multiplicación . b) Con estos valores generamos la mochila fácil S. Pasos del ataque de Shamir y Zippel 1. Se calcula q = (S1/S2) mod  Como Si = Si’  mod  entonces: q = (S1’/S2’) mod  = [S1’ inv (S2’, )] mod  Esto implica una condición fuerte: mcd (S2’, ) = 1 2. Se calculan todos los múltiplos modulares del valor q con multiplicadores en el rango [1, 2m+1] = [1, 2101] CM = {1q mod , 2q mod , ..., 2m+1q mod } 3. El candidato para S1’ será el valor más pequeño de CM puesto que ese elemento podría ser el más pequeño de la mochila fácil S’.
  • 21. 4. Encontrado el candidato para S1’se calcula:  = (S1/S1’) mod  = [S1 inv (S1’, )] mod  Esto implica otra condición fuerte: mcd (S1’, ) = 1 5. Conocido  encontramos -1 = inv (, ) y así calculamos todos los elementos de la mochila Si’ = Si  -1 mod  que debería ser de tipo supercreciente o fácil. 6. Si no se genera una mochila supercreciente, se elige el siguiente valor más pequeño del conjunto CM y así hasta recorrer todos sus valores. Si con este conjunto CM no se obtiene una mochila simple, se repite el punto 2 tomando ahora valores en el rango 2m+i con i = 2, 3, etc. Por lo general el ataque prospera con el primer conjunto CM. Ejemplo de ataque de Shamir y Zippel La clave pública de un sistema de mochila Merkle-Hellman es: S = {S1, S2, S3, S4, S5} = {3.241, 572, 2.163, 1.256, 3.531} Si de alguna forma hemos conseguido conocer que el módulo  = 4089, se pide encontrar la mochila fácil S’ = {S1’, S2’, S3’, S4’, S5’}.
  • 22. Solución: • q = S1/S2 mod  = S1 inv (S2, ) mod . Calculamos ahora inv (S2, ) es decir inv (572, 4,089) = 309, luego q = 3.241309 mod 4089 = 599 • Múltiplos CM = {1q mod , 2q mod , 3q mod , ..., 64q mod } puesto que la mochila tiene m = 5 elementos y el intervalo será [1, 25+1]. • Luego CM = [599, 1198, 1.797, 2396, 2995, 3594, 104, 703, 1302, 1901, 2500, 3099, 3698, 208, 807, 1406, 2005, 2604, 3.203, 3802, 312, 911, 1510, 2109, 2708, 3307, 3906, 416, 1015, 1614, 2213, 2812, 3411, 4010, 520, 1119, 1718, 2317, 2916, 3515, 25, 624, 1223, 1822, 2421, 3020, 3619, 129,728, 1327, 1926, 2525, 3124, 3723, 233, 832, 1431, 2030, 2629, 3228, 3827, 337, 936, 1535]. • Suponemos que el número más pequeño de CM es candidato a S1’ = 25. • El factor de multiplicación sería  = (S1/S1’) = S1  inv (S1’, ) mod . • Como inv (S1’, ) = inv (25, 4089) = 2617, el factor de multiplicación  = 32412617 mod 4089 = 1111. • Por lo tanto su valor inverso será -1 = inv (, ) = inv (1111, 4089). Luego -1 = 622.
  • 23. • Multiplicamos ahora los valores S de la mochila difícil por -1 a ver si obtenemos una mochila supercreciente S’ (Si’ = Si  -1 mod ): • S1’ = 25 (valor elegido como candidato del conjunto CM) • S2’ = S2  -1 mod  = 572  622 mod 4.089 = 41 • S3’ = S3  -1 mod  = 2.163  622 mod 4.089 = 105 • S4’ = S4  -1 mod  = 1.256  622 mod 4.089 = 233 • S5’ = S5  -1 mod  = 3.531  622 mod 4.089 = 489 • Como la mochila S’ = {25, 41, 105, 233, 489} es supercreciente, el ataque ha prosperado y hemos encontrado la clave privada. Uso de los criptosistemas de mochilas Existen varios algoritmos propuestos como sistemas de cifra usando el problema de la mochila: el de Graham-Shamir, Chor-Rivest, etc., pero su estudio aquí no tiene sentido. No obstante todos han sucumbido a los criptoanálisis y en la actualidad en el único entorno que se usan es en la protección de diversos programas de aplicación, en forma de hardware que se conecta en la salida paralela del computador para descifrar el código ejecutable de esa aplicación dejando, sin embargo, activa la salida a impresora. De esta manera sólo en aquel sistema con la mochila instalada se puede ejecutar el programa. No se usa en comunicaciones.