A ben seguro que vostede tivo que escribir máis dunha vez o número da súa tarxeta de crédito -ou de débito- para facer algunha compra. Do que xa non teño tanta certeza é de se a procedencia do número da tarxeta de crédito lle produciría algunha curiosidade. É enteiramente aleatorio? Contén información sobre a persoa titular da tarxeta? Sobre a entidade emisora?
Pero hai algo no que seguro que si se fixou: o número da tarxeta de crédito, está formado por 16 díxitos, quee ademais adoitan aparecer separados en catro grupos de catro cifras cada un. Ben, en realidade hai algunhas tarxetas cunha extensión diferente, pero a gran maioría si consta de 16 díxitos. E resulta que non, o número que vostede ten na súa tarxeta non foi elixido ao azar. En absoluto, é máis ben ao contrario, e todo está ben pensado e controlado. Iso si, a agrupación de catro en catro non ten maior importancia, débese tan só a unha maior comodidade.
Así que imos debullar a composición das típicas tarxetas de 16 díxitos, que está regulada polo estándar internacional ISO/IEC 7812. Os primeiros sete destínanse a identificar o tipo de tarxeta, a entidade emisora e a zona xeográfica. Por motivos de seguridade parte dos rangos completos non se fan públicos, senón que as institucións que desexen ter acceso a eles deben estar debidamente rexistradas e asinar un acordo de licencia. Pero algúns si son coñecidos, e por poñer algún exemplo as tarxetas VISA comezan todas por un 4, mentres que as Mastercard (figura 1) teñen asignado o rango do 51 ao 55.
O resto dos díxitos, salvo o último, veñen dados polo código interno de cada entidade emisora, e con eles asocian cada tarxeta coa persoa titular correspondente. Iso xa forma parte do ámbito privado. Ese décimo sexto e último díxito, con todo, non está asignado polo emisor, nin por un rango preestablecido nin nada parecido; son as matemáticas quen o adxudican. Trátase, como vostede xa puido intuír, dun díxito de control que se calcula mediante o algoritmo de Luhn.
Ese procedemento foi creado en 1954 por Hans Peter Luhn (1896 – 1964), e utiliza as congruencias en módulo 10. Trátase dunha suma de verificación que se usa para validar números de identificación; o número da tarxeta de crédito é un dos seus usos, pero non o único (lea vostede os meus Bocados Matemáticos e saberá dalgún máis). Orixinalmente Luhn solicitou unha patente para o seu algoritmo, pero na actualidade é de dominio público, de aí a súa ampla difusión.
Antes de explicar como se calcula ese díxito de control, imos insistir na súa utilidade: o número da tarxeta de crédito escríbese e intercámbiase en moitas ocasións, o cal pode levar a erros de transcrición, e por iso cómpre dispoñer dun sistema que axude a detectar equivocacións e minimice ao máximo posible a existencia de erros. O algoritmo de Luhn contribúe enormemente nese sentido, xa que determina que hai un erro se ao escribir o número está trabucado un único díxito ou se dúas cifras adxacentes aparecen intercambiadas. Iso si, non é infalible, non detecta se aparece un 09 no canto dun 90 (ou viceversa) e pode ser “enganado” se hai máis dun díxito cambiado.
A mellor forma de comprender o algoritmo de Luhn é, por suposto, partir dun exemplo real. Fixémonos pois no número da tarxeta da figura 1, que é 5412 7512 3412 3456. Supoñendo que non coñecemos aínda o número de control desa tarxeta, teriamos máis ben 5412 7512 3412 345X, sendo X o díxito de control que se debe achar.
Se aplicamos o algoritmo aos primeiros 15 díxitos, ten que ofrecer como resultado o díxito de control 6, dado que ese é o valor do último díxito da tarxeta que tomamos como referencia. O procedemento, que se pode consultar na táboa , consiste en multiplicar alternativamente por 1 e por 2 cada un deses díxitos, empezando cun 2 á dereita, e sumar todos os resultados. Ademais, úsase a raíz dixital de cada produto obtido, que non é máis que a suma dos seus díxitos; de obter un 14 ao multiplicar por 2, na suma non se contempla ese mesmo 14 senón 1 + 4 = 5.
Unha vez obtido o resultado da suma, que no exemplo tomado é 48, o díxito de control X que se agrega ao número da tarxeta de crédito é a cantidade que se debe engadir á suma para obter un múltiplo de 10. No noso caso o devandito múltiplo sería 50, e por tanto X = 2. E velaquí a sorpresa, a tarxeta da figura 1, que está sacada da páxina web de Mastercard… ten un número que non é válido!1.
Superada a sorpresa deste “engano”, imos reescribir o último paso do algoritmo dunha forma equivalente pero empregando a notación das congruencias, da aritmética modular. O cálculo do díxito de control X que fixemos no parágrafo anterior equivale nin máis nin menos que a preguntarnos polo valor que se precisa engadir á suma S para que esta sexa igual a 0 en módulo 10. Escrito simbolicamente sería algo coma , e no noso exemplo temos que .
Velaquí pois un novo uso das congruencias de módulo 10, moi similar ao que se usa no código ISBN dos libros. E é que os díxitos de control son unha ferramenta moi frecuente que se espalla ao noso redor incluso aínda que non nos demos conta. Así que busque vostede, busque, e a ver se é quen de atopar algún outro código ou número no que tamén se empreguen.
1 Pode comprobalo vostede nalgún dos validadores en liña coma o que se ofrece na páxina <https://www.vccgenerator.com/es/validador-de-tarjeta-de-credito/>.