BAB II TINJAUAN PUSTAKA
II.1. Kriptografi Untuk dapat mengenal kriptografi diperlukan pemahaman mengenai masalah yang berhubungan dengan keamanan informasi secara umum. Keamanan informasi membangun dirinya sendiri dalam berbagai cara sesuai dengan situasi dan kebutuhan. Kata kriptografi berasal dari bahasa yunani, “krypto” yang berarti rahasia dan “graphia” yang berarti tulisan. Sehingga kata kriptografi dapat diartikan berupa frase “tulisan rahasia”. Menurut teminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ketempat yang lain. (Ariyus, 2006, Hal : 9) Selain definisi di atas, Simarmata mengemukakan pendapatnya tentang defenisi kriptografi yaitu : ilmu yang mempelajari penulisan secara rahasia. Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut Cryptology.
Kriptografi
bertujuan
menjaga
kerahasiaan
informasi
yang
terkandung dalam data sehingga informasi tersebut tidak dapat diketahui oleh pihak-pihak yang tidak sah. (Simarmata, Hal : 199)
6
7
II.1.1. Sejarah Kriptografi Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan 4000 tahun yang lalu dan diperkenalkan oleh bangsa mesir untuk mengirim pesan ke pasukan militer yang berada di lapangan. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari pihak yang tidak diinginkan. Hieroglyphcs diturunkan dari bahasa Yunani hieroglyphca yang berarti “ukiran rahasia”. Hieroglyphcs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan. Dengan demikian, pesan tersebut tidak dapat terbaca oleh musuh walaupun kurir pembawa pesan tersebut tertangkap oleh musuh. Demikanlah hingga pengguna kriptografi pada abad ke-20. Sejarah kripotgrafi sebagian besar merupakan sejarah kriptografi klasik, yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana. Secara umum algoritma kriptografi klasik dikelompokkan menjadi dua kategori, yaitu algoritma transposisi (transposition chiper) dan algoritma substitusi (substitusion chiper). Transposition chiper mengubah susunan huruf-huruf di dalam pesan, sedangkan substitusion cipher mengganti huruf atau kelompok huruf dengan huruf atau kelompok huruf lain. Sejarah kriptografi klasik mencatat penggunaan cipher transposisi oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan alat yang namanya scytale. Scytale terdiri dari sebuah kertas panjang dan daun papyrus yang dililitkan pada sebuah silinder dari diameter tertentu (diameter silender menyatakan kunci penyandiaan). Pesan ditulis secara horizontal, baris per baris, bila pita dilepaskan, maka huruf-huruf didalamnya akan tersusun secara
8
acak membentuk pesan rahasia. Untuk membaca pesan, penerima pesan harus melilitkan kembali kertas ke silinder yang diameternya sama dengan diameter silinder pengirim, sedangkan algoritma substitusi paling awal dan paling sederhana adalah Caesar cipher, yang digunakan oleh para raja Yunani kuno, Julius Caesar. Caranya adalah dengan mengganti setiap karakter didalam alfabet dengan karakter yang terletak pada tiga posisi berikutnya didalam susunan alfabet. Pada perang dunia kedua, Jerman menggunakan Enigma atau disebut juga dengan mesin rotor yang digunakan Hitler untuk mengirim pesan kepada tentaranya. Jerman percaya bahwa pesan yang dikirim melalui Enigma tidak terpecahkan kode-kode enkripsinya. Akan tetapi, anggapan tersebut keliru. Ternyata setelah bertahun-tahun, sekutu dapat memecahkan kode-kode tersebut setelah mempelajarinya. Setelah Jerman mengetahui kode-kode tersebut dapat terpecahkan, Enigma yang digunakan dalam perang dunia kedua beberapa kali mengalami perubahan. Demikianlah, karena Enigma berhasil terpecahkan oleh sekutu dan keberhasilan Enigma sering dikatakan sebagai faktor yang memperpendek perang dunia kedua (Ariyus, 2006, Hal : 9 - 10).
9
Gambar II.1 Mesin Enigma Sumber : Ariyus, Dony. 2006. Kriptografi : Keamanan Data Dan Komunikasi. Yogyakarta: penerbit Andi Yogyakarta. II.1.2. Tujuan Kriptografi Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi, yaitu : 1. Privacy yaitu Ketika sebuah pesan atau informasi dirasa sensitif atau nilai dari informasi itu menjadi tinggi maka informasi tersebut sifatnya rahasia dan perlu mendapatkan perlindungan. Apalagi kalau informasi tersebut merupakan hak akses seseorang yang tidak sembarangan orang bisa menyentuhnya. Kondisi semacam ini akan terasa sangat penting, apalagi media komunikasi yang dipakai adalah internet. (Wahana, 2003, Hal : 33)
10
2. Integritas data, diperlukan untuk menjamin bahwa data yang dikirim harus benar-benar data asli yang dikirim oleh orang atau user yang benar-benar mengirimkannya pula. Selain itu, integritas harus dapat memberikan jaminan untuk tiap bagian bahwa pesan tidak akan mengalami perubahan dari saat ia dibuat samapi saat ia dibuka. Adapun metode yang dipakai untuk menjaga data yang dikirim utuh dan asli seperti apa adanya, maka banyak orang menggunakan model enkripsi. (Wahana, 2003, Hal : 35) 3. Autentikasi, yaitu salah satu isu terkait dengan kerahasian dan keamanan data adalah authenticity (keaslian). Isu ini sangat mendasar, untuk membuktikan asli atau tidaknya dokumen atau pesan yang dipakai oleh sekelompok orang dam bertransaksi. Pembuktian sebuah dokumen atau data ini asli atau tidak, juga, merupakan dasar untuk pelayanan keamanan untuk kepentingan yang lain juga. (Wahana, 2003, Hal : 36) 4. Non-repudiasi yaitu dalam suatu jaringan, baik itu jaringan komputer maupun internet seseorang yang bertindak sebagai user harus bisa memberikan laporan atau fakta-fakta mengenai penggunaan layanan yang dipakai sehingga dia tidak bisa menyangkal fakta bahwa dia telah benar-benar menggunakan atau melakukan akses terhadap jaringan. (Wahana, 2003, Hal : 40)
11
II.1.3. Konsep Dasar Kriptografi II.1.3.1. Message, Plaintext, dan Ciphertext Message adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain dari pesan adalah plaintext yang berarti data asli yang bisa memberikan informasi bila dibaca/dianalisa (cleartext). Ciphertext adalah data yang sudah mengalami proses kriptografi, sehingga informasi yang terkandung di dalamnya bisa disembunyikan. Ciphertext inilah yang kemudian akan dikirimkan melalui jaringan. Encrypt adalah proses untuk mengubah plaintext menjadi ciphertext. Decrypt adalah proses untuk mengubah ciphertext menjadi plaintext kembali. Adapun tujuan dari adanya enkripsi adalah untuk meningkatkan keamanan data tetapi juga berfungsi untuk : 1. Melindungi data agar tidak dapat dibaca oleh orang-orang yang tidak berhak. 2. Mencegah agar orang-orang yang tidak berhak, menyisipkan atau menghapus data.
II.1.3.2. Peserta Komunikasi 1. Entitas atau peserta adalah orang atau sesuatu yang mengirim, menerima, atau memanipulasi informasi. Entitas bisa berupa orang, terminal komputer, kartu kredit, dan sebagainya. Jadi, orang bisa bertukar pesan dengan orang lainnya (contoh : Ani berkomunikasi dengan Deni) sedangkan didalam komputer jaringan mesin (komputer) berkomunikasi dengan mesin (contoh : mesin ATM berkomunikasi dengan komputer server di bank).
12
2. Pengirim adalah entitas dalam komunikasi yang mengirimkan informasi kepada entitas lainnya. 3. Penerima adalah entitas dalam komunikasi yang diharapkan menerima informasi. 4. Penyusup (adversary) adalah entitas diluar pengirim dan penerima yang mencoba untuk membobol keamanan informasi. Penyusup biasanya bertindak seolah-olah sebagai pengirim yang sah ataupun penerima yang sah.
II.1.3.3. Algoritma Kriptografi Berdasarkan kunci yang dipakai algoritma kriptografi dapat dibedakan menjadi 2 golongan yaitu algoritma kriptografi simetri dan asimetri. 1. Algoritma Simetri Algoritma kriptografi simetri maksudnya adalah proses enkripsi dan dekripsi dilakukan dengan 1 key yang sama. Istilah lain untuk kriptografi kunci-simetri 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. Jadi, pembuat pesan dan penerima pesan harus mempunyai kunci yang sama persis, sehingga siapapun yang memiliki kunci tersebut termasuk pihak-pihak yang tidak diinginkan dapat membuat dan membongkar rahasia ciphertext.
13
Algoritma kriptografi simetri dibagi menjadi 2 kategori yaitu algoritma aliran (Stream Ciphers) dan algoritma algoritma blok (Block Cipher). Pada algoritma aliran, proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedang pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per blok). Kelebihan kriptografi simetri : 1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat. 2. Ukuran kunci simetri relatif pendek. 3. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak. 4. Algoritma kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat. 5. Otentikasi pengirim pesan langsung diketahui dari ciphertext yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja. Kekurangan kriptografi simetri : 1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini. 2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.
2. Algoritma Asimetri Pada kriptografi asimetri masing-masing pihak yang berkepentingan memiliki 2 key. Secret / privacy key (SK) dan public key (PK). Nama lainnya
14
adalah kriptografi kunci-publik (public-key cryptography). SK harus tetap disimpan dan dijaga kerahasiaannya dengan tidak pernah mengirimkannya melalui jalur pengiriman data. Sedangka PK turut dikirimkan ke pihak penerima data. Perpaduan anatar a SK dan PK inilah yang akan dipakai pada proses enkripsi dan dekripsi. Keuntungan dari algoritma ini ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat sebagaiman pada sistem kriptografi simetri. Kunci public 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 secara rahasia dengan banyak orang tidak perlu kunic rahasia sebanyak jumlah orang tersebut, cukup membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk mengenkripsikan pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan kriptografi kunci-simetri dimana jumlah kunci yang dibuat adalah sebanya jumlah pihak yang diajak korespondensi. Kelebihan kriptografi kunci-publik (asimetri) : 1. Hanya kunci privat yang harus dijaga kerahasiannya oleh setiap entitas yang berkomunikasi (tetapi, otentikasi kunci-publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada system simetri. 2. Pasangan kunci publik/privat tidak perlu diubah, bahkan dalam periode waktu yang panjang. 3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.
15
4. Beberapa kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan. Kekurangan kriptografi kunci-publik (asimetri) : 1. Enkripsi dan dekripsi data umumnya lebih lambat daripada system simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar. 2. Ukuran ciphertext lebih besar dari pada plaintext (bisa dua sampai empat kali ukuran plaintext). 3. Ukuran kunci lebih besar daripada ukuran kunci simetri. 4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka ciphertext tidak memberikan informasi mengenai otentikasi pengirim pesan. 5. Tidak ada algoritma kunci publik yang terbukti aman.
II.2. Kriptanalisis Asumsi umum yang biasa dibuat kriptanalisis adalah kebalikan dari system kripto yang dipakai. Hal ini biasa merujuk pada metode kerckhoff/kasisiki. Tujuan mendesain system kripto adalah untuk mendapatkan keamanan berdasarkan prinsip kriptografi. Hal yang dilakukan : Pertama, membedakan antar level-level penyerangan pada system kripto. Secara umum para kriptanalisis mencoba untuk menebus kerahasiaan dari suatu kode. Mereka mencoba membangun algoritma untuk memecahkan kode dari teks-kode. Secara sederhana, penyerangan tidaklah
16
sama dengan algoritma. Serangan merupakan kegiatan yang dilakukan untuk membuat kode-kode yang bisa dipecahkan. (Ariyus, 2008 Hal : 314)
II.3. Tiny Encryption Algorithm (TEA). Tiny Encryption Algorithm (TEA) merupakan suatu algoritma sandi yang diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994. Sistem penyandian Tiny Encryption Algorithm (TEA) menggunakan proses feistel network dengan menambahkan fungsi matematik berupa penambahan dan pengurangan sebagai operator pembalik selain XOR. Hal ini dimaksud untuk menciptakan sifat nonlinearitas. Pergeseran dua arah (ke kiri dan ke kanan) menyebabkan semua bit kunci dan data bercampur secara berulang-ulang. Tiny Encryption Algorithm (TEA) memproses 64-bit input sekali waktu dan menghasilkan 64-bit output. Tiny Encryption Algorithm (TEA) menyimpan 64-bit input kedalam L0 dan R0 masing-masing 32-bit. Sedangkan 128-bit disimpan kedalam k[0], k[1], k[2], dan k[3] yang masing-masing berisi 32-bit. Diharapkan teknik ini cukup dapat mencegah penggunaan teknik exshautive search secara efektif. Hasilnya outputnya akan disimpan dalam L16 dan R16 (D. Wheeler dan Roger Nedham, 1994).
17
Adapun beberapa keunggulan dari Tiny Encryption Algorithm (TEA) ini adalah : a. Pada Tiny Encryption Algorithm (TEA) panjang kuncinya yaitu 128-bit, merupakan jumlah kunci yang cukup panjang untuk algoritma kriptografi modern saat ini yang dapat menahan serangan kriptanalis. b. Teknik yang digunakan TEA cukup baik, yaitu pada setiap prosesnya menggunakan feistel yang memuat operasi permutasi, substitusi dan modular arithmatic berupa XOR dan penambahan bialangan deltayang diharapkan dari operasi tersebut menciptakan efek difusi dan konfusi yang baik, karena semakin baik efek difusi dan konfusi yang dihasilkan maka semakin baik pula tingkat keamanannya. c. Ukuran tingkat blok input TEA yaitu 64-bit, sebuah jumlah yang cukup panjang untuk menghindari analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat. d. Tidak membutuhkan S-Box dan P-Box dalam proses enkripsi dan deskripsinya. Karena S-Box dan P-Box tidak dijamin keamanannya dikarenakan struktur dari S-Box dan P-Box tersebut hanya diketahui oleh NSA (National Security Agency) dan diubah menurut saran dari NSA. e. Algoritma TEA diketahui sangat kuat terhadap metode penyerangan berupa hanya ciphertext yang diketahui, plaintext yang diketahui dan plaintext yang terpilih. Sedangkan kekurangan dari algoritma Tiny Encryption Algorithm (TEA) ini adalah karena TEA ini masuk kedalam kelompok Algoritma Simetri, maka masih
18
rentan untuk dibobol, karena dalam algoritma simetri masalah utama terletak dari segi pendistribusian kuncinya, dimana harus benar-benar aman pada saat mendistribusikan kunci yang akan digunakan.
II.4. Microsoft Visual Basic .Net Microsoft Visual Basic .Net adalah salah satu bahasa pemrograman komputer tingkat tinggi. Bahasa pemrograman adalah perintah-perintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu, bahasa pemrograman VB.NET dikembangkan oleh Microsoft, merupakan salah satu bahasa pemrograman yang Object Oriented Program(OOP) atau pemrograman yang berorientasi pada object. Kata “Visual” menunjukkan cara yang digunakan untuk membuat Graphical User Interface(GUI). Dengan cara ini, kita tidak perlu lagi menuliskan instruksi pemrograman dalam kode-kode baris hanya untuk membuat sebuah Desaign Form/Aplikasi. Tetapi dengan sangat mudah yakni kita cukup melakukan Drag and drop object-object yang akan kita gunakan. VB.Net dapat kita jadikan alat bantu untuk membuat berbagai macam program komputer. Aplikasi VB.NET hanya dapat dijalankan pada sistem Operasi Windows. Untuk memulai VB.NET pastikan Komputer anda sudah terinstall Program yang bersangkutan yakni Microsoft Visual Studio. Pertama kali muncul adalah gambar sebagai berikut :
19
Gambar II.2. Start Up Page Sumber : Komputer, Wahana. (2006). “Pemrograman Visual Basic .Net 2005”. Semarang, Penerbit Andi, Yogyakarta.
Untuk memulainya kita harus membuat project terlebih dahulu yaitu dengan cara Pilih Menu File berikut :
New
Project Pada Menu Bar. Seperti digambarkan sebagai
20
Gambar II.3. Membuat Project Baru Sumber : Komputer, Wahana. (2006). “Pemrograman Visual Basic .Net 2005”. Semarang, Penerbit Andi, Yogyakarta. Setelah itu akan muncul sebuah jendela dialog seperti gambar dibawah ini :
Gambar II.4. Jendela Pilihan Pembuatan Project Baru Sumber : Komputer, Wahana. (2006). “Pemrograman Visual Basic .Net 2005”. Semarang, Penerbit Andi, Yogyakarta.
21
Untuk membuat project yang tipenya adalah Windows Application maka kita pilih Windows Application. Lalu tentukan nama solution (Dituliskan Di Kotak Name ) , lokasi penyimpanan (Dituliskan di Location apabila kita tidak hafal struktur drivenya maka sebaiknya kita klik Browse lalu tentukan dimana letak penyimpanan Project kita) . Setelah Itu tekan tombol OK. Maka secara otomatis tercipta Folder dan beberapa file pendukung dalam pembuatan aplikasi di alamat penyimpanan yang telah diinputkan tadi.
Gambar II.5. Folder Tempat Penyimpanan Solution Sumber : Komputer, Wahana. (2006). “Pemrograman Visual Basic .Net 2005”. Semarang, Penerbit Andi, Yogyakarta. Setelah itu kita akan melihat sebuah lembar kerja (Tempat membuat Aplikasi) Seperti gambar dibawah ini:
22
Form
Gambar II.6. Lembar Kerja (Tempat Membuat Aplikasi) Sumber : Komputer, Wahana. (2006). “Pemrograman Visual Basic .Net 2005”. Semarang, Penerbit Andi, Yogyakarta. -
Form : Tempat meletakkan control (tool) misalkan textbox, label, button dan lain-lain.
-
Menu Bar : Berisi Menu-menu yang masing-masing menu memiliki fungsi tersendiri.
-
ToolBar : Tombol-tombol Icon Yang berfungsi mewakili suatu perintah yang berada pada Menu bar.
-
ToolBox : Jendela yang mengandung semua Object atau control yang dapat di tempelkan dan dibutuhkan untuk membentuk suatu program.
23
-
Project (Solution) Explorer : Jendela yang mengandung semua File yang ada didalam aplikasi yang akan kita buat contohnya Form, Module, Class, Report, dll.
-
Design Viewer : Daerah kerja utama Untuk Mendesign program-program Aplikasi.
-
Code View : Tempat Mengetikkan baris program yang menjadi istruksiinstruksi.
-
Project (Object) Properties : Jendela yang mengandung semua informasi/Sifat dari Object yang terdapat pada aplikasi yang dibuat dan terseleksi.