• Tidak ada hasil yang ditemukan

2.1. Kriptografi

Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

2.1.1. Pengertian Kriptografi

Kriptografi (cryptography) berasal dari bahasa Yunani yang terdiri dari dua suku kata yaitu kryptos yang artinya tersembunyi dan graphein yang artinya tulisan. Pesan asli disebut plaintext dan pesan yang disamarkan disebut ciphertext. Pesan yang telah disandikan dan dikirim disebut kriptogram. Proses mengubah plaintext menjadi ciphertext dosebut encryption atau enciphering atau enkripsi.Proses kebalikan dari mengubah ciphertext menjadi plaintext, yang dilakukan olehpenerima disebut

dekripsi. Siapapun yang terlibat dalam kriptografi disebut cryptographer(Mollin, R.

A. 2007).

Menurut Munir,R. (2006), Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. (Cryptography is the art and science of keeping messages secure) “Crypto” berarti “secret” (rahasia) dan “graphy” berarti “writing” (tulisan).

Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi (Kromodimoeljo, S. 2010).

Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebagai berikut:“Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan

menggunakan huruf dan karakter di luar bentuk aslinya, atau dengan metode-metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini”(Haq, H. A. 2013).

2.1.2. Terminologi Kriptografi

Seorang pengirim (sender) ingin mengirim pesan (plaintext; kadang-kadang disebut cleartext) kepada orang yang dituju (receiver). Selain itu, pengirim ingin pesan yang dikirim tidak dapat dibaca oleh orang lain yang menyadap percakapan (eavesdropper) atau pesan tersebut. Proses menyamarkan pesan sedemikian rupa untuk menyembunyikan substansinya disebut enkripsi. Sebuah pesan yang dienkripsi disebut ciphertext. Proses untuk mengubah ciphertext kembali ke plaintext adalah dekripsi. Pada standar ISO 7498-2 menggunakan istilah encipher untuk proses enkripsi dan decipher untuk proses dekripsi. Skema rangkaian proses enkripsi dan dekripsi ditunjukkan secara umum pada Gambar 1 (Schneier, 1996).

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi (Schneier, 1996)

2.1.3. Tujuan Kriptografi

Kriptografi bertujuan untuk memberikan layanan keamanan kepada pengguna sebagai berikut:

1. Kerahasiaan (Confidentiality)

Informasi dirahasiakan dari semua pihak yang tidak berwenang. 2. Keutuhan Data (Integrity)

Pesan tidak berubah dalam proses pengiriman hingga pesan diterima oleh penerima.

Enkripsi Dekripsi

Kepastian terhadap identitas setiap entitas yang terlibat dan keaslian sumber data. 4. Nirpenyangkalan (Nonrepudiation)

Setiap entitas yang berkomunikasi tidak dapat menolak atau menyangkal atas data yang telah dikirim atau diterima.

2.1.4. Sistem Kriptografi

Sistem kriptografi terdiri dari 5 bagian yaitu sebagai berikut :

1. Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca.

2. Secret Key: merupakan masukan bagi algoritma enkripsi yang berupa nilai bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.

3. Ciphertext: keluaran algoritma enkripsi yang dianggap sebagai pesan dalam bentuk tersembunyi.

4. Algoritma Enkripsi: algoritma enkripsi memiliki 2 masukan yaitu teks asli dan teks kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi.

5. Algoritma Dekripsi: algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai sesuai dengan algoritma dekripsi.

Berdasarkan kunci yang dipakai, algoritma kriptografi dibagi menjadi tiga, yaitu algoritma simetri (menggunakan satu kunci untuk enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk enkripsi dan dekripsi) dan fungsi hash (Ariyus, 2008).

2.1.5. Sistem Kriptografi Asimetris

Kriptografi asimetris ini dikenal juga sebagai kriptografi kunci publik (public key) dan merupakan bagian sistem kriptografi modern, yaitu kunci enkripsi (public key) dimiliki oleh pengirim dan kunci dekripsi (private key) dimiliki oleh penerima pesan.

Diffie-Hellman adalah sistem kriptografi public key yang pertama, Difie-Hellman tidak sepopuler RSA dan ElGamal karena hanya dapat digunakan untuk key agreement. Menggunakan Difie-Hellman, dua pengguna, sebut saja A dan B, dapat membuat kunci privat yang hanya diketahui oleh A dan B, meskipun komunikasi antara A dan B dapat dilihat semua orang.

Diffe-Hellman menggunakan finite field GF(q) yang sangat besar. A dan B keduanya mengetahui GF(q) dan elemen g ∈ GF(q). GF(q) dan g tidak perlu dirahasiakan, jadi boleh saja diketahui semua orang. Meskipun tidak harus, g sebaiknya merupakan generator untuk GF(q)* , atau setidaknya memiliki order yang besar agar range untuk pembuatan kunci cukup besar.

Kriptografi yang termasuk algoritma asimetris adalahDiffie-Hellman, RSA, ElGamal, DSA dan sebagainya. Skema algoritma kriptografi asimetri dengan kunci publik dapat dilihat pada Gambar 2.2. berikut ini.

Gambar 2.2. Skema Kriptografi Asimetri Kunci Publik (Sadikin, 2012)

2.1.6. Bilangan Prima

Bilangan positif p (𝑝𝑝>1) disebut bilangan prima jika pembaginya hanya 1 dan p. Sebagai contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan 23. Karena bilangan prima harus lebih besar dari satu, maka barisan bilangan prima dimulai dari 2, yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan ganjil, kecuali dua yang merupakan bilangan genap.

AlgoritmaEnkri psi

AlgoritmaDekri psi

KPublikB

TeksAsli Ciphertext TeksAsli

A

B

PembangkitK unci KPrivatB

2.1.7. Aritmatika Modulo

Aritmatika modulo merupakan sisa hasil pembagian dua bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan, jika bilangan integer a dibagi dengan bilangan integer yang lebih besar dari nol(b> 0), maka akan menghasilkan sisa bagi r (remainder) dengan hasil bagi s (quotient). Sehingga dapat dinotasikan sebagai berikut (Harahap, A. A. 2014).

a mod b = r sedemikian sehingga a = bs + r, dengan 0 b<n ...(2.1) Sebagai contoh, jika 17 mod 3 = 2, maka 17 = (3 × 5) + 2.

Jika a negatif, maka bagi |a| dengan b mendapatkan sisa bagi r’ (Munir, 2006). Sehingga didapatkan:

a mod b = b – r’, dimana r’ ≠ 0 dan a< 0 …...……….(2.2) Sebagai contoh, jika |-25| mod 7 = 4, maka -25 mod 7 = 7 – 4 = 3.

Cormen, at al. (2009) menuliskan di dalam bukunya, untuk setiap bilangan bulat a dan setiap bilangan bulat positif b, nilai a mod b adalah sisa (residu) dari hasil bagi a / b:

a mod b = a – b (a/b), dimana 0 a mod b<b …...….(2.3) Contohnya adalah 33 mod 5 = 33 – 5(33/5) = 33 – 5(6) = 33 – 30 = 3.

2.1.8. Modulo Eksponensial

Permasalahan pada operasi modulo adalah bagaimana menghitung xy (mod z) dengan z yang sangat besar. Terdapat beberapa algoritma untuk menghitung modulo eksponensial, antara lain adalah dengan metode iterasi.

Berikur pseudocodedari modulo eksponensial dengan menggunaka metode iterasi :

Function mod exp (x, y, n) z = 1

for (I = 0; I < y; i++){ z = x * z mod n }

return z }

2.1.9. Inversi Modulo

Jika a dan m relatif prima dan m> 1, maka inversi dari a mod m dapat ditemukan. Inversi dari a (mod m), juga disebut inversi perkalian, dimana bilangan bulat a-1 sedemikian sehingga

aa-1≡ 1 (mod m) ………...………(2.4)

Contoh: untuk inversi dari 5 (mod 7), penyelesaiannya dapat dilihat pada Tabel 1.

Tabel 2.1 Penyelesaian contoh soal inversi modulo a-1 a-1 × 5 (mod 7)

1 5

2 3

3 1

Pada Tabel 1, iterasi berhenti ketika a-1a ≡ 1 (mod m) dan diperoleh a-1 = 3.

2.1.10.Elemen Primitif

Selain bilangan prima, dalam kriptografi ElGamal juga digunakan elemen primitif yang merupakan elemen pembangun dari grup Z

p. Untuk mencari elemen ini digunakan p=2q+1, dimana q merupakan bilangan prima. Jika elemen α memenuhi α2

mod p ≠ 1 dan αq mod p ≠ 1, maka α merupakan elemen primitif.

Untuk mengetahui suatu bilangan merupakan elemen primitif atau tidak dapat dilakukan langkah-langkah sebagai berikut :

1. Input bilangan prima aman p ≥ 5.

2. Hitung 𝑞𝑞= 𝑝𝑝−1 2

α , maka α bukan elemen primitif.

5. Jika αq mod p= 1, maka α bukan elemen primitif.

6. Jika tidak terpenuhi dua persyaratan di atas maka q merupakan elemen primitif.

2.1.11.Fermat’s Little Theorem

Fermat’s Little Theorem adalah suatu metode yang digunakan untuk menguji keprimaan suatu bilangan bulat. Teorema Fermat ditemukan oleh Pierre De Fermat merupakan seorang matematikawan Perancis pada tahun 1640. Meskipun dapat digunakan untuk mempermudah kalkulasi dalam kriptografi, peran terpenting dari Fermat's little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris.

Bilangan prima jumlahnya tak terhingga banyaknya, bilangan prima terbesar yang ditemukan oleh para ahli adalah:

232.582.657-1

Salah satu perhitungan matematis yang digunakan untuk menghasilkan bilangan prima adalah metode Fermat yang dapat dirumuskan sebagai berikut:

Bila p adalah bilangan prima maka berlaku a p-1 mod p = 1 untuk

1 a < p

Di mana p adalah bilangan bulat dan a adalah urutan bilangan yang lebih kecil dari p Contoh penerapan metode Fermat adalah sebagai berikut:

a. Bila p = 4

Maka 1 ≤a< 4, didapat a = {1, 2, 3} a p-1mod p

1 4-1 mod 4 = 13 mod 4 = 1 24-1 mod 4 = 23 mod 4 = 0 34-1 mod 4 = 33 mod 4 = 1

Jadi, angka 4 bukan merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 4 terdapat nilai yang 0.

b. Bila p = 5

Maka 1 ≤a< 5, jadi didapat a = {1, 2, 3, 4} a p-1 mod p

1 5-1 mod 5 = 14 mod 5 = 1 25-1 mod 5 = 24 mod 5 = 1 35-1 mod 5 = 34 mod 5 = 1 45-1 mod 5 = 44 mod 5 = 1

Jadi, angka 5 merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 5 adalah 1. Untuk angka yang besar dengan jumlah nilai a yang banyak, hanya diambil beberapa angka sebagai contoh.

2.1.12.Algoritma Euclid

Algoritma Euclid dapat dikembangkan (disebut dengan algoritma Extended Euclid) agar dapat menemukan dua integer x dan y yang unik selain nilai GCD(a,b) sehingga memenuhi relasi yang ditunjukkan oleh persamaan (P14) (Harahap, A. A. 2014). x × a + y × b = GCD(a,b) ……… (2.5)

Berikut ini merupakan contoh dari algoritma Extended Euclid. Diketahui GCD(11,23) = 1, dengan mengikuti persamaan (2.3) dan (2.5) maka dapat ditemukan bilangan x dan y dari persamaan 11x + 23y = 1 (Lipschutz & Lipson, 2007). GCD(23,11) = 1 = 23 – 11(2). Dapat dilihat bahwa a = 23, b = 11, x = 1 dan y = -2. 2.2.Algoritma ElGamal

Algoritma ElGamal ditemukan oleh ilmuwan Mesir, yaitu Taher ElGamal pada tahun 1985, merupakan algoritma kriptografi kunci publik. Algoritma ElGamal terdiri atas

ElGamal mendasarkan kekuatannya pada fakta matematis kesulitan menghitung logaritma diskret.

Hingga saat ini belum ada yang berhasil memecahkan algoritma ElGamal. Karena kekomplesitasan algoritma ini, maka penyerangan yang dilakukan dari segala sisi tidak mampu menembus pertahanan algoritma ElGamal ini.

2.2.1. Pembangkit Kunci

Langkah-langkah dalam pembangkitan kunci

1. Pilih sembarang bilangan prima p ( p dapat di-share di antara anggota kelompok). Misalkan p = 263

2. Pilih dua buah bilangan acak, g dan x, dengan syarat g <p dan 1 x p – 2 Misalkan g = 107 dan x = 62

3. Hitung y dengan rumus

y = gxmod p ………... (2.5) y = 10762mo 263 = 39

Hasil dari algoritma ini:

1. Kunci publik: tripel (y, g, p) = (39, 107, 263) 2. Kunci privat: pasangan (p ,x) = (263,62)

2.2.2. Proses Enkripsi

Langkah-langkah dalam mengenkripsi pesan: 1. Terima kunci publik (y, g, p) = (39, 107, 263)

2. Ubah nilai blok pesan ke dalam nilai ASCII. Ekspresikan pesan P = “A” = 65 (kode ASCII) sebagai bilangan.

3. Pilih bilangan acak k, yang dalam hal ini 1 k p – 2. Misal, k = 94 4. Setiap blok m dienkripsi dengan rumus

a = 10794mod 263 = 31 b = ykm mod p

b = 3994 65mod263= 113 ………... (2.7) Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya.

5. Kirim a = 31 dan b = 113 ke pemilik kunci publik.

2.2.3. Proses Dekripsi

Langkah-langkah dalam mendekripsi pesan: 1. Gunakan kunci privatx untuk menghitung (ax)– 1

(ax)– 1 = ap – 1 – xmod p ………... (2.8)

(ax)– 1 = 31263 – 1 – 94mod 263 = 96 2. Hitung plainteks m

m = b(ax)– 1 mod p ……..………... (2.9) m = 113(96)– 1 mod 263 = 65

3. Konversikan bilangan m ke dalam karakter sesuai dengan kode ASCII m = 65 = ”A”x

BAB 1 PENDAHULUAN

1.1. Latar Belakang Masalah

Komunikasi adalah kegiatan penting yang dilakukan seseorang atau instansi untuk berhubungan dengan orang lain atau instansi lain untuk saling berbagi informasi.Ada informasi yang dapat disebarluaskan ke masyarakat umum namun ada informasi yang harus dirahasiakan agar tidak terjadi penyalahgunaan. Informasi yang disampaikan dapat berupa tulisan. Jika tulisan atau pesan disampaikan secara langung dari pengirim kepada penerima pada saat itu juga dan tanpa melalui perantara apapun, maka hal tersebut dapat menjamin keamanan, keutuhan, dan keaslian pesan. Namun jika pesan harus dikirim melalui perantara dan memerlukan waktu dalam proses pengirimannya, maka ada kemungkinan bahwa pesan akan mengalami penyadapan sehingga pesan rahasia diketahui pihak yang tidak seharusnya atau kemungkinan pesan mengalami perubahan sebelum sampai ke tujuan sebenarnya.

Berbagai macam layanan komunikasi tersedia saat ini, seperti SMS (Short Message Service) yang kita kenal dengan pesan singkat. SMS merupakan layanan komunikasi yang sangat umum digunakan masyarakat. Seorang pengirim pesan yang hendak mengirim SMS kepada rekannya, pesan tersebut bersifat rahasia dan penting sehingga tidak seorang pun boleh membaca pesan tersebut, padahal bila admin server sedang iseng, sangat mungkin dia akan membaca pesan-pesan yang ada di servernya. Penerima pun ingin memastikan pengirim merupakan orang yang dikenalnya, bukan orang yang berpura-pura menjadi rekannya.

Untuk menjaga keamanan pesan yang bersifat rahasia dapat dilakukan dengan menerapkan metode kriptografi. Kriptografi adalah ilmu untuk menjaga keamanan pesan yang dapat digunakan untuk menjaga kerahasiaan pesan, keaslian pesan dan

keaslian pengirim. Ada banyak algortima kriptografi, algoritma yang digunakan dalam penelitian ini adalah algoritma ElGamal.

Algoritma ElGamal adalahan salah satu algoritma asimetris yang menggunakan kunci publik dan kunci privat. Algoritma ElGamal terdiri dari dua bagian yaitu fungsi enkripsi dan dekripsi. Enkripsi adalah teknik untuk membuat pesan menjadi tidak dapat dibaca. Dekripsi adalah proses kebalikan dari enkripsi.

Oleh karena itu, pada penelitian ini, penulis akan mengembangkan sebuah Aplikasi kriptografi untuk enkripsi dan dekripsi pesan berbasis Android yang bertujuan untuk pengamanan pesan serta menjaga keaslian pengirim dan penerima pesan.

Berdasarkan latar belakang yang telah penulis uraikan, maka dilakukan penelitian dengan judul “Implementasi Algoritma ElGamal Untuk Keamanan SMS Pada Android”.

1.2.Rumusan Masalah

Berdasarkan uraian pada latar belakang, maka permasalahan yang akan dibahas yaitu bagaimana merancang dan membangun aplikasi untuk pengamanan SMS pada sistem operasi Android dengan mengimplementasikan algoritma ElGamal.

1.3. Batasan Masalah

Ruang lingkup pada penelitian ini dibatasi pada hal-hal berikut :

1. Penelitian ini tidak membandingkan algoritma Sistem Kriptografi ElGamal dengan algoritman kriptografi lainnya.

2. Data yang digunakan adalah teks atau string berupa 256 karakter yang terdapat pada tabel ASCII (American Standard Code for Information Interchange)8 bit

selain dari itu diabaikan.

3. Panjang maksimal kunci publik yang digunakan adalah 32 bit.

4. Pengujian bilangan prima menggunakan Fermat’s Little Theorem dengan bilangan prima lebih besar dari 255.

5. Program dibuat dengan bahasa pemrograman java.

6. Aplikasi yang dibangun hanya ditujukan untuk enkripsi dan deskripsi sms pada perangkat mobile bersistem operasi Android dari versi 2.2 (Frozen Yoghurt) sampai versi 4.1 (Jelly Bean).Pengirim dan penerima SMS harus sama-sama menggunakan aplikasi ini.

1.4. Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah sebagai berikut : 1. Untuk mengimplementasikan Algoritma ElGamal.

2. Untuk membuat aplikasi sistem keamanan SMS dengan algoritma ElGamal pada ponsel berbasis Android.

1.5. Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah sebagai berikut :

1. Menambah pengetahuan penulis dalam melakukan proses enskripsi dan dekripsi pesan dengan menggunaka algoritma ElGamal.

2. Menghasilkan aplikasi sistem keamanan SMS pada ponsel berbasis Android menggunakan algoritma ElGamal yang berguna untuk mengamankan pesan.

1.6.Metodologi Penelitian

Dalam proses pengerjaan tugas akhir ini penulis menggunakan beberapa tahapan metode penelitian, yaitu sebagai berikut :

1. Studi Literatur

Pada tahap ini dilakukan peninjauan terhadap buku-buku, artikel-artikel, jurnal- jurnal maupun hasil penelitian terdahulu yang terkait dengan algoritma ElGamal.

2. Analisis dan Perancangan

Dengan adanya rumusan dan batasan masalah, permasalahan, dan kebutuhan dianalisis disertai pembuatan flowchart, diagram use case, perancangan antar muka dan perancangan dari aplikasi.

3. Implementasi

Dilakukan implementasi algoritma ElGamal untuk keamanan SMS pada Android sesuai dengan analisis dan perancangan yang telah dilakukan sebelumnya.

4. Pengujian

Aplikasi diuji berdasarkan hasil analisis dan perancangan.

5. Dokumentasi

Selama penelitian berlangsung hingga penelitian berakhir dilakukan pendokumentasian dalam bentuk laporan penelitian (skripsi).

1.7. Sistematika Penulisan

Sistematika penulisan tugas akhir ini dibagi dalam lima bab, masing-masing bab diuraikan sebagai berikut :

Bab 1 PENDAHULUAN

Bab ini berisikan latar belakang pemilihan judul, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan.

Bab ini berisi teori-teori yang berkaitan dengan kriptografi dan algoritma ElGamal.

Dokumen terkait