BAB II DASAR TEORI. 2.1 Kriptografi Definisi Kriptografi

dokumen-dokumen yang mirip
BAB III ANALISIS MASALAH

Pengamanan Transmisi Hasil dan Data Query Basis Data dengan Algoritma Kriptografi RC4

Cryptanalysis. adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut cryptanalyst.

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

Kompleksitas Waktu Algoritma Kriptografi RC4 Stream Cipher

ALGORITMA RC4 DALAM PROTEKSI TRANSMISI DAN HASIL QUERY UNTUK ORDBMS POSTGRESQL

BAB I PENDAHULUAN. 1.1 Latar Belakang

Studi dan Implementasi Pengamanan Basis Data dengan Teknik Kriptografi Stream Cipher

BAB 2 LANDASAN TEORI

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

IMPLEMENTASI ENKRIPSI BASIS DATA BERBASIS WEB DENGAN ALGORITMA STREAM CIPHER RC4

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB 2 TINJAUAN PUSTAKA

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

PENGAMANAN BASIS DATA KEUANGAN RSUD BANGKINANG MENGGUNAKAN ALGORITMA KRIPTOGRAFI RC6

BAB I PENDAHULUAN. Universitas Sumatera Utara

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

KRIPTOGRAFI SISTEM KEAMANAN KOMPUTER

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB III ANALISIS DAN DESAIN SISTEM

KRIPTOGRAFI MATERI KE-2

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

Studi dan Analisis Dua Jenis Algoritma Block Cipher: DES dan RC5

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

BAB 2 LANDASAN TEORI

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL

BAB III ANALISIS DAN PERANCANGAN SISTEM

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

BAB Kriptografi

Implementasi Algoritma Rot Dan Subtitusional Block Cipher Dalam Mengamankan Data

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

Kriptografi Modern Part -1

BAB 2 LANDASAN TEORI

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. memungkinkan setiap orang untuk dapat berkomunikasi dan saling bertukar data.

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Pengenalan Kriptografi

Modifikasi Cipher Block Chaining (CBC) MAC dengan Penggunaan Vigenere Cipher, Pengubahan Mode Blok, dan Pembangkitan Kunci Berbeda untuk tiap Blok

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah. Pada dasarnya sistem administrasi kependudukan merupakan sub sistem dari

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

Jenis-Jenis Serangan terhadap Kriptografi

Kriptografi. A. Kriptografi. B. Enkripsi

Bab 1 PENDAHULUAN Latar Belakang

Cryptography. Abdul Aziz

BAB II LANDASAN TEORI

Analisis Penerapan Algoritma MD5 Untuk Pengamanan Password

BAB II LANDASAN TEORI

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

BAB II LANDASAN TEORI

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

BAB 2 LANDASAN TEORI

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

Bab 2 Tinjauan Pustaka

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

Kriptografi Modern Part -1

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

IMPLEMENTASI ALGORITMA BLOWFISH UNTUK ENKRPSI DAN DEKRIPSI BERBASIS WEB

BAB III ANALISIS DAN PERANCANGAN

SISTEM KRIPTOGRAFI. Mata kuliah Jaringan Komputer Iskandar Ikbal, S.T., M.Kom

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

ALGORITMA MESSAGE DIGEST 5 (MD5) DALAM APLIKASI KRIPTOGRAFI

2.1 Keamanan Informasi

BAB 2 LANDASAN TEORI

BAB V IMPLEMENTASI DAN PENGUJIAN

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

BAB II TINJAUAN PUSTAKA

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

BAB 2 LANDASAN TEORI

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

IMPLEMENTASI PENGAMANAN DATA ENKRIPSI SMS DENGAN ALGORITMA RC4 BERBASIS ANDROID

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

Tipe dan Mode Algoritma Simetri (Bagian 2)

ALGORITMA MAC BERBASIS FUNGSI HASH SATU ARAH

Algoritma Kriptografi Modern (AES, RSA, MD5)

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

TINJAUAN PUSTAKA. Protokol

Pengantar Kriptografi

Disusun oleh: Ir. Rinaldi Munir, M.T.

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

PENGGUNAAN FUNGSI HASH SATU-ARAH UNTUK ENKRIPSI DATA

Transkripsi:

BAB II DASAR TEORI Bab kedua ini berisi penjelasan tentang dasar teori dalam pelaksanaan tugas akhir ini. Dalam bab ini akan dibahas gambaran umum kriptografi berikut algoritmaalgoritma kriptografi khususnya algoritma RC4. Selain itu juga terdapat pembahasan tentang basis data berikut pembahasan keamanan basis data dan bahasa SQL (Structured Query Language), kemudian membahas keamanan jaringan. 2.1 Kriptografi 2.1.1 Definisi Kriptografi Kriptografi memiliki berbagai macam pengertian, secara etimologis kata kriptografi berasal dari bahasa Yunani yang terdiri atas dua kata yaitu κρυπτο (baca : krupto) yang berarti tersembunyi atau rahasia dan γραφη (baca: grafh) yang berarti tulisan. Karena itu kriptografi dapat diartikan sebagai tulisan rahasia, sedangkan menurut istilah ada beberapa pengertian, diantaranya yaitu : 1. Kriptografi adalah ilmu sekaligus seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. 2. Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan[sch96]. 3. Kriptografi adalah cara dan ilmu untuk mengkodekan (enkripsi dan dekripsi) data sehingga data tersebut hanya dapat didekodekan oleh orang tertentu[den07]. Sistem kriptografi (Cryptosystem) adalah sebuah sistem yang terdiri atas algoritma kriptografi yang berfungsi untuk mengacak data plainteks dengan satu atau beberapa kunci yang berupa angka atau string yang hanya diketahui oleh pihak pengirim dan penerima. Hasil akhir dari proses ini berupa cipherteks. Keamanan dari suatu sistem kriptografi biasanya terletak pada kerahasiaan beberapa kunci daripada menjaga kerahasiaan algoritma kriptografi. Sistem kriptografi yang kuat memiliki kemungkinan jangkauan kunci yang sangat besar sehingga sistem ini tidak mungkin dipecahkan dengan mencoba semua kemungkinan kunci secara brute II 1

force. Sistem kriptografi yang kuat juga akan menciptakan cipherteks yang acak untuk semua standar tes statistik. Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Ada dua jenis pesan yaitu plainteks dan cipherteks. Plainteks adalah pesan yang dapat langsung dibaca dan dimengerti artinya, sedangkan cipherteks adalah pesan yang telah disandikan sehingga tidak bermakna lagi. Cipherteks bertujuan agar pesan tidak dapat dibaca oleh pihak yang tidak berhak. Dalam kriptografi terdapat proses enkripsi (encryption) yaitu proses menyandikan plainteks menjadi cipherteks atau disebut juga enciphering. Proses lain yaitu dekripsi (decryption) yaitu proses mengembalikan cipherteks menjadi plainteks semula atau disebut juga deciphering. Berikut ilustrasi proses enkripsi dan dekripsi dapat dilihat pada gambar II-1. Kunci Kunci Plainteks Enkripsi Cipherteks Dekripsi Plainteks Gambar II-1 Proses enkripsi dan dekripsi Secara matematis enkripsi dapat digambarkan sebagai : C = cipherteks P = plainteks Fungsi enkripsi E memetakan P ke C, E(P) = C Fungsi dekripsi D memetakan C ke P, D(C) = P Fungsi enkripsi dan dekripsi harus memenuhi sifat : D(E(P)) = P II 2

2.1.2 Layanan Kriptografi Kriptografi menyediakan beberapa layanan, yaitu [MUN06]: 1. Kerahasiaan (confidentiality) Layanan yang digunakan untuk menjaga isi pesan dari siapapun yang tidak berhak untuk membacanya. 2. Integritas data (data integrity) Layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. 3. Otentikasi (authentication) Layanan untuk mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication) dan mengidentifikasi kebenaran sumber pesan (data origin authentication). 4. Nirpenyangkalan (non-repudiation) Layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. 2.1.3 Algoritma Kriptografi Algoritma kriptografi adalah aturan untuk enciphering dan deciphering atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi pesan [MUN06]. Algoritma kriptografi berkembang terus dan terbagi atas dua bagian yaitu algoritma kriptografi klasik dan algoritma kriptografi modern. Pada Algoritma klasik, kriptografer menggunakan algoritma sederhana, yang memungkinkan cipherteks dapat dipecahkan dengan mudah. Pemecahan algoritma klasik seperti penggunaan statistik kemunculan huruf pada bahasa tertentu, terkaan, intuisi dan sebagainya, sedangkan algoritma kriptografi modern dibuat sedemikian kompleks sehingga kriptanalis sangat sulit memecahkan cipherteks tanpa mengetahui kunci. Ciri khas umum algoritma modern yaitu beroperasi dalam mode bit. II 3

Berdasarkan jenis kunci yang digunakan, algoritma kriptografi modern dapat dibedakan menjadi dua kategori yaitu : 1. Algoritma kriptografi simetris. Algoritma kriptografi simetris yaitu algoritma yang menggunakan hanya satu kunci untuk enkripsi dan dekripsi [MUN06]. Contoh algoritma simetris yaitu DES (Data Encryption Standard), Rijndael, Blowfish, IDEA, GOST, Serpent, RC2, RC4, RC5, dan lain-lain. Skema algoritma simetris dapat dilihat pada gambar II-2. Kunci privat, K Kunci privat, K Plainteks, P Enkripsi E K (P) = C Cipherteks, C Dekripsi D K (C) = P Plainteks, P Gambar II-2 Algoritma simetris 2. Algoritma kriptografi nir-simetris atau algoritma kunci publik. Algoritma kriptografi nir-simetris yaitu algoritma yang menggunakan kunci publik untuk proses enkripsi dan privat untuk proses dekripsi [MUN06]. Contoh algoritma Nir-Simetris yaitu RSA. Skema algoritma nir-simetris dapat dilihat pada gambar II-3. Kunci publik, K1 Kunci privat, K2 Plainteks, P Enkripsi E K1 (P) = C Cipherteks, C Dekripsi D K2 (C) = P Plainteks, P Gambar II-3 Algoritma nir-simetris Algoritma kriptografi simetri dapat dikelompokkan menjadi dua kategori yaitu : 1. Cipher Aliran (stream cipher) Cipher aliran adalah algoritma kriptografi yang beroperasi pada plainteks atau cipherteks dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan atau didekripsikan bit per bit [MUN06]. Contoh stream cipher adalah RC4, Seal, A5, Oryx, dan lain-lain II 4

2. Cipher blok (block cipher) Cipher blok adalah algoritma kriptografi yang beroperasi pada plainteks atau cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya [MUN06]. Contoh block cipher adalah Blowfish, DES, GOST, IDEA, RC5, Safer, Square, Twofish, RC6, Loki97, dan lain-lain. 2.1.4 Fungsi Hash MD5 Fungsi hash satu arah adalah fungsi hash yang bekerja dalam satu arah : pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula. Dua pesan yang berbeda akan selalu menghasilkan nilai hash yang berbeda pula. Sifat-sifat fungsi hash satu arah adalah sebagai berikut : 1. Fungsi H dapat diterapkan pada blok data berukuran berapa saja. 2. H menghasilkan nilai (h) dengan panjang tetap. 3. H(x) mudah dihitung untuk setiap nilai x yang diberikan. 4. Untuk setiap h yang diberikan, tidak mungkin menemukan x sedemikian sehingga H(x) = h. Itulah sebabnya fungsi H dikatakan fungsi satu-arah. 5. Untuk setiap x yang diberikan, tidak mungkin mencari y x sedemikian sehingga H(y) = H(x). 6. Tidak mungkin (secara komputasi) mencari pasangan x dan y sedemikian sehingga H(x) = H(y). Keenam sifat di atas penting sebab sebuah fungsi hash seharusnya berlaku seperti fungsi acak. Sebuah fungsi hash dianggap tidak aman jika (i) secara komputasi dimungkinkan menemukan pesan yang bersesuaian dengan pesan ringkasnya, dan (ii) terjadi kolisi, yaitu terdapat beberapa pesan berbeda yang mempunyai pesan ringkas yang sama. Fungsi hash adalah publik (tidak dirahasiakan) dan keamanannya terletak pada sifat satu arahnya. Skema fungsi hash ditunjukkan gambar II-4. II 5

Gambar II-4 Skema fungsi hash satu arah MD5 adalah fungsi hash satu arah yang dibuat oleh Ronald Rivest pada tahun 1991. MD5 merupakan perbaikan dari MD4 setelah MD4 berhasil diserang oleh kriptanalis. Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan message digest yang panjangnya 128 bit. 2.1.5 Algoritma Kriptografi RC4 Algoritma kriptografi Rivest Code 4 (RC4) merupakan salah satu algoritma kunci simetris dibuat oleh RSA Data Security Inc (RSADSI) yang berbentuk stream chipper. Algoritma ini ditemukan pada tahun 1987 oleh Ronald Rivest dan menjadi simbol keamanan RSA(merupakan singkatan dari tiga nama penemu: Rivest Shamir Adleman). RC4 menggunakan panjang kunci dari 1 sampai 256 byte yang digunakan untuk menginisialisasikan tabel sepanjang 256 byte. Tabel ini digunakan untuk generasi yang berikut dari pseudo random yang menggunakan XOR dengan plainteks untuk menghasilkan cipherteks. Masing-masing elemen dalam tabel saling ditukarkan minimal sekali. RC4 merupakan salah satu jenis stream cipher sehingga RC4 memproses unit atau input data, pesan atau informasi pada satu saat. Unit atau data pada umumnya sebuah byte atau bahkan kadang kadang bit (byte dalam hal RC4)[BUD98] sehingga dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu sejumlah input data, pesan atau informasi tertentu sebelum diproses, atau menambahkan byte tambahan untuk mengenkrip. RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman. Sampai saat ini diketahui tidak ada yang dapat memecahkan/membongkarnya, hanya saja versi ekspor 40 bitnya dapat dibongkar dengan cara "brute force" (mencoba semua kunci yang mungkin) [BUD98]. RC4 tidak dipatenkan oleh RSADSI, hanya saja tidak diperdagangkan secara bebas (trade secret). II 6

Algoritma RC4 menggunakan dua buah S-Box yaitu array sepanjang 256 yang berisi permutasi dari bilangan 0 sampai 255, dan S-Box kedua, yang berisi permutasi merupakan fungsi dari kunci dengan panjang yang variabel. Cara kerja algoritma RC4 yaitu inisialisasi S-Box pertama, S[0],S[1],...,S[255], dengan bilangan 0 sampai 255. Pertama isi secara berurutan S[0] = 0, S[1] = 1,...,S[255] = 255. Kenudian inisialisasi array lain (S-Box lain), misal array K dengan panjang 256. Isi array K dengan kunci yang diulangi sampai seluruh array K[0], K[1],...,K[255] terisi seluruhnya. Proses inisialisasi S-Box (Array S) for i = 0 to 255 S[i] = i Proses inisialisasi S-Box (Array K) Array Kunci // Array dengan panjang kunci length. for i = 0 to 255 K[i] = Kunci[i mod length] Kemudian lakukan langkah pengacakan S-Box dengan langkah sebagai berikut : i = 0 ; j = 0 for i = 0 to 255 { j = (j + S[i] + K[i]) mod 256 swap S[i] dan S[j] } Setelah itu, buat pseudo random byte dengan langkah sebagai : i = ( i + 1 ) mod 256 j = ( j + S[i] ) mod 256 swap S[i] dan S[j] t = (S[i] + S[j]) mod 256 K = S[t] Byte K di-xor-kan dengan plainteks untuk menghasilkan cipherteks atau di- XOR-kan dengan cipherteks untuk menghasilkan plainteks. Enkripsi sangat cepat kurang lebih 10 kali lebih cepat dari DES. II 7

Berikut adalah implementasi algoritma RC4 dengan mode 4 byte (untuk lebih menyederhanakan). Inisialisasi S-Box dengan panjang 4 byte, dengan S[0]=0, S[1]=1, S[2]=2 dan S[3]=3 sehingga array S menjadi : 0 1 2 3 Inisialisasi 4 byte kunci array, K i. Misalkan kunci terdiri dari 2 byte yaitu byte 1 dan byte 7. Ulang kunci sampai memenuhi seluruh array K sehingga array K menjadi 1 7 1 7 Berikutnya mencampur operasi dimana kita akan menggunakan variabel i dan j ke index array S[i] dan K[i]. pertama kita beri nilai inisial untuk i dan j dengan 0. Operasi Pencampuran adalah pengulangan rumusan ( j + S[i]+ K[i]) mod 4 yang diikuti dengan penukaran S[i] dengan S[j]. Untuk contoh ini, karena kita menggunakan array dengan panjang 4 byte maka algoritma menjadi : for i = 0 to 4 j = (j + S[i] + K[i]) mod 4 swap S[i] dan S[j] Dengan algoritma seperti di atas maka dengan nilai awal i = 0 sampai i = 3 akan menghasilkan array S seperti di bawah ini : iterasi pertama : i = 0, maka j = (j + S[i] + K[i]) mod 4 = (j + S[0] + K[0]) mod 4 = (0 + 0 + 1 ) mod 4 = 1 swap S[0] dan S[1] sehingga menghasilkan array S : 1 0 2 3 iterasi kedua : i = 1, maka j = (j + S[i] + K[i]) mod 4 = (j + S[1] + K[1]) mod 4 = (1 + 0 + 7 ) mod 4 = 0 II 8

Swap S[1] dan S[0] sehingga menghasilkan array S : 0 1 2 3 iterasi ketiga : i = 2, maka j = (j + S[i] + K[i]) mod 4 = (j + S[2] + K[2]) mod 4 = (0 + 2 + 1 ) mod 4 = 3 Swap S[2] dan S[3] sehingga menghasilkan array S : 0 1 3 2 iterasi keempat : i = 3, maka j = (j + S[i] + K[i]) mod 4 = (j + S[3] + K[3]) mod 4 = (3 + 2 + 7 ) mod 4 = 0 Swap S[3] dan S[0] sehingga menghasilkan array S : 2 1 3 0 Berikutnya adalah proses enkripsi yaitu meng-xor-kan pseudo random byte dengan plainteks, misalnya plaintetks HI. Plainteks terdiri dari dua karakter maka terjadi dua iterasi. Berikut iterasi 1 : Inisialisasi i dan j dengan 0 sehingga i = 0; j = 0. i = 0; j = 0 i = ( i + 1 ) mod 4 = (0 + 1) mod 4 = 1 dan j = ( j + S[i] ) mod 4 = ( 0 + 2 ) mod 4 = 2 swap S[i] dan S[j] yaitu S[1] dan S[2] sehingga array S menjadi 2 3 1 0 t = (S[i] + S[j]) mod 4 = (3 + 1) mod 4 = 0 K = S[t] = S[0] = 2 Byte K di-xor-kan dengan plainteks H. Kemudian iterasi 2 : i = 1; j = 2 i = ( i + 1 ) mod 4 = (1 + 1) mod 4 = 2 dan II 9

j = ( j + S[i] ) mod 4 = ( 2 + 2 ) mod 4 = 0 swap S[i] dan S[j] yaitu S[2] dan S[0] sehingga array S menjadi 1 3 2 0 t = (S[i] + S[j]) mod 4 = (2 + 1) mod 4 = 3 K = S[t] = S[3] = 2 Byte K di-xor-kan dengan plainteks I. Proses XOR pseudo random byte dengan plainteks, dapat dilihat pada tabel II-1. Tabel II-1 Proses XOR pseudo random byte dengan plainteks pada enkripsi H I Plainteks 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 Pseodo Random byte 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 Cipherteks 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 Pesan dikirim dalam bentuk cipherteks sehingga setelah sampai di penerima pesan dapat kembali diubah menjadi plainteks dengan meng-xor-kan dengan kunci yang sama. Berikut pemrosesan pesan setelah sampai pada penerima dapat dilihat pada tabel II-2 : Tabel II-2 Proses XOR pseudo random byte dengan plainteks pada dekripsi H I Cipherteks 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 Pseodo Random byte 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 Plainteks 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 Berdasarkan hasil pengujian performansi RC4 pada Intel E4500 2.2GHz memori 1GB, diperoleh hasil seperti terlihat pada tabel II-3. Hasil pengetesan pada tabel II-3 didapat dengan enkripsi 4 kbyte sebanyak 3200 kali, atau setara dengan 100 Mb data. II 10

Tabel II-3 Kecepatan Enkripsi RC4 Jumlah Kecepatan Thread ke (dalam Mbps) Thread 1 2 3 4 5 6 7 8 9 10 Total 1 91.42 91.42 2 87.67 86.48 174.15 3 58.71 61.53 58.71 178.95 4 41.29 56.63 48.48 50.39 196.79 5 36.99 37.42 43.53 41.02 36.36 195.32 10 17.77 25.09 17.97 20.64 19.16 24.24 19.1 20 20.77 30.47 215.21 Algoritma RC4 memiliki beberapa kelebihan dan kekurangan. Berikut kelebihan algoritma RC4 [BUD98]: 1. Kesulitan mengetahui sebuah nilai dalam tabel. 2. Kesulitan mengetahui lokasi mana di dalam tabel yang digunakan untuk menyeleksi masing-masing nilai. 3. Kunci RC4 tentu hanya dapat digunakan sekali 4. Model enkripsi ini 10 kali lebih cepat dari DES Disamping memiliki kelebihan tersebut, algoritma RC4 juga memiliki kelemahan. Berikut kelemahan algoritma RC4 [BUD98]: 1. Algoritma RC4 lebih mudah diserang dengan menggunakan analisis dari bagian dalam tabel. 2. Salah satu dari 256 kunci dapat menjadi kunci yang lemah. Kunci ini diidentifikasi oleh kriptanalis yang dapat menemukan keadaan dimana salah satu dari bit yang dihasilkan mempunyai korelasi yang kuat dengan sedikit bit kunci. 2.2 Basis Data 2.2.1 Definisi Basis Data Secara etimologi basis data terdiri dari dua kata yaitu basis dan data yang dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul. Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, barang dan II 11

sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, atau kombinasinya [FAT99]. Basis data dapat didefinisikan dalam sejumlah sudut pandang seperti [FAT99] : 1. Himpunan kelompok data (arsip) yang saling berhubungan dan diorganisasi sedemikian rupa sehingga dapat dimanfaatkan kembali dengan cepat dan mudah. 2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. 3. Kumpulan file / tabel / arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. Sistem basis data adalah suatu sistem yang mengintegrasikan kumpulan dari data yang saling berhubungan satu dengan lainnya dan membuatnya tersedia untuk beberapa aplikasi yang bermacam-macam[dic05]. 2.2.2 Structured Query Language (SQL) Suatu basis data mempunyai bahasa khusus yang diperlukan untuk melakukan interaksi dengan basis data itu sendiri. Bahasa basis data yang menjadi standar adalah SQL (bahasa query yang terstruktur). Basis data menyediakan Data Definition Language (DDL) yang menspesifikasiskan skema basis data dan Data Manipulation Language (DML) yang mengekspresikan query basis data dan meng-update basis data. Pada praktiknya DDL dan DML bukanlah dua bagian yang terpisah, tetapi DDL dan DML itu merupakan suatu bagian bentuk sederhana dari suatu basis data. 1. Data Definition Language (DDL) DDL digunakan untuk menspesifikasikan skema basis data, antara lain : membuat tabel baru, membuat indeks, mengubah struktur tabel dan sebagainya. Berikut contoh pernyataan dalam bahasa SQL untuk mendefinisikan tabel data_pelanggan II 12

create table data_pelanggan (no_pelanggan integer, nama char(20), alamat char(20)) Selain menspesifikasikan relasi, DDL juga menspesifikasikan informasi dari tiap relasi, seperti domain tipe, primary key, dan batasan lain sehingga sistem basis data harus selalu mengecek pada batasan tersebut sewaktu terjadi penambahan atau pengubahan data. SQL standar mendukung berbagai domain tipe, diantaranya yaitu char(n), varchar(n), int, smallint, numeric(p,d), real, float(n), date, time dan timestamp. 2. Data Manipulation Language(DML) Manipulasi data adalah : a. Mengambil informasi yang tersimpan dalam basis data. b. Menyisipkan informasi baru ke dalam basis data. c. Menghapus informasi dari basis data. d. Mengubah informasi yang tersimpan dalam basis data. DML adalah suatu bahasa yang dapat digunakan untuk mengakses dan memanipulasi data yang terorganisir oleh suatu model data[sil02]. DML terbagi atas dua tipe, yaitu : 1. DML prosedural, dimana pengguna harus menspesifikasikan data apa yang dibutuhkan dan bagaimana mendapatkan data tersebut 2. DML deklaratif atau Non-prosedural DML, dimana pengguna hanya menspesifikasikan data yang dibutuhkan tanpa menspesifikasikan bagaimana cara mendapatkan data itu. DML jenis ini adalah DML yang secara umum dikenal, contohnya adalah SQL language. Query adalah suatu pernyataan permintaan untuk mengambil suatu informasi. Bagian dari DML yang dapat digunakan untuk mengambil informasi disebut query language. Meskipun secara teknis kata query language tidak sama dengan DML tetapi pada praktiknya kedua istilah ini sama. II 13

Berikut beberapa contoh penggunaan query languages : select nama from data_pelanggan where no_pelanggan = 7 Query di atas berfungsi untuk menampilkan data dari tabel data_pelanggan dengan atribut no_pelanggan = 7. insert into data_pelanggan (no_pelanggan, nama, alamat) values (7, Mr.X, Jalan Ganesha No. 1000 ) Query di atas berfungsi untuk menyisipkan data baru ke tabel data_pelanggan. Kolom yang akan ditambah datanya adalah kolom no_pelanggan, nama, alamat dengan nilai no_pelanggan = 7 nama = Mr.X dan alamat Jalan Ganesha No. 1000. update data_pelanggan set alamat= Jalan Taman Sari No. 50/56 where no_pelanggan = 7. Query di atas berfungsi untuk melakukan update atribut alamat untuk baris pada tabel data_pelanggan dengan no_pelanggan = 007. delete from data_pelanggan where no_pelanggan = 7 Query di atas berfungsi untuk menghapus data pada baris yang mengandung atribut no_pelanggan = 7. Data query merupakan data dalam query language yang bersifat rahasia, dalam hal ini yang rahasia merupakan nilai data yang akan dimasukkan, diubah atau dihapus pada basis data, sedangkan hasil query merupakan nilai yang di-retrieve akibat adanya permintaan dari query. Pada contoh query language : select nama from data_pelanggan where no_pelanggan = 7. Data query pada query language itu adalah nomor pelanggan yaitu 7, dan hasil query adalah seluruh nama pelanggan yang akan di-rertrieve basis data. Pada tugas akhir ini data dan hasil query itu yang akan dienkripsi dengan menggunakan algoritma kriptografi RC4 untuk menjamin keamanannya selama dalam transmisi di jaringan. II 14

2.2.3 Keamanan Basis Data Jenis kejahatan pada basis data yaitu [SIL02]: pembacaan informasi pemodifikasian dan perusakan data oleh orang yang tidak memiliki otoritas. Keamanan basis data berarti menjaga basis data dari ancaman tersebut. Persoalan keamanan pada basis data dapat dikategorikan menjadi beberapa level, yaitu [SIL02]: 1. Sistem Basis Data Sistem basis data yang digunakan harus dapat menjamin setiap pengguna basis data tidak melanggar otoritas yang dimiliki masing-masing pengguna. Penguna basis data hanya dapat memakai basis data sesuai dengan wewenang yang dimiliki dan diatur oleh Administrator basis data. 2. Sistem Operasi Apabila tingkat keamanan pada sistem basis data telah terjamin, hal lain yang perlu diperhatikan adalah keamanan pada sistem operasi yang digunakan. Sistem operasi yang tidak aman dapat menyebabkan pengguna yang tidak memiliki otoritas ke basis data dapat mengakses basis data. 3. Jaringan Pada umumnya, suatu sistem basis data digunakan secara luas melalui jaringan. Keamanan jaringan yang dipakai oleh sistem basis data menjadi hal yang penting untuk diperhatikan. Tugas akhir ini membahas tentang keamanan basis data dari level jaringan, yaitu dengan cara mengenkripsi data-data yang ditransmisikan dari server basis data dengan client. 4. Fisik Keamanan level ini menyangkut keamanan yang berkaitan dengan tempat dimana sistem basis data berada. Tempat tersebut harus dilindungi dari ancaman secara fisik, seperti dirusak pencuri atau bencana alam. 5. Manusia Setiap pengguna basis data harus diatur otoritasnya sedemikian rupa sehingga setiap pengguna hanya dapat mengakses data yang berhak diakses oleh pengguna yang bersangkutan. II 15

2.3 Serangan pada Jaringan Berikut serangan yang dapat terjadi pada jaringan termasuk yang bisa terjadi pada jaringan yang menghubungkan antara client yaitu server web dengan server yaitu server basis data. Berdasarkan bagaimana cara dan posisi seseorang mendapatkan pesan-pesan dalam saluran komunikasi, penyerangan dapat dikategorikan menjadi: 1. Sniffing Sniffing secara harfiah berarti mengendus, tentunya dalam hal ini yang diendus adalah pesan (baik yang belum ataupun sudah dienkripsi) dalam suatu saluran komunikasi. Hal ini umum terjadi pada saluran publik yang tidak aman. Sang pengendus dapat merekam pembicaraan yang terjadi. 2. Replay attack Jika seseorang bisa merekam pesan-pesan handshake (persiapan komunikasi), ia mungkin dapat mengulang pesan-pesan yang telah direkamnya untuk menipu salah satu pihak. 3. Spoofing Penyerang dengan modus menyamar menjadi salah satu pihak yang berinteraksi. Misalnya C bisa menyamar menjadi A. Semua orang dibuat percaya bahwa C adalah A. Penyerang berusaha meyakinkan pihak-pihak lain bahwa tak ada salah dengan komunikasi yang dilakukan, padahal komunikasi itu dilakukan dengan penyerang. Contohnya jika orang memasukkan PIN ke dalam Card Acceptance Device (CAD), yang benar-benar dibuat seperti CAD asli, tentu sang penipu bisa mendapatkan PIN pemilik smartcard. Pemilik smartcard tidak tahu bahwa telah terjadi kejahatan. 4. Man-in-the-middle Saat A hendak berkomunikasi dengan B, C dimata A seolah-olah adalah B, dan C dapat pula menipu B sehingga C seolah-olah adalah A. C dapat berkuasa penuh atas jalur komunikasi ini, dan bisa membuat berita fitnah. Kabel koaksial yang sering digunakan pada jaringan sangat rentan terhadap serangan vampire tap, yakni perangkat keras sederhana yang bisa menembus bagian dalam kabel koaksial sehingga dapat mengambil data yang mengalir tanpa perlu memutuskan komunikasi data yang sedang berjalan. Seseorang dengan vampire tap dan komputer portable dapat melakukan serangan pada bagian apa saja dari kabel koaksial. II 16