PENGEMBANGAN APLIKASI PERTUKARAN SMS RAHASIA BERBASIS ANDROID MENGGUNAKAN ALGORITME RSA
EDI SYAHPUTRA
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi Pengembangan Aplikasi Pertukaran SMS Rahasia Berbasis Andorid Menggunakan Algoritme RSA adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir disertasi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Desember 2013 Edi Syahputra NIM G64096021
ABSTRAK EDI SYAHPUTRA. Pengembangan Aplikasi Pertukaran SMS Rahasia Berbasis Android Menggunakan Algoritme RSA. Dibimbing oleh SHELVIE NIDYA NEYMAN dan KARLINA KHIYARIN NISA. Pengiriman pesan dengan menggunakan short message service (SMS) merupakan suatu layanan yang sangat populer di kalangan pemakai telepon seluler di Indonesia. Pengiriman SMS dari satu perangkat ke perangkat lain membutuhkan perantara SMS center (SMSC) untuk menyimpan dan menyampaikan SMS ke tujuan ketika perangkat tujuan tersedia. Teknologi SMS memiliki kelemahan yaitu enkripsi hanya dilakukan antara mobile station (MS) dan base transceiver station (BTS) sedangkan pada bagian lain tanpa enkripsi sama sekali, sehingga memungkinkan serangan berupa penyadapan maupun modifikasi. Metode RSA memiliki keunggulan yaitu tidak membutuhkan pertukaran secret key dan dapat menjaga keaslian dari isi SMS. Aplikasi algoritme RSA dapat diaplikasikan agar pertukaran SMS menjadi lebih aman dan terjaga kerahasiaan isi pesan. Kata kunci: Android, dekripsi, enkripsi, kriptografi, RSA, SMS rahasia
ABSTRACT EDI SYAHPUTRA. Development of Secret SMS Exchange Application Based on Android by Using RSA Algorithm. Supervised by SHELVIE NIDYA NEYMAN and KARLINA KHIYARIN NISA. Delivering message using short message service (SMS) is very familiar among the users of cellular phone in Indonesia. SMS center (SMSC) is required to keep and deliver SMS from one device to another device. The weakness of SMS technology of is that the encryption only works between mobile station (MS) and base transceiver station (BTS). Meanwhile on the other side, it is fully opened without encryption so that some attacks such as hacking and modification become highly possible. This research utilized RSA algorithm to secure the delivery of SMS between one device and another. The advantage of RSA method is that it does not need to exchange secret key and it is able to keep the original content of SMS. It was found that RSA applications can be applied in order to guarantee the security of SMS contents. Keywords: Android, cryptography, decrypt, encrypt, RSA, secret SMS
PENGEMBANGAN APLIKASI PERTUKARAN SMS RAHASIA BERBASIS ANDROID MENGGUNAKAN ALGORITME RSA
EDI SYAHPUTRA
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
Penguji: 1 DrEng Heru Sukoco, BSc MEng
Judul Skripsi : Pengembangan Aplikasi Pertukaran SMS Rahasia Berbasis Android Menggunakan Algoritme RSA Nama : Edi Syahputra NIM : G64096021
Disetujui oleh
Shelvie Nidya Neyman, SKom Msi
Karlina Khiyarin Nisa, SKom MT
Pembimbing I
Pembimbing II
Diketahui oleh
Dr Ir Agus Buono, MSi Mkom Ketua Departemen
Tanggal Lulus:
Judul Skripsi Nama NIM
Pengernbangan Aplikasi Pertukaran SMS Rahasia Berbasis Android Menggunakan Algoritrne RSA Edi Syahputra G64096021
Disetujui oleh
Shelvie Nidya Neyman, SKorn MSi
Karlina Khiyarin Nisa, Skorn MT
Pernbirnbing I
Pernbirnbing II
Diketahui
~.t
MSi ~'n\..orn
Tanggal Lulus:
O
7 FEB 20 ' 4
PRAKATA Segala puji syukur dan kemuliaan hanya kepada Tuhan Yesus Kristus atas segala limpahan hasil karunia-Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul “Pengembangan Aplikasi Pertukaran SMS Rahasia Berbasis Android Menggunakan Algoritme RSA”. Penulis menyadari skripsi ini masih jauh dari sempurna dan dalam penyelesaiannya tidak lepas dari bimbingan, arahan dan bantuan dari berbagai pihak, dalam kesempatan ini perkenankan penulis untuk mengucapkan terima kasih dan penghargaan yang tinggi kepada yang terhormat : 1 Ayahanda Lodewyk Panjaitan, SH, Ibunda Nanamna Br Sembiring, Kakanda Cony M. Br Panjaitan, Adinda Nancy R. Br Panjaitan dan Bery C. Panjaitan beserta semua keluarga besar atas semua doa dan dukungan yang senantiasa diberikan. 2 Miel Arta yang penuh dengan kesabaran untuk memberikan semangat, motivasi, dan mendengarkan segala keluhan disaat penulis merasa jenuh dan putus asa selama penyusunan skripsi. 3 Ibu Shelvie Nidya Neyman, SKom MSi dan Ibu Karlina Khiyarin Nisa, SKom MT selaku dosen pembimbing yang senantiasa mencurahkan waktu, tenaga, dan pikiran untuk penyelesaian skripsi ini. 4 Bapak DrEng Heru Sukoco, BSc MEng sebagai dosen penguji atas segala masukan yang diberikan. 5 Seluruh dosen pengajar Departemen Ilmu Komputer FMIPA IPB untuk semua yang telah mereka berikan selama penulis mengikuti proses pembelajaran. 6 Seluruh staf yang telah membantu proses pembelajaran hingga selesai. 7 Rekan-rekan mahasiswa ekstensi ILKOM IPB khususnya seangkatan Ilkom X4 atas persahabatan dan kebersamaan selama ini. Semoga kebersamaan kita akan terus berjalan untuk selamanya. 8 Pihak-pihak lain yang tidak mungkin disebutkan satu persatu untuk bantuannya dalam penyelesaian tugas akhir ini. Akhir kata, masukan dari berbagai pihak tentu amat diharapkan untuk membangun apa yang telah dicapai penelitian ini hingga menjadi lebih baik lagi. Semoga penelitian ini memberikan manfaat untuk orang lain.
Bogor, Desember 2013 Edi Syahputra
DAFTAR ISI DAFTAR TABEL
vii
DAFTAR GAMBAR
vii
DAFTAR LAMPIRAN
viii
PENDAHULUAN
1
Latar Belakang
1
Tujuan Penelitian
1
Ruang Lingkup Penelitian
2
TINJAUAN PUSTAKA
2
Android
2
Android Software Development Kit (SDK)
2
Arsitektur SMS
3
Keamanan SMS
3
Serangan pada SMS
4
Kriptografi
5
Protokol
6
Siklus Hidup Keamanan
6
Algoritme RSA
7
METODE
8
Identifikasi Layanan Keamanan
8
Penentuan Kebijakan
9
Spesifikasi
9
Desain
9
Implementasi
9
Pengujian
9
HASIL DAN PEMBAHASAN Identifikasi Layanan Keamanan
9 9
Penentuan Kebijakan
10
Spesifikasi
10
Desain
11
Implementasi
15
Pengujian
16
SIMPULAN DAN SARAN
17
DAFTAR PUSTAKA
18
LAMPIRAN
19
RIWAYAT HIDUP
20
DAFTAR TABEL 1 Pengujian fungsionalitas
16
2 Kinerja enkripsi pesan
17
3 Kinerja dekripsi pesan
17
DAFTAR GAMBAR 1 Skema pengiriman SMS
3
2 Teknik spoofing SMS
4
3 Siklus hidup keamanan
6
4 Tahapan penelitian
8
5 Alur protokol
11
6 Proses pembangkitan pasangan kunci
12
7 Proses enkripsi pesan
12
8 Proses dekripsi pesan
13
9 Proses pengiriman SMS rahasia
13
10 Proses verifikasi SMS
14
11 Alur SMS rahasia
15
DAFTAR LAMPIRAN 1 Source code untuk pembangkitan pasangan kunci (gen_key.php)
19
2 Source code untuk enkripsi pesan (encrypt.php)
19
3 Source code untuk dekripsi pesan (decrypt.php)
19
PENDAHULUAN Latar Belakang Kemajuan teknologi dewasa ini telah mengalami perkembangan yang signifikan. Kemajuan ini pun dirasakan berdampak baik pada manusia. Hal ini dikarenakan banyaknya permasalahan manusia yang mampu diselesaikan oleh teknologi. Mulai dari masalah komunikasi sampai pada masalah keamanan telah mampu dijawab oleh teknologi sekarang ini. Sehingga bisa dikatakan teknologi saat ini telah menjadi tulang punggung bagi segala aktifitas manusia. Kemajuan teknologi yang paling signifikan yang dapat kita lihat adalah kemajuan teknologi dalam bidang informasi. Salah satu perkembangan teknologi informasi terwakilkan dalam perkembangan telepon seluler. Telepon seluler atau lebih dikenal sebagai ponsel merupakan perangkat komunikasi populer berbasis mobile. Oleh karena itu, dunia saat ini sedang melangkah pasti pada dunia mobile, dimana peralatan teknologi informasi yang awalnya hanya bisa di kantor atau rumah mulai tergantikan dengan notebook, netbook, smartphone, dan peralatan mobile yang lainnya. Telepon seluler pun menjadi salah satu yang akan berperan aktif dalam dunia mobile ini. Salah satu media komunikasi yang digunakan menggunakan ponsel adalah short message service (SMS). SMS merupakan cara cepat dan mudah berkomunikasi untuk menyampaikan pesan kepada orang lain. Layanan SMS juga digunakan untuk transaksi perbankan yaitu dengan mengirimkan informasi saldo, laporan transaksi yang baru saja dilakukan dan PIN untuk transaksi e-Banking. Namun, semakin praktis dan efektif sebuah teknologi maka semakin rentan juga teknologi itu terhadap sasaran dari tindak kejahatan pada dunia mobile ini. Teknologi pun menjadi rentan terhadap segala tindak kecurangan yang mampu dilakukan oleh orang-orang yang mampu memasuki daerah privasi ini. Kemungkinan kerentanan sistem keamanan pada teknologi informasi ini juga dialami pada layanan SMS. SMS memiliki berbagai kelemahan yaitu SMS dibangun dengan system dan program yang sama. SMS juga melakukan roaming jaringan setempat hingga ke jaringan asing sehingga dimungkinkan adanya SMS spoofing dalam bentuk penyamaran atau manipulasi informasi seperti alamat atau data lainnya yang menyerupai user. Kelemahan lainnya yaitu isi SMS yang dikirim bersifat terbuka di system penyedia jasa maupun pegawainya. Hal ini semakin menuntut kekuatan pada keamanan data yang dimiliki oleh SMS. Penelitian ini akan mengaplikasikan algoritme RSA pada SMS untuk meningkatkan aspek confidentiality, integrity, authenticity, dan non-repudiation pada perangkat mobile berbasis Android. Aplikasi dikembangkan dan diujikan pada perangkat ponsel yang mendukung Android dengan versi minimal 2.3.
Tujuan Penelitian Tujuan dari penelitian ini adalah mengembangkan aplikasi pengiriman SMS rahasia sehingga menjamin kerahasiaan isi pesan dan menjamin otentikasi
2 pengirim sebenarnya. Dengan demikian cracker akan kesulitan untuk membaca, mengubah SMS, dan memalsukan otentikasi pesan antara dua perangkat berbasis Android. Ruang Lingkup Penelitian Ruang lingkup penelitian ini yaitu: 1 Penerapan pembangkitan kunci publik dan pribadi menggunakan algoritme RSA; 2 Distribusi kunci publik dilakukan via SMS; 3 Penggunaan enkripsi dan dekripsi SMS menggunakan algoritma RSA sebagai peningkatan keamanan SMS; 4 Ponsel pengirim dan penerima harus memakai aplikasi yang dikembangkan; 5 Tidak membahas/menganalisa overhead cost pemakaian aplikasi dibandingkan dengan aplikasi SMS biasa; 6 Hanya untuk satu pengirim dan satu penerima.
TINJAUAN PUSTAKA Android Android bukan hanya untuk perangkat mobile saja, Android merupakan sebuah sistem operasi yang dikemas sedemikian rupa sehingga dapat digunakan untuk berbagai perangkat yang menggunakan layar. Awalnya, Google membeli Android, pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler.
Android Software Development Kit (SDK) Layanan SMS, merupakan salah satu layanan pengiriman pesan. Layanan SMS terdapat di hampir semua perangkat telepon seluler. Layanan SMS memungkinkan pengiriman pesan pendek berbasis teks melalui jalur komunikasi. Pengiriman dilakukan dari satu pengguna ke pengguna lain atau dari satu pengguna ke suatu aplikasi. Sebuah pesan SMS memiliki kapasitas maksimal 140 byte. Untuk karakter 8 bit sebuah pesan bisa memuat 140 karakter, untuk 7 bit sebanyak 160 karakter, dan untuk karakter 16 bit seperti Bahasa Jepang, Bahasa Mandarin, dan Bahasa Korea yang memakai huruf Kanji, dapat memuat 70 karakter. Pengguna dapat mengirimkan lebih dari 140 byte, namun akan dihitung mengirim pesan lebih dari satu SMS (Ayuningtyas 2007).
3 Layanan SMS awalnya dirancang sebagai bagian dari jaringan global system for mobile communication (GSM). Seiring dengan berkembangnya teknologi, layanan ini juga dibawa ke jaringan lain seperti general packet radio service (GPRS) dan code division multiple access (CDMA). Skema pengiriman SMS ditunjukkan pada Gambar 1.
Gambar 1 Skema pengiriman SMS (Bodic 2003). SMS yang dikirim oleh pengirim akan diterima oleh operator telekomunikasi yang digunakan pengirim. Operator ini akan mengirimkan SMS tersebut ke operator yang digunakan penerima. Bila pengirim dan penerima masih satu operator, proses ini tidak terjadi. Operator penerima kemudian mengirimkan SMS tersebut ke penerima yang dituju oleh pengirim. Penerima secara otomatis akan mengirim status report ke pengirim. Status report ini akan melalui proses yang sama dengan pesan yang dikirim. Saat ini, pengiriman SMS sudah dapat melintasi teknologi baik itu GSM ke CDMA atau sebaliknya. Proses lintas teknologi ini dilakukan antar operator telekomunikasi.
Arsitektur SMS Suatu pesan SMS dikirim melalui kanal sinyal GSM antara mobile station (MS) dan base transceiver station (BTS). Pesan ini mengalir seperti panggilan normalnya, tetapi mereka diarahkan dari mobile station center (MSC) ke short message service center (SMSC). SMSC menyimpan pesan tersebut sampai dapat dikirim kepada penerima ataupun sampai kepada validitas waktu dari pesan telah terlewati. Penerima dari pesan ini dapat berupa pemakai MS maupun SMS gateway. SMS gateway yaitu suatu server yang terkoneksi kepada satu atau lebih SMSC untuk menyediakan aplikasi SMS kepada pemakai MS.
Keamanan SMS Dua aspek penting dari suatu entitas yang menggunakan teknologi SMS untuk pertukaran data pribadi maupun bisnis adalah sebagai berikut: 1 SMS bukanlah suatu lingkungan yang aman; 2 Pelanggaran keamanan sering terjadi lebih mudah pada konsentrasi terhadap manusia daripada teknologi (Jones 2002). Isi dari pesan SMS tidak terenkripsi pada sistem operator, sehingga karyawan maupun penyusup pada sistem operator dapat dengan mudah melakukan penyadapan maupun perubahan. Dengan demikian SMS bukanlah teknologi yang cocok untuk komunikasi yang membutuhkan keamanan. Kebanyakan pemakai tidak menyadari bahwa pembacaan isi SMS dapat dengan mudah dilakukan oleh karyawan operator. Keamanan pada jaringan ini juga sangat
4 longgar proteksinya, sehingga menjadi sasaran cracker karena isi dari pesan dikirim dalam bentuk plaintext. Walaupun pada gateway telah memiliki authentication, tetapi kebanyakan menggunakan protokol dengan plaintext yang mengandung informasi nama login dan password. Serangan man-in-the-middleattack dapat saja dilakukan walaupun tidak mudah dilakukan karena biasanya gateway dan SMS center (SMSC) berada di belakang firewall.
Serangan pada SMS Koneksi antara SMSC dan SMS gateway adalah bukan merupakan bagian dari standard GSM, yang memungkinkan pemakaian protokol seperti TCP/IP dan X.25 untuk komunikasi antara SMSC dan gateway. Koneksi tersebut juga bukanlah merupakan bagian dari jaringan GSM, tetapi merupakan jaringan antara operator dengan penyedia konten, atau bahkan dengan internet. Permasalahan lainnya yang perlu diketahui adalah adanya kemungkinan penyerang untuk membuat suatu gateway dimana dia berpura-pura menjadi gateway yang sebenarnya. Gateway palsu ini kemudian dapat mengirim segala jenis SMS kepada pemakai Mobile Station (MS) melalui SMSC tersebut dengan memanipulasi informasi pengirim pesan pada field tertentu pada SMSC protocol. Dengan teknik spoofing ini dimungkinkan untuk memanipulasi Mobile Station International ISDN Number (MSISDN) sehingga seakan-akan pesan tersebut datang dari telepon seluler tertentu. Keberhasilan teknik ini tergantung kepada implementasi pada SMSC. SMSC dapat juga cukup cerdas untuk memeriksa keabsahan pengirim dan memblokir pesan tersebut, karena berasal dari suatu gateway yang bukan merupakan suatu telepon seluler. Dalam hal ini penyerang membuat suatu SMSC simulator yang berpura-pura menjadi suatu SMSC yang sebenarnya sebagaimana ditunjukkan Gambar 2.
Gambar 2 Teknik spoofing SMS (Lenstra dan Verheul 2001)
5 Pada Gambar 2 dapat dijelaskan bahwa SMS dikirim kepada SMS-C dengan memanipulasi MSISDN seakan-akan berasal dari pemakai akhir dari public land mobile network (PLMN) A, dan mengirim SMS kepada pemakai akhir pada PLMN B. Layanan ini diharapkan dapat mengatasi ancaman keamanan berupa pemalsuan pengirim atau penyamaran dan perubahan isi pesan oleh pihak yang tidak berwenang. Kriptografi Kriptografi berasal dari bahasa Yunani, yang terdiri dari kata crypto dan graphia. Crypto berarti rahasia dan graphia berarti tulisan. Kriptografi merupakan ilmu dan seni untuk menjaga keamanan pesan ketika dikirim dari sebuah sumber informasi ke suatu tujuan pengiriman informasi. Para sejarahwan percaya bahwa hieroglif Mesir, yang dimulai sekitar tahun 1900, merupakan contoh pengenkripsian yang paling awal ditemukan. Kunci yang dapat memecahkan rahasia hieroglif adalah Rosetta Stone, ditemukan tahun 1799 di Mesir dan sekarang berada di British Museum, London. Francois Champollion, menggunakan Rosetta Stone, mendekripsi hieroglif pada tahun 1822 (Konheim 2007). Pesan yang dikirimkan dapat berupa teks, data numerik, dan data jenis lain disebut dengan plaintext. Dengan melakukan proses enkripsi, plaintext tersebut berubah menjadi ciphertext. Proses untuk mengembalikan ciphertext menjadi plaintext disebut dengan proses dekripsi. Untuk melakukan proses dekripsi diperlukan adanya suatu kunci rahasia. Tujuan dari kriptografi adalah (Schneier 1996): 1 Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk menjaga isi informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap informasi. Ada beberapa pendekatan untuk menjaga kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat data tidak dapat dipahami. Istilah lain yang senada dengan confidentiality adalah secrecy dan privacy. 2 Integritas data adalah layanan penjagaan pengubahan data dari pihak yang tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli. 3 Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga
6 memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Tanda-tangan digital menyatakan sumber pesan. 4 Nirpenyangkalan (non-repudiation) adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Protokol Protokol merupakan rangkaian langkah-langkah yang melibatkan dua entitas atau lebih dan didesain untuk menyelesaikan masalah (Schneier 1996). 1
2 3 4
Karakteristik protokol adalah sebagai berikut: Semua pihak yang terlibat dalam protokol harus mengetahui keberadaan protokol dan mengikuti keseluruhan langkah-langkah yang terdapat di dalam protokol. Semua pihak yang terlibat harus menyetujui penggunaan protokol tersebut. Setiap langkah yang ada di dalam protokol harus jelas dan tidak membingungkan. Protokol yang digunakan harus lengkap menjelaskan tindakan yang dilakukan untuk semua kemungkinan yang terjadi. Siklus Hidup Keamanan
Salah satu metode pembangunan protokol adalah berdasarkan siklus hidup keamanan (security life cycle). Siklus ini terdiri atas rangkaian tahap. Setiap tahap dapat kembali lagi ke tahap sebelumnya walau belum menyelesaikan satu siklus. Gambar 3 menunjukkan siklus hidup keamanan (Bishop 2002). Threats
Policy
Spesification
Design
Implementation Operation and Maintenance
Gambar 3 Siklus hidup keamanan (Bishop 2002)
7 Penjelasan dari siklus hidup keamanan pada Gambar 3 adalah sebagai berikut: 1 Threat atau ancaman. Pada tahap ini, dilakukan analisis ancaman-ancaman yang berpotensi menyerang protokol. Identifikasi ini bertujuan agar layanan yang dibuat nantinya mampu mengatasi ancaman-ancaman tersebut. 2 Policy atau kebijakan. Kebijakan yang dibuat berdasarkan ancaman yang telah diidentifikasi. Kebijakan-kebijakan yang dibuat harus mampu mengatasi ancaman-ancaman pada layanan yang dibuat. 3 Specification. Spesifikasi merupakan pernyataan fungsional. Spesifikasi mendeskripsikan metode sistem dalam memberikan layanan keamanan. Spesifikasi juga menentukan kebutuhan yang relevan dengan layanan yang dibuat. 4 Design. Pada tahap ini, apa yang telah ada di tahap spesifikasi diterjemahkan ke dalam komponen-komponen yang siap untuk diimplementasikan. 5 Implementation. Pada tahap ini, apa yang ada di tahap desain diimplementasikan. Tahap ini menghasilkan aplikasi protokol yang sesuai dengan tahap desain. Aplikasi yang memenuhi desain berarti memenuhi spesifikasi. 6 Operation and maintenance atau pengoperasian dan perawatan. Pada tahap ini, dijelaskan bagaimana proses pengoperasian aplikasi yang dikembangkan hingga berhasil sesuai dengan tujuan sedangkan perawatan merupakan proses perubahan-perubahan yang terjadi dari aplikasi yang dikembangkan hingga perkembangannya menjadi lebih baik lagi. Algoritme RSA Algoritma RSA mengambil nama dari Ron Rivest, Adi Shamir dan Len Adleman yang menciptakan metode ini pada tahuin 1977. Teknik dasarnya ditemukan pertama kali pada tahun 1973 oleh Clifford Cock dari CESG (bagian dari British GCHQ) tetapi dirahasiakan sampai tahun 1977. Paten dimiliki oleh RSA Labs dan telah expired (Ireland 2011). Keamanan algoritme RSA terletak pada sulitnya memfaktorkan bilangan bulat yang berukuran besar (Schneier 1996). RSA digunakan untuk enkripsi suatu berita tanpa membutuhkan pertukaran secret key. Sebagai contoh, dalam suatu skema pengiriman pesan dari Alice ke Bob, Alice dapat mengirim pesan tersandi kepada Bob tanpa perlu pertukaran secret key sebelumnya. Alice cukup menggunakan kunci publik milik Bob untuk proses enkripsi berita menjadi ciphertext, dan Bob menggunakan kunci pribadi yang hanya diketahuinya untuk proses dekripsi ciphertext tersebut menjadi plaintext. RSA juga dapat digunakan untuk suatu tandatangan digital pada berita, dimana Alice menandatangani pesan dengan menggunakan kunci pribadi-nya dan Bob dapat memeriksanya dengan menggunakan kunci publik milik Alice (Ireland, 2011). Langkah-langkah algoritme RSA untuk membangkitkan kunci adalah sebagai berikut: 1 Membangkitkan dua bilangan acak prima x dan y dengan jumlah bit yang sama. 2 Hitung nilai n = xy.
8 3 Hitung nilai (n) = (x – 1)(y – 1). 4 Memilih bilangan bulat e. Nilai e merupakan bilangan prima relatif dari (n) dan tidak memiliki faktor bersama kecuali 1. Persamaan untuk nilai e dapat dituliskan dengan gcd(e, (n)) = 1. 5 Menghitung nilai d. Nilai d didapat dari perhitungan e*d ≡ 1 mod (n) sehingga d = e-1 mod (n). Yang menjadi kunci publik adalah pasangan (n, e) dan yang menjadi kunci pribadi adalah d. Pesan yang akan dikirim dianggap sebagai bilangan integer p. Enkripsi dilakukan dengan melakukan perhitungan c = pe(mod n). C merupakan pesan yang sudah dienkripsi. Proses dekripsi dilakukan dengan melakukan perhitungan p = cd(mod n). Nilai p merupakan pesan asli.
METODE Penelitian dilakukan dengan lima tahap yang digunakan dan berdasarkan siklus hidup keamanan (Bishop 2002). Tahapan tersebut meliputi identifikasi layanan keamanan dari ancamanancaman (threats), penentuan kebijakan (policy), spesifikasi (specification), desain (design), implementasi (implementation), dan pengujian (testing) sedangkan untuk tahapan operation dan maintenance tidak dilakukan. Tahapan penelitian ditunjukkan pada Gambar 4. Threats
Policy
Spesification
Design
Implementation
Gambar 4 Tahapan penelitian Identifikasi Layanan Keamanan Pada tahap ini, dilakukan identifikasi layanan keamanan pertukaran SMS yang akan digunakan. Layanan ini diharapkan dapat mengatasi ancaman
9 keamanan berupa pemalsuan pengirim (penyamaran) dan modifikasi pesan oleh pihak yang tidak berwenang.
Penentuan Kebijakan Pada tahap ini, ditentukan kebijakan-kebijakan yang akan diterapkan pada aplikasi dikembangkan. Kebijakan ini harus dapat diterapkan di aplikasi pertukaran SMS yang dikembangkan agar dapat mengatasi ancaman keamanan yang ada.
Spesifikasi Pada tahap ini, ditentukan berbagai elemen yang ingin diterapkan pada aplikasi pertukaran SMS.
Desain Pada tahap ini, dilakukan perancangan aplikasi pertukaran SMS. Perancangan dilakukan berupa perancangan protokol, perancangan proses, dan cara kerja aplikasi pertukaran SMS.
Implementasi Pada tahap ini, dilakukan implementasi sesuai dengan desain yang telah dilakukan. Implementasi dilakukan dengan menggunakan Android karena aplikasi dikembangkan untuk digunakan di telepon seluler.
Pengujian Pada tahap ini, aplikasi telah selesai diuji. Pengujian yang dilakukan adalah pengujian fungsionalitas dan pengujian kinerja aplikasi pertukaran SMS.
HASIL DAN PEMBAHASAN Identifikasi Layanan Keamanan Layanan keamanan pertukaran SMS didesain untuk dapat memberikan layanan autentikasi dan integritas data untuk mengatasi masalah penipuan yang dilakukan cracker. Layanan ini juga dapat memberikan fungsi anti penyangkalan. Layanan anti penyangkalan memungkinkan pihak pengirim tidak dapat menyangkal sebagai pemilik pesan yang diterima oleh penerima.
10 Masalah keamanan yang menjadi sorotan utama pada pengembangan sistem ini adalah tentang kerahasiaan isi pesan. Kerahasiaan tersebut berupa ancaman pembacaan isi pesan oleh pihak yang bukan seharusnya membaca isi pesan, sehingga informasi menjadi rentan untuk tetap bersifat rahasia. Ancaman pemalsuan terkait dengan autentikasi pesan. Masalah modifikasi terkait integritas data. Untuk itu diperlukan sistem proteksi yang dapat menjaga isi SMS dengan menggunakan algoritme RSA. Pada sisi pengirim akan mengenkripsi pesan dengan kunci publik penerima kemudian dienkripsi lagi dengan kunci pribadi pengirim. Lalu di sisi penerima akan mendekripsi pesan dengan kunci publik pengirim kemudian didekripsi lagi dengan kunci pribadi penerima. Dengan demikian akan dapat dipastikan hanya penerima yang sah yang dapat mendekripsi pesan dan bahwa benar pengirim yang sah yang mengirim pesan tersebut.
Penentuan Kebijakan Kebijakan keamanan yang diterapkan adalah sebagai berikut: 1 User Policy Terdapat dua pengguna yaitu pengirim dan penerima. Pengirim bertindak juga sebagai penanda. Hak dari pengirim adalah: Membangkitkan pasangan kunci RSA. Mengirimkan kunci publik ke penerima. Mengamankan isi SMS yang dikirimkan. Penerima bertindak juga sebagai pihak yang melakukan verifikasi. Hak dari penerima adalah: Membangkitkan pasangan kunci RSA Menerima kunci publik dari pengirim. Melakukan verifikasi valid tidaknya isi SMS. 2 IT Policy Masing-masing pasangan kunci pada pengirim dan penerima dicatat untuk proses enkripsi dan dekripsi pesan. 3 General Policy
Kebijakan lain yang diterapkan adalah sebagai berikut: Pengirim tidak diijinkan untuk menyebarkan atau mempertukarkan kunci pribadi yang dimilikinya. Jika pengirim dan penerima membangkitkan kunci lagi, kunci yang lama akan dianggap tidak valid dan akan ditulis-ulang dengan kunci yang baru.
Spesifikasi Pembangkitan pasangan kunci, enkripsi pesan, dan dekripsi pesan berdasarkan algoritme RSA yang dilakukan oleh server. Pengiriman SMS yang sudah terenkripsi dilakukan melalui jaringan telekomunikasi yang ada pada ponsel
11 yang digunakan seperti GSM atau CDMA. SMS tersebut kemudian diverifikasi oleh aplikasi penerima. Hasil verifikasi akan menunjukkan apakah SMS tersebut valid atau tidak. Hasil dari verifikasi tersebut dapat dijadikan sebagai cara untuk menjamin otentikasi SMS dan integritas SMS.
Desain Tahapan desain merupakan proses yang dilakukan untuk merancang pembuatan sistem. Secara umum aplikasi yang dirancang terdiri dari 3 komponen utama yaitu: 1 Aktifitas untuk pembangkitan kunci publik dan kunci pribadi pemakai dengan algoritma RSA. 2 Aktifitas untuk mengirim kunci publik dan SMS terenkripsi pemakai kepada alamat target tujuan dengan menggunakan SMS. 3 Aktifitas yang berfungsi menampilkan plaintext dari SMS terenkripsi. 4 Aktifitas untuk membangkitkan kunci publik dan kunci pribadi pemakai, enkripsi pesan, dan dekripsi pesan pada server. Keempat bagian tersebut mengikuti protokol yang ditunjukkan pada Gambar 5. Mulai Pembangkitan pasangan kunci RSA Mengirim kunci publik dan SMS enkripsi Verifikasi kunci pada SMS Selesai
Gambar 5 Alur protokol Proses pembangkitan pasangan kunci mengikuti algoritme RSA yang telah ada, yaitu: 1 Membangkitkan dua bilangan acak prima x dan y dengan jumlah bit yang sama. 2 Hitung nilai n = xy. 3 Hitung nilai (n) = (x – 1)(y – 1). 4 Pilih sembarang bilangan e, 1< e < (n); {x|gcd(x,n)=1} 5 Hitung inversi dari e, yaitu d*e = 1+k((n)). Yang menjadi kunci publik adalah pasangan (e, n) Yang menjadi kunci pribadi adalah (d, n)
12
Mulai Pili bilangan prima x&y n=xxy
Ф(n) = (x-1)(y-1) Pilih integer e gcd(ф(n),e) = 1 1 < e < ф(n) Hitung d d * e = 1+ k (ф(n)) Kunci publik = {e,n} Kunci private = {d,n} Selesai Gambar 6 Proses pembangkitan pasangan kunci. Setelah kunci dibangkitkan pada pengirim dan penerima, lalu dilakukan penyebaran kunci publik via SMS dari pengirim SMS untuk proses pembentukan SMS enkripsi dan untuk proses dekripsi SMS pada penerima SMS. Algoritma enkripsi: 1 Ambil kunci publik penerima pesan, e, dan modulus n. 2 Nyatakan plainteks p menjadi blok-blok p1, p2, ..., sedemikian sehingga tiap blok mempresentasikan nilai di dalam selang [0, n – 1] 3 Setiap blok p1 dideskripsikan menjadi blok ci dengan rumus ci = pie mod n atau lebih mudahnya enkripsi = pesane mod n Mulai Pembangkitan kunci c = pe mod n Selesai
Gambar 7 Proses enkripsi pesan
13 Algoritma dekripsi: 1 Setiap blok chiperteks ci dideskripsi kembali menjadi blok pi dengan rumus pi =cid mod n atau lebih mudahnya pesan=enkripsid mod n 2 Ambil kunci publik (n,e) dan kunci pribadi (n,d) 3 Dekripsi: p=cd mod n Mulai Pembangkitan kunci p = cd mod n Selesai
Gambar 8 Proses dekripsi pesan Desain proses pembentukan SMS rahasia ditunjukkan pada Gambar 9. Tahap-tahap yang dilakukan pada proses pembentukan SMS rahasia adalah sebagai berikut: 1 Masukan adalah SMS yang akan dikirim. 2 Pada SMS plainteks akan dienkripsi dengan parameter kunci publik penerima sebagai C1. 3 C1 kemudian dienkripsi menggunakan parameter kunci pribadi pengirim SMS menjadi C2. 4 Hasil enkripsi tersebut (C2) yang akan dikirim ke penerima.
Mulai
SMS Enkripsi kunci publik penerima C1 Enkripsi Kunci private pengirim C2 Kirim C2 via SMS ke tujuan Selesai Gambar 9 Proses pengiriman SMS rahasia
14 Desain proses verifikasi pesan (dekripsi) ditunjukkan pada Gambar 10. Tahap-tahap verifikasi SMS rahasia adalah sebagai berikut: 1 Masukan pada penerima adalah SMS yang telah terenkripsi hasil dari pengirim (C2). 2 SMS enkripsi, didekripsi menggunakan parameter kunci publik pengirim sebagai P1. 3 P1 kemudian didekripsi dengan kunci pribadi sebagai plainteks. 4 Hasil dekripsi tersebut didapat plainteks yang jika terbaca maka SMS tersebut bernilai valid dan jika tidak dapat dibaca maka SMS tersebut bernilai tidak valid. Mulai
SMS enkripsi
Dekripsi kunci publik pengirim P1 Dekripsi kunci private penerima P2
Plainteks terbaca?
Tidak
SMS tidak valid
Ya SMS valid
Selesai
Gambar 10 Proses verifikasi SMS Untuk alur menyeluruh proses pengiriman pesan ditunjukkan pada Gambar 11.
15 A. PROSES PEMBANGKITAN KUNCI
B. PROSES PENYEBARAN KUNCI SEND PUBLIK KEY A VIA SMS
GET KEY
PONSEL A GENERATE KEY
PONSEL A
PONSEL B
GENERATE KEY SEND PUBLIK B VIA SMS
PONSEL B
Server GET KEY
C. PROSES PENGIRIMAN SMS SERVER MELAKUKAN ENRKIPSI (kunci publik B + kunci pribadi A + SMS ASLI)
SERVER MELAKUKAN DEKRIPSI (kunci publik A + kunci pribadi B + SMS ENKRIPSI)
OPERATOR
SEND SMS ENKRIPSI PRESS SEND BUTTON ON HANDSET
Server
Server
“VALID” GET SMS ASLI
PRESS DEKRIP BUTTON ON HANDSET
PONSEL A
A input nilai kunci Publik B dan Pribadi A beserta SMS ASLI
B input nilai kunci Publik A dan Pribadi B beserta SMS ENKRIPSI
PONSEL B
SEND SMS ENKRIPSI
Gambar 11 Alur SMS rahasia Pada proses A yaitu pembangkitan kunci, ponsel A dan B meminta server untuk membangkitkan kunci dengan method POST sehingga mendapatkan kunci publik dan kunci pribadi. Pada proses B yaitu proses penyebaran kunci, ponsel A dan B hanya melakukan pertukaran kunci publik melalui SMS biasa. Kunci publik diperlukan untuk proses enkripsi dan dekripsi. Pada proses C yaitu pengiriman SMS rahasia, ponsel A bertindak sebagai pengirim memasukkan nomor ponsel B, kunci publik B, dan kunci pribadi A beserta SMS asli. Lalu si A memilih menu send pada aplikasi SMS rahasia untuk selanjutnya server melakukan proses enkripsi dan SMS rahasia tersebut dikirimkan melalui jalur SMS biasa hingga si B mendapatkan pemberitahuan SMS masuk. SMS masuk akan berada pada inbox aplikasi SMS rahasia. Untuk mendapatkan validasi dan isi pesan asli dari SMS rahasia tersebut si B harus memasukkan kunci publik A dan kunci pribadi B. Selanjutnya proses dekripsi SMS rahasia dilakukan oleh server, jika nilai parameter yang dibutuhkan sesuai maka si B akan mendapatkan SMS asli. Namun jika nilai parameter yang dimasukkan salah, maka si B tidak dapat membaca pesan tersebut.
Implementasi Implementasi dilakukan sesuai dengan desain yang telah dibuat. Perangkat yang digunakan terdiri atas perangkat keras, perangkat lunak, dan perangkat uji. Perangkat keras yang digunakan adalah sebagai berikut: 1 Processor Intel Celeron M 430 1.70 GHz. 2 RAM 2 GB. 3 Harddisk kapasitas 250 GB.
16 1 2 3 4
Perangkat lunak yang digunakan adalah sebagai berikut: Sistem operasi Microsoft Windows XP Service Pack 3 32-bit. JDK 7 Update 25 32 bit. Eclipse Juno v.21. XAMPP v.1.8.
Perangkat uji untuk mencoba aplikasi ini adalah telepon seluler. Telepon seluler yang digunakan adalah Smartfren Andromax U. Ponsel ini menggunakan sistem operasi Android 4.1.2 dengan processor quad core 1.2 GHz, RAM 1 GB. Perangkat uji lain adalah LG L7 II Dual dengan processor dual core berkecepatan 1.2 GH, RAM 768 MB. Ponsel ini menggunakan sistem operasi Android 4.1.2. Untuk membangkitkan kunci RSA, mengenkripsi SMS, dan mendekripsi SMS dilakukan menggunakan PHP.
Pengujian Pengujian terdiri dari 2 sisi penilaian yaitu: Pengujian pembacaan pesan, bagaimana pesan dapat dibaca sesuai dengan pesan asli dari pengirim tanpa ada perubahan pesan asli. Pengujian kinerja aplikasi, dengan menggunakan waktu untuk mengukur kinerja masing-masing telepon seluler. Pengujian awal dilakukan dengan cara pembangkitan pasangan kunci RSA, lama pengiriman SMS bergantung pada kemampuan jaringan dan tidak ada perbedaan dengan pengiriman SMS biasa. 1 Pengujian fungsionalitas yang dilakukan terdiri atas 6 pengujian. Pengujian ditunjukkan pada Tabel 1. Tabel 1 Pengujian fungsionalitas Kasus
Parameter kunci Andromax U
Parameter kunci LG L7 II Dual
1 2 3 4 5 6
Valid Valid (LG L7 II Dual) Valid (Milik sendiri) Valid Invalid Invalid
Valid (Pasangan dari Andromax U) Valid Valid (Milik sendiri) Invalid Valid Invalid
Hasil verifikasi True True False False False False
Pengujian pertama dan kedua merupakan pengujian yang memberikan verifikasi benar (true). Pada pengujian ini, penerima memasukkan parameter kunci publik yang sesuai dengan parameter kunci pribadi yang membentuk pesan. Pengujian ketiga dilakukan dengan cara kedua ponsel mengenkripsi dan mendekripsi pesan dengan kuncinya masing-masing. Pengujian keempat, kelima, dan keenam melibatkan parameter kunci invalid. Maksud dari parameter kunci invalid adalah ada satu atau lebih parameter yang bukan pasangan parameter yang lainnya. Pasangan parameter yang invalid menyebabkan pesan tidak dapat dibaca. 2 Perhitungan waktu enkripsi pesan dilakukan saat tombol “send” pada aplikasi ditekan hingga diterima oleh pengirim. Cara ini tentu menghasilkan bias yang diakibatkan waktu pengiriman. Bias pada pengujian ini menjadi semakin besar karena ditambah penggunaan stopwatch. Di samping itu, penggunaan produk
17 yang berbeda dari operator dapat berpengaruh pada kapasitas jaringan. Hasil pengujian kinerja penerimaan SMS beserta verifikasi SMS rahasia ditunjukkan pada Tabel 2. Tabel 2 Kinerja enkripsi pesan Pesan Asli Hello Skripsi Percobaan
3
Jumlah Karakter Pesan Enkripsi 150 kar 155 kar 159 kar
Pada Andromax U 1.45 detik 2.37 detik 2.92 detik
Pada LG L7 II Dual 1.99 detik 2.86 detik 3.30 detik
Perhitungan waktu dekripsi pesan dilakukan setelah pesan diterima oleh pengirim. Cara ini menghasilkan bias pada pengujian. Bias ini menjadi semakin besar karena ditambah bias penggunaan stopwatch. Hasil pengujian kinerja penerimaan SMS beserta verifikasi SMS rahasia ditunjukkan pada Tabel 3. Tabel 3 Kinerja dekripsi pesan Jumlah Karakter Pesan Enkripsi 150 kar 155 kar 159 kar
Pesan Asli Hello Skripsi Percobaan
Pada Andromax U 1.10 detik 1.45 detik 1.68 detik
Pada LG L7 II Dual 1.46 detik 1.60 detik 1.83 detik
Kemungkinan perbedaan waktu yang didapat disebabkan oleh karena perbedaan jaringan operator (GSM dan CDMA) saat pengiriman. Kemungkinan lain penggunaan RAM atau processor yang berbeda pada tiap ponsel.
SIMPULAN DAN SARAN Simpulan Berdasarkan hasil pengujian yang dilakukan aplikasi yang dirancang hanya dapat mengirimkan pesan asli ≤ 9. Dari hasil tersebut diharapkan aplikasi ini dapat meningkatkan keamanan SMS dari aspek otentikasi, integritas dan nonrepudiation. Karena plaintext SMS sebelum dikirim akan dienkripsi dengan kunci publik penerima sebagai ciphertext1, dan ciphertext1 akan dienkripsi sekali lagi dengan kunci pribadi pengirim menjadi ciphertext2. Sesuai dengan kemampuan dari Algoritme RSA, jika seorang cracker melakukan penyadapan dan ingin membaca ataupun melakukan perubahan isi pesan, maka dia perlu memecahkan kunci pribadi penerima SMS rahasia tersebut. Jika seorang cracker ingin mengirim SMS spoofing, maka dia perlu memecahkan kunci pribadi pengirim SMS rahasia tersebut.
18 Saran Saran yang dapat digunakan untuk penelitian selanjutnya antara lain: 1 Mengembangkan aplikasi agar dapat melakukan verifikasi dari beberapa pengirim. 2 Mengembangkan aplikasi agar dapat memisahkan SMS biasa dengan SMS rahasia. 3 Menambah jumlah karakter pesan asli sesuai dengan standar jumlah karakter SMS biasa.
DAFTAR PUSTAKA Ayuningtyas N. 2008. Implementasi kode Huffman dalam aplikasi kompresi teks pada layanan SMS [skripsi]. Bandung (ID): Institut Teknologi Bandung. Bishop M. 2002. Computer Security: Art and Science. Boston (US): Addison Wesley. Bodic GL. 2003. Mobile Messaging Technologies and Services: SMS, EMS and MMS. Ed ke-2. West Sussex (UK): J. Wiley. Ireland D. 2011.Using the CRT with RSA [internet]. [diunduh 2013 Agu 28]. Tersedia pada: http://www.di-mgt.com.au/crt_rsa.html. Jones N. 2002. Don’t use SMS for confidential communication [internet]. [diunduh 2013 Agu 10]. Tersedia pada: http://www.gartner.com/displaydocument?doc_cd=111720. Konheim AG. 2007. Computer Security and Cryptography. New Jersey (US): J Wiley. Lenstra AK and Verheul ER, 2011. Selecting cryptographic key sizes. Journal of Cryptology. 14(4):255. Safaat N. 2011. Android (Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android). Bandung (ID): Informatika. Schneier B. 1996. Applied Cryptography. Protocols, Algorithms, and Source Code in C. Ed ke-2. New Jersey (US): J Wiley.
19 Lampiran 1 Source code untuk pembangkitan pasangan kunci (gen_key.php) $rand1=rand(1000,2000); $rand2=rand(1000,2000); //cari bil prima selanjutnya $rand1 &rand2 $p = gmp_nextprime($rand1); $q = gmp_nextprime($rand2); //menghitung&menampilkan n=p*q $n=gmp_mul($p,$q); //menghitung&menampilkantotient/phi=(p-1)(q-1) $totient=gmp_mul(gmp_sub($p,1),gmp_sub($q,1)); //cari e, dimana e merupakan coprime dari totient //e dikatakan coprime dari totient //jika gcd/fpb dari e dan totient/phi = 1 for($e=2;$e<100;$e++){ $gcd = gmp_gcd($e, $totient); if(gmp_strval($gcd)=='1') break; } //menghitung d $i=1; do{ $res = gmp_div_qr(gmp_add(gmp_mul($totient,$i),1), $e); $i++; if($i==10000) break; }while(gmp_strval($res[1])!='0'); $d=$res[0];
Lampiran 2 Source code untuk enkripsi pesan (encrypt.php) //encrypt with n & e //pesan dikodekan menjadi kode ascii, //kemudian di enkripsi per karakter $isi_pesan_asli = $_GET['isi_pesan_asli']; for($i=0;$i<strlen($isi_pesan_asli);++$i) { //rumus enkripsi <enkripsi>=
^<e>mod $chiper.=gmp_strval(gmp_mod(gmp_pow(ord($isi_pesan_asli[$i]),$e),$n)); //antar tiap karakter dipisahkan dengan "." if($i!=strlen($isi_pesan_asli)-1) { $chiper.="."; } }
Lampiran 3 Source code untuk dekripsi pesan (decrypt.php) //decrypt with n & d $n = $_GET['n']; $d = $_GET['d']; //pesan enkripsi dipecah menjadi array dengan //batasan "." $pesan_terenkrip = explode(".",$_GET['pesan_terenkrip']); foreach($pesan_terenkrip as $nilai) { //rumus enkripsi =<enkripsi>^mod $pesan_asli.=chr(gmp_strval(gmp_mod(gmp_pow($nilai,$d),$n))); } echo $pesan_asli;
20 RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 9 Mei 1988 dari Bapak Lodewyk Panjaitan dan Ibu Nanamna Br Sembiring. Penulis merupakan anak kedua dari empat bersaudara. Tahun 2003 penulis lulus dari SMP Negeri 1 Sidikalang lalu melanjutkan ke SMA Negeri 1 Sidikalang. Pada tahun 2006 penulis lulus dari SMS kemudian melanjutkan studi diploma di Institut Pertanian Bogor, program studi Teknik Komputer melalui jalur penelusuran minat dan kemampuan (PMDK) IPB. Pada tahun 2009 penulis lulus dari program diploma dan pada tahun 2009 melanjutkan pendidikan di program Alih Jenis Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam untuk mendapatkan gelar sarjana.