Algunos secretos del DNI

Transcripción

Algunos secretos del DNI
Motivación
Teoría de códigos
Algunos secretos del DNI
Ramón Esteban Romero1,2
1 Universitat
2 Universitat
de València
Politècnica de València
V Jornades de Modelització Matemàtica, 2016
València, 12 de mayo de 2016
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
El proceso de comunicación
Motivación
El proceso de comunicación
Mensaje
Emisor −−−−−−−−−−→ Receptor
Canal
Un problema:
El canal puede tener ruido y el mensaje puede llegar con
errores. ¿Qué podemos hacer para minimizar el efecto de
este ruido?
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
El proceso de comunicación
Motivación
El proceso de comunicación
Mensaje
Emisor −−−−−−−−−−→ Receptor
Canal
Un problema:
El canal puede tener ruido y el mensaje puede llegar con
errores. ¿Qué podemos hacer para minimizar el efecto de
este ruido?
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
El proceso de comunicación
Motivación
El proceso de comunicación
Mensaje
Emisor −−−−−−−−−−→ Receptor
Canal
Un problema:
El canal puede tener ruido y el mensaje puede llegar con
errores. ¿Qué podemos hacer para minimizar el efecto de
este ruido? Teoría de códigos
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Redundancia en el lenguaje usual
Nos dicen algo y no lo entendemos por el ruido. ¿Qué
podemos hacer?
En algunos mensajes SMS se omiten letras:
«qdms a ls 3?»
La información del mensaje parece que puede transmitirse
con menos letras.
Es posible entender mensajes con faltas de ortografía.
El lenguaje usual incluye una cierta redundancia que
permite resolver situaciones como las anteriores.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Redundancia en el lenguaje usual
Nos dicen algo y no lo entendemos por el ruido. ¿Qué
podemos hacer? Una solución es pedir que nos repitan el
mensaje.
En algunos mensajes SMS se omiten letras:
«qdms a ls 3?»
La información del mensaje parece que puede transmitirse
con menos letras.
Es posible entender mensajes con faltas de ortografía.
El lenguaje usual incluye una cierta redundancia que
permite resolver situaciones como las anteriores.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Redundancia en el lenguaje usual
Nos dicen algo y no lo entendemos por el ruido. ¿Qué
podemos hacer? Una solución es pedir que nos repitan el
mensaje.
En algunos mensajes SMS se omiten letras:
«qdms a ls 3?»
La información del mensaje parece que puede transmitirse
con menos letras.
Es posible entender mensajes con faltas de ortografía.
El lenguaje usual incluye una cierta redundancia que
permite resolver situaciones como las anteriores.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Redundancia en el lenguaje usual
Nos dicen algo y no lo entendemos por el ruido. ¿Qué
podemos hacer? Una solución es pedir que nos repitan el
mensaje.
En algunos mensajes SMS se omiten letras:
«qdms a ls 3?»
La información del mensaje parece que puede transmitirse
con menos letras.
Es posible entender mensajes con faltas de ortografía.
El lenguaje usual incluye una cierta redundancia que
permite resolver situaciones como las anteriores.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Redundancia en el lenguaje usual
Nos dicen algo y no lo entendemos por el ruido. ¿Qué
podemos hacer? Una solución es pedir que nos repitan el
mensaje.
En algunos mensajes SMS se omiten letras:
«qdms a ls 3?»
La información del mensaje parece que puede transmitirse
con menos letras.
Es posible entender mensajes con faltas de ortografía.
El lenguaje usual incluye una cierta redundancia que
permite resolver situaciones como las anteriores.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir información del mensaje para minimizar el
efecto de los errores:
HOLA se envía repetido como HHOOLLAA
Se produce un error: cambiamos una H por una B y
recibimos HBOOLLAA
Apreciamos que el mensaje no es correcto, ya que las dos
primeras letras no son iguales.
Si hubiera dos errores, como BBOOLLAA , no siempre
sabríamos que hay un error.
Este código permite detectar un error, pero no dos.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir información del mensaje para minimizar el
efecto de los errores:
HOLA se envía repetido como HHOOLLAA
Se produce un error: cambiamos una H por una B y
recibimos HBOOLLAA
Apreciamos que el mensaje no es correcto, ya que las dos
primeras letras no son iguales.
Si hubiera dos errores, como BBOOLLAA , no siempre
sabríamos que hay un error.
Este código permite detectar un error, pero no dos.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir información del mensaje para minimizar el
efecto de los errores:
HOLA se envía repetido como HHOOLLAA
Se produce un error: cambiamos una H por una B y
recibimos HBOOLLAA
Apreciamos que el mensaje no es correcto, ya que las dos
primeras letras no son iguales.
Si hubiera dos errores, como BBOOLLAA , no siempre
sabríamos que hay un error.
Este código permite detectar un error, pero no dos.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir información del mensaje para minimizar el
efecto de los errores:
HOLA se envía repetido como HHOOLLAA
Se produce un error: cambiamos una H por una B y
recibimos HBOOLLAA
Apreciamos que el mensaje no es correcto, ya que las dos
primeras letras no son iguales.
Si hubiera dos errores, como BBOOLLAA , no siempre
sabríamos que hay un error.
Este código permite detectar un error, pero no dos.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir información del mensaje para minimizar el
efecto de los errores:
HOLA se envía repetido como HHOOLLAA
Se produce un error: cambiamos una H por una B y
recibimos HBOOLLAA
Apreciamos que el mensaje no es correcto, ya que las dos
primeras letras no son iguales.
Si hubiera dos errores, como BBOOLLAA , no siempre
sabríamos que hay un error.
Este código permite detectar un error, pero no dos.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir tres veces el mensaje:
HOLA se envía repetido como HHHOOOLLLAAA
Se produce un error: cambiamos una H por una B y
recibimos HBHOOOLLLAAA
Apreciamos que se el mensaje no es correcto, ya que las
tres primeras letras no son iguales. Pero si sabemos que
solo hay un error, podemos recuperar el mensaje original.
Por eso este código corrige un error.
Si hubiera dos errores, como BSHOOOLLLAAA , sabríamos
que hay errores, pero no siempre podríamos corregirlos.
Este código permite detectar dos errores y corregir uno.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir tres veces el mensaje:
HOLA se envía repetido como HHHOOOLLLAAA
Se produce un error: cambiamos una H por una B y
recibimos HBHOOOLLLAAA
Apreciamos que se el mensaje no es correcto, ya que las
tres primeras letras no son iguales. Pero si sabemos que
solo hay un error, podemos recuperar el mensaje original.
Por eso este código corrige un error.
Si hubiera dos errores, como BSHOOOLLLAAA , sabríamos
que hay errores, pero no siempre podríamos corregirlos.
Este código permite detectar dos errores y corregir uno.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir tres veces el mensaje:
HOLA se envía repetido como HHHOOOLLLAAA
Se produce un error: cambiamos una H por una B y
recibimos HBHOOOLLLAAA
Apreciamos que se el mensaje no es correcto, ya que las
tres primeras letras no son iguales. Pero si sabemos que
solo hay un error, podemos recuperar el mensaje original.
Por eso este código corrige un error.
Si hubiera dos errores, como BSHOOOLLLAAA , sabríamos
que hay errores, pero no siempre podríamos corregirlos.
Este código permite detectar dos errores y corregir uno.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir tres veces el mensaje:
HOLA se envía repetido como HHHOOOLLLAAA
Se produce un error: cambiamos una H por una B y
recibimos HBHOOOLLLAAA
Apreciamos que se el mensaje no es correcto, ya que las
tres primeras letras no son iguales. Pero si sabemos que
solo hay un error, podemos recuperar el mensaje original.
Por eso este código corrige un error.
Si hubiera dos errores, como BSHOOOLLLAAA , sabríamos
que hay errores, pero no siempre podríamos corregirlos.
Este código permite detectar dos errores y corregir uno.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Detección y corrección de errores
Podemos repetir tres veces el mensaje:
HOLA se envía repetido como HHHOOOLLLAAA
Se produce un error: cambiamos una H por una B y
recibimos HBHOOOLLLAAA
Apreciamos que se el mensaje no es correcto, ya que las
tres primeras letras no son iguales. Pero si sabemos que
solo hay un error, podemos recuperar el mensaje original.
Por eso este código corrige un error.
Si hubiera dos errores, como BSHOOOLLLAAA , sabríamos
que hay errores, pero no siempre podríamos corregirlos.
Este código permite detectar dos errores y corregir uno.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Como repetir el mensaje puede suponer enviar demasiada
información, es habitual añadir un resumen de la información
en forma de dígitos o caracteres de control.
Esto se usa en:
DNI,
cuentas bancarias,
información de códigos de barras,
transmisión de información por internet...
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Se calcula el resto de la división del número entre 23.
Se obtiene la letra según el resto de la división:
0 T
6 Y 12 N 18 H
1 R
7 F 13 J 19 L
2 W
8 P 14 Z 20 C
3 A
9 D 15 S 21 K
4 G 10 X 16 Q 22 E
5 M 11 B 17 V
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Algunas preguntas:
¿Por qué el 23?
¿Para qué queremos añadir una letra al número del DNI?
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Algunas preguntas:
¿Por qué el 23?
¿Para qué queremos añadir una letra al número del DNI?
¿Qué pasa si nos equivocamos en una cifra?, ¿lo detecta
la letra del DNI?
¿Y si intercambiamos dos cifras consecutivas?
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
La resolución de estos problemas usa técnicas basadas en la
aritmética modular.
Teorema (división euclídea)
Dado m ∈ N y a ∈ Z, existen enteros únicos q (llamado
cociente) y r (llamado resto) tales que a = mq + r y 0 ≤ r < m.
Definición
Sea m un número natural y a, b ∈ Z. Se dice que a es
congruente con b módulo m, escrito a ≡ b (mod m), si m es
divisor de a − b.
Se tiene que a ≡ b (mod m) si, y solo si, los restos de dividir a
y b por m coinciden.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Teorema
Supongamos que a, b, m son enteros con m ≥ 1, que m es
divisor del producto ab y que mcd(a, m) = 1. Entonces m es
divisor de b.
Si a = an an−1 . . . a2 a1 a0 es un número escrito en base 10,
entonces
n
X
a=
ai · 10i .
i=0
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Supongamos que dos números
a = a7 a6 a5 a4 a3 a2 a1 a0 =
7
X
ai · 10i ,
i=0
b = b7 b6 b5 b4 b3 b2 b1 b0 =
7
X
bi · 10i
i=0
tienen asociada la misma letra del DNI. Entonces nos dan el
mismo resto al dividirlos entre 23.
Supongamos que ai = bi para i 6= j.
Los restamos: su diferencia (aj − bj ) · 10j es múltiplo de 23.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Como el 23 es primo y 23 no es divisor de 10i , resulta que
23 es divisor de ai − bi . Pero como esta diferencia está
entre −9 y 9, la única posibilidad es ai − bi = 0, esto es,
ai = bi .
Concluimos que el DNI detecta un error.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Supongamos ahora que dos cifras están intercambiadas, pero
los restos de la división entre 23 son iguales. Con la misma
notación de antes, supongamos aj = bj , j ∈
/ {i, i + 1}, ai+1 = bi ,
ai = bi+1 .
Al restar los dos números, obtenemos un múltiplo de 23.
Entonces la diferencia entre ambos números es
10i+1 (ai+1 − bi+1 ) + 10i (ai − bi )
= (10ai+1 − ai+1 ) − (10ai − ai ) · 10i
= (9ai+1 − 9ai ) · 10i
= (ai+1 − ai ) · 9 · 10i .
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Se tiene que esta diferencia es múltiplo de 23. Como 23 es
primo y no es divisor de 9 · 10i , tiene que ser divisor de
ai+1 − ai . Como antes, se obtiene que ai+1 − ai = 0, es
decir, ai+1 = ai , pero entonces no intercambiamos cifras
diferentes.
Así, la letra del DNI también detecta un error de intercambio de
dos letras consecutivas.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Nombre
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Número de DNI
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Número de tarjeta
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Fecha de nacimiento
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Fecha de caducidad
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Documento de identidad expedido por España
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Sexo
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Nacionalidad
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
Dígitos de control
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
¿Cómo se calculan estos dígitos de control?
El primero viene asociado con el número de tarjeta. Se
obtiene asignando a cada cifra su valor y a cada letra un
número, comenzando por la A, que vale 10, hasta la Z,
que vale 35 (no se cuenta la Ñ). Se multiplican estos
valores por 7, 3, 1, 7, 3, 1, 7, 3, 1 y se suman los
resultados. La última cifra de la suma (resto de la división
por 10) es el dígito de control: Para AMB111403, A vale
10, M vale 22, B vale 11,
7 · 10 + 3 · 22 + 1 · 11 + 7 · 1 + 3 · 1 + 1 · 1 + 7 · 4 + 3 · 0 + 1 · 3
= 70 + 66 + 11 + 7 + 3 + 1 + 28 + 0 + 3 = 189
acaba en 9.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
El segundo viene asociado a al fecha de nacimiento,
multiplicando por 7, 3, 1, 7, 3, 1 y sumando. Para 700616,
nos queda
7·7+3·0+1·0+7·6+3·1+1·6
= 49 + 0 + 0 + 42 + 3 + 6 = 100,
que acaba en 0.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
El tercero viene asociado a al fecha de caducidad,
multiplicando por 7, 3, 1, 7, 3, 1 y sumando. Para 220705,
nos queda
7·2+3·2+1·0+7·7+3·0+1·5
= 14 + 6 + 0 + 49 + 0 + 5 = 74,
que acaba en 4.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
El cuarto se obtiene aplicando esta misma técnica, pero
ahora con la lista de números y letras formada por
el número de soporte con su dígito de control,
el número de DNI con su letra de control,
la fecha de nacimiento con su dígito de control y
la fecha de caducidad con su dígito de control,
y multiplicándolas sucesivamente por 7, 3, 1, 7, 3, 1... y
sumando y quedándonos con la última cifra.
Ramón Esteban Romero
Algunos secretos del DNI
Motivación
Teoría de códigos
Redundancia en el lenguaje usual
Detección y corrección de errores
Dígitos de control: el DNI
Teoría de códigos
Dígitos de control: el DNI
La elección de 7, 3 y 1 no es casual: son primos con 10.
Permite detectar un error (una cifra mal leída).
Si cambiamos uno de los dígitos, vemos que el dígito de
control tiene que cambiar, porque la diferencia de esos dos
dígitos multiplicada por el factor 7, 3 o 1 no puede ser
múltiplo de 10.
Esto no hubiera funcionado si hubiéramos elegido factores
que fueran pares o múltiplos de 5. El 9 también hubiera
valido.
El argumento es parecido al que usamos para determinar
que el DNI detecta un error: la última cifra es el resto de la
división entre 10.
Ramón Esteban Romero
Algunos secretos del DNI

Documentos relacionados