Вы находитесь на странице: 1из 4

RSA, una clave secreta que muy probablemente ha usado sin saberlo por Santiago Egido Una de los

razones por las que el comercio electrnico no ha crecido con mayor rapidez es que muchos usuarios tienen miedo de mandar por la internet informacin sensible como sus nmeros de tarjetas de crdito. Aunque conviene tener cuidado con a quin le damos nuestro nmero, ya sea en la internet o en la calle, tampoco hay que ser demasiado paranoico; veamos una de las formas en que es posible mandar informacin confidencial por la internet. Cuando se navega por la web, de vez en cuando se llega a una "pgina segura", como aquellas en las que se proporcionan nmeros de tarjetas de crditos al hacer una compra. Si est usando Netscape, al visualizar esa pgina aparecer una llave en la esquina inferior izquierda de su ventana; si est usando Internet Explorer, aparecer un candado cerca de la esquina inferior derecha. Estos smbolos indican que la informacin que proporcione a la tienda se transmitir cifrada, sin que usted tenga que hacer nada para ello. Bueno, estos smbolos indican tambin otras cosas; entre ellas, que esa misma pgina que usted est viendo le ha sido mandada tambin cifrada. De forma que aunque usted pueda ver su direccin electrnica en la ventana de su web browser (Netscape o Explorer), alguien que hubiese pinchado los cables de su telfono sera incapaz de reconocerla y mandarle correo basura. Otra cosa es que la tienda en la que est comprando venda luego su direccin, claro. Esto puede parecer imposible, porque usted y la tienda no se han puesto de acuerdo con anterioridad en usar ninguna clave para mandarse mensajes secretos. As que parece de sentido comn que si alguien escuchase desde el principio el dilogo entre su ordenador y el de la tienda, entonces sera capaz de interceptar las claves que se intercambien y descifrarlo todo. Bueno, pues no. Es posible que todo el mundo conozca las claves usadas y tenga todos los mensajes, y que sin embargo nadie pueda descifrar nada. De hecho, en la internet es relativamente frecuente que la gente incluya su clave de PGP al final de cada mensaje mandado por correo electrnico. Hay varias formas de hacer esto, pero el sistema de cifrado de clave pblica ms extendido es el mtodo RSA, as llamado por las iniciales de sus inventores, Ronald Rivest, Adi Shamir, y Leonard Adleman. Este mtodo est instalado en su web browser, que se encarga por usted de generar claves, intercambiarlas, y usarlas cuando llega a una pgina segura. Sin entrar en detalles demasiado tcnicos, veamos cmo funciona y por qu es seguro. Un truco de magia Para entender cmo funciona el sistema RSA hace falta saber un poquito de matemticas; tan poquito que lo podemos presentar como un juego. Si le aburre esta seccin puede saltar al siguiente ttulo gordo. Quiere entretener a un cro? No es necesario que sepa hacer nmeros de prestidigitacin, le basta con una calculadora para asombrarle. Pngase una chistera y pdale a su pblico que le diga dos nmeros primos. Recordemos que los nmeros primos son aquellos que slo se puede dividir exactamente por 1 y por s mismos. Por concretar, imaginemos que le dan el 3 y el 11. Usted har dos cosas con estos nmeros. Por un lado los nultiplicar para obtener 3*11=33. Por otro lado, les restar 1, los multiplicar, y al resultado le volver a sumar 1; en nuestro caso, (3-1)*(11-1)+1=2*10+1=21. Y entonces dar a conocer un sorprendente secreto de los nmeros 33 y 21, llmele frmula mgica o cualquier tontera por el estilo. Resulta que si empezamos con cualquier nmero entre 0 y 32 y lo elevamos a la potencia 21 obtendremos un resultado enorme que, al dividirlo por 33, nos dar un resto que ser... el nmero con el que empezamos. Admito que hay trucos de magia ms vistosos, pero a los nios les impresionan los nmeros grandes. Si usted tiene una calculadora podr hacer la prueba con nmeros pequeos como el 2; 2 elevado a la potencia 21 resulta ser 2.097.152, que al dividirlo por 33 da 63.550 y resto 2. Si tiene un ordenador a mano la cosa tiene ms gracia porque los nmeros que aparecen son enormes; por ejemplo, 27 a la potencia 21 da 1144561273430837494885949696427, y al dividirlo por 33 obtenemos 34683674952449621057149990800 y resto 27. No falla, el resto es siempre el nmero con el que empezamos. Esto no es magia, por supuesto, pero dgale a un chaval que le va a ensear una consecuencia del teorema de Euler-Fermat y ver cmo corre el enano.

Cmo funciona el mtodo RSA Es posible que le asuste el nombre, pero usted ya ha aprendido toda la aritmtica modular que le har falta, as que vayamos al grano. Antes de nada necesitamos un sistema para convertir mensajes en nmeros. Lo ms tpico es sustituir cada letra del texto por dos cifras indicando su posicin en el alfabeto; es decir, cambiamos cada "a" por "01", cada "b" por "02", cada "c" por "03", etc, y de esta forma podemos convertir un importantsimo mensaje secreto como "hola" en "08151201". Debera haber alguna forma de incluir espacios y signos de puntuacin, pero estos detalles no son esenciales; lo importante es que a partir de ahora los mensajes que queremos cifrar y descifrar son simplemente nmeros. A diferencia de otros mtodos ms tradicionales, en los que tanto el emisor como el receptor tienen que conocer la misma clave, en RSA es el receptor quien tiene TODA la clave; al emisor le deja conocer la parte pblica de la clave, que sirve para cifrar mensaje. El receptor guarda muy cuidadosamente la parte privada de la clave, que sirve para descifrar. Construir una clave es fcil, de hecho ya lo hicimos en el apartado anterior. Buscamos dos nmeros primos como 3 y 11 y hacemos dos cosas con ellos. Primero los multiplicamos para obtener 33. Luego les restamos uno, los multiplicamos, y al resultado le sumamos 1, para obtener (3-1)*(11-1)+1=21. Y a continuacin (esto es nuevo) buscamos un divisor pequeo de 21, por ejemplo 3, y calculamos 21/3=7. Ya tenemos nuestra clave: para cifrar elevamos a la potencia 3, dividimos por 33, y nos quedamos con el resto. Para descifrar, elevamos a la potencia 7, dividimos por 33, y nos quedamos con el resto. Recordemos el truco de magia de la seccin anterior: si elevamos un nmero entre 0 y 32 a la potencia 21 y dividimos por 33, el resto es el nmero con el que empezamos. Pero 21=3*7, as que elevar a la potencia 21 es lo mismo que elevar primero a la potencia 3 y despus elevar el resultado a la potencia 7. Bueno, pues elevar a la potencia 3 es lo que hace el emisor para cifrar el mensaje; elevar a la potencia 7 es lo que hace el receptor para descifrar el mensaje. Y "mgicamente" el resultado de ambas operaciones es el mismo nmero con el que se empez, es decir, el mensaje original. Ahora que tenemos nuestra clave, anunciamos la parte pblica a todo el mundo que nos quiera mandar mensajes. Esto lo podemos hacer poniendo nuestra clave de PGP en nuestra pgina en la web, o con un anuncio en el peridico: Diario El Pas, edicin internacional Anuncios por palabras Soy Bond, James Bond, la clave RSA para enviarme mensajes es elevar a la potencia 3, dividir por 33, y mandarme el resto. Por supuesto, en el anuncio no se menciona para nada el nmero 7, que sirve para descifrar los mensajes; sta es la parte privada de la clave, la que guarda en secreto el receptor. Un ejemplo. Queremos mandar el mensaje "27" al agente 007. Bueno, pues lo elevamos a la potencia 3, obtenemos 19.683, lo dividimos por 33 y nos da 596 y resto 15. Como no tenemos ni idea de dnde est James Bond, lo que hacemos es poner nuestro mensaje cifrado (15) en el peridico, y nos da igual que los rusos o espectra lo puedan leer junto con la clave, no podrn descifrarlo. Diario El Pas, edicin internacional Anuncios por palabras Soy Bond, James Bond, la clave RSA para enviarme mensajes es elevar a la potencia 3, dividir por 33, y mandarme el resto. Mensaje para James Bond: 15. El agente 007 estar infiltrado en algn sitio que no se puede divulgar. Un da saldr "a por tabaco", comprar el peridico, y para recuperar nuestro mensaje elevar 15 a la potencia 7 y obtendr 170.859.375, que al dividirlo por 33 le dar 5177556 y resto 27, nuestro mensaje original. Por qu no se puede descifrar?

Hemos asegurado un poco dogmticamente que se puede publicar un mensaje cifrado junto a la clave sin que sea posible descifrarlo. Veamos por qu. Todos los sistemas de clave pblica conocidos se basan en que, de alguna forma, es posible representar la misma informacin de dos formas diferentes, tales que pasar de una forma a la otra es fcil, pero pasar de la otra a la una es prcticamente imposible. En el caso de RSA, en principio es lo mismo tener los nmeros primos 3 y 11 que tener su producto, 33. Decimos "en principio" porque dados dos nmeros es fcil multiplicarlos, y dado un nmero es tericamente posible factorizarlo en producto de nmeros primos - todos hemos hecho esto en la escuela para, por ejemplo, simplificar quebrados. Ahora bien, imaginemos que los nmeros primos que hemos usado para construir nuestra clave son enormes y tienen unas cien cifras cada uno. Cualquier ordenador puede encontrar nmeros primos as de grandes en un periquete y multiplicarlos en una milsima de segundo para obtener un resultado de doscientas cifras. De hecho, su ordenador lo hace; cada vez que usted visita una pgina segura, su web browser genera sobre la marcha una nueva clave de usar y tirar. Pero, cunto cuesta descomponer en factores primos un nmero con doscientas cifras? Esta es la gracia del sistema, es prcticamente imposible. Sin entrar en detalles, desde el punto de vista matemtico descifrar un mensaje cifrado con RSA es exactamente el mismo problema que factorizar la clave (el nmero 33 en nuestro ejemplo). Ambas tareas son equivalentes, y si pudisemos hacer una podramos hacer la otra. Como "se sabe" que los nmeros as de grandes no se pueden factorizar, el mtodo es seguro. Esto nos lleva a una curiosa observacin. Se podra pensar que lo ms seguro es usar un sistema de claves inventado por uno mismo, sin que nadie ms lo conozca. Pero lo ms probable es que uno reinventase un mtodo ya conocido y bastante descifrable. Sin embargo, el problema de factorizar nmeros grandes ha sido atacado por miles de matemticos a lo largo de muchos siglos. Puede parecer sorprendente, pero esta cuestin es realmente importante, y nadie ha encontrado una forma realmente rpida de hacerlo. Quien lo consiga se har rico y famoso, pero hay razones tericas para pensar que muy posiblemente no exista tal mtodo. Parece ser que los expertos estn de acuerdo en que, paradjicamente, los mtodos ms seguros son los que ya conoce todo el mundo y han superado la prueba del tiempo. S, en principio es posible factorizar nmeros de doscientas cifras. Pero incluso el ordenador ms potente del mundo usando los mejores mtodos conocidos tardara demasiado tiempo. Hay teoras cosmolgicas que dicen que dentro de billones de aos el universo empezar a contraerse gravitacionalmente y colapsar en un Big Crunch bastante parecido al Big Bang, solo que al revs. Si estas teoras son ciertas, para cuando se acabe el mundo nuestro ordenador ms grande no habra hecho sino una fraccin insignificante del trabajo necesario para factorizar un nmero de 200 cifras. Es cierto que la potencia de los ordenadores crece muy rpidamente, y que los algoritmos que se usan para factorizar nmeros han mejorado tambin mucho; hace treinta aos apenas se podan factorizar nmeros de 50 cifras, mientras que hoy ya se ha conseguido llegar a las 120. Conviene aclarar que de vez en cuando se anuncia que se ha conseguido factorizar algn nmero mucho mayor, pero no son nmeros cualquiera, sino que pertenecen a ciertos grupos interesantes para los matemticos con propiedades especiales que ayudan a factorizarlos. Imaginemos que hubiese razones para pensar que el gobierno de los EEUU es capaz de factorizar rutinariamente nmeros de quinientas cifras. Lo que haramos los dems sera usar claves de mil cifras. Este incremento les sera fatal a ellos, que volveran a necesitar trillones de aos para factorizar claves, mientras que nuestro perjuicio sera que para cifrar y descifrar mensajes tardaramos dcimas de segundo en vez de milsimas. Comentemos que uno de los primeros programas que implement RSA dedicaba intencionadamente la mayor parte de su tiempo a no hacer nada, porque los usuarios tendan a no creer que un mtodo tan veloz pudiese ser fiable. Los ordenadores rpidos estn de nuestro lado; si se multiplicase por diez la velocidad de los procesadores, nosotros podramos usar claves el doble de largas en el mismo tiempo, lo cual multiplicara por unos cuantos millones el tiempo que requeriran los americanos en factorizarlas. Es una competicin simplemente injusta en la que nosotros tenemos la ventaja. Dos notas tcnicas. Por un lado, las potencias no se calculan como hemos hecho nosotros, ya que los resultados son demasiado grandes incluso para un ordenador; hay trucos para averiguar cul ser el resto de la divisin sin tener que hacer la potencia. Por otro lado, un ordenador cuntico podra factorizar nmeros rpidamente, pero estos dispositivos tardarn bastante tiempo en ser una realidad. Si usted tiene que mandar un mensaje secreto con la absoluta certeza de que dentro de 200 aos seguir siendo imposible descifrarlo, entonces no use RSA. Firmas digitales y certificados Una ventaja de los sistemas de clave pblica es que todo el mundo te puede mandar un mensaje, pero esto puede resultar tambin un inconveniente, porque el hecho de que recibas un mensaje adecuadamente cifrado no implica que

te lo haya mandado alguien en quien confas. Parece como si todo el mundo pudiese mandarle mensajes a tu banco hacindose pasar por ti para sacar dinero de tu cuenta. Afortunadamente es posible usar RSA para comprobar quin ha mandado un mensaje. La idea se basa en una caracterstica ms bien atpica de este mtodo: es posible descifrar un mensaje que no ha sido cifrado todava. Esto no se puede hacer normalmente porque los mensajes cifrados suelen tener un formato que no tienen los textos originales. Por ejemplo, antes hablamos de un mtodo para convertir un mensaje en un nmero, por el procedimiento de sustituir cada "a" por "01", etc. Imaginemos por un momento que ussemos este procedimiento para cifrar textos; cmo descifraramos un mensaje como "999"? No slo tiene un nmero impar de cifras, sino que en el alfabeto no hay 99 letras; aunque no lo hayamos descrito explcitamente, los mensajes cifrados de esta forma tienen un formato bastante especfico. Una ventaja de usar nmeros en vez de letras, como hace RSA, es que su formato es poco importante. Pensemos en el ejemplo anterior, cuando elevbamos al cubo para cifrar y a la sptima potencia para descifrar; qu es lo que nos impide elevar primero a la sptima potencia y despus al cubo? (y quedndonos siempre con los restos al dividir los resultados por 33). El resultado de descifrar primero y cifrar despus es lo mismo que cifrar primero y descifrar despus, porque para cualquier nmero n se cumple que (n3)7 = n3*7 = n7*3 = (n7)3 Es muy posible que la frmula anterior le traiga recuerdos del bachillerato; recurdela de todas formas, el da que sus hijos le pregunten para qu sirve la propiedad conmutativa del producto usted podr responderles que sirve para certificar cosas en la internet. Imagnese que usted es un notario y tiene que certificar, por ejemplo, una declaracin para un juicio en Madagascar. Mandar la declaracin por correo electrnico no bastara, porque cualquiera podra falsificarla. Sin embargo, si usted tuviese una clave RSA, podra mandar la declaracin dos veces: una copia legible por humanos y, adems, una copia descifrada. Cuando alguien desease comprobar que esa declaracin ha sido certificada por usted, lo nico que tendra que hacer sera cifrar la copia descifrada de la declaracin con la clave de su despacho de notario, que se podra sacar de un registro oficial en la internet. Si el resultado de cifrar la declaracin descifrada es idntico a la copia de la declaracin que se recibi sin descifrar, entonces se sabe que ese mensaje fue efectivamente mandado por usted, porque nadie ms es capaz de descifrar usando su clave. De esta forma, el que todo mundo pueda usar su clave para cifrar mensajes se convierte en una forma de comprobar que fue usted quien descifr algo. Hace ya aos que existen compaas privadas que ofrecen servicios de certificacin por internet, pero la gente no confa en estas tecnologas, que apenas se usan para proporcionar acceso a pginas pornogrficas. Lo ms posible es que, para cuando el mundo haya espabilado, este mercado haya sido acaparado por el Servicio Postal de los Estados Unidos, que cobrar un tanto por ciento de todas las transferencias bancarias, un pellizquito cada vez que alguien lea una revista de pago en la internet, etc. Bien, pero cmo firmamos un mensaje secreto? No podemos mandar una versin descifrada, porque todo el mundo podra cifrarla y leer el mensaje. El truco consiste en que tanto el emisor como el receptor tengan claves RSA. Cuando yo quiera mandarle un mensaje a usted, le mando mi texto cifrado con su clave pblica, seguido del texto primero descifrado con mi clave privada y luego cifrado con su clave pblica. Parece un trabalenguas, pero la idea es la misma de antes, solo que todo el envo se hace cifrado con su clave para que slo usted pueda comprobar que fui yo quien mand el mensaje. Nota tcnica: en realidad, una firma digital no contiene todo el mensaje cifrado, sino tan solo el equivalente a un nmero de unas 40 o 80 cifras obtenido del texto de tal forma que la ms mnima modificacin sera detectada; pero eso es otra historia. Todo esto puede parecer ciencia ficcin, pero lo ms probable es que usted haya usado ya este mtodo sin saberlo al navegar por la web. Adems, todo esto es ms bien viejo. La patente de 20 aos de RSA expira el 20 de septiembre de 2000. La primera versin de PGP data de 1991. Otro estndard que incluye muchas de las cosas discutidas aqu es MIME, el protocolo de correo electrnico que probablemente usa usted todos los das. Los cajeros automticos tambin usan tcnicas parecidas. No, ya no es ciencia ficcin, aunque la gente siga sin fiarse; quizs el mayor xito de la criptografa comercial haya sido hasta qu punto se ha infiltrado en nuestras vidas sin habernos molestado.

Вам также может понравиться