Académique Documents
Professionnel Documents
Culture Documents
TEMA
Nociones matemticas para
RSA
El propsito principal en estas pginas es presentar una base matemtica
necesaria para la posterior comprensin de un criptosistema asimtrico llamado
RSA. El estudio y conocimiento de los fundamentos matemticos de la
criptografa asimtrica ha adquirido un inters prctico que se le aade al
intrnseco inters terico del que gozan todas las matemticas.
La teora de nmeros y la aritmtica modular han adquirido un enorme inters
prctico gracias a la aparicin, en 1976, de la criptografa de clave pblica, de la
mano de Whitfield Diffie y Martin E. Hellman con su histrico artculo titulado
New Directions in Cryptography [14]. El algoritmo que presentaron
permita a dos usuarios ponerse de acuerdo en el valor de una clave secreta a
travs de un canal inseguro o pblico. La matemtica que sustentaba su
algoritmo era la aritmtica modular, y la operacin bsica la exponenciacin.
Dos aos ms tarde del trabajo de Diffie y Hellman, los investigadores Ronald L.
Rivest, Adi Shamir y Leonard M. Adleman presentaron un algoritmo de clave
pblica que ha hecho fortuna: se trata del criptosistema que lleva como nombre
las tres iniciales de estos tres autores: RSA [2].
En las siguientes pginas se recogen algunas nociones matemticas, necesarias
para el estudio y la comprensin del criptosistema RSA. Este trabajo est
dividido en dos partes. En la primera parte se recogen unas nociones
matemticas previas. Compartimentado en cinco epgrafes o secciones, se
recogen algunas nociones sobre los enteros (seccin 1); nociones algebraicas
sobre conjuntos (seccin 2); una breve presentacin de la nocin de relacin de
equivalencia y, en concreto, de la relacin de congruencia (seccin 3). En una
cuarta seccin se muestra una presentacin intuitiva y visual de los conceptos
recogidos hasta ese momento. Y en la seccin 5 se aborda el problema concreto
de la bsqueda de inversos en aritmtica modular y se muestra el procedimiento
empleado en la creacin de las claves para RSA.
Nociones matemticas para RSA Pgina 2
En la segunda parte, en tres secciones, se muestra con detalle el criptosistema
RSA. En la seccin 6 se presenta una descripcin del algoritmo; en la seccin 7
se muestran los procedimientos bsicos de factorizacin de enteros, que exigen
como all se ve algunas restricciones en la creacin de las claves del
criptosistema: esas restricciones quedan sealadas en el octavo y ltimo epgrafe
de este captulo.
En este documento no quedan recogidas las demostraciones de los sucesivos
teoremas que se enuncian: pretende ser una recopilacin de conceptos, y no se
ha querido extender ms la presentacin, ni complicarla con demostraciones,
aunque todas ellas son bastante sencillas y en muchos casos casi inmediatas. En
la bibliografa recogida al final de estos folios se indica expresamente dnde
puede encontrarse cada demostracin.
Nociones matemticas para RSA Pgina 3
PRIMERA PARTE.
NOCIONES MATEMTICAS PREVIAS
1. DEFINICIN DEL CONJUNTO DE LOS ENTEROS. ALGUNAS
PROPIEDADES.
En la obra Formulario Matemtico, publicada en 1889, Guiseppe Peano (1858
1932) present una descripcin del CONJUNTO DE LOS ENTEROS NO
NEGATIVOS (L
+
) a partir de tres trminos indefinidos: cero, nmero y
sucesor (cfr. [3] 4.6.). Su formulacin fue la siguiente:
a. Cero (u) es un nmero.
b. Para cualquier nmero n, su sucesor es un nmero.
c. Ningn nmero tiene a cero como su sucesor.
d. Si dos nmeros m y n tienen el mismo sucesor, entonces m n = .
e. Si T es un conjunto de nmeros donde 0 T , y donde el sucesor de n est
en T , siempre que n est en T , entonces T es el conjunto de todos los
nmeros.
Vamos a presentar algunas propiedades del conjunto de los enteros.
Especialmente aquellas que hacen referencia a la divisibilidad.
Definicin 1.1. Si o, b e L y b = u, decimos que b divide a o si existe un entero n tal
que o = b n. Cuando esto ocurre, decimos que b es DIVISOR de o o que o es
MLTIPLO de b.
Definicin 1.2. ALGORITMO DE LA DIVISIN: Si o , b e L, con b > u, entonces
existen q , r e L, nicos, tales que o = q b + r, con u r < b. Al entero q lo
llamamos COCIENTE y al entero r RESTO o RESIDUO. A la operacin
aritmtica destinada a calcular el resto o residuo de dividir dos enteros o , b e L la
denotamos o mod b.
Nociones matemticas para RSA Pgina 4
Definicin 1.3. Si o , b e L, un entero positivo c es DIVISOR COMN de o y de b si
c divide a o y c divide a b.
Definicin 1.4. Sean o , b e L, al menos uno de los dos distinto de cero. Entonces
c e L
+
es el MXIMO COMN DIVISOR (c = mcJ(o , b)) de o y de b si
a. c es divisor comn de o y de b.
b. Para cualquier divisor comn J de o y b, tenemos que J divide a c.
En definitiva, el mximo comn divisor de dos enteros o y b, es el mayor entero
que divide a o y divide a b. Se cumple que mcJ(o, b) = mcJ(b, o).
Se verifica que mcJ(o, u) = mcJ(u, o) = o.
Teorema 1.1. Para cualesquiera dos enteros positivos o , b e L
+
existe un nico
c e L
+
que es el mximo comn de o y de b .
Teorema 1.2. Dados dos enteros de o y b con mcJ(o , b) = J. Entonces
mcJ(o J , b J ) = 1.
Definicin 1.5. El mtodo ms usual de obtener el mximo comn divisor de dos
enteros o , b e L
+
con b = u es el ALGORITMO DE EUCLIDES.
Este algoritmo establece que mcJ(o , b) = mcJ(b, o mou b).
Otra formulacin: Sea r
0
= o y r
1
= b, enteros tales que o b, o = u. Si aplicamos
el algoritmo de la divisin de forma sucesiva obtenemos la siguiente secuencia
de ecuaciones:
r
0
= r
1
q
1
+ r
2
, con u < r
2
< r
1
; si r
2
= u se termina la secuencia de ecuaciones y
mcJ(o , b) = r
1
.
r
1
= r
2
q
2
+ r
3
, con u < r
3
< r
2
; si r
3
= u se termina la secuencia de ecuaciones y
mcJ(o , b) = r
2
.
()
r
n-2
= r
n-1
q
n-1
+ r
n
, con u < r
n
< r
n-1
; si r
n
= u se termina la secuencia de
Nociones matemticas para RSA Pgina 5
ecuaciones y mcJ(o , b) = r
n - 1
.
r
n-1
= r
n
q
n
. Suponemos que efectivamente ya hemos llegado al caso en que
r
n-1
= u. Tenemos que mcJ(o , b) = r
n
: el ltimo resto distinto de cero.
Definicin 1.6. Se puede demostrar que si J = mcJ(o , b), entonces existen nmeros
enteros s, t, tales que J = s o + t b. Es decir, podemos expresar J como una
combinacin lineal de o y de b.
El algoritmo de Euclides ofrece una herramienta para lograr expresar J como una
combinacin lineal de o y de b, gracias a las diferentes ecuaciones que se genera
en su desarrollo. Queda definido un algoritmo, llamado ALGORITMO
EXTENDIDO DE EUCLIDES, que recibe como entrada dos enteros o y b, genera
dos sucesiones s
n
y t
n
, y proporciona a su salida dos nmeros, s y t tales que
J = s o + t b, donde J = mcJ(o , b). Las secuencias s
n
y t
n
se generan de acuerdo
con el siguiente procedimiento:
s
0
= 1 ; s
1
= u ; t
0
= u ; t
1
= 1; s
]
= s
]-2
- q
]-1
s
]-1
; t
]
= ts
]-2
- q
]-1
t
]-1
para ] = 2, S, , n y donde q
]
son los cocientes en las divisiones del algoritmo de
Euclides cuando se usa para el clculo del mximo comn divisor de o y b.
Como se ver ms adelante, el algoritmo extendido de Euclides es la
herramienta necesaria para la generacin de las claves del algoritmo RSA. Mas
adelante volveremos sobre l, con un ejemplo ya recogido en el artculo de
presentacin del algoritmo RSA [2].
Definicin 1.7. Si seguimos analizando el conjunto L
+
, observaremos que para todo
n e L
+
, n > 1, el entero n tiene al menos dos divisores positivos; 1 y el mismo n
(a estos dos divisores se les conoce como DIVISORES o FACTORES
TRIVIALES). Algunos nmeros, como 2, 3, 5, 7, 11, 13, 17,, tienen como
nicos divisores los dos positivos triviales: estos enteros reciben el nombre de
PRIMOS. Todos los dems enteros positivos (mayores que 1 y que no sean
primos) se llaman COMPUESTOS, y sus divisores, excepto el 1 y el n, se llaman
DIVISORES o FACTORES PROPIOS.
Teorema 1.3. TEOREMA FUNDAMENTAL DE LA ARITMTICA. Cada entero n > 1
Nociones matemticas para RSA Pgina 6
puede escribirse como un producto de primos de forma nica, excepto por el
orden de stos.
Definicin 1.8. Diremos que los enteros o , b e L son PRIMOS RELATIVOS si
mcJ(o , b) = 1. Decimos tambin que o y b son RELATIVAMENTE PRIMOS o
COPRIMOS.
Recapitulacin de algunas ideas presentadas. Ya sabemos que dados dos
enteros positivos cualesquiera o , b e L
+
siempre existe un valor c e L
+
, c =
mcJ(o , b), y que este entero es nico. Adems el valor del mximo comn divisor
es el menor entero positivo que se puede escribir como una combinacin lineal
de o y de b: de todos los valores c = o x + b y (x, y e L), el menor de ellos ser
el mximo comn divisor de o y b. Entonces, si tenemos dos enteros o y b primos
relativos (mcJ(o , b) = 1), entonces existen x, y e L tales que o x + b y = 1.
Teorema 1.4. Hay infinitos nmeros primos.
Nociones matemticas para RSA Pgina 7
2. ALGUNAS NOCIONES ALGEBRAICAS SOBRE CONJUNTOS.
Los grupos, anillos y cuerpos son los elementos fundamentales de una rama del
saber matemtico que llamamos lgebra abstracta, o lgebra moderna. El objeto
de esta matemtica es el conocimiento de aquellos conjuntos con los que
podemos operar algebraicamente: es decir, aquellos conjuntos de los que
podemos combinar (operar) cualesquiera dos de sus elementos para obtener un
tercer elemento del conjunto. Estas operaciones estn sujetas a un conjunto de
reglas que vienen definidas por la misma naturaleza del conjunto.
Definicin 2.1. Un conjunto de elementos 0 con la operacin binaria + ser GRUPO
si se verifican las siguientes propiedades:
a. CLAUSURA: Si o, b e 0, entonces o + b e 0. Se dice tambin que 0 es
CERRADO respecto a la operacin +, o que la operacin + es INTERNA en 0.
b. ASOCIATIVA: Para todas las ternas o, b, c e 0, se cumple que o +(b + c) =
(o + b) + c.
c. ELEMENTO IDENTIDAD O ELEMENTO NEUTRO: Existe un elemento z e 0
que verifica que o + z = z + o = o para todo elemento o e 0.
d. ELEMENTO INVERSO: Para cada
o e 0, existe un elemento b e 0 tal que
o + b = b + o = z.
Decimos que un grupo es GRUPO ABELIANO si verifica adems la propiedad
CONMUTATIVA: para el operador +: es decir, para todo par de elementos
o, b e 0 se verifica que o +b = b +o.
Definicin 2.2. Sea R un conjunto no vaco con dos operaciones binarias internas
+
y , que llamaremos a partir de ahora suma y producto o multiplicacin. Entonces
(R, +,) es un ANILLO si se cumplen las siguientes condiciones:
a. (R, +) tiene estructura de grupo abeliano a cuyo elemento neutro
llamaremos normalmente cero (0).
b. La operacin binaria
- {u].
Definicin 2.5. Sea (R, +,) un anillo conmutativo. Diremos que R es un DOMINIO
DE INTEGRIDAD si no tiene divisores de cero. Verifica, por tanto, la LEY DE
CANCELACIN DEL PRODUCTO: para cualesquiera o, b, c e R, tales que o = u se
cumple que si o b = o c entonces b = c.
Definicin 2.6. Un CUERPO es un anillo conmutativo R que verifica que todo
elemento distinto de cero es una unidad.
Tambin puede definirse diciendo que es un dominio de integridad R que verifica
la propiedad de existencia de inverso para todo elemento de
R, excepto el
elemento 0.
Nociones matemticas para RSA Pgina 9
El conjunto R, bajo las operaciones suma y producto (R, +,) tendr estructura de
cuerpo si el (R, +) tiene estructura de grupo abeliano y (R- {u],) tiene estructura
de grupo.
Teorema 2.1. Un dominio de integridad finito (, +,) es un cuerpo.
Definicin 2.7. Dado un anillo R, un elemento o e R, o = u diremos que es
NILPOTENTE si o
n
= u para algn entero n 1.
Definicin 2.8. Dado un anillo R, un elemento o e R, o = u diremos que es
IDEMPOTENTE si o
2
= o.
Definicin 2.9. Sea (0,) un grupo. Un subconjunto E L 0 es un SUBGRUPO si E es
cerrado bajo la operacin producto y verifica todas las propiedades de grupo
respecto a esa operacin.
Definicin 2.10. Para cualquier grupo (0,), el nmero de elementos de 0 es el
ORDEN DEL GRUPO 0 El orden de un grupo de denota como |0|. Cuando el
nmero de elementos de un grupo no es finito decimos que 0 tiene orden
infinito.
Definicin 2.11. Un grupo (0,) decimos que es CCLICO si existe un elemento
o e 0 tal que, para todo b e 0 tenemos que b = o
n
para algn n e L. El elemento
o e 0 se llama GENERADOR del grupo 0.
Teorema 2.2. Dado un grupo (0,), y o e 0, el conjunto S = {o
k
| k e L] es subgrupo
de 0.
Definicin 2.12. Al subgrupo generado como queda dicho en el Teorema 2.2. lo
llamamos SUBGRUPO GENERADO POR o y se denota como (o).
Nociones matemticas para RSA Pgina 10
Definicin 2.13. Dado un grupo 0, y un elemento o e 0, definimos ORDEN DEL
ELEMENTO o al cardinal de subgrupo generado por o ((o)) y lo denotamos como
0(o).
Algunas consideraciones que se deducen de estas definiciones presentadas.
Si el cardinal de (o) es 1, entonces o es el elemento neutro del producto: o = 1.
(cfr. [4] 2A.).
Si el cardinal de (o) es finito distinto de uno, entonces (o) = {o
n
| n e L] es finito, y
por tanto el conjunto {o, o
2
, o
3
, ] = {o
n
| n e L
+
] tambin es finito. Y por lo tanto,
existen s, t e L
+
tales que 1 s < t y o
s
= o
t
de donde se deduce que o
t-s
= 1, con
t -s e L
+
. Como 1 e {o
n
| n e L
+
], sea m el mnimo entero positivo tal que o
m
= 1.
Entonces podemos afirmar que (o) = {o, o
2
, o
3
, , o
m
= 1, ]. Es inmediato ver que el
orden del grupo (o) es igual al orden del elemento o: 0(o) = m.
Teorema 2.3. Sea o e 0, (0,) grupo, con 0(o) = n. Si k e L y o
k
= 1, entonces n k.
Teorema 2.4. Teorema de LAGRANGE. Si (0,) es un grupo finito de orden n y E
es un subgrupo de orden m, entonces m n.
Teorema 2.5. (Corolario) Si (0,) es un grupo finito y o e 0, entonces 0(o) divide a
|0| (cardinal de 0).
Teorema 2.6. (Corolario) Cualquier grupo de orden primo es cclico.
Teorema 2.7. (Corolario) Cada subgrupo de un grupo cclico es cclico.
Teorema 2.8. Sea (0,) un grupo finito cclico de orden n. Entonces 0 tiene un
subgrupo de orden J para cada divisor J de n, y 0 no tiene otros subgrupos.
Nociones matemticas para RSA Pgina 11
3. RELACIONES DE EQUIVALENCIA. RELACIN DE
CONGRUENCIA.
Definicin 3.1. Sean los conjuntos A y B. Una RELACIN J de A en B es cualquier
subconjunto de A B. Si el par (o, b) pertenece a la relacin, diremos que
(o, b) e J o J b. A los subconjuntos de A A se les llama relaciones sobre A.
Definicin 3.2. Una relacin J sobre un conjunto A es REFLEXIVA si para todo
x e A se verifica que (x, x) e J.
Una relacin J sobre un conjunto A es SIMTRICA si (x, y) e J = (y, x) e J para
todo x, y e A.
Para un conjunto A, una relacin es TRANSITIVA si para todo x, y, z e A, si
(x, y) e J y (y, z) e J entonces (x, z) e J.
Una RELACIN DE EQUIVALENCIA J sobre un conjunto A es una relacin que
verifica las propiedades reflexiva, simtrica y transitiva.
Definicin 3.3. Dado un conjunto A y un conjunto de ndices I, sea = A
L A para
cada i e I. Entonces {A
]
eI
es una PARTICIN de A si:
a. A = A
eI
b. A
(A
]
= para todo i, ] e Ital que i = ].
Cada subconjunto A
c
i k
=1
, entonces (n) = p
c
i
-1
k
=1
(p
- 1).
La funcin de Euler ofrece una informacin muy til en aritmtica modular. Un
ejemplo de ello lo veremos en el Teorema 3.11.
Existe alguna forma de saber cuntas unidades tiene un anillo determinado L
n
?
Por el Teorema anterior sabemos que |o] ser unidad (es decir, existe |o]
-1
) si y
slo si mcJ(o, n) = 1. Por lo tanto, el nmero de unidades de L
n
es el nmero de
enteros o tales que 1 o < n y mcJ(o, n) = 1. Este valor podemos obtenerlo, como
se acaba de sealar, mediante la funcin de Euler: #L
n
-
= (n).
Teorema 3.11.: Teorema de EULER. Para todo par de enteros o y n relativamente
primos se cumple que o
4(n)
1(moJ n).
Nociones matemticas para RSA Pgina 16
El Teorema pequeo de Fermat queda como corolario del teorema de Euler.
Este teorema permite hallar de forma inmediata el inverso de cualquier elemento
o e L
n
-
: o
4(n)-1
moJ n. Todo o e L
n
ser unidad (pertenecer a L
n
-
) si mcJ(o, n) = 1.
Si n es primo, entonces L
n
-
= L
n
- {u].
Un corolario inmediato de este teorema, que constituye un fundamento
matemtico para el algoritmo de cifrado RSA (y que se presentar ms
adelante), es que para todo par de enteros o y n relativamente primos, donde
n = p q, ambos primos, se cumple que o
4(n)+1
= o
(p-1)(q-1)+1
o(moJ n).
Definicin 3.11. Sea o e L
n
-
Si el orden de o es (n) entonces decimos que o es un
GENERADOR. Si tiene un generador, entonces decimos que L
n
-
es cclico (ver
definicin 2.11).
Definicin 3.12. Sea o <e L
p
-
. Si el orden de o es mximo, es decir, 0(o) = p - 1
entonces decimos que o es un ELEMENTO PRIMITIVO de L
p
-
.
Es inmediato deducir que un elemento generador de un grupo L
n
-
donde n es
primo es siempre un elemento primitivo.
Nociones matemticas para RSA Pgina 17
4. UNA PRESENTACIN VISUAL DE LA ARITMTICA
MODULAR, ORIENTADA A LA COMPLETA COMPRENSIN
DE LA EXISTENCIA DE INVERSOS Y OTROS CONCEPTOS
PREVIOS INTRODUCIDOS.
Cundo se puede decir que es posible encontrar un inverso (ver definicin 2.3.)
en aritmtica modular: un valor que multiplicado por otro, y reducido el producto
al mdulo o cardinal del conjunto, d como resultado el valor 1? La respuesta a
esta pregunta ha quedado recogida en la Definicin 3.8. o en el Teorema 3.8.:
un elemento o e L
n
ser unidad (tendr inverso) si y slo si mcJ(o, n) = 1.
15 1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 2 4 6 8 10 12 14 1 3 5 7 9 11 13
3 3 6 9 12 0 3 6 9 12 0 3 6 9 12
4 4 8 12 1 5 9 13 2 6 10 14 3 7 11
5 5 10 0 5 10 0 5 10 0 5 10 0 5 10
6 6 12 3 9 0 6 12 3 9 0 6 12 3 9
7 7 14 6 13 5 12 4 11 3 10 2 9 1 8
8 8 1 9 2 10 3 11 4 12 5 13 6 14 7
9 9 3 12 6 0 9 3 12 6 0 9 3 12 6
10 10 5 0 10 5 0 10 5 0 10 5 0 10 5
11 11 7 3 14 10 6 2 13 9 5 1 12 8 4
12 12 9 6 3 0 12 9 6 3 0 12 9 6 3
13 13 11 9 7 5 3 1 14 12 10 8 6 4 2
14 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Cuadro 1: Productos en aritmtica modular, mdulo 15.
Veamos, por ejemplo, el Cuadro 1, que recoge todos los productos entre los
elementos del conjunto L
15
-{u]. Quedan sealados en recuadro aquellos
productos cuyo valor es el elemento neutro del producto y que, por lo tanto, sus
Nociones matemticas para RSA Pgina 18
factores son elementos unidad (definicin 2.3.). Y quedan sealados en un
recuadro sombreado aquellos productos de productos cuyo valor es el cero y
que, por tanto, sus factores son divisores de cero (definicin 2.4.).
Efectivamente, se observa que los productos iguales a cero se realizan entre
elementos de
L
15
que no son unidad, es decir, que no tienen inverso. Esos
elementos verifican que mcJ(o, 1S) = 1. Y los elementos que son unidad verifican
que mcJ(o, n) = 1: es el conjunto que se ha llamado conjunto reducido de
residuos, y que se denota como L
15
-
. Como ya indicamos, el conjunto de divisores
de cero ser L
15
= L
15
- L
15
-
-{u].
Cualquier producto en el que intervenga un elemento c e L
15
) y
q
= x
-1
x
y t
y se llega al valor t
3
= 17, que resulta ser el inverso
mdulo 2668 del valor o = 1S7.
El algoritmo extendido de Euclides es muy sencillo de implementar.
Nociones matemticas para RSA Pgina 27
SEGUNDA PARTE.
PROTOCOLO RSA
Cualquier texto plano almacenado en un sistema informtico queda codificado
mediante ceros y unos. Un texto plano cualquiera puede ser expresado por tanto
como un valor numrico tanto ms grande cuanto mayor sea el volumen de
informacin codificada. Por ejemplo, RSA puede quedar codificado mediante
estas tres letras. Tambin pueden ser codificadas por sus valores ASCII que
codifican a cada una de las tres letras: R = 82; S = 83; A = 65. En cdigo
binario sera: R = 01010010; S = 01010011; A = 01000001. Y concatenando
las tres secuencias de bits tenemos que la cadena RSA tiene el valor binario
0101 0010 0101 0011 0100 0001 (0x525341), que el base 10 es el entero
5.395.265. Y as, cualquier cadena de caracteres puede quedar unvocamente
representada como un valor numrico. O como una secuencia de nmeros si lo
que se pretende es expresar la informacin mediante una secuencia de valores
numricos menores que en entero dado como lmite superior: en ese ltimo
caso, bastar fraccionar el texto plano en bloques siempre menores que una
longitud mxima. Y as, se pueden definir procesos de codificacin basados en
procedimientos matemticos.
6. ALGORITMO RSA.
Las matemticas vistas en esta presentacin ofrecen suficiente fundamento
terico para la correcta comprensin del algoritmo introducido en 1978 por
Rivest, Shamir y Adleman [2] y que se conoce como RSA. Es el criptosistema de
clave pblica o asimtrico ms ampliamente usado. El funcionamiento del
criptosistema RSA descansa en las propiedades de la operacin exponenciacin
en aritmtica modular presentadas en la primera parte.
Sea m e {1, n -1] el mensaje plano, o un bloque del mensaje plano, que se desea
cifrar mediante el criptosistema RSA. La operacin de cifrado RSA es c =
m
c
moJ n, donde c y n constituyen los valores de la clave pblica de cifrado y se
conocen como EXPONENTE DE CIFRADO y MDULO DEL CRIPTOSISTEMA.
Nociones matemticas para RSA Pgina 28
La operacin de descifrado es m = c
d
moJ n, donde J (junto con los factores de n)
son las claves privadas del criptosistema; J y n son las claves del descifrado. Al
valor de J se le llama EXPONENTE DE DESCIFRADO.
RSA necesita, para la generacin de sus claves J y c, del clculo de inversos
en aritmtica modular. La complementariedad existente entre las dos claves
de exponente (J y c) y el valor del mdulo (n) se basa en el teorema de Euler
(Teorema 3.11.). Basta exigir (ms adelante se ver) que e d 1(mud 4(n))
para que la funcin de descifrado sea la inversa de la de cifrado.
El protocolo a seguir para la generacin de claves de RSA es el siguiente:
1. Cada usuario U elige dos nmeros primos (en el uso prctico se buscan
primos de gran tamao), p y q, y calcula n = p q. El grupo multiplicativo en
el que se trabajar ser, por tanto L
n
-
. El orden del grupo ser (n) =
(p q) = (p - 1) (q - 1). Quien desconozca los factores de n no podr
calcular el valor de la funcin (n).
2. U selecciona un entero positivo c de forma que 1 < c < (n) y de forma que
sea coprimo con el orden del grupo: mcJ((n), c) = 1
3. U calcula el inverso de c en L
4(n)
-
, que ser J. Tendremos que c J
1(moJ (n)), con 1 < J < (n) y J tambin coprimo con (n). Como ha
quedado explicado, para calcular el inverso de c mdulo (n) utilizamos el
algoritmo extendido de Euclides. Se est buscando el inverso de c en una
aritmtica moJ (n) y no en una aritmtica moJ n; lo buscamos en L
4(n)
-
y no
en L
n
-
.
4. La clave pblica del usuario ser (n, c). La clave privada ser (n, J). Por
supuesto, deben permanecer secretos los nmeros p y q y especialmente
(n).
Como ya ha quedado dicho previamente, las operaciones de cifrado y descifrado
son
Cifrado: c = E
c
(m) = m
c
moJ n
Descifrado: m =
d
(c) = c
d
moJ n
Donde el mensaje m se obtiene asociando, a cada carcter del alfabeto en que
est escrito el mensaje, un valor numrico. Se tiene as un mensaje m a cifrar de
una longitud indefinida y, en principio, grande. Este mensaje m se divide en
bloques m
, cada uno de ellos con un valor numrico menor que n. El mdulo del
Nociones matemticas para RSA Pgina 29
criptosistema determina el lmite superior de los tamaos de los mensajes a
codificar.
El mensaje cifrado, c, tendr un tamao similar en cada uno de sus bloques c
.
Cada bloque se cifra haciendo c
= m
c
moJ n y se descifra haciendo m
= c
d
moJ n.
El motivo de que la exponenciacin del mensaje cifrado con J sea la operacin
inversa a la exponenciacin del mensaje plano con c queda manifiesto en el
modo en que han sido definido los dos exponentes:
c
d
= (m
c
)
d
= m
cd
= m
cd-1
= m
k4(n)
m
moJ n = m
.
Para ello se ha tenido en cuenta que:
1. c J 1(moJ (n)): as se ha buscado el valor de J: por tanto, c J - 1 = k
(n).
2. Teorema de Euler (Teorema 3.11.): m
4(n)
moJ n = 1.
3. Se ha supuesto que mcJ(m