BAB II TINJAUAN PUSTAKA
II.1.
Teori Kriptografi Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga
agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Menurut Bruce Schneier dalam bukunya "Applied Cryptography", kriptografi adalah ilmu pengetahuan dan seni menjaga message-message agar tetap aman (secure). (Aris Pamungkas ; 2013 : 2). Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni : 1. Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain kecuali pihak pengirim, pihak penerima atau pihak-pihak memiliki ijin. Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami. 2. Data integrity (keutuhan data) yaitu sebuah layanan yang mampu mengenali atau mendeteksi adanya manipulasi penghapusan, pengubahan atau penambahan data yang tidak sah oleh pihak lain. 3. Authentication (keotentikan)
yaitu
layanan
yang
berhubungan
dengan
identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.
7
8
4. Non-repudiation (anti penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya. Kriptografi juga berkembang menjadi kriptografi modern. Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada kerahasiaan algoritma yang digunakan yang artinya apabila algoritma yang digunakan telah diketahui maka pesan sudah jelas bocor dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma tersebut, kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut, sehingga algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya. Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi : 1. Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli). 2. Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi. 3. Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext. 4. Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli. 5. Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi. Kriptografi terdiri dari dua proses utama yakni enkripsi dan dekripsi, proses enkripsi mengubah plaintext menjadi ciphertext sehingga isi informasi pada pesan tersebut sukar dimengerti.
Gambar II.1. Diagram Proses Enkripsi Dan Dekripsi (Sumber : Wahana Komputer ; 2012 : 6)
9
Peranan kunci sangatlah penting dalam proses enkripsi dan dekripsi (disamping pula algoritma yang digunakan) sehingga kerahasiaannya sangatlah penting, apabila kerahasiaannya terbongkar, maka isi dari pesan dapat diketahui. Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi) menggunakan e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C (ciphertext), notasinya : Ee(M) – C Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi) menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M (plaintext), notasinya : Dd(C) = M, Sehingga dari dua hubungan diatas berlaku : Dd(Ee(M)) = M.
II.2.
Konsep Enkripsi Dan Dekripsi Salah satu mekanisme untuk meningkatkan keamanan adalah dengan
menggunakan teknologi enkripsi. Data-data yang dikirimkan diubah sedemikian rupa sehingga tidak mudah disadap. Jadi enkripsi adalah proses yang dilakukan untuk mengamankan sebuah pesan yang disebut plaintext menjadi pesan yang tersembunyi (disebut ciphertext) adalah enkripsi (encryption). Ciphertext adalah pesan yang sudah tidak dapat dibaca dengan mudah. Terminologi yang lebih tepat digunakan adalah encipher. Proses sebaliknya, untuk mengubah ciphertext menjadi plaintext, disebut dekripsi (decryption). Terminologi yang lebih tepat untuk proses ini adalah decipher.
Berdasarkan
cara
memproses
teks
(plaintext),
cipher
dapat
dikategorikan menjadi dua jenis: block cipher and stream cipher. Block cipher bekerja dengan memproses data secara blok, dimana beberapa karakter/data
10
digabungkan menjadi satu blok. Setiap proses satu blok menghasilkan keluaran satu blok juga. Sementara itu stream cipher bekerja. (Budi Raharjo ; 2012 : 35). II.2.1 Enkripsi DES Algoritma DES merupakan algoritma enkripsi yang paling banyak digunakan di dunia yang diadopsi oleh NIST (National Institue of Standards and Technology) sebagai standar pengolah informasi Federal AS. Data plaintext dienkrip dalam blok-blok 64 bit menjadi 64 bit data ciphertext menggunakan kunci 56 bit kunci internal (internal key). DES mentransformasikan input 64 bit dalam beberapa tahap enkripsi ke dalam output 64 bit. Dengan demikian, DES termasuk block cipher. Dengan tahapan dan kunci yang sama, DES digunakan untuk membalik enkripsi. Kunci internal pada algoritma DES dibangkitkan dari kunci eksternal (external key) 64 bit. Skema global dari proses algoritma DES adalah sebagai berikut : (Budi Raharjo ; 2012 : 43) 1. Blok plaintext dipermutasi dengan matriks permutasi awal IP. 2. Hasil permutasi awal kemudian di enchipering sebanyak 16 kali putaran. Setiap putaran menggunakan kunci internal yang berbeda. 3. Hasil enchipering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP) menjadi blok chipertext. 4. Skema algoritma DES dapat dilihat pada gambar II.2.
11
Gambar II.2. Proses Enkripsi DES (Sumber : Rifkie Primartha ; 2011 : 375) Kunci eksternal 64 bit, dikompresi terlebih dahulu menjadi 54 bit menggunakan matriks permutasi kompresi PC-1. Dalam permutasi tiap bit ke-8 dari 8 byte kunci akan diabaikan. Sehingga akan ada penggunaan 8 bit dari 64 bit awal kunci eksternal. Setelah didapatkan 56 bit hasil permutasi, selanjutnya 56 bit
12
ini akan dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit. Lalu ke-2 bagian tersebut akan disimpan ke dalam C0. D0 : berisi bit-bit dari K pada posisi : 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18 10, 2, 59, 51, 43, 35, 27, 19,11, 3, 60, 52, 44, 36 D0 : berisi bit-bit dari K pada posisi : 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22 14, 6, 61, 53, 45, 37, 29, 21, 21, 13, 5, 28, 20, 12 Proses selanjutnya adalah ke-2 bagian (C0 dan D0) digeser ke kiri (left shift) sepanjang 1 atau 2 bit, tergantung pada tiap putaran. Perputaran ini bersifat wrapping atau round-shift. Hasil dari pergeseran C0 dan D0 akan didapatkan nilai dari C1 da C2. Begitu seterusnya, hingga proses tersebut menghasilkan C16 dan D16. Untuk mendapatkan kunci internal pertama (K1), maka bit dari C0 dan D0 tadi dilakukan permutasi kompresi dengan menggunakan matriks PC-2. (Budi Raharjo ; 2012 : 50). II.2.2. Dekripsi DES Pada algoritma DES proses dekripsi dan enkripsinya menggunakan kunci yang sama. Proses dekripsi pada ciphertext merupakan proses kebalikan dari proses enkripsi. Jika pada proses enkripsi urutan kunci yang digunakan adalah K1, K2, …, K16, maka untuk proses dekripsi urutan kunci yang digunakan adalah K16, K15, …, K1. Masukkan awalnya adalah R16 dan L16 untuk deciphering. Blok R16 dan L16 diperoleh dengan mempermutasikan ciphertext dengan matriks permutasi IP-1. (Budi Raharjo ; 2012 : 52).
13
Gambar II.3. Skema Dasar Proses Dekripsi Algoritma DES (Sumber : Rifkie Primartha ; 2011 : 380)
14
II.3.
Algoritma Kriptografi Ditinjau dari asal usulnya, kata algoritma mempunyai sejarah yang
menarik. Kata ini muncul di dalam kamus Webster sampai akhir tahun 1957. Kata algorisma mempunyai arti proses perhitungan dalam bahasa Arab. Algoritma berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi (al-Khuwarizmi dibaca oleh orang barat sebagai algorism). Kata algorism lambat laun berubah menjadi algorithm. Definisi terminologi algoritma adalah urutan langkah-langkah logis untuk menyelesaikan masalah yang disusun secara sistematis. Algoritma kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orangorang yang tidak berhak atas pesan tersebut. Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu : 1. Enkripsi merupakan hal yang sangat penting dalam kriptografi, merupakan pengamanan data yang dikirimkan agar terjaga kerahasiannya. Pesan asli disebut plaintext, yang diubah menjadi kode-kode. Sama halnya dengan tidak mengerti akan sebuah kata maka akan melihatnya di dalam kamus atau daftar istilah. Bedan halnya dengan enkripsi, untuk mengubah teks asli ke bentuk teks kode menggunakan algoritma yang dapat mengkodekan data yang diinginkan. 2. Deskripsi merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya teks asli, disebut dengan enkripsi pesan. Algoritma yang digunakan untuk deskripsi tentu berbeda dengan algoritma yang digunakan untuk enkripsi.
15
3. Kunci yang dimaksud di sini adalah kunci yang dipakai untuk melakukan enkripsi dan deskripsi. Kunci terbagi menjadi dua bagian, kunci rahasia (private key) dan kunci umum (public key). 4. Keamanan dari algoritma kriptografi tergantung pada bagaimana algoritma itu bekerja. Oleh sebab itu algoritma semacam ini disebut dengan algoritma terbatas. Algoritma terbatas merupakan algoritma yang dipakai sekelompok orang untuk merahasiakan pesan yang mereka kirim. Jika salah satu dari anggota kelompok itu keluar dari kelompoknya amak algoritma yang dipakai diganti dengan yang baru. Jika tidak maka hal itu bisa menjadi masalah di kemudian hari.
II.4.
Macam-Macam Algoritma Kriptografi Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang
dipakainya, adapun macam-macam algoritma kriptografi tersebut adalah sebagai berikut : 1.
Algoritma Simetri. Pada sistem kriptografi kunci simetris, kunci untuk enkripsi sama dengan
kunci untuk dekripsi, oleh karena itulah dinamakan kriptografi simetris. Keamanan sistem kriptografi simetris terletak pada kerahasiaan kuncinya. Kriptografi simetris merupakan satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga tahun 1976.
16
2.
Algoritma Asimetri. Algoritma asimetris menggunakan dua jenis kunci, yaitu kunci publik dan
kunci rahasia. Nama lainnya adalah kriptografi kunci publik, sebab kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun, sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan. 3.
Hash Function. Algoritma ini sering disebut dengan algoritma klasik karena memakai kunci
yang sama untuk kegiatan enkripsi dan dekripsi. Algoritma ini sudah ada sejak lebih dari 4000 tahun yang lalu. Bila mengirim pesan dengan menggunakan algoritma ini, si penerima pesan harus diberitahu kunci dari pesan tersebut agar bisa mendekripsi pesan yang dikirim. (Wahana Komputer ; 2013 : 8).
II.5.
DES (Data Encryption Standard) DES adalah sebuah algoritma enkripsi sandi blok kunci simetrik dengan
ukuran blok 64 bit dan ukuran kunci 56 bit. DES untuk saat ini sudah dianggap tidak aman lagi. Penyebab utamanya adalah ukuran kuncinya yang sangat pendek 56 bit. Sejak beberapa tahun yang lalu DES telah digantikan oleh Advances Encryption Standard (AES). (Wahana Komputer ; 2013 : 10). Skema global dari algoritma DES adalah sebagai berikut : 1. Blok plaintext dipermutasi dengan matriks permutasi awal (Initial Permutation atau IP). 2. Hasil permutasi awal kemudian di enciphering sebanyak 16 kali (16 putaran), di mana setiap putaran menggunakan kunci internal yang berbeda.
17
3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (Invers Initial Permutaion atau IP-1) menjadi blok cipherteks. (Wahana Komputer ; 2013 : 18).
II.5.1. Algoritma DES Secara umum algoritma DES terbagi menjadi 3 kelompok di mana kelompok yang satu dengan yang lain saling berintraksi dan terkait antara satu dengan yang lain. Kelompok-kelompok tersebut adalah pemrosesan kunci, enkripsi data 64 bit, dan deskripsi data 64 bit. Algoritma DES dirancang untuk menulis dan membaca berita blok data yang terdiri dari 64 bit dibawah kontrol kunci 64 bit. Sebuah blok ditulis dan ditujukan pada permutasi dengan inisial IP, kemudian melewati perhitungan dan perhitungan tersebut sangat tergantung pada kunci kompleks dan pada akhirnya melewati permutasi yang invers dari permutasi dengan inisial IP DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Skema global yaitu : 1) Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP). 2) Hasil permutasi awal kemudian di enciphering sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda. 3) Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP) menjadi blok cipherteks. (Wahana Komputer ; 2013 : 18).
18
II.5.2. Proses Perputaran DES DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau subkey. Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 54 bit. Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dari fungsi f di XOR kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES. Secara matematis, satu putaran DES dinyatakan sebagai (Tarbudi ; 2011 : 6). Li = Ri – 1
Ri = Li – 1
f(Ri – 1, Ki).
Keluaran dari putaran ke-16, maka (R16, L16) merupakan pra cipherteks (pre ciphertext) dari enciphering ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan IP-1, terhadap blok pra cipherteks. Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-bit di dalamnya berubah karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi.
19
Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter. (Sulidar Fitri ; 2013 : 15). Dalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES adalah 56 bit. Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing disimpan di dalam C0 dan D0. Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift. Misalkan (Ci, Di) menyatakan penggabungan Ci dan Di. (Ci+1, Di+1) diperoleh dengan menggeser Ci dan Di satu atau dua bit. Jadi, setiap kunci internal Ki mempunyai panjang 48 bit. Bila jumlah pergeseran bit-bit pada Tabel 1 dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28, yang sama dengan jumlah bit pada Ci dan Di. Karena itu, setelah putaran ke-16 akan didapatkan kembali C16 = C0 dan D16 = D0. E adalah fungsi ekspansi yang memperluas blok Ri – 1 yang panjangnya 32 bit menjadi blok 48 bit. Selanjutnya, hasil ekpansi, yaitu E (Ri – 1), yang panjangnya 48 bit di XOR dengan Ki yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48 bit : E(Ri – 1)
Ki = A. Vektor A dikelompokkan
menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah kotak S (S-box), S1 sampai S8. Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6 bit pertama menggunakan S1, kelompok 6 bit kedua
20
menggunakan S2, dan seterusnya. Keluaran proses substitusi adalah vektor B yang panjangnya 48 bit. Vektor B menjadi masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Bit-bit P(B) merupakan keluaran dari fungsi f. Akhirnya, bit-bit P(B) di-XOR-kan dengan Li – 1 untuk mendapatkan Ri. (Sulidar Fitri ; 2013 : 16). Ri = Li – 1
P(B)
Jadi, keluaran dari putaran ke-i adalah (Li, Ri) = (Ri – 1 , Li – 1 P(B)) Proses dekripsi terhadap cipherteks merupakan kebalikan dari proses enkripsi. DES menggunakan algoritma yang sama untuk proses enkripsi dan dekripsi. Keluaran pada setiap putaran deciphering adalah Li = Ri – 1
Ri = Li – 1 f(Ri – 1, Ki)
Dalam hal ini, (R16, L16) adalah blok masukan awal untuk deciphering. Blok (R16, L16) diperoleh dengan mempermutasikan cipherteks dengan matriks permutasi IP-1. Pra-keluaran dari deciphering adalah adalah (L0, R0). Dengan permutasi awal IP akan didapatkan kembali blok plainteks semula. Selama deciphering, K16 dihasilkan dari (C16, D16) dengan permutasi PC-2. Tentu saja (C16, D16) tidak dapat diperoleh langsung pada permulaan deciphering. Tetapi karena (C16, D16) = (C0, D0), maka K16 dapat dihasilkan dari (C0, D0) tanpa perlu lagi melakukan pergeseran bit. Bahwa (C0, D0) yang merupakan bit-bit dari kunci eksternal K yang diberikan pengguna pada waktu dekripsi. Selanjutnya, K15 dihasilkan dari (C15, D15) yang mana (C15, D15) diperoleh dengan menggeser C16 (yang sama dengan C0) dan D16 (yang sama dengan C0) satu bit ke kanan. Sisanya, K14 sampai K1 dihasilkan dari (C14, D14) sampai (C1, D1).
21
(Ci – 1, Di – 1) diperoleh dengan menggeser Ci dan Di dengan cara yang sama seperti sebelumnya, tetapi pergeseran kiri (left shift) diganti menjadi pergeseran kanan (right shift). (Sulidar Fitri ; 2013 : 17). 2.5.3. Tinjauan Umum DES DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit. Skema global dari algoritma DES adalah sebagai berikut 1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP). 2. Hasil permutasi awal kemudian dienciphering sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda. 3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (Invers Initial Permutation atau IP -1) menjadi blok cipherteks. Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal K. Keluaran dari fungsi f di XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. (Wahana Komputer ; 2013 : 23).
22
II.6.
Keamanan Data Keamanan data merupakan bagian dari perkembangan teknologi
informasi. Ketika berpikir bahwa data yang dimiliki merupakan data yang sangat penting, semua berusaha untuk melindunginya agar jangan sampai jatuh ke tangan orang yang tidak bertanggung jawab. Tetapi buat sebagian orang, mereka justru tidak mengetahui sepenting apakah data yang mereka miliki. Karena ketidaktahuan tersebut, mereka baru menyadari bahwa data yang mereka miliki sangat penting setelah mengalami kecurian data dan mengalami kerugian. Data di sini bisa bersifat umum tidak terbatas pada data digital saja, tetapi juga seperti data diri (ktp, ijasah, sertifikat, dan lain-lain). Data yang menyangkut informasi pribadi tidak seharusnya diumbar sembarang seperti pada blog, situs jejaring pertemanan, email, selebaran, fotokopi KTP di buang sembarangan dan lain-lain. (Andik Susilo ; 2012 : 59). Masalah keamanan merupakan salah satu aspek terpenting dari sebuah sistem informasi. Masalah keamanan sering kurang mendapat perhatian dari para perancang dan pengelola sistem informasi. Masalah keamanan sering berada di urutan setelah tampilan, atau bahkan di urutan terakhir dalam daftar hal-hal yang dianggap penting. Apabila mengganggu performansi sistem, masalah keamanan sering tidak dipedulikan, bahkan ditiadakan. (Doni Ariyus ; 2012 : 6). Informasi menentukan hampir setiap elemen dari kehidupan manusia. Informasi sangat penting artinya bagi kehidupan karena tanpa informasi maka hampir semuanya tidak dapat dilakukan dengan baik. Contohnya, jika membeli tiket penerbangan dan membayarnya dengan menggunakan kartu kredit, informasi
23
mengenai diri nantinya disimpan dan dikumpulkan serta digunakan oleh bank dan penerbangan. Demikian juga halnya saat membeli obat di apotik. Harus mendapat resep dari dokter dan memberikan resep tersebut ke pelayan apotik. Resep itu merupakan satu informasi yang disampaikan dokter ke pihak apotik tentang obat yang dibutuhkan. Kemajuan sistem informasi memberikan banyak keuntungan bagi kehidupan manusia. Meski begitu, aspek negatifnya juga banyak, seperti kejahatan komputer yang mencakup pencurian, penipuan, pemerasan, kompetisi, dan banyak lainnya. Jatuhnya informasi ke pihak lain, misalnya lawan bisnis, dapat menimbulkan kerugian bagi pemilik informasi. Sebagai contoh, banyak informasi milik perusahaan yang hanya boleh diketahui oleh orang-orang tertentu di perusahaan tersebut, seperti misalnya informasi tentang produk yang sedang dalam pengembangan. Algoritma dan teknik yang digunakan untuk menghasilkan produk tersebut. Untuk itu keamanan dari sistem informasi yang digunakan harus terjamin dalam batas tertentu. II.6.1. Macam-macam Serangan Macam-macam serangan yang terjadi banyak pertukaran informasi setiap detiknya di internet. Juga banyak terjadi pencurian atas informasi oleh pihakpihak yang tidak bertanggung jawab. Ancaman keamanan yang terjadi terhadap informasi adalah : 1) Interruption Merupakan ancaman terhadap availability informasi, data yang ada di dalam sistem komputer dirusak atau dihapus tanpa sepengetahuan
24
pemiliknya sehingga jika data atau informasi tersebut dibutuhkan maka pemiliknya akan mengalami kesulitan untuk mengaksesnya, bahkan mungkin informasi itu hilang. 2) Interception Merupakan ancaman terhadap kerahasiaan (secrecy). Informasi disadap sehingga orang yang tidak berhak dapat mengakses komputer di mana informasi tersebut disimpan. 3) Modification Merupakan ancaman terhadap integritas. Orang yang tidak berhak berhasil menyadap lalu lintas informasi yang sedang dikirim dan kemudian mengubahnya sesuai keinginan orang tersebut. 4) Fabrication Merupakan ancaman terhadap integritas. Orang yang tidak berhak berhasil meniru atau memalsukan informasi sehingga orang yang menerima informasi tersebut menyangka bahwa informasi tersebut berasal dari orang yang dikehendaki oleh si penerima informasi. (Doni Ariyus ; 2012 : 7). II.6.2. Aspek-aspek Keamanan Komputer Keamanan komputer meliputi empat aspek, antara lain : 1) Authentication Agar penerima informasi dapat memastikan keaslian pesan, bahwa pesan itu datang dari orang yang dimintai informasi.
25
2) Integrity Keaslian pesan yang dikirim melalui jaringan dan dapat dipastikan bahwa informasi yang dikirm tidak dimodifikasi oleh orang yang tidak berhak. 3) Non Repudiation Merupakan hal yang berhubungan dengan si pengirim. Pengirim tidak dapat mengelak bahwa dialah yang mengirim informasi tersebut. 4) Authority Informasi yang berada pada sistem jaringan tidak dapat dimodifikasi oleh pihak yang tidak berhak untuk mengaksesnya. 5) Confidentiality Merupakan untuk menjaga informasi dari orang yang tidak berhak mengakses. 6) Privacy Lebih ke arah data-data yang bersifat pribadi. 7) Availability Aspek availabilitas berhubungan dengan ketersediaan informasi ketika dibutuhkan. Sistem informasi yang diserang atau dijebol dapat menghambat atau meniadakan akses ke informasi 8) Access Control Aspek ini berhubungan dengan cara pengaturan akses ke informasi. Hal ini biasanya berhubungan dengan masalah otentikasi dan privasi. Kontrol akses seringkali dilakukan dengan menggunakan kombinasi user id dan password dengan mekanisme lain. (Doni Ariyus ; 2012 : 8).
26
II.6.3. Keamanan DES Keamanan DES untuk keamanan data sangat harus diperhatikan, isu-isu yang menjadi perdebatan kontroversi menyangkut keamanan DES. 1.
Panjang kunci Panjang kunci eksternal DES hanya 64 bit atau 8 karakter , itupun yang
dipakai hanya 56 bit. Pada rancangan awal, panjang kunci yang di usulkan IBM adalah 128 bit, tetapi atas permintaan NSA, panjang kunci diperkecil menjadi 56 bit. Alasan pengurangan tidak diumumkan. Serangan yang paling praktis terhadap DES adalah exhaustive key search. Dengan panjang kunci 56 bit akan terdapat 256 atau 72.057.594.037.927.936 kemungkinan kunci. Jika di asumsikan serangan exhaustive key search dengan menggunkan prosesor paraler mencoba setengah dari jumlah kemungkinan kunci itu , maka dalam satu detik dapat dikerjakan satu juta serangan. Jadi seluruhnya diperlukan 1142 tahun untuk menemukan kunci yang benar. Namun tahun, pada tahun 1998 Electronic Frontier Foundation (EFE) merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive search key dengan biaya $250.000 dan dapat diharapkan dapat menemukan kunci selama 5 hari. Tahun 1990, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari. (Febriansyah ; 2012 : 12) 2.
Jumlah Putaran Sebenarnya delapan putaran sudah cukup untuk membuat cipherteks sebagai
fungsi acak dari setiap bit plainteks dan setiap bit chiperteks. Jadi, mengapa harus 16 x putaran? Dari penelitian, DES dengan jumlah putaran yang kurang dari 16
27
ternyata dapat di pecahkan dengan known-plaintext attack bagus dari pada dengan brute force attack [SCH96]. 3.
Kotak-S Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa
memilih konstanta-konstanta di dalam kotak itu. (Febriansyah ; 2012 : 13).
II.7.
Data Data adalah sekumpulan informasi-informasi yang sangat penting dalam
masing-masing pribadi atau perusahaan, data itu sifatnya sangat rahasia karena data tersebut dalam bentuk sebuah file. Setiap pengguna komputer biasanya punya data pribadi yang disimpan di komputer atau di media penyimpanan mobile macam flashdisk. Data itu bisa terkait dengan kegiatan pribadi misalnya, imil, riwayat jelajah di internet, atau terkait dengan urusan kerja. Setiap orang tentulah punyak kriteria sendiri tentang data vital pribadinya. Bagaimana cara menyimpan dan melindungi data pribadi itu pun mungkin berbeda-beda antara satu pengguna dengan lainnya. Namun, pada umumnya para pengguna menyimpan data pribadinya itu dengan cara menempatkannya dalam folder tersendiri di partisi tertentu pada harddisk atau di flashdisk. Bahkan tak sedikit pengguna yang melatakkan data pentingnya di My Documents. Tentu saja cara penempatan file penting macam itu bisa aman-aman saja sejauh komputer atau flashdisk yang ditempati data itu digunakan sendiri, dan tak mungkin hilang. Dalam keadaan tertentu terpaksa meminjamkan komputer atau
28
flashdisk kepada orang lain. Pada kondisi macam ini, tentulah data penting berpotensi atau dilirik orang yang dipinjami. (Bambang P Putranto ; 2012 : 1).
II.8.
Pemodelan Pemodelan UML perangkat lunak bekerja dengan cara yang cukup serupa
layaknya seorang arsitek atau insinyur teknik sipil yang akan membuat sebuah bangunan / gedung berskala besar. Saat seorang arsitek atau insinyur teknik sipil akan membuat sebuah bangunan / gedung berskala besar, ia biasanya membuat denah-denah yang menggambarkan bentuk jadi dari bangunan / gedung. Sebagai seorang perancang sistem perangkat lunak juga bertindak dengan cara yang serupa, hanya saja yang kita rancang bukan bangunan, melainkan sistem perangkat lunak. Menggambarkan komponen-komponen sistem perangakat lunak dalam bentuk-bentuk geometri tertentu misalnya untuk menggambarkan suatu kelas (class) dalam aplikasi, menggunakan antarkelas (asosiasi), menggunakan garis lurus (Adi Nugroho ; 2012 : 6).
II.8.1. Diagram Use Case Dalam konteks UML, tahap konseptualisasi dilakukan dengan pembuatan use case diagram yang sesungguhnya merupakan deskripsi peringkat tinggi bagaimana perangkat lunak (aplikasi) akan digunakan oleh penggunanya. Selanjutnya, use case diagram tidak hanya sangat penting pada tahap analisis, tetapi juga sangat penting untuk perancangan (design), untuk mencari (mencoba menemukan) kelas-kelas yang terlibat dalam aplikasi, dan untuk melakukan pengujian (testing) (Adi Nugroho; 2012 : 7).
29
Dengan menggunakan use case diagram, kita akan mendapatkan banyak informasi yang sangat penting yang berkaitan dengan aturan-aturan bisnis yang coba kita tangkap. Dalam hal ini, setiap objek yang berinteraksi dengan sistem perangkat lunak misalnya, orang, suatu perangkat keras, sistem lain, dan sebagainya merupakan actor untuk sistem perangkat lunak, sementara use case merupakan deskripsi lengkap tentang bagaimana sistem perangkat lunak berperilaku untuk para actornya. Dengan demikian, use case diagram merupakan deskripsi lengkap tentang interaksi yang terjadi antara para actor dengan sistem perangkat lunak yang sedang kita kembangkan. Untuk lebih jelas dapat dilihat pada gambar II.4.
Gambar II.4. Diagram Use Case (Sumber : Adi Nugroho ; 2012 : 8) Actor pada dasarnya ditentukan berdasarkan perannya (role) pada program atau aplikasi yang sedang kita kembangkan, bukan sebagai objek-objek secara mandiri. Sebagai contoh, jika mengambil kasus ATM (Anjungan Tunai Mandiri), seseorang (objek tunggal) mungkin bisa dikelompokkan sebagai actor karyawan
30
bank serta nasabah jika oarng tersebut merupakan karyawan bank yang bersangkutan sekaligus sebagai nasabah karena memiliki tabungan di bank tersebut. Sementara itu beberapa orang lainnya dapat dikelompokkan menjadi actor nasabah jika mereka semua masing-masing memiliki tabungan di bank tersebut. II.8.2. Diagram Activity Activity diagram menggambarkan urutan aktifitas yang digunakan untuk menjelaskan aktifitas dari sebuah operasi. Pada activity diagram terdapat keadaan aksi yang berisi spesifikasi dari aktifitas tertentu. Diagram ini berisi, pilihan keputusan dan kondisi serta spesifikasi message yang dikirim atau diterima sebagai gambaran dari aksi.
Gambar II.5. Diagram Activity (Sumber : library.upnvj.ac.id ; 2011)
II.8.3. Sequence Diagram interaksi yang menekankan pada waktu pengiriman message. Sequence diagram menunjukkan sekumpulan objek dan pengiriman serta penerimaan message antar objek. Objek yang umumnya memiliki nama atau instansiasi dari class, tapi dapat pula merupakan turunan dari things lain, seperti
31
collaboration,
component
dan
node.
Diagram
ini
digunakan
untuk
mengilustrasikan dynamic view dari sistem. II.8.4. State Sebuah state diagram menggambarkan keadaan mesin, transisi, event dan activity. Diagram ini adalah pelengkap khusus untuk mendeskripsikan sebuah class yang menggambarkan state dari objek dari class dan event yang menyebabkan state berubah. Event tersebut dapat berasal dari objek yang mengirimkan suatu message atau dari kondisi yang terpenuhi.
II.9.
Java Dari diperkenalkan pertama kali pada tahun 1995, lalu Java JDK 1.1 dirilis
awal tahun 1996, hingga sekarang yang terbaru adalah J2SE 1.7, Java terus berkembang dengan pesat. Demikian juga untuk edisi yang lain, J2EE dan J2ME. Sebelum belajar lebih dalam tentang java, harus menginstal java pada komputer. Perlu diperhatikan sebelum instalasi adalah spesifikasi komputer yang dimiliki. Jika komputer spesifikasinya modern, dapat menginstal Java versi yang tinggi, seperti J2SE 1.7, tetapi jika spesifikasinya rendah, lebih baik versi Java-nya rendah, seperti J2SE 1.4. Sebagai contoh, pada bab ini penulis menggunakan versi J2SE 1.6 dan instalasinya langsung pada file J2SE. Untuk instalasi lewat perangkat lunak JCreator. (Yuniar Supardi ; 2012 : 10).