You are on page 1of 7

LA GACETA

567

LA COLUMNA DE MATEMATICA COMPUTACIONAL


Secci on a cargo de Tom as Recio

El objetivo de esta columna es presentar de manera sucinta, en cada uno de los n umeros de La Gaceta, alguna cuesti on matem atica en la que los c alculos, en un sentido muy amplio, tengan un papel destacado. Para cumplir este objetivo el editor de la columna (sin otros m eritos que su inter es y sin otros recursos que su mejor voluntad) quisiera contar con la colaboraci on de los lectores, a los que anima a remitirle (a la direcci on que se indica al pie de p agina1 ) los trabajos y sugerencias que consideren oportunos.
EN ESTE NUMERO. ..

Para este n umero de La Gaceta hemos solicitado la colaboraci on del Catedr atico de Algebra de la Universidad de Valladolid, D. Juan Tena Ayuso. Se trata de una introducci on excelente a un tema de actualidad e inter es (econ omico y matem atico): la b usqueda de n umeros primos muy grandes, y su posible utilizaci on en determinados algoritmos criptogr acos. El profesor Tena ha hecho un esfuerzo notable para describir de modo particularmente sencillo el complejo y dif cil mundo de los tests de primalidad. Espero que el resultado sea del agrado de los lectores.

Tests de Primalidad
por Juan Tena Ayuso

INTRODUCCION
Los n umeros primos han interesado a los matem aticos desde hace, al menos, 2000 a nos (los Elementos de Euclides se ocupan de ellos, demostrando en particular la existencia de innitos primos). Tal inter es parece justicado ya que, en virtud del Teorema Fundamental de la Aritm etica, todo n umero natural se
1 Tom as Recio. Departamento de Matem aticas. Facultad de Ciencias. Universidad de Cantabria. 39071 Santander. recio@matesco.unican.es

568

LA COLUMNA DE MATEMATICA COMPUTACIONAL

expresa, de forma u nica, como producto de primos. Este teorema ser a formulado expl citamente por Gauss (Disquisitiones Arithmeticae, 1801) pero era bien conocido por los matem aticos anteriores. Por otra parte, el tema es lo bastante complejo para que el citado inter es por los n umeros primos haya podido mantenerse hasta la actualidad. En particular, las reglas que rigen la distribuci on de los primos en el conjunto N de los n umeros naturales, plantearon desde el principio un desaf o, ya que tal distribuci on no parece seguir pautas razonables : por ejemplo, existen primos consecutivos que se diferencian en dos unidades, los denominados primos gemelos (aunque se ignora si, como se cree, existen innitas tales parejas), mientras que existen primos consecutivos cuya diferencia es tan grande como se quiera. El problema de determinar si un n umero natural dado es primo o no es el objetivo de los tests de primalidad. El estudio de los n umeros primos ocupa un lugar destacado en la historia de las Matem aticas y muchos de los grandes matem aticos han ligado su nombre a ellos. La lista ser a interminable, citemos solo algunos: Euclides, Fermat, Euler, Legendre, Gauss, Dedekind, Dirichlet, Hilbert, Hadamard, de la Vall ee-Poussin, etc. Todos ellos y otros muchos han ido a nadiendo piezas al puzzle de los n umeros primos, ver [Ribemboim, 1988], [Bressoud, 1989]. Por ejemplo, como hemos dicho, Euclides mostr o la innitud de los primos (libro IX, proposici on 20) y Hadamard y de la Vall ee-Poussin demostraron el teorema de los n umeros primos sobre la densidad de estos dentro de los naturales: si (x) denota el n umero de primos no superiores al real positivo x, se tiene que (x) x/ ln(x). El impulso subyacente a los estudios citados era el puro desaf o intelectual de intentar explicar las propiedades de los primos y hasta hace pocos a nos casi todos los matem aticos subscribir an la armaci on de Hardy (aplicada al contexto, m as amplio, de la Teor a de N umeros):
...there is one science at any rate, and that their own, whose very remoteness from ordinary human activities should keep it gentle and clean. [G.H. Hardy A Mathematicians Apology, 1940]

Al igual que en otros a mbitos, tambi en en Matem aticas, hechos evidentes pueden dejar de serlo en un per odo breve y pocos se arriesgar an hoy a compartir el comentario anterior. En particular, los n umeros primos son un ingrediente fundamental del m as conocido sistema criptogr aco de clave p ublica, el RSA (introducido en 1977 por Rivest, Shamir y Adleman) y por tanto interesan a inform aticos e ingenieros y al mundo gubernamental y empresarial. Estas razones comerciales han provocado un renovado inter es sobre la venerable (y durante siglos considerada pura y alejada del mundo real) Teor a de los N umeros Primos, demostrando que los intereses materiales son un motor tan poderoso, al menos, como la pasi on por el conocimiento puro, tan caro a Hardy.

LA GACETA

569

EL SISTEMA RSA
Dado que el RSA forma parte de nuestra vida cotidiana hasta el punto de que, quiz as sin saberlo, lo llevamos muy cerca de nuestro coraz on (implementado en una tarjeta bancaria en nuestra billetera), merece la pena describirlo brevemente. En una red criptogr aca de usuarios del sistema RSA, cada participante i debe elegir una pareja de n umeros primos pi , qi , sucientemente grandes (para que el sistema sea seguro. Tal tama no suciente ser a funci on del grado de seguridad que se desee y de la capacidad de computaci on del momento: en la actualidad se considera que cada primo debe tener, al menos, unas 100 cifras decimales). El usuario calcula entonces ni = pi qi y (ni ) = (pi 1)(qi 1), donde representa la funci on de Euler, elige (arbitrariamente) ei , 0 < ei < (ni ), 1 tal que mcd(ei , (ni )) = 1 y su inverso modular di e i (mod(ni )). Finalmente i hace p ublico (comunica a los restantes usuarios del sistema) el par ublica mientras guarda celosamente su clave privada di . (ni , ei ) su clave p Como en todo criptosistema de clave p ublica, el RSA permite a cualquier otro usuario, digamos j, enviar un mensaje M a i, salvaguardando la privacidad del mismo (en otros t erminos, todos pueden escribir a i, utilizando su llave p ublica, pero solo i puede leerlo utilizando su llave privada). Un paso previo es identicar el mensaje M con un elemento del anillo cociente Z/ni Z, o si se preere con un n umero menor que ni . Una forma simple es seleccionar un entero natural k tal que N k < ni , siendo N el cardinal del alfabeto (por ejemplo N = 27 para el castellano) y tomar M un bloque de k letras (si M es m as largo se dividir a en tantos bloques como necesario). Identicando cada letra con el n umero de posici on en el alfabeto y teniendo en cuenta el valor relativo dentro del bloque ( unidades, decenas, etc), M se identica con un n umero menor que N k , luego menor que ni . El cifrado y descifrado vienen entonces dados por las funciones: Cifrado: Z/ni Z Z/ni Z; M C M ei (mod ni ) Descifrado: Z/ni Z Z/ni Z; C C di M ei di M (mod ni ). El proceso descrito permite garantizar la privacidad o condencialidad de un mensaje. Veamos como el RSA permite asimismo garantizar otro requisito criptogr aco, de importancia creciente en el contexto de la generalizaci on de las transacciones electr onicas en Internet: el de la autenticidad del emisor del mensaje y de no falsicaci on o alteraci on de dicho mensaje. Supongamos que el remitente j env a M a i, y desea que i conf e en que realmente es j quien lo env a. Puede entonces cifrarlo con su propia llave privada dj (en lugar de con la p ublica del destinatario, como anteriormente). A la recepci on, i descifra con la llave p ublica de j y recupera M dj ej M (mod nj ). La autenticidad

570

LA COLUMNA DE MATEMATICA COMPUTACIONAL

del remitente queda garantizada porque s olo j ha podido cifrar tal mensaje. Por la misma raz on la probabilidad de un falso mensaje es pr acticamente nula. N otese que el esquema de autenticaci on, descrito anteriormente, no proporciona secreto (cualquiera puede leerlo). Si se desea conjugar ambos aspectos, condencialidad y autenticidad, puede cifrarse dos veces, seg un el siguiente esquema: supongamos j , con claves (nj , ej , dj ) desea enviar M a i, con claves ecnicas) dos casos: (ni , ei , di ). Se distinguen (por razones t Si ni < nj , M se cifra como [M ei (mod ni )]dj (mod nj ) Si nj < ni , M se cifra como M dj (mod nj )
ei

(mod ni )

El protocolo de autenticaci on anterior, con RSA, puede considerarse un ejemplo de Firma Digital. La Firma Digital aspira a ser un an alogo electr onico de la rma ordinaria de un individuo, incluso con valor legal, para zanjar disputas respecto a la autenticidad de documentos transmitidos electr onicamente. La rma electr onica debe tener una serie de propiedades formalmente an alogas a las de la rma escrita ordinaria: personal, infalsicable, f acil de autenticar, no repudiable, etc. Sin embargo, a diferencia de la rma ordinaria, que es siempre la misma, la rma digital depende del mensaje. Se trata de un requisito de seguridad: si la rma fuese independiente del mensaje y a nadida a este, un adversario que intercepte un tal mensaje rmado, puede substituir el mensaje propiamente dicho por otro falso, pero conservando la rma nal. Tal falsicaci on tendr a entonces la garant a de una rma leg tima.

TESTS DE PRIMALIDAD
La demanda del mercado de n umeros primos grandes plantea el problema de encontrar tales n umeros de manera eciente: por ejemplo, el sistema RSA solo ser a factible si la oferta de los primos p y q necesarios es abundante y barata. Para encontrar un tal primo puede elegirse n, n umero impar arbitrario del tama no requerido y comprobar si es primo. Caso contrario se substituir a n por n + 2, n + 4, etc, hasta obtener un primo. Como, en virtud del teorema de los n umeros primos, prob(n primo) 1/ ln(n), ser a necesario comprobar aproximadamente ln(n) n umeros hasta obtener un primo. El problema que resta es: C omo comprobar si n es primo? Denici on: Un Test de Primalidad es un algoritmo que permite decidir si un n umero natural n es primo o compuesto. Cualquier m etodo de factorizaci on (por ejemplo la divisi on por los n umeros, impares, menores que n), constituye un test de primalidad. Sin embargo, todos los m etodos conocidos de factorizaci on, tienen una complejidad computacional exponencial en el n umero de digitos de n, o equivalentemente en el loga-

LA GACETA

571

ritmo de n en la base de numeraci on considerada, ver [Koblitz, 1987], [L opezTena, 1990]. As , en el lenguaje de Teor a de la Complejidad (ver [Knuth,1981], el coste del m etodo anterior de criba es O(n1/2 log2 n)) (hay que realizar aproatico en ximadamente 1/2 n1/2 divisiones y el coste de cada una es cuadr log(n)), lo que para los tama nos considerados en el RSA es inviable. C omo conseguir tests efectivos, es decir que se ejecuten en lo que se denomina tiempo polin omico (en el logaritmo de n)? Diversas propiedades aritm eticas de los primos, establecidas por los matem aticos que, fundamentalmente entre los siglos XVII y XIX, se ocuparon del tema de forma altruista, sin conexi on con las actividades humanas ordinarias, proporcionan como veremos, tales tests, en particular si en lugar de tests Deterministas, los cuales demuestran matem aticamente la naturaleza prima (o compuesta) de un n umero, nos conformamos con tests Probabil sticos, los cuales solo garantizan, con una probabilidad tan alta como se desee, la primalidad de un n umero. Estos u ltimos son los habitualmente empleados en Criptograf a e implementados en los paquetes de C alculo Simb olico. Por ejemplo las ordenes isprime(n); nextprime(n); de MAPLE arrojan como respuesta si n es primo o no en el primer caso o el primer primo mayor que n en el segundo, como hemos advertido con un margen, aunque innitesimal, de error. Muchas de las citadas propiedades de los n umeros primos proporcionan tests deterministas de primalidad, tan interesantes matem aticamente como generalmente in utiles en la pr actica. Veamos alg un ejemplo: 1. Test de Wilson: (n 1)! 1 (mod n) si y solo si n es primo. (El inconveniente es que el c omputo del factorial es un problema computacionalmente m as complejo que la factorizaci on, ver [L opez-Tena, 1990]). 2. Test de Lucas: Sea a natural con 1 a < n y mcd(a, n) = 1, tal que an1 1 (mod n), pero an1/q 1 (mod n) , para todo factor primo q de n 1. Entonces n es primo. (El inconveniente en este caso es la necesidad de conocer la factorizaci on de n 1 y como hemos dicho, factorizar es computacionalmente un problema dif cil). El comentario anterior, a prop osito del test de Lucas, muestra que, para n umeros particulares, pueden ser factibles tests deterministas de primalidad ecientes y f aciles de implementar. Citemos un par de resultados en esta l nea, ver [Ribemboim, 1988] : Test de Proth: n = A2r + 1, A < 2r . Sea p primo tal que n no es cuadrado m odulo p. Entonces n es primo si y solo si pn1/2 1 (mod n).

572

LA COLUMNA DE MATEMATICA COMPUTACIONAL

Test de Lucas-Lehmer: n = A2r 1, A < 2r . Sea la sucesi on recu2 2 (con S dependiendo de A). Entonces n es primo rrente Si+1 = Si 0 si y solo si Sr2 0 (mod n). Los tests anteriores tienen una complejidad similar a la de los tests probabil sticos (en concreto O(log3 n)) y han permitido obtener los records, ver [Ribemboim, 1988], de primos conocidos. As , el primo n umero 38 de Mersenas de dos millones de d gitos. Bien es cierto ne, M38 = 26972593 1 posee m que, por ahora, primos de este tama no (conocidos como primos tit anicos) no tienen demanda en el mercado. Se conoce desde antiguo (err oneamente atribuido a los matem aticos chia, err oneanos) que para p primo se verica que 2p1 1 (mod p), y se cre mente, que el inverso era cierto, lo que proporcionar a un test de primalidad muy eciente (contraejemplos: n = 341 = 11 31, n = 561, etc). M as generalmente se tiene: Teorema de Fermat: Sea p un primo y a entero tal que mcd(a, p) = 1. Se verica que ap1 1 (mod p). Para todo a existen tambi en contraejemplos a la implicaci on inversa (pseudoprimos en base a), as : n = 91 = 7 13, para a = 3. N otese que, aunque 91 no es pseudoprimo en base 2, sin embargo, n = 1105 es pseudoprimo en ambas bases 2 y 3. Existen n umeros, denominados n umeros de Carmichael, n, impar compuesto, tales que a, mcd(a, n) = 1 verican an1 1 (mod n). (Ejemplos: 561, 1105, etc). De hecho, un resultado de Alford, Granville y Pomerance (1994), involucrando a la vez t ecnicas computacionales y sutiles argumentos de teor a anal tica de n umeros, muestra la existencia de innitos n umeros de Carmichael. Del teorema de Fermat y dado que ap1 1 = (ap1/2 1)(ap1/2 + 1) aloga, si obtenemos ap1/2 1 (mod p) (criterio de Euler). De manera an p = 2e t, con t impar, a, 1 a < p, se verica que, at 1 (mod p) o bien existe un i, 0 < i < e, tal que a2 t 1 (mod p). Si el inverso del anterior resultado fuese cierto, se tendr a un sencillo test de primalidad. Pero de nuevo (ley de Murphy) tal inverso es falso: existen n umeros impares compuestos (pseudoprimos fuertes) que verican dicho resultado (por ejemplo n = 1373653 = 829 1657 para a=2). Sin embargo, si el resultado fuese cierto para toda base a, en lugar de para una sola, n ser a
i

LA GACETA

573

primo. Tenemos nuevamente un test (determinista) de primalidad, pero en principio, no efectivo (ya que ser a necesario realizar la comprobaci on para todos los a < n, lo que una vez m as implicar a una complejidad exponencial). La noci on de pseudoprimo fuerte proporciona, sin embargo, un test probabil stico eciente: Test probabil stico de Miller-Rabin: Sea n natural impar y k n umero natural prejado. Elijamos arbitrariamente k bases ai , i = 1, 2, , k, y para cada base comprobemos si se verica alguna de las condiciones de pseudoprimo fuerte. Si no se verican para alg un ai , entonces n es compuesto (con probabilidad 1). Si las k bases verican dichas condiciones, la probabilidad de que n sea compuesto es menor o igual que 1/4k (en realidad la cota anterior es muy mala, siendo en la pr actica la probabilidad mucho menor que 1/4k ). F acilmente 3 se comprueba que el coste computacional del test es O(log n) operaciones bit. Para mostrar la efectividad de los tests probabil sticos nalicemos con un ejemplo concreto: supongamos que deseamos conocer el primo m as peque no con 100 cifras decimales. Tecleando en nuestra sesi on de MAPLE la orden nextprime(1099 ); obtenemos en pocos segundos (1711 segundos en un Pentium III a 500 Mhz) la respuesta 1099 + 289 (la pantalla muestra en realidad la forma expandida de este n umero). Recientes tests de primalidad involucran t ecnicas matem aticas algo m as sosticadas: curvas el pticas, sumas de Jacobi, etc. Estos tests, deterministas, tienen un tiempo de computaci on casipolin omico, por lo que abren la posibilidad de probar la primalidad de n umeros de magnitudes hasta ahora inabordables. Como su consideraci on desbordar a el prop osito y el espacio de esta nota, remitimos al lector a la bibliograf a, ver [Koblitz, 1987], [Cohen, 1993].

Bibliograf a
BRESSOUD, D. M.: Factorization and Primality Testing, Springer-Verlag, 1989. COHEN, H.: A course in Computational Algebraic Number Theory, Springer-Verlag, 1993. KNUTH, D. E.: The Art of Computer Progamming, Vol. 2, Addison-Wesley, 1981. KOBLITZ, N.: A Course in Number Theory and Cryptography, Springer-Verlag, 1987. KRANAKIS, E.: Primality and Cryptography, John Wiley 1986. LOPEZ, F., TENA, J.: Introducci on a la teor a de n umeros primos, Publicaciones de la Universidad de Valladolid, 1990. RIBEMBOIM, P.: The Book of Prime Number Records, Springer, 1988.

Juan Tena Ayuso. Departamento de Algebra, Geometr a y Topolog a, Facultad de Ciencias, U. Valladolid. C/ Prado de la Magdalena, 47005 Valladolid. correo electr onico: tena@agt.uva.es

You might also like