DAFTAR ISI

advertisement
17
BAB 2
DASAR TEORI
2.1 Pengertian Kriptografi
Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita.
Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknikteknik matematika yang
berhubungan
dengan aspek
keamanan
informasi
seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Tidak
semua aspek keamanan informasi ditangani oleh kriptografi.
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek
keamanan informasi yaitu :
1.
Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi
dari
siapapun
kecuali
yang memiliki
otoritas
atau kunci
rahasia untuk
membuka/mengupas informasi yang telah disandi.
2.
Integritas data, adalah berhubungan dengan penjagaan dari perubahan data
secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki
kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak
berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam
data yang sebenarnya.
3.
Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara
kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling
berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan
18
melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan
lain-lain.
4.
Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya
penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang
mengirimkan/membuat.
2.1.1 Kriptografi Modern
Kriptografi modern merupakan suatu perbaikan yang mengacu pada kriptografi klasik.
Pada kriptogarfi modern terdapat berbagai macam algoritma yang dimaksudkan untuk
mengamankan informasi yang dikirim melalui jaringan komputer. Algoritma
kriptografi modern terdiri dari tiga bagian:
1. Algoritma Simetris
Algoritma simetris adalah algoritma yang menggunakan kunci yang sama untuk
enkripsi dan dekripsinya. Algoritma kriprografi simetris sering disebut algoritma
kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan
pengirim dan penerima menyetujui suatu kunci tertentu. Kelebihan dari algoritma
kriprografi simetris adalah waktu proses untuk enkripsi dan dekripsi relatif cepat. Hal
ini disebabkan efesiensi yang terjadi pada pembangkit kunci. Karena prosesnya
relative cepat maka algoritma ini tepat untuk digunakan pada sistem komunikasi
digital secara real timeseperti GSM.
Contoh fazil ingin mengirim pesan x dengan aman menggunakan saluran umum
kepada Bob. fazil menggunakan kunci xƠ yang sebelumnya telah disepakati antara
Alice dan Bob. Untuk mengirim pesan e xƠ (x) kepada Bob, dia akan deskripsi teks
19
kode yang diterima dengan kunci yang sama dengan yang digunakan untuk
memperoleh akses ke pesan yang diterima. Begitu juga sebaliknya.
Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah in
2. Algoritma Asimetris
Algoritma Asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan
untuk proses enkripsi dan satu lagi lagi deskripsi. Semua orang yang mendapatkan
kunci publik dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan
hanya satu orang saja yang memiliki rahasia itu, yang dalam hal ini kunci rahasia,
untuk melakukan pembongkaran terhadap kode yang dikirim untuknya. Contoh
algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan
singkatan dari nama penemunya, yakni Rivest, Shamir dan Adleman).
3. Algoritma Hibrida
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci, yaitu
kunci rahasia (simetri) – yang disebut juga session key (kunci sesi) – untuk
enkripsidata dan pasangan kunci rahasia – kunci publik untuk pemberian tanda tangan
digital serta melindungi kunci simetri.
2.2
Bahasa Pemrograman Java
Java adalah bahasa
pemrograman yang
dapat
dijalankan
di
berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James
Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian
dari Oracle dan dirilis tahun1995. Bahasa ini banyak mengadopsi sintaksis yang
terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana
serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java
20
umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada
berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang
bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk
memanfaatkan
dependensi
implementasi
seminimal
mungkin.
Karena
fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa
platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis
sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang
paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan
berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
2.2.1 Perkembangan Bahasa Pemrograman JAVA
2.2.1.1 Java versi 1
Pada tahun 1996 java versi awal diluncurkan yang sudah merupakan versi release
sehingga dinamakan Java Versi 1.0. Java versi ini sudah menyertakan banyak paket
standar awal yang terus dikembangkan pada versi selanjutnya, diantaranya adalah:
1. Java.lang, yang diperuntukkan kelas elemen elemen dasar.
2. Java.io, yang diperuntukkan kelas input dan output, termasuk penggunaan
berkas.
3. Java.util diperuntukkan kelas pelengkap seperti kelas terstruktur data dan kelas
kelas penggalan.
4. Java.net ditujukan untuk kelas TCP/IP, yang memungkinkan berkomunikasi
dengan computer lain menggunakan jaringan TCP/IP.
5. Java.awt, untuk dijalankan pada kelas dasar untuk aplikasi antar muka dengan
pengguna (GUI).
21
6. Java.applet, kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah
web
2.2.1.2 Tentang Java versi 1
1. Pada produksi pertama Java, JDK (Java Development Kit ) yang
digunakan adalah JDK versi 1.0.2
2. JDK merupakan sekumpulan program dan Library java yang digunakan
untuk menjalankan dan mengembangkan program Java.
3. Pada awal lirisnya, JDK 1.0.2 membuat gebrakan dalam dunia web yaitu
Java applet.
4. JDK 1.0.2 juga mengenalkan Java AWT (Abstract Windowing Toolkit)
yang digunakan untuk membuat aplikasi berbasis tampilan window/GUI
(Graphical User Interface).
2.2.2 JDK (Java Development Kit)
Merupakan produk dari Sun Microsystems yang ditujukan untuk pengembang Java.
Sejak diperkenalkannya Java, telah jauh SDK Java yang paling banyak digunakan.
Pada tanggal 17 November 2006, Sun mengumumkan bahwa akan dirilis di bawah
GNU General Public License (GPL), sehingga membuat perangkat lunak bebas. Hal
ini terjadi sebagian besar pada tanggal 8 Mei 2007 Sun kontribusi kode sumber untuk
JDK Open.
22
Sun Microsystem telah meluncurkan superset dari JRE dan diberi nama Java 2
SDK, yang sering disebut JDK.Dalam JDK ini terdapat beberapa komponen
pengembangan Java, seperti:Java Compiler, Javadoc, Jar dan debugger. Salah satu
kelebihan yang ditawarkan oleh JRE adalah kesalahan-kesalahan (exceptions) yang
terjadi tidak akan membuat sistem menjadi crash atau hang. Kelebihan lainnya adalah
terdapatnya komponen yang mampu merekam secara tepat waktu segala kesalahan
yang terjadi ke dalam memori. Komponen-komponen ini diberi nama Automated
Exception Handling. Selain komponen diatas terdapat beberapa komponen lainnya
antara lain :
1. Library Java mengkompilasi kode byte dari source code yang dibentuk
oleh Implementator
JRE untuk
mendukung
pengembangan
aplikasi
dalam Java, beberapa contoh Library dalam Java :
1. The core library, yang berisikan:
a. Library koleksi yang mengimplementasikan struktur data seperti List,
Dictionaries, trees dan sets.
b. Library proses XML (Parsing, Transforming, Validaying).
c. Sekuritas
d. Library Internasionalisasi dan lokalisasi.
2. Library Terintegrasi
3. Library User Interface yang mencakup
a. Abstract Windowing Toolkit (AWT), yang menyediakan komponen
GUI
untuk menggambarkan komponen tersebut dan membuat
komponen tersebut mampu menangani event handling.
b. Library Swing.
c. API untuk capture audio, pemrosesan dan playback.
23
2. Implementasi Ketergantungan Platform Java Virtual Machine (JVM).
3. Plug-ins yang menjalankan applet untuk dijalankan di web browser.
4. Java Web Start, yang menjalankan aplikasi Java untuk didistribusikan secara
efisien ke pengguna internet.
5. Lisensi dan dokumentasi.
2.2.2.1 Pada Java versi 2, java dibagi menjadi 3 kategori:
1. Java 2 Standard Edition (J2SE), yang digunakan untuk menegmbangkan
aplikasi-aplikasi berbasis desktop dan applet (aplikasi Java yang dapat
dijalankan di dalam browser web).
2. Java 2 Enterprise Edition (J2EE), merupakan superset dari J2SE yang
memperbolehkan kita untuk mengembangkan aplikasi desktop berskala besar
(enterprise), yaitu dengan melakukan pembuatan aplikasi-aplikasi di sisi server
dengan menggunakan EJBs (Enterprise JavaBeans), aplikasi web dengan
menggunakan Servlet dan JSP (Java Server Pages) dan teknologi Iainnya
seperti CORBA (Common Object Request Broker Architecture) dan XML
(eXtensibIe Markup Language).
3. Java 2 Micro Edition (J2ME), merupakan subset dari J2SE yang digunakan
untuk menangani pemrograman di dalam perangkat kecil, yang tidak
memungkinkan untuk mendukung implementasi J2SE secara penuh.
24
2.3
ALGORITMA RC6
Algoritma RC6 merupakan algoritma sederhana, fungsi yang digunakan merupakan
fungsi yang sederhana dan hanya mengandalkan fungsi iterated cipher untuk
keamanan. Tampilan hasil enkripsi dan data hasil enkripsi yang diterima harus
diperhatikan, hal ini dikarenakan pada data hasil enkripsi, setiap karakternya akan
memiliki panjang 8 bit, sedangkan sebagian telepon hanya dapat menampilkan
karakter dengan panjang 7 bit. Dengan demikian dalam penerapan algoritma RC6
pada SMS karakter karakter yang akan dienkripsi diubah kedalam nilai ASCII, dimana
nilai karakter dalam table ASCII ditambah table karakter special adalah 0 sampai
dengan 255, artinya satu karakter ASCII akan diwakili oleh 8 bit, dimana 28=256.
Sehingga dalam 1 blok plainteks (32 bit) akan menyimpan 4 karakter dan setiap kali
iterasi, makan akan diambil 16 karakter dari plainteks.
Apabila panjang plainteks atau panjang kunci kurang dari 16 karakter, maka akan
dilakukan padding, yaitu dengan menampilkan bit 0 (nol) diakhir teks, sehingga
panjang teks mencukupi 16 karakter. Layar pada sebagian besar telepon selular hanya
dapat menampilkan karakter dengan panjang 7 bit dan pesan yang telah terenkripsi
akan berbentuk binary, sehingga layar tidak akan menampilkan dengan semestinya.
Oleh karena itu pada aplikasi yang akan dibangun untuk menampilkan pesan yang
telah terenkripsi , ditambahkan informasi karakter yang terdapat pesan tersebut dengan
format heksadesimal agar dapat ditampilkan dilayar dan informasinya lebih terbaca.
Algoritma RC6 yang akan digunakan dalam aplikasi enkripsi SMS yang akan
dibangun dengan w sebesar 32 bit, r sebesar 20 kali putaran dan panjang kunci
25
beragam lebih dari 1 karakter (8 bit). Langkah-langkah algoritma RC6 dalam
pelaksanaan tugas akhir ini akan dikelompokkan ke dalam beberapa bagian, yaitu:
1. Pembangkit sub kunci
Kunci dari pengguna ini akan dimasukkan oleh pengguna pada saat akan
melakukan proses enkripsi dan dekripsi. Kunci ini memiliki tipe data string
dan memiliki panjang 16 byte (16 karakter).
2. Baca masukkan untuk proses enkripsi
Yang dilakukan pada tahapan ini adalah membaca teks yang menjadi masukan
pada proses enkripsi, yaitu field dari aplikasi enkripsi SMS. Pada proses
enkripsi pesan, field-nya adalah isi pesan
3. Enkripsi meliputi whitening awal, iterasi dan whitening akhir.
4. Baca masukkan untuk proses dekripsi.
Yang dilakukan pada tahapan ini adalah membaca teks yang menjadi masukan
pada proses dekripsi, yaitu record dari hasil pesan yang telah dienkripsi pada
pengirim dan menjadi field pesan pada penerima.
5. Dekripsi merupakan kebalikan dari proses enkripsi.
26
2.4 Layanan SMS dalam RC6
Service (SMS), call, dan multimedia message service (MMS) masih dapat digunakan
pada perangkat android tersebut. Dari sekian banyak fitur yang dimiliki oleh android,
salah satunya yang masih banyak digunakan yaitu SMS, bahwa pengguna dapat
mengirim dan menerima pesan singkat kepada pengguna ponsel lainnya.
Layanan SMS yang menggunakan aplikasi SMS bawaan ponsel masih banyak
digunakan oleh setiap orang, dan bukan merupakan jalur yang aman dalam pertukaran
informasi. Pesan yang dikirim menggunakan aplikasi SMS bawaan ponsel masih
berupa teks terbuka yang belum terproteksi selain itu pengiriman SMS yang dilakukan
tidak sampai ke penerima secara langsung, akan tetapi pengiriman SMS harus
melewati Short Message Service Center (SMSC) yang berfungsi mencatat komunikasi
yang terjadi antara pengirim dan penerima. Dengan tersimpannya SMS pada SMSC,
maka seorang operator dapat memperoleh informasi atau membaca SMS di dalam
SMSC tersebut, hal ini dapat dibuktikan dari beberapa kasus yang ditangani pihak
kepolisian, kejaksaan atau KPK, dimana pihak pihak tersebut meminta transkrip SMS
ke operator GSM untuk dijadikan bahan penyelidikan di persidangan.
Dengan
demikian
dibutuhkan
suatu
metode
dan
aplikasi
yang
dapat
mempertimbangkan solusi encrypted end to end dengan melakukan enkripsi terhadap
pesan SMS. Enkripsi adalah proses mengubah suatu pesan asli yang disebut plaintext
menjadi sebuah sandi atau kode yang tidak terbaca yang disebut ciphertext dan tidak
dapat dimengerti, untuk mengembalikan pesan ke bentuk asli seperti semula
27
diperlukan suatu proses yang disebut dekripsi. Enkripsi dimaksudkan untuk
melindungi dan menyamarkan informasi agar terlihat oleh pihak atau orang yang
bukan seharusnya.
Salah satu metode enkripsi yang umum digunakan yaitu menggunakan algoritma
enkripsi dan kunci yang dapat diubah-ubah sesuai kesepakatan untuk meningkatkan
keamanan. Teknik ini disebut sebagai algoritma kunci simetris (symetric key) yaitu
suatu enkripsi dengan meggunakan kunci yang sama untuk melakukan proses enkripsi
dan dekripsi. Contoh algoritma kunci simetris yaitu Rivest Code 6 (RC6) yang
dirancang oleh Ronald L Rivest, M.J.B. Robshow, R. Sidney dan Y.L Yin, algoritma
ini merupakan pengembangan dari algoritma sebelumnya yaitu RC5.
Perangkat lunak yang akan dibangun merupakan perangkat lunak yang diterapkan
pada telepon selular yang bersistem operasi android dan memiliki fungsi untuk
melakukan enkripsi dan dekripsi. Perangkat lunak dapat melakukan pengiriman dan
menerima pesan. Pengguna akan berinteraksi dengan perangkat lunak melalui user
interface yang di sediakan oleh perangkat lunak, pengguna memasukkan data dengan
menggunakan keypad yang dimiliki oleh telepon selular. Pesan yang telah dibuat
dikirimkan ke telepon selualar lain melalui jaringan SMS.
2.5 Eclipse
Menurut Nasruddin Safaat h (Pemrograman aplikasi mobeli smartphone dan tablet PC
berbasis android 2012:16) Eclipse adalah sebuah IDE (Integrated Development
28
Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua
platform (platform-independent). Berikut ini adalah sifat dari Eclipse:
1. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows,
Linux, Solaris, AIX, HP-UX dan Mac OS X.
2. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman
Java,akan tetapi Eclipse mendukung pengembangan aplikasi berbasis
bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP,
dan lain sebagainya.
3. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun
bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat
lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan
lain sebagainya.
Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan
open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat
lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah
kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang
dinamakan plug-in. Eclipse dibuat dari kerja sama antara perusahaan-perusahaan
anggota 'Eclipse Foundation' (beserta individu-individu lain). Banyak nama besar
yang ikut dalam 'Eclipse.
Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing
langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan
bervariasi dibandingkan IDE lainnya.
29
1. Intellij IDEA(commercial, free30-day trial)
2. Oracle JDeveloper (free)
3. Xinox JCreator (ada versi berbayar maupun free)
Eclipse awalnya dikembangkan oleh IBM untuk menggantikan perangkat
lunak IBM Visual Age for Java 4.0. Produk ini diluncurkan oleh IBM pada tanggal 5
November
2001,
yang
menginvestasikan
sebanyak
US$
40
juta
untuk
pengembangannya. Semenjak itu konsursium Eclipse Foundation mengambil alih
untuk pengembangan Eclipse lebih lanjut dan pengaturan organisasinya. Sejak versi
3.0, Eclipse pada dasarnya merupakan sebuah kernel, yang mengangkat plug-in. Apa
yang dapat digunakan di dalam Eclipse sebenarnya adalah fungsi dari plug-in yang
sudah diinstal. Ini merupakan basis dari Eclipse yang dinamakan Rich Client Platform
(RCP). Berikut ini adalah komponen yang membentuk RCP:
1. Core platform
2. OSGi
3. SWT (Standard Widget Toolkit)
4. JFace
5. Eclipse Workbench
Secara standar Eclipse selalu dilengkapi dengan JDT (Java Development
Tools), plug-in yang membuat Eclipse kompatibel untuk mengembangkan program
Java, dan PDE (Plug-in Development Environment) untuk mengembangkan plug-in
baru. Eclipse beserta plug-in-nya diimplementasikan dalam bahasa pemrograman
Java. Konsep Eclipse adalah IDE yang terbuka (open), mudah diperluas (extensible)
30
untuk apa saja, dan tidak untuk sesuatu yang spesifik. Jadi, Eclipse tidak saja untuk
mengembangkan program Java, akan tetapi dapat digunakan untuk berbagai macam
keperluan, cukup dengan menginstal plug-in yang dibutuhkan. Apabila ingin
mengembangkan program C/C++ terdapat plug-in CDT (C/C++ Development Tools).
Selain itu, pengembangan secara visual bukan hal yang tidak mungkin oleh Eclipse,
plug-in UML2 tersedia untuk membuat Diagram UML. Dengan menggunakan PDE
setiap orang bisa membuat plug-in sesuai dengan keinginannya. Salah satu situs yang
menawarkan plug-in secara gratis seperti Eclipse downloads by project.
Sejak tahun 2006, Eclipse Foundation mengkoordinasikan peluncuran Eclipse
secara rutin dan simultan yang dikenal dengan nama Simultaneous Release. Setiap
versi peluncuran terdiri dari Eclipse Platform dan juga sejumlah proyek yang terlibat
dalam proyek Eclipse. Tujuan dari sistem ini adalah untuk menyediakan distribusi
Eclipse dengan fitur-fitur dan versi yang terstandarisasi. Hal ini juga dimaksudkan
untuk mempermudah Deployment dan maintenance untuk sistem enterprise, serta
untuk kenyamanan.Peluncuran simultan dijadwalkan pada bulan Juni setiap tahunnya.
31
Download