Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Tema 1 PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 22

1 Números enteros.

Dígitos de control y
criptografía

Estas notas deben entenderse como un guión de lo que se expondrá en el aula. En ningún caso
pretenden sustituir ni la asistencia a clase ni las necesarias consultas bibliográficas. El contenido
de este capítulo puede seguirse a través de [4].

En este capítulo se presentan resultados relativos a números enteros y a la división euclídea y se estudian
las congruencias lineales con vistas a definir la función de Euler. Todo ello permitirá analizar los sistemas
de dígitos de control y los procedimientos de encriptación.

1.1 Relaciones en los enteros


Comenzamos recordando el concepto de relación de orden:
Definición 1.1.1 Dado un conjunto X diremos que R es una relación de orden en X si verifica las siguien-
tes propiedades:
a) Reflexiva: x R x para todo x ∈ X.
b) Antisimétrica: si x, y ∈ X verifican x R y e y R x entonces x = y.
c) Transitiva: si x, y, z ∈ X verifican x R y e y R z entonces x R z. 2

En este capítulo vamos a trabajar con el conjunto de los números enteros, Z, y su subconjunto N de los
números naturales. En ambos conjuntos existe una relación de orden “natural”, la determinada por
a R b si y sólo si b − a ∈ N ∪ {0} (es decir, a ≤ b). (1.1)
Definición 1.1.2 Sea X un conjunto y R una relación de orden en X. Diremos que R es un orden total en
X si para todo par de elementos x, y ∈ X se verifica que x R y o y R x. 2
Ejercicio 1.1.3 Comprobar que (1.1) es una relación de orden total en N y en Z. 2

Definición 1.1.4 Sea X un conjunto y R una relación de orden en X. Diremos que R es una buena ordena-
ción si para cada subconjunto no vacío Y de X existe un elemento a ∈ Y de forma que a está relacionado
con todos los elementos de Y. 2
Ejemplo 1.1.5 La relación (1.1) es una buena ordenación en N, ya que el menor elemento de cualquier
subconjunto Y está relacionado con todos los elementos de Y , sea éste cual sea. En cambio, la relación
de orden (1.1) no es una buena ordenación en Z, pues basta tomar un subconjunto en el que no exista “el
menor número” (por ejemplo, basta tomar como Y los enteros negativos para que no haya ningún elemento
relacionado con todos). De hecho, para cualquier a ∈ Z, el conjunto
{m ∈ Z : a ≤ m}
está bien ordenado con la relación (1.1). 2

Observación 1.1.6 Todo buen orden es un orden total. 2

En el conjunto de números enteros se pueden definir otras muchas relaciones; una fundamental es la de
divisibilidad:
Definición 1.1.7 Dados dos números enteros m y n, diremos que m divide a n si existe un entero d tal que
n = md. Denotaremos esta situación por m|n. 2
Ejercicio 1.1.8 Comprobar que la relación de divisibilidad en N es una relación de orden (no total) mientras
que no lo es en Z (porque no es antisimétrica). 2

Facultad de Matemáticas. Universidad Complutense de Madrid


8 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

1.2 La división euclídea


Vamos a probar que dados dos números enteros, uno de ellos distinto de 0, el otro se puede dividir entre
éste obteniendo el cociente y el resto, y que éstos son únicos.

Teorema 1.2.1 Sean n, m ∈ Z con m ̸= 0. Se verifica que existen unos únicos enteros q y r tales que
n = mq + r, con 0 ≤ r < |m|. Los números q y r se denominan, respectivamente, cociente y resto de la
división de n entre m.

D EMOSTRACIÓN.
a) Supongamos primero que m > 0. Nótese que para cualquier q ∈ Z se tiene que

n = mq + (n − mq).

La idea es encontrar un entero q de forma que n − mq satisfaga la hipótesis para r. Consideramos el


conjunto
S = {n − mx, x ∈ Z},
el cual contiene números no negativos (compruébese como ejercicio). Sea S0 el subconjunto formado
por tales números, esto es,

S0 = {n − mx, x ∈ Z y n − mx ≥ 0}.

Puesto que S0 ̸= ∅, podemos considerar su menor elemento r = n − mq, con q ∈ Z. Es obvio que
r ≥ 0 (pues r ∈ S0 ). Supongamos que r ≥ m y lleguemos a una contradicción; en efecto, en tal caso se
tendría que
0 ≤ r − m = n − mq − m = n − m(q + 1) = r − m < r
y, por tanto, n − m(q + 1) sería un elemento de S0 menor que el primero r.
b) Si m < 0, basta aplicar el apartado anterior a −m, pues

n = (−m)q + r = m(−q) + r.

Para ver la unicidad, supongamos que hay dos cocientes y dos restos,

n = mq1 + r1 = mq2 + r2

con
0 ≤ r1 < |m| y 0 ≤ r2 < |m|.
Si q1 ̸= q2 entonces |q1 − q2 | ≥ 1 y |m(q1 − q2 )| = |m||q1 − q2 | ≥ |m|. Por otra parte,

|m(q1 − q2 )| = |r1 − r2 | < |m|,

lo que contradice la desigualdad anterior. Por lo tanto, q1 = q2 y, en consecuencia, r1 = r2 . 2

Observación 1.2.2 Nótese que en la división euclídea el resto es siempre no negativo. Por ejemplo, la
división de −8 entre 3 proporciona como cociente −3 y resto 1 (y no cociente −2 y resto −2). 2

1.3 El máximo común divisor


Definición 1.3.1 Dados dos números enteros no nulos m y n, diremos que un número positivo d es un
máximo común divisor de m y n si divide a ambos, y si cualquiera que divide a ambos divide a d. 2

Los siguientes resultados tratan sobre la existencia y unicidad del máximo común divisor de dos enteros
no nulos, así como de la identidad de Bézout. En primer lugar, se presenta el conocido algoritmo de Eucli-
des para el cálculo del máximo común divisor de dos números (garantizando de paso su existencia). Este
algoritmo es particularmente interesante cuando los números son “grandes” pues, en tal caso, la conocida
regla de los factores primos comunes no es practicable.

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones El máximo común divisor 9

Teorema 1.3.2 (Algoritmo de Euclides) Dados m y n enteros no nulos, denotando r0 = n y r1 = m se


forma la secuencia de restos 
 r0 = r1 q1 + r2






 r1 = r2 q2 + r3





 r2 = r3 q3 + r4
... (1.2)

 ri−2 = ri−1 qi−1 + ri



 ...



 rk−2 = rk−1 qk−1 + rk



 r
k−1 = rk qk .

Entonces, el último resto no nulo rk es un máximo común divisor de m y n.


D EMOSTRACIÓN. La sucesión anterior {ri }ki=0 está bien definida al ser el proceso finito, ya que
|m| = |r1 | > r2 > r3 > · · · > ri > · · ·
puesto que el resto siempre es menor que el módulo del divisor. Es decir, cada resto es estrictamente menor
que el anterior y, por lo tanto, necesariamente se llega a un resto 0 en, a lo sumo, |m| etapas.
Veamos que, efectivamente, rk es máximo común divisor de m y n. En primer lugar, recorremos la
colección de igualdades (1.2) desde abajo. De la última resulta que rk divide a rk−1 , ahora con esto de la
penúltima deducimos que rk divide a rk−2 y, siguiendo hasta arriba, llegamos a que rk divide a m y a n.
Por lo tanto, rk es un divisor común de ambos números. Ahora supongamos que también j divide a ambos.
Repetimos el recorrido, pero de arriba hacia abajo. De la primera igualdad resulta que j divide a r2 , ahora
usando esto, de la segunda obtenemos que j divide a r3 y, reiterando el proceso, llegamos finalmente a que
j divide a rk . 2
Teorema 1.3.3 Si m, n ∈ Z con m, n ̸= 0, el máximo común divisor de m y n es único.
D EMOSTRACIÓN. Si hubiera dos máximos comunes divisores, digamos d1 y d2 , como cada uno de ellos
divide a los dos números m y n, cada uno divide también al otro máximo común divisor. Por lo tanto son
dos números positivos que se dividen mutuamente y, en consecuencia, son iguales. 2
Notación 1.3.4 Desde ahora hablaremos del máximo común divisor de dos números m y n, y escribiremos
mcd(m, n). 2
Observación 1.3.5 Despejando rk en la penúltima igualdad de (1.2), a continuación sustituyendo rk−1 por
el resultado de despejarlo en la antepenúltima igualdad, y recorriendo todo el camino otra vez desde abajo
hasta arriba, obtenemos una igualdad que expresa el máximo común divisor rk como combinación entera
de m y n. Se obtiene así lo que se conoce como una identidad de Bézout. El siguiente resultado proporciona
un método eficiente para hallar una identidad de Bézout entre dos enteros no nulos. 2
Teorema 1.3.6 (Algoritmo extendido de Euclides. Identidad de Bézout) Con la notación utilizada en el
Teorema 1.3.2, consideramos las secuencias {xi }ki=0 e {yi }ki=0 definidas por
{
x0 = 1, x1 = 0
y0 = 0, y1 = 1
y {
xi = xi−2 − xi−1 qi−1
yi = yi−2 − yi−1 qi−1
para i = 2, 3, . . . , k. Entonces, se verifica que
ri = xi r0 + yi r1 , i = 0, 1, . . . , k.
En particular, se tiene la identidad de Bézout
mcd(n, m) = rk = xk r0 + yk r1 = xk n + yk m.

Facultad de Matemáticas. Universidad Complutense de Madrid


10 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

D EMOSTRACIÓN. Lo probamos por inducción completa en i:

a) Es obvio que r0 = 1 × r0 + 0 × r1 = x0 r0 + y0 r1 y que r1 = 0 × r0 + 1 × r1 = x1 r0 + y1 r1 .

b) Para i ≥ 2, suponemos cierto el resultado para los índices menores que i y lo probamos para i. Por la
hipótesis de inducción, se verifica que

xi r0 + yi r1 = (xi−2 − xi−1 qi−1 ) r0 + (yi−2 − yi−1 qi−1 ) r1


= (xi−2 r0 + yi−2 r1 ) − (xi−1 r0 + yi−1 r1 ) qi−1
= ri−2 − ri−1 qi−1 = ri . 2

Observación 1.3.7 Nótese que, en general, la identidad de Bézout no es única. Por ejemplo, mcd(6, 4) = 2
y se tiene
6 × 1 + 4 × (−1) = 2 y 6 × (−1) + 4 × 2 = 2. 2

Ejemplo 1.3.8 Si tomamos los números n = 249 y m = 36, a partir de la tabla

i ri qi xi yi
0 249 1 0
1 36 6 0 1
2 33 1 1 −6
3 3 11 −1 7
0

se tiene que mcd(249, 36) = 3 y la identidad de Bézout

3 = 249 × (−1) + 36 × 7. 2

El concepto dual de máximo común divisor es el de mínimo común múltiplo.

Definición 1.3.9 Dados dos números enteros no nulos m y n, diremos que un número positivo l es un mí-
nimo común múltiplo de m y n si ambos lo dividen, y divide a cualquier número t al que m y n dividan. 2

Observación 1.3.10 La unicidad del mínimo común múltiplo se prueba del mismo modo que la del máximo
común divisor. Relegamos el procedimiento de cálculo (y, consecuentemente, la existencia) hasta el final
de la Sección 1.4 relativa al estudio de los números primos. 2

1.4 Los números primos


Definición 1.4.1 Un número natural p mayor que 1 es un número primo si sus únicos divisores naturales
son 1 y p. A los naturales mayores que 1 que no son primos los llamaremos compuestos. 2

Proposición 1.4.2 Todo número natural n mayor que 1 tiene algún divisor primo.

D EMOSTRACIÓN. Lo demostramos por inducción completa sobre n.

a) Evidentemente 2 admite un factor primo, el propio 2.

b) Ahora sea n > 2 y supongamos que hasta n − 1 todos los números admiten algún divisor primo. O
bien n es primo, y ya tenemos su factor primo, o bien es compuesto, y entonces es divisible por algún
natural t distinto de 1 y de n. Gracias a la hipótesis de inducción, t tiene algún divisor primo, que lo será
también de n. 2

Proposición 1.4.3 Todo número natural n mayor que 1 se puede expresar como producto de primos.

D EMOSTRACIÓN. Nuevamente lo probamos por inducción.

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Los números primos 11

a) Para 2 se cumple.
b) Sea ahora n > 2 y suponemos cierto el resultado hasta n−1. Como n tiene algún divisor primo p, si éste
coincide con n ya está; si no, se tiene que n = kp con k menor que n y, por la hipótesis de inducción,
producto de primos. En consecuencia, n también lo es. 2

Teorema 1.4.4 El conjunto de los números primos es infinito.

D EMOSTRACIÓN (Euclides). Supongamos que dicho conjunto fuera finito, digamos

P = {p1 , p2 , . . . , pn }.

Entonces tomamos
k = 1 + p1 p2 · · · pn .
Ninguno de los primos pi divide a k, pero éste tiene algún divisor primo, que por lo tanto tiene que ser
alguno que no está en P. 2

Definición 1.4.5 Diremos que dos números a, b ∈ Z\{0} son primos entre sí (o que a es primo con b, o b
con a) si mcd(a, b) = 1. 2

Teorema 1.4.6 Sean a, b ∈ Z\{0} y m ∈ Z\{0} primo con a. Si m divide a ab, entonces m divide a b.

D EMOSTRACIÓN. Como m es primo con a, el máximo común divisor de ambos es 1 y, por lo tanto,
tenemos una identidad de Bézout: existen u, v ∈ Z tales que

1 = mu + av.

Multiplicando por b, resulta


b = bmu + abv
y, como m divide a estos dos sumandos, divide a su suma que es b. 2

Corolario 1.4.7 Sean a, b ∈ Z\{0} y p un número primo. Si p divide a ab, entonces p divide a alguno de
los dos. 2

Observación 1.4.8 Por supuesto, el Corolario 1.4.7 se extiende a cualquier producto finito, por inducción
sobre el número de factores. 2

Teorema 1.4.9 La expresión de cada número natural n mayor que 1 como producto de primos es única
(salvo el orden).

D EMOSTRACIÓN. Vamos a probarlo por inducción sobre n.


a) Por supuesto, el resultado es cierto para 2.
b) Si n > 2, ya hemos visto que n es producto de primos. Supongamos que tenemos dos expresiones,

n = p1 p2 · · · pr = q1 q2 · · · qs ,

donde los pi y los qj son primos y están ordenados de menor a mayor. Como p1 divide a la primera
expresión, divide a la segunda, y como es primo, divide a alguno de los factores, digamos qj . Como éste
también es primo, p1 = qj . Del mismo modo, q1 divide a algún pi y, por lo tanto, q1 = pi . Pero entonces

p1 = qj ≥ q1 = pi ≥ p1 .

Por lo tanto, p1 = q1 . Ahora, dividiendo las dos expresiones por p1 y q1 , tenemos

p2 p3 · · · pr = q2 q3 · · · qs

y, aplicando la hipótesis de inducción, resulta que r = s y cada pi coincide con cada qi . 2

Facultad de Matemáticas. Universidad Complutense de Madrid


12 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

Observación 1.4.10 Con este resultado queda garantizada la unicidad de descomposición en factores pri-
mos
n = pα 1 p2 · · · pr con p1 < p2 < · · · < pr ,
1 α2 αr

que es el modo razonable de expresar un número como producto de primos, agrupando los que se repiten,
y ordenándolos de menor a mayor. 2

Observación 1.4.11 Volvemos ahora a traer a colación al máximo común divisor y al mínimo común múl-
tiplo. Supongamos que tenemos dos naturales m y n mayores que 1, y expresemos ambos como producto de
primos, permitiendo que los exponentes puedan ser 0 para incluir en ambas expresiones los mismos primos.
Sean entonces
1 p2 · · · pr
n = pα 1 α2 αr
y m = pβ1 1 pβ2 2 · · · pβr r ,
donde los exponentes αi , βi ≥ 0. Si para cada i ∈ {1, 2, . . . , r} denotamos

γi = min{αi , βi } y δi = max{αi , βi },

es claro que
mcd(m, n) = pγ11 pγ22 · · · pγr r y mcm(m, n) = pδ11 pδ22 · · · pδrr . 2

Observación 1.4.12 Las expresiones anteriores garantizan que para m, n ∈ Z\{0} se tiene que

mcd(m, n)mcm(m, n) = |mn|.

En particular, si dos números son primos entre sí, su mínimo común múltiplo es el valor absoluto de su
producto. 2

Ejemplo 1.4.13 Para hallar el mínimo común múltiplo de 249 y 36, puesto que mcd(249, 36) = 3 (como
se vio en el Ejemplo 1.3.8), basta con calcular

36
249 × = 2988. 2
3

1.5 Aplicación: Dígitos de control


Los dígitos de control se utilizan para comprobar que una colección de datos, que son los relevantes, son
los correctos. Por lo tanto deben poder obtenerse de éstos de tal forma que la inconsistencia del conjunto
implique que algún dato es erróneo. Se obtienen fundamentalmente calculando el resto de dividir un número
deducido del relevante entre n, para algún n dado. Ejemplos bien conocidos en nuestra vida cotidiana son
los siguientes:

1.5.1 La letra del N.I.F.


El Número de Identificación Fiscal está formado por el número del D.N.I. más una letra. Esta letra se obtiene
calculando primero el resto de dividir el número del D.N.I. entre 23, y traduciendo luego cada uno de los
23 posibles restos a una letra predeterminada, según la siguiente tabla:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
T R W A G M Y F P D X B N J Z S Q V H L C K E

Ejemplo 1.5.1 Z es la letra que le corresponde al D.N.I. 12345678, ya que 12345678 dividido entre 23 da
de resto 14. 2

Ejercicio 1.5.2 Comprobar la letra de vuestro N.I.F. 2

Comprobemos que sirve como dígito de control.

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Aplicación: Dígitos de control 13

a) Si por error cambiamos una cifra del número del D.N.I., sustituyendo a por b en el dígito n–ésimo
empezando por la derecha, el número se altera en

(b − a) 10n−1 .

Por supuesto, 10n−1 es primo con 23 porque no es múltiplo suyo; y también b − a, pues |b − a| < 10.
Por lo tanto la diferencia entre el número correcto y el erróneo no es múltiplo de 23, y al dividirlos por
23 dan restos distintos. El dígito de control alerta del error cometido.
b) Del mismo modo, si cambiamos el orden de dos cifras consecutivas, digamos en lugar de ab escribimos
ba, repitiendo la argumentación de antes el número se altera en

(b − a)10n + (a − b)10n−1 = (10(b − a) + (a − b)) 10n−1 = 9(b − a) 10n−1 ,

que no es múltiplo de 23 por lo que, de nuevo, el dígito alerta del error.

1.5.2 Los dígitos de control en el D.N.I. electrónico


El reverso del D.N.I. electrónico tiene la forma:

IDESPXYZ123456a12345678Z<<<<<<<<
891121bM150623cESP <<<<<<<<<<<d
GARCIA<PEREZ<<ANGEL<<<<<<<<<

Los campos que aparecen son los siguientes:


1. {ID} Tipo de documento.
2. {ESP} Nación.
3. {XYZ123456} Número de serie del soporte.
4. {a} Primer dígito de control (correspondiente al campo 3).
5. {12345678Z} N.I.F.
6. {<<<<<<<<} Relleno.
7. {891121} Fecha de nacimiento (año/mes/día).
8. {b} Segundo dígito de control (correspondiente al campo 7).
9. {M} Sexo (M: masculino, F: femenino).
10. {150623} Fecha de vencimiento (año/mes/día).
11. {c} Tercer dígito de control (correspondiente al campo 10).
12. {ESP} Nacionalidad.
13. {<<<<<<<<<<<} Relleno.
14. {d} Cuarto dígito de control (correspondiente a la concatenación de los campos 3, 4, 5, 7, 8, 10 y 11).
15. {GARCIA} Primer apellido.
16. {<} Limitador entre apellidos.
17. {PEREZ} Segundo apellido.
18. {<<} Limitador entre apellidos y nombre.
19. {ANGEL} Nombre.
20. {<<<<<<<<<} Relleno.

Facultad de Matemáticas. Universidad Complutense de Madrid


14 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

Veamos cómo se obtienen los 4 dígitos de control anteriores:


a) Dígito de control a: es la última cifra del número que se obtiene sumando los productos de las cifras del
número de serie del soporte, respectivamente, por 7, 3, 1, 7, 3, 1, 7, 3, 1, una vez reconvertidas las tres
primeras letras según la tabla
A B C D E F G H I J K L M
10 11 12 13 14 15 16 17 18 19 20 21 22
N O P Q R S T U V W X Y Z
23 24 25 26 27 28 29 30 31 32 33 34 35

Como, en nuestro caso, X = 33, Y = 34 y Z = 35, debemos efectuar la operación


33 34 35 1 2 3 4 5 6
× 7 3 1 7 3 1 7 3 1
231 102 35 7 6 3 28 15 6
Puesto que
231 + 102 + 35 + 7 + 6 + 3 + 28 + 15 + 6 = 433,
se tiene que a = 3.
b) Dígito de control b: Se procede como en el caso anterior para el campo 7, es decir
8 9 1 1 2 1
× 7 3 1 7 3 1
56 27 1 7 6 1
Puesto que
56 + 27 + 1 + 7 + 6 + 1 = 98,
se tiene que b = 8.
c) Dígito de control c: Se procede como en los casos anteriores para el campo 10, es decir
1 5 0 6 2 3
× 7 3 1 7 3 1
7 15 0 42 6 3
Puesto que
7 + 15 + 0 + 42 + 6 + 3 = 73,
se tiene que c = 3.
d) Dígito de control d: Se procede como en los casos anteriores para la concatenación de los campos
3, 4, 5, 7, 8, 10 y 11 (sustituyendo las letras por números de acuerdo a la tabla anterior). Es decir,
33 34 35 1 2 3 4 5 6 3 1 2 3 4 5 6 7 8 35
× 7 3 1 7 3 1 7 3 1 7 3 1 7 3 1 7 3 1 7
231 102 35 7 6 3 28 15 6 21 3 2 21 12 5 42 21 8 245

8 9 1 1 2 1 8 1 5 0 6 2 3 3
× 3 1 7 3 1 7 3 1 7 3 1 7 3 1
24 9 7 3 2 7 24 1 35 0 6 14 9 3
Puesto que la suma de los resultados obtenidos es
231 + 102 + 35 + 7 + 6 + 3 + 28 + 15 + 6 + 21 + 3 + 2 + 21 + 12 + 5 + 42 + 21
+ 8 + 245 + 24 + 9 + 7 + 3 + 2 + 7 + 24 + 1 + 35 + 0 + 6 + 14 + 9 + 3 = 957,
se tiene que d = 7.

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Congruencias 15

Consecuentemente, el D.N.I. anterior es

IDESPXYZ123456312345678Z<<<<<<<<
8911218M1506233ESP <<<<<<<<<<<7
GARCIA<PEREZ<<ANGEL<<<<<<<<<

Observación 1.5.3 En los D.N.I. antiguos (no electrónicos) hay un par de cambios: no existe número de
serie y el número de D.N.I. va seguido de un dígito de control que se calcula con dicho campo. Todo lo
demás es igual. 2

Ejercicio 1.5.4 Demostrar que el sistema de dígitos de control del D.N.I. capta cuándo se altera el valor de
una cifra en alguno de los campos. 2

1.5.3 El Número de Registro Personal de los Funcionarios


Está formado por el número de su D.N.I. y dos cifras más, que son respectivamente el resto del número
anterior entre 7 (por lo tanto entre 0 y 6), y este mismo resto más 2. Como bien se ve, en este caso los
dígitos de control están pésimamente diseñados. Basta cambiar, por ejemplo un 1 por un 8, o un 29 por un
92, para que la diferencia sea múltiplo de 7 y por lo tanto no se descubra el error.

1.6 Congruencias
Un ejemplo fundamental de relación de equivalencia en Z es la de congruencia módulo m, que denotaremos
≡ (mod m), para un natural m dado.

Definición 1.6.1 Sea m un número natural. Diremos que dos enteros a y b están relacionados por la relación
de congruencia módulo m, esto es, a ≡ b (mod m), si a − b es múltiplo de m. 2

Observación 1.6.2 Obviamente esta relación es una relación de equivalencia en Z, que descompone este
conjunto en m clases de equivalencia. Los elementos de cada clase son los que tienen un resto dado al
dividir entre m. Por lo tanto, en cada clase de congruencia módulo m hay un representante entre 0 y m − 1.
Llamaremos
Zm = {0, 1, 2, . . . , m − 1}
al conjunto cociente de esta relación y denotaremos [x]m a la clase de equivalencia de x módulo m. 2

Observación 1.6.3 Esta relación de congruencia tiene adecuadas propiedades aritméticas: si tenemos dos
congruencias con el mismo módulo,

a1 ≡ b1 (mod m) y a2 ≡ b2 (mod m),

entonces se verifican la “suma” y el “producto” de ambas congruencias, esto es,

a1 + a2 ≡ b1 + b2 (mod m) y a1 a2 ≡ b1 b2 (mod m).

En efecto, que se cumplan las congruencias originales implica que a1 − b1 y a2 − b2 son múltiplos de m,
es decir,
a1 = b1 + k1 m y a2 = b2 + k2 m
para algunos enteros k1 y k2 . Pero entonces

a1 + a2 = b1 + b2 + (k1 + k2 )m y a1 a2 = b1 b2 + (b2 k1 + b1 k2 + k1 k2 m)m,

por lo que se verifican la “suma” y “producto” de las congruencias. 2

Ejercicio 1.6.4 Si a ≡ b (mod m) demostrar que:


a) a + k ≡ b + k (mod m) para todo k ∈ Z.

Facultad de Matemáticas. Universidad Complutense de Madrid


16 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

b) ak ≡ bk (mod m) para todo k ∈ Z (el recíproco no es cierto: 8 ≡ 2 (mod 6) pero 4 ̸≡ 1 (mod 6)).

c) ar ≡ br (mod m) para todo r ∈ N. 2

Ejercicio 1.6.5 Si a = a1 d, b = b1 d y m = m1 d demostrar que

a ≡ b (mod m) si y sólo si a1 ≡ b1 (mod m1 ). 2

Definición 1.6.6 Llamaremos congruencia lineal a una ecuación de la forma

ax ≡ b (mod m)

donde a, b ∈ Z, con a ̸= 0, y m ∈ N son dados. 2

El primer problema que se plantea es si las congruencias tienen solución, es decir, si existe x que
satisfaga que ax y b son congruentes módulo m, y si esta solución es única o puede haber varias. Para
dilucidar el problema del número de soluciones vamos primero a estudiar dónde se debe buscar.

Proposición 1.6.7 Sea ax ≡ b (mod m) una congruencia lineal. Si α es una solución de la misma y
β ≡ α (mod m) entonces β es también una solución de la congruencia.

D EMOSTRACIÓN. Basta tener en cuenta que

β ≡ α (mod m) ⇒ aβ ≡ aα (mod m).

Como aα ≡ b (mod m), la propiedad transitiva asegura que aβ ≡ b (mod m), es decir, que β es solución
de la congruencia. 2

Observación 1.6.8 Este resultado nos indica que basta con que encontremos las soluciones de la congruen-
cia que estén en Zm . 2

Ejemplo 1.6.9 La congruencia 2x ≡ 1 (mod 6) no tiene solución en Z6 , mientras que la congruencia


2x ≡ 2 (mod 8) tiene dos soluciones en Z8 (x = 1 y x = 5). 2

El siguiente resultado caracteriza cuándo una congruencia lineal tiene solución:

Teorema 1.6.10 Sean a, b ∈ Z, m ∈ N y d = mcd(a, m). La congruencia lineal ax ≡ b (mod m) tiene


solución si, y sólo si, d divide a b; en ese caso, el número de soluciones en Zm es d.

D EMOSTRACIÓN. Primero se ve cuándo hay solución.

⇐ Supongamos que d divide a b, digamos b = dk para algún k ∈ Z. Como d = mcd(a, m), existen
enteros u y v tales que
d = au + mv,
luego b = auk + mvk. Por lo tanto b ≡ auk (mod m), así que uk es solución de la congruencia.

⇒ Recíprocamente, si existe una solución α, existe algún k ∈ Z tal que

aα − b = km,

luego b = aα − km y, como d divide a a y a m, también divide a b.

Veamos ahora el número de soluciones.

a) En primer lugar supongamos que d = 1 y que hubiera dos soluciones, α y β en Zm . Entonces, tanto aα
como aβ son congruentes con b módulo m, luego a(α − β) es múltiplo de m. Como a es primo con
m, resulta que α − β es múltiplo de m y, al estar ambos en Zm , resulta que α − β = 0, luego ambas
soluciones son iguales.

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Congruencias 17

b) Finalmente, si d > 1, sean


a = a1 d, b = b1 d y m = m1 d.
Como mcd(a1 , m1 ) = 1, la congruencia a1 x ≡ b1 (mod m1 ) tiene solución única en Zm1 , digamos α.
Como sabemos (véase el Ejercicio 1.6.5) que ax ≡ b (mod m) si, y sólo si, a1 x ≡ b1 (mod m1 ), resulta
que las soluciones de la congruencia original en Zm son

α, α + m1 , α + 2m1 , . . . , α + (d − 1)m1 ;

esto es, un total de d soluciones en Zm . 2

Una vez que hemos resuelto el problema de determinar cuándo hay solución, dónde hay que buscarla, y
cuántas hay, veamos un ejemplo para ver cómo se obtienen.

Ejemplo 1.6.11 Consideremos la congruencia

56x ≡ 42 (mod 105). (1.3)

Lo primero es ver si (1.3) tiene solución y, para ello, se calcula el máximo común divisor de 56 y 105. A
partir de la tabla
i r i qi x i yi
0 105 1 0
1 56 1 0 1
2 49 1 1 −1
3 7 7 −1 2
0
se tiene que
mcd(56, 105) = 7
y la identidad de Bézout
7 = 105 × (−1) + 56 × 2.
Como 7 divide a 42, la congruencia (1.3) tiene solución, y hay un total de siete (el mcd) en Z105 . Para
calcularlas, seguimos el procedimiento aprendido al demostrar la existencia. Trabajamos con la congruencia
auxiliar, de solución única, resultante de dividir todo por 7

8x ≡ 6 (mod 15), (1.4)

que tiene asociada la identidad de Bézout

1 = 15 × (−1) + 8 × 2.

Multiplicando por b1 = 6 la igualdad anterior, obtenemos que

6 = 6 × 15 × (−1) + 6 × 8 × 2 ≡ 8 × (6 × 2) = 8 × 12 (mod 15)

y, por tanto, x = 12 es solución de (1.4) (nos ha salido un número perteneciente a Z15 ; si no fuera así
tomaríamos su resto módulo 15). Y ahora que tenemos la solución única de la congruencia auxiliar (1.4),
recordando de nuevo cómo demostramos el número de soluciones del problema original, ya sabemos que
las siete soluciones de (1.3) son

12, 12+15 = 27, 12+2×15 = 42, 12+3×15 = 57, 12+4×15 = 72, 12+5×15 = 87, 12+6×15 = 102.

Como nunca está de más comprobar que no nos hemos equivocado veamos, por ejemplo, que 102 es solu-
ción de (1.3). En efecto, puesto que

56 × 102 = 5712 y 5712 − 42 = 5670 = 54 × 105,

se tiene que 56 × 102 ≡ 42 (mod 105). 2

Facultad de Matemáticas. Universidad Complutense de Madrid


18 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

Observación 1.6.12 En el caso particular de que b = 1, el Teorema 1.6.10 asegura que la congruencia
lineal ax ≡ 1 (mod m) tiene solución si, y sólo si, mcd(a, m) divide a 1, es decir, si a y m son primos
entre sí (en cuyo caso, la solución en Zm es única). Esto permite definir, cuando mcd(a, m) = 1, el inverso
de a en Zm (que se suele denotar a−1 ) como la solución de la congruencia ax ≡ 1 (mod m) en Zm .
En la práctica, para encontrar a−1 basta con encontrar una identidad de Bézout de la forma

1 = ax + my

y tomar como a−1 el representante de x en Zm (es decir, el resto de dividir x entre m). 2

Ejemplo 1.6.13 Veamos que 7−1 = 16 en Z37 . En efecto, a partir de la tabla

i ri qi xi yi
0 37 1 0
1 7 5 0 1
2 2 3 1 −5
3 1 2 −3 16
0

se tiene que 1 = 37 × (−3) + 7 × 16, de donde se deduce el resultado. 2

Una vez estudiadas las congruencias lineales, se generaliza la cuestión a sistemas de congruencias.
Consideraremos para empezar dos congruencias, módulo respectivamente m y n. Estudiemos, en primer
lugar, la relación entre las clases de congruencia módulo estos dos números.

Observación 1.6.14 Si x ∈ Z y m y n son dos números naturales, siempre se tiene la inclusión

[x]mn ⊂ [x]m ∩ [x]n ,

puesto que si y ∈ [x]mn , existe λ tal que y = x + λmn, por lo que y es congruente con x, módulo
m y también módulo n. Sin embargo, el otro contenido, en general, no se da. Basta tomar, por ejemplo,
x = 1, m = 2 y n = 6; en este caso se tiene

7 ≡ 1 (mod 2), 7 ≡ 1 (mod 6) pero 7 ̸≡ 1 (mod 12). 2

El siguiente resultado muestra que la igualdad se da cuando los módulos son primos entre sí.

Proposición 1.6.15 Si m y n son dos números naturales primos entre sí, se verifica que

[x]m ∩ [x]n = [x]mn .

D EMOSTRACIÓN. De acuerdo con la Observación 1.6.14, basta probar que

[x]m ∩ [x]n ⊂ [x]mn .

Si y ∈ [x]m ∩ [x]n , existen λ y µ tales que

y = x + λm = x + µn.

Por lo tanto, λm = µn. Como mcd(m, n) = 1, se tiene que n divide a λ, digamos λ = λ1 n. Con ello,

y = x + λm = x + λ1 nm,

y así y ∈ [x]mn . 2

Estamos ya en condiciones de establecer una condición suficiente para que un sistema de dos congruen-
cias tenga solución y estudiar su unicidad.

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Congruencias 19

Teorema 1.6.16 Sean m1 y m2 dos naturales primos entre sí. Si cada una de las congruencias lineales
{
a1 x ≡ b1 (mod m1 )
a2 x ≡ b2 (mod m2 )

tiene solución, entonces existe solución común a ambas congruencias en Zm1 m2 . Si, además,

mcd(a1 , m1 ) = 1 y mcd(a2 , m2 ) = 1

entonces dicha solución es única en Zm1 m2 .

D EMOSTRACIÓN. Sean α1 y α2 soluciones respectivas de ambas congruencias. Como mcd(m1 , m2 ) = 1,


la identidad de Bézout para m1 y m2 nos dice que existen enteros u y v tales que

1 = m1 u + m2 v.

Pues bien, el número


α = α2 m1 u + α1 m2 v
es solución común a ambas congruencias. En efecto, por un lado se tiene que

α = α2 m1 u + α1 m2 v = α2 m1 u + α1 (1 − m1 u) = α1 + m1 (α2 u − α1 u)

y, por otro, que


α = α2 (1 − m2 v) + α1 m2 v = α2 + m2 (α1 v − α2 v).
Hemos probado, entonces, que α ∈ [α1 ]m1 y α ∈ [α2 ]m2 por lo que, gracias a la Proposición 1.6.7, es
solución de las dos congruencias. Si ahora consideramos β, el representante de α en Zm1 m2 , tenemos que

β ∈ [α]m1 m2 ⊂ [α]m1 ∩ [α]m2 = [α1 ]m1 ∩ [α2 ]m2 ,

esto es, que β ∈ Zm1 m2 es solución del sistema original.


Probemos, a continuación, la unicidad. Supongamos que α, β ∈ Zm1 m2 son soluciones del sistema
de congruencias. Por serlo de la primera, y tener ésta una única solución en Zm1 , α y β son congruentes
módulo m1 con dicha solución. Por la transitividad,

α ≡ β (mod m1 ).

De igual forma se prueba que


α ≡ β (mod m2 ).
En conclusión, se llega a
α ∈ [β]m1 ∩ [β]m2 = [β]m1 m2 ,
de lo que se infiere que α = β por ser ambos números elementos de Zm1 m2 . 2

Ejemplo 1.6.17 Consideremos el sistema de congruencias lineales


{
3x ≡ 2 (mod 8)
2x ≡ 1 (mod 5)

Los módulos 8 y 5 son primos entre sí, y cada congruencia tiene solución única, α1 = 6 y α2 = 3,
respectivamente (compruébese). Escribiendo una Identidad de Bézout de 8 y 5, 1 = 2 × 8 − 3 × 5, y
multiplicando por las soluciones de forma cruzada como en la demostración anterior, obtenemos la única
solución común en Z40

α = 3 × 2 × 8 − 6 × 3 × 5 = 48 − 90 = −42 ≡ 38 (mod 40). 2

El resultado anterior se generaliza a sistemas de una cantidad arbitraria de congruencias:

Facultad de Matemáticas. Universidad Complutense de Madrid


20 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

Teorema 1.6.18 (Chino del resto) Sean m1 , m2 , . . . , mk números naturales primos entre sí dos a dos. Si
cada una de las congruencias lineales

ai x ≡ bi (mod mi ), i = 1, 2, · · · , k

tiene solución, entonces existe solución común a todas ellas en Zm1 m2 ···mk . Si, además,

mcd(ai , mi ) = 1, i = 1, 2, · · · , k

entonces dicha solución es única en Zm1 m2 ···mk .

D EMOSTRACIÓN. Probamos la existencia de solución común por inducción sobre el número k de con-
gruencias.

a) Si k = 2, es el Teorema 1.6.16.

b) Sea k > 2 y supongamos cierto el resultado para k − 1 congruencias. Entonces las k − 1 primeras
congruencias del sistema tienen una solución común, digamos α. También cualquier solución de la
congruencia
x ≡ α (mod m1 m2 · · · mk−1 )
es solución de las k − 1 primeras congruencias. Basta considerar ahora el sistema de dos congruencias
{
x ≡ α (mod m1 m2 · · · mk−1 )
(1.5)
ak x ≡ bk (mod mk )

Como m1 m2 · · · mk−1 y mk son primos entre sí, este sistema de dos congruencias tiene solución común,
que lo es de todo el sistema.
Finalmente, si la solución común α de las k − 1 primeras congruencias del sistema es única, como la de
la k-ésima también lo es, aplicando el mismo razonamiento que en el Teorema 1.6.16 al sistema (1.5)
probamos la unicidad de solución común a todo el sistema. 2

Observación 1.6.19 Si los módulos de las congruencias no son primos entre sí dos a dos, puede o no haber
solución. Así, por ejemplo, el sistema de congruencias
{
x ≡ 2 (mod 15)
x ≡ 1 (mod 6)

no tiene solución, mientras que {


x ≡ 4 (mod 15)
x ≡ 1 (mod 6)
tiene la solución x = 19 en Z30 . De hecho, se puede demostrar que una condición necesaria y suficiente
para que el sistema de congruencias tenga solución es que las soluciones αi de cada congruencia sean, a su
vez, congruentes dos a dos módulo el máximo común divisor de los respectivos módulos, es decir,

αi ≡ αj (mod mcd(mi , mj )). 2

Ejemplo 1.6.20 El sistema de congruencias lineales




 3x ≡ 2 (mod 8)

2x ≡ 1 (mod 5)



5x ≡ 2 (mod 3)

tiene una única solución en Z120 , puesto que los módulos 8, 5 y 3 son primos entre sí dos a dos, y cada
congruencia tiene solución única, α1 = 6, α2 = 3 y α3 = 1, respectivamente (compruébese). En el

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Congruencias 21

Ejemplo 1.6.17 hemos encontrado la solución común a las dos primeras en Z40 , que es 38. Siguiendo lo
aprendido en la demostración del teorema Chino del resto, consideramos el sistema de dos congruencias
{
x ≡ 38 (mod 40)
5x ≡ 2 (mod 3)

Una identidad de Bézout para 40 y 3 es 1 = 1 × 40 − 13 × 3; multiplicando por las soluciones de forma


cruzada obtenemos la única solución común en Z120

α = 1 × 1 × 40 − 38 × 13 × 3 = 40 − 1482 = −2 ≡ 118 (mod 120). 2

El teorema de Euler es la base en la que se asienta el procedimiento de cifrado exponencial y la clave


RSA. Para llegar a él, comenzamos definiendo la función de Euler.

Definición 1.6.21 Sea n ∈ N. Llamaremos φ(n), la función de Euler del número n, al cardinal del conjunto

{t ∈ N : 1 ≤ t ≤ n y mcd(t, n) = 1}. 2

Dado un número pequeño es muy fácil calcular su función de Euler. Vamos a obtener un procedimiento
de carácter general mediante tres pasos sucesivos, según la estructura del número como producto de primos,
usando en el tercero lo que hemos aprendido de congruencias.

Proposición 1.6.22 Si p es primo se verifica que

φ(p) = p − 1.

D EMOSTRACIÓN. Evidente. 2

Proposición 1.6.23 Si p es primo y k > 1 entonces

φ(pk ) = pk − pk−1 .

D EMOSTRACIÓN. Los números hasta pk que tienen factores comunes con pk son múltiplos de p. Hasta
pk hay exactamente pk−1 múltiplos de p y, por lo tanto, se tiene el resultado. 2
Antes de dar el tercer paso, enunciamos dos lemas auxiliares (se propone, como ejercicio, demostrarlos).

Lema 1.6.24 Sean α, β, a ∈ N. Si α ≡ β (mod a) y β es primo con a entonces α es primo con a.

Lema 1.6.25 Sean a, b ∈ N. Un número γ ∈ N es primo con a y con b si, y sólo si, es primo con ab.

Teorema 1.6.26 Si a y b son dos números naturales primos entre sí, se verifica que

φ(ab) = φ(a)φ(b).

D EMOSTRACIÓN. Sean

A = {α1 , α2 , . . . , αφ(a) }, B = {β1 , β2 , . . . , βφ(b) } y C = {γ1 , γ2 , . . . , γφ(ab) }

respectivamente, los conjuntos de números primos con a, b y ab en Za , Zb y Zab . Vamos a construir una
biyección de A × B en C. Para ello, dado (αi , βj ) ∈ A × B, definimos el sistema de congruencias lineales
{
x ≡ αi (mod a)
x ≡ βj (mod b).

Según sabemos, tiene solución única, digamos γ, en Zab . Como γ ≡ αi (mod a) y αi es primo con a, el
Lema 1.6.24 nos asegura que γ es primo con a. Del mismo modo, γ es primo con b y, por el Lema 1.6.25,
lo es con ab. Es decir, γ ∈ C. Definimos f : A × B → C tomando γ como la imagen de (αi , βj ).

Facultad de Matemáticas. Universidad Complutense de Madrid


22 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

Para ver la inyectividad, si


γ = f (αi , βj ) = f (αp , βq ),
se verifica que
αi , αp ≡ γ (mod a)
y, como ambos pertenecen a Za , son iguales. Del mismo modo, βj = βq , por lo que f es inyectiva.
Finalmente, para ver que f es suprayectiva, sea γ ∈ C. Como γ es primo con ab, el Lema 1.6.25 indica
que también lo es con a y con b. La congruencia x ≡ γ (mod a) tiene solución, digamos α, en Za . Como
γ es primo con a, también lo es (gracias, de nuevo, al Lema 1.6.24) α que, por lo tanto, pertenece a A. Del
mismo modo tenemos β ∈ B con β ≡ γ (mod b). Por la definición de f , se tiene que
f (α, β) = γ
y, en consecuencia, f es suprayectiva. 2

Observación 1.6.27 Así pues, ya tenemos una forma de obtener la función de Euler de cualquier núme-
ro. Basta expresarlo como producto de potencias de primos, y su función de Euler es el producto de las
respectivas expresiones (pk − pk−1 ). 2
Ejemplo 1.6.28 Puesto que 420 = 22 × 3 × 5 × 7 se tiene que
φ(420) = (22 − 21 )(31 − 30 )(51 − 50 )(71 − 70 ) = 2 × 2 × 4 × 6 = 96. 2

En estos términos, podemos ahora ver dos teoremas importantes en teoría de números, a saber:
Teorema 1.6.29 (Euler) Si a y n son dos números naturales primos entre sí, entonces
aφ(n) ≡ 1 (mod n).
D EMOSTRACIÓN. En primer lugar, vamos a demostrar la siguiente afirmación: considerando los conjuntos
A = {v1 , v2 , . . . , vφ(n) } de números menores que n y primos con n, y B = {av1 , av2 , . . . , avφ(n) },
entonces cada uno de los elementos de B es congruente módulo n con uno de los de A, y viceversa. En
efecto, para cada vi ∈ A, como a y n son primos entre sí, la congruencia
ax ≡ vi (mod n)
tiene una única solución α en Zn que, razonando como en la demostración del Teorema 1.6.26, es primo
con n. Así pues, α ∈ A y aα es un elemento de B congruente con vi módulo n. Supongamos ahora que
existe α ∈ A solución de las congruencias asociadas a vi y vj , es decir,
{
aα ≡ vi (mod n)
aα ≡ vj (mod n).
Obviamente, entonces, vi ≡ vj (mod n), y como ambos son elementos de Zn , son iguales. Hemos probado,
por tanto, que cada elemento de A es congruente con uno de B y que dos elementos distintos de A no
pueden ser congruentes con el mismo elemento de B. Como ambos conjuntos tienen el mismo número de
elementos, se llega a la afirmación previamente enunciada.
Ahora, llamando u y v, respectivamente, a los productos de los elementos de A y de B, se tiene que
v ≡ u (mod n). Pero
v = aφ(n) u,
por lo que
aφ(n) u ≡ u (mod n)
y, al ser u y n primos entre sí, existe el inverso de u en Zn y, por tanto,
aφ(n) ≡ 1 (mod n). 2

Y ahora, como caso particular de este resultado, obtenemos:


Teorema 1.6.30 (Pequeño teorema de Fermat) Si p es primo y a no es múltiplo de p, entonces
ap−1 ≡ 1 (mod p).
D EMOSTRACIÓN. Basta aplicar el Teorema 1.6.29 tomando n = p y recordando que φ(p) = p − 1. 2

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Aplicación: Criptografía 23

1.7 Aplicación: Criptografía


Un problema secular que ha adquirido nuevo aspecto modernamente es el del cifrado de mensajes. Consiste
en transformar un mensaje claro en otro cifrado (cifrar) y en reconvertir el mensaje cifrado en mensaje claro
(descifrar). Los procedimientos matemáticos más sencillos para ello han consistido, fundamentalmente, en
añadir a los caracteres de los números (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) la conversión de las letras del alfabeto a
números mediante la tabla
A B C D E F G H I J K L M
10 11 12 13 14 15 16 17 18 19 20 21 22
N O P Q R S T U V W X Y Z
23 24 25 26 27 28 29 30 31 32 33 34 35

y asignando el número 36 al espacio en blanco; seguidamente, se aplica una regla que convierta estos
números en otros de modo biunívoco, de forma que después se puedan descifrar y reconvertir a su valor
original. Suelen considerarse varios tipos de procedimientos:

1.7.1 Procedimiento aditivo


La clave del cifrado es un número, digamos b, que se suma a cada uno de los del mensaje. Para obtener
números que estén entre 0 y 36, se obtiene el resto módulo 37 de la suma del número original más b. El
receptor del mensaje debe conocer b, y no tiene más que restar b módulo 37 o, lo que es lo mismo, sumar
37 − b para descifrar el mensaje.

Ejemplo 1.7.1 Veamos cómo cifrar el mensaje “EL 1 A LAS 3” con la clave aditiva b = 17. En primer
lugar, “traducimos” cada carácter a su valor numérico, obteniendo

14 21 36 1 36 10 36 21 10 28 36 3. (1.6)

Su codificación es
31 1 16 18 16 27 16 1 27 8 16 20, (1.7)
lo que se traduce en “V1GIGRG1R8GK”. El receptor deberá sumar 37 − 17 = 20 (módulo 37) en la cadena
numérica (1.7) para obtener la cadena (1.6), que conduce al mensaje original. 2

1.7.2 Procedimiento multiplicativo


En lugar de sumar, se multiplica por un factor, digamos a; es decir, el cifrado de la conversión numérica m
de cada carácter será ma (mod 37). Para que el cifrado sea biyectivo es necesario que todas las congruencias
lineales
ax ≡ y (mod 37)
tengan una única solución para cualquier y ∈ Z37 . Gracias al Teorema 1.6.10 podemos asegurar que esto
ocurre si, y sólo si,
mcd(a, 37) = 1.
Para descifrar el mensaje se considera a−1 , inverso de a en Z37 (véase la Observación 1.6.12). De esta
forma, puesto que
aa−1 ≡ 1 (mod 37),
obviamente se tiene que
(ma)a−1 ≡ m (mod 37),
por lo que el número buscado m es el resto de dividir (ma)a−1 entre 37.

Ejemplo 1.7.2 Veamos cómo cifrar el mensaje anterior “EL 1 A LAS 3” con la clave multiplicativa a = 7.
Su traducción es (1.6) y su codificación viene dada por

24 36 30 7 30 33 30 36 33 11 30 21, (1.8)

Facultad de Matemáticas. Universidad Complutense de Madrid


24 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

lo que se traduce en “O U7UXU XBUL”. El receptor debe multiplicar en la cadena numérica (1.8) por el
inverso de 7 en Z37 que, como se vio en el Ejemplo 1.6.13, es 16, obteniendo

384 576 480 112 480 528 480 576 528 176 480 336

cuyos restos, módulo 37, constituyen la cadena (1.6) (compruébese). 2

1.7.3 Procedimiento exponencial


En este procedimiento, cuando se quiera cifrar un número m, se elevará éste a un exponente k y el resultado
se reducirá módulo n, siendo k y n números naturales elegidos convenientemente. Para describir la manera
de obtener de una forma eficaz el número cifrado, presentamos primero el algoritmo de exponenciación
rápida, el cual minimiza el número de operaciones utilizando la idea de representar el exponente en base 2.
Así, por ejemplo, puesto que

23 = 1 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 1 × 20 ,

para todo a ∈ N se tiene que


(( )
( 2 ) 2 )2 2 ( 2 ) 2 2
a23 = a a a a,

lo cual conlleva sólamente 7 multiplicaciones.

Proposición 1.7.3 (Algoritmo de exponenciación rápida) Sean a, c ∈ N. Si

c = 2s + ds−1 2s−1 + · · · + d2 22 + d1 2 + d0

con di ∈ {0, 1} para i = 0, 1, . . . , s − 1, es el desarrollo en base 2 de c, y se consideran las sucesiones


definidas mediante z0 = 1, b0 = a y
{
zi = zi−1 (bi−1 )di−1
bi = (bi−1 )2

para i = 1, 2, . . . , s, entonces
ac = zs bs .

D EMOSTRACIÓN. Basta tener en cuenta que

s
( s−1
)ds−1 ( 2 )d 2 ( ) d
ac = a2 a2 · · · a2 a2 ad0 .
1
2

Ejemplo 1.7.4 Para calcular 323 construimos la tabla

i di zi bi
0 23 1 1 3
1 11 1 3 9
2 5 1 27 81
3 2 0 2187 6561
4 1 1 2187 43046721
0 94143178827

y obtenemos que
323 = 94143178827. 2

Observación 1.7.5 Este algoritmo es particularmente sencillo de usar cuando, como ocurre en este proce-
dimiento de encriptación, es necesario calcular el resto módulo n de la potencia de un número. En tal caso,

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Aplicación: Criptografía 25

todas las operaciones se realizarán módulo n (lo denominaremos algoritmo de exponenciación modular
rápida). Así, por ejemplo, para calcular el valor de 323 módulo 19 construiremos la tabla

i di zi bi
0 23 1 1 3
1 11 1 3 9
2 5 1 8 5
3 2 0 2 6
4 1 1 2 17
0 15

obteniendo
323 ≡ 15 (mod 19). 2

La siguiente proposición será de ayuda en el proceso de descifrado correspondiente.

Proposición 1.7.6 Sean n, t ∈ N tales que

t ≡ 1 (mod φ(n)).

Dado m ∈ N, si se verifica alguna de las siguientes hipótesis:

a) m y n son primos entre sí.

b) n es primo.

c) n es producto de dos primos distintos.

entonces
mt ≡ m (mod n).

D EMOSTRACIÓN.

a) Si mcd(m, n) = 1, usando el Teorema 1.6.29 (de Euler) se tiene que

mt = mφ(n)λ+1 = m(mφ(n) )λ ≡ m 1λ ≡ m (mod n).

b) Sea n primo: si m es primo con n ya lo hemos demostrado en el apartado a); si no, es que m es múltiplo
de n, luego
m ≡ 0 (mod n) ⇒ mt ≡ 0 ≡ m (mod n).

c) Si n = pq siendo p y q dos números primos distintos, por el Teorema 1.6.26, se tiene que

t ≡ 1 (mod φ(n)) ≡ 1 (mod φ(pq)) ≡ 1 (mod φ(p)φ(q)).

Luego t ≡ 1 (mod φ(p)) y t ≡ 1 (mod φ(q)) por lo que, gracias al apartado b),

mt ≡ m (mod p) y mt ≡ m (mod q).

Como p y q son primos distintos, esto implica (véase la Proposición 1.6.15) que

mt ≡ m (mod pq) ≡ m (mod n). 2

Observación 1.7.7 Este resultado se aplica para encriptar como sigue: se elige n primo o producto de dos
primos distintos, se calcula φ(n), se toma k primo con φ(n) y se calcula j, el inverso de k en Zφ(n) , es
decir, de forma que
kj ≡ 1 (mod φ(n)).

Facultad de Matemáticas. Universidad Complutense de Madrid


26 Números enteros. Dígitos de control y criptografía Elementos de Matemáticas y aplicaciones

Suponiendo que el emisor y el receptor de un mensaje (o, más precisamente, de su conversión numérica m)
conocen los números k y j, el emisor mandará el mensaje codificado que es r, el resto de la división de mk
entre n. Para descodificar, teniendo en cuenta que
mkj ≡ m (mod n),
el receptor calculará
( )j
rj ≡ mk ≡ mkj ≡ m (mod n),
y así recuperará (la conversión numérica de) el mensaje original m.
Obviamente, este procedimiento sólo es válido cuando el número m es menor que n. Por ello, en la prác-
tica, cuando el mensaje es largo, se agrupan sus caracteres (escribiendo las cifras como 00, 01, 02, . . . , 09
para que todos los caracteres estén representados por un número de dos cifras) en paquetes mi de la misma
longitud ℓ de forma que el número 36 .ℓ). . 36 sea menor que n (por ejemplo, para n = 108 , podemos tomar
ℓ = 4, puesto que 36363636 < n). En el caso de que el número de caracteres del mensaje no sea múltiplo
de ℓ, el último paquete se completa con espacios en blanco. 2
Ejemplo 1.7.8 Para ilustrar este método, consideramos un caso sencillo con n pequeño y un mensaje corto.
Tomamos n = 5 × 11 = 55, lo que nos obliga a tomar paquetes que contienen un único carácter. Veamos
cómo cifrar el mensaje “ADN’. Puesto que
φ(55) = 4 × 10 = 40,
tomamos, por ejemplo, k = 3 (que es primo con 40). A partir de la tabla
i ri qi xi yi
0 40 1 0
1 3 13 0 1
2 1 3 1 −13
0
deducimos que el inverso de k = 3 en Z40 es
j = −13 ≡ 27 (mod 40).
Traduciendo cada carácter a su valor numérico, el mensaje se convierte en 101323. Como nuestros paquetes
se corresponden con un único carácter, debemos codificar 3 números: m1 = 10, m2 = 13 y m3 = 23. Para
ello, empleando el algoritmo de exponenciación modular rápida calculamos m3i a partir de la siguiente
tabla
(1) (1) (2) (2) (3) (3)
i di zi bi zi bi zi bi
0 3 1 1 10 1 13 1 23
1 1 1 10 45 13 4 23 34
0 10 52 12
Los tres paquetes de mensaje codificados que se envían son 10, 52 y 12.
Para descifrar los tres paquetes recibidos, el receptor debe calcular el resto, módulo n = 55, de los
números recibidos (10, 52 y 12) elevados a j = 27. Empleando de nuevo el algoritmo de exponenciación
modular rápida tenemos
(1) (1) (2) (2) (3) (3)
i di zi bi zi bi zi bi
0 27 1 1 10 1 52 1 12
1 13 1 10 45 52 9 12 34
2 6 0 10 45 28 26 23 1
3 3 1 10 45 28 16 23 1
4 1 1 10 45 8 36 23 1
0 10 13 23
Por tanto, el descifrado de los tres paquetes es, respectivamente, 10, 13 y 23 (lo cual se corresponde con el
mensaje inicial “ADN”). 2

Facultad de Matemáticas. Universidad Complutense de Madrid


Elementos de Matemáticas y aplicaciones Aplicación: Criptografía 27

1.7.4 El procedimiento RSA


Todos los procedimientos anteriores se basan en sistemas de clave privada, en que los datos para el cifrado
(y el descifrado) han de mantenerse secretos (conocidos únicamente por el emisor y el receptor) si no se
quiere que cualquiera pueda interpretar el código. Además, los procedimientos aditivo y multiplicativo, así
como el exponencial con n “pequeño”, son susceptibles de descifrado por mero empleo de prueba y error,
aunque esto pueda requerir una cantidad de tiempo progresivamente mayor.
El salto cualitativo siguiente son los sistemas de clave pública / clave privada, y el primero ha sido el
sistema RSA, así llamado por los nombres de sus autores, Rivest, Shamir y Adelman. Éste es un sistema
exponencial en el cual n es producto de dos primos “grandes” distintos p y q. Aunque se hagan públicos el
exponente k y el módulo n, si no se sabe factorizar n, no se puede calcular φ(n) = (p − 1)(q − 1) y, por lo
tanto, no se puede encontrar el número j necesario para descifrar el código. Por ello, la idea fundamental es
utilizar un número n que no sea factorizable en un tiempo “razonable”, lo cual exige actualmente usar dos
factores de unas 150 cifras y, por lo tanto, n de unas 300.
El sistema de envío de mensajes encriptados funciona de la siguiente forma: Si A quiere mandar un
mensaje a B debe consultar la clave pública (n, k) de B. Con ella A cifra el mensaje (elevándolo a k) y se
lo envía a B; lo único que debe hacer B es descifrarlo mediante su clave privada j (elevando a j el número
recibido).
Este sistema sirve también para firmar los mensajes y comprobar su integridad; en concreto, sirve para
que el receptor B esté seguro de que quien envía el mensaje es, efectivamente, el supuesto emisor A, y de
que el mensaje no ha sido manipulado por un tercero. Para conseguir esto, basta que A envíe un mensaje
en el que, junto con el texto cifrado mediante la clave pública de B, vaya un resumen del texto que haya
sido cifrado mediante la clave privada de A. Este resumen se obtiene mediante la aplicación de un tipo
específico de funciones que se conocen con el nombre de funciones hash y cuyas características esenciales
son: que no se puede recuperar el texto original a partir del resumen; y que pequeños cambios en el texto
alteran fuertemente el resumen, de modo que la probabilidad de que dos textos distintos generen el mismo
resumen es ínfima. Cuando B recibe el mensaje, descifra el primer texto mediante su clave privada, y el
segundo con la clave pública de A; el resultado de aplicar la función hash al primer texto debe coincidir
con el segundo. El segundo texto enviado se conoce como firma digital y esta coincidencia asegura que el
mensaje no ha sido manipulado por terceros y que quien envía el mensaje es, efectivamente, A.

Ejemplo 1.7.9 Para ejemplificar el uso del procedimiento RSA consideramos también un valor pequeño de
n y el mismo mensaje “ADN” del Ejemplo 1.7.8. Supongamos que el emisor A tiene como clave pública
(nA , kA ) = (91, 5) mientras que la del receptor B es (nB , kB ) = (55, 3). Según lo visto en el Ejem-
plo 1.7.8, el texto cifrado que se envía está formado por los tres paquetes 10, 52 y 12. Para obtener la firma
digital, supongamos que el resumen del mensaje fuera “N”. Como la clave privada de A es jA = 29 (puesto
que φ(91) = 72 y 5 × 29 = 145 ≡ 1 (mod 72)), el paquete del resumen m = 23 debe elevarse a 29
módulo nA = 91, obteniéndose 04 (compruébese). De esta forma, el mensaje que recibe B es

10 52 12 | 04.

Para descifrar el primer trozo, B utiliza su clave privada que es, como se vio en el Ejemplo 1.7.8, jB = 27.
Elevando los tres paquetes 10, 52 y 12 a 27 módulo nB = 55, obtiene 10, 13 y 23 (compruébese) lo que,
obviamente, se corresponde con el mensaje original “ADN”. Al elevar el paquete de la firma digital 04 a la
clave pública de A, kA = 5, módulo nA = 91 obtiene “N”, comprobando que es lo que le sale al hacer el
resumen del mensaje recibido. Esta coincidencia le confirma que el mensaje ha sido enviado por A y no ha
sido manipulado. 2

Facultad de Matemáticas. Universidad Complutense de Madrid


Bibliografía

[1] M. A. Armstrong: Groups and symmetry. Springer–Verlag, Nueva York, 1988.

[2] F. Ayres: Teoría y problemas de trigonometría plana y esférica. McGraw–Hill, 1976.


[3] M. Berrocoso, M. E. Ramírez, J. M. Enríquez–Salamanca y A. Pérez–Peña: Notas y apuntes de trigo-
nometría esférica y astronomía de posición. Universidad de Cádiz, 2003.

[4] T. S. Blyth y E. F. Robertson: Sets and mappings. Essential Student Algebra, vol. 1, Chapman and
Hall, Londres y Nueva York, 1986.

[5] J. Casey: A treatise of spherical trigonometry and its application to Geodesy and Astronomy with
numerous examples. Merchant Books, 2007.

[6] R. L. Devaney: An Introduction to Chaotic Dynamical Systems. Addison-Wesley. 1989.


[7] F. J. Cirre: Matemática discreta. Base Universitaria, Editorial Anaya, Madrid, 2004.

[8] P. Fernández: El secreto de Google y el Álgebra lineal. Boletín de la Sociedad Española de Matemática
Aplicada, 30 (2004), 115–141. Un enlace a este trabajo puede encontrarse en la página personal del
autor: http://www.uam.es/personal_pdi/ciencias/gallardo/index.htm
[9] T. Gowers: Matemáticas. Una breve introducción. Alianza Editorial, Madrid, 2008.

[10] B. Grünbaum y G. C. Shephard: Tilings and patterns. W. H. Freeman and Company, Nueva York,
1987.

[11] J. A. Infante y J. M. Rey: Software Sisdin para el estudio y visualización de sistemas dinámicos
discretos. http://www.mat.ucm.es/momat/software/Sisdin_setup_win32.exe.

[12] M. A. Martín, M. Morán y M. Reyes: Iniciación al caos. Educación matemática en secundaria, Edito-
rial Síntesis, Madrid, 1995.

[13] G. Rodríguez y A. J. Gil: Problemas de Astronomía. Editorial Complutense, Madrid, 1993.


[14] K. H. Rosen: Matemática discreta y sus aplicaciones. McGraw–Hill, Madrid, 2004.

[15] J. T. Sandefur: Discrete Dynamical Systems. Theory and Applications. Clarendon Press, Oxford, 1990.
[16] I. Stewart: ¿Juega Dios a los dados? Crítica, 1997.

Facultad de Matemáticas. Universidad Complutense de Madrid

También podría gustarte