Mühendislik ve Teknoloji

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

Kredi kartı ile alışveriş yapmak istediğiniz zamanlarda bir çoğumuz kart numaramızı yanlış gireriz. Örneğin kart numaranızdaki 44371 yerine 44317 yazarsanız sistem sizden numaranızı tekrarlamanızı ister. Bu hatanın tespiti Luhn Algoritması sayesinde olur. Bir banka kartı numarasının geçerliliği için gerekli olan test, 1954’te IBM’de çalışan bir bilim insanı olan Hans Peter Luhn tarafından, çoğu insanın banka veya kredi kartı olmadan önce icat edildi. Luhn Algoritması, kötü niyetli saldırılara karşı koruma sağlamak için değil, yanlışlıkla yapılan hatalara karşı koruma sağlamak için tasarlandı. Algoritmanın işleyişi, 19. yüzyılın başlarında Carl Friedrich Gauss tarafından geliştirilen matematiksel bir teknik olan modüler aritmetik üzerine kuruludur.

Ç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. Bu rakam Luhn Algoritması ile üretilmektedir.

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

Öncelikle bir banka kartı numarasının 16 hanesini aralıklı olarak yazın. Önce ilk numaranın altını çizin. Sonra bir atlayarak diğer numaralar için de aynı şeyi yapın. Daha sonra tüm altını çizdiğiniz sayıları iki ile çarpın. Örneğin kart numaramız 4 4 3 7 1 2 1 4 5 6 1 8 9 1 7 3 olsun. İşaretlediğimiz sayıların iki katını aldığımızda 8 6 2 2 10 2 18 14 elde ederiz.

Şimdi bütün sayıları toplayın. Bu esnada dikkat etmeniz gereken şey eğer sayınız iki basamaklı ise basamakları ayrı ayrı toplamalısınız. Yani 18 yerine 1+8 düşünmelisiniz. Bu durumda toplamımız 8+6+2+2+1+0+2+1+8+1+4+4+7+2+4+6+8+1+3= 70 biçiminde olacaktır. 70’in 10’a tam bölünebilmesi kartın geçerli olduğunu ve hata yapılmadığını gösterir. Hata yapsaydınız tam bölünmesi mümkün olmayacaktı.

American Express kartlarının yalnızca 15 hanesi vardır. Bu durumda hesaplamamızı biraz değiştirmemiz gerekiyor. Kart numaramızda bu sefer ilk olarak soldan ikinci haneyi işaretleyeceğiz. Yine bir atlayarak işaretlemeye devam edeceğiz. Sürecin devamı aynı biçimde. Örneğin kart numaramız 3 7 8 2 8 2 2 4 6 3 1 0 0 0 5 biçiminde olsun.

İşaretli rakamların toplamı: (1 + 4) + 4 + 4 + 8 + 6 + 0 + 0 = 27
İşaretli olmayanların toplamı: 3 + 8 + 8 + 2 + 6 + 1 + 0 + 5 = 33.

2 sayı kümesinin toplamı 60’tır, yine 10 sayısının katıdır. Bu da bir kere daha hata yapmadığımızın göstergesidir. Son bir örnek daha verelim. Bu sefer ki örneğimiz de Diners Club kartını içersin. Bu kartlarda 14 hane bulunur ve 300 veya 305 ile başlar. Örneğin numaramız 3 0 5 6 9 3 0 9 0 2 5 9 0 4 olsun. 14 sayısı çift olduğu için 16 haneli kart ile yaptığımız tekniğin aynısını uygulayacağız. Baştan başlayarak bir atlamalı biçimde sayıları işaretledik. Şimdi bunların iki katını alacağız ve çıkan rakamların hepsini toplayacağız. Süreci takip ederseniz 50 sayısına ulaşırsınız ve bu da girdiğiniz kart numarasının doğru olduğunu gösterir.

Luhn Algoritması Nerede Kullanılıyor?

Fark ettiğiniz gibi oldukça basit bir algoritma olan Luhn algoritması daha evvelde dediğimiz gibi kökenlerini modüler matematikten alır. Bu nedenle “mod 10” algoritması olarak da bilinir. 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. Bunun sonucunda Luhn algoritması Mastercard, American Express, Visa ve diğer tüm kredi kartları tarafından kullanılır. Kredi kartı numaralarına ek olarak, bu algoritma aynı zamanda SIM kart numaralarındaki kontrol basamağını hesaplamak için de kullanılır. İşin en güzel tarafı tüm bunlar siz farkında olmadan arka planda olup biter. Çevrimiçi sipariş verirken veya bir satıcının satış noktası (POS) terminalini kullanırken, bilgisayar sistemleri bilgilerimizi girerken arka planda matematik bizim için çalışmaya devam eder.

Kaynak:

Matematiksel

Sibel Çağlar

Merhabalar. Matematik öğretmeni olarak başladığım hayatıma 2016 yılında kurduğum matematiksel.org web sitesinde içerikler üreterek devam ediyorum. Matematiğin aydınlık yüzünü paylaşıyorum. Amacım matematiğin hayattan kopuk olmadığını kanıtlamaktı. Devamında ekip arkadaşlarımın da dahil olması ile kocaman bir aile olduk. Amacımıza da kısmen ulaştık. Yolumuz daha uzun ama kesinlikle çok keyifli.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu