Ao olharmos para o nosso cartão verificamos que nele existem 16 dígitos em grupos de 4.
O que significa cada um desses números? Qual o papel das matemáticas no seu conjunto?
Os números de um cartão de crédito
Tomando como exemplo o cartão abaixo, vemos os 16 dígitos separados em grupos de 4. Estão assim para serem identificados mais facilmente e não porque cada grupo tenha um significado especial.
Vamos tomar como exemplo o número da imagem:
O significado desses 16 números é o seguinte:
- Os quatro primeiros dígitos ( no nosso caso) são o número de identificação da entidade que nos proporciona o cartão, que é diferente segundo a entidade a que corresponde (até sendo da mesma entidade, dois cartões de diferentes continentes podem ter números diferentes).
- O dígito seguinte, () indica o tipo de cartão e a identificação da entidade financeira a que se refere (American Express, VISA, …).
- Os dez dígitos seguintes (no nosso exemplo, ) são o número único de identificação do utilizador a que pertence o cartão.
- O dígito final ( na imagem) é um dígito de controlo.
E neste último ponto é onde entram as matemáticas. O dígito de controlo calcula-se a partir dos dígitos anteriores e serve para confirmar que o número do cartão é um número válido. Tenhamos em conta que há muitos locais onde nos solicitam para introduzir números do cartão, pelo que é interessante que exista um algorítmo para eliminar números de cartão falsos.
O algoritmo que se utiliza para calcular o dígito de controlo de um cartão denomina-se algoritmo de Luhn e deve-se ao informático alemão Hans Peter Luhn. Está baseado na aritmética modular e funciona da seguinte maneira:
Para saber se um número de cartão é falso o que podemos fazer é acrescentar o último dígito do número (o suposto dígito de controlo) à soma dos dígitos das posições pares. Se o resultado de A+B não é múltiplo de 10 (quer dizer, se não é igual ao módulo 10) então o número do cartão é falso.
Vamos dar um exemplo utilizando o mesmo número:
Colocaremos todos os dados numa tabela e depois veremos se a soma final é ou não é múltiplo de 10:
Número do cartão |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
Ímpares por 2 módulo 9 |
2 |
|
6 |
|
1 |
|
5 |
|
2 |
|
6 |
|
1 |
|
5 |
|
A=28 |
Dígitos em posição par |
|
2 |
|
4 |
|
6 |
|
8 |
|
2 |
|
4 |
|
6 |
|
8 |
B=40 |
Soma |
1 |
2 |
6 |
4 |
1 |
6 |
5 |
8 |
1 |
2 |
6 |
4 |
1 |
6 |
5 |
8 |
A+B=68 |
Agora:
Portanto, o número do cartão da imagem é falso. Podem provar com os vossos cartões de crédito para comprovar que o algorítmo dá resultados correctos, isto é, que os números dos vossos cartões são totalmente verdadeiros..
Como recuperar um dígito perdido de um número do cartão?
Como é evidente, este algorítmo pode-nos ajudar em qualquer altura. Imaginemos que não recordamos um dígito do número do nosso cartão (ou que não temos a certeza de alguns), que recordamos todos os outros e que sabemos que posição ocupa aquele que nos esqueceu. O algorítmo de Luhn ajuda-nos a recuperar esse número.
Tomemos como exemplo o número
Suponhamos que esse é o nosso número do cartão, mas que não nos lembramos do dígito que corresponde à posição que ocupa em . Bem, para calcular esse dígito simplesmente propomos o algorítmo de Luhn verificando se ocupa uma posição par ou ímpar e recordando que o resultado final deve ser igual a 0 módulo 10. No nosso caso obtemos:
Portanto, deve ser um múltiplo de 10. Bem, não exactamente, já que há que recordar que se é maior ou igual a 10 há que somar os dois números.
Vamos agora ver que valor tem . Por um lado, se , obtemos que é um número de uma cifra, pelo que ficaríamos com o seu valor. Mas nesse caso teríamos que é um número ímpar, pelo que é impossível que seja igual a 0 módulo 10. Por isso, deve ser .
Provando agora com o resto de valores possíveis de obtemos o resultado:
- : então e o resultado seria . Não.
- : então e o resultado seria . Não.
- : então e o resultado seria . Não.
- : então e o resultado seria . Sim.
- : então e o resultado seria . Não.
Com isto calculamos o dígito que nos faltava. Era e o número do nosso cartão ficaria assim:
Tradução Juris - Artigo original