Sunday, July 11, 2010

Kriptografi

2.1 Kriptografi
2.1.1 Konsep Dasar Algoritma Kriptografi
Kriptografi memiliki dua macam pengetian, secara etimologis kriptografi beasal dari bahasa yunani krupto artinya tersembunyi atau rahasia dan grafh artinya Tulisan, karena itu kriptografi dapat diartiklisan sebagai tulisan rahasia, sedangkan kriptografi menurut istilah dapat diatikan sebagai berikut :
1. Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya kedalam bentuk yang tidak dapat dimengerti lagi maknanya. (Munir, 2006)
2. Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain.(Ariyus, 2006)
3. Kriptografi adalah cara dan ilmu untuk mengkodekan (enkripsi dan dekripsi) data sehingga data tersebut hanya dapat didekodekan oleh orang tertentu. (Fauzan, 2008)
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 disebut chiperteks.
Keamanan dari suatu sistem kriptografi biasanya terletak pada kerahasian beberapa kunci yang dijadikan sebagai chipper pada algoritma kriptografi tersebut. Sistem kriptografi yang kuat memiliki kemungkinan jangkauan kunci yang sangat besar sehingga sistem ini tidak memungkinkan dipecahkan dengan mencoba semua kemungkinan kemungkinan kunci secara bruteforce. Sistem kriptografi yang kuat juga akan menciptakan chiperteks yang acak untuk semua standart tes statistic.
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 mudah dimengerti artinya sedangkan cipherteks adalah pesan yang telah disandikan sehingga tidak bermakna lagi. Cipherteks bertujuan agar pesan tidak dapat dibaca oleh pihakyang tidak berhak.
Dalam kriptografi terdapat dua proses, pertama enkripsi (encryption) yaitu proses menyandikan plainteks menjadi cipherteks atau disebut dengan enchipering, dan ke dua dekripsi (decryption) yaitu kebalikan dari proses pertama (encryption) yakni proses mengembalikan dari cipherteks menjadi plainteks atau disebut juga deciphering.
Ilustrasi Proses Enkripsi dan Dekripsi





Gambar II-1 Proses Enkripsi dan Dekripsi
Secara garis besar kriptografi dibagi menjadi 2 jenis yaitu kriptografi klasik dan kriptografi modern. Perbedaan mendasar yang terdapat pada kedua jenis tersebut adalah pada kriptografi modern, algoritma kriptografi umumnya beroprasi pada mode-bit sehingga kriptanalis sangat sulit untuk memcahkan cipherteks tanpa mengetahui kuncinya, sedangkan kriptografi klasik beroprasi pada mode karakter, sehingga memungkinkan cipherteks dapat depecahkan dengan mudah, seperti penggunaan statistik kemunculan huruf pada bahasa tertentu, terkaan, intuisi dan sebagainya. Teknik kriptografi modern secara umum dibagi menjadi 2 jenis yaitu:
1. Algoritma kriptografi kunci simetris
Pada algoritma kriptografi ini, kunci yang digunakan dalam proses dekripsi dan enkripsi merupakan kunci yang sama. Berdasarkan pemrosesan bit, algorima kunci simetris dibagi menjadi dua bagian, yaitu: algoritma cipher blok (block cipher) yang melakukan pemrosesan bit per-blok, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya dan algoritma Cipher Aliran (stream cipher) yang memproses blok secara mengalir atau per-bit, rangkaian bit dienkripsi dan didekripsikan bit per bit.
Contoh dari algoritma simetris adalah DES(Data Encryption Standar), Rijndael, IDEA, GOST, Serpent, Blowfish, IDEA, RC2, RC4 dan lain sebagainya.
Skema algoritma simetris dapat dilihat pada gambar berikut.



Gambar II-2 Algotitma Simetris

2. Algoritma kriptografi kunci publik (nir-simetris)
Proses enkripsi dan dekripsi pada algoritma kriptografi kunci publik menggunakan kunci yang berbeda seperti namanya algoritma ini menggunakan enkripsi yang bersifat publik atau tidak rahasia. Kunci dekripsi pada umumnya merupakan hasil perhitungan dari kunci dekripsi yang bersifat rahasia. Kunci dekripsi pada umumnya merupakan hasil perhitungan dari kunci enkripsi yang bukan merupakan pemetaan satu ke satu, sebuah kunci dekripsi dapat memiliki beberapa kunci enkripsi. Dalam penggunaannya, algoritma kriptografi kriptografi kunci publik tidak hanya digunakan untuk menyembunyikan pesan, tetapi dapat juga digunakan otentikasi dokumen.
Contoh RSA




Gambar II-3 Algoritma Kunci Publik
Tujuan kriptografi adalah mencegah dan mendeteksi orang yang tidak bertanggung jawab melakukan hal-hal yang menganggu seperti membaca data rahasia atau mengubah suatu data penting. Untuk tujuan itu, kriptografi menyediakan empat aspek keamanan yaitu: kerahasiaan, integritas data, otentikasi dan nir penyangkalan.
2.1.2 Aspek Keamanan Kriptografi
Aspek keamanan kriptografi ada 4 yaitu:
1. kerahasiaan (confidentiality)
Layanan yang digunakan untuk menjaga pesan dari siapapun yang tidak berhak untuk membacanya.
2. Integritas Data (data Integrity)
Layanan yang menjamin bahwa data atau pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman.
3. Otentikasi (authentication)
Layanan yang mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication) dan mengidentifikasi kebenaran sumber pesan (data origin authentication).
4. Nir-penyangkalan (non-repudiation)
Layanan yang untuk mencegah entitas yang berkomunikasi melakukan penyagkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.

2.2 Algoritma RC 4
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) sehingga dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. (Fauzan, 2008) 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). RC4 tidak dipatenkan oleh RSADSI, hanya saja tidak diperdagangkan secara bebas (trade secret). (Sukamawan, 2008)
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 SBox 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
Next 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]
Next i

Kemudian melakukan 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]
next i



Setelah itu, membuat 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.
Kecepatan enkripsi dari RC4 cukup baik, hal ini terjadi karena proses enkripsinya yang cukup sederhana dan hanya melibatkan beberapa operasi saja per bytenya. Hal ini dapat dilihat pada tabel berikut ini (Sukmawan, 2008)

Prosesor Memori (MB) Kecepatan (KBytes/detik)
486/DX4-100 16 2.563,846
Pentium 100 16 4.285,714
Pentium 133 32 5.380,035
Pentium 166MMX 32 7.191,522
Pentium 200MMX 32 8.668,172
Pentium Pro 200 64 10.651,872

Hasil Ujicoba Algoritma RC 4


2.3 Basis Data
2.3.1 Pengertian Basis Data
Basis Data (database) merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. (Fauzan, 2008)
Basis data dapat didefinisikan dalam sejumlah sudut pandang seperti (fauzan, 2008)
1. Himpunan kelompok data (arsip) yang saling berhubungan dan diorganisir sedemikian rupa sehingga dapat dimanfaatkan kembali dengan cepat dan mudah.
2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.
3. Kumpulan file / tabel / arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektonis.
Database merupakan salah satu komponen yang penting dalam system informasi, karena merupakan basis dalam menyediakan informasi bagi para pemakai. Penerapan database dalam sistem informasi disebut dengan database system. Sistem basis data (database system) adalah suatu system informsi yang mengintegrasikan kumpulan dari data yang saling berhubungan satu dengan yang lainnya dan membuatnya tersedia untuk beberapa aplikasi yang bermacam-macam di dalam suatu organisasi.
2.3.2 Structure 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 mengupdate 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 (DLL)
DDL digunakan untuk menspesifikasikan skema basis data, antara lain : membuat tabel baru, membuat indeks, mengubah struktur tabel dan sebagainya.
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. DML terbagi atas dua tipe, yaitu :
a. DML prosedural, dimana pengguna harus menspesifikasikan data apa yang dibutuhkan dan bagaimana mendapatkan data tersebut.
b. 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.

2.3.3 Keamanan Basis Data
Jenis kejahatan pada basis data yaitu pembacaan informasi, pemodifikasian dan perusakan data oleh orang yang tidak memiliki otoritas. Keamanan basis data berarti menjaga basis data dari ancaman tersebut.


Persoalan keamanan dapat dikategorikan menjadi beberapa level yaitu:
1. Sistem Basis Data
Sistem basis data yang digunakan harus dapat menjamin setiap pengguna basis data agar tidak melanggar otoritas yang dimilikinya masing-masing. Pengguna basis data hanya dapat memakai basis data sesuai wewenang yang dimiliki dan diatur oleh administrator basis data.
2. Sistem Operasi.
Sistem operasi tidak aman dapat menyebabkan pengguna yang tidak memiliki otoritas dalam 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 apabila basis data tersebut digunakan dalam suatu jaringan.
4. Fisik.
Keamanan level ini menyangkut keamanan yang berkaitan dengan tempat dimana siste basis data berada. Tempat tersebut harus dilindungi dari ancaman secara fisik.
5. Manusia
Seteiap pengguna basis data harus diatur otoritasnya sedemikian rupa sehingga setiap pengguna hanya dapat mengakses data yang berhak diakses oleh pengguna yang bersangkutan.

0 comments:

Post a Comment