Escolar Documentos
Profissional Documentos
Cultura Documentos
Criptograf a
1 / 18
x y mod n
x y mod p y x y mod q
= inyectiva .
Como |Zn | = n = pq = |Zp Zq | tambin es sobreyectiva. e respeta las operaciones de suma y producto ya que (x mod n + y mod n) = (x mod n) + (y mod n) y ((x mod n)(y mod n)) = (x mod n)(y mod n) Es decir, es un isomorifsmo de anillos.
Delgado - Nnez (Univ. Valladolid) u Criptograf a Curso 2010 - 2011 2 / 18
Dado (a, b) Zp Zq existe un unico z Zn tal que (z) = (a, b). En otras palabras, el sistema de congruencias X a mod p X b mod q
tiene una unica solucin mdulo n. o o El teorema chino de los restos nos proporciona un mtodo efectivo de e calcularla: Si q Z es inverso de q mdulo p y p inverso de p mdulo q entonces o o x := qq a + pp b mod n es la unica solucin mdulo n. o o
q y p se pueden calcular con el Algoritmo de Euclides extendido o simplemente tomando q = q p2 y p = p q2 . Por tanto la clase mdulo n o del entero z = q p1 a + p q1 b nos proporciona la unica solucin. o Ejercicio: Comparar la complejidad de ambos mtodos. e
Delgado - Nnez (Univ. Valladolid) u Criptograf a Curso 2010 - 2011 3 / 18
Utilidad en el RSA
El Teorema Chino se puede utilizar para realizar el descifrado del RSA: Para ello, si el propietario de las claves [(n, e), (p, q, d)] recibe el mensaje C , procede de la siguiente forma:
1
Calcula q , el inverso de q mdulo p y p l inverso de p mdulo q. o e o Este clculo puede estar hecho previamente y guardado con la clave a privada Calcula x := C d mod p1 mod p, y := C d mod q1 mod q. Recupera el mensaje en claro con M := qq x + pp y mod n.
2 3
Ejercicio: Calcular la complejidad del procedimiento anterior y comparar con la del mtodo habitual de descifrado RSA (hacer la potencia modular e d mod n). C
Delgado - Nnez (Univ. Valladolid) u Criptograf a Curso 2010 - 2011 4 / 18
Residuos cuadrticos a
Denicin o
Sea n, a Z enteros. Diremos que a (o su clase mdulo n) es un residuo o cuadrtico mdulo n si existe un entero b tal que a b 2 mod n. a o Es decir, si la congruencia X 2 a mod n tiene solucin. o Qn Zn : conjunto de residuos cuadrticos mdulo n. a o Problema de cuadrados modulares Dado a Z, el problema de decidir si a Qn y en caso armativo de calcular las soluciones de la congruencia X 2 a mod n es un problema computacionalmente imposible. Si n = p, un nmero primo, se conocen algoritmos ecientes que u determinan si un entero es o un cuadrado mdulo p y adems calculan sus o a ra modulares. ces
Delgado - Nnez (Univ. Valladolid) u Criptograf a Curso 2010 - 2011 5 / 18
Criptograf a
6 / 18
El siguiente resultado resuelve el problema de saber si un entero es un residuo cuadrtico mdulo un primo p. a o
Es claro que a(p1)/2 1 mod p (ya que 1 son las unicas ra ces cuadradas de 1 mdulo p). La condicin a Qp , i.e. a b 2 mod p, o o implica que a(p1)/2 b (p1) 1 mod p. Necesariamente existe un elemento x Zp tal que x (p1)/2 = 1 (por ejemplo, si x es un generador multiplicativo). Ahora tendremos que (xa)(p1)/2 = 1 para cualquier a Qp , por lo tanto hay al menos (p 1)/2 elementos no nulos y distintos (que forzosamente han de coincidir con los no cuadrados) que cumplen esta ultima igualdad.
Criptograf a
7 / 18
Teorema
Sea p un primo con p 3 mod 4 y a Qp . Entonces a cuadradas modulares de a.
p+1 4
Sea b Z tal que b 2 a mod p. Ntese que (p + 1)/4 es un entero, ya o que p 3 mod 4. Tendremos: (a(p+1)/4 )2 = a(p+1)/2 = aa(p1)/2 a(b 2 )(p1)/2 = ab p1 a mod p .
Criptograf a
8 / 18
En el caso general tambin hay algoritmos ecientes para el clculo: e a Adleman, Manders, Miller Datos de entrada: (a, p) Z2 , p primo.
Si p 3 mod 4 devolvemos a(p+1)/4 mod p. En otro caso: Escribir p 1 = 2e n con n impar. Calculamos b tal que b Qp (un no residuo cuadrtico). / a n+1 Iniciamos con y := a, r a 2 mod p, SOL = 0. Mientras que SOL = 0, hacer k Calculamos k m nimo con y 2 n 1 mod p. Si k = 0 entonces SOL = 1. ek1 ek En caso contrario: y := yb 2 mod p, r := r b 2 Devolvemos r .
mod p.
En el algoritmo anterior es necesario buscar un entero b que no sea residuo cuadrtico mdulo p. a o Estrictamente no se conocen algoritmos polinmicos que calculen un tal o nmero. Sin embargo, como la mitad de los enteros positivos no nulos u menores que p no son residuos cuadrticos, se puede disear un algoritmo a n probabil stico (tipo las Vegas) que encuentre uno en un tiempo esperado polinmico en log p. o
Delgado - Nnez (Univ. Valladolid) u Criptograf a Curso 2010 - 2011 9 / 18
Sea n = pq, p, q primos que supondremos conocidos. En este caso, y en general siempre que n sea producto de r primos distintos, el Teorema Chino permite resolver el problema de calcular de manera eciente. Para ellos observemos que, dado un entero a:
1
Si a Qn , sean x, y Z tales que x 2 a mod p; Entonces q p1 x p q1 y son las ra cuadradas de a mdulo n. ces o y 2 a mod q
Ejercicio. Calcular el nmero de ra cuadradas de un residuo cuadrtico u ces a mdulo n cuando n = p1 p2 pr , siendo p1 , . . . , pr primos distintos. o
Criptograf a
12 / 18
Criptograf a
13 / 18
Un par de nmeros primos p, q, ambos congruentes con 3 mdulo 4. u o El entero n = pq es la clave pblica. u Los primos p, q son la clave privada.
Cifrado Los mensajes son enteros m con 1 < m < n. Para enviar el mensaje m al propietario de la clave pblica n se calcula c := m2 mod n u que es el mensaje cifrado. Descifrado Recibido el mensaje c se procede de la siguiente forma:
1
Resolvemos X 2 c mod p; obtenemos x. Resolvemos X 2 c mod q, obtenemos y . Se calculan las cuatro ra cuadradas mdulo n de c: ces o q p1 x p q1 y Por tanto una de ellas es el mensaje m. mod n
Criptograf a
14 / 18
Una de las razones por las que este sistema no es demasiado util es porque, en general, no hay forma de distinguir cul de las cuatro a soluciones es el mensaje m. Posiblemente solo haya una ra que nos z proporcione un texto inteligible, pero esto no es una v demasiado a satisfactoria si lo que se est cifrando es, por ejemplo, una sucesin a o de nmeros y no un texto con sentido. u Este inconveniente se puede resolver de varias formas, muchas de los cuales consisten en aadir redundancias o etiquetas que permitan n distinguir el descifrado correcto, o en elegir los textos cifrados con ciertas caracter sticas. Otro inconveniente es que si el mensaje m es pequeo, m2 puede ser n menor que n con lo que la ra cuadrada (no modular) proporciona el z mensaje m sin necesidad de las claves. El cifrado y el descifrado para mensajes largos se puede hacer dividiendo en bloques con la misma tnica que se ha usado en el RSA. e
Criptograf a
15 / 18
Seguridad y eciencia Como ya se ha dicho, la seguridad del sistema de Rabin se basa en la dicultad de la factorizacin. De hecho hemos comprobado que un o ataque computacionalmente ecaz contra este sistema proporcionar a un mtodo ecaz de factorizacin. e o En cuanto a la eciencia, el cifrado solo requiere el clculo de un a cuadrado, luego es ms rpido que el cifrado RSA. Sin embargo el a a descifrado, siendo polinomial, no es ms eciente que el del RSA. a No hay demasiado inconveniente en usar primos arbitrarios, aunque en el caso de primos congruentes con 1 mdulo 4 la complejidad o aumenta notablemente y no presenta ventajas decisivas.
Criptograf a
16 / 18
Otros sistemas de clave pblica u Aunque los problemas de factorizacin, mochilas y logaritmo discreto o proporcionan la fuente terica de los sistemas criptogrcos ms populares o a a (RSA, El Gamal, . . .) no son los unicos. Otros muchos criptosistemas han sido propuestos, basados en tcnicas de curvas el e pticas, cdigos o correctores, cuerpos de nmeros, grupos, conjuntos complementarios, u cifrado probabil stico, f sica cuntica, etc. a
Criptograf a
17 / 18
Sistema de Rabin-Williams
Para eliminar la indeterminacin del mensaje correcto entre las diferentes o ra ces, Williams propuso una mejora que consiste en aadir dos bits al n mensaje cifrado que permitan identicar sin ambigedad cual de las 4 u ra es la correcta. Para ello tomamos tambin un entero s tal que ces e s = 1 (en particular, s no es un residuo cuadrtico mdulo n) y usar a o n como clave pblica (n, s). La clave privada es en este caso u d = ((n) + 4)/8. El cifrado del mensaje m es la terna (C , b, e) denida de la siguiente forma: m b n = (1) . b )2 mod n. C (ms e ms b mod 2. Para recuperar el mensaje en claro se procede de la siguiente manera a partir de (C , b, e): m := C d mod n. e := e + m mod 2 m := ((1)e m )/(s b ) mod n.
Delgado - Nnez (Univ. Valladolid) u Criptograf a Curso 2010 - 2011 18 / 18