Daftar Pustaka
Kurniawan, Y. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi. Bandung: Informatika.
Mollin, R. A. 2007. An Introduction to Cryptography. Edisi ke-2. Florida: Chapman & Hall/CRC.
Ariyus, D. 2008. Pengantar Ilmu Kriptografi. Yogyakarta: ANDI.
Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. Indonesia: SPK IT Consulting.
Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa Java. Yogyakarta: ANDI.
Haq, H. A. 2013. Kombinasi Algoritma RSA dan ElGamal dalam Implementasi Algoritma Kriptografi. Skripsi. Universitas Sumatera Utara.
Harahap, A. A. 2014.Implementasi Sistem Keamanan Data MenggunakanSteganografi Teknik Pemetaan Titik HitamDengan Pencarian SekuensialDan Rabin Cryptosystem. Skripsi. Universitas Sumatera Utara.
Nasution, L. A. 2014. Implementasi Kombinasi Kriptografi Algoritma ElGamal dengan Steganografi Least Significant Bit (LSB) berdasarkan Penyisipan Menggunakan Fungsi Linear. Skripsi. Universitas Sumatera Utara.
Nasution, R. N. 2014. Implementasi Algoritma Hill Cipher Dan Rsa Pada Enkripsi Hybrid Pesan Sms Di Android. Skripsi. Universitas Sumatera Utara.
Nazaruddin, S. H. 2014. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android.Bandung: INFORMATIKA.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1.Analisis Sistem
Analisis dan rancangan merupakan tahapan pengembangan sebuah sistem. Tahapan ini akan saling berhubungan dan membentuk suatu siklus. Analisis sistem terdiri dari tahapan-tahapan berbeda yang mendekripsikan pengembangan sistem. Dalam tugas akhir ini, ada dua fase analisis yaitu: analisis masalah, dan analisis kebutuhan.
3.1.1. Analisis Masalah
Terdapat beberapa masalah dalam berkomunikasi, seperti ancaman keamanan dalam bertukaran informasi rahasia sehingga memungkinkan informasi yang disampaikan disalahgunakan. Maka untuk menggurangi ancaman ini dapat dilakukan pengkodean terhadap informasi yang berupa pesan dengan menggunakan metode kriptografi ElGamal. Masalah pada penelitian ini secara umum ditunjukkan menggunakan diagram Ishikawa pada Gambar 3.1.
Gambar 3.1 Diagram Ishikawa
Aplikasi Penyandian Pesan
SMS
User Methods
Materials Methods / Tools
Sulit menjaga kerahasiaan pesan SMS
Bahasa pemrograman Java
ElGamal
Menu pembangkit kunci, kirim kunci, pesan masuk, petunjuk, keluar
Textbox sebagai penerima input
Texview sebagai penerima output
3.1.2. Analisis Kebutuhan
Analisis kebutuhan terbagi dua bagian, yaitu kebutuhan fungsional dan kebutuhan nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan suatu sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya.
3.1.2.1.Kebutuhan Fungsional
Kebutuhan fungsional mencangkup karakteristik berikut :
1. Sistem harus mampu melakukan pengiriman SMS melalu platform Android.
2. Sistem harus mampu melakukan membangkitkan kunci dengan algoritma ElGamal.
3. Sistem harus mampu melakukan enkripsi pesan dengan algoritma ElGamal terhadap string pesan yang akan dikirimkan sehingga menghasilkan ciphertext. 4. Sistem harus mampu melakukan dekripsi pesan terhadap ciphertext dengan
algoritma ElGamal sehingga menjadi string yang sama sebelum dikodekan.
3.1.2.2.Kebutuhan NonFungsional
Kebutuhan nonfungsional mencakup karakteristik berikut: 1. Performa
Perangkat lunak yang dibangun dapat menunjukkan hasil dari fungsi kriptografi. 2. Efisiensi
Perangkat lunak yang dibangun harus sesederhana mungkin dan mudah digunakan oleh pengguna(user) dan responsif.
3. Ekonomi
Perangkat lunak yang dibangun harus dapat bekerja dengan baik tanpa harus mengelurkan biaya tambahan dalam penggunaan perangkat keras maupun perankat lunak.
dekripsi pesan. 5. Manajemen kualitas
Perangkat lunak yang dibangun harus memiliki kualitas yang baik yaitu proses pembangkitan kunci yang cepat dan proses enkripsi dan dekripsi yang akurat. 6. Kontrol
Perangkat lunak yang dibangun akan menampilkan pesan eror untuk setiap input yang tidak sesuai.
3.2. Pemodelan Aplikasi
Pemodelan aplikasi bertujuan untuk memberikan gambaran terhadap semua kondisi dan bagian-bagian yang berperan dalam sistem yang dirancang. Pada tugas akhir ini pemodelan aplikasi dilakukan dengan membuat use-case diagram dan data flow diagram.
3.2.1. Use-Case Diagram
Gambar 3.2 Use Case Diagram Pada Sistem
3.2.2. Activity Diagram
3.2.2.1. Activity Diagram Proses Pembangkitan Kunci
Pengguna Sistem
Gambar 3.3ActivityDiagram Proses Pembangkitan Kunci
Berdasarkan Gambar 3.3 untuk melakukan proses pembangkit kunci, hal pertama yang dilakukan adalah menekan tombol pembangkit kunci, kemudian sistem akan mengacak bilangan prima dan menguji bilangan prima tersebut dengan Fermat’s Little Theorem. Selanjutny sistem akan mencari nilai x, g,dan y.
Pembangkitan kunci
Mencari bilangan prima dan mengujinya dengan Fermat’s Litte Theorem
Menentukan x dan g
Menampilkan nilai kunci publik dan
3.2.2.2.Activity Diagram Proses Enkripsi Pesan
Pengirim Sistem
Gambar 3.4ActivityDiagram Proses Enkripsi Pesan
Berdasarkan Gambar3.4 untuk melakukan proses enkripsi pesan, hal pertama yang dilakukan adalah menginput pesan SMS, kemudian sistem akan mengubah pesan kedalam integer berdasarkan table ASCII. Setelah itu masukkan kunci publik yang akan digunakan untuk melakukan enkripsi. Sistem akan memproses plainteks yang telah diinput menjadi cipherteks yang siap untuk dikirim kepada penerima.
Input Pesan (String)
Mengubah pesan string menjadi integer berdasarkan table ASCII
Proses Enkripsi Pesan
Menampilkan cipherteks Input Kunci Publik
Penerima Sistem
Gambar 3.5ActivityDiagram Proses Dekripsi Pesan
Berdasarkan Gambar 3.5 untuk melakukan proses dekripsi terhadap cipherteks yang diterima userharus memasukkan kunci rahasia. Setelah itu sistem akan melakukan proses dekripsi terhadap cipherteks tersebut, sehingga akan menghasilkan plainteks yang akan langsung ditampilkan oleh sistem. Maka penerima akan mengerti isi pesan yang diterima dari pengirim.
Menerima Cipherteks
Dekripsi pesan dengan Algoritma ElGamal Menghitung z=ap-1-xmod p
m=b.z mod p
Mengubah mnkarakter ke
dalam palinteks
Menampilkan nilai kunci publik dan
3.3. Perancangan Sistem
3.3.1. Pembuatan Algoritma Program
Pembuatan algoritma program adalah proses penerjemahan langkah-langkah algoritma ElGamal ke dalam sebuah bahasa pemrograman. Tahap-tahap yang dilalui dalam proses pembuatan algoritma program yaitu:
1. Pembuatan alur sistemsecara umum
2. Pembuatan alur sistem proses pembangkitan kunci, proses enkripsi, dan dekripsi dengan menggunakan algoritma ElGamal ke dalam bahasa pemrograman Java.
3.3.2. Alur Proses Sistem Secara Umum
Gambar 3.6Flowchart Gambaran Umum Sistem
3.3.3. Alur Proses Pembangkitan Kunci
Pada agoritma ElGamal proses pembangkitan kunci dapat dijelaskan sebagai berikut :
4. Pilih sembarang bilangan prima p acak yang besar. Misal p = 421 5. Uji keprimaan dengan Fermat’s Little Theorema.
Bila p = 421
Input Nomor Tujuan Input Kunci Publik
Penerima
Input SMS
Enkripsi SMS
Cipherteks
KirimSMS
Menu Pembangkit
kunci
Buat SMS
Kotak
Masuk Informasi
20421-1 mod 421 = 20420mod 421 = 1 3004-1 mod 421 = 30420mod 421 = 1
400421-1 mod 421 = 400420mod 421 = 1
6. Pilih dua buah bilangan acakg dan x, dengan syarat g <p dan 1 ≤ x ≤ p – 2 Misalnya g = 2 dan x = 162
7. Kemudian hitungy dengan persamaany = gxmod p y = 2162 mod 421
y = 394
Hasil dari algoritma ini adalah kunci publik: tripel (y, g, p) yaitu (421, 2, 394)yang dapat diumumkan ke publik dan kunci privat: pasangan (p,x) yaitu (421, 162) yang harus dirahasiakan. Alur proses pembangkitan kunci dapat dijelaskan pada flowchart seperti Gambar 3.7.
Langkah-langkah dalam mengenkripsi pesan sebagai berikut : 6. Ketahui kunci publik (y, g, p) dari pengirim.
7. Ubah nilai blok pesan ke dalam nilai ASCII.
8. Pilih bilangan acak k, yang dalam hal ini 1 ≤ k ≤ p – 2.
9. Setiap blok m dienkripsi dengan persamaan a = gkmod p dan b = ykm mod p Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya.
10.Kirim a dan b ke pemilik kunci publik.
Ani memperoleh kunci publik (p, g, y) =(421, 2, 394) dari Budi untuk mengirimkan SMS berisi pesan rahasia “ILKOM13” kepada Budi. Selanjutnya Ani melakukan proses enkripsi yang dapat diliahat pada tabel 3.1 sebagai berikut :
Tabel 3.1 Proses Enkripsi
i mi Ki a = g
Berdasarkan tabel 3.1 diperoleh cipherteks (a, b),I = 1,2,…,7 sebagai berikut : 42 134 109 227 325 282 244 166 73 107 262 372 59 60.
Selanjutnya Ani mengirimkan SMS yang berupa cipherteks ini kepada Budi.
Gambar 3.8Flowchart Proses Enkripsi
3.3.5. Alur Proses Dekripsi
Langkah-langkah dalam mendekripsi pesan:
4. Gunakan kunci privat x untuk menghitung (ax)– 1 = ap – 1 – xmod p 5. Hitung plainteks mdengan persamaanm = b(ax)– 1 mod p
6. Konversikan bilangan m ke dalam karakter sesuai dengan kode ASCII.
Budi telah menerimaSMS yang berisi cipherteks dari Ani. Untuk mengetahui pesan asli dari SMS tersebut Ani melakukan proses dekripsi dengan kunci privat (p, x) = (421, 162) yang dapat dilihat pada tabel 3.2 berikut ini.
Tabel 3.2 Proses Dekripsi
i a b (ax)– 1 = ap – 1 – xmod p m = b(ax)– 1 mod p m
Input plainteks (m) Kunci Publik (g,p,y)
Mengkonversi pesan (m) ke karakter
Memilih k∈ {0,1,…,p-2}
Cipherteks
Berdasarkan perhitungan pada Tabel 3.2, Budi mengetahui isi SMS yang dikirim oleh Ani, yaitu “ILKOM13”.
Alur proses dekripsi menggunakan algoritma ElGamal pada aplikasi yang dirancang dapat dijelaskan pada flowchart seperti Gambar 3.9.
Gambar 3.9Flowchart Proses Dekripsi
3.4. Perancangan Antarmuka (Interface)
Perancangan Antarmuka (Interface) merupakan sarana interaksi antara pengguna dan sistem. Hal ini berfungsi untuk memudahkan pengguna dalam melakukan proses sistem.
Mulai
Terima Cipherteks Input Kunci Rahasia (p,x)
Dekripsi pesan (ax)– 1 = ap – 1 – xmod p
m = b(ax)– 1 mod p
Mengkonversi pesan (m) ke table karakter
Pesan Asli
3.4.1. Rancangan Halaman Utama
Halaman utama adalah halaman yang akan ditampilkan ketika pertama kali aplikasi dijalankan. Halaman ini memiliki empat tombol, yaitu Key Generator, New Message, Messaging dan Information. Rancangan tampilan halaman tersebut dapat dilihat pada Gambar 3.10.
Gambar 3.10 Rancangan Antarmuka Halaman Utama Keterangan:
1. Label yang menampilkan judul aplikasi. 2. Tombol untuk membangkitkan kunci. 3. Tombol untuk membuat pesan baru.
4. Tombol untuk menampilkan pesan masuk dan pesan terkirim. 5. Tombol untuk menampilkan halaman informasi aplikasi 6. Tombol untuk keluar aplikasi.
3.4.2. Rancangan Halaman Pembangkit Kunci
Rancangan halaman Pembangkit kunciberfngsi untuk menampilkan kunci rahasia dan kunci publik kriptografi ElGamal. Tampilan halaman menu ini dapat dilihat pada Gambar 3.11.
ElGamal Crypto SMS(1)
Petunjuk(5) Pesan Masuk(4)
Buat Pesan(3) Pembangkit Kunci(2)
ElGamal Crypto SMS (1)
Gambar 3.11 Rancangan Antarmuka HalamanPembangkit Kunci
Keterangan:
1. Label yang menampilkan judul aplikasi.
2. Buttonyang berfungsi untuk membangkitkan kunci.
3. Text View yang berfungsi untuk menampilkan kunci rahasia (p,x). 4. Text View yang berfungsi untuk menampilkan kunci publik (p,g,y). 5. Button yang berfungsi untuk mengirim kunci publik.
3.4.3. Rancangan Halaman Kirim Kunci
Rancangan halaman kirim knci publikberfngsi untuk menampilkan kunci rahasia dan kunci publik kriptografi ElGamal. Tampilan halaman menu ini dapat dilihat pada Gambar 3.12.
Button (2)
Text View(3)
Text View(4)
ElGamal Crypto SMS (1)
Gambar 3.12 Rancangan Antarmuka Halaman Kirim Kunci Publik
Keterangan:
1. Label yang menampilkan judul aplikasi.
2. Text Box yang berfungsi untuk memasukkan nomor tujuan penerima pesan. 3. Tombol untuk mengambil nomor tujuan dari daftar kotak yang ada pada prangkat
telepon.
4. Text Box yang berisi kunci publik yang sudah dibangkitkan. 5. Tombol yang berfungsi untuk mengirim pesan.
3.4.4. Rancangan Halaman Buat Pesan Baru
Rancangan halaman untuk buat pesan baru berguna untuk membuat pesan baru sekaligus enkripsi pesan dengan terlebih dahulu memasukkan nomor telepon penerima dan kunci publik penerima yamg telah diketahui. Rancangan tampilanya dapat dilihat pada gambar 3.13
Text Box(2) (3)
Text Box(4) send
ElGamal Crypto SMS (1)
Gambar 3.13 Rancangan Antarmuka Halaman Buat Pesan Baru
Keterangan:
1. Label yang menampilkan judul aplikasi.
2. Text Box yang berfungsi untuk memasukkan nomor tujuan penerima pesan. 3. Tombol untuk mengambil nomor tujuan dari daftar kotak yang ada pada prangkat
telepon.
4. Text Box yang berfungsi untuk menginput pesan.
5. Text Box yang berfungsi untuk memasukkan nilai p sebagai kunci publik. 6. Text Box yang berfungsi untuk memasukkan nilai g sebagai kunci publik. 7. Text Box yang berfungsi untuk memasukkan nilai y sebagai kunci publik. 8. Tombol untuk melakukan enkripsi pesan.
9. Tombol untuk mengirim pesan.
3.4.5. Rancangan Halaman Pesan Masuk
Rancangan Halaman pesan masukberfungsi untuk menampilkan pesan masuk dan pesan terkirim. Rancangan tampilanya dapat dilihat pada gambar 3.14.
ElGamal Crypto SMS (1)
Pengirim(2) Isi Pesan (3)
Pengirim Isi Pesan Pengirim Isi Pesan Pengirim Isi Pesan
Gambar 3.14 Rancangan Antarmuka Halaman Pesan Masuk
Keterangan:
1. Label yang menampilkan judul aplikasi. 2. Caption untuk menampikan pengirim pesan. 3. Caption untuk menampikan highlight isi pesan.
3.4.6. Rancangan Halaman Dekripsi Pesan
Rancangan Halaman Messaging berfungsi untuk menampilkan pesan masuk sekaligus dekripsi pesan dengan terlebih dahulu memasukkan kunci rahasia. Rancangan halamam pesan masuk dapat dilihat pada gambar 3.15.
ElGamal Crypto SMS (1)
Caption(2)
Text View(3)
Keterangan:
1. Label yang menampilkan judul aplikasi.
2. Caption yang berfungsi menampilkam nama pengirim pesan. 3. Text View yang berfungsi menampilkan isi pesan yang diterima. 4. Text Box yang berfunsi untuk mengimput nilai p sebagai kunci rahasia. 5. Text Box yang berfunsi untuk mengimput nilai x sebagai kunci rahasia. 6. Tombol yang digunakan untuk melakukan dekripsi pesan.
3.4.7. Rancangan HalamanPetunjuk
Rancangan Halaman petunjukberfungsi untuk menampilkan keterangan dan penggunaan apliksi. Rancangan halamam ini dapat dilihat pada gambar 3.16.
ElGamal Crypto SMS (1)
Gambar 3.16 Rancangan Antarmuka Halaman Petunjuk
Keterangan:
1. Label yang menampilkan judul aplikasi.
2. Text View yang berfungsi menampilkan keterangan dan petunjuk penggunaa aplikasi.
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
Program yang dibangun pada tugas akhir ini menggunakan bahasa pemrograman Java dengan menggunakan editor Eclipse IDE versi 21.1.0. Aplikasi memungkinkan untuk dijalankan pada perangkat Android dengan versi minimum 2.2 (Frozen Yoghurt). Proses implementasi sistem pada aplikasi yang dirancang dibagi menjadi dua, yaitu: 1. Implementasi proses pembangkit kunci yang menggunakan fermat’s little theorem
sebagai penguji bilangan prima.
2. Implementasi proses enkripsi dan dekripsi pesan yang menggunakan Algoritma ElGamal.
4.1.1Implementasi Pengujian Aplikasi
Ketika aplikasi telah dipasang pada perangkat android, maka akan tamil icon pada app drawer di sistem android. Aplikasi ini bernama ElGamalKripto. Tampilannya dapat dilihat pada Gambar
Gambar 4.1 Tampilan icon aplikasi pada app drawer
Ketika aplikasi dijalankan, sistem akan mengantarkan ke menu utama yang berisi tombol pembangkit kunci, buat pesan baru, kotak masuk, petunjuk, dan tombol keluar. Hal ini dapat dilihat secara jelas pada Gambar 4.2
Apabila user memilih pembangkit kunci, maka akan muncul halaman baru yang teridri dari tombol bangkitkan kunci untuk membangkitkan kunci yang dilakukan oleh sistem, dan tombol kirim yang berfungsi untuk mengirim kunci publk. Untuk lebih jelasnya dapat dilihat pada Gambar 4.3. Jika user memilih tombol buat pesan maka akan muncul halaman bsru dimana user dapat melakukan proses enkripsi dan mengirim pesan. Untuk lebih jelasnya dapat dilihat pada Gambar 4.5. Jika user memilih tombol pesan masuk maka akan muncul halama baru yang memungkinkan user dapat membaca pesan masuk dan melakukan dkripsi pesan. Untuk lebih jelasnya dapat dilihat pada Gambar 4.7. Jika user memilih tombol petunjuk maka akan munul halaman baru yang menampilkan informasi mengenai aplikasi dan penggunannya. Untuk lebih jelasnya dapat dilihat pada Gambar 4.9. Jika user memilih tombol keluar maka akan keluar dari aplikasi.
Gambar 4.3 Tampilan halaman pembangkit kunci
Gambar 4.4Tampilan halaman kirim kunci publik
Tampilan halaman buat pesan baru berisi tombol kontak untuk menginput nomor penerima yang sebelumnya sudah tersimpan pada perangkat Android. Tombol enkrip yang berfungsi untuk melakukan proses enkripsi yang terlebih dahulu user memasukkkan nilai p, g, dan y sebagai kunci publik dengn benar. User dapat mengirim pesan dengan menekan tombol kirim. User dapat melakukan analisa enkripsi dengan melihat tampilan message box. Untuk lebih jelasnya dapat dilihat pada Gambar 4.5. dan Gambar 4.6.
Gambar 4.6 Tampilan halaman proses enkripsi
Tampilan halaman pesan masuk berisi pesan yang diterima dan tombol dekrip. Untuk melakukan dekripsi user harus memasukan kunci publik p dan x dengan benar lalu menekan tombol dekrip. Untuk menganalisa proses dekripsi user dapat melihat message box yang ditampilkan. Untuk lebih jelasnya dapat dilihat pada Gambar 4.7 dan Gambar 4.8.
Gambar 4.8 Tampilan halaman proses dekripsi
Gambar 4.9 Tampilan halaman petunjuk
4.2 Pengujian
4.2.1 Pengujian dan Analisis Hasil Enkripsi dan Dekripsi
Tabel 4.1Panjang Plainteks dan Panjang Cipherteks yang dihasilkan dalam proses enkripsimenggunakan algortma ElGamal.
Panjang Maksimum Kunci Publik (digit)
Berdasarkan Tabel 4.3 dapat kita lihat bahwa panjang karakter cipherteks yang dihasilkan dari proses enkripsi lebih besar dari plainteksnya.
Dari Tabel 4.3 dapat dibuat grafik perbandingan hasil pengujian antara ukuran file plainteks dan cipherteks seperti gambar 4.10 beikut.
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil studi literatur, analisis, perancangan, implementasi dan pengujian sistem, maka didapat kesimpulan sebagai berikut:
1. Panjang karakter cipherteks yang dihasilkan dengan algoritma ElGamal dengan kunci publik maksimal 32 bit adalah tujuh kali lipat sampai sepuluh kali lipat dari panjang plainteks.lebih besar dari cipherteksnya.
2. Pengujian bilangan prima menggunakan Fermat’s Little Theorema dinilai cukup baik karena menghasilkan kunci prima yang lebih besar dari 255 sehingga memiliki kelebihan dari tingkat keamanan data. Namun pengujian bilangan prima menggunakan Fermat’s Little Theoremamemiliki kelemahan yaitu lambat dalam proses enkripsi karena menggunakan bilangan prima yang besar.
5.2. Saran
Adapun saran-saran yang dapat penulis berikan untuk pengembangan dan perbaikan sistem ini adalah sebagai berikut:
1. Untuk algoritma ElGamal yang di gunakan pada aplikasi ini, panjang maksimal kunci publik yang digunakan adalah 32 bit.Selanjutnya dapat digunakan kunci publik 64 bit.
2. Aplikasi ini hanya dapat dijalankan pada perangkat mobile yang memiliki sistem operasi Android. Sehingga untuk pengembangan selanjutnya jika memungkinkan dapat di gunakan lintas platform, misalnya untuk Sistem Operasi iOS, Windows phone, Symbian dan sejenisnya.
BAB 2
LANDASAN TEORI
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).
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
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
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
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:
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
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
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
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.
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.
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
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 berisi teori-teori yang berkaitan dengan kriptografi dan algoritma ElGamal.
Bab 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi proses pembuatan algoritma program, Use Case Scenario, flowchart sistem, flowchart algoritma, rancangan aplikasi, dan pembuatan user interface aplikasi.
Bab 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi ulasan dan pengujian terhadap program yang telah diimplementasikan.
Bab 5 KESIMPULAN DAN SARAN
ABSTRAK
Komunikasiadalahhalpenting yang dilakukanseseorangatauinstansiuntuksalingberhubungandanbertukarinformasi.SMS
(Short Message Service) merupakanlayanankomunikasi yang sangatumumdigunakanmasyarakat.Dalam hal ini, untuk menjamin keamanan dan kerahasiaan pesan tersebut digunakan metode kriptografi. Kriptografi merupakan ilmu yang mempelajari tentang teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan data dan autentifikasi data.Pengamanan pesan yang di lakukan adalah dengan menggunakan algoritmaElGamal. Pengujianbilangan prima menggunakanFermat’s Little
Theoremdenganpanjangmaksimalkuncipublik 32 bit. Implementasisistemmenggunakanbahasapemrograman Java denganmenggunakan IDE
Eclipse.Pengujian algoritma dilakukan dengan meneliti perbandingan panjang plainteks dan cipherteksyang di hasilkan.
FOR SMS SECURITY ON ANDROID
ABSTRACT
Communication is the important thing to do for someone to interact and exchange information. SMS (Short Message Service) is a communication service that very commonly used. To maintain the security and confidentiality of the message is by using cryptography. Cryptography is the science of mathematical techniques related to aspects of information security such as data confidentiality, data authenticity, data integrity, and authentication data. Text security is done by a ElGamalcryptography in a text file Testing primes using the Fermat’s Little Theorem.The system on ElGamalwas tested with a maximum key length of 32 bits. Implementation of the system using Java programming language in Eclipse. The results showed that ratio of the length of plaintext and ciphertext produced.
IMPLEMENTASI ALGORITMA ELGAMAL UNTUK
KEAMANAN SMS PADA ANDROID
SKRIPSI
FERA FERDIAN
131421060
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI ALGORITMA ELGAMAL UNTUK KEAMANAN SMS PADA ANDROID
SKRIPSI
DiajukanuntukmelengkapitugasakhirdanmemenuhisyaratmemperolehijazahSarjanaIlmu Komputer
FERA FERDIAN 131421060
PROGRAM STUDIS1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA ELGAMAL UNTUK
KEAMANAN SMS PADA ANDROID
Kategori : SKRIPSI
Nama : FERA FERDIAN
NomorIndukMahasiswa : 131421060
Program Studi : EKSTENSI S1 ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, KomisiPembimbing :
Pembimbing II Pembimbing I
M. Andri Budiman, ST, M.Comp.Sc, MEM Prof. Dr. Muhammad Zarlis
Diketahui/Disetujuioleh
Program Studi S1 IlmuKomputer Ketua,
IMPLEMENTASI ALGORITMA ELGAMAL UNTUK KEAMANAN SMS PADA ANDROID
SKRIPSI
Sayamenyatakanbahwaskripsiiniadalahhasilkaryasayasendiri, kecualibeberapakutipan dan ringkasan yang masing-masingtelah disebutkansumbernya.
Medan, Juni2015
PENGHARGAAN
Pujidansyukurkehadirat Allah SWT, yang atas berkatRahmatdanizin-Nyapenulisdapatmenyelesaikanpenyusunanskripsiini,
sebagaisyaratuntukmemperolehgelarSarjanaKomputer, pada Program Studi S1 IlmuKomputerFakultasIlmuKomputerdanTeknologiInformasiUniversitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara sekaligus selaku Dosen Pembimbing I yang telah banyak memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
2. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing II yang telah banyak memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
3. Bapak Dr. PoltakSihombing, M.Komselaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
4. Bapak Drs. AgusSalimHarahap, M.Si selaku Dosen PembandingIyang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
5. IbuDian Rachmawati, S.Si. M.Kom selaku Dosen PembandingII yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
7. Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, seluruhtenaga pengajar dan pegawai diProgram Studi S1Ilmu Komputer Fasilkom-TIUSU.
8. Kedua orang tuapenulis, yaituAyahandaSyahrulTanjung yang selalumemberikandoadandukungansertaIbundaNuraini yang terusmencurahkankasihsayangsertabimbinganterbaiknyakepadapenulis.Kepadaad
ikpenulis, CeniDwiAnanda yang
selalumembantudanmendukungpenulisdalammenyelesaikanstudi, sertakeluargabesarpenulisatassegalaperhatiandandukungan.
telahmemberikanbantuan, perhatian, sertadukungankepadapenulisdalammenyelesaikanskripsiini.Akhir
kata,semogaskripsiinibermanfaatbagipribadi, keluarga, masyarakat, organisasidannegara.
Medan, Juni 2015 Penulis
ABSTRAK
Komunikasiadalahhalpenting yang dilakukanseseorangatauinstansiuntuksalingberhubungandanbertukarinformasi.SMS
(Short Message Service) merupakanlayanankomunikasi yang sangatumumdigunakanmasyarakat.Dalam hal ini, untuk menjamin keamanan dan kerahasiaan pesan tersebut digunakan metode kriptografi. Kriptografi merupakan ilmu yang mempelajari tentang teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan data dan autentifikasi data.Pengamanan pesan yang di lakukan adalah dengan menggunakan algoritmaElGamal. Pengujianbilangan prima menggunakanFermat’s Little
Theoremdenganpanjangmaksimalkuncipublik 32 bit. Implementasisistemmenggunakanbahasapemrograman Java denganmenggunakan IDE
Eclipse.Pengujian algoritma dilakukan dengan meneliti perbandingan panjang plainteks dan cipherteksyang di hasilkan.
FOR SMS SECURITY ON ANDROID
ABSTRACT
Communication is the important thing to do for someone to interact and exchange information. SMS (Short Message Service) is a communication service that very commonly used. To maintain the security and confidentiality of the message is by using cryptography. Cryptography is the science of mathematical techniques related to aspects of information security such as data confidentiality, data authenticity, data integrity, and authentication data. Text security is done by a ElGamalcryptography in a text file Testing primes using the Fermat’s Little Theorem.The system on ElGamalwas tested with a maximum key length of 32 bits. Implementation of the system using Java programming language in Eclipse. The results showed that ratio of the length of plaintext and ciphertext produced.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Daftar Lampiran xiv
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4Manfaat Penelitian 3
1.5 Tujuan Penelitian 3
1.6 MetodologiPenelitian 3
1.7 Sistematika Penulisan 4
Bab2 Landasan Teori
2.1 Kriptografi 6
2.1.1 Pengertian Kriptografi 6
2.1.2 TerminologiKriptografi 7
2.1.3TujuanKriptografi 7
2.1.4 Sistem Kriptografi 8
2.1.5 Sistem Kriptografi Asimetris 9
2.1.6 Bilangan Prima 10
2.1.7 Aritmatika Modulo 10
2.1.8 Modulo Eksponensial 10
2.1.9 Invers Modulo 11
2.1.10 ElemenPrimitif 12
2.1.11 Fermat’s Little Theorem 12
2.1.12 Algorima Euclid 14
2.2AlgoritmaElGamal 14
2.2.1 PembangkitKunci 14
2.2.2Proses Enkripsi 15
2.2.3Proses Dekripsi 15
Bab 3 Analisis dan Perancangan
3.1 AnalisisSistem 17
3.1.2.1KebutuhanFungsional 18
3.1.2.2KebutuhanNonfungsional 18
3.2 Pemodelan Aplikasi 19
3.2.1 Use Case Diagram 19
3.2.2 Activity Diagram 20
3.2.2.1 Activity Diagram Proses PembangkitKunci 20 3.2.2.2Activity Diagram Proses Enkripsi Pesan 21 3.2.2.3Activity Diagram Proses Dekripsi Pesan 22
3.3 Perancangan Sistem 23
3.3.1 Pembuatan Algoritma Program 23
3.3.2 Alur Proses Sistem Secara Umum 23
3.3.3Alur Proses PembangkitKunci 24
3.3.4 Alur Proses Enkripsi 25
3.3.5Alur Proses Dekripsi 26
3.4 Perancangan Antarmuka (Interface) 27
3.4.1 Rancangan Halaman Utama 27
3.4.2 Rancangan Halaman PembangkitKunci 28
3.4.3Rancangan Halaman KirimKunci 29
3.4.4 Rancangan Halaman BuatPesanBaru 30
3.4.5Rancangan Halaman Pesan Masuk 31
3.4.6 Rancangan Halaman Dekripsi Pesan 32
3.4.7Rancangan Halaman Dekripsi Petunjuk 33 Bab4 Implementasi dan Pengujian
4.1 Implementasi 34
4.1.1 Implementasi Pengujian Aplikasi 34
4.2 Pengujian 39
4.2.1PengujiandanAnalisisHasilEnkripsi dan Dekripsi 39 Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 42
5.2Saran 43
DAFTAR TABEL
Halaman
2.1 Penyelesaiancontohsoalinversi modulo 11
Halaman
2.1 Skema Proses Enkripsi dan Dekripsi 7
2.2 Skema Sistem Kriptografi Asimetris Kunci Publik 9
3.1Use-Case Diagram Pada Sistem 19
3.2Activity Diagram Proses Pembangkit Kunci 20
3.3Activity Diagram Proses Enkripsi Pesan 21
3.4Activity Diagram Proses Dekripsi Pesan 22
3.5Flowchart Gambaran Umum Sistem 24
3.6Flowchart Pembangkitan Kunci 25
3.7Flowchart Proses Enkripsi 26
3.8Flowchart Proses Dekripsi 27
3.9Rancangan Antarmuka Halaman Utama 28
3.10Rancangan Antarmuka Halaman Pembangkit Kunci 29
3.11Rancangan Halaman Kirim Kunci Publik 30
3.12Rancangan HalamanBuat Pesan Baru 31
3.13Rancangan HalamanPesan Masuk 32
3.14Rancangan HalamanPetunjuk 33
4.1 Tampilan icon aplikasi pada app drawer 35
4.2 Tampilan Halaman Awal Aplikasi 35
4.3Tampilan Halamanpembangkit Kunci 36
4.4Tampilan Halaman Kirim Kunci Publik 37
4.5Tampilan Halaman Buat Pesan Baru 37
4.6Tampilan Halaman Pross Enkripsi 38
4.7Tampilan Halaman Pesan Masuk 38
4.8Tampilan Halaman Proses Dekripsi 39
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1