BAB II TINJAUAN TEORITIS
2.1.
Microsoft Access
Microsoft Access adalah aplikasi database yang dibuat oleh Microsoft untuk menunjang kebutuhan perkantoran akan sebuah aplikasi database yang relatif sederhana (Adi Kurniadi, 2000) . 1. Table. 2. Query. 3. Form. 4. Report. 5. Macro. 6. Switchboard. 7. SQL Command. 8. Designing Advanced Form (Latihan). Untuk membuka Ms Access, anda dapat melakukannya dengan cara menekan tombol start, kemudian pilih program, pilih Microsoft Office, dan pilih Microsoft Access.
Gambar 2.1 : Link Ms. Access Sumber: Adi Kurniadi, Pemograman Microsoft Visual Basic 6.0, 11,2000
Universita Sumatera Utara
Setelah terbuka, anda akan dihadapkan pada kotak dialog untuk membuka file lama atau membuat database baru.
Gambar 2.2 : Buat Form Baru (Adi Kurniadi, 2000)
Pilihlah blank access database, supaya anda dapat mempelajari Ms Access dari awal. Selanjutnya anda akan diminta memilih nama database yang akan anda buat, dan disimpan dalam format standart Access yaitu .mdb.
2.1.1
Table Table adalah sebuah lokasi informasi yang terstruktur, yang terdiri dari baris
(rows) dan kolom (column). Saat membicarakan table dalam database, kita tidak bisa lepas dari field, record, dan tipe data. Untuk mengenal lebih jauh tentang field, record, dan tipe data, perhatikan gambar berikut ini (Adi Kurniadi, 2000) :
Nama Dosen
Mata Kuliah
Budhi Kristianto
Web Programming
Felix David
Bahasa C
field
record
Universita Sumatera Utara
Teguh Wahyono
Etika Profesi
Secara harafiah, Field dapat dikatakan sebagai judul dari kolom dalam sebuah table. Record adalah data yang ada di dalam sebuah field. Sedangkan tipe data adalah jenis-jenis data yang dikenal dalam sistem database dan pemrograman komputer. Tipe data yang dikenal oleh Access adalah : 1. Text, adalah tipe data yang berisikan huruf atau kombinasi huruf dan angka. Tipe data ini memiliki panjang 255 karakter. 2. Memo, adalah tipe data yang berisikan huruf atau kombinasi huruf dan angka. Tipe data ini memiliki panjang 65535 karakter. 3. Number, adalah tipe data yang berisikan angka untuk perhitungan matematis. Tipe data ini memiliki panjang 1, 2, 4, atau 8 byte (1 byte = 1 karakter = 8 bit binary). 4. Date/Time, adalah tipe data yang berisikan tanggal bulan dan tahun. Tipe data ini memiliki panjang 8 byte. 5. Currency, adalah tipe data yang berisikan angka yang melibatkan 1 sampai 4 angka di belakang koma (desimal). Tipe data ini mampu terlibat dalam perhitungan sampai 15 digit di depan koma, dan 4 digit di belakang koma. Panjangnya 8 byte. 6. AutoNumber, adalah tipe data yang berisikan angka yang mengalami increment (penambahan dengan skala kelipatan yang tetap). Defaultnya adalah 1. Panjangnya 4 byte. 7. Yes/No, adalah tipe data yang berisikan jawaban yes/no, true/false, atau on/off. Panjangnya hanya 1 bit (bukan byte). 8. OLE Object, adalah tipe data yang berisikan bermacam-macam object, seperti file Ms Word, spreadheet milik Ms Excel, grafik, gambar, dan sebagainya. Ukurannya tak terbatas, tergantung dari kapasitas hardisk. 9. Hyperlink, adalah tipe data yang berisikan link ke sebuah object atau situs web. Panjangnya 2048 karakter.
Universita Sumatera Utara
Sebenarnya ada beberapa tipe data standart yang sangat familiar dalam bidang komputasi database, namun memiliki nama yang berbeda dari yang dikenal Access. Namun demikian, Access juga dapat mengenali tipe data standart tersebut (Adi Kurniadi, 2000). Tipe data yang dimaksud adalah : 1. Char (karakter). 2. String (kumpulan karakter). 3. Integer (angka). 4. Long Integer (angka). 5. Dan sebagainya. Berikut ini tabel penyebutan tipe data yang berbeda, tetapi memiliki maksud yang sama : Ms Access
SQL Query
Visual Basic
ADO Engine
Ms SQL Engine
-
Binary
-
adBinary
Binary, VarBinary
Yes/no
Yes/no
Boolean
adBoolean
Boolean, Bit, Logical, Logical1, YesNo
Byte
Byte
adUnsignedTinyInt
Byte, Integer1
AutoNumber (FieldSize=Lo ng Integer)
Long Integer
Long
adInteger
Counter, AutoIncrement
Currency
Currency
Currency
adCurrency
Currency, Money
Date/time
Date/Time
Date
adDate
DateTime, Date, Time, TimeStamp
Number (fieldsize byte)
=
Universita Sumatera Utara
Number (FieldSize= Double)
Double
Double
adDouble
Double, Float, Float8, IEEEDouble, Number, Numeric
AutoNumber/ GUID(FieldSi ze= Replication ID)
Replication ID
-
adGUID
GUID
Number (FieldSize= Long Integer)
Long Integer
Long
adInteger
Long, Int, Integer, Integer4
OLE Object
OLE Object
String
adLongVarBi nary
LongBinary, General, OLE Object
Memo
Memo
String
adLongVarW- LongText, Char LongChar, Memo, Note
Number (FieldSize= Single)
Single
Single
adSingle
Single, Float4, IEEESingle, Real
Number (FieldSize= Integer)
Integer
Integer
adSmallInt
Short, Integer2, SmallInt
Text
Text
String
adVarWChar
Text, AlphaNumeric, Char, Character, String, VarChar
Hyperlink
Memo
String
adLongVarW- LongText, Char LongChar, Memo, Note
-
Value
Variant
adVariant
Value
Tabel 2.1 Type Database
Universita Sumatera Utara
2.2.
Security/Keamanan
Keamanan merupakan komponen yang vital dalam komunikasi data elektronis. Masih banyak yang belum menyadari bahwa keamanan (security) merupakan sebuah komponen penting yang tidak murah. Teknologi kriptografi sangat berperan juga dalam proses komunikasi, yang digunakan untuk melakukan enkripsi (pengacakan) data yang ditransaksikan selama perjalanan dari sumber ke tujuan dan juga melakukan dekripsi (menyusun kembali) data yang telah teracak tersebut. Berbagai sistem yang telah dikembangkan adalah seperti sistem private key dan public key. Penguasaan algoritma-algoritma populer digunakan untuk mengamankan data juga sangat penting. Contoh – contoh algoritma ini antara lain : DES, IDEA, RC5, RSA, dan ECC (Elliptic Curve Cryptography). Penelitian dalam bidang ini di perguruan tinggi merupakan suatu hal yang penting. (Kristianto, 2003) Dari sisi tindakan pihak yang bertanggung jawab, keamanan jaringan komputer terbagi dua level: 1.
keamanan fisik peralatan mulai dari server, terminal/client router sampai dengan cabling.
2.
keamanan sistem sekiranya ada penyeludup yang berhasil mendapatkan akses ke saluran fisik jaringan komputer. Sebagai contoh, dalam sistem mainframe-dumbterminal di suatu gedung perkantoran, mulai dari komputer sentral sampai ke terminal secara fisik keamanan peralatan dikontrol penuh oleh otoritas sentral. Manakala sistem tersebut hendak diperpanjang sampai ke kantor-kantor cabang di luar gedung, maka sedikit banyak harus menggunakan komponen jaringan komputer yang tidak sepenuhnya dikuasai pemilik sistem seperti menyewa kabel leased-line atau menggunakan jasa komunikasi satelit.
Dari sisi pemakaian, sistem keamanan dipasang untuk mencegah: 1.
Pencurian.
2.
Kerusakan.
3.
Penyalahgunaan data yang terkirim melalui jaringan komputer. Dalam praktek, pencurian data berwujud pembacaan oleh pihak yang tidak
berwenang biasanya dengan menyadap saluran publik. Teknologi jaringan komputer
Universita Sumatera Utara
telah dapat mengurangi bahkan membuang kemungkinan adanya kerusakan data akibat buruknya konektivitas fisik namun kerusakan tetap bisa terjadi karena bug pada program aplikasi atau ada unsur kesengajaan yang mengarah ke penyalahgunaan sistem. Di institusi pendidikan, selain kepentingan administratif sebagaimana di institusi-institusi lainnya, jaringan komputer Internet khususnya dapat digunakan untuk berinteraksi dengan konsumen (siswa). Pada umumnya, institusi pendidikan tidak menyelenggarakan pelayanan jasa yang ketat seperti penyelenggaraan bank atau asuransi. Namun demikian, dalam sistem terpadu, beberapa komponen bisa bersifat kritis seperti komunikasi data pembayaran SPP dan menyentuh rahasia pribadi seperti penggunaan email untuk konsultasi bimbingan dan penyuluhan. Untuk masalah pembayaan SPP, yang penting adalah akurasi data dan pada dasarnya daftar pembayar SPP tidak perlu disembunyikan karena pada akhirnya semua siswa membayar SPP. Untuk konsultasi psikologis sebaiknya memang hanya siswa dan pembibing saja yang bisa membaca teks komunikasi bahkan administrator jaringan pun harus dibuat tidak bisa membaca electronic-mail (Aryus. 2005).
2.3.
Sejarah Kriptografi
Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari mereka yang tidak diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan. Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus atau perkamen dibungkus dengan batang kayu. Sistem ini disebut Scytale (Zelvina ,at all, 2012) Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf alfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu
Universita Sumatera Utara
alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik. Cipher semacam ini mencakup penggeseran alfabet dengan 3 huruf dan mensubstitusikan huruf tersebut. Substitusi ini kadang dikenal dengan C3 (untuk Caesar menggeser 3 tempat). Secara umum sistem cipher Caesar dapat ditulis sebagai berikut : Zi = Cn(Pi) Dimana Zi adalah karakter-karekter ciphertext, Cn adalah transformasi substitusi alfabetik, n adalah jumlah huruf yang digeser, dan Pi adalah karakterkarakter plaintext. Disk mempunyai peranan penting dalam kriptografi sekitar 500thn yang lalu. Di Italia sekitar tahun 1460, Leon Battista Alberti mengembangkan disk cipher untuk enkripsi. Sistemnya terdiri dari dua disk konsentris. Setiap disk memiliki alfabet di sekelilingnya, dan dengan memutar satu disk berhubungan dengan yang lainnya, huruf pada satu alfabet dapat ditransformasi ke huruf pada alfabet yang lain (Nathasia & Wicaksono, 2012). Bangsa Arab menemukan cryptanalysis karena kemahirannya dalam bidang matematika, statistik, dan lingiustik. Karena setiap orang muslim harus menambah pengetahuannya, mereka mempelajari peradaban terdahulu dan mendekodekan tulisan-tulisannya ke huruf-huruf Arab. Pada tahun 815, Caliph al-Mamun mendirikan House of Wisdom di Baghdad yang merupakan titik pusat dari usaha-usaha translasi. Pada abad ke-9, filsuf Arab al-Kindi menulis risalat (ditemukan kembali th 1987) yang diberi judul “A Manuscript on Deciphering Cryptographic Messages”. Pada 1790, Thomas Jefferson mengembangkan alat enkripsi dengan menggunakan tumpukan yang terdiri dari 26 disk yang dapat diputar secara individual. Pesan dirakit dengan memutar setiap disk ke huruf yang tepat dibawah batang berjajar yang menjalankan panjang tumpukan disk. Kemudian, batang berjajar diputar dengan sudut tertentu, A, dan huruf-huruf dibawah batang adalah pesan yang terenkripsi. Penerima akan menjajarkan karakter-karakter cipher dibawah batang berjajar, memutar batang kembali dengan sudut A dan membaca pesan plaintext (Zelvina ,at all, 2012).
Universita Sumatera Utara
Sistem disk digunakan secara luas selama perang sipil US. Federal Signal Officer mendapatkan hak paten pada sistem disk mirip dengan yang ditemukan oleh Leon Battista Alberti di Italia, dan dia menggunakannya untuk mengkode dan mendekodekan sinyal- sinyal bendera diantara unit- unit. Sistem Unix menggunakan cipher substitusi yang disebut ROT 13 yang menggeser alfabet sebanyak 13 tempat. Penggeseran 13 tempat yang lain membawa alfabet kembali ke posisi semula, dengan demikian mendekodekan pesan. Mesin kriptografi mekanik yang disebut Hagelin Machine dibuat pada tahun 1920 oleh Boris Hagelin di Scockholm, Swedia. Di US, mesin Hagelin dikenal sebagai M-209. Pada tahun 20-an, Herbert O. Yardley bertugas pada organisasi rahasia US MI-8 yang dikenal sebagai “Black Chamber”. MI-8 menjebol kode-kode sejumlah negara. Selama konferensi Angkatan Laut Washington tahun 1921-1922, US membatasi negosiasi dengan Jepang karena MI-8 telah memberikan rencana negosiasi Jepang yang telap disadap kepada sekretaris negara US. Departemen negara menutup MI-8 pada tahun 1929 sehingga Yardley merasa kecewa. Sebagai wujud kekecewaanya, Yardley menerbitkan buku The American Black Chamber, yang menggambarkan kepada dunia rahasia dari MI-8. Sebagai konsekuensinya, pihak Jepang menginstal kode-kode baru. Karena kepeloporannya dalam bidang ini, Yardley dikenal sebagai “Bapak Kriptografi Amerika”.
2.4.
Kriptografi dan Sistem Informasi
Keamanan telah menjadi aspek yang sangat penting dari suatu sistem informasi. Sebuah informasi umumnya hanya ditujukan bagi segolongan tertentu. Oleh karena itu sangat penting untuk mencegahnya jatuh kepada pihak-pihak lain yang tidak berkepentingan. Untuk melaksanakan tujuan tersebut dirancang suatu sistem keamanan yang berfungsi melindungi sistem informasi (Munir, 2011). Salah satu upaya pengamanan sistem informasi yang dapat dilakukan adalah kriptografi. Kriptografi sesungguhnya merupakan studi terhadap teknik matematis yang terkait dengan aspek keamanan suatu sistem informasi, antara lain seperti kerahasiaan, integritas data, otentikasi, dan ketiadaan penyangkalan. Keempat aspek tersebut merupakan tujuan fundamental dari suatu sistem kriptografi (Munir, 2011).
Universita Sumatera Utara
1.
Kerahasiaan (confidentiality) Kerahasiaan adalah layanan yang digunakan untuk menjaga informasi dari setiap pihak yang tidak berwenang untuk mengaksesnya. Dengan demikian informasi hanya akan dapat diakses oleh pihak-pihak yang berhak saja.
2.
Integritas data (data integrity) Integritas data merupakan layanan yang bertujuan untuk mencegah terjadinya pengubahan informasi oleh pihak-pihak yang tidak berwenang. Untuk meyakinkan integritas data ini harus dipastikan agar sistem informasi mampu mendeteksi terjadinya manipulasi data. Manipulasi data yang dimaksud di sini meliputi penyisipan, penghapusan, maupun penggantian data.
3.
Otentikasi (authentication) Otentikasi merupakan layanan yang terkait dengan identifikasi terhadap pihakpihak yang ingin mengakses sistem informasi (entity authentication) maupun keaslian data dari sistem informasi itu sendiri (data origin authentication).
4.
Ketiadaan penyangkalan (non-repudiation) Ketiadaan penyangkalan adalah layanan yang berfungsi untuk mencegah terjadinya penyangkalan terhadap suatu aksi yang dilakukan oleh pelaku sistem informasi.
2.5.
Mekanisme Kriptografi
Suatu sistem kriptografi (kriptosistem) bekerja dengan cara menyandikan suatu pesan menjadi suatu kode rahasia yang dimengerti oleh pelaku sistem informasi saja. Pada dasarnya mekanisme kerja semacam ini telah dikenal sejak jaman dahulu. Bangsa Mesir kuno sekitar 4000 tahun yang lalu bahkan telah mempraktekkannya dengan cara yang sangat primitive (Munir, 2011). Dalam era teknologi informasi sekarang ini, mekanisme yang sama masih digunakan tetapi tentunya implementasi sistemnya berbeda. Sebelum membahas lebih jauh mekanisme kriptografi modern, berikut ini diberikan beberapa istilah yang umum digunakan dalam pembahasan kriptografi (Munir, 2011). 1.
Plaintext
Universita Sumatera Utara
Plaintext (message) merupakan pesan asli yang ingin dikirimkan dan dijaga keamanannya. Pesan ini tidak lain dari informasi tersebut.
2.
Ciphertext Ciphertext merupakan pesan yang telah dikodekan (disandikan) sehingga siap untuk dikirimkan.
3.
Cipher Cipher merupakan algoritma matematis yang digunakan untuk proses penyandian plaintext menjadi ciphertext.
4.
Enkripsi Enkripsi (encryption) merupakan proses yang dilakukan untuk menyandikan plaintext sehingga menjadi Ciphertext.
5.
Dekripsi Dekripsi (decryption) merupakan proses yang dilakukan untuk memperoleh kembali plaintext dari Ciphertext.
6.
Kriptosistem Kriptosistem merupakan sistem yang dirancang untuk mengamankan suatu sistem informasi dengan memanfaatkan kriptografi. Urutan-urutan proses kriptografi dapat digambarkan sebagai berikut.
Universita Sumatera Utara
Gambar 2.3 : Mekanisme kriptografi (Munir, 2011) Prosesnya pada dasarnya sangat sederhana. Sebuah plaintext (m) akan dilewatkan pada proses enkripsi (E) sehingga menghasilkan suatu ciphertext (c). Kemudian untuk memperoleh kembali plaintext, maka ciphertext (c) melalui proses dekripsi (D) yang akan menghasilkan kembali plaintext (m). Secara matematis proses ini dapat dinyatakan sebagai,
E(m) = c D(c) = m D(E(m)) = m
Kriptografi sederhana seperti ini menggunakan algoritma penyandian yang disebut cipher. Keamanannya bergantung pada kerahasiaan algoritma penyandian tersebut, karena itu algoritmanya harus dirahasiakan. Pada kelompok dengan jumlah besar dan anggota yang senantiasa berubah, penggunaannya akan menimbulkan masalah. Setiap ada anggota yang meninggalkan kelompok, algoritma harus diganti karena anggota ini dapat saja membocorkan algoritma (Munir, 2011). Kriptografi modern selain memanfaatkan algoritma juga menggunakan kunci (key) untuk memecahkan masalah tersebut. Proses enkripsi dan dekripsi dilakukan dengan menggunakan kunci ini. Setiap anggota memiliki kuncinya masing-masing yang digunakan untuk proses enkripsi dan dekripsi yang akan dilakukannya. Dengan
Universita Sumatera Utara
demikian ada sedikit perubahan yang harus dilakukan pada mekanisme yang digambarkan pada gambar diatas menjadi seperti gambar dibawah berikut ini.
Gambar 2.4 : Kriptografi berbasis kunci (Munir, 2011)
Mekanisme kriptografi seperti ini dinamakan kriptografi berbasis kunci. Dengan demikian kriptosistemnya akan terdiri atas algoritma dan kunci, beserta segala plaintext dan ciphertextnya. Persamaan matematisnya menjadi seperti berikut, Ee(m) = c Dd(c) = m Dd(Ee(m)) = m dengan, e = kunci enkripsi d = kunci dekripsi
2.6.
Kriptografi Simetrik dan Asimetrik
Berdasarkan jenis kunci yang digunakan dalam proses enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi dua jenis, yaitu kriptografi simetrik dan kriptografi asimetrik. Perbedaan utama di antara keduanya terletak pada sama dan
Universita Sumatera Utara
tidaknya kunci yang digunakan dalam proses enkripsi dengan kunci yang digunakan pada proses dekripsi. (Zelvina ,at all, 2012)
2.6.1. Kriptografi Simetrik Kriptografi simetrik (symmetric cryptography) atau dikenal pula sebagai kriptografi kunci rahasia (secret-key cryptography), merupakan kriptografi yang menggunakan kunci yang sama baik untuk proses enkripsi maupun dekripsi. Secara matematis dapat dinyatakan bahwa : e=d=k Ek(m) = c Dk(c) = m Kriptografi simetrik sangat menekankan pada kerahasiaan kunci yang digunakan untuk proses enkripsi dan dekripsi. Oleh karena itulah kriptografi ini dinamakan pula sebagai kriptografi kunci rahasia (Zelvina ,at all, 2012).
2.6.2. Kriptografi Asimetrik Kriptografi asimetrik (asymmetric cryptography) menggunakan kunci enkripsi dan kunci dekripsi yang berbeda. Kunci enkripsi dapat disebarkan kepada umum dan dinamakan sebagai kunci publik (public key) sedangkan kunci dekripsi disimpan untuk digunakan sendiri dan dinamakan sebagai kunci pribadi (private key). Oleh karena itulah, kriptografi ini dikenal pula dengan nama kriptografi kunci publik (public key cryptography). Pada kriptosistem asimetrik, setiap pelaku sistem informasi memiliki sepasang kunci, yaitu kunci publik dan kunci pribadi. Kunci publik didistribusikan kepada umum, sedangkan kunci pribadi disimpan untuk diri sendiri. Dengan menggunakan kriptografi asimetrik (Ariboyo, 2008).
Universita Sumatera Utara
2.7.
Keamanan Sistem Kriptografi
Keamanan suatu sistem kriptografi merupakan masalah yang paling fundamental. Dengan menggunakan sistem standar terbuka, maka keamanan suatu sistem kriptografi akan lebih mudah dan lebih cepat dianalisa. Mengingat kenyataan inilah maka sekarang tidak digunakan lagi algoritma rahasia yang tidak diketahui tingkat keamanannya. Sebuah
sistem
kriptografi
dirancang
untuk
menjaga
plaintext
dari
kemungkinan dibaca oleh pihak-pihak yang tidak berwenang, yang secara umum dinamakan sebagai penyerang (attacker). Penyerang diasumsikan memiliki akses tak terbatas terhadap jalur tak aman yang digunakan untuk transaksi ciphertext. Oleh karena itu, penyerang dianggap memiliki akses langsung terhadap ciphertext. Tipe penyerang paling umum terhadap suatu sistem kriptografi adalah serangan kriptanalisis (cryptanalysis attack). Kriptanalisis merupakan ilmu yang mempelajari tentang upaya-upaya untuk memperoleh plaintext dari ciphertext tanpa informasi tentang kunci yang digunakan (Zelvina ,at all, 2012).
Universita Sumatera Utara
2.8.
Vernam Cipher
Algoritma One Time Pad (OTP) merupakan algoritma berjenis symetric key yang artinya bahwa kunci yang digunakan untuk melakukan enkripsi dan dekripsi merupakan kunci yang sama. Dalam proses enkripsi, algoritma ini menggunakan cara stream cipher yang berasal dari hasi XOR antara bit plaintext dan bit key. Pada metode ini plain text diubah kedalam kode ASCII dan kemudian dikenakan operasi XOR terhadap kunci yang sudah diubah ke dalam kode ASCII (Sholeh, & Hamokwarong, 2011). Proses dekripsi merupakan proses yang dilakukan untuk mengembalikan file dari bentuk simbol-simbol kembali ke bentuk semula. Dekripsi Vernam Cipher dapat dilakukan dengan menggunakan rumus dibawah ini (Ariyanto, at all, 2008): P(i) = C(i) XOR K(i) Dalam hal ini : C
= Cipher Teks
P
= Plain Teks
K
= Kunci
Enkripsi data merupakan bagian awal dari proses pengamanan data. Dalam proses enkripsi ini data ang asli akan dilakukan proses pengacakan dengan algoritma yang sudah ditentukan, adapun proses enkripsi pada Vernam Cipher dapat dilakukan dengan menggunakan rumus dibawah ini (Ariyanto, at all, 2008): C(i) = P(i) XOR K(i) Dalam hal ini : C
= Cipher Teks
Universita Sumatera Utara
2.9.
P
= Plain Teks
K
= Kunci
I
= index karakter
Rivest Cipher 4 (RC4)
RC4 merupakan salah satu jenis stream cipher, yaitu 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). 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. Contoh stream cipher adalah RC4, Seal, A5, Oryx, dan lain-lain. Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok), contohnya : Blowfish, DES, Gost, Idea, RC5, Safer, Square, Twofish, RC6, Loki97, dan lain-lain (Kadry & Smaili, 2010). RC4 merupakan enkripsi stream simetrik proprietary yang dibuat oleh RSA Data Security Inc (RSADSI). Penyebarannya diawali dari sebuah source code yang diyakini sebagai RC4 dan dipublikasikan secara 'anonymously' pada tahun 1994. Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi. 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) (Kadry & Smaili, 2010). Algoritma RC4 cukup mudah untuk dijelaskan. RC4 mempunyai sebuah S-Box, S0,S1,...,S255, yang berisi permutasi dari bilangan 0 sampai 255, dan permutasi merupakan fungsi dari kunci dengan panjang yang variabel. Terdapat dua indeks yaitu
Universita Sumatera Utara
i dan j, yang diinisialisasi dengan bilangan nol. Untuk menghasilkan random byte langkahnya adalah sebagai berikut (Slamet Maryono, 2012): i = (i + 1) mod 256 j = (j + Si) mod 256 swap Si dan Sj t = (Si + Sj) mod 256 K = St Byte K di XOR dengan plaintexs untuk menghasilkan cipherteks atau di XOR dengan cipherteks untuk menghasilkan plainteks. Enkripsi sangat cepat kurang lebih 10 kali lebih cepat dari DES. Inisialisasi S-Box juga sangat mudah. Pertama isi secara berurutan S0 = 0, S1 = 1,...,S255 = 255. Kemudian isi array 256 byte lainnya dengan kunci yang diulangi sampai seluruh array K0, K1,...,K255 terisi seluruhnya. Set indeks j dengan nol, Kemudian lakukan langkah berikut : for i = 0 to 255 j = (j + Si + Ki) mod 256 swap Si dan Sj Salah satu kelemahan dari RC4 adalah terlalu tingginya kemungkinan terjadi tabel S-box yang sama, hal ini terjadi karena kunci user diulang-ulang untuk mengisi 256 bytes, sehingga 'aaaa' dan 'aaaaa' akan menghasilkan permutasi yang sama. Untuk mengatasi ini maka pada implementasinya nanti kita menggunakan hasil hash 160 bit SHA dari password kita untuk mencegah hal ini terjadi. Kekurangan lainnya ialah karena enkripsi RC4 adalah XOR antara data bytes dan pseudo-random byte stream yang dihasilkan dari kunci, maka penyerang akan mungkin untuk menentukan beberapa byte pesan orisinal dengan meng-XOR dua set cipher byte, bila beberapa dari pesan input diketahui (atau mudah untuk ditebak). Untuk mengatasinya pada aplikasinya kita menggunakan initialization vector (IV) yang berbeda-beda untuk setiap data, sehingga bahkan untuk file yang sama akan dihasilkan ciphertext yang berbeda. IV ini tidak perlu dirahasikan karena digunakan hanya agar setiap proses enkripsi akan menghasilkan ciphertext yang berbeda (Kadry & Smaili, 2010).
Universita Sumatera Utara
Untuk
lebih
meningkatkan
keamanan
dari metoda
ini
dapat
juga
mengembangkan inisialisasi kunci yang baru yang kita sebut saja inisialisasi SK (strengtened key), pada proses ini kunci user di-expand hingga 260 byte (tetapi kemudian hanya 256 byte saja yang digunakan) dengan menggunakan SHA-1, caranya pertama kunci user dijadikan kunci, kemudian 1-20 byte pertama pada buffer diproses dengan SHA kemudian digestnya diletakan pada 20 byte pertama, kemudian diambil byte 1-40 diproses dengan SHA dan hasilnya diletakan mulai pada byte 20, berikutnya byte 1-60 hasilnya diletakkan pada mulai byte 40, dan seterusnya. Kemudian buffer ini dienkrip dengan RC4, lalu buffer dijadikan kunci kembali, proses terakhir ini diulang sebanyak 16 kali untuk mencoba mencampur dengan baik sehingga dihasilkan kunci yang se-random mungkin. Untuk lebih jelas tetang proses ini dapat dilihat pada listing. Penggunaan SHA pada proses inisialisasi kunci bukanlah hal yang baru, hal ini dapat dilihat pada proses inisialisasi kunci SEAL misalnya. Penggunaan proses primitif enkripsi pada inisialisasi kunci juga digunakan juga pada Blowfish ataupun Cobra-128. Secara teoritis dengan proses ini akan ekivalen dengan menggunakan kunci sebesar 2048 bit, walaupun penulis sendiri tidak yakin akan hal ini (mungkin pembaca ada yang bisa memberikan tanggapan). Metoda ini tampaknya sedikit lebih rumit dari pada inisialisasi kunci standar, tetapi pada Pentium 133 prosesnya hanya memerlukan waktu kurang sari 10ms saja. Metoda ini walaupun kami anggap lebih kuat, tetapi belum teruji sehingga dalam penerapan aplikasinya terdapat dua pilihan yaitu dengan metoda SK ini atau dengan metoda standard (Kadry & Smaili, 2010).
Universita Sumatera Utara