Arimética
La clave ptiblica
La criptografia tiene una larga historia, y los ejemplos clementales de cifrado que
hemos brindado sélo han tenido el propésito de ilustrar el tema. Los métodos que hemos
descripto fueron sucesivamente reemplazados a lo largo del tiempo por técnicas cada
vez més sofisticadas y aparentemente invulnerables de ciftado, hasta que la tenaz ¢
inteligente labor de los criptoanalistas revelaba sus debilidades y obligaba a cambiarlas
por otras mAs seguras. Esta suerte de carrera entre dos bandos — ios creadores de
c6digos y los que intentan romperlos—o ha terminado atin, y la creciente aplicacién de
Ja Matematica en la criptografia y el uso de la electrénica la torman cada vez més
apasionante y compleja. El lector interesado en conocer todos estos avances puede
consultar la obra de divulgacién "Los cédigos secretos", de Simon Singh [16], que
describe con un estilo muy ameno el desarrollo hist6rico de la criptografia.
Con el advenimiento de la informitica, la criptografia dejé de ser un asunto casi
siempre reservado a militares y diplométicos para convertirse en un tema de interés
general. El auge del intercambio digital —correo electrénico, Internet, etc — y de las
operaciones comerciales clectronicas acrecentaron la necesidad de resguardar la
privacidad de las comunicaciones, y esto llevé al desarrollo de nuevos métodos
criptogréficos. Nos vamos a referir en primer término a un problema que constitufa en sf
mismo un cfrculo vicioso, como es el de la distribucién de claves. En efecto, si dos
personas quieren intercambiar un mensaje secreto, el emisor debe primero codificarlo.
Para ello necesita usar una clave, que deberd comunicar previamente al receptor. Como
sta puede ser interceptada, deberfa a su vez ser codificada, para lo cual también
necesitarfa una clave, y asi ad infinitum. Para salvar este inconveniente surgié la
ingeniosa idea de clave piiblica, que no requiere un intercambio previo y explicito de la
clave entre Jos corresponsales. Veremos de paso cémo comienza a entrar en juego la
Aritmética.
Intercambio de claves. La idea de utilizar una clave piblica para el intercambio de
claves fue introducida en 1976 por dos especialistas norteamericanos en criptografia, W.
Diffie y M. Hellman, que idearon un sistema —basado en ciertas funciones de la
aritmética modular— que permite que dos corresponsales acuerden una clave sin
necesidad de que ésta sea transmitida. Veamos en qué consiste.
Supongamos que un corresponsal A desea acordar una clave k con otro
corresponsal B, que luego utilizarén para cifrar mensajes con algtin sistema
212Cap. 9 — Primalidad y Factorizacién
criptogréfico. Comienzan poniéndose de acuerdo en la eleccién de un ntimero primo p y
de una raiz primitiva g médulo p, que no mantendrdn en secreto y puede ser conocida
por cualquier persona. De esta manera, el par (p,g) constituye la clave piiblica del
sistema. Posteriormente, A elige un ntimero.a mayor que 1 y menor que p~1 —que
mantiene en secreto—, y lo mismo hace B, seleccionando un némero b en dicho rango.
Estos méimeros serdn las respectivas claves privadas de los corresponsales, y ninguno de
los dos transmitir4 la suya al otro. Ahora estan listos para acordar la clave k, a través de
las siguientes etapas (todas las operaciones se realizan médulo p):
Etapa 1. A calcula g” y enviael resultado ua B.
Etapa 2. B calcula g” y enviael resultado v a A.
Etapa 3. A calcula y*.
Etapa 4, B calcula u’.
La clave. Los valores de las etapas 3 y 4 coinciden, ya que v* =(g* )” =(g*)’ =
Pues bien, este resultado comin es la clave acordada k.
Por ejemplo, supongamos que p=79, g=3, y que A y B han elegido a 19 ya
28 como sus respectivas claves privadas (desde ya que el ejemplo no es real, se trabaja
con mnimeros muchisimo més grandes). En ese caso, la clave serd
k= (3) = 37" = 45 (79), como Ud. puede verificar.
Como se ve, han establecido una clave sin necesidad de transmitirla en ningun
momento. Ahora bien, { qué ocurre si un intruso intercepta alguna 6 las dos
comunicaciones de las etapas 1 y 2 ? Puesto que estamos suponiendo que esté en
posesién de u 6 de v (quizés de ambos), todo lo que necesita entonces para descubrir la
clave k es conocer a 6 b, valores que podria intentar determinar a partir de cualquiera de
Jas ecuaciones u = g% 6» = g?. Afortunadamente para la seguridad del sistema —en
este hecho reside exactamente su integridad—, es muy poco probable que Io logre, ya
que si p es suficientemente grande, no se conoce ningiin algoritmo eficiente que permita
despejar el exponente en las ecuaciones anteriores.
Nota. En general, dado un niimero x coprimo con p, se llama logaritmo disereto de x en
base g (log, x) al tnico exponente ¢ entre 0 y p-1 que verifica la relacién
g° =x mod p. Debe por supuesto su nombre al obvio parecido formal que presenta su
definicién respecto a la funcién logaritmo clisica, y reiteremos que es en Ja dificultad de
calcularlo donde reside la seguridad del método de intercambio de claves que hemos
213,Aritmética
descripto arriba. Resulta asf que la funcién z +) g* mod p es un primer ejemplo de lo
que se da en Ilamar funcién de una sola via, esto es, una funcién que es sencilla de
evaluar pero cuya inversa (el logaritmo discreto en este caso) es muy dificil de calcular.
Otro ejemplo de proceso de una sola via es el de multiplicar dos mimeros —sin duda
sencillo—, pero cuyo proceso inverso —la factorizacién— ya vimos puede ser muy
complicado, Por sus caracteristicas, es claro que este tipo de funcién es especialmente
apto para su empleo en la criptografia de clave ptiblica, esto es, en aquellos
criptosistemas que realizan sus operaciones de cifrado y descifrado a través de una
combimacién de claves piiblicas y secretas. Ello quedaré evidenciado en el sistema
criptogrifico RSA que explicaremos a continuacién, en lo que serd la ultima seccién de
este capitulo.
El sistema RSA
El criptosistema RSA es actualmente uno de los mds populares sistemas de clave
piblica, y debe su denominacién a quienes Io crearon en 1978, Rivest, Shamir y
Adleman. Su seguridad descansa en Ja tremenda dificultad de factorizar némeros de
gran tamafio, y su funcionamiento esta sustentado en el teorema de Fermat-Euler, que
establecimos y demostramos en el capftulo 6. Pasemos a describirlo.
Para fabricar sus claves, cada usuario del sistema comienza eligiendo —a través
de la aplicacién de algén test de primalidad— dos nfimeros primos p y 4
extremadamente grandes, de unos 150 digitos cada uno. Los guarda para sf, y hace
publico su producto n= pxq. Luego elige al azar un nimero e entre 1 y $(n) coprimo
con (7), que también hace piiblico, y procede a calcular mediante el algoritmo de
Euclides su inverso médulo (n). Este nGmero, al que Ilamaremos d, también seré
mantenido en secreto.
Resumiendo, cada usuario A dispone de una clave publica (n,,¢,) y de una
clave privada (p,,g,,d,), donde n, = p,q, Y 4, =1 ((n,)). Notemos que esta
Giltima relaci6n es equivalente a la existencia de un entero t tal que e,d, = th(m,) +1.
Observacién. Alguien podria intentar descubrir el parémetro secreto d determinando
previamente (7). Pero en ese caso también serfa capaz de determinar p y q, ya que
usando las relaciones n= pg y (n)=(p-1)(q-1) sigue inmediatamente que
p+q=n-$(n)+1, de donde resulta que p y q son las raices del polinomio cuadritico
X?—(n—9(n)+1)X+n, que obviamente pueden calcularse. Por lo tanto, determinar
24Cap. 9 —Primalidad y Factorizacién
(n) es equivalente a obtener la factorizacién de n, y ya hemos comentado que no se
conoce ningiin algoritmo eficaz, para factorizar nimeros de tal envergadura.
Veames cémo opera el sistema RSA. Supongamos que un usuario B quiere
mandar un mensaje codificado al usuario A, cuya clave piblica (1, ,¢,) puede consultar
en un directorio. Para simplificar la notaci6n suprimiremos los subindices, Ilamando
simplemente p, q, n, e y da los pardmetros piblicos y privados de A. Los pasos son los
siguicntes:
1) Primero B convierte cl mensaje en un némero natural x menor que n (ya veremos
cémo puede implementarse ésto).
2) Luego calcula y= x* mod 7, y envia este némero al usuario A.
3) Usando su clave privada, A calcula y* mod n , lo que ya le permite descifrar el
mensaje, es decir, le permite conocer x. En efecto, supongamos en primer término que x
es coprimo con n. Resulta en tal caso (las congruencias son médulo n):
yee Gey a xt a OS Oe ee,
ya que x* =1 (n) por el teorema de Fermat-Euler.
Si x no es coprimo con n, supongamos sin pérdida de generalidad que x es
divisible por p pero no por q (no puede ser divisible por ambos, ya que x ues la funcién inversa f;' que decodifica. O dicho en otras palabras, e cs el
exponente ptblico para cifrar y d es el exponente secreto para descifrar. Puesto que s6lo
A conoce a ésie, ningiin intruso que interfiera el sistema esté en condiciones de descifrar
el mensaje.
2sAritmética
Vamos a ver con un ejemplo cémo puede transformarse un mensaje —que utiliza
el alfabeto de 27 caracteres— en un mensaje numérico. El usuario A ha elegido los
primos 59 y 97 (no se trata por supuesto de una situacién real), resultando en tal caso
n=5723 y $(n) =58X96 =5568. El exponente de cifrado e de A serd 301, siendo
entonces 37 (su invetso médulo 5568) ei exponente de descifrado d. Vale decir,
(5723,301)es la clave publica de A, mientras que (59,97,37) es la secreta.
Teniendo en cuenta que se trabaja con un alfabeto de 27 caracteres, y que
ademds se verifican las desigualdades 27’ vx" =-1(41
i) x 51 (79)
5 { Cual es la probabilidad de que 341 pase el test de Fermat respecto a una base
tomada al azar ?
27Aritmética
6 Verifique que los nimeros 2821, 6601, 172081 y 278545 son pseudoprimos.
7 Sea m un némero natural tal que 6m+1, 12m+1 y 18m+1 son primos. Demuestre
que (6m-+1)(12m-+1)(18m-+ 1) es un ntimero de Carmichael. Halie dos ejemplos de esta
situacién.
8 Caracterice los ntimeros de Carmichael de la forma 3pq .
9 Halle todas las bases respecto a las cuales 91 pasa el test de Jacobi y todas las bases
respecto a la cuales pasa el test de Rabin-Miller, Resuelva el mismo problema para 1105
(recuerde que este mimero es pseudoprimo)..
10 Aplique algtin test de primalidad para decidir cules de los némeros 3071, 7573,
10541, 12553 y 120781 son primos.
11 Mediante la aplicacién de una transformacién de César se ha obtenido el texto
ciftrado QDQBYJYJTUVIUSLUDSYQ . Descubra el texto claro.
12 Un usuario del criptosistema RSA —cuya clave privada es (79,199,43)— ha
recibido el mensaje codificado MWLHKMSUVUGT , que fue cifrado con el sistema de
separacién en digrafos y trigrafos que describimos en la dltima secci6n de este capitulo.
Descifre el mensaje y halle ademis su clave piblica.
218