BAB 2 TINJAUAN PUSTAKA 2.1 Keamanan Data Keamanan merupakan salah satu aspek yang sangat penting dari sebuah sistem informasi. Masalah keamanan sering kurang mendapat perhatian dari para perancang dan pengelola sistem informasi. Masalah keamanan sering berada diurutan setelah tampilan, atau bahkan diurutan terakhir dalam daftar hal-hal yang dianggap penting (Wahana, 2003). Keamanan adalah keadaan bebas dari bahaya. Istilah ini dapat digunakan dengan hubungan kepada kejahatan, dan segala bentuk kecelakaan. Keamanan merupakan topik yang luas termasuk keamanan nasional terhadap serangan teroris, keamanan komputer terhadap hacker, keamanan rumah terhadap maling dan penyelusup lainnya, keamanan finansial terhadap kehancuran ekonomi dan banyak situasi berhubungan lainnya. Host / komputer yang terhubung ke network, mempunyai ancaman keamanan lebih besar dari pada host yang tidak terhubung kemana-mana. Dengan mengendalikan network security, risiko tersebut dapat dikurangi. Keamanan data tidak hanya bergantung dari keamanan storage dimana data tersebut berada, melainkan proses transfer data dari suatu media ke media lainnya. Banyak orang yang tidak menyadari ketika mereka melakukan pengiriman data, ada peluang untuk mencuri atau mengubah informasi dari data yang akan dikirim tersebut, sehingga data tersebut tidak asli lagi. Oleh sebab itu, keamanan dalam pengiriman data juga menjadi hal sangat vital apalagi jika di dalamnya terdapat informasi yang sifatnya sangat penting dan rahasia (Ariyus, 2009).
2.2 Kriptografi Kriptografi merupakan salah satu ilmu pengkodean pesan yang digunakan untuk meningkatkan keamanan dalam pengiriman pesan atau komunikasi data. Kriptografi saat ini telah menjadi salah satu syarat penting dalam keamanan teknologi informasi dalam pengiriman pesan penting dan rahasia. Pengiriman pesan penting dan rahasia sangat rentan terhadap serangan yang dilakukan oleh pihak ketiga, seperti penyadapan, pemutusan komunikasi, pengubahan pesan yang dikirim, dan hal-hal yang merugikan lainnya (Anggraini, 2012). 2.2.1 Pengertian Kriptografi Kriptografi berasal dari dua kata dalam bahasa Yunani, yaitu cryptós yang berarti rahasia, dan gráphein yang berarti tulisan. Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain. Secara umum, istilah yang sering digunakan di dalam kriptografi adalah (Munir, 2006): 1. Pesan Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Pesan sering juga disebut plainteks (plaintext) atau pesan jelas (cleartext). Plainteks merupakan suatu pesan bermakna yang akan diproses menggunakan algoritma kriptografi. 2. Cipherteks Cipherteks (ciphertext) atau disebut juga kriptogram (cryptogram) merupakan pesan yang telah tersandi. Pesan dalam bentuk cipherteks tidak dapat dibaca karena berisi karakter-karakter yang tidak memiliki makna setelah melalui proses enkripsi. 3. Enkripsi Enkripsi merupakan proses menyandikan plainteks menjadi cipherteks atau disebut sebagai enchipering. Enkripsi dilakukan dengan tujuan agar plainteks tersebut tidak dapat dibaca oleh pihak yang tidak berwenang.
4. Dekripsi Dekripsi merupakan proses mengembalikan cipherteks menjadi plainteks semula atau disebut deciphering. Dekripsi dilakukan ketika pesan telah sampai kepada pihak yang dituju. 5. Kunci Kunci adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi. Kunci biasanya berupa string atau deretan bilangan. Keamanan suatu algoritma kriptografi biasanya bergantung kepada kerahasiaan penyebaran kunci. 6. Kriptosistem Kriptosistem (Cryptosystem) adalah perangkat keras atau implementasi perangkat lunak kriptografi yang diperlukan dalam mentransformasi sebuah pesan asli menjadi ciphertext dan juga sebaliknya. 2.2.2 Tujuan Kriptografi Kriptografi bertujuan untuk memberi layanan keamanan sebagai berikut (Munir, 2006): 1. Confidentiality Confidentiality merupakan tujuan sistem kriptografi dalam memberikan kerahasiaan pesan dan menyimpan data dengan menyembunyikan informasi lewat teknik-teknik enkripsi. 2. Data Integrity Data integrity merupakan tujuan sistem kriptografi dalam memberikan jaminan bahwa pesan tidak akan mengalami perubahan selama proses pengiriman. Integritas data merupakan layanan yang bertujuan untuk mencegah terjadinya pengubahan informasi oleh pihak-pihak yang tidak berwenang. 3. Non-repudiation Non-repudiation merupakan tujuan sistem kriptografi dalam memberikan cara untuk membuktikan bahwa suatu dokumen datang dari seseorang apabila ia mencoba menyangkal memiliki dokumen tersebut. Non-repudiation adalah layanan yang berfungsi untuk mencegah terjadinya penyangkalan terhadap suatu aksi yang dilakukan oleh pelaku sistem informasi.
4. Authentication Authentication merupakan tujuan sistem kriptografi dalam mengidentifikasikan keaslian suatu pesan dan memberikan jaminan keotentikannya, dan menguji identitas seseorang apabila ia akan memasuki sebuah sistem. Penerima pesan dapat memastikan keaslian pengirimnya. 2.2.3 Jenis Kriptografi Menurut (Munir, 2006) terdapat dua jenis algoritma kriptografi berdasarkan jenis kunci yang digunakan, yaitu : 1. Algoritma Kriptografi Simetri (Konvensional) 2. Algoritma Kriptografi Asimetri (Kunci Publik) 1. Kriptografi Simetri Konsep dasar dari kriptografi kunci simetri adalah kunci yang digunakan untuk enkripsi merupakan kunci yang sama dengan kunci untuk dekripsi. Istilah lain untuk kriptografi kunci simetri adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography). Proses enkripsi dan dekripsi pada kriptografi simetri dapat dilihat pada gambar 2.1. Kunci Kunci Plaintext Algoritma Enkripsi Ciphertext Algoritma Dekripsi Plaintext Gambar 2.1 Proses Enkripsi dan Dekripsi Kriptografi Simetri Contoh algoritma kunci simetris yang terkenal adalah DES (Data Encryption Standard) dan RC-4. Dua kategori yang termasuk pada algoritma simetris ini adalah algoritma block cipher dan stream cipher.
a. Block Cipher Algoritma block cipher adalah algoritma yang masukan dan keluarannya berupa satu block, dan setiap blocknya terdiri dari banyak bit. Beberapa mode operasi enkripsi block cipher: 1. Data Enkripsi Standard ( DES ) 2. AES ( Advanced Encrytion Standard ) 3. Blowfish b. Stream Cipher Stream cipher ( Cipher aliran ) adalah cipher yang berasal dari hasil XOR antara bit plaintext dengan setiap bit kuncinya. Stream cipher sangat rawan terhadap attack pembalikan bit. Beberapa model algoritma stream cipher antara lain : 1. One Time Pad ( OTP ) 2. Rivest Code 4 (RC 4) Kelebihan kriptografi simetri adalah: a. Proses enkripsi dan dekripsi kriptografi simetri membutuhkan waktu yang singkat. b. Ukuran kunci simetri relatif pendek. c. Otentikasi pengiriman pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh penerima dan pengirim saja. Kekurangan kriptografi simetri adalah: a. Kunci simetri harus dikirim melalui saluran komunikasi yang aman dan kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci. b. Kunci harus sering diubah, setiap kali melaksanakan komunikasi. 2. Kriptografi Asimetri Berbeda dengan kriptografi kunci simetri, kriptografi kunci publik memiliki dua buah kunci yang berbeda pada proses enkripsi dan dekripsinya. Nama lain dari kunci asimetri ini adalah kriptografi kunci publik (public-key cryptography).
Pengirim akan mengenkripsi pesan dengan menggunakan kunci publik, sedangkan penerima mendekripsikan pesan menggunakan kunci privat. Algoritma yang memakai kunci publik diantaranya adalah: a. Digital Signature Algorithm (DSA). b. RSA c. Diffie-Hellman ( DH ) 2.2. Proses enkripsi dan dekripsi pada kriptografi asimetri dapat dlihat pada gambar Kunci Publik Kunci Privat Plaintext Algoritma Enkripsi Ciphertext Algoritma Dekripsi Plaintext Gambar 2.2 Proses Enkripsi dan Dekripsi Kriptografi Asimetri Kelebihan kriptografi asimetri adalah: a. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi. b. Pasangan kunci privat dan kunci publik tidak perlu diubah dalam jangka waktu yang sangat lama. c. Dapat digunakan dalam pengamanan pengiriman kunci simetri. d. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan. Kelemahan kriptografi asimetri adalah: a. Proses enkripsi dan dekripsi umumnya lebih lambat dari algoritma simetri, karena menggunakan bilangan yang besar dan operasi bilangan yang besar. b. Ukuran cipherteks lebih besar dari pada plainteks. c. Ukuran kunci relatif lebih besar dari pada ukuran kunci simetri.
2.3 Three Pass Protocol Dalam kriptografi, three pass protocol merupakan protokol yang memungkinkan satu pihak bisa dengan aman mengirim pesan ke pihak kedua tanpa perlu bertukar atau mendistribusikan kunci enkripsi. Protokol ini pertama kali dikembangkan oleh Adi Shamir, seorang ahli kriptografi berkebangsaan Israel pada tahun 1980. Protokol yang dikembangkannya dikenal dengan nama Shamir No-Key Exchange Protocol. Protokol ini kemudian dimodifikasi oleh James Massey dan Jim K. Omura yang disebut sebagai algoritma Massey-Omura (keduanya adalah pakar teori informasi berkebangsaan Amerika Serikat) pada tahun 1982. Konsep dasar three pass protocol adalah bahwa setiap pihak memiliki kunci pribadi dan kedua pihak menggunakan kunci masing-masing secara mandiri (Degraf, et al. 2007). Three pass protocol bekerja sebagai berikut : a. Pengirim memilih kunci enkripsi ea. Pengirim mengenkripsi pesan m dengan kunci dan mengirimkan pesan terenkripsi ke penerima. b. Penerima memilih kunci enkripsi eb. Penerima mengenkripsi pesan C 1 (ea,m) dengan kunci dan mengirim pesan terenkripsi C 2 (eb, C 1 (ea,m)) ke pengirim. c. Pengirim mendekripsi pesan C 2 (eb, C 1 (ea,m)) dengan menggunakan da dan mengirim lagi pesan C 3 (eb,m) yang mana pesan ini dienkripsi oleh kunci penerima. Pengirim mengirim pesan tersebut ke penerima. Dan kemudian penerima mendekripsi pesan tersebut dengan db untuk bisa menghasilkan. Skema dari proses Three Pass Protocol dapat dilihat pada gambar 2.3. C 1 (ea,m) C 2 (eb, C 1 (ea,m)) C 3 (eb,m) m Gambar 2.3 Skema Three Pass Protocol (Isman, 2012)
2.4 Algoritma Massey-Omura Algoritma Massey-Omura adalah algoritma kriptografi modern yang menggunakan sistem kriptografi asimetri (kunci privat). Algoritma Massey-Omura diusulkan oleh James Massey dan Jim K. Omura pada tahun 1982 ini, melakukan pemfaktoran bilangan yang sangat besar untuk mendapatkan kunci privat. Oleh karena alasan tersebut, Massey-Omura dianggap aman. Selain itu, Massey-Omura adalah salah satu algoritma yang pengimplementasiannya menggunakan three pass protocol (Winton, 2007). Secara umum, besaran yang digunakan dalam algoritma Massey-Omura adalah: 1. p adalah bilangan prima (tidak rahasia) 2. ea, eb (kunci enkripsi) (rahasia) 3. da ea 1 (mod p 1) (kunci dekripsi sender) (rahasia) 4. db eb 1 (mod p 1) (kunci dekripsi receiver) (rahasia) 5. m (plainteks) (rahasia) 6. C 1, C 2, C 3 (cipherteks) (tidak rahasia) Berikut adalah proses enkripsi dekripsi dengan menggunakan algoritma Massey-Omura (Winton, 2007) : 1. Bilangan prima yang diambil harus lebih besar dari plainteks ( p > m). 2. Ambil ea : 2 < ea < p 1 GCD ( ea, p-1 ) = 1 3. Hitung da ea -1 (mod p-1) 4. Hitung C 1 = m ea mod p 5. Kirim C 1 ke penerima 6. Penerima menerima C 1 7. Ambil eb : 2 < eb < p-1 GCD (eb, p-1) = 1 8. Hitung db eb -1 (mod p-1)
9. Hitung C 2 = C eb 1 mod p 10. Kirim C 2 ke pengirim 11. Pengirim menerima C 2 12. Hitung C 3 = C da 2 mod p 13. Kirim C 3 ke penerima 14. Penerima menerima C3 15. Hitung m = C db 3 mod p Sebagai contoh, A ingin mengirimkan pesan USU kepada B dengan p = 101. A menggunakan ea = 89 dan B menggunakan eb = 67. Dengan begitu, maka proses yang akan terjadi adalah sbb : A : U (85) S (83) U (85) Kunci enkripsi (ea) : 89 89 89 Kunci dekripsi (da) : 9 9 9 C 1 : 64(@) 89(Y) 64(@), dikirim ke B B : @ (64) Y (89) @ (64) Kunci enkripsi (eb) : 67 67 67 Kunci dekripsi (db) : 3 3 3 C 2 : 4(EOT) 27(ESC) 4(EOT), dikirim ke A A : EOT (4) ESC (27) EOT (4) Kunci enkripsi (ea) : 89 89 89 Kunci dekripsi (da) : 9 9 9 C 3 : 49(1) 90(Z) 49(1), dikirim ke B B : 1 (49) Z (90) 1 (49) Kunci enkripsi (eb) : 67 67 67 Kunci dekripsi (db) : 3 3 3 C 4 : 85(U) 83(S) 85(U)
2.5 Lehmann Prime Generator Pada algoritma Massey-Omura, penentuan bilangan prima menjadi faktor penting untuk proses enkripsi dan dekripsi. Bilangan prima yang digunakan juga bisa lebih dari dua atau tiga digit. Penulis menggunakan algoritma Lehmann sebagai pembangkit bilangan prima karena apabila bilangan prima p bernilai 1 atau -1 berpeluang prima sebesar 50% yang apabila langkah ini diulang dan lolos sebanyak t kali maka akan menghasilkan sebuah bilangan prima p yang mempunyai kesalahan tidak lebih dari 1/2 t (Mahmudi, 2010). Ada beberapa syarat untuk membangkitkan bilangan prima dengan menggunakan Lehmann Prime Generator, antara lain : a. ambil a secara acak sehingga 1 < a < p 1. b. Hitung L = a ap 1 2 (mod p). p c. Bila L 1 (mod p) dan L -1 (mod p) maka pasti p bukan bilangan prima. d. Bila L 1 (mod p) atau L -1 (mod p) maka kemungkinan besar ( > 50 %) p adalah prima. e. Bila syarat d telah terpenuhi maka dilakukan pengujian ulang sebanyak digit bilangan prima yang diambil. Jika pada pengujian terakhir L 1 (mod p) atau L -1 (mod p), makan bilangan tersebut pasti prima. Contoh 1 : penulis ingin mengetahui apakah 15 adalah bilangan prima a = 2 L 2 15 1 2 2 7 128 (mod 15) 8 Maka, sesuai ketentuan di atas dapat ditarik kesimpulan bahwa 15 bukan bilangan prima
Contoh 2 : penulis ingin mengetahui apakah 11 adalah bilangan prima a = 3 L 3 11 1 2 3 5 243 (mod 11) 1 Karena jumlah digit bilangan yang diambil ada dua. Maka dilakukan pengujian sebanyak dua kali. a = 2 L 2 11 1 2 2 5 32 (mod 11) -1 Setelah dilakukan pengujian sebanyak dua kali dan dihasilkan nilai 1 dan -1. Maka, sesuai ketentuan di atas dapat ditarik kesimpulan bahwa 11 adalah bilangan prima. Contoh 3 : penulis ingin membuktikan apakah 101 adalah bilangan prima a = 2 L 2 101 1 2 2 50 1125899906842624 (mod 101) -1 a = 3 L 3 101 1 2 3 50 717897987691852588770249 (mod 101) -1 a = 4 L 4 101 1 2 4 50 1267650600228229401496703205376 (mod 101) 1
Setelah dilakukan pengujian sebanyak tiga kali sesuai dengan jumlah digit pada bilangan tersebut dan dihasilkan nilai -1, -1 dan 1. Maka, sesuai ketentuan di atas dapat ditarik kesimpulan bahwa 101 adalah bilangan prima. 2.6 Mozilla Thunderbird dan Add On pada Mozilla Thunderbird Mozilla thunderbird merupakan salah satu produk Mozilla Foundation, yang pertama kali dirilis pada tanggal 7 Desember 2004. Perangkat ini merupakan aplikasi mail client atau (MUA - Mail User Agent) yang bersifat free, open source dan multiplatform. Perangkat ini dikembangkan dengan menggunakan bahasa pemrograman C++, XUL, Javascript dan CSS. Tampilan Mozilla Thunderbird dapat dilihat pada gambar 2.4. Gambar 2.4 Tampilan Mozilla Thunderbird Seperti perangkat lunak produk Mozilla Foundation lainnya perangkat ini juga dapat ditingkatkan kemampuannya melalui perangkat tambahan (extension) atau dikenal juga dengan istilah add on. Add on dapat dirancang dan dikembangkan siapa saja yang memiliki kemampuan menggunakan bahasa pemrograman umum seperti
javascript dan untuk mengmbangkan user interface dapat digunakan XUL (XML- User Interface Language)dan CSS.