Muchas veces he oido, decir que uno de los ultimos números del D.N.I, es el número de personas que existen con tu mismo nombre y apellidos, pués me picaba a mi la curiosidad, y buscando he encontrado una página donde explica lo que es cada número que aparece en el dorso de nuesto Carnet... Es que, que haya supuestamente tres personas con mi mismo nombre y apellidos no me gustaba, quiero ser única... jejeje, además como dice el chico que hizo este estudio, sería algo que se qedaría obsoleto con mucha rapidez, además, ¿con que utilidaz? Esta zona del DNI está compuesta por caracteres OCR, es decir, está preparada para ser leída por máquinas. Ese dígito en concreto es sólo un dígito de control para verificar que se ha leído correctamente.
A continuación se van a identificar cada uno de los campos que forman la zona de datos OCR y se va a explicar el algoritmo utilizado para la generación de los dígitos de control.
1.[ID] 2.[ESP] 3.[12345678Z] 4.[3] 5.[<<<<<<<<<<<<<<<] 6.[741015] 7.[0] 8.[M] 9.[090322] 10.[6] 11.[ESP] 12.[<<<<<<<<<<<] 13.[4] 14.[DE
1.Tipo de documento
2.Nación
3.Número de DNI
4.Dígito de control del campo 3
5.Relleno
6.Fecha de nacimiento (AAMMDD)
7.Dígito de control del campo 6
8.Sexo (M/F)
9.Fecha de caducidad
10.Dígito de control del campo 9
11.Nacionalidad
12.Relleno
13.Dígito de control de los campos 3, 4, 6, 7, 9 y 10 concatenados
14.Nombre
Los dígitos de control se generan a partir de otros campos a los cuales se les aplica un algoritmo sencillo.
B 1 G 6 L 11 Q 16 V 21
C 2 H 7 M 12 R 17 W 22
D 3 I 8 N 13 S 18 X 23
E 4 J 9 O 14 T 19 Y 24
A estos números se les ha de aplicar el peso 7-3-1, lo que significa que se han de multiplicar por 7, por 3 o por 1 dependiendo de su posición:
1 2 3 4 5 6 7 8 25
x 7 3 1 7 3 1 7 3 1
------------------------------
7 6 3 28 15 6 49 24 25
A continuación se han de sumar los resultados de todas las multiplicaciones:
El dígito de control es el último dígito del resultado de la suma, 3 en este caso.
Historia
Cansado de escuchar el mito de los números del DNI, este señor decidió buscar la solución al enigma. ¿Si no es el número de personas con tu nombre y apellidos, qué es entonces?
Antes de saber nada sobre el origen de los dígitos de control o saber con certeza si realmente lo eran, ya pensaba que no era probable que ése dígito fuese lo que decían. No parecía práctico introducir un dato que depende de tantos factores externos al portador del documento, ya que podría volverse obsoleto con facilidad y no tendría ningún valor. Si de verdad necesitasen saber ése dato, lo ideal sería consultarlo en una base de datos.
Leyó sobre la posibilidad de que fuesen dígitos de control en un weblog y le pareció razonable. Lo que parecía más seguro era que el dígito que seguía a la fecha de nacimiento y a la de caducidad se calculaba a partir de la fecha, y su investigación se basó en eso.
Gracias a varias amistades,se hizo con unas cuantas muestras que comparar. Intentó aplicar varios algoritmos comunes para obtener dígitos de control, pero no tuvo éxito. Un día pudo comparar dos fechas que se diferenciaban en un sólo dígito, el segundo, concretamente. Suponiendo que el algoritmo funcionaba con un sistema de pesos (números con los cuales se han de multiplicar las distintas posiciones), una suma y extracción del ultimo dígito, dedujo que el peso de la segunda posición era un 3.
Decidio afrontar el problema por fuerza bruta, ya que parecía posible. Sólo había 10 valores distintos y 6 posiciones, así que hizo un script que aplicaba todas las combinaciones de pesos posibles y comprobaba el resultado con todas las muestras que tenía. Salió bien y obtuve los pesos, 7-3-1.
Así que ya sabía cómo obtener el dígito de control de las fechas, pero había un problema para aplicarlo con el dígito que seguía el número del DNI en la primera línea. Ése número contenía una letra, y por tanto, tuvo que deducir cómo se obtenía su valor numérico. Tras pocas pruebas, obtuvo la respuesta: A=0, B=1... Z=25.
Sólo faltaba el último dígito, el cual le motivó a empezar esta investigación. Ahora el problema era que no sabía exactamente su origen, ya que estaba separado de los demás datos.
Estuvo un tiempo haciendo pruebas y no daba con un resultado exacto. Finalmente leyó una referencia a cierto documento, 9303 de la ICAO, que supuestamente explicaba todo esto. No pudo tener acceso a dicho documento, ya que no parece estar disponible online, pero encontró documentos explicando el sistema de pesos 7-3-1 y su aplicación en pasaportes, citando como fuente el documento 9303. Pero los datos OCR del pasaporte tienen un formato distinto al del DNI, así que no conseguía la solución, pero obtuvo una pista.
El último dígito de control de los datos OCR de un pasaporte se calcula de la misma forma que los demás digitos de control explicados en este documento, pero su origen es una selección de los datos anteriores. Leyó que el sexo y la nacionalidad no se veían reflejados en ése dígito de control, y entonces encontró la razón por la que no había encontrado la respuesta hasta ese momento.
En las pruebas que había hecho, siempre incluía el caracter del sexo. Así que tras probar sólo con los campos con dígito de control incluido, consiguío la coincidencia en todas las muestras.



















