Kamis, 13 April 2017

Analisa Algoritma RSA Pada Penggunaan QR-Code



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

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)
Share: