Está en la página 1de 114

MATEMÁTICA DISCRETA

TEMA 4
Teoría de números. Aritmética finita y modular
Objetivos

• Concepto de divisor y múltiplo.


• Teorema de la división (o algoritmo de la división
entera).
• Representar un número en base b.
• Números primos.
• Máximo común divisor y mínimo común múltiplo.
• Algoritmo de Euclides.
• Congruencias y sus propiedades. Aplicaciones.

Tema 4. Teoría de números. Aritmética finita y modular 2


Contenido

Introducción.
1 División entera y divisibilidad.
2 Algoritmo de la numeración.
3 Números primos.
4 Máximo común divisor y mínimo común múltiplo.
5 Congruencia. Aritmética modular.
6 Aplicaciones de la teoría de números.

Tema 4. Teoría de números. Aritmética finita y modular 3


Introducción
La teoría de números estudia los números enteros y sus propiedades.
De ella se derivan importantes aplicaciones en el campo de la
informática, de ahí que la matemática discreta dedique un importante
capítulo a repasar los conceptos más importantes de esta teoría y a
profundizar en el desarrollo de sus aplicaciones.

La teoría de números ocupa una posición central entre la aritmética, el


álgebra y la geometría. Su primera elaboración como ciencia se debe al
gran matemático alemán Carl Friedrich Gauss (1777-1855), con su
famosa obra titulada Disquisitiones Arithmeticae, publicada en Leipzig
en el año 1801.

Tema 4. Teoría de números. Aritmética finita y modular 4


Introducción

Las ideas que se desarrollarán en este capítulo están basadas en la


noción de divisibilidad:

• En la divisibilidad se basa, por ejemplo, el concepto de número


primo, de importancia en criptología o estudio de mensajes
secretos. Un número primo es un entero mayor que 1 que es
divisible sólo entre 1 y entre sí mismo. Determinar si un número es
primo es importante en las aplicaciones a la criptología.

• Un importante teorema de la teoría de números, el Teorema


fundamental de la aritmética, establece que cualquier entero
positivo se puede expresar, de forma única, como producto de
números primos. La descomposición de enteros en producto de
primos también es importante en criptología.

Tema 4. Teoría de números. Aritmética finita y modular 5


Introducción

• La división de un número entero por otro entero positivo produce


un cociente y un resto. Trabajar con estos restos conduce a la
aritmética modular, ampliamente utilizada en la ciencia de la
computación y, particularmente, en encriptación de mensajes
(criptología).

• Las propiedades de la divisibilidad de los números enteros son


importantes para la informática porque gracias a ellas los números
pueden representar información. Es decir, los números pueden
representar a otras estructuras formales que contienen
información.

Pasemos, pues, a ver estos conceptos de la teoría de números.

Tema 4. Teoría de números. Aritmética finita y modular 6


1. División entera y divisibilidad
Definiciones:

1. Divisibilidad. La divisibilidad es la propiedad que tiene un número


entero de poder dividirse por otro número entero, dando como
resultado un número entero.
Si a y b son enteros, con a≠0, decimos que a divide a b (b es divisible
entre a) si existe un número entero c tal que b = ac. La notación 𝐚𝐚|𝐛𝐛
indica que a divide a b. Se escribirá a ł b cuando a no divida a b.

𝐛𝐛
Dicho c = 𝐚𝐚
si existe, es único.

La divisibilidad no relaciona todos los pares de enteros entre sí, de modo


que, dados a y b, siempre exista un número entero c tal que c = b / a.

Tema 4. Teoría de números. Aritmética finita y modular 7


1. División entera y divisibilidad

El siguiente teorema proporciona algunas propiedades básicas de la


divisibilidad de enteros:

TEOREMA 1. Sean a, b y c enteros. Entonces:


1. Si 𝐚𝐚|𝐛𝐛 y 𝐚𝐚|𝐜𝐜, entonces 𝐚𝐚|(𝐛𝐛 ± 𝐜𝐜).
2. Si 𝐚𝐚|𝐛𝐛, entonces 𝐚𝐚|𝐛𝐛𝐜𝐜 para todo entero c.
3. Si 𝐚𝐚|𝐛𝐛 y 𝐛𝐛|𝐜𝐜, entonces 𝐚𝐚|𝐜𝐜.

A partir de estas relaciones podemos deducir el siguiente corolario:

Corolario 1. Si a, b y c son enteros tales que 𝐚𝐚|𝐛𝐛 y 𝐚𝐚|𝐜𝐜, entonces


𝐚𝐚|(𝐦𝐦𝐛𝐛 + 𝐧𝐧𝐜𝐜) para cualesquiera m y n enteros.

Tema 4. Teoría de números. Aritmética finita y modular 8


1. División entera y divisibilidad

Ejercicio:

Demuestra que cada una de las partes del teorema 1 son verdaderas.

Tema 4. Teoría de números. Aritmética finita y modular 9


1. División entera y divisibilidad

2. Múltiplo y divisor de un número.

Sean a y b dos números enteros. Cuando a divide a b decimos que a


es un factor o divisor de b y que b es un múltiplo de a.

Por lo tanto, los productos de un número entero a por 1, 2, 3…


reciben el nombre de múltiplos de a (a es un submúltiplo de sus
múltiplos). Por extensión, también se considera como múltiplo de a
su producto por cero.

Indicando por c cualquier valor entero de los 0, 1, 2, 3,…, la expresión


general de los múltiplos de a será b = ac.

Se expresa que b es múltiplo de a escribiendo b = 𝐚𝐚.̇

Tema 4. Teoría de números. Aritmética finita y modular 10


1. División entera y divisibilidad

En la siguiente figura, los números dispuestos en línea indican qué


enteros son divisibles por el entero positivo d:

-3d -2d -d 0 d 2d 3d

Figura 1. Enteros divisibles por el entero positivo d.

3. Cociente exacto. Recibe el nombre de cociente exacto de dos


números enteros a y d (dividendo y divisor, respectivamente), con d > 0,
el número entero c cuyo producto por el divisor reproduce el
dividendo. La operación realizada para calcular el cociente exacto se
llama división exacta y se indica por a/d o a:d.

c = a/d → cd = a

Tema 4. Teoría de números. Aritmética finita y modular 11


1. División entera y divisibilidad

4. Cociente entero por defecto y por exceso. Sean a y d dos números


enteros no nulos, con d > 0. Sea c otro número entero tal que cumpla
la relación:
cd ≤ a < (c + 1) d
entonces, c y c + 1 reciben los nombres respectivos de cocientes
enteros por defecto y por exceso de la división de a (dividendo) entre
d (divisor).

5. Restos enteros por defecto y por exceso. Reciben los nombres


respectivos de restos enteros por defecto y por exceso, los números
naturales r y r’ definidos por las igualdades:

r = a – cd r’ = (c + 1) d – a = cd + d – a = d - r

Tema 4. Teoría de números. Aritmética finita y modular 12


1. División entera y divisibilidad

6. División entera. Se denomina división entera de dos números


enteros, a y d, con d > 0, aquella operación aritmética cuyo objetivo es
el cálculo de los cocientes y restos enteros.
Podemos garantizar que:

TEOREMA 2 – TEOREMA DE LA DIVISIÓN. Sean a y d dos números


enteros, con d > 0. Existen dos números enteros únicos c y r tales que:
a = dc + r 0 ≤ r < 𝐝𝐝
donde a es el dividendo, d el divisor, c el cociente entero y r el resto
entero.
Podemos encontrar la referencia a este teorema como algoritmo de la
división entera (o, simplemente, algoritmo de la división). A partir de
él, podemos expresar el cociente y el resto como:
c = a div d r = a mod d
Tema 4. Teoría de números. Aritmética finita y modular 13
1. División entera y divisibilidad

Ejercicios:
1. ¿Divide 17 a los números 68, 84, 357, 1001?
2. Demuestra que si a|b y b|a, donde a y b son enteros, entonces
a = b o a = -b.
3. Demuestra que si a, b y c son enteros tales que ac|bc y c ≠ 0,
entonces a|b.

4. ¿Cuál es el cociente c y el resto r cuando se divide


a) 27 entre 13? a) c=2 r=1
b) -27 entre 13? b) c = -3 r = 12
c) 27 entre -13? c) c = -2 r=1
d) -27 entre -13? d) c=3 r = 12
e) 0 entre 19? e) c=0 r=0
f) -1 entre 3? f) c = -1 r=2
Tema 4. Teoría de números. Aritmética finita y modular 14
2. Algoritmo de la numeración
Recibe el nombre de sistema de numeración el conjunto de reglas y
convenios mediante los cuales pueden representarse todas las
cantidades utilizando signos diversos. Sistemas conocidos son, entre
otros, el romano y el decimal. Este último, como vamos a ver, emplea el
principio del valor relativo de cada cifra dentro de una cantidad: una
cifra representa uno u otro valor según el lugar que ocupe.

El sistema decimal fue ideado en la India y traído a Europa por los


árabes en la Edad Media. Recibe el nombre de decimal por estar
fundamentado en el número diez.

Sistemas de numeración más modernos y que deben su importancia y


utilización a la aparición del computador son el binario, el octal y el
hexadecimal, basados, respectivamente, en los números dos, ocho y
dieciséis.
Tema 4. Teoría de números. Aritmética finita y modular 15
2. Algoritmo de la numeración

El sistema decimal, al igual que otros, es un sistema posicional basado,


como hemos dicho, en el número 10. Así, por ejemplo, la cantidad 426
puede escribirse:

426 = 4 · 100 + 2 · 10 + 6 = 4 · 102 + 2 · 101 + 6 · 100

mediante una suma de múltiplos de potencias de 10. El 4, por su


posición, indica unidades de cien, el 2 unidades de diez, etc.

En nuestra vida cotidiana utilizamos la notación decimal para expresar


números enteros. No obstante, a veces es conveniente usar otras bases
diferentes de 10. En particular, los ordenadores utilizan notación
binaria (con 2 como base) para realizar cálculos aritméticos y octal
(base 8) o hexadecimal (base 16) para expresar caracteres, como letras
o dígitos. De hecho, podemos usar cualquier entero positivo mayor que
1 como base para expresar los números enteros.
Tema 4. Teoría de números. Aritmética finita y modular 16
2.1 Representación de un número en base b
TEOREMA 1. Sean m y b dos enteros positivos, con b > 1. Entonces, m
tiene una descomposición única en función de la base b, de la forma
m = rnbn + rn-1bn-1 + … + r1b1 + r0b0
siendo ri enteros no negativos menores que b y rn ≠ 0.
(0 ≤ ri < b, con i de 0 hasta n),

Según este teorema, para representar un número en base b


necesitamos b símbolos (dígitos) diferentes correspondientes a los
números 0, 1, 2, …, b – 1. Ejemplos:
• b = 2 → 0, 1 (cada dígito es 0 o 1).
• b = 8 → 0, 1, 2, 3, 4, 5, 6, 7 (cada dígito varía de 0 a 7).
• b = 10 → 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (cada dígito varía de 0 a 9).
• b = 16 → 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (dígitos en b=16).
Tema 4. Teoría de números. Aritmética finita y modular 17
2.1 Representación de un número en base b

Definición 1. Sean m y b dos enteros positivos. Recibe el nombre de


sistema de representación posicional del número m en base b, la
sucesión de símbolos:
(rnrn-1…r1r0)b tales que ∀ i, 0 ≤ ri < b,

de forma que sea m = rnbn + rn-1bn-1 + … + r1b1 + r0b0.


El número b recibe el nombre de base, raíz o módulo.

Ejemplos:
• En base 2 (binario): (101011111)2.
• En base 8 (octal): (537)8.
• En base 10 (decimal): (351)10.
• En base 16 (hexadecimal): (15F)16.

Tema 4. Teoría de números. Aritmética finita y modular 18


2.1 Representación de un número en base b

Expresiones binarias. La elección de 2 como base da la expresión


binaria de los números enteros. En notación binaria, cada dígito es 0 o
1. La expresión binaria de un entero, por tanto, no es más que una
cadena de bits. Las expresiones binarias (y las expresiones
relacionadas que son variantes de la binaria) son las que utilizan
los ordenadores para representar y desarrollar la aritmética con
enteros. Veamos un ejemplo:

(101011111)2 = 1·28 + 0·27 + 1·26 + 0·25 + 1·24 + 1·23 + 1·22 + 1·21 + 1·20 = 351

Expresiones octales. Del mismo modo, tomando 8 como base


tenemos la expresión octal de los números enteros. En notación octal,
cada dígito varía de 0 a 7. Veamos un ejemplo:

(245)8 = 2·82 + 4·81 + 5·80 = 165

Tema 4. Teoría de números. Aritmética finita y modular 19


2.1 Representación de un número en base b

Expresiones hexadecimales. Dieciséis es otra base utilizada en


informática. La expresión en base 16 de un entero se llama expresión
hexadecimal. Para esta expresión se requieren 16 dígitos.
Generalmente, los dígitos hexadecimales usados son 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, A, B, C, D, E, F, donde las letras de la A a la F representan
respectivamente los números del 10 al 16 (en notación decimal).
Veamos un ejemplo:

(2AE0B)16 = 2·164 + 10·163 + 14·162 + 0·161 + 11·160 = (175627)10

Cada dígito hexadecimal se puede representar utilizando cuatro bits.


Por ejemplo, (1110 0101)2 = (E5)16, puesto que (1110)2 = (E)16 y
(0101)2 = (5)16. Los bytes, que son cadenas de bits de longitud ocho,
se pueden representar con dos dígitos hexadecimales.

Tema 4. Teoría de números. Aritmética finita y modular 20


2.1 Representación de un número en base b

Denotamos explícitamente la base en que está escrito un número


poniéndola como subíndice. Si escribimos un número sin subíndice y no
se deduce del contexto, supondremos que está escrito en base 10.

El teorema de la división (algoritmo de la división entera) justifica la


representación de números enteros en cualquier base b ≥ 2. En la
siguiente tabla podemos ver las representaciones hexadecimal, octal y
binaria de los números de 0 a 15:
Decimal Hexadecimal Octal Binario
0 0 0 0
1 1 1 1
2 2 2 10
3 3 3 11
4 4 4 100
5 5 5 101
6 6 6 110
7 7 7 111
8 8 10 1000
9 9 11 1001
10 A 12 1010
11 B 13 1011
12 C 14 1100
13 D 15 1101
14 E 16 1110
15 F 17 1111

Tema 4. Teoría de números. Aritmética finita y modular 21


2.1 Representación de un número en base b
Decimal Hexadecimal Octal Binario
0 0 0 0
1 1 1 1
2 2 2 10
3 3 3 11
4 4 4 100
5 5 5 101
6 6 6 110
7 7 7 111
8 8 10 1000
9 9 11 1001
10 A 12 1010
11 B 13 1011
12 C 14 1100
13 D 15 1101
14 E 16 1110
15 F 17 1111

Tema 4. Teoría de números. Aritmética finita y modular 22


2.1 Representación de un número en base b

Conversión de base. Describimos ahora un algoritmo para


obtener la expresión en base b de un entero n. Primero, se
divide n entre b para obtener el cociente y el resto, es decir,

n = bc0 + r0, 0 ≤ r0 < b

El resto, r0, es el dígito situado más a la derecha en la expresión


de n en base b. A continuación, se divide c0 entre b para obtener

c0 = bc1 + r1, 0 ≤ r1 < b

Siendo r1 el segundo dígito por la derecha en la expresión de n


en base b. Este proceso continúa, dividiendo sucesivamente el
nuevo cociente entre b, siendo los sucesivos restos obtenidos los
dígitos de la representación en base b de n. El proceso concluye
cuando obtenemos un cociente igual a cero.
Tema 4. Teoría de números. Aritmética finita y modular 23
2.1 Representación de un número en base b
Ejemplo: Representar (109)10 en binario. Para ello realizamos sucesivas
divisiones enteras entre 2,

109 / 2 = 54 r0 = 1 109 = 2 ∗ 54 + 1 20
54 / 2 = 27 r1 = 0 54 = 2 ∗ 27 + 0 21
27 / 2 = 13 r2 = 1 27 = 2 ∗ 13 + 1 22
13 / 2 = 6 r3 = 1 13 = 2 ∗ 6 + 1 23
6 /2= 3 r4 = 0 6 = 2∗ 3 +0 24
3 /2= 1 r5 = 1 3 = 2∗ 1 +1 25
1 /2= 0 r6 = 1 1 = 2∗ 0 +1 26

(109)10 = (1101101)2
Las conversiones entre expresiones binarias y hexadecimales son muy
sencillas porque cada dígito hexadecimal corresponde a un bloque de cuatro
dígitos binarios. Así, añadiendo un cero por la izquierda para completar el
segundo bloque, tenemos que: (1101101)2 = (0110 1101)2 = (6D)16 = 109.
Tema 4. Teoría de números. Aritmética finita y modular 24
2. Algoritmo de la numeración

Ejercicios:
1. Convierte los siguientes enteros de notación decimal a notación
binaria y viceversa:
a) 231 a) 11100111
b) 4532 b) 1 0001 1011 0100
c) 11 111 c) 31
d) 10 0000 0001 d) 513
2. Convierte los siguientes enteros de notación hexadecimal a
notación binaria y viceversa:
a) 80E a) 1000 0000 1110
b) 135AB b) 1 0011 0101 1010 1011
c) ABBA c) 1010 1011 1011 1010
d) DEFACED d) 1101 1110 1111 1010 1100 1110 1101
e) 1011 0111 1011 e) (B7B)16

Tema 4. Teoría de números. Aritmética finita y modular 25


3. Números primos
Todo entero positivo mayor que 1 es divisible al menos entre dos
enteros: entre él mismo y entre 1. Los enteros que tienen únicamente
estos dos factores enteros positivos se llaman primos.

Definición 1. Un entero positivo p mayor que 1 se llama primo si los


únicos divisores positivos de p son 1 y p. Un entero positivo mayor
que 1 que no es primo se denomina compuesto.

Observación: un entero n es compuesto si, y sólo si, existe un entero a


tal que a|n y 1 < a < n.

TEOREMA 1. La sucesión de números primos es infinita.

Los primeros números primos son: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,
37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, …

Tema 4. Teoría de números. Aritmética finita y modular 26


3. Números primos

El problema de la factorización de un número compuesto queda


resuelto mediante el Teorema fundamental de la aritmética:

TEOREMA 2 – TEOREMA FUNDAMENTAL DE LA ARITMÉTICA. Todo


entero positivo mayor que 1 se puede escribir de una única forma
como un primo o como el producto de dos o más primos en el que
los factores primos se escriben en orden no decreciente.

Ejemplos:
7000
7000 = 23 · 53 · 7
6936
6936 = 23 · 3 · 172

Tema 4. Teoría de números. Aritmética finita y modular 27


3. Números primos

Desgranando el Teorema fundamental de la aritmética tenemos que:


• Todo entero positivo compuesto admite, al menos, un divisor
primo distinto de 1.
• Todo entero positivo compuesto puede expresarse mediante el
producto de factores primos.
• La descomposición factorial de un entero positivo compuesto en
factores primos es única.
Primos relativos o primos entre sí (coprimos). Dados los enteros a y
b, se dice que son primos relativos o primos entre sí, cuando no
tienen ningún factor primo en común, salvo el 1.
Otro resultado interesante nos lo da el lema siguiente:
Lema 1. Si p es un primo y p|a1 a2 … an , donde cada ai es un entero,
entonces 𝐩𝐩|𝐚𝐚𝐢𝐢 para algún i.
Tema 4. Teoría de números. Aritmética finita y modular 28
3. Números primos

Ejercicios:
1. Obtén la descomposición en factores primos de cada uno de estos
enteros:
a) 88 a) 23 · 11
b) 126 b) 2 · 32 · 7
c) 729 c) 36
2. Demuestra que log 2 3 es un número irracional. Recuerda que un
número irracional es un número real que no se puede escribir
como el cociente de dos enteros.
3. Determina si los enteros de cada uno de estos conjuntos son
primos relativos dos a dos:
a) 11, 15, 19 a) Sí.
b) 14, 17, 85 b) No.
c) 12, 17, 31, 37 c) Sí.
d) 7, 8, 9, 11 d) Sí.
Tema 4. Teoría de números. Aritmética finita y modular 29
4. Máximo común divisor y mínimo común múltiplo

Divisor común. Sean a y b dos números enteros y sea d un entero no


nulo. Si d|a y d|b, se dice que d es un divisor común de a y de b.

Definición 1 – MÁXIMO COMÚN DIVISOR. Sean a y b enteros no


nulos. Sea d un divisor común de a y de b de tal forma que cualquier
otro divisor común sea menor que d. Entonces d recibe el nombre de
máximo común divisor de a y b. El máximo común divisor de a y b se
denota como mcd (a, b) = d y es único.

Primos relativos o primos entre sí (coprimos). Dados los enteros a y


b, se dice que son primos relativos o primos entre sí, cuando su
máximo común divisor es 1: mcd (a, b) = 1, ya que los primos
relativos no tienen ningún factor primo en común, salvo el 1.

Tema 4. Teoría de números. Aritmética finita y modular 30


4. Máximo común divisor y mínimo común múltiplo

TEOREMA 1. El máximo común divisor de varios números es el


producto de los factores primos comunes a todos ellos, tomando
cada uno con el menor de los exponentes con los que figura en los
números dados.

Ejemplo: calcular el máximo común divisor de 126 y 108.

126 = 2 · 32 · 7
108 = 22 · 33

mcd (126, 108) = 2 · 32 = 18

Tema 4. Teoría de números. Aritmética finita y modular 31


4. Máximo común divisor y mínimo común múltiplo

La factorización de un número se puede utilizar también para


obtener el mínimo común múltiplo de dos enteros.

Definición 2 – MÍNIMO COMÚN MÚLTIPLO. El mínimo común


múltiplo de los enteros positivos a y b es el menor entero positivo
que es divisible tanto entre a como entre b. El mínimo común
múltiplo de a y b se denota como mcm (a, b) y es único.

El siguiente teorema da la relación entre el máximo común divisor y


el mínimo común múltiplo de dos enteros.

TEOREMA 2. Sean a y b enteros positivos. Entonces,


ab = mcd (a, b) · mcm (a, b)

Tema 4. Teoría de números. Aritmética finita y modular 32


4. Máximo común divisor y mínimo común múltiplo

Ejercicios:
1. ¿Cuál es el mcd y el mcm de cada uno de estos pares de enteros?

a) 22 · 33 · 55 , 25 · 33 · 52
b) 17 , 1717
c) 41 · 43 · 53 , 41 · 43 · 53

a) mcd = 22 · 33 · 52 mcm = 25 · 33 · 55
b) mcd = 17 mcm = 1717
c) mcd = 41 · 43 · 53 mcm = 41 · 43 · 53
2. Comprueba que ab = mcd (a, b) · mcm (a, b) en los ejemplos
anteriores?
3. Si el producto de dos enteros es 273852711 y su máximo común
divisor es 23345, ¿cuál es su mínimo común múltiplo?
ab = mcd (a, b) · mcm (a, b) → mcm = 24 34 5 711
Tema 4. Teoría de números. Aritmética finita y modular 33
4.1 Algoritmo de Euclides
El algoritmo de Euclides es un método para el cálculo del mcd de dos
números. Fue desarrollado por el matemático de la Grecia clásica,
Euclides. Se basa en el siguiente resultado sobre el máximo común
divisor y el algoritmo de la división entera:

Lema 1. Sea a = bc + r, donde a, b, c y r son enteros. Entonces,


mcd (a, b) = mcd (b, r)

Al hacer el algoritmo, el mcd (a, b) será el último resto distinto de cero.


Los divisores comunes a los números a y b son todos los divisores de
su máximo común divisor, y sólo estos.
El algoritmo de Euclides permite demostrar que, dados dos números
enteros a y b, con a > b, existe el mcd entre a y b.
Tema 4. Teoría de números. Aritmética finita y modular 34
4.1 Algoritmo de Euclides

Ejemplo: calcular el mcd de 3258 y 1164 usando el algoritmo de


Euclides.

3258 = 2 ∗ 1164 + 930, mcd (3258, 1164) = mcd (1164, 930)


1164 = 1 ∗ 930 + 234, mcd(1164, 930) = mcd( 930, 234)
930 = 3 ∗ 234 + 228, mcd (930, 234) = mcd( 234, 228)
234 = 1 ∗ 228 + 6, mcd (234, 228) = mcd( 228, 6)
228 = 6 ∗ 38 + 0, mcd( 228, 6) = 6

Ejercicio: calcular el mcd de 2406 y 654 usando el algoritmo de


Euclides.

Tema 4. Teoría de números. Aritmética finita y modular 35


4.2 mcd como combinaciones lineales
Introducimos ahora un resultado fundamental que desempeña un
papel central en la teoría de números y sus aplicaciones.

TEOREMA 3 – TEOREMA DE BÉZOUT. Si a y b son enteros positivos,


entonces existen dos enteros m y n tales que mcd (a, b) = ma +nb,

Es decir, que el mcd (a, b) puede expresarse como combinación lineal


de los números a y b. Las combinaciones lineales para obtener el mcd
no son únicas. La ecuación mcd (a, b) = ma +nb recibe el nombre de
identidad de Bézout, y los números m y n coeficientes de Bézout.

Si a y b fueran primos entre sí, es decir mcd (a, b) = 1, en ese caso,


existirán dos números enteros m y n tales que:
ma + nb = 1
Tema 4. Teoría de números. Aritmética finita y modular 36
4.2 mcd como combinaciones lineales

Ejemplo: Hallar el mcd de 2406 y 654 y expresarlo en la forma m · 2406 + n · 654

d = mcd (2406, 654) = 6 m = 28, n = -103 6 = 28 · 2406 - 103 · 654

Tema 4. Teoría de números. Aritmética finita y modular 37


4.2 mcd como combinaciones lineales

Otro resultado de interés:

Lema 2. Si a, b y c son enteros positivos, tales que mcd (a,b) = 1 y


a|bc, entonces 𝐚𝐚|𝐜𝐜.

Tema 4. Teoría de números. Aritmética finita y modular 38


4.2 mcd como combinaciones lineales

Ejercicios:
1. Usa el algoritmo de Euclides para calcular:
a) mcd (12, 18) a) 6
b) mcd (111, 201) b) 3
c) mcd (1001, 1331) c) 11
d) mcd (12345, 54321) d) 3
e) mcd (1000, 5040) e) 40
f) mcd (9888, 6060) f) 12
2. Expresa el máximo común divisor de cada uno de estos pares de enteros
como combinación lineal de ellos (teorema de Bézout):
a) 10, 11 a) 1 = (-1) · 10 + 1 · 11
b) 21, 44 b) 1 = 21 · 21 + (-10) · 44
c) 36, 48 c) 12 = (-1) · 36 + 1 · 48
d) 34, 55 d) 1 = (-21) · 34 + 13 · 55
e) 213, 117 e) 3 = 11 · 213 + (-20) · 117
f) 0, 223 f) 223 = 1 · 0 + 1 · 223

Tema 4. Teoría de números. Aritmética finita y modular 39


5. Congruencia. Aritmética modular
Existen muchas situaciones, aplicaciones y problemas matemáticos en
los cuales sólo interesan los restos de las divisiones entre enteros. Por
ejemplo, cuando preguntamos qué hora será dentro de cincuenta
horas (en un reloj de veinticuatro horas), nos interesa solo el resto de
la división de 50 más la hora actual entre 24. Si fueran las 13h en este
momento, tendríamos que: (50 + 13) = 24·2 + 15, donde el resto (15)
nos indica que serán las tres de la tarde (15h).
Este tipo de cuestiones queda recogido en lo que se denomina
aritmética modular o estudio de los números congruentes. Estos
números simplifican los razonamientos aritméticos y facilitan la
comprensión de muchas propiedades de los números enteros.
La invención de la aritmética modular en 1801 se debe al matemático
alemán Karl Friedrich Gauss (1777-1855) cuando solo contaba con 24
años de edad.
Tema 4. Teoría de números. Aritmética finita y modular 40
5. Congruencia. Aritmética modular

Continuando con el ejemplo anterior, según el teorema de la división,


teníamos que: (50 + 13) = 63 = 24·2 + 15.
Y, si dividimos 15 entre 24, tenemos que:
15 = 24·0 + 15
Observamos que, trabajando en módulo m = 24, al dividir 63 entre 24
tenemos el mismo resto que si dividimos 15 entre 24. Por este
motivo, decimos que 63 y 15 son congruentes módulo 24, algo que
en aritmética modular expresamos como:

63 ≡ 15 (mod 24) 63 ≡ 15 (24) 63 ≡24 15


Observemos que se utiliza el signo ≡, que significa congruente con,
en lugar del signo = (igual a). Esta notación se utiliza para expresar
que dos enteros tienen el mismo resto cuando se dividen entre el
entero positivo m.
Tema 4. Teoría de números. Aritmética finita y modular 41
5. Congruencia. Aritmética modular

Función mod. De acuerdo con el teorema de la división, hemos visto


que todo número entero a puede expresarse, de modo único, respecto
de un divisor m, con m > 0, en la forma:
a = mc + r, con 0 ≤ r < m,

siendo c y r, respectivamente, el cociente y el resto de dicha


división. Es decir, existen c y r unívocamente determinados tales
que a = mc + r. A partir de ahora también diremos que r es el resto de a
según o respecto del módulo m.

La unicidad de r permite definir una función mod: Z × Z → N, que al


par a, m le hace corresponder dicho número r. Designaremos la
imagen de a, m mediante a mod m.

Así pues, dados los enteros a y m, con m > 0, a mod m = r, siendo r el


resto de la división de a entre m.
Tema 4. Teoría de números. Aritmética finita y modular 42
5. Congruencia. Aritmética modular

Ejemplo: hallar 25 mod 7.

Si dividimos 25 entre 7:

25 = 7·3 + 4

El resto es 4, luego 25 mod 7 = 4.

Tema 4. Teoría de números. Aritmética finita y modular 43


5. Congruencia. Aritmética modular

Definición 1 – Números congruentes. Si a y b son dos números enteros


y m es otro entero positivo, m > 0, se dice que a y b son congruentes
respecto del módulo m, cuando divididos por él producen el mismo
resto. La relación de congruencia se expresa como a ≡ b (mod m).

Cuando a y b no sean congruentes respecto del módulo m,


escribiremos a ≢ b (mod m). Se dice, entonces, que a y b son
incongruentes.

Ejemplo: dados a = 8 y b = 14, si tomamos m = 3, ¿podemos asegurar


que 8 ≡3 14?
Sí, porque las divisiones de 8 y 14 entre 3 producen el mismo resto 2.
¿y 8 ≡3 15?
No, porque los restos obtenidos en este caso son 2 y 0. Luego 8 no
es congruente con 15 módulo 3 (trabajando en módulo 3).
Tema 4. Teoría de números. Aritmética finita y modular 44
5. Congruencia. Aritmética modular

TEOREMA 1. Sean a y b dos números enteros y m otro entero


positivo. Entonces, a ≡ b (mod m) si, y solo si,
a mod m = b mod m.

Ejemplo:

25 ≡ 32 (mod 7) porque 25 mod 7 = 4 y 32 mod 7 = 4

17 ≡ −28 (mod 3) porque 17 mod 3 = 2 y −28 mod 3 = 2

Tema 4. Teoría de números. Aritmética finita y modular 45


5. Congruencia. Aritmética modular
De la definición anterior, se desprenden las siguientes propiedades:

1. Para todo a, a ≡ a (mod m), es decir, todo número es congruente


consigo mismo, respecto de cualquier módulo: propiedad reflexiva o
idéntica.

2. Si a ≡ b (mod m), entonces b ≡ a (mod m): propiedad simétrica o


recíproca.

3. Si a ≡ b (mod m) y b ≡ c (mod m), entonces a ≡ c (mod m):


propiedad transitiva de las congruencias.

Podemos concluir, pues, que la relación de congruencia es una


relación de equivalencia, porque cumple las propiedades: reflexiva,
simétrica y transitiva.

Tema 4. Teoría de números. Aritmética finita y modular 46


5. Congruencia. Aritmética modular

TEOREMA 2. La condición necesaria y suficiente para que dos


números a y b sean congruentes respecto del módulo m, es que su
diferencia sea un múltiplo de m, es decir, a – b = km, siendo k un
número entero; o lo que es igual, que m divida a la diferencia (a – b),
es decir, m │ (a – b).

𝐚𝐚−𝐛𝐛
También podemos expresarlo como: 𝐦𝐦 = k, siendo k un número entero.

Ejemplo: comprobar que 32 ≡ 25 (mod 7) y que 17 ≡ −28 (mod 3).

32 ≡ 25 (mod 7) porque 32 − 25 = 7, que es múltiplo de 7.

17 ≡ −28 (mod 3) porque 17 − (−28) = 45, que es múltiplo de 3.

Tema 4. Teoría de números. Aritmética finita y modular 47


5. Congruencia. Aritmética modular
De lo anterior deducimos el siguiente teorema:
TEOREMA 3. Sea m un entero positivo. Los enteros a y b son
congruentes módulo m si, y solo si, existe un número entero k tal que
a = b + km,
Si a ≡ b (mod m) ⇔ existe un entero k tal que a = b + km

Y de aquí concluimos que, si tenemos dos números enteros a y b,


tales que entre ellos hay una “distancia” que sea múltiplo de m,
entonces a y b son congruentes módulo m (a – b = km ⇔ a ≡ b (mod m)).
Por tanto, dado un número a, sumándole y restándole
reiteradamente m obtenemos la sucesión de los números
congruentes con a módulo m.

a-3m a-2m a-m a a+m a+2m a+3m

Tema 4. Teoría de números. Aritmética finita y modular 48


5. Congruencia. Aritmética modular

Ejemplos:

La sucesión de los números congruentes con 7 módulo 5 es:

…-18, -13, -8, -3, 2, 7, 12, 17, 22, 27, 32…

todos estos números son congruentes módulo 5.

La sucesión de los números congruentes con 10 módulo 3 es:

…-8, -5, -2, 1, 4, 7, 10, 13, 16, 19, 22, 25…

todos estos números son congruentes módulo 3.

Tema 4. Teoría de números. Aritmética finita y modular 49


5. Congruencia. Aritmética modular

Luego, para encontrar números congruentes x con otro número a


módulo m, procederemos de acuerdo con la expresión:

x = a + mk, con k ∈ Z

Ejemplo: encuentra números congruentes con 11 (mod 5).

A partir de la expresión x = 11 + 5k, dando valores a k obtendremos


números congruentes con el 11:

Si k = -1, entonces x = 6 Si k = 0, x = 11
Si k = -2, entonces x = 1 Si k = 1, x = 16
Si k = -3, entonces x = -4 Si k = 2, x = 21

es decir, el conjunto … , −4, 1, 6, 𝟏𝟏𝟏𝟏, 16, 21, … .

Tema 4. Teoría de números. Aritmética finita y modular 50


5. Congruencia. Aritmética modular

Ejercicios:
1. Sea m un entero positivo. Demuestra que a ≡ b (mod m) si
a mod m = b mod m.
2. Evalúa las siguientes expresiones:
a) 13 mod 3 a) 1
b) -97 mod 11 b) 2
c) 155 mod 19 c) 3
d) -221 mod 23 d) 9
3. Analiza si cada uno de estos enteros es o no congruente con 5
módulo 17:
a) 80 a) No.
b) 103 b) No.
c) -29 c) Sí.
d) -122 d) No.

Tema 4. Teoría de números. Aritmética finita y modular 51


5.1 Otras propiedades
1. Si dividimos dos números enteros a y m, con m > 0, y r es el resto
de dicha división, es decir, a = mc + r (siendo c el cociente), entonces
a es congruente con r módulo m, a ≡ r (mod m), y decimos que r es
el menor residuo (resto) no negativo de a módulo m. Esto es,
cualquier número a es congruente con su resto.

Según el algoritmo de la división entera: a = mc + r, luego 0 ≤ r < m


es decir, los valores de r estarán comprendidos entre 0 (incluido) y
𝐦𝐦 (no incluido). Dicho de otro modo, r tomará los valores
comprendidos en el conjunto 𝟎𝟎, 𝟏𝟏, 𝟐𝟐 … 𝐦𝐦 − 𝟏𝟏 . Dicho conjunto es el
conjunto de los menores residuos no negativos módulo m.

Tema 4. Teoría de números. Aritmética finita y modular 52


5.1 Otras propiedades

Para m = 4:

0/4 resto r = 0; 4/4 resto r = 0;

1/4 r = 1; 5/4 r = 1;

2/4 r = 2; 6/4 r = 2;

3/4 r = 3; 7/4 r = 3…

Para m = 4, el conjunto de los menores residuos no negativos es:

𝟎𝟎, 𝟏𝟏, 𝟐𝟐, 𝟑𝟑

Tema 4. Teoría de números. Aritmética finita y modular 53


5.1 Otras propiedades

2. Cualquier entero a es congruente módulo m con un único entero


del conjunto 𝟎𝟎, 𝟏𝟏, 𝟐𝟐 … 𝐦𝐦 − 𝟏𝟏 .

Ejemplo para m = 3 y a = 25:

El conjunto de los menores residuos no negativos módulo 3 será


𝟎𝟎, 𝟏𝟏, 𝟐𝟐 . Y tendremos que:

25 ≢ 0 (mod 3) 25 ≡ 1 (mod 3) 25≢ 2 (mod 3)

En el conjunto 𝟎𝟎, 𝟏𝟏, 𝟐𝟐 , 25 sólo es congruente módulo 3 con 1.

Tema 4. Teoría de números. Aritmética finita y modular 54


5.1 Otras propiedades

3. La congruencia a ≡ b (mod 1) es cierta para cualquier valor entero de


a y de b.

4. Si a ≡ c (mod m) y b ≡ c (mod m), entonces a ≡ b (mod m), es decir, si


dos números son congruentes con un tercero, los dos primeros también
son congruentes entre sí.

5. Si es a ≡ b (mod m) y d un entero tal que d│m, entonces se verifica


que a ≡ b (mod d).

Tema 4. Teoría de números. Aritmética finita y modular 55


5.1 Otras propiedades

6. Si dos números congruentes a y b y su módulo m se multiplican por un


número h, resulta otra congruencia, es decir, ah será congruente con bh
módulo mh:
ah ≡ bh (mod mh).

7. Si un número a es primo con m, todo b ≡ a (mod m) será también


primo con m.

Dados a = 10 y m = 7, al ser mcd (10, 7) = 1, a y m son primos entre sí.


Entonces, dado b = 17, como:

17 ≡ 10 (mod 7),

b = 17 es también primo con el módulo 7.

Tema 4. Teoría de números. Aritmética finita y modular 56


5.2 Clases de restos
Una relación de congruencia distribuye el conjunto infinito de los
números enteros Z en paquetes o clases. En general diremos que una
relación de congruencia módulo m particiona o distribuye los
números enteros en m conjuntos distintos o clases de equivalencia
indicadas por [0], [1], [2], …, [m – 1]. Con frecuencia, esas clases
también reciben la denominación de clases de restos (o residuos)
módulo m.

Una clase de restos consta de todos los enteros con el mismo resto
cuando se dividen entre m.

Para cada m, pues, hay m clases de restos y cada una de ellas


contiene exactamente uno de los enteros del conjunto de restos
posibles, es decir, en 0, 1, 2 … m − 1 .

Tema 4. Teoría de números. Aritmética finita y modular 57


5.2 Clases de restos

En términos generales, se dice que un subconjunto S de m enteros


a1 , a2 , … am del conjunto de los números enteros es un sistema de
restos completo módulo m si cada ai proviene de una clase de restos
distinta. En tal caso, cada ai se denomina representante de su clase de
equivalencia.

Ejemplo:

El subconjunto S = 0, 1, 2, 3 … m − 1 es un sistema completo de restos


módulo m.

El subconjunto S = 0, 1, 12, −2, 4 , ¿es un sistema completo de restos


módulo 5?

En efecto, pues se verifica que: 12 ≡ 2 (mod 5), -2 ≡ 3 (mod 5).

Tema 4. Teoría de números. Aritmética finita y modular 58


5.2 Clases de restos

Por tanto, los enteros desde 0 hasta m – 1 constituyen un sistema de


restos completo módulo m. De hecho, cualesquiera m enteros
consecutivos forman un sistema de restos completo módulo m.

Para que un entero cualquiera a sea divisible entre m, es necesario y


suficiente que a pertenezca a la clase de resto 0, [0], módulo m.

Definición 2. Dados varios números, se dice que forman un sistema de


números incongruentes respecto del módulo m, cuando los restos de la
división de cada uno de ellos entre m son todos distintos.

Tema 4. Teoría de números. Aritmética finita y modular 59


5.2 Clases de restos

La notación [x]m o simplemente [x] (también x�) se usa para indicar la


clase de restos (módulo m) que contiene los enteros que son
congruentes con x. En términos matemáticos,

x = a ∈ Z ∶ a ≡ x (mod m)

En consecuencia, las clases de restos pueden denotarse por

[0], [1], [2]… [m-1]

o con cualquier otra elección de enteros en un sistema de restos


completo. Normalmente, denotaremos la clase [x] mediante su menor
residuo no negativo, es decir, con valores comprendidos entre 0 y m-1.

Tema 4. Teoría de números. Aritmética finita y modular 60


5.2 Clases de restos

Ejercicio: indica las clases de restos módulo 6.

0 = … , −18, −12, −6, 0, 6, 12, 18 …

1 = … , −17, −11, −5, 1, 7, 13, 19 …

2 = … , −16, −10, −4, 2, 8, 14, 20 …

3 = … , −15, −9, −3, 3, 9, 15, 21 …

4 = … , −14, −8, −2, 4, 10, 16, 22 …

5 = … , −13, −7, −1, 5, 11, 17, 23 …

Tema 4. Teoría de números. Aritmética finita y modular 61


5.3 Aritmética modular o de congruencia
La congruencia módulo m es compatible con la suma y el producto de Z.

TEOREMA 4. Dados a, b, c, d y m enteros, con m > 0:


si a ≡m b y c ≡m d ⇒ (a + c) ≡m (b + d) y ac ≡m bd

Ejemplo: sean a = 7, b = 2, c = 11, d = 1 y m = 5.

Si 7 ≡5 2 y 11 ≡5 1 ⇒ (7 + 11) ≡5 (2 + 1) y 7·11 ≡5 2·1

18 ≡5 3 y 77 ≡5 2

Tema 4. Teoría de números. Aritmética finita y modular 62


5.3 Aritmética modular o de congruencia

Hay que tener cuidado al trabajar con las congruencias, pues algunas
propiedades que podemos esperar que sean ciertas, no son válidas. Por
ejemplo:

• Si ac ≡ bc (mod m), la congruencia a ≡ b (mod m) puede ser falsa.

• O si a ≡ b (mod m) y c ≡ d (mod m), la congruencia ac ≡ bd (mod m)


también puede ser falsa.

No obstante, sí que se cumple el siguiente teorema:

TEOREMA 5. Sean a, b, c y m enteros, con m > 0.


Si ac ≡ bc (mod m) y mcd (c, m) = 1, entonces:
a ≡ b (mod m).

Tema 4. Teoría de números. Aritmética finita y modular 63


5.3 Aritmética modular o de congruencia

El siguiente corolario muestra cómo encontrar los valores de la función


mod m en la suma y el producto de dos enteros a y b sustituyendo los
valores de esta función por cada uno de estos enteros.

Corolario 1. Sean a, b y m enteros, con m > 0. Entonces, se cumple


que:
(a + b) mod m = ((a mod m) + (b mod m)) mod m
y
a·b mod m = ((a mod m)·(b mod m)) mod m.

Ejemplo:
a = 4.982.744 a mod 5 = 4
b = 16.297.478 b mod 5 = 3
a + b = 21.280.222 (a + b) mod 5 = 7 mod 5 = 2
Tema 4. Teoría de números. Aritmética finita y modular 64
5.3 Aritmética modular o de congruencia

Aritmética de clases de restos

La suma y la multiplicación para las clases de restos (residuos) módulo


m se definen como:

[a] + [b] = [a + b] y [a] · [b] = [a · b]

Ejemplo: si consideramos las clases de restos módulo 6 del ejemplo


anterior, tendremos que

[2]+[3] = [5], [4]+[5] = [9] = [3], [2]·[2] = [4], [2]·[5] = [10] = [4]

Tema 4. Teoría de números. Aritmética finita y modular 65


5.3 Aritmética modular o de congruencia

Aritmética de clases de restos


Enteros módulo m, Zm
Los enteros módulo m, que se denotan Zm, se refieren al conjunto
0, 1, 2, 3 … m − 1 . Zm designa el conjunto de clases módulo m,

Zm = [0]m , [1]m , [2]m , [3]m … [m − 1]m


donde la adición y la multiplicación se definen por la aritmética módulo
m o, en otras palabras, las operaciones correspondientes para las clases
de restos. Podemos trasladar la aritmética de Z a Zm, definiendo en Zm
las operaciones +m y ·m.

Esto significa que no hay diferencia esencial entre Zm y la aritmética de


las clases de restos módulo m, de modo que se utilizan como
sinónimos.

Tema 4. Teoría de números. Aritmética finita y modular 66


5.3 Aritmética modular o de congruencia

Ejemplo: tablas de la suma y el producto en Z2,

+2 0 1 •2 0 1

0 0 1 0 0 0

1 1 0 1 0 1

Tema 4. Teoría de números. Aritmética finita y modular 67


5.3 Aritmética modular o de congruencia

Ejemplo: tablas de la suma y el producto en Z5,

+5 0 1 2 3 4 •5
0 1 2 3 4
0 0 1 2 3 4 0 0 0 0 0 0
1 1 2 3 4 0 1 0 1 2 3 4
2 2 3 4 0 1 2 0 2 4 1 3
3 3 4 0 1 2 3 0 3 1 4 2
4 4 0 1 2 3 4 0 4 3 2 1

Tema 4. Teoría de números. Aritmética finita y modular 68


5.3 Aritmética modular o de congruencia

Aritmética de clases de restos: divisores de cero en Zm

Si m no es primo, en Zm hay divisores de [0], es decir, existen clases [a],


[b] ≠ [0] tales que [a]·[b] = [0] en Zm.

Se cumple esta doble implicación:


[a] es divisor de [0] ⇔ mcd (a, m) ≠ 1

Para encontrar los divisores de [0], habrá que buscar los valores de a
mayores que 1 y menores que m, es decir, 𝟏𝟏 < 𝐚𝐚 ≤ 𝐦𝐦 − 𝟏𝟏, tales que
mcd (a, m) ≠ 1.

Si [a] y [b] son divisores de [0], el producto de cualquier número de la


clase [a] por cualquier número de la clase [b] dará como resultado un
número de la clase [0].

Tema 4. Teoría de números. Aritmética finita y modular 69


5.3 Aritmética modular o de congruencia

Ejemplo: encontrar los divisores de [0] en Z6,

Los divisores a estarán comprendidos entre 2 y 5, es decir:


1 < 𝐚𝐚 ≤ 6 – 1 = 5
mcd (2, 6) = 2 ≠ 1 [2]·[3] = [6] = [0] [2] es divisor de [0]
mcd (3, 6) = 3 ≠ 1 [3]·[2] = [6] = [0] [3] es divisor de [0]
mcd (4, 6) = 2 ≠ 1 [4]·[3] = [12] = [0] [4] es divisor de [0]
mcd (5, 6) = 1 luego [5] no es divisor de [0]
0 = … , −18, −12, −6, 0, 6, 12, 18 … 1 = … , −17, −11, −5, 1, 7, 13, 19 … 2 = … , −16, −10, −4, 2, 8, 14, 20 …

3 = … , −15, −9, −3, 3, 9, 15, 21 … 4 = … , −14, −8, −2, 4, 10, 16, 22 … 5 = … , −13, −7, −1, 5, 11, 17, 23 …

[2]·[3]: 8 · −3 = −24 ∈ 0 ; 14 · 9 = 126 ∈ 0 ; etc.


[4]·[3]: 16 · 9 = 144 ∈ 0 ; 22 · 15 = 330 ∈ 0 ; etc.

Tema 4. Teoría de números. Aritmética finita y modular 70


5.3 Aritmética modular o de congruencia

Aritmética de clases de restos: divisores de uno en Zm


Para cualquier m existen en Zm divisores de 1 o elementos inversibles. Un
elemento [a] ∈ Zm es inversible si existe [b] ∈ Zm tal que [a]·[b] = [1] en Zm.

Al elemento [b] se le llama inverso de [a]. En términos de congruencias, se


dice que b es el inverso de a módulo m y se verifica que ab ≡𝐦𝐦 𝟏𝟏.

Se cumple esta doble implicación:


[a] es inversible ⇔ mcd (a, m) = 1
Para encontrar los elementos inversibles, habrá que buscar los valores de a
comprendidos entre 1 y m – 1, es decir, 𝟏𝟏 ≤ 𝐚𝐚 ≤ 𝐦𝐦 − 𝟏𝟏 , tales que
mcd (a, m) = 1.

Si [b] es el inverso de [a] módulo m, el producto de cualquier número de la


clase [a] por cualquier número de la clase [b] dará como resultado un
número de la clase [1]. [b] es único para cada [a].

Tema 4. Teoría de números. Aritmética finita y modular 71


5.3 Aritmética modular o de congruencia

Ejemplo: encontrar los elementos inversibles en Z6,

Los elementos inversibles estarán comprendidos entre 1 y 5, es decir:


1 ≤ 𝐚𝐚 ≤ 6 – 1 = 5
mcd (1, 6) = 1 [1]·[1] = [1] [1] es elemento inversible y su inverso es [1].
mcd (2, 6) = 2 ≠ 1 luego [2] no es elemento inversible en Z6 y no tiene inverso en Z6.
mcd (3, 6) = 3 ≠ 1 luego [3] no es elemento inversible en Z6 y no tiene inverso en Z6.
mcd (4, 6) = 2 ≠ 1 luego [4] no es elemento inversible en Z6 y no tiene inverso en Z6.
mcd (5, 6) = 1 [5]·[5] = [25] = [1]; [5] es elemento inversible y su inverso es [5].

0 = … , −18, −12, −6, 0, 6, 12, 18 … 1 = … , −17, −11, −5, 1, 7, 13, 19 … 2 = … , −16, −10, −4, 2, 8, 14, 20 …
3 = … , −15, −9, −3, 3, 9, 15, 21 … 4 = … , −14, −8, −2, 4, 10, 16, 22 … 5 = … , −13, −7, −1, 5, 11, 17, 23 …

[1]·[1]: 7 · −5 = −35 ∈ 1 ; 7 · 13 = 91 ∈ 1 ; etc.


[5]·[5]: 11 · 17 = 187 ∈ 1 ; 5 · 23 = 115 ∈ 1 ; etc.

Tema 4. Teoría de números. Aritmética finita y modular 72


5.4 Resolviendo congruencias
Congruencias lineales
Una congruencia de la forma ax ≡ b (mod m), donde m es un entero
positivo, a y b son enteros y x una variable, se llama congruencia lineal.
Tales congruencias aparecen frecuentemente en teoría de números y en
sus aplicaciones.

TEOREMA 6. Sea la ecuación de congruencia ax ≡ b (mod m). Dicha


ecuación tiene:
• Solución única si mcd (a, m) = 1
• Un total de d = mcd (a, m) soluciones si d│b.
Indicando por x0 una solución, las d soluciones distintas respecto
del módulo m serán [x0 + (m/d) i], ∀ i = 0, 1, 2, …, d – 1.
• Ninguna solución si a ł b.

Tema 4. Teoría de números. Aritmética finita y modular 73


5.4 Resolviendo congruencias – congruencias lineales

En el caso de que a y m sean primos entre sí, mcd (a, m) =1, podemos
apoyarnos en el concepto de inverso para la resolución de estas
congruencias, teniendo en cuenta el siguiente teorema.

TEOREMA 7. Si a y m son primos relativos y m > 1, entonces existe un


inverso de a mod m. Este inverso es único módulo m.
(Esto es, hay un único entero positivo menor que m que es inverso de a
módulo m y cualquier otro inverso de a módulo m es congruente
módulo m con dicho inverso).

Veamos la demostración a continuación.

Tema 4. Teoría de números. Aritmética finita y modular 74


5.4 Resolviendo congruencias – congruencias lineales

Demostración:
Según el Teorema de Bézout, como mcd (a, m) = 1, hay dos enteros s y t
tales que: sa + tm = 1.

Esto explica que: sa + tm ≡ 1 (mod m).

Como tm ≡ 0 (mod m), se sigue que: sa ≡ 1 (mod m).

Por tanto, s es un inverso de a módulo m y es único módulo m.


Esta demostración describe un método para calcular el inverso de a
módulo m si a y m son primos entre sí: obtener el 1 como combinación
lineal de a y m (que puede hacerse mediante Bézout y el algoritmo de
Euclides); el coeficiente de a en esta combinación lineal es un inverso
de a módulo m. El inverso también puede hallarse mediante clases o
mediante el Teorema 2 de este apartado.
Tema 4. Teoría de números. Aritmética finita y modular 75
5.4 Resolviendo congruencias – congruencias lineales

¿Cómo podemos hallar todos los enteros x que satisfacen la


congruencia ax ≡ b (mod m)? El método que describiremos se sirve
para resolverlo del inverso de a, con tal de que exista. Según el teorema
anterior, a tendrá inverso siempre que a y m sean primos relativos, es
decir, mcd (a, m) = 1, y m > 1.

Ejemplo: ¿cuáles son las soluciones de la congruencia lineal 3x ≡ 4


(mod 7)

Primero habrá que hallar un inverso de 3 módulo 7. ¿Es posible? Sí, ya


que mcd (3, 7) = 1 (tres opciones: por clases, por Teorema 2 de este
apartado o por Bézout).

El inverso de 3 módulo 7 son los números de la clase [5]7.

5·3 ≡ 1 (mod 7), es decir, 15 ≡ 1 (mod 7)

Tema 4. Teoría de números. Aritmética finita y modular 76


5.4 Resolviendo congruencias – congruencias lineales

Multiplicando ambos elementos de la congruencia por el inverso:

5·3·x ≡ 5·4 (mod 7) ⇔ 15x ≡20 · 1 (mod 7)

Como 15 ≡ 1 (mod 7), de acuerdo con el teorema 4, tenemos que:

x ≡ 20 (mod 7)

Con lo que x será igual a 20 y todos los números congruentes con 20


módulo 7, es decir, x = … − 15, −8, −1, 6, 13, 20 … . La solución,
expresada de forma general, será:

x = 6 + 7k, siendo k cualquier número entero.

Tema 4. Teoría de números. Aritmética finita y modular 77


5.4 Resolviendo congruencias
Teorema chino del resto
En muchos contextos pueden aparecer sistemas de congruencias
lineales. Por ejemplo, si tuviéramos que encontrar un número tal que al
dividirlo entre 3 el resto fuera 2, al dividirlo entre 5 el resto fuera 3 y al
dividirlo entre 7 el resto fuera 2, podríamos plantearlo por medio de un
sistema de congruencias lineales, de la siguiente manera:

x ≡ 2 (mod 3)
x ≡ 3 (mod 5)
x ≡ 2 (mod 7)

Estos sistemas, entre otras aplicaciones, también son la base de un


método que se puede utilizar para hacer aritmética con números
grandes.

Tema 4. Teoría de números. Aritmética finita y modular 78


5.4 Resolviendo congruencias – Teorema chino del resto
El Teorema chino del resto, llamado así en honor a la tradición acumulada
en China sobre problemas relacionados con los sistemas de congruencias
lineales, afirma que cuando los módulos de un sistema de congruencias
lineales son primos relativos dos a dos, el sistema tiene una única solución
módulo el producto de los módulos.

TEOREMA 7 – TEOREMA CHINO DEL RESTO. Sean m1, m2, …, mn números


enteros positivos, primos dos a dos. El sistema:
x ≡ a1 (mod m1)
x ≡ a2 (mod m2)

x ≡ an (mod mn)

tiene una única solución módulo m = m1 · m2 · … · mn , es decir, existe


una solución x, 0 ≤ x < m, y cualquier otra será congruente módulo m
con ella.
Tema 4. Teoría de números. Aritmética finita y modular 79
5.4 Resolviendo congruencias – Teorema chino del resto
Para construir una solución común a todas las ecuaciones,
consideramos la suma:
x = a1M1y1 + a2M2y2 + … + anMnyn

Siendo:
• Mk = m / mk
• Mkyk ≡ 1 (mod mk), es decir, yk es inverso de Mk mod mk.

Resolver:
x ≡ 2 (mod 3)
x ≡ 3 (mod 5)
x ≡ 2 (mod 7)

Tema 4. Teoría de números. Aritmética finita y modular 80


5.4 Resolviendo congruencias – Teorema chino del resto
Resolución: cálculo de valores,
m = m1 · m2 · m3 = 3 · 5 · 7 = 105
M1 = m / 3 = 105 / 3 = 35
M2 = m / 5 = 105 / 5 = 21
M3 = m / 7 = 105 / 7 = 15

Calculamos a continuación los inversos de M1, M2, M3 respecto de los


módulos 3, 5 y 7:
Mkyk ≡ 1 (mod mk), siendo yk inverso de Mk mod mk.

35y1 ≡ 1 (mod 3) → y1 = 2 es el inverso de 35 módulo 3.


21y2 ≡ 1 (mod 5) → y2 = 1 es el inverso de 21 módulo 5.
15y3 ≡ 1 (mod 7) → y3 = 1 es el inverso de 15 módulo 7.

Tema 4. Teoría de números. Aritmética finita y modular 81


5.4 Resolviendo congruencias – Teorema chino del resto
Resolución: (continuación)
Consideramos la suma:

x = a1M1y1 + a2M2y2 + … + anMnyn


por tanto,
x = 2 · 35 · 2 + 3 · 21 · 1 + 2 · 15 · 1 = 233

La solución única módulo 105 es: x = 233 – (2 · 105) = 23


La solución general es:
x = 23 + 105k, siendo k cualquier número entero.

Tema 4. Teoría de números. Aritmética finita y modular 82


5.4 Resolviendo congruencias – Teorema chino del resto
Otro método de resolución, basado en la aritmética de congruencia, es
el siguiente: resolvemos el sistema analizando las ecuaciones una tras
otra,

x ≡ 2 (mod 3) → x = 3t + 2 [1]

sustituimos este valor en la segunda ecuación, x ≡ 3 (mod 5), y


despejamos t,

3t + 2 ≡ 3 (mod 5) → 3t + 2 ≡ 2 + 1 (mod 5) → 3t ≡ 1 (mod 5)

multiplicando por 2 ambos miembros:

2 · 3t ≡ 2 · 1 (mod 5) → 6t ≡ 2 · 1 (mod 5) → t ≡ 2 (mod 5) →

→ t = 5s + 2

Tema 4. Teoría de números. Aritmética finita y modular 83


5.4 Resolviendo congruencias – Teorema chino del resto
sustituimos este valor en [1] y obtenemos [2]

x = 3 (5s + 2) + 2 = 15s + 8 [2]

sustituimos este valor en la tercera ecuación, x ≡ 2 (mod 7), y


despejamos s,

15s + 8 ≡ 2 (mod 7) → 15s + 8 ≡ 1 + 1 (mod 7) → 15s ≡ 1 (mod 7)

como 15 ≡ 1 (mod 7), resulta que s ≡ 1 (mod 7), por tanto: s = 7k + 1

luego, sustituyendo en [2],

x = 15 · (7k + 1) + 8 = 105k + 23 o, lo que es igual,

x = 23 + 105k, siendo k cualquier número entero.

Tema 4. Teoría de números. Aritmética finita y modular 84


5. Congruencia. Aritmética modular

Ejercicios:
1. Calcula todas las soluciones del sistema de congruencias:
x ≡ 2 (mod 3)
x ≡ 1 (mod 4) Solución: x = 53 + 60k
x ≡ 3 (mod 5)

2. Para poder aplicar el teorema chino del resto, simplifica


convenientemente el sistema de congruencias dado y resuelve el
sistema resultante:
x ≡ 7 (mod 9) Solución:
x ≡ 4 (mod 12) Sistema resultante: x = 16 + 84k
x ≡ 16 (mod 21) Sistema original: x = 16 + 252k

Tema 4. Teoría de números. Aritmética finita y modular 85


6. Aplicaciones de la teoría de números
La teoría de números tiene aplicaciones en un amplio abanico de
áreas. Presentamos en esta sección algunas de estas aplicaciones:

• Funciones de dispersión (funciones de hash, en terminología


inglesa).
• Números pseudoaleatorios.
• Aritmética computacional basada en números grandes.
• Pseudoprimos.
• Sistemas de cifrado basados en aritmética modular (criptología).

Tema 4. Teoría de números. Aritmética finita y modular 86


6. Aplicaciones de la teoría de números

Funciones de dispersión (o funciones de hash)


Cualquier organización, institución, universidad, etc., posee en su
ordenador central información sobre cada uno de sus trabajadores,
proyectos, estudiantes, etc. ¿Cómo pueden asignarse posiciones de
memoria a los ficheros de cada uno de ellos de tal forma que los
datos se puedan descargar rápidamente? La solución a este
problema es elegir una función de dispersión apropiada.

Los ficheros se localizan utilizando una clave que identifica de


manera única cada uno de los ficheros. Por ejemplo, los ficheros se
identifican utilizando el documento nacional de identidad, el
pasaporte, el número de la seguridad social, etc.

Una función de dispersión h asigna una posición de memoria h(k) al


fichero que tiene a k como clave.

Tema 4. Teoría de números. Aritmética finita y modular 87


6. Aplicaciones de la teoría de números – funciones de dispersión

En la práctica, se pueden usar muchas funciones de dispersión. Una


de las más comunes es la función:
h(k) = k mod m
donde m es el número de posiciones de memoria existentes.

Las funciones de dispersión deben tener varias características:


• Ser fáciles de evaluar para que los ficheros se puedan localizar
fácilmente.
• Ser sobreyectivas, de tal forma que todas las posiciones de
memoria sean accesibles.

La función h(k) = k mod m cumple estas características pues para


hallar h(k) sólo necesitamos calcular el resto de dividir k entre m, y es
sobreyectiva.

Tema 4. Teoría de números. Aritmética finita y modular 88


6. Aplicaciones de la teoría de números – funciones de dispersión

Por ejemplo, cuando m = 111, el fichero del estudiante con DNI número
064212848 se asigna a la posición de memoria 14, ya que:

h(064212848) = 064212848 mod 111 = 14.


Como la función de dispersión no es inyectiva (puesto que hay más
claves posibles que posiciones de memoria), se podrá asignar más de un
fichero a una misma posición de memoria. Cuando esto sucede,
decimos que ha ocurrido una colisión. Una forma de resolver una
colisión es asignar la primera posición de memoria libre que sigue a la
que asigna la función de dispersión. Por ejemplo, al DNI número
107405723 le asignamos la posición 15, puesto que:

h(107405723) = 107405723 mod 111 = 14.


pero como esta posición ya está ocupada por el fichero con DNI número
064212848, asignamos la posición 15, que es la primera posición libre
de las que siguen a la 14.
Tema 4. Teoría de números. Aritmética finita y modular 89
5. Congruencia. Aritmética modular

Ejercicio:
1. ¿Qué posiciones de memoria asigna la función de dispersión
h(k) = k mod 101 a las fichas de los estudiantes con los números
de DNI siguientes?
a) 104578690 a) 58
b) 432222187 b) 60
c) 37201919 c) 84
d) 501338753 d) 3

Tema 4. Teoría de números. Aritmética finita y modular 90


6. Aplicaciones de la teoría de números
Números pseudoaleatorios
En las simulaciones con ordenador con frecuencia son necesarios los
números escogidos de forma aleatoria. Como la generación de números por
métodos sistemáticos nunca puede ser completamente aleatoria, estos
números se llaman números pseudoaleatorios.
El procedimiento utilizado más comúnmente para generar números
pseudoaleatorios es el método de congruencia lineal (método basado en la
función mod):
xn+1 = (axn + c) mod m
donde:
• m es el módulo en el que trabajamos.
• a es el multiplicador, 2 ≤ a < m.
• c es el incremento, 0 ≤ c < m.
• x0 es la semilla, 0 ≤ x0 < m.
Aplicando sucesivamente esta función, generamos una sucesión de números
pseudoaleatorios x0 , x1 , x2 … xn , con 0 ≤ xn < m para todo n.
Tema 4. Teoría de números. Aritmética finita y modular 91
6. Aplicaciones de la teoría de números - números pseudoaleatorios

Por ejemplo, la sucesión de números pseudoaleatorios generada


eligiendo m = 9, a = 7, c = 4 y x0 = 3 es la siguiente:

x1 = (7x0 + 4) mod 9 = (7·3 + 4) mod 9 = 25 mod 9 = 7,


x2 = (7x1 + 4) mod 9 = (7·7 + 4) mod 9 = 53 mod 9 = 8,
x3 = (7x2 + 4) mod 9 = 60 mod 9 = 6,
x4 = (7x3 + 4) mod 9 = 46 mod 9 = 1,
x5 = (7x4 + 4) mod 9 = 11 mod 9 = 2,
x6 = (7x5 + 4) mod 9 = 18 mod 9 = 0,
x7 = (7x6 + 4) mod 9 = 4 mod 9 = 4,
x8 = (7x7 + 4) mod 9 = 32 mod 9 = 5,
x9 = (7x8 + 4) mod 9 = 39 mod 9 = 3,

Como x9 = x0 y puesto que cada término solo depende del anterior, la


sucesión generada es:
3, 7, 8, 6, 1, 2, 0, 4, 5, 3, 7, 8, 6, 1, 2, 0, 4, 5, 3…
Tema 4. Teoría de números. Aritmética finita y modular 92
6. Aplicaciones de la teoría de números - números pseudoaleatorios

La mayoría de los ordenadores utilizan un generador de congruencia


lineal para producir números pseudoaleatorios.

A menudo se emplea un generador de congruencia lineal con


incremento c = 0. Tal generador es conocido como generador
multiplicativo puro.

Por ejemplo, el generador multiplicativo puro con módulo 231 – 1 y


multiplicador 75 = 16.807 se utiliza con mucha frecuencia. Con estos
valores, se generan 231 – 2 números antes de que aparezcan
repeticiones.

Tema 4. Teoría de números. Aritmética finita y modular 93


5. Congruencia. Aritmética modular

Ejercicio:
1. ¿Qué sucesión de números pseudoaleatorios se genera utilizando el
generador multiplicativo puro xn+1 = 3xn mod 11 con la semilla x0 = 2?
x1 = 3x0 mod 11 = 3·2 mod 11 = 6 mod 11 = 6
x2 = 3x1 mod 11 = 3·6 mod 11 = 18 mod 11 = 7
x3 = 3x2 mod 11 = 3·7 mod 11 = 21 mod 11 = 10
x4 = 3x3 mod 11 = 3·10 mod 11 = 30 mod 11 = 8
x5 = 3x4 mod 11 = 3·8 mod 11 = 24 mod 11 = 2
La sucesión buscada es: 2, 6, 7, 10, 8, 2…

Tema 4. Teoría de números. Aritmética finita y modular 94


6. Aplicaciones de la teoría de números

Aritmética computacional basada en números grandes

Supongamos que m1, m2, …, mn son enteros primos relativos dos a


dos y mayores o iguales que 2 y sea m su producto.

Según el Teorema chino del resto, se puede ver que un entero a, con
0 ≤ a < m, se representa de una única forma por una n-tupla
construida con los restos de las n divisiones de a entre los mi, con
i = 1, 2 … n. Es decir, a se puede expresar de manera única mediante:

(a mod m1, a mod m2, …, a mod mn)

Tema 4. Teoría de números. Aritmética finita y modular 95


6. Aplicaciones de la teoría de números - aritmética computacional
basada en números grandes

Ejemplo: ¿cuáles son los pares usados para representar los números
enteros no negativos menores que 12 cuando se representan
mediante pares ordenados en los que la primera componente es el
resto de la división del entero entre 3 y la segunda componente es el
resto de la división del entero entre 4?

0 = (0, 0) 4 = (1, 0) 8 = (2, 0)


1 = (1, 1) 5 = (2, 1) 9 = (0, 1)
2 = (2, 2) 6 = (0, 2) 10 = (1, 2)
3 = (0, 3) 7 = (1, 3) 11 = (2, 3).

Operando con ellos sin rebasar el número 11…

Tema 4. Teoría de números. Aritmética finita y modular 96


6. Aplicaciones de la teoría de números - aritmética computacional
basada en números grandes

Para hacer aritmética con números grandes, operamos componente


a componente sobre las n-tuplas que representan a estos enteros.
Hemos de tener en cuenta que m debe ser mayor que el resultado de
la operación aritmética que queremos realizar.

Una vez calculados los valores de cada componente, recobramos el


valor del resultado resolviendo un sistema de n congruencias módulo
mi, con i = 1, 2 … n.

Esta forma de hacer aritmética tiene varias propiedades de interés:


1. Se puede usar para hacer aritmética con enteros más grandes de
lo que puede manejar normalmente un ordenador.
2. Los cálculos respecto a los diferentes módulos se pueden realizar
en paralelo, aumentando la velocidad de realización de las
operaciones aritméticas.
Tema 4. Teoría de números. Aritmética finita y modular 97
6. Aplicaciones de la teoría de números - aritmética computacional
basada en números grandes

Ejemplo: supongamos que la aritmética con enteros menores que


100 en un procesador determinado es más rápida que con números
mayores que 100. Podemos restringir casi todas nuestras
operaciones aritméticas a los números menores que 100 si
representamos los enteros utilizando sus restos módulo números
primos relativos dos a dos menores que 100. Por ejemplo, podemos
utilizar los módulos 99, 98, 97, 95.

Según el Teorema chino del resto , todo entero no negativo menor


que 99 · 98 · 97 · 95 = 89.403.930 se puede representar de forma
única mediante los restos de las divisiones de este número entre los
cuatro módulos. Por ejemplo:
123.684 = (33, 8, 9, 89)
413.456 = (32, 92, 42, 16)

Tema 4. Teoría de números. Aritmética finita y modular 98


6. Aplicaciones de la teoría de números - aritmética computacional
basada en números grandes

(continuación) Para calcular la suma de ambos números, trabajamos


con las 4-tuplas en vez de con estos dos números directamente.
Sumamos las 4-tuplas componente a componente y reducimos cada
componente respecto a su módulo correspondiente. Así, llegamos a:

(33, 8, 9, 89) + (32, 92, 42, 16) = (65, 100, 51, 105) = (65, 2, 51, 10)

Para saber cuál es el entero representado por (65, 2, 51, 10),


necesitamos resolver el sistema de congruencias:
x ≡ 65 (mod 99)
x ≡ 2 (mod 98)
x ≡ 51 (mod 97)
x ≡ 10 (mod 95)

Tema 4. Teoría de números. Aritmética finita y modular 99


6. Aplicaciones de la teoría de números - aritmética computacional
basada en números grandes

(continuación) Se puede demostrar que 537.140 es la única solución


no negativa de este sistema menor que 89.403.930. Por tanto,
537.140 es la suma.

Observa que tenemos que hacer aritmética con números mayores


que 100 sólo para recuperar el entero representado por la 4-tupla
(65, 2, 51, 10).

Tema 4. Teoría de números. Aritmética finita y modular 100


5. Congruencia. Aritmética modular

Ejercicio:
1. Expresa cada entero no negativo a menor que 15 usando los pares (a mod 3,
a mod 5).

0 = (0, 0) 5 = (2, 0) 10 = (1, 0)


1 = (1, 1) 6 = (0, 1) 11 = (2, 1)
2 = (2, 2) 7 = (1, 2) 12 = (0, 2)
3 = (0, 3) 8 = (2, 3) 13 = (1, 3)
4 = (1, 4) 9 = (0, 4) 14 = (2, 4)

Opera con ellos sin rebasar el número 14.

Tema 4. Teoría de números. Aritmética finita y modular 101


6. Aplicaciones de la teoría de números

Pseudoprimos
En la búsqueda de métodos eficientes para determinar si un número
n es primo, cuestión de gran interés en matemáticas y en ciencias de
la computación, algunos matemáticos chinos antiguos creían que n
era primo si, y solo si,
2n-1 ≡ 1 (mod n)
porque:
• Primero, observaron que esta congruencia se cumplía siempre
que n es primo (aunque no habían probado con todos los primos).
• Segundo, nunca llegaron a encontrar un entero compuesto n para
el cual se verificase la congruencia.

Tenían razón al pensar que la congruencia se cumple siempre que n


es primo, pero no tenían razón al concluir que n es necesariamente
primo si se cumple la congruencia.
Tema 4. Teoría de números. Aritmética finita y modular 102
6. Aplicaciones de la teoría de números – pseudoprimos

El gran matemático francés Pierre de Fermat (1601-1665) demostró


que la congruencia es cierta cuando n es primo. Fermat demostró el
siguiente y más general resultado:

TEOREMA 1 – PEQUEÑO TEOREMA DE FERMAT. Si p es un número


primo, entonces:
Si a es cualquier entero: ap ≡ a (mod p)

Si a es un entero no divisible entre p: ap-1 ≡ 1 (mod p)

Ejemplo:

p=7 ⇒ a6 ≡ 1 (mod 7), siendo a = 1, 2, 3, 4, 5, 6

p = 11 ⇒ a10 ≡ 1 (mod 11), siendo a = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Tema 4. Teoría de números. Aritmética finita y modular 103


6. Aplicaciones de la teoría de números – pseudoprimos

Desafortunadamente, hay enteros compuestos n tal que 2n-1 ≡ 1


(mod n). Estos enteros se llaman pseudoprimos para la base 2.
Podemos utilizar otro entero distinto de 2 como base cuando
estudiamos los pseudoprimos. Así, tenemos la siguiente definición:

Definición 1. Sea b un entero positivo. Si n es un entero positivo


compuesto y bn-1 ≡ 1 (mod n), entonces n se dice que es un
pseudoprimo para la base b.

Si n satisface estas congruencias, será primo o pseudoprimo para


todas las bases utilizadas; si n no satisface alguna de estas
congruencias, es compuesto.
Aunque no tengamos en la actualidad ningún test de primalidad que
nos asegure que un número es primo, con este y otros métodos, al
menos, podemos ir acotando el conjunto.
Tema 4. Teoría de números. Aritmética finita y modular 104
6. Aplicaciones de la teoría de números
Sistemas de cifrado basados en aritmética modular
Una de las aplicaciones más importantes de las congruencias está
relacionada con la criptología, que es el estudio de los mensajes
secretos.

Uno de los primeros usos conocidos de la criptología se debe a Julio


César. Construía mensajes secretos moviendo la posición de cada letra
tres posiciones hacia delante en el alfabeto (enviando las tres últimas
del alfabeto a las tres primeras). Por ejemplo, usando este esquema, la
letra B se envía a la E y la X a la A. Este es un ejemplo de codificación o
cifrado, esto es, el proceso de construir un mensaje secreto.

Para expresar matemáticamente el proceso de cifrado de César, primero


se reemplaza cada letra por un entero de 0 a 26, basada en su posición
en el alfabeto español sin contar la letra ch. Por ejemplo, se reemplaza A
por 0… K por 10… Z por 26.

Tema 4. Teoría de números. Aritmética finita y modular 105


6. Aplicaciones de la teoría de números - sistemas de cifrado basados en
aritmética modular
El método de cifrado de César se puede representar por la función f
que asigna a un entero no negativo p, con p ≤ 26, el entero f(p) del
conjunto 0, 1, 2 … 26 , con:
f(p) = (p + 3) mod 27

En la versión cifrada del mensaje, la letra representada por p se


reemplaza por (p + 3) mod 27.
Para recuperar el mensaje original se usa la función f-1, es decir, la
inversa de f:
f-1 (p) = (p - 3) mod 27
En otras palabras, para obtener el mensaje original, cada letra
“retrocede” tres posiciones en el alfabeto. Este proceso de obtención
del mensaje original a partir del codificado se llama descodificación o
descifrado.
Tema 4. Teoría de números. Aritmética finita y modular 106
6. Aplicaciones de la teoría de números - sistemas de cifrado basados en
aritmética modular
Este sistema se conoce con el nombre de cifrado por traslación o
desplazamiento. Una de las maneras en que se puede generalizar
dicho sistema es desplazando un número k:
• Codificación o cifrado f(p) = (p + k) mod 27
• Descodificación o descifrado f-1 (p) = (p - k) mod 27

Obviamente, el cifrado por traslación no tiene un nivel de seguridad


alto. Este método se puede mejorar de varias formas. Una que
aumenta ligeramente la seguridad es el llamado cifrado afín que
viene representado por la siguiente función:
f(p) = (ap + b) mod 27
donde a y b son enteros, elegidos de forma que f sea una biyección.

Tema 4. Teoría de números. Aritmética finita y modular 107


5. Congruencia. Aritmética modular

Ejercicios:
1. Cifra el mensaje “NO PASAR” traduciendo las letras a números,
aplicando la función de cifrado dada y pasando los números
obtenidos a letras (utiliza el alfabeto español de 27 letras,
suprimiendo la letra ch).
a) f(p) = (p+3) mod 27 a) PR SDVDU
b) f(p) = (p+13) mod 27 b) ZB CNFNE
c) f(p) = (3p+7) mod 27 c) SY BHKHE

2. Descifra estos mensaje, que han sido codificados utilizando el


cifrado de César y el alfabeto de 26 letras, el comúnmente
utilizado en informática (las 28 del español sin la ch ni la ñ).
a) EOXH MHDQV a) BLUE JEANS
b) WHVW WRGDB b) TEST TODAY
c) HDW GLP VXP c) EAT DIM SUM

Tema 4. Teoría de números. Aritmética finita y modular 108


6. Aplicaciones de la teoría de números - sistemas de cifrado basados en
aritmética modular
Estos tipos de codificaciones son vulnerables a ataques basados en la
frecuencia de aparición de las letras en el mensaje. El cifrado por
traslación o el cifrado afín son ejemplos de criptosistemas de clave
privada. Cuando se utiliza un criptosistema de clave privada, un par de
personas que desean comunicarse en secreto deben compartir una clave.
Como toda persona que conozca la clave puede tanto cifrar como descifrar
mensajes con facilidad, estas dos personas necesitan intercambiar la clave
de forma segura.

Otros métodos, más sofisticados, se basan en la sustitución de bloques de


letras por otros bloques. Hay técnicas basadas en aritmética modular para
cifrar bloques de letras.

En 1976, tres investigadores del Instituto de Tecnología de Massachusetts


–Ronald Rivest, Adi Shamir y Leonard Adleman- presentaron un
criptosistema de clave pública, conocido como sistema RSA, cuyo nombre
proviene de las iniciales de los apellidos de sus inventores.
Tema 4. Teoría de números. Aritmética finita y modular 109
6. Aplicaciones de la teoría de números - sistemas de cifrado basados en
aritmética modular
Cifrado RSA: en el método de cifrado RSA, los mensajes se transforman en
sucesiones de enteros. Esto puede hacerse cambiando cada letra por un
entero, como en el cifrado de César. Estos enteros se agrupan para formar
enteros más grandes, representado cada uno por un bloque de letras. El
proceso de cifrado se desarrolla transformando el entero m, que representa
el mensaje original, en un entero c, que representa el mensaje codificado,
usando la función:
c ≡ me (mod n)
donde:
• n = pq, siendo p y q dos primos grandes (del orden de, al menos,
300 dígitos cada uno).
• El exponente e es un primo relativo con (p – 1) · (q – 1).

El producto de estos dos primos n = pq, de unos 600 dígitos o más, no se


puede factorizar en un tiempo razonable. Esta es una razón importante de
por qué el proceso de descifrado no se puede hacer a una velocidad
razonable sin una clave de descifrado independiente.
Tema 4. Teoría de números. Aritmética finita y modular 110
6. Aplicaciones de la teoría de números - sistemas de cifrado basados en
aritmética modular
Descifrado RSA: el mensaje original se puede recuperar con rapidez cuando
se conoce la clave de descifrado d, un inverso de e módulo (p – 1)(q – 1).
Aplicando, además del concepto de inverso, el Pequeño Teorema de Fermat
y el Teorema chino del resto, llegamos a:
cd ≡ m (mod pq)

Y para descifrar el mensaje cifrado aplicaríamos:


w = cd mod pq
El criptosistema RSA es adecuado para la criptografía de clave pública
porque cuando conocemos la factorización del módulo n, esto es, cuando
conocemos p y q, podemos utilizar el algoritmo de Euclides para encontrar
con rapidez los coeficientes de Bézout y obtener un exponente d inverso de
e módulo (p – 1)(q – 1). Esto nos permite descifrar mensajes enviados
usando nuestra clave. Sin embargo, no se conocen métodos para descifrar
mensajes que no hagan uso de la factorización de n o que no conduzcan a la
factorización de n.
Tema 4. Teoría de números. Aritmética finita y modular 111
6. Aplicaciones de la teoría de números - sistemas de cifrado basados en
aritmética modular
La factorización de un número se considera un problema difícil, al contrario
que el problema de hallar dos primos de gran tamaño p y q, lo cual se
puede hacer rápidamente. El algoritmo de factorización más eficiente que
se conoce (en el año 2017) requiere billones de años para factorizar un
número entero de 600 dígitos. Consecuentemente, cuando p y q son primos
de 300 dígitos cada uno, los mensajes cifrados usando n = pq como módulo
no se pueden descifrar en un tiempo razonable, a no ser que se conozcan
los primos p y q por separado.

Factorizar números enteros de manera eficiente es un área de investigación


especialmente activo. Cuando se descubren nuevas técnicas de
factorización, es necesario aumentar el tamaño de los números primos para
asegurar la privacidad de un mensaje.

El método RSA está muy extendido en la actualidad y su uso va en aumento.


No obstante, los criptosistemas más utilizados son los de clave privada. Hay
aplicaciones que utilizan ambos sistemas.

Tema 4. Teoría de números. Aritmética finita y modular 112


Bibliografía
― Matemática discreta, F. García Merayo, Paraninfo, 3ª ed., Madrid,
2015.

― Matemáticas discretas, S. Lipschutz, M. Lipson, McGraw Hill, 3ª


ed., México, 2009.

― Matemática discreta y lógica matemática, M.T. Hortalá, J. Leach, M.


Rodríguez, Ed. Complutense, 2008, 3ª ed., Capítulo 1.

― Matemática discreta y sus aplicaciones, K. H. Rosen, McGraw Hill,


5ª ed., Madrid, 2004, y 8ª ed., USA, 2019.

Tema 4. Teoría de números. Aritmética finita y modular 113

También podría gustarte