1
1. Pendahuluan
Perkembangan teknologi memberikan fasilitas dan kemudahan dalam kehidupan manusia. Pertukaran informasi mudah dan cepat dilakukan.
Perkembangan Internet dan aplikasi menggunakan Internet, juga mengakibatkan berkembangnya pula kejahatan sistem informasi. Informasi yang bersifat pribadi
atau rahasia dapat diketahui pihak lain, dan beresiko untuk dipalsukan, atau digunakan tanpa ijin [1].
Salah satu sistem yang paling rentan terhadap pencurian informasi adalah teknologi smart card yaitu media pertukaran data pada sistem berbasis kartu.
Teknologi smart card bukanlah hal yang baru, penggunaan smart card sudah umum dijumpai seperti pada kartu kredit, bidang pendidikan seperti kartu
siswamahasiswa, perhubungan, industri jasa hingga digunakan sebagai kartu identitas multifungsi seorang karyawan pada suatu perusahaan. Oleh karena itu,
dibutuhkan keamanan data yang handal ketika terjadinya pertukaran data dalam sistem [2]. Pembobolan rekening bank menghiasi berita baru-baru ini. Selain
dengan cara penipuan undian lewat sms, transaksi kartu kredit, ATM Skimming juga perlu diwaspadai. Istilah ini digunakan untuk kejahatan dengan modus
pencurian data melalui kartu ATM atau kartu kredit nasabah bank [3].
Algoritma Luhn dapat digunakan untuk melakukan validasi terhadap nomor smart card. Proses validasi ini dapat digunakan sebagai pengamanan tahap
awal pada proses transaksi berbasis kartu. Pengamanan selanjutnya dapat digunakan teknik kriptografi untuk menyandikan nomor smart card, dengan
tujuan untuk menghindari pencurian nomor smart card. Salah satu algoritma kriptografi yang disepakati sebagai standar saat ini adalah Advanced Encryption
Standard AES. Advanced Encryption Standard AES merupakan standar enkripsi dengan kunci-simetris yang diadopsi oleh pemerintah Amerika Serikat.
Standar ini terdiri atas 3 blok cipher, yaitu AES-128, AES-192 dan AES-256, yang diadopsi dari koleksi yang lebih besar yang awalnya diterbitkan oleh Rijndael.
Masing-masing cipher memiliki ukuran 128-bit, dengan ukuran kunci masing- masing 128, 192, dan 256 bit. AES telah dianalisis secara luas dan sekarang
digunakan di seluruh dunia, seperti halnya dengan pendahulunya, Data Encryption
Standard DES. Berdasarkan latar belakang tersebut, maka dilakukan penelitian yang
membahas tentang implementasi algoritma Luhn pada aplikasi validasi smart card, dan pengamanan nomor smart card dengan teknik kriptografi Advanced
Encryption Standard AES.
2. Tinjauan Pustaka
Penelitian tentang verifikasi kartu kredit yang pernah dilakukan salah satunya adalah “Method and Apparatus for Credit Card Verfication”. Penelitian
tersebut menyebutkan tentang perlunya verifikasi kartu kredit, untuk menghindari kerugian pada pihak penjual ataupun pembeli. Teknik yang diajukan adalah
dengan menggunakan informasi gambar dan otorisasi data ke dalam kartu kredit.
2 Gambar identitas dari pemilik kartu ditanamkan ke dalam kartu kredit, disimpan
secara digital [4]. Penelitian yang membahas tentang penggunaan algoritma Luhn adalah
“Luhn Validation And Data Security Across Multiple Active Domains”. Penelitian tersebut membahas tentang penggunaan algoritma Luhn, untuk membangkitkan
dan memvalidasi token dari data sensitif, salah satunya adalah nomor kartu kredit [5].
Berdasarkan penelitian-penelitian yang telah dilakukan tentang algoritma Luhn dan validasi nomor kartu kredit, maka dilakukan penelitian yang bertujuan
untuk mengimplementasikan algoritma Luhn pada aplikasi validasi smart card. Pada penelitian ini juga ditambahkan lapisan keamanan dengan menggunakan
teknik kriptografi algoritma AES.
Penelitian yang dilakukan membahas tentang validasi nomor kartu kredit. Pada sistem yang terdapat pada kasir-kasir supermarket, bila nomor identitas
setiap barang yang ada dibuat berurutan, maka saat kasir salah memasukkan satu selisih angka saja, sistem akan tetap menganggap nomor yang dimasukkan
tersebut valid walaupun jenis barang yang diinginkan oleh pembeli tidak sama dengan jenis barang yang dimasukkan datanya oleh kasir. Hal yang sama berlaku
terhadap nomor kartu kredit. Bila nomor kartu kredit dibuat berurutan, maka sistem akan menganggap setiap nomor yang dimasukkan saat melakukan transaksi
hampir selalu merupakan nomor valid [6]. Berdasarkan masalah tersebut, maka dapat dilakukan cara baru untuk membangkitkan nomor kartu kredit yang baik.
Nomor kartu kredit sekarang ini merupakan hasil operasi dari nomor identitas yang dimiliki oleh tiap-tiap penyelenggara kartu kredit. Nomor kartu kredit pada
umumnya terdiri dari 13 sampai 16 digit. Untuk mencegah nomor kartu kredit yang berurutan, biasanya nomor-nomor yang dimiliki oleh masing-masing
pengguna kartu kredit merupakan hasil operasi dari angka-angka yang disebut Check Digit.
Check Digit terletak pada satu digit terakhir pada rangkaian nomor kartu kredit. Check Digit adalah bilangan yang ditambahkan untuk memastikan nomor
kartu kredit akan dinyatakan valid saat dilakukan pengecekan. Karena 6 digit awal dan 1 digit terakhir tersebut sudah memiliki arti, berarti tinggal tersisa 9 digit di
tengah yang berfungsi sebagai Account number. 10 kemungkinan angka dari angka 0 sampai dengan 9 yang dapat dimasukkan ke tiap digit dari 9 digit
account number tersebut, maka kombinasi yang dihasilkan dari 9 digit tersebut berjumlah 1 milyar kemungkinan nomor untuk masing-masing jenis kartu kredit.
Panjang
nomor kartu
kredit pun
berbeda-beda tergantung
dari penyelenggaraannya, kebanyakan nomor kartu kredit 16 digit. Berikut ini adalah
panjang nomor kartu kredit dari 3 bank yang telah disebutkan VISA 16 digit, MasterCard 16 digit, American Express 16 digit [7].
Penelitian yang dilakukan, menggunakan algoritma Luhn untuk validasi nomor smart card. Algoritma Luhn merupakan pertahanan garis depan pada
banyak layanan e-commerce. Algoritma tersebut digunakan untuk melakukan validasi berbagai macam nomor identitas, seperti nomor kartu MasterCard dan
Visa. Algoritma Luhn dibuat oleh IBM, dirancang untuk melindungi perusahaan dan konsumen terhadap kesalahan tidak disengaja atau kesalahan ketik [8].
3 Penelitian ini membahas teknik kriptografi AES. AES adalah singkatan dari
Advanced Encryption Standard, yakni teknik algoritma kriptografi yang juga dikenal dengan sebutan Rijndael. Dikembangkan oleh dua orang ahli kriptografi
Belgia, Joan Daemen dan Vincent Rijmen, standar Enkripsi AES kemudian diadopsi sebagai standar yang digunakan di Amerika Serikat, dan akhirnya di
seluruh penjuru dunia. AES adalah penerus dari Data Encryption Standard DES [9]. Rijndael mendukung panjang kunci 128 bit sampai 256 bit dengan step 32 bit.
Panjang kunci dan ukuran blok dapat dipilih secara independent. Setiap blok dienkripsi dalam sejumlah putaran tertentu. AES menetapkan panjang kunci
adalah 128 bit, 192 bit, dan 256 bit, maka dikenal AES-128, AES-192, dan AES- 256. Karena AES mempunyai panjang kunci paling sedikit 128 bit, sehingga AES
tahan terhadap serangan exhaustive key search dengan teknologi saat ini, dan dengan panjang kunci 128 bit, maka terdapat sebanyak
kemungkinan kunci. Jika digunakan komputer tercepat yang dapat mencoba 1 juta kunci setiap detik, maka akan dibutuhkan waktu
tahun untuk mencoba seluruh kemungkinan kunci. Jika digunakan komputer tercepat yang dapat
mencoba 1 juta kunci setiap milidetik, maka akan dibutuhkan waktu
tahun untuk mencoba seluruh kemungkinan kunci [10]. 3. Metode dan Perancangan Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: 1 Analisis kebutuhan dan pengumpulan
data, 2 Perancangan sistem, meliputi perancangan proses dan antarmuka, 3 Implementasi sistem, 4 Pengujian dan analisis sistem.
Analisis Kebutuhan dan Pengumpulan Data Perancangan Sistem meliputi Perancangan Proses, dan
Perancangan
Antarmuka
Implementasi Sistem
Pengujian dan Analisis Sistem
Gambar 1 Tahapan Penelitian
Tahapan penelitian pada Gambar 1, dijelaskan sebagai berikut: Tahap pertama: mengumpulkan data latar belakang masalah yaitu perlunya validasi
nomor kartu kredit, kemudian memilih metode validasi yang tepat, yaitu Algoritma Luhn dan teknik kriptografi AES; Tahap kedua: merancang proses
validasi menggunakan Algoritma LUHN, dan merancang tampilan aplikasi; Tahap ketiga: yaitu mengimplementasikan hasil perancangan aplikasi,
membangun aplikasi berdasarkan rancangan pada tahap sebelumnya. Sistem dikembangkan dalam bentuk aplikasi desktop. Data yang akan divalidasi adalah
nomor kartu kredit. Tahap keempat: adalah melakukan pengujian sistem dan
4 kemudian melakukan analisis terhadap hasil pengujian tersebut. Pengujian
dilakukan untuk mengetahui apakah tujuan pembuatan sistem telah tercapai yaitu berhasil mengetahui apakah suatu nomor kartu kredit valid atau tidak.
Mulai
Nomor Smart Card
Kunci Enkripsi
Proses Validasi dengan Luhn
Enkripsi dengan
AES
Hasil Enkripsi
Valid
Selesai Ya
Tidak
Gambar 2 Proses Enkripsi dan Validasi pada Sistem
Proses validasi dan enkripsi sistem ditunjukkan pada Gambar 2. Proses dimulai dengan input nomor smart card dan input kunci enkripsi. Proses
dilanjutkan dengan validasi nomor kartu, jika nomor kartu valid, maka dilakukan proses enkripsi.
5
Mulai
Nomor Smart Card Terenkripsi
Kunci Dekripsi
Proses Dekripsi dengan AES
Tampilkan Pesan Valid
Tampilkan Pesan
Tidak Valid Valid
Selesai Proses Validas
dengan Luhn
Ya
Tidak
Gambar 3 Proses Dekripsi dan Validasi pada Sistem
Proses dekripsi dan validasi merupakan kebalikan dari proses enkripsi, ditunjukkan pada Gambar 3. Proses ini diawali dengan input nomor smart card
yang telah terenkripsi, dan kunci untuk proses dekripsi. Selanjutnya nomor tersebut didekripsi, dan hasilnya dilakukan proses validasi dengan algoritma
Luhn. Output dari proses ini adalah pesan valid atau tidak valid.
6
mulai Input nomor smart
card Digit ke-1
adalah chek digit
I=2
Kalikan digit pada posisi ke-I dengan angka 2
Kurangi dengan angka
9 Hasil 9
I = I + 2 Digit
selesai dikalikan
Sum Of Digit = jumlahkan semua digit
tanpa digit Sum Of Digit x 9
Angka paling belakang sama
dengan chek digit
Valid
Tidak valid
Selesai Ya
Tidak Ya
Tidak
Gambar 4 Proses Validasi Nomor Smart Card dengan Algoritma Luhn
Detail Proses validasi nomor kartu kredit menggunakan algoritma Luhn ditunjukkan dengan flowchart, pada Gambar 4. Penjelasan langkah proses pada
Gambar 4 adalah sebagai berikut: 1 Input nomor kartu kredit;
2 Digit paling kanan adalah Check Digit;
7 3 Dimulai dari posisi ke-2 sebelah kanan, dilakukan perkalian digit tersebut
dengan angka dua; 4 Jika hasil dari langkah 3 adalah lebih dari 9, maka dilakukan pengurangan 9
pada angka tersebut; 5 Langkah 3 dan 4 dilakukan kembali untuk digit posisi ke- 4, 6, 8, dan
seterusnya; 6 Proses perhitungan Sum of Digits, yaitu dengan menjumlahkan semua digit
yang ada, tanpa Check Digit; 7 Sum of Digits dikalikan dengan 9;
8 Digit terakhir dari langkah 7 merupakan Check Digit sebenarnya. 9 Jika Check Digit dari langkah 8 dengan Check Digit dari langkah 2 sama,
maka nomor kartu kredit dinyatakan valid; 10 Selesai;
Contoh Proses Validasi nomor kartu kredit dengan menggunakan algoritma Luhn adalah sebagai berikut. Jika diketahui nomor kartu kredit adalah
5542135611412
, maka angka hasil proses validasi adalah 342, yang berarti valid karena digit terakhir antara nomor kartu kredit dengan angka tersebut adalah
sama, yaitu 2. Proses validasi dan hasilnya ditunjukkan pada Gambar 5. Jika diketahui IMEI suatu handphone adalah
358472042445412,
maka angka hasil proses validasi adalah 540. Digit terakhir nomor berbeda dengan
angka hasil proses validasi 2 tidak sama dengan 0, maka nomor tersebut tidak valid. Proses validasi dan hasilnya ditunjukkan pada Gambar 6.
Posisi 13
12 11 10 9
8 7
6 5
4 3
2 1
Nomor Kartu 5
5 4
2 1
3 5
6 1
1 4
1 2
Kalikan 2 5
10 4
4 1
6 5
12 1
2 4
2 ?
Sum of Digit 5
1 4
4 1
6 5
3 1
2 4
2 ?
38
Gambar 5 Contoh 1 Proses Validasi Nomor Kartu Kredit
Check Digit = 2 Sum of Digit = 38
38 x 9 = 342
Posisi 15
14 13 12 11 10 9
8 7
6 5
4 3
2 1
Nomor 3
5 8
4 7
2 4
2 4
4 5
4 1
2
Kalikan 2
3 10
8 8
7 4
8 2
8 4
10 4
2 ?
Sum of Digit
3 1
8 8
7 4
8 2
8 4
1 4
2 ?
60
Gambar 6 Contoh 2 Proses Validasi IMEI tidak valid
Check Digit = 2 Sum of Digit = 60
60 x 9 = 540
8
4. Hasil dan Pembahasan