BAB II LANDASAN TEORI

advertisement
BAB II
LANDASAN TEORI
2.1
Definisi Kriptografi
Kata kriptografi berasal dari bahasa Yunani, “kryptós” yang berarti
tersembunyi dan “gráphein” yang berarti tulisan. Sehingga kata kriptografi dapat
diartikan berupa frase “tulisan tersembunyi”. Menurut Request for Comments
(RFC), kriptografi merupakan ilmu matematika yang berhubungan dengan
transformasi data untuk membuat artinya tidak dapat dipahami (untuk
menyembunyikan maknanya), mencegahnya dari perubahan tanpa izin, atau
mencegahnya dari penggunaan yang tidak sah. Jika transformasinya dapat
dikembalikan, kriptografi juga bisa diartikan sebagai proses mengubah kembali
data yang terenkripsi menjadi bentuk yang dapat dipahami. Artinya, kriptografi
dapat diartikan sebagai proses untuk melindungi data dalam arti yang luas
(Oppliger, 2005).
Secara umum, kriptografi merupakan teknik pengamanan informasi yang
dilakukan dengan cara mengolah informasi awal (plaintext) dengan suatu kunci
tertentu menggunakan suatu metode enkripsi tertentu sehingga menghasilkan
suatu informasi baru (ciphertext) yang tidak dapat dibaca secara langsung.
Ciphertext tersebut dapat dikembalikan menjadi informasi awal (plaintext)
melalui proses dekripsi. Urutan proses kriptografi secara umum dapat dilihat pada
Gambar 2.1.
Gambar 2.1 Proses Kriptografi Secara Umum
7
http://digilib.mercubuana.ac.id/
8
2.2
Sejarah Kriptografi
Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan
rahasia ini dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa
Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari
mereka yang tidak diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani
hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi
hieratic, yaitu stylized script yang lebih mudah untuk digunakan. Sekitar 400 SM,
kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus
atau perkamen dibungkus dengan batang kayu. Sistem ini disebut Scytale.
Gambar 2.2 Scytale
Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi
untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf
alfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena
hanya
satu
alfabet
yang
digunakan,
cipher
ini
merupakan
substitusi
monoalfabetik. Cipher semacam ini mencakup penggeseran alfabet dengan 3
huruf dan mensubstitusikan huruf tersebut. Substitusi ini kadang dikenal dengan
C3 (untuk Caesar menggeser 3 tempat). Secara umum sistem cipher Caesar dapat
ditulis sebagai berikut :
Zi = Cn(Pi)
Dimana Zi adalah karakter-karekter ciphertext, Cn adalah transformasi
substitusi alfabetik, n adalah jumlah huruf yang digeser, dan Pi adalah karakterkarakter plaintext. Disk mempunyai peranan penting dalam kriptografi sekitar 500
tahun yang lalu. Di Italia sekitar tahun 1460, Leon Battista Alberti
http://digilib.mercubuana.ac.id/
9
mengembangkan disk cipher untuk enkripsi. Sistemnya terdiri dari dua disk
konsentris. Setiap disk memiliki alfabet di sekelilingnya, dan dengan memutar
satu disk berhubungan dengan yang lainnya, huruf pada satu alfabet dapat
ditransformasi ke huruf pada alfabet yang lain.
Bangsa Arab menemukan cryptanalysis karena kemahirannya dalam
bidang matematika, statistik, dan lingiustik. Karena setiap orang muslim harus
menambah pengetahuannya, mereka mempelajari peradaban terdahulu dan
mendekodekan tulisan-tulisannya ke huruf-huruf Arab. Pada tahun 815, Caliph alMamun mendirikan House of Wisdom di Baghdad yang merupakan titik pusat
dari usaha-usaha translasi. Pada abad ke-9, filsuf Arab al-Kindi menulis risalat
(ditemukan kembali tahun 1987) yang diberi judul “A Manuscript on Deciphering
Cryptographic Messages”. Pada 1790, Thomas Jefferson mengembangkan alat
enkripsi dengan menggunakan tumpukan yang terdiri dari 26 disk yang dapat
diputar secara individual. Pesan dirakit dengan memutar setiap disk ke huruf yang
tepat dibawah batang berjajar yang menjalankan panjang tumpukan disk.
Kemudian, batang berjajar diputar dengan sudut tertentu, A, dan huruf-huruf
dibawah batang adalah pesan yang terenkripsi. Penerima akan menjajarkan
karakter-karakter cipher dibawah batang berjajar, memutar batang kembali dengan
sudut A dan membaca pesan plaintext.
Sistem disk digunakan secara luas selama perang sipil US. Federal Signal
Officer mendapatkan hak paten pada sistem disk mirip dengan yang ditemukan
oleh Leon Battista Alberti di Italia, dan dia menggunakannya untuk mengkode
dan mendekodekan sinyal-sinyal bendera diantara unit-unit.
Sistem Unix
menggunakan cipher substitusi yang disebut ROT 13 yang menggeser alfabet
sebanyak 13 tempat. Penggeseran 13 tempat yang lain membawa alfabet kembali
ke posisi semula, dengan demikian mendekodekan pesan. Mesin kriptografi
mekanik yang disebut Hagelin Machine dibuat pada tahun 1920 oleh Boris
Hagelin di Scockholm, Swedia. Di US, mesin Hagelin dikenal sebagai M-209.
Pada tahun 20-an, Herbert O. Yardley bertugas pada organisasi rahasia US MI-8
yang dikenal sebagai “Black Chamber”. MI-8 menjebol kode-kode sejumlah
negara. Selama konferensi Angkatan Laut Washington tahun 1921-1922, US
membatasi negosiasi dengan Jepang karena MI-8 telah memberikan rencana
http://digilib.mercubuana.ac.id/
10
negosiasi Jepang yang telap disadap kepada sekretaris negara US. Departemen
negara menutup MI-8 pada tahun 1929 sehingga Yardley merasa kecewa. Sebagai
wujud kekecewaanya, Yardley menerbitkan buku The American Black Chamber,
yang menggambarkan kepada dunia rahasia dari MI-8. Sebagai konsekuensinya,
pihak Jepang menginstal kode-kode baru. Karena kepeloporannya dalam bidang
ini, Yardley dikenal sebagai “Bapak Kriptografi Amerika”.
Japanese Purple Machine
Mengikuti peninggalan Yardley, William F.Friedman melanjutkan usaha
cryptanalysis untuk tentara US. Tim Friedman berhasil menjebol cipher
diplomatik Jepang yang baru. Rekan Yardley di Angkatan Laut US adalah
Laurence Stafford. Stafford mengepalai tim yang memecahkan kode angkatan laut
Purple Machine Jepang selama PD II. Kelompok pemecah kode ini bekerja di
ruang bawah tanah yang gelap pada pusat distrik Naval di Pearl Harbour.
Komandan Joseph J.Rochefort memimpin kelompok ini pada musim semi 1942
saat cryptanalysisnya menyadap dan mendekodekan pesan terkode Jepang. Pesan
ini mengatakan akan ada serangan Jepang pada sebuah lokasi yang dikenal dengan
AF. Rochefort yakin bahwa AF adalah pulau Midway.
Gambar 2.3 Japanese Purple Machine
http://digilib.mercubuana.ac.id/
11
Midway adalah basis US kunci yang memproyeksikan kekuatan US di
pasifik tengah. Rochefort tidak dapat meyakinkan atasannya bahwa AF adalah
pulau Midway. Sebagai tipu daya, Rochefort meminta personel Midway untuk
mengirim pesan bahwa Midway memiliki masalah air. Pesannya dikirim dengan
kode yang jelas dan lemah yang diyakini akan disadap dan dipecahkan oleh
Jepang. Kemudian pada 22 Mei, agen rahasia Angkatan Laut Jepang mengirim
pesan yang dibaca oleh US bahwa AF mempunyai masalah air. Sebagai hasil dari
usaha jenius dalam memecahkan kode ini, laksamana Chester W.Nimitz
mengotorisasi strategi untuk mengirimkan armada US untuk mengejutkan armada
Jepang di Midway. Usaha yang hebat ini berdampak pada gema kemenangan US
yang merupakan titik balik di perang Pasifik.
The German Enigma Machine
Militer Jerman menggunakan mesin cipher substitusi polialfabetik disebut
Enigma sebagai sistem pengkodean utama selama PD II. Enigma menggunakan
rotor mekanis untuk pengkodean dan pendekodean. Seorang Belanda, Hugo Koch
mengembangkan mesin ini pada 1919, dan diproduksi untuk pasar komersial pada
1923 oleh Arthur Scherbius. Scherbius mendapatkan hal paten pada mesin
Enigma untuk perusahaan Berlin Chiffriermasschinen Aktiengesellschaft. Pakar
cryptanalysis Polandia, Marian Rejewski, bekerja bersama Perancis dari 1928
sampai 1938, berhasil memecahkan pengkabelan sistem 3 rotor yang digunakan
Jerman saat itu dan menciptakan berkas kartu yang dapat mengantisipasi 6 kali
17,576 kemungkinan posisi rotor. Jerman mengubah indikator sistem dan jumlah
rotor menjadi 6 pada 1938, sehingga meningkatkan kesulitan untuk memecahkan
cipher Enigma. Dalam kerjanya pada 1938, Polandia dan Perancis mengkonstruksi
mesin prototipe yang disebut “The Bombe” untuk memecahkan cipher Enigma.
Namanya diturunkan dari bunyi detikan yang dihasilkan oleh mesin. Usaha
memecahkan cipher Enigma diambil alih oleh Inggris di Bletchley Park Inggris
dan dipimpin oleh banyak ilmuwan terkemuka termasuk Alan Turing.
http://digilib.mercubuana.ac.id/
12
Prototipe Bombe Turing muncul pada 1940, dan Bombe berkecepatan
tinggi dikembangkan oleh Inggris dan Amerika pada 1943. Perkembangan
komputer dan sistem komunikasi pada tahun 60an berdampak pada permintaan
dari sektor-sektor privat sebagai sarana untuk melindungi informasi dalam bentuk
digital dan untuk menyediakan layanan keamanan. Dimulai dari usaha Feistel
pada IBM di awal tahun 70an dan mencapai puncaknya pada 1977 dengan
pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan
informasi federal US untuk mengenkripsi informasi yang unclassified. DES
merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah.
Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976
saat Diffie dan Hellman mempublikasikan New Directions in Cryptography.
Tulisan ini memperkenalkan konsep revolusioner kriptografi kunci publik dan
juga memberikan metode baru dan jenius untuk pertukaran kunci, keamanan yang
berdasar pada kekuatan masalah logaritma diskret.
Gambar 2.4 Enigma Machine
Meskipun tidak memiliki realisasi praktis pada ide enkripsi kunci publik
saat itu, idenya sangat jelas dan ketertarikan yang luas pada komunitas kriptografi.
Pada 1978 Rivest, Shamir dan Adleman menemukan rancangan enkripsi kunci
publik dan tanda tangan, yang sekarang disebut RSA. Rancangan RSA berdasar
pada masalah matematika yang sulit untuk kriptografi menggiatkan kembali usaha
untuk menemukan metode yang lebih efisien untuk pemfaktoran. Tahun 80an
menunjukkan peningkatan luas di area ini, sistem RSA masih aman. Pada 1991
standar internasional pertama untuk tanda tangan digital (ISO/IEC 9796) diadopsi.
Standar ini berdasar pada rancangan kunci publik RSA.
http://digilib.mercubuana.ac.id/
13
Pada 1994 pemerintah US mengadopsi Digital Signature Standard, sebuah
mekanisme yang berdasar pada rancangan kunci publik ElGamal. (Subagja,
2015).
2.3
Tujuan Kriptografi
Dalam teknologi informasi telah dan sedang dikembangkan cara-cara
untuk menangkal berbagai serangan, seperti penyadap dan pengubahan data yang
sedang dikirimkan. Salah satu cara yang ditempuh untuk mengatasi masalah ini
adalah dengan menggunakan kriptografi yang menggunakan transformasi data
sehingga data yang dihasilkan tidak dapat dimengerti oleh pihak yang tidak
berhak mengakses. Transformasi ini memberikan solusi pada dua macam masalah
keamanan data, yaitu masalah privasi (privacy) dan keotentikan (authentication).
Privacy mengandung arti bahwa data yang dikirimkan hanya dapat
dimengerti oleh penerima yang sah atau berhak. Sedangkan keotentikan mencegah
pihak ketiga untuk mengirimkan data yang salah atau mengubah data yang
dikirimkan.
Adapun tujuan kriptografi adalah sebagai berikut (Munir, 2006).
1.
Confidentiality (Kerahasiaan)
Adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat
dibaca.
2.
Authentiation (Otentikasi)
Adalah
layanan
yang
berhubungan
dengan
identifikasi,
baik
mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user
authentication atau entity authentication). Maupun mengidentifikasi
kebenaran sumber pesan.
3.
Data Integrity (Integritas Data)
Adalah layanan yang menjamin bahwa pesan masih asli atau belum pernah
dimanipulasi selama pengiriman.
4.
Non - repudiation (Tanpa Penyangkalan)
Adalah layanan untuk mencegah entitas yang berkomunikasi
melakukan
penyangkalan
yaitu pengiriman atau penerima
menyangkal telah menerima pesan.
http://digilib.mercubuana.ac.id/
pesan
14
2.4
Algoritma Kriptografi
Algoritma dalam kriptografi merupakan sekumpulan aturan (fungsi
matematis yang digunakan) untuk proses enkripsi dan proses dekripsi. Dalam
beberapa metode kriptografi terdapat perbedaan antara fungsi enkripsi dan fungsi
dekripsi.
Konsep matematis yang mendasari algoritma adalah relasi antara
himpunan, yaitu relasi antara himpunan yang berisi elemen-elemen ciphertext.
Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara
kedua himpunan tersebut.
Misalkan himpunan plaintext dinotasikan P dan himpunan elemen ciphertext
dinotasikan C, maka fungsi E memetakan himpunan P ke himpunan C.
E(P) = C
Dan fungsi dekripsi memetakan himpunan C ke himpunan P
D(C) = P
Karena fungsi dekripsi D mengembalikan himpunan C menjadi himpunan P asal,
maka algoritma kriptografi harus memenuhi persamaan
D(E(P)) = P
Tingkat keamanan suatu algoritma dalam kriptografi seringkali diukur dari
kuantitas proses yang dilakukan dalam suatu fungsi, baik itu fungsi enkripsi
maupun fungsi dekripsi. Proses tersebut juga dapat dihubungkan dengan sumber
data yang dibutuhkan, menunjukkan semakin kuat algoritma kriptografi tersebut.
Pada kriptografi klasik, keamanan kriptografi terletak pada kerahasiaan
algoritma kriptografinya. Salah satu contohnya adalah mesin enigma yang
dikeluarkan oleh pemerintah Jerman pada masa perang dunia ke-2. Namun, hal ini
yang menjadi titik lemah ketika algoritma bocor ke pihak yang seharusnya tidak
berwenang sehingga mengharuskan untuk menyusun suatu algoritma baru tanpa
ada rasa khawatir akan kebocoran informasi tersebut, sebab informasi tersebut
hanya dapat didekripsikan, yaitu pihak yang memang mempunyai kunci private.
Berikut ini adalah istilah-istilah yang digunakan dalam bidang kriptografi :
1. Plaintext adalah pesan yang hendak dikirim (berisi data asli).
2. Ciphertext adalah pesan yang terenkripsi (tersandi) yang merupakan hasil dari
enkripsi.
http://digilib.mercubuana.ac.id/
15
3. Enkripsi adalah proses pengubahan plaintext menjadi ciphertext.
4. Dekripsi adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi
plaintext, sehingga berupa data awal atau asli.
5. Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses
enkripsi dan dekripsi.
Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi.
Enkripsi adalah proses dimana informasi atau data yang hendak dikirim diubah
menjadi bentuk yang hamper tidak dikenal sebagai informasi awalnya dengan
menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu
mengubah bentuk tersamar tersebut menjadi informasi awal.
2.4.1
Algoritma Simetris
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci
enkripsi yang sama dengan kunci dekripsinya. Istilah lain untuk kriptografi kuncisimetri adalah kriptografi kunci privat (private-key cryptography), kriptografi
kunci
rahasia
(secret-key
cryptography),
atau
kriptografi
konvensional
(conventional cryptography). Sistem kriptografi kunci-simetri (atau disingkat
menjadi “kriptografi simetri” saja), mengasumsikan pengirim dan penerima pesan
sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan sistem
kriptografi simetri terletak pada kerahasiaan kuncinya.
Kriptografi simetris merupakan satu-satunya jenis kriptografi yang dikenal
dalam catatan sejarah hingga tahun 1976. Semua algoritma kriptografi klasik
termasuk ke dalam sistem kriptografi simetri.
Kelebihan algoritma simetris ini adalah proses enkripsi dan deskripsinya
yang jauh lebih cepat dibandingkan dengan algoritma asimetris. Sedangkan
kelemahan algoritma ini adalah permasalahan distribusi kunci (key distribution).
Seperti yang telah dibahas, proses enkripsi dan deskripsi menggunakan kunci
yang sama. Sehingga muncul persoalan menjaga kerahasian kunci, yaitu pada saat
pengiriman kunci pada media yang tidak aman seperti internet. Tentunya jika
kunci ini sampai hilang atau sudah dapat ditebak oleh orang lain (orang yang tidak
berhak), maka kriptosistem ini sudah tidak aman lagi
http://digilib.mercubuana.ac.id/
16
Kelemahan lain adalah masalah efisiensi jumlah kunci. Jika terdapat n
user, maka diperlukan n(n-1)/2 kunci, sehingga untuk jumlah user yang sangat
banyak, sistem ini tidak efisien lagi (Menezes et al, 1996).
Gambar 2.5 Skema Kriptografi Simetris
2.4.2
Algoritma Asimetris
Algoritma asimetris didesain sehingga kunci yang digunakan untuk
enkripsi berbeda dengan kunci untuk dekripsi dimana kunci untuk enkripsi tidak
rahasia dan dapat diketahui oleh siapapun (diumumkan ke publik), sementara
kunci untuk dekripsi hanya diketahui oleh penerima pesan (rahasia).
Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai
sepasang kunci, yaitu kunci privat dan kunci publik. Pengirim mengenkripsi pesan
menggunakan kunci publik si penerima pesan. Hanya penerima pesan yang dapat
mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya. Kriptografi
kunci-publik dapat dianalogikan seperti kotak surat yang terkunci dan memiliki
lubang untuk memasukkan surat. Setiap orang dapat memasukkan surat ke dalam
kotak surat tersebut, tetapi hanya pemilik kotak yang dapat membuka kotak dan
membaca surat di dalamnya karena ia yang memiliki kunci. Keuntungan sistem
ini ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat
sebagaimana pada sistem kriptografi simetri. Kunci publik dapat dikirim ke
penerima melalui saluran yang sama dengan saluran yang digunakan untuk
mengirim pesan. Saluran untuk mengirim pesan umumnya tidak aman.
Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi rahasia dengan
banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut, cukup
membuat dua buah kunci, yaitu kunci publik bagi koresponden untuk
mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan
kriptografi kunci-simetris yang dibuat adalah sebanyak jumlah pihak yang diajak
berkorespondensi.
http://digilib.mercubuana.ac.id/
17
Contoh penggunaan, misalkan jaringan komputer menghubungkan
komputer karyawan di kantor cabang dengan komputer manejer di kantor pusat.
Seluruh kepala cabang diberitahu bahwa kalau mereka mengirim laporan ke
manejer di kantor pusat, mereka harus mengenkripsi laporan tersebut dengan
kunci publik manejer (kunci publik menejer diumumkan kepada seluruh kepala
cabang). Untuk mengembalikan laporan tersandi ke laporan semula, hanya
manejer yang dapat melakukan dekripsi, karena hanya dialah yang memegang
kunci privat. Selama proses transmisi ciphertext dari kantor cabang ke kantor
pusat melalui saluran komunikasi mungkin saja data yang dikirim disadap oleh
pihak ketiga, namun pihak ketiga ini tidak dapat mengembalikan ciphertext ke
plainteksnya karena ia tidak mengetahui kunci untuk dekripsi.
Meski berusia relatif muda (sejak 1976), kriptografi kunci-publik
mempunyai kontribusi yang luar biasa dibandingkan dengan sistem kriptografi
simetri. Kontribusi yang paling penting adalah tanda-tangan digital pada pesan
untuk
memberikan
aspek
keamanan
otentikasi,
integritas
data,
dan
nirpenyangkalan. Tanda-tangan digital adalah nilai kriptografis yang bergantung
pada isi pesan dan kunci yang digunakan. Pengirim pesan mengenkripsi pesan
(yang sudah diringkas) dengan kunci privatnya, hasil enkripsi inilah yang
dinamakan tanda-tangan digital. Tanda-tangan digital dilekatkan (embed) pada
pesan asli. Penerima pesan memverifikasi tanda-tangan digital dengan
menggunaklan kunci publik.
Gambar 2.6 Skema Kriptografi Asimetris
2.5
Algoritma RC4 (Rivest Code 4)
RC4 pertama kali didesain oleh Ron Rivest yang berasal dari
Laboratorium RSA pada tahun 1987. RC sendiri mempunyai singkatan resmi
yaitu “Rivest Cipher”, namun juga dikenal sebagai “Ron’s Code”. RC4
sebenarnya dirahasiakan dan tidak dipublikasikan kepada khalayak ramai, akan
http://digilib.mercubuana.ac.id/
18
tetapi pada September 1994, kode tersebut dikirim oleh seseorang yang tidak
diketahui ke milist Chypermunks dan menyebar ke banyak situs internet. Kode
yang bocor tesebut akhirnya dikonfirmasi sebagai RC4 karena memiliki output
yang sama dengan software dengan lisensi RC4 di dalamnya.
Karena algoritma sudah diketahui, RC4 tidak lagi menjadi rahasia
dagang.Nama RC4 sudah dipatenkan, sehingga sering disebut sebagai
“ARCFOUR” atau “ARC4” (Alleged RC4) untuk menghindari pematenan. RSA
Security tidak pernah secara resmi merilis algoritma tersebut, namun Rivest secara
pribadilah yang merilisnya dengan menghubungkan Wikipedia Inggris ke catatancatatan yang ia punya. RC4 telah menjadi bagian dari protocol enkripsi yang
standard dan sering digunakan.Faktor utama yang menjadi kesuksesan dari RC4
adalah kecepatannya dan kesederhanaannya dalam menangani banyakaplikasi,
sehingga mudah untuk mengembangkan implementasi yang effisien ke software
dan hardware. RC4 adalah algoritma kriptografi simetris. Disebut algoritma
kriptografi simetris karena menggunakan kunci yang sama untuk mengenkripsi
atau mendekripsi suatu pesan, data, ataupun informasi.
RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau
input data pada satu saat. Dengan cara ini enkripsi atau dekripsi dapat
dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu
sejumlah input data tertentu sebelum diproses, atau menambahkan byte tambahan
untuk mengenkrip.
Algoritma RC4 bekerja pada 2 tahap, menyetem susunan (key setup) dan
(ciphering). Kunci susunan merupakan yang lebih awaldan merupakan tahap yang
paling sulit dari algoritma ini. Selama menyetem susunan dari N-bit ( N menjadi
panjang kunci ), kunci enkripsi digunakan untuk menghasilkan suatu variabel
enkripsi yang menggunakan dua arrays, state dan key dan jumlah N dari operasi
pencampuran. Operasi pencampuran terdiri dari menukar bytes, modulo operasi,
dan rumusan lain. Suatu modulo operasi adalah proses sisa dari suatu hasil divisi.
Sebagai contoh, 10/4 adalah 2 sisa 2, oleh karena itu 10 mod 4 sama dengan 2.
Sekali variabel enkripsi dihasilkan dari key setup, langkah selanjutnya
adalah masuk ke fase ciphering, di mana dalam proses ini hasilnya akan
diXORkan dengan plaintext. Sekali penerima mendapat pesanyang dienkripsi,
http://digilib.mercubuana.ac.id/
19
langkah selanjutnya adalah mendeskripsikannya dengan mengXORkan pesan
yang dienkripsi, dengan menggunakan variabel yang sama (Ariyus, 2008.)
2.5.1
Algoritma Enkripsi RC 4
RC4 merupakan jenis stream cipher yang mempunyai sebuah S-Box,
S0,S1,…,S255, yang berisi permutasi dari bilangan 0 sampai 255, dan permutasi
merupakan fungsi dari kunci dengan panjang yang variabel. Dalam algoritma
enkripsi metode ini akan membangkitkan pseudorandom byte dari key yang akan
dikenakan operasi XOR terhadap plaintext untuk menghasilkan ciphertext. Untuk
menunjukan proses enkripsi dari algoritma RC4, berikut dapat dilihat pada
Gambar 2.6 di bawah :
Gambar 2.7 Arsitektur Enkripsi RC4
Secara garis besar algoritma dari metode RC4 Stream Cipher ini terbagi
menjadi dua bagian, yaitu: key setup atau Key Schedulling Algorithm (KSA) dan
stream generation atau Pseudo Random Generation Algorithm (PRGA) dan
proses XOR dengan stream data. Berikut ini akan dijelaskan bagian-bagian dari
algoritma RC4 Stream Cipher tersebut.
http://digilib.mercubuana.ac.id/
20
1. Key Setup/Key Schedulling Algorithm (KSA)
Pada bagian ini, terdapat tiga tahapan proses didalamnya yaitu :
a. Inisialisasi S-Box
Pada tahapan ini, S-Boxakan diisi dengan nilai sesuai indeksnya untuk
mendapatkan S-Box awal. Algoritmanya adalah sebagai berikut :
1. Untuk i=0 hingga i=255 lakukan
2. Isikan S dengan nilai i
3. Tambahkan i dengan 1, kembali ke 2
b. Menyimpan kunci dalam Key Byte Array
Pada tahapan ini, kunci (key) yang akan kita gunakan untuk mengenkripsi
atau dekripsi akan dimasukkan ke dalam array berukuran 256 secara
berulang sampai seluruh array terisi. Algoritmanya adalah sebagai berikut :
1. Isi j dengan 1
2. Untuk i=0 hingga i=255 lakukan
3. Jika j > panjang kunci maka
4. j diisi dengan nilai 1
5. Akhir jika
6. Isi K ke i dengan nilai ASCII karakter kunci ke j
7. Nilai j dinaikkan 1
8. Tambahkan i dengan 1, kembali ke 2
c. Permutasi pada S-Box
Pada tahapan ini,akan dibandingkan sebuah nilai yang akan dijadikan aturan
untukpermutasi pada S-Box. Pertama isi secara berurutan S(0) = 0, S(1)= 1,
…, S(255) = 255. Kemudian isi array 256 byte lainnya dengan kunci yang
diulangi sampai seluruh arrayK(0), K(1),…, K(255) terisi seluruhnya. Set
indeks j dengan nol. Algoritmanya adalah sebagai berikut :
1. Isi nilai j dengan 0
2. Untuk i=0 hingga i=255 lakukan
3. Isi nilai j dengan hasil operasi (j+S(i)+K(i)) mod 256
4. Tukar nilai S(i) dan S(j)
5. Tambahkan i dengan 1, kembali ke 2
http://digilib.mercubuana.ac.id/
21
2. Stream Generation atau Pseudo Random Generation Algorithm (PRGA)
Pada tahapan ini akan dihasilkan pseudorandom yang akan dikenakan operasi
XOR untuk menghasilkan ciphertext ataupun sebaliknya yaitu untuk
menghasilkan plaintext. Algoritmanya adalah sebagai berikut :
1. Isi indeks i dan j dengan nilai 0
2. Untuk i=0 hingga i=panjang plaintext
3. Isi nilai i dengan hasil operasi (i+1) mod 256
4. Isi nilai j dengan hasil operasi (j+S(i)) mod 256
5. Tukar nilai S(i) dan S(j)
6. Isi nilai t dengan hasil operasi (S(i)+(S(j) mod 256)) mod 256
7. Isi nilai y dengan nilai S(t)
8. Nilai y dikenakan operasi XOR terhadap plaintext
9. Tambahkan i dengan 1, kembali ke 2
Dengan demikian akan dihasilkan misalkan ciphertext dengan hasil XOR antar
stream key dari S-Box dan Plaintext secara berurutan.
http://digilib.mercubuana.ac.id/
22
2.5.2
Algoritma Dekripsi Rivest Code 4
Berikut
ini akan diberikan Gambar proses dari dekripsi RC4. Lihat
Gambar 2.8
Gambar 2.8 Arsitektur Denkripsi RC4
Algoritma
dekripsi
RC4
mirip
dengan
algoritma
enkripsinya,
perbedaannya hanya pada saat stream generation, yaitu untuk menghasilkan
plainteks semula, maka ciphertext nya akan dikenakan operasi XOR terhadap
pseudorandom bytenya.
Algoritma key setup pada proses dekripsi sama dengan algoritma
enkripsinya yang diproses inisialisasi S-Box, penyimpanan kunci kedalam key
bytearray hingga proses inisialisasi S-Box berdasarkan key byte array nya. Untuk
itu proses dekripsi dan enkripsi akan menghasilkan key stream yang sama.
Perbedaannya hanya pada stream generationnya, yaitu yang dioperasikan bersama
key stream adalah ciphertext untuk menghasilkan kembali plaintext.
Algoritmanya adalah sebagai berikut :
1. Isi indeks i dan j dengan nilai 0
2. Untuk i=0 hingga i=panjangciphertext (panjang ciphertext = plaintext)
3. Isi nilai i dengan hasil operasi (i+1) mod 256
4. Isi nilai j dengan hasil operasi (j+S(i)) mod 256
5. Tukar nilai S(i) dan S(j)
6. Isi nilai t dengan hasil operasi (S(i)+(S(j) mod 256)) mod 256
7. Isi nilai y dengan nilai S(t)
8. Nilai y dikenakan operasi XOR terhadap ciphertext
9. Tambahkan i dengan 1, kembali ke 2
http://digilib.mercubuana.ac.id/
23
2.6
Java
2.6.1 Pengertian Java
Java adalah bahasa pemrograman serbaguna. Java dapat digunakan untuk
membuat suatu program sebagaimana Anda membuatnya dengan bahasa seperti
Pascal atau C++. Yang lebih menarik, Java juga mendukung sumber daya Internet
yang saat ini populer, yaitu World Wide Web atau yang sering disebut Web saja.
Java juga mendukung aplikasi klien/server, baik dalam jaringan lokal (LAN)
maupun jaringan berskala luas (WAN). (Kadir, 2005).
Dalam sejumlah literatur disebutkan bahwa Java merupakan hasil
perpaduan sifat dari sejumlah bahasa pemrograman, yaitu C, C++, Object-C,
SmallTalk, dan Common LISP. Selain itu Java juga dilengkapi dengan unsur
keamanan. Yang tak kalah penting adalah bahwa Java menambahkan paradigma
pemrograman yang sederhana. Jika Anda telah mengenal C atau C++, yang
mengandalkan pointer dan Anda dapat merasakan keruwetannya, Java justru
meninggalkannya
sehingga
Anda
akan
memperoleh
kemudahan
saat
menggunakannya.
2.6.2 Kelebihan Java
Java mempunyai beberapa keunggulan dibandingkan dengan bahasa
pemrograman lainnya. Keunggulan bahasa pemrograman Java antara lain:
1. Berorientasi objek
Java adalah bahasa pemrograman yang berorientasi pada objek. Java
membagi program menjadi objek-objek serta memodelkan sifat dan tingkah laku
masing-masing dalam menyelesaikan suatu masalah.
2. Java bersifat multiplatform
Java dirancang untuk mendukung aplikasi yang dapat beroperasi di
lingkungan jaringan berbeda. Untuk mengakomodasi hal tersebut, Java compiler
membangkitkan bytecodes (sebuah format yang tidak tergantung pada arsitektur
tertentu yang didesain untuk mengirimkan kode ke banyak platform perangkat
keras dan perangkat lunak secara efisien). Java dapat dijalankan oleh banyak
platform seperti Linux, Unix, Windows, Solari, maupun Mac.
3. Java bersifat multithread
http://digilib.mercubuana.ac.id/
24
Multithreading adalah kemampuan suatu program komputer untuk
mengerjakan beberapa proses dalam suatu waktu. Thread dalam Java memiliki
kemampuan untuk memanfaatkan kelebihan multi prosessor apabila sistem
operasi yang digunakan mendukung multi prosessor.
4. Dapat didistribusi dengan mudah
Java memiliki library rutin yang lengkap untuk dirangkai pada protocol
TCP/IP (seperti HTTP dan FTP) dengan mudah. Kemampuan networking Java
lebih kuat dan lebih mudah digunakan. Java memudahkan tugas pemrograman
jaringan yang sulit seperti membuka dan mengakses sebuah soket koneksi. Java
juga mamudahkan pembuatan CGI (Common Gateway Interface).
5. Bersifat dinamis
Java dirancang untuk beradaptasi dengan lingkungan yang sedang
berkembang. Java bersifat dinamis dalam tahap linking. Class yang ada dapat di
link sebatas yang diperlukan, apabila diperlukan modul kode yang baru dapat di
link dari beberapa sumber, bahkan dari sumber dalam jaringan Internet.
2.6.3 Script Java
Contoh dari script Java adalah sebagai berikut :
import javax.script.*;
public class EvalScript {
public static void main(String[] args) throws Exception {
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
// evaluate JavaScript code from String
engine.eval("print('Hello, World')");
}
}
http://digilib.mercubuana.ac.id/
25
2.6.4
Java Tidak Bergantung Platform
Program Java bersifat tidak bergantung pada platform; Artinya, Java dapat
dijalankan pada sembarang komputer dan bahkan pada sembarang sistem operasi.
Beberapa platform dan sistem operasi yang didukung oleh Java dapat dilihat pada
Tabel 2.1.
Sistem Operasi
Vendor
AIX
IBM
DG/UX
Data General Corporation
Digital OpenVMS
Digital Equipment Corporation
Digital Unix
Digital Equipment Corporation
HP-UX
Hewlett Packard
IRIX
Silicon Graphics
Linux
Banayak Perusahaan
Mac OS
Apple
Netware
Novell
OS/2
IBM
OS/390 dan OS/400
IBM
Solaris
Sun Microsystems
Windows
Microsoft Corporation
Tabel 2.1 Java pada berbagai sistem operasi
Ketidakbergantungan terhadap platform sering dinyatakan dengan istilah
probabilitas. Yang menarik, tingkat probabilitas Java tidak hanya sebatas pada
program sumber (source code), melainkan juga pada tingkat kode biner yang
disebut bytecode. Dengan demikian bila Anda telah mengkompilasi program Java
pada komputer bersistem operasi Windows, Anda dapat menjalankan hasil
kompilasi pada Macintosh secara langsung, tanpa perlu mengkompilasi ulang.
http://digilib.mercubuana.ac.id/
26
2.7
Eclipse
2.7.1
Pengertian Eclipse
Eclipse adalah sebuah IDE (Integrated Development Environment) untuk
mengembangkan perangkat lunak dan dijalankan di semua platform. Eclipse
sendiri juga merupakan sebuah komunitas open source, yang memiliki proyek
yang berfokus pada membangun sebuah platform pengembangan terbuka dari
extensible Framework, tools dan runtime untuk membangun, menyebarkan dan
mengelola perangkat lunak di seluruh siklus hidup perangkat lunak tersebut.
(Kadir, 2005).
Umumnya Eclipse digunakan untuk membuat sebuah program yang
menggunakan bahasa pemrograman Java. Namun, Eclipse juga bisa digunakan
untuk penggunaan bahasa pemrograman lainnya seperti C, C++, COBOL, Perl,
PHP, Python, dan sebagainya.
2.7.2
Kelebihan Eclipse
Berikut ini adalah sifat dari Eclipse dan kelebihan Eclipse daripada
Software yang lain:
1. Multi-platform
Bisa dijalankan di Microsoft Windows, Linux, Solaris, AIX, HP-UX
dan Mac OS X.
2. Mulit-language
Pada dasarnya Eclipse dikembangkan dengan bahasa pemrograman Java,
selain itu Eclipse juga
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.
http://digilib.mercubuana.ac.id/
27
2.8
Metodologi
2.8.1
Metode Waterfall
SDLC air terjun(waterfall) sering juga disebut sebagai alur hidup klasik
(classic life cycle). Model air terjun menyediakan pendekatan alur hidup
perangkat lunak secara sekuensial atau terurut dimulai dari analisis, spesifikasi,
desain, implementasi, pengujian, dan tahap perawatan.
Waterfall merupakan salah satu metode pengembangan perangat lunak
yang banyak digunakan. Menurut (Sommerville, 2007), waterfall merupakan
salah satu model proses perangkat lunak yang mengambil kegiatan proses dasar
seperti
spesifikasi,
pengembangan,
validasi
dan
evolusi
dengan
mempresentasikannya sebagai fase-fase proses yang berbeda seperti analisis dan
definisi persyaratan, perancangan perangkat lunak, implementasi dan pengujian
unit, integrasi dan pengujian sistem, operasi dan pemeliharaan.
Gambar 2.1 Metode Waterfall (Sommerville, 2007).
http://digilib.mercubuana.ac.id/
28
Tahapan Metode Waterfall :
1. Requirement Definition
Proses mengumpulkan informasi kebutuhan sistem/perangkat
lunak
melalui
konsultasi
dengan
user
system.
Proses
ini
mendefinisikan secara rinci mengenai fungsi-fungsi, batasan dan
tujuan dari perangkat lunak sebagai spesifikasi sistem yang akan
dibuat.
2. System and Software Design
Proses perancangan sistem difokuskan pada empat atribut, yaitu
struktur data, arsitektur perangkat lunak, representasi antar muka, dan
detail (algoritma) prosedural. Yang dimaksud struktur data adalah
representasi dari hubungan logis antara elemen-elemen data individual.
3. Implementation and Unit Testing
Pada tahap ini, perancangan perangkat lunak direalisasikan
sebagai program atau unit program. Kemudian pengujian unit
melibatkan verifikasi bahwa setiap unit program telah memenuhi
spesifikasinya.
4. Integration and System Testing
Unit program/program individual diintegrasikan menjadi sebuah
kesatuan sistem dan kemudian dilakukan pengujian. Dengan kata lain,
pengujian ini ditujukan untuk menguji keterhubungan dari tiap-tiap
fungsi perangkat lunak untuk menjamin bahwa persyaratan sistem
telah terpenuhi. Setelah pengujian sistem selesai dilakukan, perangkat
lunak dikirim ke pelanggan/user.
5. Operational and Maintenance
Tahap ini biasanya memerlukan waktu yang paling lama. Sistem
diterapkan (di-install) dan dipakai. Pemeliharaan mencakup koreksi
dari beberapa kesalahan yang tidak diketemukan pada tahapan Analisis
dan definisi persyaratan Perancangan sistem dan perangkat lunak
Implementasi dan pengujian unit Integrasi dan pengujian sistem
Operasi dan pemeliharaan 9 sebelumnya, perbaikan atas implementasi
unit
sistem
dan
pengembangan
pelayanan
persyaratan-persyaratan baru ditambahkan.
http://digilib.mercubuana.ac.id/
sistem,
sementara
29
2.9
Diagram Alir
2.9.1
Diagram Alir (flowchart)
Diagram alir (flowchart) adalah bagan (chart) yang menunjukkan alir
(flow) di dalam program atau prosedur sistem secara logika (Jogiyanto.2005).
Berikut adalah daftar simbol pada flowchart. Lihat Gambar 2.9.
Simbol
Keterangan
Terminator
Digunakan untuk menggambarkan
kegiatan awal atau akhir suatu proses.
Input atau Output
Digunakan untuk menggambarkan
suatu kegiatan masukan maupun keluaran.
Decision
Digunakan untuk suatu keputusan atau
tindakan yang harus diambil pada kondisi
tertentu.
Process
Digunakan untuk menggambarkan
suatu kegiatan proses penghubung.
Predefined Process
Digunakan untuk modul yang tidak
ditulis karena sudah ada dalam sistem yang
menggambarkan suatu proses.
On-PageReference
Digunakan untuk menghubungkan satu
simbol dengan simbol lainnya pada halaman
yang sama.
Off-Page Reference
Digunakan untuk menghubungkan satu
simbol dengan simbol lainnya pada halaman
yang berbeda.
Line Connector
Digunakan untuk menghubungkan satu
simbol dengan simbol lainnya yang
menyatakan alur proses.
Gambar 2.10 Daftar Simbol Flowchart
http://digilib.mercubuana.ac.id/
30
2.10
Pengujian
Pengujian elemen perangkat lunak adalah elemen kritis dari jaminan
kualitas dan merepresentasikan kajian pokok dari spesifikasi, desain, dan
pengkodean. (Shalahuddin, 2014).
2.10.1 Pengujian Black Box
Black box testing merupakan pengujian yang memungkinkan software
engineer mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan
semua persyaratan fungsional untuk suatu program.
Pengujian black-box juga merupakan pendekatan komplementer yang
memungkinkan besar mampu mengungkap kelas kesalahan daripada metode
white-box.
Pengujian black-box berusaha menemukan kesalahan dalam kategori
sebagai berikut:
1.
Fungsi-fungsi yang tidak benar atau hilang.
2.
Kesalahan interface.
3.
Kesalahan dalam struktur data atau akses database eksternal.
4.
Kesalahan kinerja.
5.
Inisialisasi dan kesalahan terminasi.
http://digilib.mercubuana.ac.id/
Download