algoritmo de luhn

4
¿Qué significan los números de nuestra tarjeta de crédi Meneame 0 Divúlgame 0 Divoblogger 0 Bitacoras Reddit 0 Delicious Facebook Twitter La Navidad está a la vuelta de la esquina. Este período del año que a tanta gente gusta (y tanta gente odia, por qué no decirlo) se caracteriza por las compras poco habituales, por el dinero extra que gasta todo hijo de vecino, ya sea en comida, salidas con los amigos y con la familia, regalos (¿pero de eso no se encargaban…? Mejor lo dejamos ahí), etc. Y, como en la mayoría de las operaciones relacionadas con dinero, en la actualidad está bastante claro que la tarjeta de crédito es la gran protagonista. Ya sea en persona o por inter cada día utilizamos ese artilugio que nos permite comprar sin dinero físico en nues que nos permite obtener parte de nuestro dinero a través de un cajero (que alguien denomina darle un pellizco a la pared ). Bien, analicemos ahora nuestra tarjeta. Podemos ver que el número de la misma const dígitos separados en grupos de 4. Lo que vamos a hacer en este artículo es explicar significan cada uno de esos números y resaltar el papel que las matemáticas tienen de la tarjeta en su conjunto. Los números de una tarjeta de crédito Como decíamos, el número de nuestra tarjeta consta de 16 dígitos, como por ejemplo vemos en la tarjeta que aparece en la imagen de la derecha. Están separados en grupos de 4 para poder identificarlo mejor, es decir, no es porque cada grupo de 4 dígitos signifique una cosa, sino que la razón

Upload: andres-etcheverry

Post on 22-Jul-2015

169 views

Category:

Documents


0 download

TRANSCRIPT

Qu significan los nmeros de nuestra tarjeta de crdito? Meneame 0 Divlgame 0 Divoblogger 0 Bitacoras Reddit 0 Delicious Facebook Twitter

La Navidad est a la vuelta de la esquina. Este perodo del ao que a tanta gente gusta (y tanta gente odia, por qu no decirlo) se caracteriza por las compras poco habituales, por el dinero extra que gasta todo hijo de vecino, ya sea en comida, salidas con los amigos y con la familia, regalos (pero de eso no se encargaban? Mejor lo dejamos ah), etc. Y, como en la mayora de las operaciones relacionadas con dinero, en la actualidad est bastante claro que la tarjeta de crdito es la gran protagonista. Ya sea en persona o por internet, cada da utilizamos ese artilugio que nos permite comprar sin dinero fsico en nuestras manos o que nos permite obtener parte de nuestro dinero a travs de un cajero (que alguien que conozco denomina darle un pellizco a la pared). Bien, analicemos ahora nuestra tarjeta. Podemos ver que el nmero de la misma consta de 16 dgitos separados en grupos de 4. Lo que vamos a hacer en este artculo es explicar qu significan cada uno de esos nmeros y resaltar el papel que las matemticas tienen en el nmero de la tarjeta en su conjunto.

Los nmeros de una tarjeta de crditoComo decamos, el nmero de nuestra tarjeta consta de 16 dgitos, como por ejemplo vemos en la tarjeta que aparece en la imagen de la derecha. Estn separados en grupos de 4 para poder identificarlo mejor, es decir, no es porque cada grupo de 4 dgitos signifique una cosa, sino que la razn

eminentemente prctica. Vamos a tomar como ejemplo el nmero de la imagen:

El significado de esos 16 nmeros es el siguiente:

Los cuatro primeros dgitos ( en nuestro caso) son el nmero de identificacin de la entidad que nos proporciona la tarjeta, que es diferente segn la entidad a la que corresponde (hasta siendo de la misma entidad, dos tarjetas de distintos continentes pueden tener nmeros distintos). El siguiente dgito, ( en la nuestra) indica el tipo de tarjeta y la entidad financiera a la que corresponde (American Express, VISA, ). Los diez dgitos posteriores (en nuestro ejemplo, ) son algo as como el nmero de identificacin del usuario al que pertenece la tarjeta, que lo identifican de forma nica. El dgito final ( en la de la imagen) es un dgito de control.

Y en este ltimo punto es donde entras las matemticas. El dgito de control se calcula a partir de los dgitos anteriores y sirve para confirmar que el nmero de la tarjeta es un nmero vlido (seguro que a muchos esto os recuerda al post sobre el ISBN). Tengamos en cuenta que hay muchos lugares donde se pueden introducir nmeros de tarjeta, por lo que es interesante que exista un algoritmo para desechar nmeros de tarjeta falsos. El algoritmo que se utiliza para calcular el dgito de control de una tarjeta se denomina algoritmo de Luhn, y se debe al informtico alemn Hans Peter Luhn. Est basado en la aritmtica modular y los pasos a seguir son los siguientes: 1. De izquierda a derecha, tomamos las cifras que aparecen en las posiciones impares y las multiplicamos por 2. Si el nmero obtenido es menor que 10 nos quedamos con l y si es mayor que 10 sumamos las cifras de ese nmero y nos quedamos con el resultado (esto es, calculamos el valor del resultado mdulo 9). 2. Sumamos todos los resultados obtenidos en el paso anterior. Digamos que esa suma vale . 3. Sumamos todos los dgitos que aparecen en las posiciones pares del nmero de la tarjeta (excepto el dgito de control, que es el que no sabemos). Llamemos a dicha suma. 4. Ahora sumamos los dos resultados anteriores. Tomamos el valor de esta suma y vamos restando 10 hasta obtener un nmero entre 0 y 9 (es decir, calculamos Suma mdulo 10). Entonces el dgito de control (DC) es 10 menos ese nmero obtenido. Expresado matemticamente:

Para saber si un nmero de tarjeta es falso lo que podemos hacer es aadir el ltimo dgito del nmero (el supuesto dgito de control) a la suma de los dgitos de las posiciones pares. Si el resultado de A+B no es mltiplo de 10 (es decr, si no es igual a 0 mdulo 10) entonces el nmero de la tarjeta es falso.

Vamos a poner un ejemplo, y para ello utilizaremos que aparece en la imagen anterior:

Colocaremos todos los datos en una tabla y despus veremos si la suma final es no es mltiplo de 10: Nmero de tarjeta Dgitos en posicin par Suma Ahora: 1234567812345678 6 2 4 1 6 5 8 2 2 6 4 1 6 5 A=28 8 B=40

Impares por 2 mdulo 9 2

1 2 6 4 1 6 5 8 1 2 6 4 1 6 5 8 A+B=68

Por tanto el nmero de la tarjeta de la imagen es falso. Podis probar con vuestras tarjetas de crdito para comprobar que el algoritmo da resultados correctos, esto es, que los nmeros de vuestras tarjetas son totalmente verdaderos..

Cmo recuperar un dgito perdido de un nmero de tarjeta?Como es evidente, este algoritmo puede echarnos una mano en algn momento. Imaginemos que no recordamos un dgito del nmero de nuestra tarjeta (o que dudamos entre varios, que no lo tenemos claro), querecordamos todos los dems y que sabemos qu posicin ocupa el que se nos ha olvidado. Entonces el algoritmo de Luhn nos ayuda a recuperar ese nmero. Tomemos como ejemplo el nmero

Supongamos que ese es nuestro nmero de tarjeta, pero que no recordamos qu dgito es el que corresponde a la posicin que ocupa . Bien, para calcular cul es ese dgito simplemente planteamos el algoritmo de Luhn fijndonos en si ocupa una posicin par o una impar y recordando que el resultado final debe ser igual a 0 mdulo 10. En nuestro caso nos queda:o o o

Por tanto debe cumplirse que que hay que recordar que si

sea un mltiplo de 10. Bueno, no exactamente, ya es mayor o igual que 10 hay que sumar sus cifras.

Bueno, vamos a ver qu valor tiene . Por un lado, si , obtenemos que es un nmero de una cifra, por lo que nos quedaramos con su valor. Pero en ese caso tendramos que es un nmero impar, por lo que es imposible que sea igual a 0 mdulo 10. Por ello, debe ser . Probando ahora con el resto de valores posibles deo o o o o

obtenemos el resultado: . No. . No. . No. . Si. . No. y el nmero de nuestra tarjeta

: entonces : entonces : entonces : entonces : entonces

y el resultado sera y el resultado sera y el resultado sera y el resultado sera y el resultado sera

Con esto calculamos el dgito que nos faltaba. Era quedara as:

Y ya que hablamos de tarjetas, supongo que sta es la que debera tener yo, no?