← Todos los articulos

Filosofía de la ingeniería: Adi Shamir

Adi Shamir, criptógrafo y coinventor de RSA

Ideas clave

  • Es la “S” de RSA, el primer criptosistema de clave pública práctico. Junto a Ron Rivest y Leonard Adleman, Adi Shamir coinventó RSA en el MIT en 1977 (descrito públicamente ese mismo año y publicado en Communications of the ACM en febrero de 1978). El esquema hizo posible cifrar mensajes para alguien, y verificar sus firmas, sin compartir nunca un secreto de antemano, y su seguridad descansa en la dificultad de factorizar números grandes. El trabajo les valió a los tres el Premio Turing de la ACM de 2002.12
  • Convirtió un polinomio en un secreto perfecto. En 1979 Shamir publicó “How to Share a Secret”, un esquema de umbral que reparte un secreto entre n personas de modo que cualquier subconjunto de k de ellas pueda reconstruirlo y cualquier subconjunto de k-1 no aprenda absolutamente nada: ni una pista, ni un acotamiento. Todo el mecanismo se construye únicamente con puntos sobre un polinomio.3
  • Es un criptoanalista magistral: ataca para defender. Junto a Eli Biham, a finales de la década de 1980, Shamir descubrió públicamente el criptoanálisis diferencial, un método general para romper cifrados por bloques, y antes había roto el criptosistema de mochila de Merkle-Hellman. La misma mente que construyó RSA pasó décadas aprendiendo a romper cosas, porque en criptografía esa es la única forma honesta de saber que un sistema es fuerte.45
  • Sigue convirtiendo matemática limpia en mecanismo práctico. Más allá de RSA y la compartición de secretos, Shamir coinventó la heurística de Fiat-Shamir —una forma de convertir una prueba interactiva en una firma no interactiva usando una función de hash— además de esquemas de criptografía basada en identidad y de criptografía visual. Profesor en el Instituto Weizmann desde 1980, su carrera es un largo alegato de que la teoría de números profunda es una caja de herramientas, no un museo.16

El principio

“Más tarde se supo que el criptoanálisis diferencial ya era conocido —y mantenido en secreto— tanto por IBM como por la Agencia de Seguridad Nacional.” —sobre la técnica que Biham y Shamir redescubrieron a la luz pública, parafraseando el registro histórico45

Casi toda la ingeniería avanza hacia una demostración. Escribes la cosa, la ejecutas, funciona, y el funcionamiento es la prueba. La criptografía rechaza ese consuelo. Un cifrado que cifra y descifra correctamente no ha demostrado nada sobre si es seguro: un cifrado roto y uno irrompible se comportan de forma idéntica hasta que alguien los ataca. Así que el campo tuvo que inventar un estándar de verdad distinto: un sistema es confiable no cuando funciona, sino cuando gente seria ha intentado con empeño romperlo y ha fracasado. Toda la carrera de Shamir encarna ese estándar. Aseguras un sistema aprendiendo a romper sistemas: atacar para defender.4

La expresión más nítida es que él mismo hace las dos mitades. Construyó RSA, la piedra angular de la criptografía de clave pública, y construyó la compartición de secretos de Shamir, un esquema con seguridad demostrable en el sentido de la teoría de la información.13 Pero también rompió el criptosistema de mochila de Merkle-Hellman —un esquema de clave pública rival que parecía seguro y no lo era— y codescubrió el criptoanálisis diferencial, un método lo bastante general como para amenazar al mismísimo Data Encryption Standard.45 No son dos carreras. Son una sola disciplina. El trabajo de construcción te dice qué es posible; el trabajo de destrucción te dice qué es real. Un criptógrafo que solo construye está adivinando, y la prueba más escalofriante de ello llegó después, cuando se supo que IBM y la NSA conocían el criptoanálisis diferencial desde mediados de los años setenta y lo mantuvieron clasificado, lo que significa que el campo público había estado construyendo cifrados ciego ante un ataque que sus adversarios ya tenían en la mano.45

Hay una segunda mitad del principio, más callada y igual de portante: el poder de convertir una idea matemática limpia en un mecanismo práctico. La compartición de secretos es solo interpolación polinómica —un hecho que cualquier estudiante encuentra en álgebra, que dos puntos fijan una recta y tres fijan una parábola—. Shamir vio que el mismo hecho, leído al revés, es una primitiva de seguridad: reparte puntos, y la curva permanece oculta hasta que se reúnen suficientes de ellos.3 RSA es solo exponenciación modular y la dureza de la factorización.2 La heurística de Fiat-Shamir es solo reemplazar el lanzamiento de moneda de un verificador por un hash.6 Encuentra la estructura matemática limpia, luego léela como un mecanismo. El genio rara vez está en matemática nueva: está en ver que la matemática vieja, mirada desde el ángulo correcto, ya es la cosa que necesitas construir.

Contexto

Adi Shamir nació el 6 de julio de 1952 en Tel Aviv, Israel.1 Obtuvo su licenciatura en matemáticas en la Universidad de Tel Aviv en 1973, y luego pasó al Instituto Weizmann de Ciencias para sus estudios de posgrado, donde obtuvo una maestría en ciencias de la computación en 1975 y un doctorado en 1977.1 Su momento, como el del campo, estaba a punto de cambiar: 1977 fue el año en que la criptografía de clave pública pasó de ser una idea tentadora a un sistema en funcionamiento.

Tras el doctorado pasó un año como investigador posdoctoral en la Universidad de Warwick, en Inglaterra, y después fue al Instituto Tecnológico de Massachusetts, donde fue miembro del personal de investigación de 1977 a 1980.1 El MIT es donde ocurrió RSA. Ron Rivest, el criptógrafo, venía persiguiendo un esquema de clave pública inspirado en la idea de Diffie-Hellman de que dos partes podían establecer secreto sin un secreto compartido; Shamir y Adleman eran sus colaboradores y, sobre todo, sus adversarios: Rivest proponía un esquema, y Shamir y Adleman lo rompían, una y otra vez, hasta que uno sobrevivió. El que sobrevivió fue RSA, nombrado por los tres, publicado en 1977 y en Communications of the ACM en 1978.2 (Sin que ellos lo supieran, el matemático británico Clifford Cocks, en el GCHQ, había descrito un sistema equivalente en un documento clasificado de 1973 que permaneció en secreto hasta 1997: otro caso del campo construyendo a oscuras mientras las agencias de inteligencia observaban.)2

En 1980 Shamir regresó al Instituto Weizmann, donde ha sido profesor en el departamento de ciencias de la computación y matemática aplicada desde entonces, y más tarde también ocupó una cátedra invitada en la École Normale Supérieure de París.1 Casi todo lo que lo define —la compartición de secretos, el asalto a los cifrados de mochila, el criptoanálisis diferencial con su estudiante Eli Biham, la heurística de Fiat-Shamir, la criptografía visual con Moni Naor, los ataques cubo, los dispositivos de factorización TWIRL y TWINKLE— salió de Weizmann. En 2002 la Association for Computing Machinery otorgó a Rivest, Shamir y Adleman el Premio Turing, el máximo honor de la computación, por sus contribuciones a la criptografía de clave pública.12

El trabajo

La compartición de secretos de Shamir: una parábola que guarda un secreto

Empieza aquí, porque es el principio en su forma más pura y hermosa. Supón que tienes un secreto —una clave maestra, el código de lanzamiento, la contraseña de un tesoro— y quieres repartirlo entre cinco custodios de modo que tres cualesquiera de ellos, juntos, puedan recuperarlo, pero ningún par de ellos pueda aprender nada. Podrías intentar cortar físicamente la clave en pedazos, pero eso filtra información: cada pedazo estrecha la conjetura. La intuición de Shamir en 1979, en “How to Share a Secret”, fue que los polinomios ya resuelven esto exactamente.3

El truco lee al revés un hecho de la escuela primaria. Dos puntos determinan una única recta; tres puntos determinan una única parábola; en general, k puntos determinan un único polinomio de grado k-1. Así que para compartir un secreto entre n personas con un umbral de k, escondes el secreto como el término constante de un polinomio aleatorio de grado k-1 —el valor de la curva en x = 0— y le entregas a cada persona un punto sobre esa curva.3 Cualesquiera k de ellas pueden interpolar la curva única que pasa por sus puntos y leer su valor en cero. Pero lo asombroso es la seguridad: con solo k-1 puntos, la curva no es meramente difícil de hallar, sino que está genuinamente indeterminada. Para cada valor posible del secreto, existe exactamente una curva del grado correcto que pasa por sus puntos y alcanza ese valor en cero. Como garantiza el esquema de Shamir, “el conocimiento de cualesquiera k-1 o menos partes deja S completamente indeterminado”.3 Menos del umbral no revela nada; el umbral lo revela todo. Esa frontera limpia de todo-o-nada es lo que lo hace seguro en el sentido de la teoría de la información: seguro no porque romperlo sea computacionalmente difícil, sino porque la información sencillamente no está ahí.3

Por qué importa como ingeniería: el esquema es el ejemplo canónico de Shamir leyendo la matemática como mecanismo. No inventó la interpolación polinómica —tiene siglos—. Vio que su modo de fallo —que no puedes recuperar una curva a partir de demasiado pocos puntos— es precisamente una propiedad de seguridad, y que su modo de éxito —que suficientes puntos la fijan con exactitud— es precisamente una propiedad de recuperación. El mismo hecho, usado en ambas direcciones, se convierte en una primitiva criptográfica que hoy funciona dentro de módulos de seguridad por hardware, custodia de criptomonedas y autoridades de certificación. Matemática limpia, leída como herramienta.3

RSA: cifrar para un desconocido

RSA respondió a una pregunta que había parecido casi paradójica: ¿cómo pueden dos personas que nunca se han conocido, y que se comunican solo por un cable donde un adversario está escuchando, intercambiar secretos? La criptografía clásica exigía una clave compartida establecida de antemano, pero no puedes compartir una clave por el mismísimo canal que intentas proteger. El gran avance, que Rivest, Shamir y Adleman convirtieron en un sistema en funcionamiento en 1977, fue la función unidireccional con trampa: una operación fácil de calcular hacia adelante e inviable de revertir, a menos que poseas una pieza secreta de información.2

La trampa de RSA es la factorización. Eliges dos números primos grandes y los multiplicas para formar un módulo n; n y un exponente público se convierten en tu clave pública, que puedes publicar al mundo. Cualquiera puede usarla para cifrarte un mensaje, mediante exponenciación modular. Pero descifrar requiere la clave privada, que solo puede derivarse de los dos primos originales, y recuperar esos primos a partir de su producto significa factorizar un número muy grande, un problema sin solución eficiente conocida.2 Como reza la formulación, aunque resulta práctico construir las claves, “dados únicamente e y n, es inviable calcular raíces e-ésimas módulo n”.2 Publicas el candado; solo tú tienes la llave; y la brecha entre ambos es la dificultad de la factorización.

Vale la pena enunciar con claridad el papel concreto de Shamir, porque es de nuevo el principio: él era, junto a Adleman, el criptoanalista del trío. La historia de la invención de RSA es una historia de ruptura: Rivest proponía esquemas candidatos y Shamir y Adleman los atacaban hasta que solo uno resistió el asalto. El esquema superviviente era fuerte precisamente porque había sobrevivido a los ataques de dos personas decididas a romperlo. RSA no es un sistema que se diseñó para ser seguro y luego se esperó que lo fuera; es un sistema que se ganó esa afirmación al sobrevivir a sus propios autores.2

Adi Shamir

Atacar para defender: romper mochilas y el criptoanálisis diferencial

Si RSA muestra a Shamir construyendo, el siguiente cuerpo de trabajo lo muestra haciendo lo que el campo necesita aún más: romper. A finales de la década de 1970, el criptosistema de mochila de Merkle-Hellman era un rival destacado de RSA, con su seguridad apoyada en el problema de la “suma de subconjuntos”, que es NP-completo y por ello parecía formidablemente difícil. Shamir lo rompió. Demostró que las mochilas concretas que usaba Merkle-Hellman no eran el caso general difícil, sino uno especial y estructurado que podía resolverse de forma eficiente, demoliendo un esquema en el que muchos habían confiado.1 La lección es una que la criptografía no deja de reaprender: que un problema sea difícil en general no significa que las instancias que tu cifrado realmente usa sean difíciles. Solo el ataque revela la diferencia.

Su trabajo criptoanalítico más influyente llegó con su estudiante Eli Biham a finales de los años ochenta: el criptoanálisis diferencial, publicado alrededor de 1990.45 Es una técnica general que estudia cómo las diferencias entre pares de entradas a un cifrado se propagan hacia diferencias en la salida. Si ciertas diferencias de entrada conducen a ciertas diferencias de salida con probabilidad no aleatoria, ese sesgo estadístico es una grieta —una filtración de información sobre la clave—, y Biham y Shamir lo convirtieron en ataques contra una gama de cifrados por bloques, incluida una debilidad teórica en el Data Encryption Standard, entonces el cifrado más importante del mundo.45

Entonces el campo aprendió algo humillante. En 1994, Don Coppersmith reveló que IBM —que había diseñado DES en los años setenta— conocía el criptoanálisis diferencial “ya en 1974”, que defenderse de él había sido un objetivo de diseño explícito de DES, y que la NSA había presionado para mantener la técnica clasificada porque “la divulgación de las consideraciones de diseño revelaría la técnica del criptoanálisis diferencial, una técnica poderosa que podría usarse contra muchos cifrados”.45 Las misteriosas constantes internas de DES, sospechosas durante mucho tiempo de ocultar una puerta trasera, resultaron estar ocultando una defensa contra un ataque cuya existencia el público desconocía. El episodio es el argumento más fuerte posible a favor del principio de Shamir. Durante dos décadas la comunidad abierta había construido y confiado en cifrados mientras permanecía ciega ante un ataque fundamental que los adversarios ya tenían en la mano. El redescubrimiento público de Biham y Shamir no debilitó la criptografía: la fortaleció, al arrastrar el ataque a la luz donde todo el mundo podía diseñar para resistirlo. Atacar para defender, a la escala de todo un campo.45

Adi Shamir en el escenario con Ron Rivest y Leonard Adleman en CRYPTO 2017

Fiat-Shamir y la amplitud de la caja de herramientas

El mismo instinto —encontrar la estructura limpia, leerla como mecanismo— recorre las demás invenciones de Shamir. La heurística de Fiat-Shamir, con Amos Fiat a mediados de los años ochenta, resolvió un problema práctico de las pruebas interactivas de conocimiento: tales pruebas requieren un ir y venir en vivo, en el que un verificador envía un desafío aleatorio y un probador responde. Fiat y Shamir vieron que el único trabajo del verificador era suministrar aleatoriedad impredecible, y que una función de hash criptográfica aplicada al propio mensaje del probador podía suministrar esa aleatoriedad igual de bien, convirtiendo una conversación en una única prueba autocontenida y no interactiva, es decir, en una firma digital.6 Esa sola transformación sustenta una gran fracción de los esquemas modernos de firma y de los sistemas de conocimiento cero. También propuso la criptografía basada en identidad (usar la identidad de una persona como su clave pública), coinventó la criptografía visual con Moni Naor (dividir una imagen en transparencias que revelan un secreto solo cuando se apilan: compartición de secretos que puedes ver), y más tarde desarrolló los ataques cubo y los dispositivos de factorización TWIRL y TWINKLE.1 A lo largo de todo ello, el patrón se mantiene: una pieza conocida de matemática, girada en la dirección correcta, se convierte en una herramienta.

El método

Lee de corrido RSA, la compartición de secretos, las mochilas rotas, el criptoanálisis diferencial y Fiat-Shamir, y los mismos compromisos reaparecen. El método de Shamir es menos un eslogan que un conjunto de hábitos permanentes.

Construir y romper con las mismas manos. El gesto que lo define es rechazar la división del trabajo entre quienes construyen sistemas y quienes los atacan. Shamir coinventó RSA y rompió la mochila de Merkle-Hellman; demostró que la compartición de secretos era segura y codescubrió el criptoanálisis diferencial. La lección trasciende con mucho la criptografía: no entiendes lo que has construido hasta que has intentado, de verdad, derrotarlo. Es la prueba de la evidencia elevada a forma de vida: “funciona” no es evidencia de seguridad; “gente seria intentó romperlo y no pudo” sí lo es.24

Confiar solo en lo que sobrevive al ataque. Un cifrado que meramente ha sido diseñado con cuidado es una esperanza; un cifrado que ha resistido un criptoanálisis concentrado es un hecho. La disciplina consiste en tratar tu propio sistema como culpable hasta que sea atacado: suponer que hay una grieta e ir a buscarla, en lugar de esperar a que un adversario la encuentre por ti. Esta es la forma criptográfica de “Reflections on Trusting Trust” de Thompson: la intuición fundacional de que no puedes confiar en lo que no has examinado de forma adversarial, porque la amenaza que no puedes ver es la que te atrapa, como demostró la historia clasificada del criptoanálisis diferencial.45

Leer la matemática como mecanismo. Las primitivas más poderosas rara vez son matemática nueva; son matemática vieja vista desde un ángulo nuevo. La interpolación polinómica se vuelve compartición de secretos; la dureza de la factorización se vuelve una trampa; una función de hash se vuelve un sustituto de un verificador interactivo. El hábito es mirar una estructura limpia y preguntar no “¿qué es esto?” sino “¿qué podría hacer esto?”: la misma economía de medios que hace que las primitivas más fuertes sean también las más simples, en el espíritu del producto mínimo digno.36

Preferir la seguridad demostrable donde puedas obtenerla, y la seguridad ganada en todo lo demás. La compartición de secretos es segura en el sentido de la teoría de la información: ninguna computadora, por potente que sea, puede extraer el secreto de demasiado pocas partes, porque la información no está presente.3 RSA es computacionalmente segura: a salvo solo mientras la factorización siga siendo difícil. Shamir trabaja en ambos niveles y es preciso sobre cuál tiene. La disciplina consiste en saber exactamente sobre qué descansa tu afirmación de seguridad, y nunca confundir “nadie lo ha roto todavía” con “no se puede romper”. Es la calidad es la única variable aplicada a la confianza: lo único que cuenta es si la garantía es real.23

Desconfiar del caso especial que se esconde dentro del general. Romper Merkle-Hellman le enseñó al campo que el hecho de que un problema sea NP-completo en general no dice nada sobre las instancias específicas que un cifrado realmente usa.1 El hábito permanente es sospechar que la versión conveniente y estructurada de un problema difícil —la lo bastante fácil como para construir un sistema a su alrededor— puede ser exactamente la versión que es fácil de romper. El mismo escepticismo que Leslie Lamport llevó a los sistemas distribuidos: no confíes en la propiedad que supusiste; encuentra la condición precisa bajo la cual realmente se cumple.

Cadena de influencia

Quiénes lo formaron

Diffie, Hellman y la idea de clave pública. RSA fue una respuesta directa a la propuesta de Whitfield Diffie y Martin Hellman de 1976 de que el secreto podía establecerse sin una clave precompartida. Diffie-Hellman planteó la pregunta —debería existir un criptosistema de clave pública— y Rivest, Shamir y Adleman construyeron la primera respuesta práctica.2 (Influencia directa)

Ron Rivest y Leonard Adleman. La colaboración de RSA fue genuinamente a tres manos: Rivest el proponente incansable, Shamir y Adleman los rompedores incansables. La estructura adversarial de esa sociedad —proponer, atacar, repetir— moldeó la convicción de toda la vida de Shamir de que la construcción y el criptoanálisis son una sola disciplina.2 (Influencia formativa)

La tradición de la teoría de números. El gesto característico de Shamir —leer la matemática clásica como mecanismo criptográfico— desciende de la larga tradición que conecta la teoría de números, la dificultad de la factorización y el álgebra de los cuerpos finitos con la computación. Su genio fue la aplicación, no la invención, de esa matemática. (Influencia formativa)

A quiénes formó

Eli Biham y el criptoanálisis moderno. El criptoanálisis diferencial, desarrollado con su estudiante Biham, se convirtió en una herramienta estándar contra la que todo diseñador serio de cifrados por bloques debe ahora defenderse: reconfiguró cómo se construyen los cifrados, incluidos los criterios de diseño del Advanced Encryption Standard.45

Todo el ecosistema de clave pública. RSA sustentó décadas de comunicación segura, firmas digitales e intercambio de claves. Cada vez que un navegador establece una conexión segura o verifica un certificado, se apoya sobre los cimientos de clave pública que Shamir ayudó a poner.2

Los esquemas de conocimiento cero y de firma. La heurística de Fiat-Shamir es un caballo de batalla que subyace a una vastísima gama de firmas digitales y sistemas de pruebas de conocimiento cero modernos, incluidos los que ahora son centrales para la criptografía que preserva la privacidad y la de las cadenas de bloques.6

El hilo conductor

Shamir es la clave de bóveda de la seguridad en esta serie: la figura que hace confiable el resto de la pila. Tim Berners-Lee construyó una web pensada para todos, pero una web en la que puedes comprar, hacer operaciones bancarias y hablar con libertad depende por completo de la criptografía de clave pública para sus conexiones TLS y sus certificados firmados, lo que equivale a decir que depende de RSA y del campo que Shamir ayudó a fundar. Thompson y Ritchie nos dieron los sistemas sobre los que corremos y, en “Reflections on Trusting Trust”, la advertencia fundacional de que no puedes confiar en lo que no has examinado de forma adversarial: el instinto exacto sobre el que Shamir construyó una carrera. Y Leslie Lamport le dio a los sistemas distribuidos la disciplina de definir la corrección con precisión y demostrarla, frente a adversarios bizantinos que se comportan de forma arbitraria; la compartición de secretos de Shamir es ese mismo impulso en forma criptográfica, una primitiva con una demostración en lugar de una esperanza. Donde Berners-Lee dice esto es para todos y Thompson dice no confíes en nada que no hayas construido, Shamir dice: te construiré algo seguro, y luego pasaré la vida intentando romperlo, porque esa es la única forma en que cualquiera de los dos sabrá que es real. (Puente de la serie)

Lo que me llevo de esto

La lección que conservo de Shamir es confiar solo en lo que sobrevive al ataque. Mi instinto, como el de la mayoría de quienes construyen, es tratar el código que funciona como prueba: las pruebas pasan, la demostración corre, lánzalo. La criptografía prohíbe ese consuelo, porque un sistema roto y uno sólido se ven idénticos hasta que alguien los ataca, y la respuesta de Shamir es ser ese alguien primero. Rompió los cifrados de mochila; él y Adleman rompieron los esquemas candidatos de Rivest hasta que RSA sobrevivió; él y Biham rompieron DES con la suficiente contundencia como para exponer lo que las agencias de inteligencia habían ocultado durante veinte años. Así que cuando ahora construyo algo —un flujo de autenticación, un límite de permisos, una canalización de datos— intento ponerme el sombrero del atacante antes de que lo haga un atacante, suponer que hay una grieta e ir a cazarla en vez de esperar a que me lo digan. La confianza que importa no es “no veo cómo se rompe esto”; es “intenté con empeño romperlo y no pude”.

La segunda lección es que los mecanismos más poderosos son matemática limpia leída de la forma correcta. La compartición de secretos me desarmó un poco cuando la entendí por primera vez: es solo el hecho de libro de texto de que los puntos determinan un polinomio, y sin embargo produce un secreto que es, de forma demostrable y en el sentido de la teoría de la información, seguro. Shamir no inventó matemática más difícil; vio que la matemática que ya tenía era, desde un ángulo, exactamente una primitiva de seguridad. Eso cambió cómo miro las estructuras que ya tengo delante. El hash que uso para búsquedas puede ser un compromiso; la redundancia que añadí por fiabilidad puede ser un esquema de umbral; la restricción que traté como una molestia puede ser el candado. La habilidad no siempre está en inventar algo nuevo: está en reconocer que la cosa limpia que ya entiendes es, girada en la dirección correcta, el mecanismo que necesitabas.

Preguntas frecuentes

¿Por qué es conocido Adi Shamir?

Adi Shamir es un criptógrafo israelí y profesor en el Instituto Weizmann de Ciencias, más conocido como la “S” de RSA: el primer criptosistema de clave pública práctico, que coinventó con Ron Rivest y Leonard Adleman en el MIT en 1977. Los tres compartieron el Premio Turing de la ACM de 2002 por ese trabajo. También inventó la compartición de secretos de Shamir (1979), codescubrió el criptoanálisis diferencial con Eli Biham, y cocreó la heurística de Fiat-Shamir, entre muchas otras contribuciones a la criptografía.12

¿Qué es la compartición de secretos de Shamir?

Es un método, publicado por Shamir en 1979 en “How to Share a Secret”, para repartir un secreto entre n personas de modo que cualquier subconjunto de k de ellas pueda reconstruirlo pero cualquier subconjunto de k-1 no aprenda nada. El secreto se esconde como el término constante de un polinomio aleatorio de grado k-1, y cada persona recibe un punto sobre esa curva. Como k puntos determinan de forma única un polinomio de grado k-1, cualesquiera k partes recuperan el secreto, mientras que menos de k lo dejan “completamente indeterminado”, lo que otorga al esquema seguridad en el sentido de la teoría de la información.3

¿Qué es la “S” de RSA, y cómo funciona RSA?

La “S” es Shamir; RSA viene de Rivest, Shamir y Adleman. RSA es un criptosistema de clave pública: cada usuario tiene una clave pública que cualquiera puede usar para cifrarle mensajes o verificar sus firmas, y una clave privada que solo él posee. Su seguridad descansa en una trampa: la clave pública se construye a partir del producto de dos números primos grandes, y recuperar la clave privada requiere factorizar ese producto de vuelta en sus primos, algo computacionalmente inviable para números lo bastante grandes. RSA se publicó en Communications of the ACM en 1978.2

¿Qué es el criptoanálisis diferencial?

El criptoanálisis diferencial es una técnica general, descubierta públicamente por Eli Biham y Adi Shamir a finales de la década de 1980, para atacar cifrados por bloques estudiando cómo las diferencias entre pares de entradas se propagan hacia diferencias en la salida. Los sesgos estadísticos en esa propagación pueden filtrar información sobre la clave secreta; Biham y Shamir lo usaron para hallar una debilidad teórica en DES. Más tarde se supo que IBM y la NSA conocían la técnica desde mediados de los años setenta y la mantuvieron clasificada, habiendo diseñado DES en secreto para resistirla.45


Fuentes


  1. “Adi Shamir,” Wikipedia. Nacido el 6 de julio de 1952 en Tel Aviv, Israel; licenciatura en matemáticas por la Universidad de Tel Aviv (1973); maestría (1975) y doctorado (1977) en ciencias de la computación por el Instituto Weizmann de Ciencias. Investigador posdoctoral en la Universidad de Warwick; personal de investigación en el MIT (1977-1980); profesor en el Instituto Weizmann desde 1980, con una cátedra invitada en la École Normale Supérieure (París) desde 2006. Coinventor de RSA (la “S”), inventor de la compartición de secretos de Shamir, codescubridor del criptoanálisis diferencial con Eli Biham, coinventor del esquema de identificación Feige-Fiat-Shamir y de la heurística de Fiat-Shamir; otros trabajos incluyen romper el criptosistema de mochila de Merkle-Hellman, la criptografía visual (con Moni Naor), los ataques cubo y los dispositivos de factorización TWIRL y TWINKLE. Galardonado con el Premio Turing de la ACM (2002, compartido con Rivest y Adleman) “en reconocimiento a sus contribuciones a la criptografía”. 

  2. “RSA (cryptosystem),” Wikipedia, corroborado por la mención del Premio Turing de la ACM de 2002 para Rivest, Shamir y Adleman (la página de amturing.acm.org puede devolver un HTTP 403 a las solicitudes automatizadas; el año del premio y los galardonados compartidos están corroborados por el artículo de Wikipedia sobre Adi Shamir). RSA fue desarrollado por Ron Rivest, Adi Shamir y Leonard Adleman en el MIT; “describieron públicamente el algoritmo en 1977”, con el artículo “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems” publicado en Communications of the ACM en febrero de 1978. RSA usa una clave pública (módulo n y exponente e) y una clave privada (d); n es el producto de dos primos grandes. La seguridad descansa en la dificultad de factorizar números grandes: “dados únicamente e y n, es inviable calcular raíces e-ésimas módulo n”. Un sistema equivalente fue descrito en secreto por Clifford Cocks en el GCHQ en 1973, desclasificado en 1997. 

  3. “Shamir’s secret sharing,” Wikipedia, fuente primaria Adi Shamir, “How to Share a Secret,” Communications of the ACM 22(11), 1979. Un algoritmo eficiente de compartición de secretos para distribuir un secreto entre un grupo de modo que “el secreto no pueda revelarse a menos que un número mínimo de los miembros del grupo actúen juntos para poner en común su conocimiento”. Usa interpolación polinómica sobre un cuerpo finito: el secreto es el término constante de un polinomio de grado k-1, y cada participante recibe un punto. Para un esquema de umbral (k, n), k puntos determinan de forma única el polinomio; “el conocimiento de cualesquiera k-1 o menos partes deja S completamente indeterminado, en el sentido de que los valores posibles de S siguen siendo tan probables con el conocimiento de hasta k-1 partes como con el conocimiento de 0 partes”. Esto produce seguridad en el sentido de la teoría de la información: un atacante con menos de k partes no puede reconstruir el secreto sin importar su poder de cómputo. 

  4. “Differential cryptanalysis,” Wikipedia. A Eli Biham y Adi Shamir se les atribuye el descubrimiento público del criptoanálisis diferencial a finales de la década de 1980, con la publicación de ataques contra diversos cifrados por bloques y funciones de hash, incluida una debilidad teórica en el Data Encryption Standard (DES). La técnica estudia cómo las diferencias en pares de texto plano afectan a las diferencias en el texto cifrado resultante, explotando la propagación no aleatoria para recuperar información de clave. El artículo señala: “Más tarde se supo que el criptoanálisis diferencial ya era conocido —y mantenido en secreto— tanto por IBM como por la Agencia de Seguridad Nacional”. 

  5. Don Coppersmith, “The Data Encryption Standard (DES) and its strength against attacks,” IBM Journal of Research and Development 38(3), 1994, según se resume en “Differential cryptanalysis,” Wikipedia. Coppersmith reveló en 1994 que “el criptoanálisis diferencial era conocido por IBM ya en 1974, y que defenderse del criptoanálisis diferencial había sido un objetivo de diseño” de DES. La NSA también estaba al tanto, y las consideraciones de diseño se mantuvieron clasificadas porque “la divulgación de las consideraciones de diseño revelaría la técnica del criptoanálisis diferencial, una técnica poderosa que podría usarse contra muchos cifrados”, lo que habría debilitado la ventaja competitiva de Estados Unidos en criptografía. Internamente, en IBM la técnica se llamaba el “T-attack” o “Tickle attack”. 

  6. “Fiat-Shamir heuristic,” Wikipedia. Una técnica de Amos Fiat y Adi Shamir (publicada en 1986-1987) para “tomar una prueba interactiva de conocimiento y crear una firma digital basada en ella”. Convierte una prueba interactiva (de moneda pública) en una no interactiva reemplazando el desafío aleatorio del verificador por la salida de una función de hash criptográfica aplicada al mensaje del probador y a los valores públicos; por ejemplo, el probador calcula un desafío como un hash en lugar de recibirlo de forma interactiva. El hash debe incluir todos los valores públicos por seguridad. La heurística subyace a una amplia gama de esquemas modernos de firma digital y de pruebas de conocimiento cero. 

Artículos relacionados

Filosofía de la ingeniería: Joanna Rutkowska

Joanna Rutkowska construyó Qubes OS sobre una paranoia razonable: no puedes hacer software sin errores, así que asume el…

21 min de lectura

Filosofía de la ingeniería: Yann LeCun

Yann LeCun, pionero del aprendizaje profundo y premio Turing, coinventó la red neuronal convolucional y ahora apuesta po…

20 min de lectura

The Shader Gallery That Lied: Debugging 216 WebGL Presets

A user said the shader playground looked broken. Pixel-readback testing found 30 dead presets, 11 that never compiled, a…

11 min de lectura