May 24, 2013

Tokoh Bernama Hans Peter Luhn


Setelah membahas tentang tipografi nomor kartu kredit, sekarang kita akan belajar sedikit tentang algoritma nomor-nomor kartu kredit. Pernahkah Anda berpikir apakah nomor-nomor kartu kredit adalah sebuah kombinasi angka yang unik, sembarang acak atau ada semacam rumusnya? Bagaimana jika ada yang salah dengan salah satu angka tersebut? Apakah kartu kredit tersebut bisa dipergunakan bahkan diaktifkan? Bukankah setiap orang bisa saja mengacak sembarang nomor untuk dijadikan nomor kartu kredit? Atau pernahkah Anda memiliki keinginan untuk memecahkannya atau membuat semacam script untuk mengecek validitas nomor-nomor yang ada pada sebuah kartu kredit?


Dalam dunia pengetahuan terutama ilmu matematika dan komputer kita mengenal istilah algoritma. Nah, pada prinsipnya kombinasi nomor-nomor kartu kredit, voucher isi pulsa, nomor jaminan sosial, nomor jaminan asuransi, barcode produk, kode IMEI perangkat selular, dan masih banyak lagi lainnya mengikuti sebuah perhitungan algoritma yang sistematis dan terstruktur. Jadi jika kita bisa memecahkan algoritma ini, kita bisa mendapatkan kombinasi nomor-nomor atau angka-angka yang valid. Nomor-nomor yang valid inilah menandakan bahwa kartu kredit, voucher pulsa, IMEI, kode produk, password, dsb. adalah sah dan bisa dipergunakan.

Untuk voucher isi pulsa apakah bisa dipergunakan atau tidak, tergantung kembali kepada pertanyaan apakah sudah pernah dipergunakan atau belum. Jika kombinasi angka valid tersebut belum pernah dipergunakan maka bisa kita pergunakan, tetapi jika sudah dipergunakan tentu tidak bisa lagi. Proses pengecekan atau pencocokan algoritma hanyalah untuk mengetahui bahwa kombinasi-kombinasi sebuah deretan nomor atau angka yang ada adalah valid. Untuk test case: coba Anda ambil sebuah voucher pulsa yang sudah terpakai. Anda hitung jumlah digit keseluruhan angka. Anda masukkan sembarangan angka dari 0 - 9 secara acak di semua digit tersebut. Seolah-olah Anda baru saja membeli dan mengosok kode pengaman dan mulai mengisi pulsa. Apa yang Anda dapatkan?

Percayalah, jika salah satu saja nomor yang Anda masukkan salah dalam perhitungan algoritma sudah pasti voucher itu tidak valid (tidak sah) alias error. Padahal sepertinya mudah karena angka-angka hanya ada 10 yakni dari 0 sampai 9. Jika ada satu angka saja yang salah di satu posisi deretan yang ada, otomatis semuanya menjadi salah. Angka pertama berpengaruh pada angka kedua, angka kedua berpengaruh pada angka ketiga, dst. Namun jika semuanya berhasil maka voucher tersebut bisa Anda pergunakan jika memang belum pernah dipergunakan. Tak heran kita melihat bahwa aturan isi pulsa adalah jika 10 kali salah memasukkan kode voucher otomatis nomor ponsel kita akan dinonaktifkan. Perusahaan operator selular melalui sistem mengetahui bahwa Anda berniat tidak baik yakni sedang mencoba menjebol sistem pengisian pulsa.

Kasus pembobolan kode voucher isi ulang beberapa waktu lalu yang sempat heboh terhadap salah satu perusahaan operator selular di Indonesia kurang lebih cara kerjanya seperti itu. Si pembobol berhasil memecahkan algoritma kode voucher sehingga bisa sembarangan menghasilkan kode voucher yang valid. Tak heran operator selular tersebut rugi milyaran rupiah dan harus mengubah algoritmanya lagi. Bagaimana tidak rugi? Vouchernya tidak terjual tetapi pulsa bisa diisi begitu saja bahkan diperjualbelikan. Tetapi Anda jangan terlalu senang jika mendapatkan tawaran seperti ini. Operator selular bukanlah perusahaan yang berisi orang-orang bodoh. Mereka akan tahu dari sistem nomor-nomor ponsel mana saja yang telah mengisi pulsa, dengan begitu jika lain kali Anda mengisi pulsa, otomatis pulsa Anda akan langsung disedot atau dipotong untuk menutup pembobolan yang Anda lakukan beberapa waktu lalu. Kecuali Anda menggunakan nomor ponsel yang baru setelah puas menggunakan pulsa hasil pembobolan kemarin. Tetapi rata-rata kita tidak pernah terpikir bukan? Makanya harap lebih mawas diri jika ada tawaran pulsa-pulsa murah. Ujung-ujungnya Anda juga akan membayar semuanya nanti.

Hampir semua produk di pasar, kode pengaman berbagai dokumen, nomor kartu kredit yang berisi deretan-deretan angka menggunakan sistem perhitungan cek digit algoritma seperti ini. Sistem algoritma berfungsi mengecek kombinasi validitas digit-digit angka yang terbentuk di dalamnya. Algoritma yang paling dikenal berkaitan dengan proses pengecekan status nomor kartu kredit adalah apa yang disebut algoritma cek digit Luhn. Cek digit ini diperkenalkan oleh seorang ilmuwan hebat IBM dari Jerman bernama Hans Peter Luhn (1896 - 1964). IBM memang memiliki banyak ilmuwan hebatnya apalagi di laboratorium riset mereka di San Jose, California.

Algoritma temuan Mr. Luhn ini sering disebut dengan algoritma modulus 10 yakni sebuah formula checksum sederhana untuk memvalidasi bermacam-macam nomor identifikasi. Algoritma Luhn ini merupakan perkembangan dari penelitian yang dilakukan oleh pendahulunya seorang ilmuan bernama Carl Friedrich Gauss (1801) yang terkenal akan teorinya aritmatika modulo (jam) yakni tentang sistem pengoperasian aritmatika untuk bilangan bulat. Jadi dari contoh pergerakan jam yakni 24 jam dari 00.00 - 23.00, maka jika saat ini pukul 20.00 (jam 8 malam) maka 5 jam lagi adalah pukul 01.00 bukan pukul 25.00. Karena angka jam direset otomatis setiap mencapai pukul 00.00 alias 24.00 Inilah yang disebut dengan modulus 24. Perlu diingat bahwa angka 24.00 bukanlah angka yang valid karena sama persis dengan 00.00, sama halnya dengan angka 03.60 yang adalah sama dengan 04.00.

Algoritma Luhn ini tidak didesain secara aman untuk fungsi kriptografi melainkan hanyalah sebagai sebuah upaya untuk menghindari penginputan data-data yang tidak valid atau tidak sah salam sebuah sistem bilangan. Karena itulah dengan mudah kita juga bisa menghitung sebuah nomor kartu kredit valid atau tidak menggunakan algoritma Luhn ini. Tanpa harus melalui sebuah program kriptografi yang biasanya dipergunakan untuk mengacak sistem elektronik komputasi transaksi perbankan. Algoritma cek digit Luhn adalah algoritma cek digit yang saat ini dipergunakan oleh seluruh bank besar di dunia yang menerbitkan kartu kredit. Kita akan mempelajarinya di artikel berikutnya.

Dari berbagai sumber

Mari Berteman ^^
David Iskandar | Create Your Badge