• Tidak ada hasil yang ditemukan

BAB 2 TINJAUAN PUSTAKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 TINJAUAN PUSTAKA"

Copied!
14
0
0

Teks penuh

(1)

BAB 2

TINJAUAN PUSTAKA

Pada bab ini, akan dibahas landasan teori, penelitian terdahulu, kerangka pikir dan hipotesis yang mendasari penyelesaian permasalahan pengamanan pesan pada NIC

Messenger dengan Algoritma RSA 512-bit dan One Time Pad.

2.1. Pertukaran Data

Dalam software messenger pada umumnya terjadi pertukaran data, dapat berupa pesan teks, suara dan dapat pula berupa gambar. Maksud dari pertukaran data disini adalah proses pengiriman data yang berupa teks, suara atau gambar dari pengguna messenger satu ke pengguna messenger lainnya, dimana data yang dikirimkan akan disimpan terlebih dahulu ke server dan dari server akan dikirim ke penerima data tersebut. Karena proses ini penulis dapat mengambil kesimpulan bahwasanya pertukaran data pada aplikasi messenger sangat rentan terhadap kejahatan maya seperti data dicuri dan atau data dibajak oleh pihak yang tidak berkepentingan.

2.2. Keamanan Informasi

Informasi saat ini sudah menjadi sebuah komoditi yang sangat penting bagi sebuah organisasi, perguruan tinggi, lembaga pemerintahan maupun individual, kemampuan dalam mengakses dan menyediakan informasi secara cepat serta akurat (Rahardjo, 2005). Karena pentingnya sebuah informasi, seringkali informasi yang diinginkan hanya dapat diakses oleh orang tertentu misalnya pihak penerima yang diinginkan, dan jika informasi ini sampai diterima oleh pihak yang tidak diinginkan akan berdampak kerugian pada pihak pengirim.

Keamanan informasi adalah bagaimana kita dapat mencegah penipuan, atau paling tidak mendeteksi adanya penipuan di sebuah sistem yang berbasis informasi, dimana informasinya sendiri tidak memiliki arti fisik (Rahardjo, 2012).

(2)

Untuk itu diperlukanlah sebuah pendekatan dalam melakukan pengamanan pada informasi, seperti melakukan enkripsi, steganografi, cipher dan hashing terhadap informasi tersebut.

2.3. Android

Android adalah salah satu sistem operasi yang dapat berjalan pada handphone, android merupakan turunan dari sistem operasi linux. Oleh karena itu banyak vendor telepon genggam memanfaatkan sistem operasi android yang open source hal ini mengundang banyaknya developer aplikasi untuk mengembangkan berbagai aplikasi

mobile karena mereka dapat dengan bebas biaya mengembangkan aplikasi untuk dapat

digunakan di handphone berbasis android. Berbeda dengan sistem operasi IOS besutan Apple yang mengharuskan developer aplikasi membayar $99 per tahun untuk mendapatkan lisensi agar aplikasi buatan developer dapat diinstalasi pada iPhone atau iDevice lainnya. Hal ini yang menjadi alasan penulis untuk mengembangkan aplikasi NIC Messenger ini pada handphone berbasis android.

2.4. Kriptografi

Menurut Sadikin (2012), kriptografi adalah ilmu yang bersandarkan pada teknik matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas.

Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian kunci simetris dan menggunakan metode subtitusi (pergantian huruf) atau transposisi (pertukaran tempat). Dan kriptografi modern adalah sistem kriptografi yang menggunakan penyandian kunci asimetris (Sadikin, 2012). Berikut ini adalah beberapa mekanisme yang berkembang pada kriptografi:

1. Fungsi Hash

Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut message digest dengan panjang

(3)

yang tetap. Fungsi hash pada umumnya digunakan untuk menguji keutuhan pada sebuah data.

2. Penyandian dengan kunci simetris

Penyandian dengan kunci simetris adalah penyandian yang pada proses enkripsi dan dekripsinya menggunakan sebuah kunci yang sama. Kunci yang digunakan pada proses enkripsi dan dekripsi bersifat rahasia. Beberapa jenis kriptografi dengan penyandian kunci simetris antara lain Data Encryption

Standard (DES), 3DES, Advance Encryption Standard (AES), Blowfish dan International Data Encryption Algorithm (IDEA).

3. Penyandian dengan kunci asimetris

Penyandian dengan kunci asimetris atau sering juga disebut dengan kunci publik adalah penyandian yang pada proses enkripsi dan dekripsinya memiliki kunci yang berbeda. Pada kunci yang digunakan untuk enkripsi bersifat publik (public key). Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia (private key). Beberapa jenis kriptografi dengan penyandian kunci asimetris antara lain RSA, Diffie-Helman, ELGamal, Knapsack, dan beberapa penerapan teknik Elliptic Curve.

2.4.1 Algoritma RSA

Karena semakin berkembangnya pertukaran data, khususnya dalam wireless dan local

area network (LAN), hal ini memberi kesempatan yang besar untuk mencegat data

dan memalsukan pesan. Satu-satunya cara yang mudah untuk menjaga keamanan dan keintegritasan informasi antara pengirim dan penerima adalah dengan menggunakan kriptografi kunci publik.

RSA adalah sistem kriptografi dengan kunci publik yang pertama kali dapat berjalan dan dipraktekkan, ditemukan pada tahun 1977 dan dipublikasikan pada tahun 1978 oleh Rivest, Shamir dan Adleman (RSA) di Institut Teknologi Massachusetts. RSA adalah sistem kriptografi yang masih paling banyak digunakan seperti transaksi online, email, kartu pintar dan umumnya pada aplikasi mobile commerce (Yan, 2008).

(4)

Rumus dasar dari metode enkripsi dan dekripsi RSA adalah C≡𝑀𝑐 mod N (1) Dan M≡𝐶𝑑 mod N (2) Penjelasan: N = p * q

p dan q = Bilangan prima

M = Plaintext

C = Ciphertext

e = Encryption exponent d = Decryption exponent ɸ(N) = (p-1)(q-1)

Tahapan Algoritma RSA

1. Pilih dua bilangan prima secara acak dan tidak sama. 2. Hitung perkalian p dan q, simpan dalam variabel n. 3. Hitung ɸ(n) ≡ (p-1).(q-1)

4. Pilih e secara acak dengan syarat, PBB(e, ɸ(n)) = 1 5. Hitung d ≡ e-1(mod ɸ(n) atau d.e ≡ 1.mod(ɸ(n)) 6. Rahasiakan p, q, ɸ(n) dan d

7. Kirimkan e dan n

Contoh kasus sederhana algoritma Kriptografi RSA: P = 47 (bilangan prima) dan Q = 71 (bilangan prima) N = P.Q = 3337

ɸ(N) = (P-1)*(Q-1) = 3220 E = 79 (pilih angka acak) D = 1+(k*3220)/79 dicoba K = 1,2,..,dst

(5)

Misalkan plainteks M = “ABC”, ubah kedalam ASCII menjadi “65 66 67” Enkripsi dengan kunci publik E = 79 dan N = 3337:

M1 = 65 -> C1 = 65^79 mod 3337 = 541 M2 = 66 -> C2 = 66^79 mod 3337 = 795 M3 = 67 -> C3 = 67^79 mod 3337 = 1479 Dekripsi dengan kunci D = 1019:

C1 = 541 -> M1 = 541^1019 mod 3337 = 65 -> A C2 = 795 -> M2 = 795^1019 mod 3337 = 66 -> B C3 = 1479 -> M3 = 1479^1019 mod 3337 = 67 -> C

2.4.2 Algoritma LCG (Linear Congruential Generators)

Algoritma LCG atau Linear Congruential Generators adalah algoritma yang

umumnya digunakan untuk pembangkit bilangan acak, dengan rumus sebagai berikut:

Xn = (a * Xn-1 + b) mod m (3) Penjelasan: X = Kunci sementara a = Bilangan pengali b = Bilangan inkremen m = Modulus

Keuntungan dari linear congruential generators adalah proses pembangkitan bilangan acak cepat, dan membutuhkan beberapa operasi per-bit (Schneier, 1996).

Akan tetapi kekurangan dari algoritma pembangkit bilangan acak ini adalah bilangan acak yang dihasilkan tidak dapat digunakan untuk kriptografi, karena bilangan acak tersebut bisa ditebak. Pada penelitian ini algoritma LCG akan dikombinasikan dengan waktu dalam satuan milidetik, dimana untuk setiap bilangan acak yang dihasilkan akan ditambahkan dengan milidetik saat ini, dengan demikian hasil bilangan acak yang dihasilkan akan sulit untuk ditebak.

(6)

Contoh:

m = 1024 a = 105 c = 71 X = 1

t = Waktu dalam milidetik

Pengujian LCG tanpa kombinasi waktu 0 = (105 * 176) +71) mod 1024 = 176 1 = (105 * 119) +71) mod 1024 = 119 2 = (105 * 278) +71) mod 1024 = 278 3 = (105 * 589) +71) mod 1024 = 589 4 = (105 * 476) +71) mod 1024 = 476

Hasil pengujian jika dilakukan berulang kali akan tetap menghasilkan bilangan yang sama.

Pengujian LCG dengan kombinasi waktu 0 = ((105 * 46) +71 + 514942) mod 1024 = 46 1 = ((105 * 753) +71 + 515020) mod 1024 = 753 2 = ((105 * 267) +71 + 515051) mod 1024 = 267 3 = ((105 * 464) +71 + 515078) mod 1024 = 464 4 = ((105 * 694) +71 + 515103) mod 1024 = 694

Hasil pengujian jika dilakukan berulang kali akan menghasilkan bilangan yang berbeda.

2.4.3 Fermat’s Primality Test

Untuk menghasilkan sebuah kunci pada sistem kriptografi kunci publik RSA membutuhkan bilangan P dan Q yang prima, algoritma Fermat’s Little Theorem dapat digunakan untuk menguji apakah sebuah bilangan prima atau bilangan biasa (Thomas,

(7)

Sebuah bilangan dikatakan prima jika memenuhi rumus sebagai berikut: ap-1 ≡ 1 (mod p) atau ap-1 (mod p) ≡ 1 (4)

Penjelasan:

a = Bilangan Inkremen p = Bilangan yang diuji

Jika dalam interval a dalam pengujian menghasilkan sekali saja nilai bukan 1 maka bilangan yang diuji bukan bilangan prima.

Contoh:

Uji keprimaan angka 6 a = 1

15 (mod 6) = 1 a = 2

25 (mod 6) = 2

Proses berhenti karena dalam interval a = 2 menghasilkan nilai bukan 1, maka angka 6 bukanlah bilangan prima.

Uji keprimaan angka 5 a = 1 14 (mod 5) = 1 a = 2 24 (mod 5) = 1 a = 3 34 (mod 5) = 1 A = 4 44 (mod 5) = 1

Proses berhenti dan dalam setiap interval a menghasilkan nilai 1, maka angka 5 adalah bilangan prima.

(8)

2.4.4 Algoritma Rabin-Miller

Michael Rabin dan Gary Miller mengembangkan sebuah algoritma untuk mengujian keprimaan sebuah bilangan pada tahun 1976. Algoritma ini adalah algoritma yang umumnya digunakan untuk menentukan sebuah bilangan prima (Schneier, 1996).

Berikut ini adalah langkah-langkah dalam melakukan pengujian bilangan prima berdasarkan Algoritma Rabin-Miller pada buku Schneier (1996).

1. Pilih bilangan acak n untuk diuji dan bilangan acak a untuk menguji

2. Hitung b yang dalam hal ini 2b adalah nilai pangkat terbesar yang habis membagi n-1

3. Hitung M dengan n = 1 + 2b * m atau m = n-1 / 2b 4. Nyatakan j = 0 dan z = am mod n

5. Jika z = 1 atau z = n-1, maka n adalah bilangan prima 6. Jika z > 0 dan z = 1, maka n bukan bilangan prima

7. Nyatakan j = j+1. Jika j < b dan z ≠ n-1, nyatakan z = z2 mod n dan ulangi langkah 7. Jika z = p-1, maka n adalah bilangan prima

8. Jika j = b dan z ≠ n-1, maka n adalah bukan bilangan prima.

Contoh:

1. n = 223, n-1 = 222

2. b = 1, jadi 2b = 2. Karena 2b mod n-1 = 21 mod 222 = 0 3. a = 24

4. hitung M, 223 = 1 + 21 * M, M = 223 – 1 / 21, M = 111 5. j = 0, z = 24111 mod 223, z = 222

6. z = 222 maka n adalah bilangan prima.

2.4.5 Algoritma One Time Pad

Sandi One Time Pad merupakan salah satu dari Sistem Kriptografi Klasik berbasis subtitusi, ditemukan oleh Major Joseph Mauborgne pada tahun 1917. Proses kerja Sandi One Time Pad menggunakan kunci yang acak setiap karakternya untuk semua teks asli, kunci yang acak tersebut hanya digunakan sekali saja dan panjang kuncinya sama dengan panjang teks asli, sistem Sandi One Time Pad diklaim merupakan sandi yang mencapai kerahasiaan sempurna (perfect secrecy) (Sadikin, 2012).

(9)

Rumus dasar dari Sandi One Time Pad adalah Enkripsi: ci = (pi + ki) mod 26 (10) Dekripsi: di = (ci - ki) mod 26 (11) Penjelasan: c = Ciphertext p = Plaintext k = Kunci enkripsi i = Karakter ke-i

Tahapan Sandi OTP

1. Pilih karakter secara acak sebanyak karakter pada pesan sebagai kunci enkripsi.

2. Jumlahkan karakter ke-i dari pesan dengan kunci ke-i dan mod 26.

Contoh kasus sederhana algoritma Kriptografi One Time Pad: Misalkan plainteks P = “BUKU”

Generate Kunci OTP sepanjang P karakter = “70 75 83 78” Ubah P dan Kunci kedalam bentuk ASCII:

P = 66 85 75 85 K = 70 75 83 78

Enkripsi Ci = (Pi + Ki) mod 26 : C1 = (66+70) mod 26 = 84 -> T C2 = (85+75) mod 26 = 108 -> l C3 = (75+83) mod 26 = 80 -> P C4 = (85+78) mod 26 = 85 -> U

(10)

Dekripsi Pi = (Ci - Ki) mod 26 : P1 = (84-70) mod 26 = 66 -> B P2 = (108-75) mod 26 = 85 -> U P3 = (80-83) mod 26 = 75 -> k P4 = (85-78) mod 26 = 85 -> U 2.5. Database

Menurut Rosa et al (2011), Database atau basis data adalah sistem terkomputerisasi yang berfungsi untuk menyimpan data atau informasi yang sudah diolah dan membuat informasi tersedia saat dibutuhkan.

Kebutuhan basis data dalam sistem informasi meliputi 2 hal, yaitu: 1. Memasukkan, menyimpan, dan mengambil data

2. Membuat laporan berdasarkan data yang telah disimpan

2.5.1 DBMS

Menurut Rosa et al (2011), DBMS (Database Management System) atau Sistem Manajemen Basis Data adalah aplikasi yang digunakan untuk menyimpan, mengelola, dan menampilkan data.

Aplikasi DBMS memiliki beberapa persyaratan minimal sebagai berikut: 1. Menyediakan fasilitas untuk mengelola akses data

2. Mampu menangani integritas data

3. Mampu menangani akses data yang dilakukan secara efektif 4. Mampu menangani backup data

DBMS sudah lama berkembang dimulai sejak tahun 1960an, dan memasuki tahun 1970an mulai berkembang teknologi Relational DBMS yaitu DBMS yang berbasis model relasional dikembangkan oleh Edgar J. Codd. DBMS model relasional adalah sebuah model pada DBMS yang memandang data sebagai sekumpulan tabel yang saling berkaitan. Seiring perkembangan teknologi, model DBMS berkembang menjadi Object Oriented DBMS atau DBMS dengan model berorientasi objek yang memandang data sebagai suatu objek.

(11)

Berikut ini adalah beberapa macam DBMS yang paling populer dan banyak digunakan di dunia saat ini, yaitu:

1. Oracle

2. Microsoft SQL Server 3. Microsoft Access 4. MySQL

2.5.2 MySQL

MySQL adalah salah satu DBMS yang sangat populer dikalangan developer aplikasi web. Untuk dapat mengelola data yang disimpan dalam database, memerlukan sebuah perintah khusus yang dikirimkan kepada DBMS bernama SQL (Structured Query

Language). Dalam MySQL, SQL disebut sebagai pernyataan.

Adapun beberapa pernyataan umum yang digunakan dalam MySQL adalah sebagai berikut:

1. “SELECT”, berguna untuk menampilkan informasi dari sebuah table pada

database.

2. “UPDATE”, berguna untuk mengubah informasi dari sebuah table pada

database.

3. “DELETE”, berguna untuk menghapus informasi dari sebuah table pada

database.

4. “INSERT”, berguna untuk menambah informasi baru kedalam table pada

database.

2.6. PHP

Menurut Sibero (2011), PHP (Hypertext Preprocessor) adalah pemrograman

interpreter yaitu proses penerjemahan dari kode sumber menjadi kode mesin yang

dimengerti komputer pada saat baris kode dijalankan secara langsung. PHP pada awalnya ditulis menggunakan bahasa PERL (Perl Script), kemudian ditulis ulang dengan menggunakan bahasa C CGI-BIN (Common Gateway Interface-Binnary) yang bertujuan agar halaman website dapat mendukung formulir dan penyimpanan data.

(12)

PHP adalah bahasa pemrograman Server Side Programming, memungkinkan sebuah

website yang dibangun bersifat dinamis (Sibero, 2011).

2.7. DFD

Dalam pembangunan software, perlu adanya konsep pemrograman terstruktur untuk memudahkan developer dalam membagi-bagi fungsi, prosedur, dan modul program yang dibangun. Dalam konsep pemrograman terstruktur dikenal metode DFD (Data

Flow Diagram). DFD adalah sebuah metode yang digunakan untuk merepresentasikan

sebuah sistem atau perangkat lunak pada beberapa level detail. DFD lebih sesuai untuk memodelkan fungsi-fungsi dan prosedur-prosedur pada pemrograman sistem yang terstruktur (Structural Programming) (Rosa, et al. 2011).

2.8. UML (Unified Modelling Language)

Untuk membantu dalam pengembangan perangkat lunak dikenal istilah pemodelan. Salah satu pemodelan yang saat ini paling banyak digunakan oleh pengembang perangkat lunak adalah UML (Unified Modelling Language). UML adalah standar bahasa yang sering digunakan dalam bidang industri untuk mendefinisikan

requirement (kebutuhan), membuat analisis dan desain, serta menggambarkan

arsitektur dalam pemrograman berorientasi objek.

Ada beberapa hal yang dimaksud dalam kompleksitas pada perangkat lunak (Rosa, et al. 2011):

1. Kompleksitas domain atau permasalahan perangkat lunak 2. Kesulitas mengelola proses pengembangan perangkat lunak 3. Kemungkinan fleksibilitas perubahan perangkat lunak

4. Permasalahan karakteristik bagian-bagian perangkat lunak secara diskrit

UML terbagi atas 3 (tiga) kategori, yaitu diagram struktur (structure diagram), diagram kelakuan sistem (behaviour diagram), dan diagram interaksi (interaction

(13)

case dari kategori diagram kelakuan sistem, untuk menggambarkan interaksi antara

satu atau lebih aktor dengan perangkat lunak (Rosa, et al. 2011).

2.9. Penelitian Terdahulu

Beberapa penelitian yang menjadi bahan pembelajaran penulis tentang penyelesaian masalah keamanan dalam pertukaran pesan.

Wahyudi et al (2008) telah mencoba mengamankan pesan dengan menggunakan teknik steganografi dan algoritma AES, Wahyudi dan Silitongan merancang aplikasi yang menyembunyikan pesan sebelum dikirim kepada penerima kedalam sebuah gambar dengan teknik steganografi, sebelum pesan disisipkan kedalam gambar pesan asli dienkripsi terlebih dahulu menggunakan algoritma AES. Hasilnya pesan menjadi tersembunyi dengan tidak mencurigakan karena telah disisipkan kedalam sebuah gambar.

Connely (2008) telah menerapkan algoritma One Time Pad untuk mengamankan email. Connely menerapkan sandi One Time Pad dan teknik TRNG (True Random Number Generator) untuk menghasilkan nilai yang benar-benar

random sebagai kunci One Time Pad. Hasilnya email yang dienkripsi benar-benar

rahasia, atau perfect secrecy.

Rasool et al (2011) telah mencoba meningkatkan algoritma keamanan dalam komunikasi pesan. Rasool et al, menerapkan kombinasi dari algoritma kunci simetris FSET (algoritma yang dibuat oleh Varghese Paul), algoritma kunci publik RSA dan teknik hashing menggunakan SHA-2. Hasilnya komunikasi pesan menjadi rahasia karena telah dienkripsi menggunakan FSET, kemudian kunci yang digunakan telah dienkripsi oleh RSA, untuk mengetahui apakah pesan asli masih terbukti valid, mereka melakukan pengujian menggunakan SHA-2.

Pardede (2012) telah mencoba menerapkan RSA sebagai pengamanan sistem

e-voting. Hasilnya data jumlah suara yang dihasilkan dari proses voting pemilih dalam

(14)

Table 1.1 Tabel penelitian terdahulu

No Peneliti Penelitian Algoritma Hasil

1 Wahyudi et al (2008)

Mengamankan

pesan Steganografi dan AES Tidak praktis 2 Connely

(2008)

Mengamankan

email One Time Pad Sangat aman

3 Rasool et al (2011)

Mengamankan pesan

FSET, RSA, dan

SHA-2 Sangat aman

4 Pardede (2012)

Mengamankan

Referensi

Dokumen terkait

a) Adanya penerimaan profit margin dari penjualan di masa depan dan konsumen yang loyal, hal ini sangat berlawanan dengan versi paradigma mikro ekonomi yang mengatakan

Pola penyebaran MPT dari Muara sungai yang tinggi dan terlihat relatif sama menuju perairan Bengkulu, karena arus yang terjadi mempunyai gerakan yang sama sehingga sebaran MPT

Muara Sungai Bengawan Solo berpotensi mengalami pendangkalan akibat terendapnya sedimen tersuspensi dalam kurun waktu tertentu.Pendangkalan dapat merubah garis pantai

a. Program kunjungan ini, kami menggunakan sistem full public transportation, artinya penggunaan transportasi lokal di area Jepang menggunakan transportasi umum, seperti

FRINNA SHINTA 500644607 Magister Manajemen MM PENGARUH PELATIHAN, INTERAK.SI SOSIAL, DAN MOTIVASI KERJA TERHADAP KINERJA PENYULUH MELALUI KOMPETENSI Studi pada Kantor

Ubah mode warnanya pilih image, Adjusment, Black and white, Siapkan Image yang tidak berwarna, lakukan duplikasi, selanjutnya seleksi bagian-bagian image yang akan kita beri

Selanjutnya apabila kita berbi- cara dengan berbahasa dengan tumpuan pada la- wan tutur misalnya agar orang yang kita ajak berbicara tidak tersinggung agar lawan bicara

Pengujian pada system yang ter-overclock dengan menggunakan VGA Nvidia GeForce 9800GTX+ dapat mengimbangi hasil dari VGA yang menggukan ATI RADEON HD 5800 karena