Dígitos de control DÍGITOS DE CONTROL: APLICACIONES DE LA ARITMÉTICA DE NÚMEROS ENTEROS A LA VIDA REAL Autores: Cristina Steegmann Pascual ([email protected]), Ángel A. Juan Pérez ([email protected]). ESQUEMA DE CONTENIDOS ________________________ Definición Propiedades NÚMEROS ENTEROS Aplicaciones Aritmética Divisibilidad Resolución de ecuaciones diofánticas DÍGITOS de CONTROL Congruencias Número de Identificación Fiscal (NIF) International Standard Book Number (ISBN) Cuentas Corrientes Bancarias Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 1 Dígitos de control INTRODUCCIÓN ___________________ A menudo las matemáticas se nos muestran como una ciencia teórica y abstracta, sin aplicaciones en la vida real. ¡Nada de eso! Este math-block pretende mostrar unos sencillos ejemplos de congruencias que utilizamos cotidianamente, y que nos conducirán a un concepto muy importante en el mundo de las telecomunicaciones: los dígitos de control. Tan sólo necesitaremos nuestro número del carnet de identidad, los libros de la biblioteca y el número de la cuenta bancaria. OBJETIVOS ________________________ • Conocer algunas aplicaciones de la aritmética de los números enteros presentes en nuestra vida diaria y comprobar a partir de qué argumentos matemáticos aparecen. • Practicar la resolución de ecuaciones diofánticas y el cálculo con congruencias de números enteros. • Profundizar en la programación con el programa Excel haciendo uso de sus diferentes funciones. CONOCIMIENTOS PREVIOS ___________________________________ Es recomendable que, previamente, se dominen los siguientes apartados: • Concepto de máximo común divisor de números enteros. • Resolución de ecuaciones lineales con dos variables y coeficientes enteros (ecuaciones diofánticas). • Noción de congruencias de números enteros y sus operaciones básicas. Asimismo también es muy aconsejable que se tenga conocimiento de manejo de las principales funciones del programa Excel. CONCEPTOS FUNDAMENTALES ______________________________ Número de Identificación Fiscal (NIF) Casi todo el mundo sabe de memoria su NIF, el cual aparece en el DNI y sirve para identificar unívocamente a una persona ante la administración estatal. De todos es sabido, también, que este NIF es el número del DNI añadiéndole una letra. Lo que, quizás, no sepa todo el mundo es cómo se asigna dicha letra. No se trata de una asignación al azar o que dependa de nuestro nombre o cualquier dato nuestro. No. Esta letra simplemente se obtiene cogiendo el residuo de la división entera del número del DNI entre 23 y aplicando la tabla siguiente: 0 T 1 2 R W 3 A 4 G 5 M 6 Y 7 F 8 P 9 10 11 12 13 14 15 16 17 18 19 20 21 22 D X B N J Z S Q V H L C K E En el lenguaje de congruencias podemos decir que calculamos la clase del número del DNI en Ζ23, y cada clase la designamos con una letra siguiendo la tabla anterior. Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 2 Dígitos de control Ejemplo 1: Vamos a calcular la letra del NIF que corresponde al número 38.834.932. Con la ayuda de la función RESIDUO del programa EXCEL obtenemos el resto de la división entera de los números: Mirando la tabla, comprobamos que al 7 le corresponde la letra F. Por tanto, el NIF es: 38.834.932-F. La pregunta que ahora nos hacemos es la siguiente: Si la letra del NIF tan sólo depende del número del DNI y no los datos personales de la persona en cuestión (como el nombre o la fecha de nacimiento) entonces, ¿por qué tenemos que llevar esta letra si cualquier ordenador la puede calcular en un santiamén? La respuesta a esta pregunta nos la proporciona la verdadera función de la letra. Ésta es la que llamamos un dígito de control. El DNI nos identifica completamente ante el Estado y, por tanto, es importante que en los documentos oficiales conste correctamente. A menudo, cuando introducimos muy deprisa estos números en el ordenador, hacemos pequeños errores como equivocarnos en una cifra o cambiar el orden de un par de éstas. La manera de evitar estos pequeños fallos es introducir un dígito de control. La idea subyacente es la de añadir una información adicional al número (en este caso, un dígito más) que controle la veracidad de los datos introducidos. De hecho, cada vez que introducimos el NIF en un ordenador (por ejemplo en el programa de la declaración de la renta), la máquina calcula la letra y la compara con la que hemos introducido. Si no coinciden significa que nos hemos equivocado al introducir el número, y el ordenador nos pide que lo verifiquemos. Ejemplo 2: Comprobemos si el NIF: 38.523.102-H es correcto. RESIDUO(38523102;23)=11 Y al número 11 le corresponde la letra B. Por tanto no es correcto. Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 3 Dígitos de control ¡Atención! Aunque la letra calculada por el ordenador coincida con la que hemos introducido no tenemos la certeza al 100% de la veracidad del número, ya que un par de errores pueden originar la misma letra. De cualquier modo, cometer dos errores ya es más improbable y el dígito de control siempre reduce la probabilidad de error. Y en según qué casos de errores muy concretos, el NIF nos permite corregirlos. Ejemplo 3: Supongamos que se ha caído una gota de tinta sobre un papel y no se ve bien una cifra del NIF de un amigo: 27.65?.372-T ¿Se podría recuperar esta cifra? 1) De entrada comprobamos que la letra T se corresponde con el residuo 0. Si a la cifra desconocida la llamamos x, tenemos que: RESIDUO(2765x372;23)=0 2) Dividimos el número en su representación decimal y obtenemos: 2765x372=27650372+x.1000 3) Ahora sabemos que esta expresión es congruente con 0 módulo 23: 27650372+x.1000 ≡ 0 (mod 23) 4) Por otro lado, sabemos que: 27650372 ≡ 2 (mod 23) y que 1000 ≡ 11 (mod 23); por tanto, tendremos: 2 + x.11 ≡ 0 (mod 23) que equivale a: 11x ≡ -2 (mod 23) 5) Ahora se trata de resolver la ecuación diofántica que se deriva de esta congruencia: 11x + 23y = -2 6) La resolveremos aplicando el algoritmo de Euclides y la identidad de Bezout. 7) Primero buscaremos el máximo común divisor de 11 y 23, utilizando el algoritmo de Euclides: Dividimos 23 entre 11 y obtenemos: 23 = 11.2 + 1, luego: mcd (11,23) = mcd (23,11) = mcd (11,1) = mcd (1,0) = 1. Como el mcd (11,23) =1, la ecuación tiene soluciones enteras. 8) Mediante la identidad de Bezout buscamos una solución particular de la ecuación. Tenemos que: 1=11.(-2)+23.1; por lo tanto la solución particular de la ecuación 11x+23y=1 es: x=-2, y=1 Pero como nos pedían la solución de la ecuación: 11x+23y=-2, tenemos que la identidad de Bezout en este caso será: -2=11.4+23.(-2) y, en consecuencia, la solución será: x=4, y=-2 9) Finalmente tenemos que el número que faltaba, x, es 4. Por tanto, el NIF pedido es: 27.654.372-T 10) Para más seguridad se puede comprobar que realmente esto es cierto: RESIDUO (27654372;23)=0. Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 4 Dígitos de control International Standard Book Number (ISBN) Ahora veremos otro ejemplo de dígito de control muy parecido al NIF: El ISBN. Se trata de un número de diez cifras que identifica de manera única cualquier libro editado en el mundo. Un organismo internacional (www.isbn.org) marca las directrices de asignación de este número. Se puede coger, por ejemplo, el módulo de Álgebra y abrirlo por la segunda página, donde hay las fotos de los autores, y mirar abajo del todo. Ahí se encuentra el ISBN de éste: 84-8429-200-2. Los diez dígitos están repartidos en cuatro bloques: 1. El primero es un indicativo geográfico: A España le corresponde el 84. 2. El segundo bloque es la editorial del libro, en este caso (8429) es el de EDIUOC. 3. El tercero se refiere al libro (dentro de la editorial), es decir, el 200 corresponde al libro de Álgebra dentro de las ediciones de la UOC. 4. Finalmente, el cuarto bloque es un único dígito de control que se calcula así: Si x1x2x3x4x5x6x7x8x9x10 es el ISBN, entonces x10 es el residuo de la división entera entre 11 de la expresión: x1 + 2x2 + 3x3 + 4x4 + 5x5 + 6x6 + 7x7 + 8x8 + 9x9 (si el resto es 10, ponemos "X" como dígito de control). 9 En el lenguaje de congruencias, x10 ≡ ∑ i ⋅ xi (mod 11) i =1 Ejemplo 4: Comprobemos el ISBN del módulo: Hacemos: 1.8 + 2.4 + 3.8 + 4.4 + 5.2 + 6.9 + 7.2 + 8.0 + 9.0 = 134 Si ahora calculamos el RESIDUO de 134 entre 11 da de resultado 2, que, efectivamente, coincide con la última cifra del ISBN del módulo de Álgebra. Ejemplo 5: Calculemos ahora el dígito de control de 3-7643-5951: 1.3 + 2.7 + 3.6 + 4.4 + 5.3 + 6.5 + 7.9 + 8.5 + 9.1 = 208 RESIDUO(208;11) = 10 Por tanto, el ISBN completo es: 3-7643-5951-X Ejemplo 6: Miremos si los siguientes ISBN´s son correctos: a) 84-7256-224-7 1.8 + 2.4 + 3.7 + 4.2 + 5.5 + 6.6 + 7.2 + 8.2 + 9.4 = 172 RESIDUO(172;11) = 7. Por tanto, el ISBN es correcto. b) 0-386-97675-2 1.0 + 2.3 + 3.8 + 4.6 + 5.9 + 6.7 + 7.6 + 8.7 + 9.5 = 284 RESIDUO(284;11) = 9. Por tanto, el ISBN no es correcto. Ejemplo 7: En los ejemplos siguientes hay dígitos perdidos. ¿Sería posible recuperarlos? Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 5 Dígitos de control a) 84-7239-?08-9 1) A la cifra desconocida la llamaremos x. Según lo expuesto, se tiene que cumplir la congruencia siguiente: 1.8 + 2.4 + 3.7 + 4.2 + 5.3 + 6.9 + 7.x + 8.0 + 9.8 ≡ 9 (mod 11) 2) Calculando tenemos: 186 + 7.x ≡ 9 (mod 11) 3) Como que 186 ≡ 10 (mod 11), esto equivale a: 10 + 7x ≡ 9 (mod 11) 7x ≡ 9-10 = -1 (mod 11) 4) Es decir: 5) Ahora tan sólo hay que resolver esta ecuación diofántica: 7x + 11y = -1 6) Procedemos igual que en el ejemplo 3: 11=7.1+4 7=4.1+3 4=3.1+1 Por tanto, el mcd (7,11) = 1 y, deshaciendo el proceso anterior, tenemos: 4=7.(-1)+11.1 3=7.1+4.(-1)=7.1+[7.(-1)+11.1].(-1)=7.2+11.(-1) 1=3.(-1)+4.1=[7.2+11.(-1)].(-1)+7.(-1)+11.1=7.(-3)+11.2 Con lo cual obtenemos: 1=7.(-3)+11.2 Que en nuestro caso será: -1=7.3+11.(-2) Según esto: x ≡ 3 (mod 11) 7) Y el valor de x es 3. 8) Por tanto, la cifra que falta es el 3. b) 0-12-11?851-X 1) Igual que en el apartado anterior; si a la cifra desconocida la llamamos x, se tiene que cumplir: 1.0 + 2.1 + 3.2 + 4.1 + 5.1 + 6.x + 7.8 + 8.5 + 9.1 ≡ 10 (mod 11) 122 + 6x ≡ 10 (mod 11) 2) Calculando, tenemos: 3) Es decir: 1 + 6x ≡ 10 (mod 11) ⇔ 6x ≡ 9 (mod 11) 4) Resolvemos la ecuación diofántica: 6x + 11y = 9 5) Hacemos: 11=6.1+5 6=5.1+1 Y deshaciendo el proceso anterior llegamos a: En nuestro caso: Por tanto, 1=6.2+11.(-1) 9=6.18+11.(-9) x ≡ 18 ≡ 7 (mod 11) 6) Por tanto, la cifra que falta es el 7. Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 6 Dígitos de control Cuentas Corrientes Bancarias Otros dígitos de control con los que frecuentemente nos topamos aparecen en las cuentas corrientes. Recordemos que el número de una cuenta corriente es de la forma: N º cuenta corriente Oficina - 1234 − 5678 − 00 0123456789 − , Entidad Dígitos de control Los dos dígitos de control vigilan separadamente las dos partes del número; es decir, el primer dígito controla la entidad y la oficina, y el segundo dígito los diez números de la cuenta. Los dígitos de control se calculan así: 1) Si ABCD−EFGH es la entidad y la oficina, el primer dígito de control es el residuo de la división entera entre 11 de la expresión: 7.A + 3.B + 6.C + 1.D + 2.E + 4.F + 8.G + 5.H con el supuesto de que si el residuo es 10, entonces ponemos un 1. 2) El cálculo del segundo dígito es casi idéntico: Si el número de la cuenta corriente es ABCDEFGHIJ, entonces tenemos que calcular el residuo de la división entera entre 11 de la expresión: 10.A + 9.B + 7.C + 3.D + 6.E + 1.F + 2.G + 4.H + 8.I + 5.J y también pondremos un 1 cuando el resto sea 10. Ejemplo 8: Comprobemos que el número de la cuenta 0182−7205−11−0208004820 es correcto. Calculamos: Primer dígito de control: 7.0 + 3.1 + 6.8 + 1.2 + 2.7 + 4. 2 + 8.0 + 5.5 = 100 RESIDUO(100;11) = 1 Segundo dígito de control: 10.0 + 9.2 + 7.0 + 3.8 + 6.0 + 1.0 + 2.4 + 4.8 + 8.2 + 5.0 = 98 RESIDUO(98;11) = 1 Por tanto, el número de esta cuenta corriente es correcto. Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 7 Dígitos de control CASOS PRÁCTICOS CON SOFTWARE___________________________________ Número de Identificación Fiscal (NIF) A continuación veamos cómo, ayudados de EXCEL, podemos hacer un programa mediante el cual, dándole el número del DNI, el programa nos proporcione su correspondiente letra. La función NIF es: T si RESIDUO(t ,23) = 0 R si RESIDUO(t ,23) = 1 f (t ) = W si RESIDUO(t ,23) = 2 E si RESIDUO(t ,23) = 22 1. En la celda A1 introducimos el DNI y en la B1 calculamos el RESIDUO de éste entre 23: 2. En la celda C1 introducimos la fórmula anterior del NIF, dado que la función SI sólo puede concatenar hasta 7 instrucciones, hacemos una pequeña "trampa" y al llegar a esta instrucción, vamos a la celda C5 y allí continuamos. Como vuelve a suceder lo mismo, en ese caso, volvemos a ir a la celda C9. Luego, éstas, las ocultamos para que quede una mejor presentación: Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 8 Dígitos de control 3. Y todavía más; ahora vamos a hacer un programa en que introduzcamos el número del DNI y su "supuesta" letra. El programa nos mostrará si éstos son correctos o hay algún error -ya sea en el número o en la letra-. 4. Para ello, introducimos en A1 el nº del DNI y en A2 la letra y utilizamos el mismo programa anterior al cual le añadimos una nueva celda, la A3: International Standard Book Number (ISBN) Ahora vamos a ver cómo, ayudados de EXCEL, podemos hacer un programa mediante el cual introduzcamos los nueve primeros dígitos del ISBN y el programa nos proporcione su correspondiente código de control. La función del ISBN es: Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 9 Dígitos de control 8 t f ( t ) = RESIDUO [RESIDUO i ;10 (9 − i)];11 10 i= 0 ∑ Si en la celda A1 introducimos el ISBN, en las celdas B1, C1, ..., J1 ponemos lo que a continuación se indica y en A2 aparece el código de control: (También podríamos haber utilizado la función COCIENTE en lugar de ENTERO; esto es, C1=PRODUCTO(RESIDUO(COCIENTE(A1;10);10);8). A menudo dicha función no está disponible y hay que instalarla; para ello, elegimos "Complementos" del menú "Herramientas" y seleccionamos "Herramientas para análisis") Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 10 Dígitos de control E, igual que en el caso del NIF, ahora vamos a hacer un programa en que introduzcamos los nueve primeros dígitos del ISBN y su "supuesto" dígito de control. El programa nos mostrará si éstos son correctos o hay algún error. Para ello, introducimos en A1 el nº del ISBN y en A2 el dígito de control y utilizamos el mismo programa anterior al cual le añadimos una nueva celda, la A3: Cuentas Corrientes Bancarias Una vez más vamos a ver cómo, ayudados de EXCEL, podemos hacer un programa mediante el cual dando los dígitos de la entidad y de la oficina, éste nos proporcione su correspondiente código de control. La función del primer dígito de control es: t t t C1 (t ) = RES RES (t ;10).5 + RES ;10 .8 + RES 2 ;10 .4 + + RES 7 ;10 .7;11 10 10 10 Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 11 Dígitos de control Al igual que en los ejemplos anteriores, podemos hacer un programa en que introduciendo los dígitos de la entidad y de la agencia y su "supuesto" dígito de control nos responda si éste es correcto o si hay algún error. Para ello, introducimos en A1 el nº de la entidad y de la oficina y en A2 el dígito de control y utilizamos el mismo programa anterior al cual le añadimos una nueva celda, la A3: Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 12 Dígitos de control La función del segundo dígito de control es: t t t C 2 ( t ) = RES RES(t;10 ).5 + RES ;10 .8 + RES 2 ;10 .4 + + RES 9 ;10 .10;11 10 10 10 La programación de esta función se haría exactamente igual a la anterior, lo único que habría que añadirle son dos celdas más: J1, K1. Podría ser que, como resultado, apareciera la expresión: #¡NUM! Ésta significa que el número introducido es demasiado grande y el ordenador no dispone de suficiente potencia para operar con él. CONCLUSIONES ___________________________________ Como se ha podido comprobar en estos ejemplos (y sobre todo en este último) los dígitos de control no son claves de seguridad en el sentido de que pongan trabas a quien los quiera falsificar. De ninguna de las maneras: son códigos que vigilan la correcta transcripción de la información. Por este motivo son casi omnipresentes en cualquier proceso informático de transmisión de datos. Sin darnos cuenta, de manera completamente transparente, utilizamos dígitos de control cada vez que trabajamos con el ordenador (los chips controlan los byts con la paridad), cuando escuchamos música (los lectores de CD´s), cuando llamamos por un teléfono móvil, cuando nos conectamos a Internet... Por supuesto que en estos ejemplos los dígitos de control son mucho más sofisticados, pero la idea básica continúa siendo la misma: Si queremos reducir aún más la posibilidad de error, podemos introducir un segundo dígito de control, e incluso, un tercero, un cuarto, etc. Cuanta más información adicional, más segura se hará la transmisión de datos. Incluso, si añadimos suficiente información, podemos llegar a detectar el error y corregirlo, en el caso de que se haya producido. Esta es la idea de los códigos correctores: Codificar la información añadiendo datos que detecten posibles errores en la transmisión y que permitan corregir estos errores sin tener que volver a enviar los datos. Pensemos, por ejemplo, que reenviar datos desde una nave situada en Marte hasta la Tierra puede ser una tarea muy complicada a la que, además, hay que añadir una alta probabilidad de errores en la transmisión. Pero esto ya es otra historia... Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 13 Dígitos de control BIBLIOGRAFÍA ___________________________________ [1] M. Anzola, J. Caruncho, G. Pérez-Canales (1981): "Problemas de álgebra", Madrid, Primer Ciclo, Tomo 2, 137-200 [2] J.L. Ruiz Moreno (1998): "Álgebra", Ediciones UOC, Módulo 2: "Aritmética de los números enteros" [3] F. Ayres: “Álgebra moderna”, Serie de Compendios Schaum, McGraw-Hill, 101-123 [4] A. Gutiérrez Gómez, F. García Castro (1990): "Álgebra lineal 2", Madrid, Ediciones Pirámide, 38-42 ENLACES [W1] ___________________________________ http://www.terra.es/personal/jftjft/Aritmetica/Numeros/Divisibilidad/Congruencias.htm Definición de congruencias de dos números enteros y cálculo con éstas. [W2] http://usuarios.lycos.es/teoriadenumeros/modular.htm Página web sobre aritmética modular. [W3] http://www.nalejandria.com/axioma/congruencias/parte2.htm Página web de la revista de los profesores y estudiantes de Matemáticas. Trata sobre los criterios de divisibilidad y el teorema de Fermat. [W4] http://matsun1.matesco.unican.es/~velasco/algebra/ Página web con "Lecciones de álgebra" -congruencias- de la Universidad de Cantabria. [W5] http://www.terra.es/personal/joym7910/diof/ Historia, definición, bibliografía sobre las ecuaciones diofánticas. [W6] http://www.cienciahoy.org/hoy34/ecua01.htm Revista de divulgación científica y tecnológica de la asociación “Ciencia Hoy”. [W7] http://www.alpertron.com.ar/METODOS.HTM Página web en que aparecen los métodos para resolver ecuaciones del tipo: 2 2 Ax + Bxy + Cy + Dx + Ey + F = 0, para todos los posibles valores de sus coeficientes. [W8] http://bulmalug.net/body.phtml?nIdNoticia=1396 Página web en que se muestra un programa, en PHP, para calcular el dígito de control de una cuenta corriente. Proyecto e-Math Financiado por la Secretaría de Estado de Educación y Universidades (MECD) 14