criptosistema rabin, merkle-hellman

Download criptosistema Rabin, Merkle-Hellman

Post on 18-Jul-2015

107 views

Category:

Education

0 download

Embed Size (px)

TRANSCRIPT

  • CRIPTOGRAFA CLSICA

    Cifrado Asimtrico: Rabin,

    Merkle-Hellman

    Docente: Juan Carlos Broncano Torres FISE-UTP Lima-Per

  • Criptograma RABIN

    Este criptosistema es asimtrico cuya seguridad esta basada en la complejidad del problema de la factorizacin y el problema de la raz cuadrada modulo un nmero compuesto N , tiene cierta similaridad con el RSA. El algoritmo de este sistema criptogrfico 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 autmatas no deterministas, el cual es un concepto clave para la teora de complejidad computacional, en

    particular para describir las clases de complejidad P y NP.

    Antes de explicar el criptosistema de Rabin sera conveniente aclarar el concepto de races en operaciones modulares. Se dice que la raz de un nmero es aquel que multiplicado por s mismo, da ese nmero. Pues bien, en Aritmetica modular, esto sigue siendo as. Pero claro, un nmero al cuadrado en mdulo n puede ser que sea mayor que ese n, por lo que al hacer mdulo, se reduce su valor. Por lo tanto, un mismo nmero puede tener varias races. En el lgebra habitual, un nmero tiene 2 races reales (la positiva y la negativa), pero cuando n es el producto de 2 primos, existen valores que tienen 4 races distintas. De hecho, lo normal es que tengan 4 races. Y tendrn 4 races todos los nmero que no tengan como divisor a uno de los dos primos con los que se gener n, en cuyo caso tendrn slo 2.

  • Criptosistema RABIN Dado un nmero N de 10100 cifras, N = p.q con p y q primos tal que. p3mod4; q3mod4. 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 pblica Rabin es (N, ) y p;q se mantienen en privado. La funcin de encripcin no es inyectiva, as que la decripcin 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 p3mod 4 y q3mod 4, pues en este caso tenemos un algoritmo determinista polinomial que nos permite calcular las races cuadradas de residuos cuadrticos mdulo p o q.

    Observacin

  • Algoritmo de Rabin

    El sistema de llave asimtrica de Rabin se basa en el problema de clcular races cuadradas mdulo un nmero compuesto. Este problema se ha demostrado que es equivalente al de la factorizacin de dicho nmero.

    En primer lugar escogemos dos nmeros primos, p y q, ambos congruentes con 3mod 4. Estos primos son la clave privada. La clave pblica 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 decodificacin del mensaje se hace calculando lo siguiente:

    qpn .

    24

    2 cm

    Observacin Es interesante el hecho de que para el caso en que un primo p sea congruente a 1 mdulo 4 no se conoce ningn algoritmo polinomial determinista para hallar las races cuadradas de residuos cuadrticos modulo p.

  • No hay actualmente un estandar para el algoritmo Rabin pero es explicado en varios libros. El proyecto IEEE P1363 podra proponer un estandar y de esta manera hacerlo ampliamente utilizado.

    Diseo e Implementacin del Sistema de Encriptacin de Rabin Para el desarrollo del diseo e Implementacin se tomaran en consideracin dos cosas: El lenguaje de programacin. El protocolo de encriptacin y desencriptacin Estos dos punto se deben principalmente a que estos determinan la forma de organizar el concepto del modelo de programacin, y la forma de poder controlar el flujo de datos entre los diferentes mdulos.

  • Aritmtica de precisin Infinita.

    Uno de los problemas principales que se enfrenta con los lenguajes de programacin, es implementar la Aritmtica de precisin infinita. Por ejemplo en C o C++, esta implementacin se debe de realizar a fuerza, si se quiere realizar un criptosistema seguro.

    Que ofrece Java para la Aritmtica de precisin Infinita: Package java.math Description Class BigInteger.

  • El Criptosistema de Merkle y Hellman

    Es uno de los inventores de la criptografa de clave pblica, el inventor de hash criptogrfica, y ms recientemente, un investigador y conferencista en la nanotecnologa molecular y la crinica. Merkle aparece en la novela de ciencia ficcin La era del diamante, que implica la nanotecnologa.

    Merkle era el gerente de desarrollo compilador Elxsi a partir de 1980. En 1988, se convirti en un cientfico de investigacin en Xerox PARC. En 1999 se convirti en un terico de la nanotecnologa para Zyvex.

    Hellman es famoso por ser el inventor junto a Diffie de la criptografa de clave pblica y junto con Ralph Merkle publicaron en 1976 el New Directions in Criptografhy que introduca un cambio radical, un nuevo mtodo de distribucin de claves que solucion uno de los mayores problemas de la criptografa hasta entonces, la distribucin de claves.

    Es autor de ms de setenta trabajos tcnicos ( haga clic para ver la lista de la publicacin) , diez patentes de Estados Unidos y un nmero de equivalentes extranjeros.

  • Problema de la mochila

    En algoritmia, el problema de la mochila, comnmente abreviado por KP (del ingls Knapsack problem) es un problema de optimizacin combinatoria, es decir, que busca la mejor solucin entre un conjunto de posibles soluciones a un problema. Modela una situacin anloga al llenar una mochila, incapaz de soportar ms de un peso determinado, con todo o parte de un conjunto de objetos, cada uno

    con un peso y valor especficos. Los objetos colocados en la mochila deben maximizar el valor total sin exceder el peso mximo.

    El problema de la mochila es uno de los 21 problemas NP-completos de Richard Karp, establecidos por el informtico terico en un famoso artculo de 1972. Ha sido intensamente estudiado desde mediados del siglo XX y se hace referencia a l en el ao 1897, en un artculo de George Mathews Ballard. Si bien la formulacin del problema es sencilla, su resolucin es ms compleja, la estructura nica del problema, y el hecho de que se presente como un subproblema de otros problemas ms generales, lo convierten en un problema frecuente en la investigacin.

  • El problema matemtico de la mochila, referido ahora a nmeros y no a los elementos fsicos que puedan entrar en ella, se plantea como sigue:

    Dada la siguiente secuencia de m nmeros 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

    Solucin 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 solucin, si es que sta existe. En este momento no importa que los valores de la mochila no estn ordenados. SOLUCIN: Sin hacer ningn clculo 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 revs (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 solucin. En cambio s existe una solucin:

    SS = {S1+S5+S6} = 20+13+2 = 35

    Vi = [1,0,0,0,1,1]

    Puede haber soluciones mltiples? Si para la misma mochila S = {20, 5, 7, 36, 13, 2} buscamos ahora el valor T = 27, encontramos tres soluciones vlidas:

    SS1 = {S1+S3} = 20+7; SS2 = {S1+S2+S6} = 20+5+2 ; SS3 = {S2+S3+S5+S6} = 5+7+13+2

    Esto sera inadmisible en un sistema de cifra puesto que el resultado de una operacin de descifrado debe ser nica ya que proviene de un nico mensaje. La solucin ser el uso de las denominadas mochilas simples en que la solucin al problema de la mochila, si existe, es nica.

  • Esto sera inadmisible en un sistema de cifra puesto que el resultado de una operacin de descifrado debe ser nica ya que proviene de un nico mensaje. La solucin ser el uso de las denominadas mochilas simples en que la solucin 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 solucin para un objetivo T = 148 es nica: Vi = [S2+S3+S5+S7]. Para resolver cualquier valor T vlido 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.

  • Operacin de