2.6 Diffusion MRI reconstruction and feature extraction
2.6.1 Diffusion signal representations
2.6.1.4 SHORE
Rivest, Sharnir y Adleman formaban un equipo perfecto. Rivest es un científico de la
informática con una habilidad tremenda para absorber nuevas ideas y aplicarlas en lugares improbables. Siempre se mantuvo al tanto de los últimos artículos científicos, lo que le inspiró a dar con toda una serie de extrañas y estupendas candidatas para la función de una sola vía que constituye el núcleo de una cifra asimétrica. Sin embargo, cada una de las candidatas resultaba defectuosa de alguna forma. Shamir, otro científico de la informát ica, tiene un intelecto rapidísimo y la habilidad de distinguir lo accesorio y centrarse en la esencia de un problema. Él también aportaba regularmente ideas para formular una cifra asimétrica, pero sus ideas también resultaban inevitablemente defectuosas. Adleman, un matemático con una energía, rigor y paciencia enormes, era en gran medida el responsable de detectar los fallos en las ideas de Rivest y Sharnir, asegurando que no perdieran el tiempo siguiendo pistas falsas. Rivest y Sharnir pasaron un año dando con nuevas ideas, y Adleman pasó un año echándolas por tierra. El trío empezó a perder la esperanza, pero no era consciente de que este proceso de fracasos continuos era una parte necesaria de su investigación, que los separaba lentamente del estéril territorio matemático y los llevaba hacia un terreno más fértil. A su debido tiempo, sus esfuerzos fueron recompensados. En abril de 1977, Rivest, Shamir y Adleman celebraron la Pascua judía en casa de un estudiante y habían bebido una cantidad importante de vino Manischewitz antes de volver a sus respectivos hogares hacia la medianoche. Rivest, que no podía dormir, se tumbó en su sofá a leer un libro de texto de matemáticas. Empezó a darle vueltas a la pregunta que llevaba semanas devanándole los sesos: ¿es posible construir una cifra asimétrica? ¿Es posible encontrar una función de una sola vía que sólo se pueda invertir si el receptor tiene alguna información especial? De pronto, la niebla empezó a despejarse y tuvo una
revelación. Pasó el resto de esa noche formalizando su idea y, de hecho, escribiendo un artículo científico completo antes de que amaneciera. Rivest había dado un gran paso adelante, pero había sido el resultado de una colaboración de todo un año con Shamir y Adleman, y no habría sido posible sin ellos. Rivest finalizó el artículo enumerando a los autores alfabéticamente: Adleman, Rivest, Sharnir.
A la mañana siguiente, Rivest le entregó el artículo a Adleman, que realizó su habitual proceso de tratar de echarlo por tierra, pero esta vez no pudo encontrar ningún defecto. Su única crítica tenía que ver con la lista de autores. «Le dije a Ron que quitase mi nombre del artículo», recuerda Adleman. «Le dije que era su invento, no el mío. Pero Ron se negó y empezamos a discutir sobre ello. Acordamos que me iría a casa y me lo pensaría durante una noche, considerando lo que quería hacer. Volví al día siguiente y le sugerí a Ron que yo fuera el tercer autor. Recuerdo que pensé que este artículo sería el menos interesante que firmaría.» Adleman no podía equivocarse más. El sistema apodado RSA (Rivest,
Sharnir, Adleman) en vez de ARS, se convertiría en la cifra más influyente de la criptografía moderna
Antes de explorar la idea de Rivest recordemos rápidamente lo que los científicos estaban buscando para construir una cifra asimétrica:
(1) Alicia debe crear una clave pública , que publicaría para que Benito (y todo el mundo) pueda usarla para codificar los mensajes dirigidos a ella. Como la clave pública es una función de una sola vía debe ser virtualmente imposible que nadie la invierta y descodifique los mensajes de Alicia.
(2) Sin embargo, Alicia necesita descodificar los mensajes que le envían. Por tanto, debe tener una clave privada, una información especial, que le permita invertir el efecto de la clave pública. Por consiguiente, Alicia (y sólo Alicia) tiene el poder para descodificar cualquier mensaje dirigido a ella.
El núcleo de la cifra asimétrica de Rivest es una función de una sola vía basada en el tipo de funciones modulares descritas anteriormente en este capítulo. La función de una sola vía de Rivest se puede usar para codificar un mensaje; el mensaje, que en realidad es un
número, se pone en la función, y el resultado es el texto cifrado, otro número. No describiré la función de una sola vía de Rivest en detalle (para ello véase este documento) , pero explicaré uno de sus aspectos en particular, conocido simplemente como N, porque es N lo que hace que esta función de una sola vía sea reversible en ciertas circunstancias y, por tanto, que resulte ideal para ser usada como clave asimétrica.
N es importante porque es un componente flexible de la función de una sola vía, lo que significa que cada persona puede elegir su valor personal de N, y personalizar la función de una sola vía. Para elegir su valor personal de N, Alicia escoge dos números primos, p y
q, y los multiplica el uno por el otro . Un número primo es un número que sólo se puede
dividir por sí mismo y por 1. Por ejemplo, 7 es un número primo porque no hay ningún número además de 7 y 1 que pueda dividido sin dejar un resto. Asimismo, 13 es un número primo porque ningún número, aparte de 13 y 1, puede dividido sin dejar un resto. Sin embargo, 8 no es un número primo, porque puede ser dividido por 2 y por 4.
De modo que Alicia podría decidir que sus números primos fueran p = 17.159 y q = 10.247. Multiplicando estos dos números obtenemos N =17.159 x 10.247 = 175.828.273. La
elección de N de Alicia se convierte de hecho en su clave de codificación pública y
cifrado a Alicia, busca el valor de N de Alicia (175.828.273) y lo inserta en el formato general de la función de una sola vía, que también debería ser de dominio público. Benito tiene ahora una función de una sola vía confeccionada con la clave pública de Alicia, de modo que podríamos llamada la función de una sola vía de Alicia. Para codificar un mensaje para Alicia, Benito toma la función de una sola vía de Alicia, inserta el mensaje, anota el resultado y se lo envía a Alicia.
Ahora, el mensaje codificado es seguro porque nadie puede descodificarlo. El mensaje ha sido codificado con una función de una sola vía, de modo que invertir la función de una sola vía y descodificar el mensaje es, por definición, muy difícil. Sin embargo, permanece la pregunta: ¿cómo puede Alicia descodificar el mensaje? Para leer los mensajes que le envían, Alicia debe tener una manera de invertir la función de una sola vía. Necesita tener acceso a alguna información especial que le permita des codificar el mensaje.
Afortunadamente para Alicia, Rivest diseñó la función de una sola vía que de modo que
sea reversible para alguien que conozca los valores de p, y q, los dos números primos que se multiplican el uno por el otro para obtener N . Aunque Alicia ha anunciado al
mundo que su valor para N es 175.828.273, no ha revelado sus valores para p y q, de manera que sólo ella tiene la información especial necesaria para des codificar sus propios mensajes.
Podemos considerar N como la clave pública , la información que está disponible para todo el mundo, la información necesaria para codificar los mensajes dirigidos a Alicia. Mientras que p y q son la clave privada , disponible sólo para Alicia, la información necesaria para descodificar esos mensajes.
Los detalles exactos de cómo p y q se pueden usar para invertir la función de una sola vía se esbozan en el este documento. Sin embargo, hay una cuestión que hay que tratar
inmediatamente. Si todo el mundo conoce el valor de N, la clave pública, entonces sin duda la gente podrá deducir p y q, la clave privada, y leer los mensajes de Alicia, ¿no? Después de todo, N surgió de p y q. En realidad, resulta que si N es un número lo suficientemente
alto es virtualmente imposible deducir p y q a partir de N . y éste es posiblemente el
aspecto más bello y elegante de la clave asimétrica RSA.
Alicia creó N eligiendo p y q y multiplicándolos. El punto fundamental es que esto constituye en sí mismo una función de una sola vía. Para demostrar la naturaleza de una sola vía de multiplicar números primos podemos tomar dos números primos, como 9.419 y 1.933, Y multiplicarlos el uno por el otro. Una calculadora sólo tarda unos segundos en obtener la respuesta, 18.206.927. Sin embargo, si nos dieran el número 18.206.927 y nos pidieran que encontrásemos los factores primos (los dos números que se multiplicaron para obtener 18.206.927) nos costaría muchísimo más tiempo. Si aún duda la dificultad de encontrar los factores primos, considere lo siguiente. Sólo me costó diez segundos generar el número 1.709.023, pero a usted ya su calculadora les costará casi una tarde entera calcular los factores primos.
Este sistema de criptografía asimétrica, conocido como RSA, se considera una forma de criptografía de clave pública. Para descubrir hasta qué punto RSA es seguro, podemos examinarlo desde el punto de vista de Eva y tratar de descifrar un mensaje de Alicia a
Benito. Para codificar un mensaje para Benito, Alicia debe buscar la clave pública de Benito. Para crear su clave pública, Benito eligió sus propios números primos, pB y qB Y los multiplicó el uno por el otro para obtener NB. Ha mantenido pB y qB en secreto, porque constituyen su clave de decodificación privada, pero ha anunciado NB, que es igual a 408.508.091. Alicia inserta la clave publica de Benito (NB) en la función de una sola vía general de codificación y luego codifica el mensaje que quiere enviarle. Cuando llega el mensaje codificado, Benito puede invertir la función y descodificarlo usando sus valores para pB y qB que constituyen su clave privada. Mientras tanto, Eva ha interceptado el mensaje en ruta. Su única esperanza de descodificar el mensaje es invertir la función de una sola vía, y esto sólo es posible si conoce los valores de pB y qB Benito ha mantenido pB y qB en secreto, pero Eva, como todo el mundo, sabe que NB es 408.508.091. Entonces, Eva intenta deducir los valores de pB y qB calculando qué números serían necesarios para que, al ser multiplicados él uno por el otro, dieran 408.508.091, un proceso que se conoce como factorizar.
Factorizar requiere mucho tiempo, pero ¿cuánto tardaría Eva exactamente en encontrar los factores de 408.508.091? Hay varios métodos para tratar de factorizar NB. Aunque algunos métodos son más rápidos que otros, esencialmente todos ellos conllevan probar cada número primo para ver si divide a NB sin dejar resto. Por ejemplo 3 es un numero primo pero no es un factor de un factor de 408.508.091, porque 3 no dividirá perfectamente 408.508.091. De modo que Eva pasa al siguiente número primo, 5. De manera similar, 5 no es un factor, por lo que Eva pasa al siguiente número primo, y así sucesivamente.
Finalmente, Eva llega a 18.313, el 2.000° número primo, que efectivamente es un factor de 408.508.091. Al haber encontrado un factor, es fácil encontrar el otro, que resulta ser 22.307. Si Eva tuviera una calculadora y pudiera probar cuatro número primos al minuto le habría costado 500 minutos, es decir, más de 8 horas, encontrar pB y qB En otras palabras, Eva sería capaz de calcular la clave privada de Benito en menos de un día y, por
consiguiente, podría descifrar el mensaje interceptado en menos de un día.
Esto no constituye un nivel muy alto de seguridad, pero Benito podría haber elegido números primos muchísimo más elevados y aumentar la seguridad de su clave privada. Por ejemplo, podría haber elegido números primos tan altos como 1065 (esto significa 1 seguido de 65 ceros, es decir, cien mil millones de millones de millones de millones de millones de millones de millones de millones de millones de millones). Esto hubiera resultado en un valor de N que sería aproximadamente 1065 x 1065, que es 10130. Un ordenador podría multiplicar los dos números primos y generar N en un solo segundo, pero si Eva quisiera invertir el proceso y calcular pB y qB le costaría un tiempo desorbitadamente mayor. Cuánto exactamente depende de la velocidad del ordenador de Eva. El experto en seguridad
Simson Garfinkel estimó que un ordenador Intel Pentium de 100 MHZ con 8 ME de RAM tardaría aproximadamente Cincuenta años en factorizar un número tan alto como 10130 Los criptógrafos tienden a tener una vena paranoica y ponerse en el peor de los casos, como una conspiración mundial para descifrar sus cifras. Así que Garfinkel
consideró lo que podría suceder si cien millones de ordenadores personales (el número vendido en 1995) se confabularan contra esa cifra. El resultado es que se podría factorizar un número tan alto como 10130 en unos quince segundos. Por consiguiente, se acepta ahora
Los esfuerzos combinados de cien millones de ordenadores personales tardarían mas de mil años en descifrar semejante clave, Con valores de pB y qB suficientemente elevados, RSA es indescifrable
El único peligro potencial para la criptografía de clave publica RSA es que en algún tiempo futuro alguien lograra encontrar una manera rápida de factorizar N . Es
concebible que dentro de una década, o incluso mañana, alguien descubrirá un método para factorizar rápidamente, y a partir de entonces RSA ya no servirá. Sin embargo, durante dos mil años los matemáticos han intentado inútilmente encontrar un atajo y en nuestros días factorizar continúa siendo un cálculo que requiere un tiempo enorme. La mayoría de los matemáticos cree que factorizar es inherentemente una tarea difícil, y que hay alguna ley matemática que no permite ningún atajo. Si asumimos que tienen razón, entonces RSA parece seguro para el futuro previsible.
La gran ventaja de la criptografía de clave pública RSA es que elimina todos los problemas asociados con las cifras tradicionales y el intercambio de claves. Alicia ya no tiene que preocuparse sobre cómo llevar de una manera segura la clave a Benito, o de que Eva pueda interceptar la clave. De hecho, a Alicia no le importa quién vea la clave pública: cuanta más gente la vea, mejor, porque la clave pública sólo sirve para codificar, no para descodificar. Lo único que se necesita mantener en secreto es la clave privada utilizada para la
descodificación, y Alicia puede tenerla consigo continuamente.
El sistema RSA fue anunciado por vez primera en agosto de 1977, cuando Martin Gardner escribió un artículo titulado «Un nuevo tipo de cifra que costaría millones de años
descifrar» para su columna «Juegos matemáticos» en la revista Scientific American. Tras explicar cómo funciona la criptografía de clave pública, Gardner lanzó un desafío a sus lectores. Publicó un texto cifrado y proporcionó también la clave pública que se había utilizado para codificarlo:
N = 114.381.625.757.888.867.669.235.779.976.146.612.010.218.296. 721.242.362.562.561.842.935.706.935.245.733.897.830.597.123.563. 958.705.058.989.075.147.599.290.026.879.543.541.
El desafío era factorizar N en p y q, y luego usar estos números para descodificar el mensaje. El premio era de 100 dólares. Gardner no contaba con espacio suficiente para explicar los detalles prácticos del RSA, por lo que pidió a los lectores que escribieran al laboratorio de Informática del MIT, que a su vez les enviaría un memorándum técnico que se acababa de preparar. A Rivest, Sharnir y Adleman les sorprendieron las tres mil
peticiones que recibieron. Sin embargo, no respondieron inmediatamente, porque les preocupaba que la distribución pública de su idea pudiera poner en peligro sus
posibilidades de obtener una patente. Cuando los asuntos relacionados con la patente se solucionaron finalmente, el trío dio una fiesta de celebración en la que profesores y estudiantes consumían pizza y cerveza a la vez que metían en sobres los memorandos técnicos para los lectores de Scientific American.
En cuanto al desafío de Gardner, pasarían diecisiete años antes de que se lograra romper la cifra. El 26 de abril de 1994, un equipo de seiscientos voluntarios anunció los factores de N:
q = 3.490.529.51 0.847.650.949.147.849.619.903.898.133.417.764. 638.4 9 3.387.843.990.820.577
p = 32.769.132.993.266.709.549.961.988.190.834.461.413.177. 642.967.992.942.539.798.288.533.
Utilizando estos valores como clave privada, lograron descifrar el mensaje, formado por una serie de números, que, cuando se convertían en letras, decía «the magic words are squeamish ossifrage» «las palabras mágicas son un quebrantahuesos impresionable» . El problema de la factorización había sido dividido entre los voluntarios, que procedían de países tan distantes como Australia, Reino Unido, Estados Unidos y Venezuela. Los voluntarios empleaban su tiempo libre en sus terminales, ordenadores centrales y superordenadores, abordando cada uno de ellos una pequeña parte del problema. En realidad, una red de ordenadores de todo el mundo se había unido y trabajaban
simultáneamente para afrontar el desafío de Gardner. Incluso teniendo en consideración el gigantesco esfuerzo paralelo, puede que a algunos lectores aún les sorprenda que RSA fuera descifrado en tan poco tiempo, pero hay que señalar que el desafío de Gardner utilizaba un valor relativamente pequeño de N: era sólo de alrededor de 10129. Hoy día, los usuarios de RSA elegirían un valor mucho más elevado para garantizar la seguridad de la información importante. Ahora es ya habitual codificar un mensaje con un, valor de N lo
suficientemente grande como para que todos los ordenadores del mundo necesitaran más tiempo que la edad del universo para romper la cifra .