Inicio2026El resto que detecta el error: aritmética modular en el DNI, el...

El resto que detecta el error: aritmética modular en el DNI, el IBAN y el código de barras

FacebooktwitterpinterestlinkedinmailFacebooktwitterpinterestlinkedinmail

Introducción

Un número que se comprueba a sí mismo. La idea suena a paradoja, pero la usamos decenas de veces al día sin advertirlo. Cuando tecleamos el número de una cuenta bancaria, escaneamos un producto en el supermercado o rellenamos un formulario con el DNI, una parte de esos códigos no es información: es un guardián. La última letra del DNI, el último dígito del código de barras o los dos dígitos que siguen a las siglas ES en un IBAN se calculan a partir del resto de las cifras, de modo que el sistema pueda avisar si nos hemos equivocado al copiarlas.

El mecanismo que hace posible esa vigilancia es humilde: un resto. La misma aritmética modular que aparece en el currículo de 3º y 4º de ESO, cuando se trabajan la divisibilidad, el resto de una división y las primeras congruencias. Y ahí reside un obstáculo didáctico conocido: el alumnado suele encontrarse el resto como el sobrante de una división, un residuo sin función aparente, y se pregunta para qué sirve. Los dígitos de control ofrecen una respuesta tangible, porque el resto deja de ser un desecho para convertirse en el corazón del método, y además es verificable: cada estudiante puede tomar su propio DNI y comprobar que la letra encaja.

Este artículo recorre esa idea de menor a mayor complejidad. Parte del caso más transparente, la letra del DNI, alcanza los sistemas ponderados del código de barras, el IBAN y el ISBN, y se cierra examinando qué errores detecta el método, cuáles se le escapan y por qué la elección del módulo es, en el fondo, una decisión de ingeniería.

El resto y la congruencia como detectores de errores

Dos números enteros son congruentes módulo  cuando dejan el mismo resto al dividirlos entre . Se escribe  (Rosen, 2004), y esta relación, que el alumnado empieza a manejar de forma intuitiva con la divisibilidad, es toda la maquinaria que necesitamos.

La idea de un dígito de control es sencilla: a un número de datos se le añade una cifra (o una letra) calculada de modo que el código completo cumpla una congruencia conocida, casi siempre que sea múltiplo de un módulo fijo (Kirtland, 2001). Para comprobar el código basta con rehacer la cuenta: si la congruencia se cumple, el número es coherente; si no, hay un error seguro.

Conviene distinguir dos familias. En la primera, la más transparente, el control es directamente el resto del número entre el módulo; es el caso de la letra del DNI. En la segunda, cada posición del número pesa de manera distinta antes de sumar y tomar el módulo; así funcionan el código de barras, el IBAN y el ISBN. En ambas, el fundamento es el mismo: un error de transcripción altera el número en una cantidad , y el error se detecta siempre que  no sea múltiplo del módulo. Todo el diseño consiste, entonces, en elegir el módulo y los pesos de forma que los errores que de verdad cometen las personas produzcan un  que nunca sea múltiplo del módulo. Los dos errores humanos más frecuentes al copiar un número son equivocar una sola cifra y trasponer dos cifras contiguas, y son precisamente esos los que estos sistemas persiguen.

La letra del DNI: el módulo 23 paso a paso

El caso más limpio es el documento de identidad. La letra final no aporta información: se calcula a partir de las ocho cifras del número. El procedimiento, recogido por el Ministerio del Interior (s.f.) y amparado en el Real Decreto 255/2025, es exactamente una división con resto. Se toma el número, se divide entre 23 y el resto, que va de 0 a 22, selecciona una letra en esta tabla:

resto 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
resto 12 13 14 15 16 17 18 19 20 21 22
letra N J Z S Q V H L C K E

 

Tomemos el número 12345678. Al dividirlo entre 23 se obtiene cociente 536768 y resto 14, porque 23 x 536768 = 12345664 y 12345678 – 12345664 = 14. El resto 14 corresponde a la letra Z, de modo que el documento completo es 12345678 – Z. Cualquiera puede repetir la operación con su propio DNI y comprobar que la letra coincide: ese acto de verificación, tan simple, es lo que da sentido tangible al resto.

La elección del 23 no es casual. Es un número primo, y las 23 letras de la tabla se obtienen descartando las que se confunden con cifras u otras letras (la I con el 1, la O con el 0, la U con la V, y la Ñ). Que el módulo sea primo tiene además una consecuencia que veremos más adelante: refuerza la capacidad de detección. De momento basta observar que si se equivoca una sola cifra, el número cambia en una cantidad que nunca es múltiplo de 23, así que la letra siempre cambia y el error se detecta. Para el NIE de personas extranjeras, la letra inicial X, Y o Z se sustituye por 0, 1 o 2 antes de aplicar el mismo cálculo.

Figura 1: Cálculo de la letra de control del DNI a partir del resto módulo 23 (elaboración propia).

 

IBAN, código de barras e ISBN: el mismo principio, otros módulos y pesos

En cuanto el número es más largo, un solo resto se queda corto y aparece la segunda familia: cada posición se multiplica por un peso antes de sumar.

El código de barras (EAN-13)

Los productos llevan trece cifras; la última es el control. Las doce primeras se multiplican por pesos que alternan 1 y 3 (la primera por 1, la segunda por 3, la tercera por 1, y así sucesivamente), se suman y se toma el resto entre 10. El dígito de control es el que hace que el total, incluido él, sea múltiplo de 10 (GS1, s.f.):

donde S es la suma ponderada de las doce primeras cifras. Tomemos el código que aparece en la fotografía. Sus doce primeras cifras son 843545815688 y su suma ponderada vale 123; como 123 deja resto 3 al dividir entre 10, el dígito de control es 10 – 3= 7, y el código completo, 8435458156887, cumple que la suma total, 130, es múltiplo de 10. Cualquiera puede repetir la comprobación con el código de barras de un producto que tenga a mano.

Figura 2: esquema de pesos del código EAN-13; cada posición se multiplica por 1 o por 3 antes de sumar y tomar módulo 10 (elaboración propia).

El IBAN

Un número de cuenta español empieza por ES y dos dígitos de control, seguidos de veinte cifras. Para validarlo se llevan los cuatro primeros caracteres al final, se sustituyen las letras por números (A vale 10, B vale 11, y así hasta Z, que vale 35; ES se convierte en 14 y 28), y el enorme número resultante debe dejar resto 1 al dividirlo entre 97 (ISO 13616-1:2020; ISO/IEC 7064:2003). Los dos dígitos de control son justamente los que consiguen esa congruencia. El módulo 97, primo, es el que sostiene el método.

Conviene verlo con un caso real. El IBAN español ES91 2100 0418 4502 0005 1332 es válido. Al llevar ES91 al final y convertir las letras (E se convierte en 14 y S en 28) se obtiene un número de veintiséis cifras, 21000418450200051332142891, demasiado grande para dividirlo de una vez. La salida es la que usa cualquier ordenador: reducir módulo 97 sobre la marcha. Se toman las cifras de izquierda a derecha y, en cuanto lo acumulado pasa de 97, se sustituye por su resto; ese resto, siempre menor que 97, se arrastra y se le pegan las cifras siguientes, de modo que nunca se maneja un número de más de cuatro o cinco cifras. Así, , después , luego , luego  (todo módulo 97), y siguiendo igual hasta la última cifra el resto final es 1. Como es 1, el IBAN es válido. Esa misma cuenta, hecha por la máquina en microsegundos, es la que confirma en la pantalla del banco que no hay una errata en los veinticuatro caracteres.

Figura 3: validación de un IBAN por reducción módulo 97 arrastrando el resto; ningún paso maneja más de cinco cifras (elaboración propia).

 

El ISBN

El ISBN de trece cifras de los libros actuales es un código EAN, así que usa exactamente el mismo esquema de pesos 1 y 3 y módulo 10 que el de barras. El ISBN de diez cifras, anterior a 2007, funcionaba distinto: pesaba las posiciones por 10, 9, 8, hasta 1, y exigía que la suma fuera múltiplo de 11; por eso su último carácter podía ser una X, que representa el valor 10. Este contraste entre el módulo 10 del ISBN nuevo y el módulo 11 del antiguo será revelador enseguida.

Figura 4: código de barras real de un producto; las doce primeras cifras determinan la decimotercera (fotografía propia).

Qué errores detecta y cuáles no: el límite del método

Aquí está el corazón del asunto, y donde la matemática de la ESO explica una decisión de ingeniería. Recordemos los dos errores humanos dominantes: cambiar una cifra y trasponer dos contiguas.

Cambiar una cifra

En todos estos sistemas, equivocar una sola cifra altera la suma en e

w · (d´- d), donde w es el peso de esa posición y d´ – d la diferencia, entre 1 y 9 en valor absoluto. Con los módulos y pesos empleados, ese producto nunca es múltiplo del módulo, así que el error de una cifra se detecta siempre. En esto los cuatro sistemas empatan.

Trasponer dos cifras contiguas

Al intercambiar dos posiciones vecinas de pesos w i y w i+1, la suma cambia en (w i – w i+1) (d i+1 – d i). Y aquí es donde los sistemas se separan.

En el código de barras y el ISBN de trece cifras, los pesos contiguos son 1 y 3, luego el cambio vale +-2(d i+1 – d i). Ese valor es múltiplo de 10 justo cuando la diferencia entre las dos cifras es 5. Por tanto, el código de barras no detecta la trasposición de dos cifras contiguas que difieren en 5 (los pares 0 y 5, 1 y 6, 2 y 7, 3 y 8, 4 y 9). Si alguien teclea 61 donde había 16, el control no se entera.

El DNI, el IBAN y el ISBN antiguo no tienen ese punto ciego, y la razón es el módulo primo. Con el módulo 11 del ISBN de diez cifras, los pesos contiguos difieren en 1 y ninguna diferencia entre cifras distintas es múltiplo de 11, así que se detecta cualquier trasposición. Con el módulo 23 del DNI y el 97 del IBAN ocurre lo mismo.

Debajo de todos estos casos hay una misma regla. En los sistemas ponderados, una trasposición de dos cifras vecinas altera la suma en la diferencia de pesos por la diferencia de las dos cifras (y en el DNI, sin pesos, ese papel lo hace el valor posicional), y pasa desapercibida solo si el módulo divide ese producto. Ahora bien, ambos factores son pequeños: en estos sistemas ninguno supera 9 en valor absoluto. Si el módulo es un número primo mayor que esos factores, no puede dividir a ninguno de los dos y, por ser primo, tampoco a su producto, de modo que detecta todas las trasposiciones de cifras distintas. Un módulo compuesto como 10, que es 2 por 5, es vulnerable precisamente porque su factor 2, unido a la diferencia de pesos, deja que la diferencia de cifras aporte el 5 que falta. En una frase: 11, 23 y 97 son más seguros que 10 porque son primos y mayores que los errores que deben vigilar.

Se entiende entonces el reparto de módulos como lo que es, una decisión de diseño. Los identificadores donde un error sale caro (el documento de identidad, la cuenta bancaria) usan módulos primos y detectan más. El código de barras, pensado para leerse a gran velocidad en caja con aritmética mínima, acepta el módulo 10 y su pequeño punto ciego, porque un fallo de lectura ahí tiene menos consecuencias y el escáner reintenta.

Conviene cerrar con una advertencia honesta sobre el alcance del método. Estos dígitos son códigos detectores de errores, no correctores: avisan de que algo no cuadra, pero no dicen qué cifra falla ni la arreglan. Y no detectan cualquier error imaginable; si dos equivocaciones se compensan y el resultado vuelve a cumplir la congruencia, el código pasa por válido. Lo que garantizan es atrapar los errores más probables, que es justo para lo que se diseñaron.

Conclusión

El resto de una división, que en el aula aparece a menudo como el sobrante de una cuenta sin destino claro, resulta ser el vigilante silencioso de casi todos los números que usamos a diario. Un mismo principio, la congruencia módulo un número, se adapta en cada sistema con un módulo y unos pesos escogidos según lo que esté en juego, y esa afinación es una decisión de ingeniería que la aritmética de 3º y 4º de ESO permite comprender por completo. El ejemplo tiene, además, una virtud poco habitual en el aula: es verificable por el propio alumnado, que puede tomar su documento de identidad y comprobar que la letra encaja. Cuando alguien pregunte para qué sirve el resto, hay una respuesta concreta a mano.

Referencias

Decreto Foral 71/2022, de 29 de junio, por el que se establece el currículo de las enseñanzas de la Educación Secundaria Obligatoria en la Comunidad Foral de Navarra. Boletín Oficial de Navarra.

GS1. (s.f.). Check digit calculator. Bruselas, Bélgica: GS1. Recuperado de https://www.gs1.org/services/check-digit-calculator

ISO. (2020). Financial services. International bank account number (IBAN). Part 1: Structure of the IBAN (ISO 13616-1:2020). Ginebra, Suiza: Organización Internacional de Normalización.

ISO/IEC. (2003). Information technology. Security techniques. Check character systems (ISO/IEC 7064:2003). Ginebra, Suiza: Organización Internacional de Normalización.

Kirtland, J. (2001). Identification numbers and check digit schemes. Washington D. C., EE. UU.: Mathematical Association of America.

Ministerio del Interior. (s.f.). Cálculo del dígito de control del NIF-NIE. Madrid, España: Gobierno de España. Recuperado de https://www.interior.gob.es/opencms/es/servicios-al-ciudadano/tramites-y-gestiones/dni/calculo-del-digito-de-control-del-nif-nie/

Real Decreto 255/2025, de 1 de abril, por el que se regula el Documento Nacional de Identidad. Boletín Oficial del Estado, 80, de 2 de abril de 2025. https://www.boe.es/buscar/act.php?id=BOE-A-2025-6601

Rosen, K. H. (2004). Matemática discreta y sus aplicaciones (5.ª ed.). Madrid, España: McGraw-Hill Interamericana.

Eduardo Azcárate Gracia

RELATED ARTICLES

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí