Hayatımızdaki Matematik

Luhn Algoritması İle Kredi Kartınız Nasıl Doğrulanır?

Luhn algoritması, kredi kartı numaralarının geçerliliğini denetlemede kullanılan sade, işlevsel ve matematik temelli bir yöntemdir.

Çoğu kredi kartı ve banka kartı 16 hanelidir. Visa kartındaki ilk rakam 4, MasterCard’da 5 ve American Express’te 3’tür. Tüm bu kartlarda kart üzerindeki sayı dizisinin son rakamı kontrol numarasıdır. Check digit olarak isimlendirilen bu rakam, kredi kartı numarasının geçerli olup olmadığını kontrol etmektedir.

Online alışverişin son adımına geldiniz. Ödeme ekranında kredi kartı numaranızı giriyorsunuz. Ancak bir anda karşınıza kırmızı bir uyarı çıkıyor: “Lütfen geçerli bir kredi kartı numarası girin.” Şaşkınlıkla rakamları yeniden kontrol ediyorsunuz ve hatayı fark ediyorsunuz: Beş yazmanız gerekirken altı yazmışsınız.

Düzeltmeyi yapar yapmaz ödeme tamamlanıyor. Peki sistem bu hatayı nasıl bu kadar hızlı fark etti? Sitenin, tüm geçerli kredi kartı numaralarının yer aldığı dev bir veri tabanına mı erişimi var? Ya da bankanıza anında mı ulaşıldı? Cevap bundan çok daha zekice.

Günümüzde kullanılan tüm kredi kartı numaraları, yazım hatalarını önceden fark edebilen bir matematiksel mekanizma içerir. Bu mekanizmanın adı, 1960 yılında IBM araştırmacısı Hans Peter Luhn tarafından geliştirilen ve patenti alınan Luhn algoritmasıdır.

Hans Peter Luhn (1896-1964), mühendis, mucit ve matematikçidir. Günümüzde en çok Luhn Algoritması ve otomatik bilgi işleme üzerine yaptığı çalışmalarla tanınmaktadır.

Luhn Algoritması Nedir?

Cüzdanınızdan bir kredi kartı çıkardığınızda, üzerinde rastgele gibi görünen sayıların aslında belirli bir yapıya göre düzenlendiğini fark edersiniz. Tüm kredi ve banka kartlarının üzerinde genellikle 16 haneli basılı rakamlar yer alır. Bu rakamlar, bir kart için benzersiz bir hesap numarasını belirtir ve kartı veren kuruluş ve ilgili hesap hakkında bazı bilgileri saklar. Bu nedenle de belli bir modeli takip eder.

Tipik bir 16 haneli kredi kartı numarasında, ilk 15 hane kartı veren banka tarafından belirlenmektedir. Ancak kontrol basamağı olarak adlandırılan son hane, diğer tüm hanelere göre matematiksel olarak atanır.

Tipik bir on altı haneli kredi kartı numarasında, ilk on beş hane ilgili banka tarafından belirlenmektedir. İlk haneler, kartın ait olduğu banka ve ödeme ağı hakkında bilgi verir. Örneğin, Visa kartları genellikle “4” ile, Mastercard kartları ise “5” ile başlar.

Hemen ardından gelen beş ila yedi hanelik bölüm, kartı veren banka ya da finans kuruluşunu tanımlar. Bu bölüm, kart sahibinin bağlı olduğu kurumu belirler. Kalan rakamlar (son rakam hariç), kart sahibinin ilgili bankadaki kişisel hesap numarasını temsil eder.

Son hane, yani “kontrol basamağı”, doğrudan bir finans kurumu bilgisi taşımaz. Bunun yerine, kart numarasının geçerli olup olmadığını kontrol eden özel bir matematiksel işlem için eklenir.

Luhn Algoritması Nasıl Çalışır?

Algoritmanın işleyişi modüler aritmetik üzerine kuruludur. Luhn Algoritması, bir sayının mod 10 kontrolünden geçerek doğru olup olmadığını belirler ve şu adımlarla çalışır:

  • Son rakam hariç tüm kart numarasını yazın.
  • Sağdan başlayarak her iki rakamdan birini ikiyle çarpın.
  • Elde edilen çarpımların rakamlarını toplayın. Örneğin, 7 ikiyle çarpıldığında 14 eder; bu adımda 1 + 4 = 5 olarak değerlendirilir.
  • Bu toplamın üzerine son rakamı, yani kontrol basamağını ekleyin.
  • Eğer çıkan sonuç 10’un katıysa, kart numarası geçerlidir. Değilse, hatalı bir numarayla karşı karşıyasınız.

Luhn algoritmasının nasıl çalıştığını daha iyi anlamak için somut bir örnek üzerinden ilerleyelim. Diyelim ki elimizde 16 haneli bir banka kartı numarası var. Bu numaranın ilk 15 hanesi şöyle olsun: 5333 6195 0371 570. Son haneyi henüz bilmediğimiz için x olarak bırakalım.

İlk adımda, son basamak hariç tüm rakamları yazmamız gerekir. İkinci adımda, en sağdan başlayarak her ikinci rakam ikiyle çarpılır. Son haneyi henüz bilmediğimiz için x olarak bırakalım.

Üçüncü adımda, çarpım sonucu iki basamaklı olan sayılar varsa, bu sayıların basamakları kendi içinde toplanır. Örneğin, 14 sayısı 1 + 4 = 5 ve 10 ise 1 + 0 = 1 olur. Sonucunuz aşağıdaki gibi olacaktır.

Luhn Algoritması İle Kredi Kartınız Nasıl Doğrulanır?
Herhangi bir Kredi/Banka kartı için kontrol basamağını hesaplama örneği

Tüm sayıları topladığınızda sonuç 48 + x olur. Bu toplamın 10’a tam bölünmesi gerekir. Bu durumda x = 2’dir, çünkü 48 + 2 = 50 ve 50, 10’un katıdır. Yani geçerli kart numarası budur.

Kredi kartı sağlayıcıları önce hesap numarasını belirler, ardından Luhn algoritmasının ilk üç adımını uygular. Bu işlemler sonucunda hangi kontrol basamağının eklenmesi gerektiği ortaya çıkar. Bu örnekte toplam 48 olduğuna göre, numaranın geçerli olabilmesi için son basamağın 2 olması gerekir.

Luhn Algoritması Ne Zaman İşe Yaramaz?

Luhn algoritmasını geçen bir kredi kartı numarası mutlaka geçerli olacak diye bir kural yoktur. Ancak algoritmayı geçemeyen bir numaranın kesinlikle geçersiz olduğu açıktır. Bu yöntem, sahte ya da hatalı numaralara karşı ilk ve hızlı bir kontrol mekanizması işlevi görür.

luhn algoritması
Günümüzde Luhn Algoritması popüler programlama dillerine ve kod kitaplıklarına entegre edilmiştir. Bu da Luhn tabanlı kimlik numarası doğrulamasını yeni yazılım uygulamalarına dahil etmeyi kolaylaştırır.

Kart numaranızı girerken tek bir rakamı yanlış yazarsanız, Luhn algoritması bunu anında tespit eder. Hatta yan yana duran iki rakamın yerini yanlışlıkla değiştirseniz bile, algoritma bu hatayı büyük ölçüde fark eder. Ancak istisnai bir durum vardır: 09’un 90 olarak yazılması ya da tam tersi. Bu özel değişim, Luhn algoritmasından kaçabilir.

1969 yılında Hollandalı matematikçi Jacobus Verhoeff, kullanıcıların yaptığı hatalar üzerine detaylı bir çalışma yayımladı. Araştırmasına göre, insanlar kart numarası girerken yaptıkları hataların yaklaşık yüzde 90’ı iki temel sebepten kaynaklanıyordu: tek bir rakamın yanlış girilmesi veya yan yana olan iki rakamın yer değiştirmesi.

Verhoeff, bu yaygın hataları algılamanın ötesine geçen daha gelişmiş bir algoritma geliştirdi. Bu algoritma yalnızca Luhn algoritmasının yakalayabildiği hataları değil, aynı zamanda 09/90 gibi özel yer değiştirme hatalarını ve daha karmaşık kaymaları da tespit edebiliyordu.

Verhoeff algoritması teknik açıdan Luhn’a göre daha üstün olmasına rağmen yaygın şekilde benimsenmedi. Bunun başlıca nedenlerinden biri, yapısının daha karmaşık olmasıydı. Diğer neden ise Luhn algoritmasının hâlihazırda kullanılmakta olması ve büyük çoğunlukla yeterli düzeyde başarı sağlamasıydı.

Sonuç Olarak

Bir dahaki sefere ödeme ekranında o sinir bozucu hata mesajı belirdiğinde, bunun arkasında çalışan basit bir matematiksel denklemin herkesin zamanını ve parasını koruduğunu hatırlayın.


Kaynaklar ve ileri okumalar:


Size Bir Mesajımız Var!

Matematiksel, matematiğe karşı duyulan önyargıyı azaltmak ve ilgiyi arttırmak amacıyla kurulmuş bir platformdur. Sitemizde, öncelikli olarak matematik ile ilgili yazılar yer almaktadır. Ancak, bilimin bütünsel yapısı itibari ile diğer bilim dalları ile ilgili konular da ilerleyen yıllarda sitemize dahil edilmiştir. Bu sitenin tek kazancı sizlere göstermek zorunda kaldığımız reklamlardır. Yüksek okunurluk düzeyine sahip bir web sitesi barındırmak ne yazık ki günümüzde oldukça masraflıdır. Bu konuda bizi anlayacağınızı umuyoruz. Ayrıca yazımızı paylaşarak da büyümemize destek olabilirsiniz. Matematik ile kalalım, bilim ile kalalım.

Matematiksel

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir