http://www.unizar.es/ttm [email protected]
Congruencias
(5 de noviembre de 2004) Alberto Elduque
Departamento de Matem´aticas. Universidad de Zaragoza. [email protected]
Hoy vamos a aprender a sumar y multiplicar de otra manera. Es lo que se conoce como aritm´etica modular o aritm´etica del reloj. La idea es muy simple, vamos a contar como lo hacemos con las horas en un reloj. Luego aplicaremos esta aritm´etica al cifrado y descifrado de mensajes, para acabar con otras aplicaciones.
1. Aritm´etica del reloj
Todos sabemos sumar y multiplicar n´umeros enteros, pero en los relojes ocurren cosas raras. Si son las 7 y transcurren 8 horas, el reloj marcar´a las 3. Sabemos que 7 + 8 = 15, pero en un reloj cada vez que pasamos de 12 volvemos a empezar. Para indicar esta situaci´on, escribiremos
7 + 8 ≡ 3 (mod 12),
que se lee “7 m´as 8 es congruente con 3 m´odulo 12”.
Al sumar n´umeros del modo anterior, se dice que estamos haciendo aritm´etica del reloj o aritm´etica modular.
De hecho, en un reloj hay s´olo 12 horas, as´ı que basta usar los n´umeros 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 para designar las horas. El 12 pasa a ser el 0, el 13 el 1, ... Esto lo escribiremos as´ı:
12 ≡ 0 (mod 12), 13 ≡ 1 (mod 12), ...
De modo m´as general, diremos que dos n´umeros enteros a y b son congruentes m´odulo 12, y lo escribiremos
a ≡ b (mod 12),
si la diferencia a − b es un m´ultiplo de 12. En un reloj, dos n´umeros a y b, que sean congruentes m´odulo 12, representan la misma hora.
Ejercicio 1. Usa aritm´etica del reloj para calcular las sumas siguientes (el resultado debe de ser un n´umero entre 0 y 11):
3 + 5 ≡ (mod 12)
7 + 6 ≡ (mod 12)
11 + 7 ≡ (mod 12)
7 + 13 ≡ (mod 12)
9 + 14 ≡ (mod 12)
En aritm´etica del reloj podemos sumar, restar y multiplicar. Incluso se puede dividir por algunos n´umeros.
Ya tienes pr´actica para la suma. Por ejemplo, para sumar 7 y 9, empezamos en la hora 0, adelantamos 7 horas y luego otras 9. Esto da 16 = 12 + 4, luego el resultado es 4:
7 + 9 ≡ 4 (mod 12).
Para restar 7 y 9, comenzamos en 0 y primero adelantamos 7 horas para luego retrasar 9. Esto da −2 = 10 − 12, y el resultado es 10 (−2 ≡ 10 (mod 12)):
7 − 9 ≡ 10 (mod 12).
De otro modo, el signo menos nos dice que debemos retrasar el reloj. Ejercicio 2. Calcula, recordando que el resultado debe de ser un n´umero entre 0 y 11: 11 + 11 ≡ (mod 12) 11 + 11 + 11 + 11 + 11 ≡ (mod 12) 7 + 7 + 7 + 7 + 7 + 7 + 7 + 7 + 7 ≡ (mod 12) 7 − 11 ≡ (mod 12) 54 − 29 ≡ (mod 12) 1 − 9 ≡ (mod 12) −5 − 7 ≡ (mod 12)
La multiplicaci´on es una suma repetida, luego sabiendo sumar tam-bi´en sabes multiplicar (ya has hecho 11 × 5 y 7 × 9 en el ejercicio anterior). Pero puedes operar de otra manera. Si deseas calcular, en aritm´etica del reloj, 9 × 15, puedes primero hacer la multiplicaci´on normal: 9 × 15 = 135, ahora divides por 12 calculando el cociente y el resto: 135 = (12 × 11) + 3. Como dar 11 vueltas completas al reloj es como no hacer nada, nos queda
Pero todav´ıa lo podemos hacer m´as f´acilmente:
9 × 15 = 9 × (12 + 3) = (9 × 12) + (9 × 3)
y dar 9 vueltas completas al reloj es no hacer nada. Por tanto, 9 × 15 ≡ 9 × 3 (mod 12) y claro, 9 × 3 = 27 = (12 × 2) + 3 ≡ 3 (mod 12). Ejercicio 3. 7 × 6 ≡ (mod 12) 11 × 11 ≡ (mod 12) 73 ≡ (mod 12) 7 × (−5) ≡ (mod 12) (−5) × (−14) ≡ (mod 12)
La divisi´on es la operaci´on inversa de la multiplicaci´on. As´ı, si nos planteamos cu´anto vale 5 : 7 en la aritm´etica del reloj, lo que nos estamos planteando es encontrar un n´umero x, entre 0 y 11 tal que
x × 7 ≡ 5 (mod 12). Ejercicio 4. ¿Existe tal x? ¿Qu´e n´umero es?
Puesto que dividir por 7 equivale a multiplicar por el inverso de 7 (si existe):
Ejercicio 5. Resuelve la ecuaci´on 7 × y ≡ 1 (mod 12). ¿Qu´e otros n´umeros (entre 0 y 11) tienen tambi´en un “inverso m´odulo 12”?
Lo que hemos hecho hasta ahora con un reloj “normal” (congruencias m´odulo 12), lo podemos hacer con relojes que tengan otro n´umero de horas. Al fin y al cabo, nuestros antepasados (los babilonios) podr´ıan haber decidido contar el tiempo de otra manera. Todo lo anterior tiene perfecto sentido para otros relojes.
Ejercicio 6. 7 + 6 ≡ (mod 5) 32 − 3 ≡ (mod 15) 5 − 8 ≡ (mod 6) 5 × 14 ≡ (mod 7) 53 ≡ (mod 8)
Ejercicio 7. Haz las tablas de sumar y multiplicar m´odulo 7: + 0 1 2 3 4 5 6 0 1 2 3 4 5 6 × 0 1 2 3 4 5 6 0 1 2 3 4 5 6
Comprueba que todo n´umero 6= 0 tiene un inverso y, por tanto, puedes dividir por cualquier n´umero no nulo.
Ejercicio 8. Haz lo mismo m´odulo 6:
+ 0 1 2 3 4 5 0 1 2 3 4 5 × 0 1 2 3 4 5 0 1 2 3 4 5
¿Qu´e n´umeros tienen inverso? ¿Por qu´e ocurre esta diferencia entre la aritm´etica m´odulo 7 y la aritm´etica m´odulo 6?
2. Vamos a jugar a esp´ıas
Quiz´a todo lo anterior te haya parecido un juego, pero no es s´olo eso. De hecho tiene multitud de aplicaciones. Ahora nos conformaremos con hablar de una de ellas: el cifrado y descifrado de mensajes.
Esto ya se usaba durante el Imperio Romano. El emperador deseaba transmitir ´ordenes a sus legiones, pero no quer´ıa que el enemigo, que pod´ıa interceptar a los mensajeros, se enterara del contenido de las ´
ordenes.
Nosotros utilizaremos un m´etodo m´as complicado y seguro que el usado por los emperadores romanos, pero no tan sofisticado como los que se utilizan hoy en d´ıa, por ejemplo, cuando entramos en una p´agina segura en internet (las que comienzan con https://... y se usan siempre que se vayan a hacer compras o actividades bancarias a trav´es de la red). Estos sistemas m´as complejos tambi´en est´an basados en la aritm´etica del reloj.
Para simplificar, vamos a enviarnos mensajes que tengan s´olo letras may´usculas y espacios en blanco. Para ello, asignamos n´umeros a cada uno de estos s´ımbolos como sigue:
A B C D E F G H I J K L M
1 2 3 4 5 6 7 8 9 10 11 12 13
N O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26 0
(asignamos el n´umero 0 al espacio en blanco)
Trabajaremos en la aritm´etica m´odulo 27. Primero buscamos un n´umero sencillo a que tenga inverso m´odulo 27, por ejemplo a = 4 porque 4 × 7 = 28 ≡ 1 (mod 27); ahora tomamos otro n´umero b, por ejemplo b = 10. Con estos n´umeros a y b podemos dise˜nar lo que se conoce como un cifrado af´ın.
Imag´ınate que quieres enviarle a Juan el siguiente mensaje: HOLA JUAN
Seguimos los siguiente pasos para cifrar el mensaje:
(i) Traducimos nuestro mensaje en una secuencia de n´umeros, usan-do para ello la asignaci´on anterior:
HOLA JUAN −→ (8, 15, 12, 1, 0, 10, 21, 1, 14).
(ii) Transformamos cada n´umero x de la secuencia por el n´umero y entre 0 y 26 que verifica
(usaremos, como antes, a = 4 y b = 10): 8 7→ (4 × 8) + 10 = 42 ≡ 15 (mod 27) 15 7→ (4 × 15) + 10 = 70 ≡ 16 (mod 27) 12 7→ (4 × 12) + 10 = 58 ≡ 4 (mod 27) 1 7→ (4 × 1) + 10 = 14 ≡ 14 (mod 27) 0 7→ (4 × 0) + 10 = 10 ≡ 10 (mod 27) 10 7→ (4 × 10) + 10 = 50 ≡ 23 (mod 27) 21 7→ (4 × 21) + 10 = 94 ≡ 13 (mod 27) 1 7→ (4 × 1) + 10 = 14 ≡ 14 (mod 27) 14 7→ (4 × 14) + 10 = 66 ≡ 12 (mod 27)
obteniendo as´ı una nueva secuencia:
(8, 15, 12, 1, 0, 10, 21, 1, 14) −→ (15, 16, 4, 14, 10, 23, 13, 14, 12). (iii) Traducimos ahora nuestra nueva secuencia de n´umeros en
s´ım-bolos:
(15, 16, 4, 14, 10, 23, 13, 14, 12) −→ OPDNJWMNL y ´este es el mensaje que enviamos a Juan:
OPDNJWMNL
Si alguien intercepta nuestro mensaje se quedar´a muy sorprendido. Juan tiene que recorrer el camino inverso para descifrar el mensaje que le llega:
(i) Traduce los s´ımbolos a n´umeros:
OPDNJWMNL −→ (15, 16, 4, 14, 10, 23, 13, 14, 12).
(ii) Realiza, m´odulo 27, las operaciones inversas a cada n´umero: y 7→ (y − b) : a
Para ello es muy importante que nuestro a = 4 tenga inverso, que es 7, as´ı que dividir por a equivale a multiplicar por 7 (m´odulo 27): 15 7→ (15 − 10) × 7 = 35 ≡ 8 (mod 27) 16 7→ (16 − 10) × 7 = 42 ≡ 15 (mod 27) 4 7→ (4 − 10) × 7 = −42 ≡ 12 (mod 27) 14 7→ (14 − 10) × 7 = 28 ≡ 1 (mod 27) 10 7→ (10 − 10) × 7 = 0 ≡ 0 (mod 27) 23 7→ (23 − 10) × 7 = 91 ≡ 10 (mod 27) 13 7→ (13 − 10) × 7 = 21 ≡ 21 (mod 27) 14 7→ (14 − 10) × 7 = 28 ≡ 1 (mod 27) 12 7→ (12 − 10) × 7 = 14 ≡ 14 (mod 27)
obteniendo una nueva secuencia:
(iii) Y finalmente traduce estos n´umeros a letras: (8, 15, 12, 1, 0, 10, 21, 1, 14) −→ HOLA JUAN.
De este modo, Juan se entera del contenido de nuestro mensaje. Ejercicio 9. Agrupaos en grupos de 6 o 7 personas divididas en dos subgrupos, poneos de acuerdo en qu´e n´umeros a y b vais a utilizar, y enviaos mensajes cifrados de un subgrupo a otro.
Si deseamos incluir signos de ortograf´ıa y letras may´usculas y min´ us-culas, necesitaremos trabajar en aritm´etica m´odulo un n´umero mayor que 27 y el proceso se hace m´as lento, salvo que utilicemos un ordena-dor.
3. M´as congruencias
Hay muchas otras aplicaciones de las congruencias y la aritm´etica del reloj.
El NIF espa˜nol se obtiene a˜nadiendo una letra de control al DNI. Para hacerlo, dado un n´umero de DNI, por ejemplo el 17.003.989, se calcula el resto de dividir este n´umero por 23. Esto es, se calcula x entre 0 y 22 tal que
17003989 ≡ x (mod 23)
(piensa en un reloj de 23 horas). La letra que se asigna depende del resto de acuerdo a la tabla siguiente:
x = 0 1 2 3 4 5 6 7 8 9 10 11
letra: T R W A G M Y F P D X B
x = 12 13 14 15 16 17 18 19 20 21 22
letra: N J Z S Q V H L C K E
F´ıjate que no se usan las letras I, O ni U (en parte, porque pueden confundirse con n´umeros).
Ejercicio 10. ¿Qu´e letra corresponde al DNI 17.003.989? ¿Y al tuyo? Esta letra de control permite detectar errores. Imagina que al decir por tel´efono tu NIF te equivocas en uno de los n´umeros. La persona que lo recibe puede hacer el c´omputo anterior, darse cuenta de que la letra que le sale a ella no coincide con la que t´u le has dicho y pedirte que se lo vuelvas a decir.
Un proceso un poquito m´as complicado se utiliza para el c´odigo ISBN (International Standar Book Number) de los libros. Un ISBN consta de 10 d´ıgitos divididos en 4 partes de longitud variable: identificador de grupo (pa´ıs, ´area geogr´afica o ´area ling¨u´ıstica), de editor, de t´ıtulo y un d´ıgito de control. Una vez determinados los 9 primeros d´ıgitos, por ejemplo 0 8536 1072, se calcula el n´umero x entre 0 y 10 que verifique
(0 × 1) + (8 × 2) + (5 × 3) + (3 × 4) + (6 × 5)+
+ (1 × 6) + (0 × 7) + (7 × 8) + (2 × 9) ≡ x (mod 11) Si x no es 10, entonces el ´ultimo d´ıgito del ISBN es x. Si, por el contrario, x es 10, en lugar de un ´ultimo d´ıgito se a˜nade una letra X. Ejercicio 11. Calcula el ´ultimo d´ıgito del ISBN anterior. Busca en tu casa libros cuyo ISBN acabe en X (aproximadamente uno de cada 11 libros lo hace). Coge varios libros y comprueba que el ´ultimo d´ıgito (o letra) de su ISBN es correcto.
* * * * * *
Si no te asusta el ingl´es, hay muchas p´aginas web donde poder prac-ticar la aritm´etica del reloj. Puedes consultar, por ejemplo, las URL
http://www.math.csusb.edu/faculty/susan/
number bracelets/mod arith.html http://www.shodor.org/interactivate/lessons/clock.html http://www-math.cudenver.edu/ wcherowi/clockar.html http://www.wou.edu/ burtonl/arithclock.html
o muchas m´as que puedes encontrar con tu buscador favorito.
Soluciones de algunos ejercicios: 1: 8, 1, 6, 8, 11.
2: 10, 7, 3, 8, 1, 4, 0. 3: 6, 1, 7, 1, 10. 4: x = 11.
5: y = 7. Tienen inverso m´odulo 12 los n´umeros 1, 5, 7, 11. 6: 3, 14, 3, 0, 5.
10: C. 11: X.