¿Sabías que la letra que aparece acompañando al conjunto de números de tu DNI no es pura coincidencia? Desde el año 1955, el Documento Nacional de Identidad permite el reconocimiento de cada uno de los ciudadanos españoles frente a la ley, a través de un lote de dígitos acompañados de una letra. El número, por su parte, se elige de entre un total de valores que la Dirección General de Policía proporciona de manera aleatoria a cada una de las comisarías, desde las cuales se realiza la asignación a cada ciudadano. Sin embargo, la letra que lo acompaña no es casualidad.

El valor del alfabeto que sigue a los números depende directamente de ellos. Es decir, se calcula a partir de un algoritmo que utiliza esos números, los relaciona con un valor del abecedario y obtiene una de las letras mediante esa correspondencia. Este método aritmético permite la detección de falsificaciones en el DNI, así como la identificación de posibles errores en la asignación del código. 

CALCULAR LA LETRA DEL DNI

El algoritmo que se utiliza para la determinación de la letra del DNI es conocido como teorema de congruencia lineal y, fuera de este contexto legal y penal, se usa para describir procesos cíclicos, sobretodo aquellos relacionados con el paso del tiempo, como las horas o los días. Así es que, por ejemplo, como los calendarios son formas de medir el tiempo de manera cíclica, se convierten en un área de interés del trabajo con congruencias. De igual forma sucede con los relojes.

Este algoritmo corresponde a un aporte muy importante por parte del físico y matemático Johann Carl Friedrich Gauss a la Aritmética Modular. En su famoso libro Disquisitiones Arithmeticae (Investigaciones sobre Aritmética), Gauss propone este teorema mediante la afirmación de que que si un número entero a divide a la diferencia de los números enteros b y c, entonces se dirá que b y c son congruentes según el módulo a

El DNI utiliza la congruencia módulo 23, es decir, se obtiene el dígito de control, la letra, a través del resto de dividir el número completo del DNI entre 23. En función de cual sea ese resto, se le asigna una letra específica de acuerdo a una tabla de equivalencias. La razón de que se use específicamente el valor 23, es que es el número de letras posibles para asignar, pues no se trabaja con todo el abecedario por completo.

Equivalencia resto-letra
0T
1R
2W
3A
4G
5M
6Y
7F
8P
9D
10X
11B
12N
13J
14Z
15S
16Q
17V
18H
19L
20C
21K
22E

Como un ejemplo de este cálculo, podríamos suponer que el código numérico de un DNI es 17.003.989 . Si dividimos este número entre 23, obtenemos una solución, es decir, un cociente, de 739.303, con resto 20. Buscando ese número 20 en la tabla de equivalencias, vemos que se corresponde con la letra C, por lo que será esa la que acompañe al código numérico.

¿POR QUÉ SOLO 23 LETRAS?

A la hora de realizar esta correspondencia entre el resto de la división las letras, llama la atención que no se usan todas las del abecedario, sino solo 23. Pero ¿por qué ocurre esto? 

En un primer lugar, se decidió excluir la I y la O por su gran parecido con el 1 y el 0, ya que podrían dar lugar a errores y posibles confusiones en la escritura de las mismas. Por otra parte, la Ñ fue también eliminada de las opciones con el objetivo de evitar problemas con la validez del DNI en el extranjero, pues el carácter es exclusivo de la lengua española.

Así, descartando esas tres por motivos de legibilidad, quedan únicamente 24 letras. Ahora bien, no se utilizan todas debido a que pueden surgir ciertos problemas en el proceso de cálculo: el número 24 tiene una gran cantidad de divisores y podrían existir dos números con la misma letra asignada. Por lo tanto, los expertos decidieron eliminar otra letra de forma aleatoria y utilizar 23 letras, pudiendo trabajar con módulo 23, un número primo que garantiza la fiabilidad del proceso. En este caso, la letra seleccionada para eliminarse de las opciones fue la U.

OTROS MÉTODOS Y APLICACIONES

Además de esta curiosa aplicación para el cálculo del dígito de seguridad en el DNI, el teorema de congruencia se utiliza también en otros campos del mundo legal y de la seguridad. Un ejemplo es su uso en la generación del IBAN de una cuenta bancaria, la cual utiliza el módulo 97, o en diferentes sistemas de criptografía de datos como es, por ejemplo, el caso del cifrado César.

En el primer caso, para generar el código IBAN, se añaden 4 dígitos al número de la cuenta bancaria estándar, los cuales corresponden dos al país y dos al número de control. Si un individuo es de España, se escribirá ES00 al final de los 20 dígitos de la cuenta. Se sustituirá a continuación la E por 14 y la S por 28. Con el número completo obtenido, se calcula el resto de la división por 97 y se resta ese resultado a 98. El resultado es el dígito de control del IBAN que acompañará a las siglas ES y que sustituirá a ese inicial 00.

En el caso del cifrado César, un método de criptografías, el procedimiento consiste en el desplazamiento de ciertas plazas en el abecedario, lo cual es un método directo del teorema de congruencias, pues las últimas letras vuelven a ser las primeras, creando un sistema de bucle. En este caso, el algoritmo emplearía un módulo 27 pues, en el caso de cifrar la lengua española, tiene un abecedario de 27 letras.