Laman

Thursday, 20 April 2017

Implementasi PRNG LCG Menggunakan Karakter Nama Pada Pembangkitkan Kunci RSA




Implementasi PRNG LCG Menggunakan Karakter Nama Pada Pembangkitkan Kunci RSA

BAB I

PENDAHULUAN

1.1            Latar Belakang Masalah
Kriptografi merupakan salah satu komponen yang tidak dapat diabaikan dalam membangun keamanan komputer. Kriftografi merupakan suatu ilmu dan seni (science and art) dalam penyandian data, yang bertujuan untuk menjaga kerahasiaan dan keamanan data dari serangan ataupun diketahui diketahui oleh pihak yang tidak berhak. Kriptografi menggunakan matematika aljabar, terutama teori bilangan sebagai dasar pengetahuan. Kriptografi juga mengandung seni karena dalam aplikasinya mengandung pola-pola tertentu yang digunakan sebagai sandi (Novi, 2011).
Kriptografi merupakan studi matematis yang terkait dengan aspek-aspek yang berhubungan dengan keamanan informasi seperti menyembunyikan isi data, mencegah data dapat dirubah tanpa terdeteksi, ataupun mencegah data digunakan tanpa otoritas yang cukup. Kriptografi dilakukan untuk menyembunyikan konten dari suatu informasi dengan mengubah informasi tersebut menjadi sandi dengan menggunakan kunci, dan untuk membacanya diperlukan kunci pula. Berdasarkan kerahasiaan kuncinya algoritma kriptografi dapat dibedakan menjadi algoritma sandi kunci (private key) dan algoritma sandi  kunci publik (public key). Salah satu algoritma kunci publik (public key) yang sering digunakan adalah algoritma Rivert-Shamir-Adleman (RSA) (Munawar, 2012).
            Penelitian mengenai implementasi algoritma RSA telah banyak dilakukan seperti yang dilakukan oleh Hamzah (Hamzah, 2012) dan Fresly (Fresly, 2015). Implementasi RSA membutuhkan dua bilangan prima yang memenuhi kondisi – kondisi tertentu sehingga menyulitkan dalam proses pembangkitan kunci yang mana beberapa implementasi lebih memilih menggunakan bilangan prima secara acak sehingga tidak ada kaitan sama sekali antara pengguna dan kunci yang dimilikinya.
            Pada penelitian ini akan dianalisis pembangkitan kunci pada kriptografi RSA dengan mengikutsertakan identitas pemilik seperti nama menggunakan metode pembangkit bilangan acak semu atau yang biasa sering disebut dengan Pseudo Random Number Generator. Salah satu metode pembangkit bilangan acak semu yang cukup terkenal yaitu LCG. LCG atau Linear Congruential Generator merupakan metode pembangkit bilangan acak semu yang menghasilkan bilangan acak yang memiliki periode dan sangat ditentukan oleh parameter input sehingga bilangan yang dibangkitkan tidak sepenuhnya acak (Janka, 2013).
            Implementasi LCG pada penelitian ini digunakan untuk membangkitkan bilangan acak semu yang digunakan dalam pembangkitan kunci pada algoritma RSA. Dengan menggunakan LCG maka identitas pemilik berpengaruh terhadap kunci publik maupun kunci private dari si pemilik sehingga kunci tetap dapat dibangkitkan kembali jika mengalami kehilangan atau kelupaan. Berdasarkan uraian tersebut, penulis melakukan penelitian terhadap implementasi PRNG pada pembangkitan kunci RSA dengan menggunakan identitas nama pemilik, maka dari itu penulis mengajukan judul penelitian tentang “Implementasi PRNG LCG Menggunakan Karakter Nama Pada Pembangkitkan Kunci RSA”.
1.2.      Rumusan Masalah
Adapun rumusan masalah yang akan dibahas dalam penelitian ini adalah sebagai berikut.
1.      Bagaimana mengimplementasikan LCG pada pembangkitan kunci pada RSA?
2.      Bagaimana tingkat keberhasilan pembangkitan LCG pada proses pembangkitan kunci RSA menggunakan identitas nama?
3.      Bagaimana keunikan setiap kunci RSA yang dibangkitkan menggunakan LCG?

1.3. Batasan Masalah

       Adapun batasan penelitian yang diberikan oleh peneliti dalam penelitian ini adalah :
1.      Implementasi penelitian ini menggunakan metode LCG dan RSA.
2.      Peneliti menggunakan input nama dari berbagai pengguna untuk menguji implementasi yang dilakukan.
3.      Pengujian dilakukan pada proses pembangkitkan kunci menggunakan LCG, proses enkripsi dan dekripsi kembali.
4.      Pengujian proses enkripsi dan dekripsi menggunakan media teks.

1.4. Tujuan Penelitian
            Tujuan dari penelitian ini adalah:
1.      Mengembangkan sistem implementasi pembangkitan kunci pada RSA menggunakan metode LCG.
2.      Menganalisis tingkat keberhasilan pembangkitan kunci pada RSA menggunakan PRNG.


1.5 Manfaat Penelitian
Manfaat dari penelitian ini adalah :
1.      Diharapkan dapat menambah pengetahuan dalam sistem keamanan khususnya kriptografi.
2.      Diharapkan dapat menjadi alternatif dalam pemilihan kunci RSA.
BAB II
TINJAUAN PUSTAKA

2.1       Kriptografi
            Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Dalam ilmu kriptografi, terdapat dua buah proses yaitu melakukan enkripsi dan dekripsi. Pesan yang akan dienkripsi disebut sebagai plaintext (teks biasa). Disebut demikian karena informasi ini dengan mudah dapat dibaca dan dipahami oleh siapa saja. Algoritma yang dipakai untuk mengenkripsi dan mendekripsi sebuah plaintext melibatkan penggunaan suatu bentuk kunci. Pesan plaintext yang telah dienkripsi (atau dikodekan) dikenal sebagai ciphertext (teks sandi) (Fresly, 2015).
Di dalam kriptografi dikenal berbagai istilah atau terminology. Beberapa istilah yang harus diketahui yaitu:
1.        Pesan, Plainteks, dan Cipherteks
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah (plaintext) atau teks jelas (cleartext).
2.        Pengirim dan Penerima
Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan.
3.        Enkripsi dan dekripsi
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption). Sedangkan proses mengembalikan cipherteks menjadi plainteks semula disebut dekripsi (decryption).
4.        Cipher dan kunci
Algoritma kriptogarfi disebut juga cipher, yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen-elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara dua himpunan tersebut.
Kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai:
      EK (P) = C dan DK (C) = P
Dan kedua fungsi ini memenuhi
      DK (Ek (P)) = P
Keterangan:
      P          = plainteks
      C         = cipherteks
      K         = kunci
      EK          = proses enkripsi menggunakan kunci K
      DK          = proses dekripsi menggunakan kunci K
Skema enkripsi dengan menggunakan kunci diperlihatkan pada gambar tersebut:
Gambar 2.1 Skema enkripsi dan dekripsi dengan menggunakan kunci
(Sumber: Timotius, 2012)

2.1.1    Sejarah Kriptografi
            Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik, yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana. Secara umum algoritma kriptografi klasik dikelompokkan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma substitusi (substitution cipher). Cipher transposisi mengubah susunan huruf-huruf di dalam pesan, sedangkan cipher substitusi mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf lain (Fresly, 2015).
2.1.2    Tujuan Kriptografi
Kriptografi bertujuan untuk member layanan keamanan. Yang dinamakan aspek-aspek keamanan (Fresly, 2015):
1.        Kerahasiaan (confidentiality)
Adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
2.        Integritas data (data integrity)
Adalah layanan yang menjamin bahwa pesan masih asli atau belum pernah dimanipulasi selama pengiriman.
3.        Otentikasi (authentication)
Adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user autehentication).
2.2       Keamanan Data
Keamanan merupakan salah satu aspek terpenting dari sebuah sistem informasi. Masalah keamanan sering kurang mendapat perhatian dari para perancang dan pengelola sistem informasi. Masalah keamanan sering berada diurutan setelah tampilan, atau bahkan diurutan terakhir dalam daftar hal-hal yang dianggap penting.

2.2.1    Teknologi Komunikasi
Teknologi informasi dan komunikasi mempermudah kehidupan manusia. Jika menggunakan alat teknologi informasi dan komunikasi, dua benua akan terasa tidak berjarak. Kehadiran komputer, internet, telepon seluler, dan berbagai alat teknologi informasi dan komunikasi membuat arus informasi semakin lancar. Teknologi informasi dan komunikasi memuat semua teknologi yang berhubungan dengan penanganan informasi. Penanganan ini meliputi pengambilan, pengumpulan, pengolahan, penyimpanan, penyebaran, dan penyajian informasi. Jadi, teknologi telekomunikasi adalah teknologi yang berhubungan dengan pengambilan, pengumpulan, pengolahan, penyimpanan, penyebaran, dan penyajian informasi (Harry, 2015).

2.2.2    Ancaman Keamanan Data
          Pertukaran informasi yang terjadi setiap detik di internet, baik itu komunikasi kabel maupun tanpa kabel (wireless), mendorong terjadinya ancaman keamanan yang terjadi terhadap informasi adalah:
1.        Interruption
Merupakan suatu ancaman terhadap availabilitas, informasi, data yang ada dalam sistem komputer di rusak, dihapus, sehingga data atau informasi tersebut tidak dapat digunakan lagi.
2.        Interception
Merupakan ancaman terhadap kerahasiaan (secrecy), informasi yang ada di sadap atau orang yang tidak berhak mendapat akses ke komputer di mana informasi tersebut di simpan.
3.        Fabrication
Merupakan ancaman terhadap integritas, yaitu orang yang tidak berhak yang meniru atau memalsukan informasi yang ada sehingga orang yang menerima informasi tersebut menyangka informasi tersebut berasal dari orang yang dikehendaki oleh si penerima informasi tersebut (Harry, 2015).
4.        Modification
Merupakan ancaman terhadap integritas. Orang yang tidak berhak berhasil menyadap lalu lintas informasi yang sedang dikirim dan diubah sesuai keinginan orang tersebut.

2.2.3    Keamanan System
Masalah keamanan merupakan salah satu aspek penting dari sebuah sistem informasi. Sayang sekali masalah keamanan ini sering kali kurang mendapat perhatian dari para pemilik dan pengelola sistem informasi. Seringkali masalah keamanan berada di urutan kedua, atau bahkan di urutan terakhir dalam daftar hal hal yang dianggap penting. Sistem adalah Sekumpulan hal atau kegiatan atau elemen atau subsistem yang saling bekerja sama atau yang dihubungkan dengan cara-cara tertentu sehingga membentuk satu kesatuan untuk melaksanakan suatu fungsi guna mencapai suatu tujuan (Harry, 2015).



2.3       Algoritma RSA
                Penemu pertama algoritma kriptografi kunci asimetri adalah Clifford Cocks, James H. Ellis dan Malcolm Williamson (sekelompok ahli matematika yang bekerja untuk United Kindom’s Government Communication Head Quarters, agen rahasia Inggris) pada awal tahun 1970. Pada waktu itu temuan itu dipublikasikan dan fakta mengenai temuan tersebut menjadi rahasia hingga tahun 1997. Algoritma kriptografi kunci asimetri untuk pertama kalinya dipublikasikan pada tahun 1976 oleh Whitfirld Diffie dan Martin Hellman. Dua orang tersebut merupakan ilmuwan dari Stanford University, yang membahas metode pendistribusian kunci rahasia melalui saluran komunikasi umum (public), yang kemudian metode tersebut dikenal dengan metode pertukaran kunci Diffie-Hellman (Diffie-Hellman Key Exchange).
Ide awal Clifford Cocks ditemukan kembali oleh sekelompok ilmuwan dari Massachussets Institute of Technology pada tahun 1977, sekelompok orang ini adalah Ron Rivest, Adi Shamir, dan Leonard Adleman. Mereka kemudian mempublikasikan temuan mereka pada tahun 1978 dan algoritma kriptografi kunci asimetri yang mereka temukan dikenal dengan nama algoritma kriptografi RSA. RSA itu sendiri merupakan akronim dari nama keluarga mereka, Rivest, Shamir, dan Adleman. Pada tahun 1983, Massachussets Institute of Technology menerima hak paten atas sebuah makalah berjudul “Cryptography Communication System and Method” yang mengaplikasikan penggunaan algoritma kriptografi RSA (Dadan Rosnawan, 2011).
RSA merupakan algoritma enkripsi yang termasuk jenis asimetris. Proses enkripsi dan dekripsi dari algortima RSA menggunakan key yang berbeda. Proses enkripsi menggunakan sebuah public key sedangkan pada proses dekripsi dibutuhkan sebuah private key. Kriptografi public key yang paling banyak digunakan ialah RSA. Tingkat kesulitan untuk menyerang enkripsi RSA bergantung pada sulitnya pencarian faktor bilangan prima yang digunakan untuk enkripsi ini (Arya Reza, 2013).
Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Algoritma enkripsi/dekripsi RSA dilakukan sebagai berikut (Ana Wahyuni, 2011):
Ee (m) = c = me mod n, dan
Dd (c) = m = cd mod n,
dimana Ee (m) merupakan fungsi enkripsi terhadap plaintext m, Dan D d (c) merupakan fungsi dekripsi terhadap chipertext c. Nilai d, e, n itu sendiri merupakan pasangan kunci publik (e,n) dan kunci privatnya (d) yang diperoleh dengan menggunakan aturan pembangkitan kunci sebagai berikut:
1.    Pilih dua buah bilangan prima sembarang, p dan q.
2.    Hitung n = p.q (sebaiknya p≠q, sebab jika p=q maka n = p2 sehingga p dapat diperoleh dengan mudah dengan menarik akar pangkat dua dari n).
3.    Hitung ф(n) = (p-1)(q-1).
4.    Pilih kunci publik e, yang relatif prima terhadap ф(n).
5.         Bangkitkan kunci privat dengan menggunakan persamaan e.d ≡ 1(mod ф(n)) yang ekivalen dengan e.d = 1 + kф(n),

2.4       Linear Congruential Generator
Linear Congruential Generator merupakan pembangkit bilangan acak semu yang didasarkan pada kemunculan linear (Janka, 2013). Kelebihan utama dari linear congruential generator adalah kecepatan yang tinggi dan memiliki property statistic yang baik berdasarkan pemilihan parameter  Persamaan untuk membangkitkan bilangan acak menggunakan linear congruential generator adalah sebagai berikut.


Dimana :
, , dan  = Parameter yang dipilih secara acak dan bersifat tetap.
 = Bilangan acak ke-n+1
= Bilangan acak ke-n.
Contoh Pembangkitan Bilangan Acak LCG :
Diketahui :
a = 5
b = 1
m = 16
X(0) = 1
Bilangan Acak Sebanyak 7 bilangan :
X
Formula
Random Number
1
6
2
15
3
12
4
13
5
2
6
11
7
8
Tabael 2.1 bialangan acak
            Linear Congruential Generator memiliki kelamahan dimana sifat ketidak pastiannya sangat lemah karena LCG bersifat linear. LCG pertama sekali dikenalkan oleh Lehmer pada tahun 1948 (Entacher, 1997). LCG telah berkembang dengan munculnya berbagai versi LCG seperti LCG ANSIC, MINSTD, RANDU, SIMSCRIPT, BCSLIB, BCPL, URN12, APPLE, Super-Duper, HoaglinL CGs, FishmanLCGs, NAG, DRAND48, CRAY, MAPLE, dan lain sebagainya.













No comments:

Post a Comment