Analisa Algoritma RSA Pada Penggunaan QR-Code
Abdur Rahman
201210370311154
JurusanTeknik
Informatika
Universitas
Muhamadiyyah Malang
E-mail : sayaabdurrahman@gmail.com
Abstrak
Quick Response Code
merupakan sebuah barcode dua dimensi yang diperkenalkan oleh perusahaan jepang
Denso Wave pada 1994. Jenis barcode ini awalnya digunakan untuk peddataan
inventaris pruduksi suku cadang kendaraan dan sekarang sudah digunakan dalam
berbagai bidang, QR Code jugak bisa menyimpan dan mengarahkan pengguna ke
alamat URL yang dituju. QR Code jugak
dapat mengamankan suatu data pribadi dengan menggunakan kriptografi algoritrima
RSA (Rivest Shamir Adleman) karena algoritma RSA merupakan algoritma enkripsi
reversible.
Kata kunci: Algoritma RSA, kriptografi, QR
Code
1. Pendahuluan
Kriptografi
merupakan pilihan yang tepat dalam pengaman semacam ini. Algoritma kriptografi
dibagi menjadi dua yaitu, algoritma simetris dan asimetris. Kriptografi
simetris hanya memakai satu kunci dalam proses enkripsi dan dekripsi. Tingkat
kompleksitas algoritma ini tidak terlalu tinggi, atau bisa dikatakan ringan.
Kriptografi asimetrik hanya memiliki 1 kunci public enkripsi, tetapi hanya yang
memiliki kunci private yang dapat mendekripsi pesan. Jadi tingkat keamanan
lebih tinggi dibandingkan kritografi simetris, tetapi tingkat kompleksitas algoritmanya lebih tinggi. Alur
dari kriptografi asimetris dapat dilihat pada gambar
Gambar alur
umum kriptografi asimetris.
Algoritma kriptografi RSA dianggap dapat memenuhi tingkat sekuriti
yang tinggi. Dengan kombinasi hasil kali 2 bilangan prima, akan sulit untuk
ditemukan dan akan memakan waktu yang sangat lama jika menggunakan bruteforce.
Kunci RSA dengan panjang 1024bit akan menghabiskan waktu 1.43 x 10¬213 tahun.
Waktu yang diperlukan melebihi perkiraan umur alam semesta yang dikalkulasi
hanya sekitar 13.75 x 109 tahun.
QR Code ( Quick Response Code) adalah salah satu kode matrik atau
kode batang dua demensi yang dikembangkan oleh Denso Wave. QR Code pertama kali
di publikasikan pada tahun 1994. Sedangkan perangkat yang digunakan untuk
membaca QR Code disebut QR Scaner, atau pemindah QR.Fungsi utama QR Code adalah
untuk menyampaikan informasi pada kode dengan cepat dan respon yang cepat.
Pada tahun 2012 Zhang, Yao dan Zhou melakukan penelitian dengan
mengembangkan aplikasi tiket elektronik berbasis QR Code pada handphone yang
telah di enkripsi dengan menggunakan algoritma RSA untuk industri pariwisata
ditaman Shenzhen Happy Valley China. Dengan adanya pengembang aplikasi ini,
maka akan memberikan kemudahan dan keamanan bagi wisatawan dalam melakukan
transaksi tiket.
2. Ruang lingkup
2.1 Kriptografi
Kriptografi (cryptography)
berasal dari bahasa Yunani, terdiri dari dua suku kata yaitu kripto dan
graphia. Kripto artinya menyembunyikan, sedangkan graphia artinya tulisan.
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data,
keabsahan data, integritas data, serta autentikasi data (Menezes, Oorschot and
Vanstone, 1996). Tetapi tidak semua aspek keamanan informasi dapat diselesaikan
dengan kriptografi.
Kriptografi dapat pula diartikan sebagai ilmu atau
seni untuk menjaga keamanan pesan. Ketika suatu pesan dikirim dari suatu tempat
ke tempat lain, isi pesan tersebut mungkin dapat disadap oleh pihak lain yang
tidak berhak untuk mengetahui isi pesan tersebut. Untuk menjaga pesan, maka
pesan tersebut dapat diubah menjadi suatu kode yang tidak dapat dimengerti oleh
pihak lain.
2.2
Algoritma RSA
Algoritma RSA adalah
algoritma berdasarkan skema kunci public kriptografi. Diberikan nama RSA
sebagai inisial para penemunya Ron Riverst, Adi Shamir, dan Leonard Adleman.
RSA dibuat di MIT pada tahun 1977 dan di
patenkan oleh MIT pada tahun 1983.Algoritma RSA adalah algoritma yang mudah untuk
diimplementasikan dan dimengerti. Keamanan algoritma RSA terletak pada sulitnya
memfaktorkan bilangan yang besar menjadi di factor-faktor prima atribut-atribut penting pada
algoritma RSA adalah sebagai berikut
1. p
dan q bilangan prima (rahasia)
2. n
= p × q (tidak
rahasia)
3. f(n) = (p – 1)(q – 1) (rahasia)
4.
e (kunci enkripsi) (tidak rahasia)
Syarat: PBB(e, f(n)) = 1
5. d (kunci dekripsi) (rahasia)
d dihitung dari d º e-1 mod (f(n) )
6. m (plainteks) (rahasia)
7. c (cipherteks) (tidak rahasia)
2.3 Tahap-Tahap
Algoritma RSA
Gambar
diagram Algoritma RSA
Misalkan
Budi ingin mengirim sebuah pesan melalui jalur yang kepada Ani. Ani akan
memberikan kunci publiknya kepada Budi sedangkan kunci privat akan disimpan
untuk dirinya sendiri.
a) Pilih 2
bilangan prima besar seperti p,q dimana p tidak sama
b) Hitung m =
p x q
c) Hitung n =
(p-1)*(q-1)
d) Pilih e
yang relatively prime terhadap n, e relatively prime terhadap n artinya factor
pembagi terbesar keduanya adalah 1, secara matematis dinotasikan gcd (e,n) = 1.
Untuk mencarinya dapat digunakan algoritma Euclid.
e) Hitung d
interger sehingga e*d = 1 mod n atau (1+mn)/e. untuk bilangan besar, dapat digunakan
algoritma extended Euclid.
f) (m,e)
adalah kunci public yang diberikan untuk pihak lain yang ingin berkomunikasi
(pihak yang akan mengirim pesan) untuk keperluan enkripsi
g) d adalah
kunci privat yang harus dipergunakan sendiri oleh pihak yang akan menerima
pesan untuk keperluan dekripsi.
2.4
Proses
Enkripsi RSA
Misalkan Budi ingin
mengirimkan pesan X ke Ani.
a) Budi akan menerima atau
mendapatkan kunci publik dari Ani yaitu (m,e). dengan menggunkan kunci publik
(m,e) untuk mengenkripsi pesan X. C = n^e (mod m) C adalah ciphertext hasil
enkripsi plaintext X
b) Budi akan mengirimkan C
tersebut kepada Ani.
2.5 Proses
Dekripsi RSA
Setelah ciphertext yang dikirim Budi diterima Ani,
akan menggunakan kunci privat (m,d) untuk mendekripsi ciphertext tersebut agar
dapat diketahui plaintextnya. Adapun tahapan-tahapan yang digunakan adalah
sebagai berikut :
a) N = C^d (mod m)
b) N adalah Plaintext yang
ditemukan setelah mendekripsi C dengan kunci private d dank unci publik m.
2.6 Quick Response Code (QR Code)
Quick Response Code atau yang sering disingkat dengan QR Code merupakan
sebuah barcode dua dimensi yang diperluakan oleh perusahaan jepang Denso Wave
pada tahun 1994. QR Code terdiri dari untaian kontak persegi yang disusun dalam
suatu pola persegi yang lebih besar, yang disebut module. Berikut gambar code
barcode
Gambar QR Code
2.7 Struktur
QR Code
QR Code memiliki
bagian-bagian struktur yang akan dijelaskan pada gambar dibawah ini
Gambar Struktur QR Code.
Berikut ini merupakan penjelasan dari istilah-istilah yang berkenaan
dengan gambar QR Code diatas :
1)
Finding Pattern merupakan pola
untuk mendeteksi posisi dari QR Code.
2)
Timing pattern merupakan pola yang
digunakan untuk indentifikasi koordinat pusat dari QR Code, dibuat dalam bentuk
modul hitam putih bergantian.
3)
Version information merupakan versi
dari sebuah QR Code, versi terkecil adalah 1 (21 x 21) modul dan versi terbesar
adalah 40 (177 x 177) modul.
4)
Quiet Zone merupakan daerah kosong
bagian terluar QR Code yang mempermudah mengenali pengenal QR oleh sensor CCD
(Charge Coupled Device).
5)
QR Code version merupakan versi QR
Code. Pada contoh gambar, versi yang digunakan adalah 3 (29 x 29 modul).
6)
Data merupakan daerah tempat data
tersimpan atau data dikodekan.
7)
Alignment Pattern merupakan pola
yang digunakan untuk memperbaiki penyimpangan QR Code terutama distorsi non
linear.
8)
Format Information merupakan
informasi tentang error correction level dan mask pattern.
3.1 Analisa Algoritma RSA pada QR Code
Flowcart Analisa
system QR Code
Gambar Flowchart
Contoh Kasus
Penggunaan Algoritma RSA :
Enkripsi
a.
Ambil Kunci public penerima pesan, e, dan modulus n,.
b.
Nyatakan plainteks m menjadi blok-blok m1, m2,..sedemikian sehingga setiap blok
merepresentasikan nilai didalam selang
[0, n – 1].
c.
Setiap blok mᵢ dienkripsi menjadi block cᵢ dengan rumus
c1 = m1 ᵉ
mod n
Dekripsi
d.
Setiap blok cipherteks cᵢ
didekripsi kembali menjadi blok mᵢ dengan
rumus m1 = cᵢᵈ mod n
Misalkan Abdur
mengirim pesan kepada Pendi pesan (Plantext) yang akan dikirim oleh Pendi
adalah
m = ABDUR RAHMAN
m = ABDUR RAHMAN
Atau adalah system decimal (pengkodean ASCII) adalah = 656668858232826572776578
Abdur memecah m menjadi blok yang lebih kecil, misalnya m
dipecah menjadi enam blok berukuran 3 digit :
m1 =
656 m5 = 826
m2 = 668 m6 = 572
m3 =
858 m7
= 776
m4 = 232 m8 = 578
Nilai-nilai mᵢ ini masih terletak
didalam selang [0,337-1] agar transformasi menjadi satu ke satu.
Abdur mengetahui kunci public
Pendi adalah e=79, d=1019 dan n=3337. Pendi dapat mengekripsikan setiap blok
plaintext sebagai berikut :
c1 = 656 79 mod 3337 = 1608;
c2 = 66879 mod 3337=2423;
c3 = 858 79 mod
3337=0666;
c4 = 232 79 mod
3337=2756;
c5 = 826 79 mod
3337=1670;
c6 = 572 79 mod
3337=3136;
c7 = 776 79 mod 3337=0014
c8 = 57879 mod
3337=578
Jadi, cipherteks yang dihasilkan adalah
C = 1608242306662756167031360014578
Dekripsi dilakukan dengan menggunakan sebagai berikut :
m1 = 16081019 mod 3337 = 656
m2 = 24231019 mod 3337 = 668
m3 = 06661019 mod 3337 = 858
m4 = 27561019 mod 3337 = 232
m5 = 16701019 mod 3337 = 826
m6 = 31361019 mod 3337 = 572
m7 = 00141019 mod 3337 = 776
m8 = 5781019 mod 3337 = 578
Blok plaintext yang lain dikembalikan dengan cara yang
serupa.
Akhirnya kita memperoleh kembali plaintext semula
m =
656668858232826572776578
yang dalam sistem pengkodean ASCII adalah
m =
ABDUR RAHMAN
Kesimpulan
RSA merupakan
metode penyandian yang masih kokoh untuk mengatasi masalah keamanan dalam
pengiriman data pada suatu jaringan pada media elektronik. Dari segi teknis
penghitungan, system RSA mempunyai cara enkripsi yang mudah, tetapi jika sudah
dienkripsi, data yang terenkripsi sulit untuk dibobol jika hanya mempunyai
kunci publiknya saja. Dalam proses pembuatan kunci publik dan kunci private,
terdapat beberapa faktor yang menjadi pertimbangan, yaitu ukuran dari kunci,
penentuan nilai p dan q agar sulit untuk dibobol, dan kemungkinan-kemungkinan kelemahan
yang dapat diketahui saat data selesai dienkripsi. Pada kehidupan sehari-hari,
aplikasi sistem RSA dapat ditemukan pada system autentikasi data dan pembuatan
tanda tangan digital pada computer.
Daftar Pustaka
[1]
Irwan Calvin. Enkripsi pada QR Code tike dengan RSA. Institut Teknologi Bandung. 2010.
[2]
Ir.Munir Rinaldi,M.T. Algoritma RSA dan ElGamal. 2004.
[3]
http://www.cs.virginia.edu/~kam6zx/rsa/a-worked-example/
(Diakses pada tanggal 15 desember 2015)