BAB II LANDASAN TEORI
2.1. Keamanan dan Kerahasiaan Data Masalah keamanan dan kerahasiaan data merupakan hal yang sangat sangat penting dalam suatu organisasi maupun untuk pribadi. Apalagi kalau data tersebut berada dalam suatu sistem komputer, jaringan komputer bahkan dalam jaringan internasional atau internet. Berkaitan dengan masalah yang terjadi terhadap data yang ada dalam komputer, ruang lingkup keamanan data dalam suatu sistem komputer mencakup hal-hal yang berkaitan dengan : a) Kemanan fisik Komputer harus diletakkan pada tempat yang dapat dikontrol, karena kemungkinan penyalahgunaan dapat terjadi. b) Keamanan akses Seluruh akses terhadap suatu sistem komputer secara administrasi harus terkontrol dan terdokumentasi, sehingga apabila ada suatu permasalahan
dapat
diketahui
penyebabnya
dan
mencari
solusi/pemecahanya. c) Keamanan file atau data Untuk file/data yang sensitif atau bersifat rahasia, diperlukan tingkatan akses dan bahkan dapat dibuatakan suatu kode sandi tertentu sehingga apabila suatu file/data tersebut dicuri, isi informasinya tidak dengan mudah didapatkan. d) Kemanan jaringan Dengan pemanfaatan jaringan publik, data yang ditransmisikan dalam jaringan harus aman dari kemungkinan dapat diketahui isi informasinya sehingga untuk informasi
yang sensitif harus
Universitas Sumatera Utara
7
dibuatakan kode sandi tertentu untuk pengamananya pada saat transmisi. Menurut G. J. Simons, keamanan informasi adalah bagaimana kita dapat mencegah penipuan (cheating) atau paling tidak mendeteksi adanya penipuan di sebuah sistem yang berbasis informasi, dimana informasinya sendiri tidak memiliki arti fisik (Rahardjo, 2005:11). 2.1.1
Aspek Yang Berkaitan Dengan Persyaratan Keamanan Keamanan data pada sistem komputer melingkupi empat aspek, yaitu privacy, integrity, authentication dan availibility. 1. Privacy/Confidentiality Inti utama aspek privacy atau confidentiality adalah usaha untuk menjaga informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah data-data yang sifatnya privat sedangkan confidentiality biasanya berhubungan dengan data yang diberikan ke pihak lain untuk keperluan tertentu. Contoh hal yang berhubungan dengan privacy adalah e-mail seorang pemakai (user) tidak boleh dibaca oleh administrator. Contoh confidential information adalah data-data yang sifatnya pribadi (seperti nama, tempat tanggal lahir, nomor kartu kredit, dan sebagainya) merupakan data-data yang ingin diproteksi penggunaan dan penyebarannya. 2. Integrity Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa seijin pemilik informasi. Adanya virus, trojan horse, atau pemakai lain yang mengubah informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah e-mail dapat saja ditangkap (intercept) ditengah pengiriman dan diubah isinya (altered,
Universitas Sumatera Utara
8
tampered, modified), kemudian diteruskan ke alamat yang dituju. Dengan kata lain, integritas dari informasi sudah tidak terjaga. 3. Authentication Aspek ini berhubungan dengan metode untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul server yang asli. Masalah pertama, membuktikan keaslian dokumen dapat dilakukan dengan
teknologi
watermarking
dan
digital
signature.
Watermarking juga dapat digunakan untuk menjaga “intelectual property”, yaitu dengan menandai dokumen atau hasil karya dengan “tanda tangan” pembuat. Masalah kedua biasanya berhubungan dengan access control, yaitu berkaitan dengan pembatasan orang yang dapat mengakses informasi. Dalam hal ini pengguna harus menunjukkan bukti bahwa memang dia adalah pengguna yang sah, misalnya dengan menggunakan password terhadap sebuah data. 4. Availibility Aspek
availability
atau
ketersediaan
berhubungan
dengan
ketersediaan informasi ketika dibutuhkan. Sistem informasi yang diserang atau dijebol dapat menghambat atau meniadakan akses ke informasi. Contoh hambatan adalah serangan yang sering disebut dengan “denial of service attack” (DoS attack), dimana server dikirimi permintaan (biasanya palsu) atau permintaan yang diluar perkiraan sehingga tidak dapat melayani permintaan lain atau bahkan sampai down, hang, crash. 2.1.2
Aspek Yang Berkaitan Dengan Ancaman Keamanan Aspek yang berkaitan dengan ancaman terhadap keamanan dan kerahasiaan data antara lain :
Universitas Sumatera Utara
9
1) Interruption Merupakan ancaman terhadap availibility, yaitu data dan informasi yang berada dalam sistem komputer dirusak atau dibuang, sehingga menjadi tidak ada dan tidak berguna. 2) Interception Merupakan ancaman terhadap privasy/secrecy, yaitu orang yang tidak berhak namun berhasil mendapatkan akses informasi dari dalam suatu sistem komputer. 3) Modification Merupakan ancaman terhadap integritas, yaitu orang yang tidak berhak tidak hanya berhasil mendapatakan akses informasi dari dalam sistem komputer, tetapi dapat juga melakukan perubahan terhadap informasi. 4) Fabrication Merupakan ancaman terhadap integritas, yaitu orang yang yang tidak berhak yang meniru atau memalsukan suatu objek kedalam sistem. 2.1.3
Keamanan dan Kerahasiaan Data Dalam Jaringan Komputer Keamanan jaringan didefinisikan sebagai sebuah perlindungan dari sumber daya terhaadap upaya penyingkapan, modifikasi, utilisasi, pelarangan, dan perusakan oleh pihak yang tidak diijinkan Untuk menjaga kemanan dan kerahasiaan data dalam suatu jaringan komputer, diperlukan beberapa jenis enkripsi agar data tidak dapat dibaca atau dimengerti oleh sembarang orang, kecuali untuk penerima yang berhak. Pengaman data tersebut selain bertujuan untuk meningkatkan keamanan data juga berfungsi untuk :
Melindungi data agar tidak dapat dibaca oleh orang-orang yang tidak berhak.
Universitas Sumatera Utara
10
Mencegah agar orang-orang yang tidak berhak, tidak menyisipkan atau menghapus data.
Untuk
menyimpan
sesuatu
secara
pribadi,
maka
kita
harus
menyembunyikan agar orang lain tidak tahu. Sebagai contoh, ketika kita mengirim surat kepada seseorang, maka kita membungkus surat tersebut dengan amplop agar tidak terbaca oleh orang lain. Untuk menambah kerahasiaan surat tersebut agar tetap tidak secara mudah dibaca oleh orang apabila amplop dibuka, maka kita mengupayakan untuk membuat mekanisme tertentu agar isi surat tidak secara mudah dapat dipahami. Salah satu hal yang penting dalam komunikasi menggunakan komputer untuk menjamin kerahasiaan data adalah enkripsi. Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti atau tidak terbaca. Enkripsi dapat diartikan sebagai kode atau cipher. Sebuah sistem pengkodean menggunakan suatu tabel atau kamus yang telah didefinisikan untuk mengganti kata dari informasi yang dikirim. Sebuah
cipher
menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unnitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, maka teknik ini digunakan dalam sistem kemanan komputer dan jaringan. Ada 2 hal yang terkait dengan keamanan dan kerahasiaan data dalam jaringan komputer yaitu representasi data dan kompresi data, yang nantinya terkait dengan masalah enkripsi. 2.1.4
Representasi Data Pada kenyataanya, komputer-komputer yang berbeda biasanya mempunyai representasi data internal yang berbeda pula. Sebagai contoh, semua mainframe IBM yang besar menggunakan sistem sandi EBCDIC, sedangakan secara umum komputer produk perusahaan lain menggunakan
Universitas Sumatera Utara
11
sistem sandi ASCII. Oleh karena itu, walaupun semua data diterima tanpa adanya kesalahan , tetapi masih terdapat perbedaan representasi data, maka hasil yang diperoleh akan berbeda pula. Untuk mengatasi masalah itu, maka sebelum diolah data yang diterima harus dikenversi sehingga data yang diterima sesuai dengan sistem sandi komputer penerima. 2.1.5
Kompresi Data Organisai-organisasi yang mengoperasikan jaringan komputer seringkali mengharapkan dapat menekan biaya pengiriman data. Biaya pengiriman itu sangat bergantung dengan banyaknya byte data yang dikirimkan. Oleh karena itu, dengan melakukan kompresi terhadap data, akan dapat menghemat biaya pengiriman data. Istilah kompresi diterjemahkan dari bahasa Inggris “compression” yang berarti pemampatan. Dalam bidang teknik, kompresi berarti proses memampatkan sesuatu yang berukuran besar sehingga menjadi kecil. Dengan demikian, kompresi data berarti proses pemampatan data agar ukuranya menjadi kecil. Pemampatan ukuran berkas melalui kompresi hanya diperlukan ketika berkas tersebut akan disimpan atau dikirim melalui media transmisi atau telekomunikasi dan apabila data tersebut harus dibongkar lagi dan dikembalikan pada format semula agar dapat dibaca kembali. Satuan yang cukup penting dalam kompresi data adalah compression ratio yang menggambarkan seberapa besar ukuran data setelah melewati proses kompresi dibandingkan dengan ukuran berkas yang asli.
2.2. Database Secara etimologis database terdiri dari dua kata yaitu basis dan data yang dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul. Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa, konsep, keadaan dan sebagainya yang dapat dicatat dan mempunyai arti secara implisit (Suhendra , 2012).
Universitas Sumatera Utara
12
Basis data adalah dua atau lebih simpanan data dengan elemen-elemen data penghubung, yang dapat diakses lebih dari satu cara. Basis data dinyatakan dengan teknik-teknik formal dan manajemen basis data. Dari defenisi diatas maka dapat diartikan bahwa basis data merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainya (Iskandar, 2008). Menurut George Tsu-der Chou basis data merupakan kumpulan informasi yang bermanfaat yang diorganisasikan ke dalam aturan yang khusus, informasi ini adalah data yang telah diorganisasikan ke dalam bentuk yang sesuai dengan kebutuhan seseorang. Menurut Encyclopedia of Computer Science and Engineer, para ilmuwan dibidang informasi menerima definisi standard informasi yaitu data yang digunakan dalam pengambilan keputusan (Dzacko, 2007) Definisi lain dari basis data menurut Fabbri dan Schwab adalah sistem berkas terpadu yang dirancang terutama untuk meminimalkan duplikasi data. Menurut Ramez Elmasri mendefinisikan basis data lebih dibatasi pada arti implicit yang khusus, yaitu ; a. Basis data merupakan penyajian suatu aspek dari dunia nyata. b. Basis data merupakan kumpulan data dari berbagai sumber yang secara logika mempunyai arti implicit. Sehingga data yang terkumpul secara acak dan tanpa mempunyai arti tidak dapat disebut basis data. c. Basis data perlu dirancang, dibangun dan data dikumpulkan untuk suatu tujuan. Basis data dapat digunakan oleh beberapa user dan beberapa aplikasi yang sesuai dengan kepentingan user. Data diorganisasikan dalam bentuk elemen data (field), rekaman (record), dan berkas (file) seperti yang ditunjukan pada gambar 2.1 berikut. Elemen data adalah satuan data terlecil yang tidak dapat dipecah lagi menjadi unit lain yang bermakna. Rekaman merupakan gabungan dari sejumlah elemen yang saling terkait. Istilah lain dari rekaman adalah tupelo. Berkas adalah himpunan seluruh rekaman yang bertipe sama.
Universitas Sumatera Utara
13
Berkas (File)
Rekaman (Record)
Rekaman (Record)
Elemen data (Field)
Elemen data (Field)
Rekaman (Record)
...
Elemen data (Field)
Gambar 2.1 Hirarki Data
2.2.1
Database Management System (DBMS) Database Management System adalah konsep basis data yang menyimpan semua data dalam bentuk tabel. Sebuah tabel menyimpan informasi mengenai sujek tertentu. Dengan DBMS sebuah basis data akan dengan mudah dikelola walaupun jumlah data banyak dan sangat kompleks. Pada prinsipnya DBMS terbagi menjadi 3 bagian, yaitu : 1. Data Defenition, mendefinisikan jenis data yang akan dibuat, cara relasi data, validasi data dan lainya. 2. Data manipulation, data yang telah dibuat dan didefinisikan akan dilakukan beberapa pengerjaan, seperti sharing data, proses query dan lain sebagainya. 3. Data control, berhubungan dengan mengendalikan data, seperti siapa yang dapat melihat data, bagaimana data bisa digunakan oleh banyak user dan sebagainya.
Universitas Sumatera Utara
14
2.2.2
Keamanan Basis Data Salah satu aspek yang terpenting dalam keamanan basis data adalah proteksi terhadap pengaksesan, pembacaan informasi, pemodifikasian dan pengrusakan data oleh pihak yang tidak berwenang. Keamanan basis data juga berarti menjaga penyalahgunaan basis data baik secara sengaja, misalnya pengambilan dan pembacaan data, pengubahan data dan penghapusan data oleh pihak yang tidak berwenang, maupun secara tidak sengaja seperti kerusakan selama transaksi, anomali yang disebabkan oleh akses basis data konkuren, anomali yang disebabkan oleh pendistribusian data pada beberapa komputer dan logika error yang mengancam kemampuan transaksi untuk mempertahankan konsistensi basis data. Persoalan keamanan basis data dapat dikategorikan menjadi
beberapa
tingkatan, yaitu : 1. Fisikal, menyangkut keamanan yang berkaitan dengan dimana tempat sistem basis data berada. 2. Manusia, setiap pengguna basis data harus diatur otoritasnya sedemikian rupa sehingga setiap pengguna hanya dapat mengakses data yang berhak diakses pengguna yang berkaitan. 3. Sistem Operasi, kelemahan pada sistem operasi memungkinkan pengaksesan data oleh pihak yang tidak berwenang. 4. Sistem basis data, sistem basis data yang digunakan harus menjamin setiap penggunaan basis data agar tidak melanggar otoritas yang dimiliki masing-masing. 2.3. Kriptografi Penggunaan teknologi komunikasi dan penyimpanan data dengan menggunakan komputer memungkinkan pengiriman data jarak jauh yang relatif cepat dan murah. Namun di lain pihak pengiriman data jarak jauh melalaui gelombang radio dan media lain yang digunakan masyarakat luas sangat memungkinkan pihak lain dapat menyadap dan mengubah data yang dikirimkan. Demikian juga, pada sistem
Universitas Sumatera Utara
15
jaringan komputer maupun secara luas pada internet dengan jumlah pemakai yang banyak. Dalam teknologi informasi, salah satu cara yang ditempuh untuk mengatasi masalah ini adalah dengan menggunakan kriptografi yang menggunakan transformasi data sehingga data yang dihasilkan tidak dapat dimengerti oleh pihak ketiga. Transformasi ini memberikan solusi pada dua masalah keamanan data, yaitu masalah privasi (privacy) dan keautentikan (authentication). Privasi mengandung arti bahwa data yang dikirimkan hanya dapat dimengerti informasinya oleh penerima yang sah. Sedangkan keautentikan mencegah pihak ketiga untuk mengirimkan data yang salah atau mengubah data yang dikirimkan. Kriptografi (cryptography) berasal dari bahasa yunani : “Cryptos” yang artinya “secret” (rahasia), sedangkan “graphein” yang artinya “writing” (tulisan). Jadi, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (Munir,2006:2). Kata “seni” tersebut berasal dari fakta sejarah bahwa pada masamasa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap pelakukriptografi sehingga setiap menulis pesan rahasia, pesan mempunyai mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan. Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi (Kromodimoeljo, 2010 : 25). Proses enkripsi dilakukan menggunakan suatu algotritma dengan beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak dibeberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter. Dalam kriptografi klasik, teknik enkripsi yang digunaan adalah enkripsi simetris dimana kunci enkripsi sama dengan kunci dekripsi. Secara garis besar, proses enkripsi adalah proses pengacakan pesan asli (plaintext) menjadi pesan acak (ciphertext) yang sulit dibaca oleh seseorang yang tidak mempunyai
Universitas Sumatera Utara
16
kunci dekripsi. Yang dimaksud dengan sulit untuk dibaca adalah peluang untuk mendapat kembali pesan asli oleh seseorang yang tidak mempunyai kunci dekripsi dalam waktu yang tidak terlalu lama sangat kecil. Walaupun awalnya kriptografi digunakan untuk merahasiakan pesan teks , kini kriptografi digunakan untuk data apa saja yang berbentuk digital. Adapun tujuan dari sistem kriptografi adalah sebagai berikut : a. Confidentiality Memberikan kerahasiaan pesan dan menyimpan data dengan menyembunyikan informasi lewat teknik-teknik enkripsi. b. Message Integrity Memberikan jaminan untuk tiap bagian bahwa pesan tidak akan mengalami perubahan dari saat dibuat sampai saat dibuka. c. Non-Repudiation Memberikan cara untuk membuktikan bahwa suatu dokumen datang dari seseorang apabila ia mencoba menyangkal memiliki dokumen tersebut. d. Authentication Memberikan dua layanan. Pertama, mengidentifikasi keaslian suatu pesan dan memberikan aminan keautentikanya. Kedua, menguji identitass seseorang apabila akan memasuki sebuah sistem. Dengan demikian menjadi jelas bahwa kriptografi dapat diterapkan dalam banyak bidang. 2.3.1
Algoritma Kriptografi Algoritma kriptografi pertama kali dikembangkan untuk mengizinkan organisasi tertentu yang ditunjuk untuk mengakses suatu informasi. Pertama kalinya kriptografi digunakan sebagai petenjuk untuk perang. Menurut sejarah, Julius Caesar dikenal sebagai orang yang pertama kali
Universitas Sumatera Utara
17
telah mengembangakn algoritma kriptografi untuk mengirimkan pesan ke tentaranya. Algoritma kriptografi telah mengalami perkembangan dan perbaikan sehingga hasilnya lebih memuaskan, misalnya algoritma DES, RSA, dan lainya. Kriptografi adalah suatu ilmu ataupun seni untuk mengamankan pesan atau informasi dan dilakukan oleh cryptographer, sedangkan cryptanalysis adalah suatu ilmu dan seni untuk membuka ciphertext dan orang yang melakukanya disebut cryptanalyst (Munir, 2006). Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan tranformasi pencipheran tertentu disebut sebagai set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan. Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut : EK (M) = C (Proses Enkripsi) DK (C) = M (Proses Dekripsi) Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya. Dengan demikian keamanan suatu pesan tergantung pada kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan sehingga algoritma-algoritma yang digunakan tersebut dapat dapat dipublikasikan dan dianalisis, karena tidak menjadi masalah apabila seseorang mengetahui
Universitas Sumatera Utara
18
algoritma yang digunakan. Selama tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan. Algoritma kriptografi secara umum dibagi menjadi 2, yaitu algoritma kriptografi kunci rahasia dan algoritma kriptogarfi kunci publik. 2.3.2
Tipe Dan Karakteristik Algoritma Kriptografi Secara umum, algoritma kriptografi kunci rahasia menyatakan bahwa algoritma dimana enkripsi digunakan dalam mengenkripsi data, dan kunci dekripsi untuk merubah data kebentuk aslinya. Karena atribut ini, algoritma kriptografi kunci rahasia disebut juga dengan algoritma kriptografi kunci simetris. Untuk algoritma kriptografi kunci publik menyatakan bahwa algoritma enkripsi dan dekripsi berbeda. Algoritma kriptografi kunci publik mempunyai karakteristik : tidak ada penghitungan kembali dari kunci dekripsi bahkan sesudah kunci enkripsi dilakukan. Berawal dari kondisi ini, kunci enkripsi disebut sebagai kunci publik dan kunci dekripsi disebut sebagai kunci pribadi. Algoritma kriptografi kunci rahasia dan publik menggunakan algoritma enkripsi dan algoritma tanda tangan digital secara berturut-turut. Dalam algoritma enkripsi, isi pesan hanya dapat dilihat oleh pribadi yang tahu kunci enkripsi, sedangkan dalam tanda tangan digital pengirm pesan dapat diketahui. Dalam tanda tangan digital kunci publik, kunci enkripsi (kunci publik) untuk enkripsi data dan (kunci pribadi) untuk dekripsi data. Disini kunci rahasia digunakan untuk tanda tangan, sedangkan kunci publik digunakan untuk mengecek. Hal ini akan menolong kunci rahasia untuk tidak bisa dibaca oleh orang lain. Tetapi kunci publik dapat dilihat oleh beberapa orang sehingga bisa dengan mudah memperoleh dan meggunakanya. Karakteristik dan tipe dari algoritma kriptigrafi dapat dilihat pada gambar 2.2 berikut ini :
Universitas Sumatera Utara
19
Secrecy
Integrity
Secrecy
Encryption
Hash
Digital Signature
Secret Key
Public Key
Hash
Gambar 2.2 Tipe dan karakteristik algoritma kriptografi 2.3.3
Algoritma Kriptografi Kunci Rahasia Dalam algoritma kirptografi kunci rahasia, kunci digunakan untuk enkripsi data dan tidak diberi kuasa kepada publik melainkan hanya kepada orang tertentu yang tahu dan dapat membaca data yang dienkripsi. Karakteristik algoritma kunci rahasia adalah bahwa kunci enkripsi sama dengan kunci dekripsi , seperti yang ditunjukkan pada gambar 2.3 berikut. Plain Text
Encryption
Encryption Text
Secret Key
Encryption Text
Decryption
Plain text
Gambar 2.3 Algoritma kunci rahasia Algoritma kunci rahasia disebut juga dengan algoritma kunci simetris. Untuk
menggunakan
algoritma
kunci
rahasia
dalam
lingkungan
Universitas Sumatera Utara
20
komunikasi, kedua belah pihak yang berkomunikasi satu dengan yang lainya harus saling membagi kunci enkripsi sebelumnya. 2.3.4
Algoritma Kriptografi Kunci Publik Dalam algoritma kunci publik, kunci enkripsi dan dekripsi sama. Untuk alasan ini, algoritma kunci publik disebut algoritma kunci asimetris. Karakteristik algoritma kunci publik adalah bahwa kunci dekripsi tidak dibuka, bahkan sesudah kunci enkripsi dibuka. Dalam algoritma kunci publik, kunci enkripsi dibuka sehingga tidak seorang pun dapat menggunakanya. Tetapi, untuk dekripsi hanya seorang yang punya kunci dan dapat menggunakanya. Untuk alasan ini, kunci yang digunakan untuk proses enkripsi disebut kunci publik, sedangkan kunci yang digunakan untuk dekripsi disebut kunci rahasia seperti yang ditunjukan pada gambar 2.4 berikut.
Transmitting
Plain Text
Encryption
Encryption Text
Public Key of Receiver Private Key of Receiver
Receiving
Encryption Text
Encryption
Plain Text
Gambar 2.4 Algoritma kriptografi kunci publik Algoritma kunci publik digunakan untuk banyak area yang berbeda. Yang paling umum digunakan adalah dalam hal pengiriman kunci rahasia pada tahap awal, dimana kunci rahasia digunakan dalam tanda tangan digital.
Universitas Sumatera Utara
21
Ketika membandingkan kelebihan dan kelemahan antara algoritma kunci rahasia dan publik, algoritma kunci publik pada umumnya mempunyai lebih banyak keuntungan dalm hal kriptografi. Ini karena informasi rahasia dari seseorang tidak harus dikirim dan dienkripsi informasi serta aplikasi berbeda satu dengan yang lain sehingga tidak mudah untuk diintegrasikan; dapat digunakan untuk sistem distribusi kunci algoritma kunci rahasia, tanda tanga digital untuk pemeriksaan pembuat pesan dan identifikasi untuk pemeriksaan identitas pengguna. 2.3.5
Algoritma Vigenere Cipher Salah satu masalah utama dengan simple substitution cipher adalah kodekode mudah dibajak untuk dianalisis frekuensinya. Dengan ciphertext yang besar maa dapat dengan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam teks Inggris. Oleh karena itu, untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi. Vigenere cipher merupakan salah satu algoritma klasik dengan teknik substitusi. Nama Vigenere diambil dari seseorang yang bernama Blaise de Vigenere karena Vigenere cipher pertama kali diusulkan oleh Blaise de Vigenere dari pengadilan Henry III di Prancis pada abad 16 (Tahun 1568). Vigener Cipher adalah metode menyandikan teks alfabet dengan menggunakan deretan Caesar berdasarkan huruf-huruf pada kata kunci. Vigenere Cipher menggunakan tabel seperti pada tabel 2.1 dan tabel 2.2 berikut, Vigenere Cipher dengan angka dan huruf dalam melakukan enkripsi (Arjana, 2012). Teknik dari substitusi Vigenere Cipher dapat dilakukan dengan 2 cara, yaitu: angka dan huruf.
Universitas Sumatera Utara
22
Tabel 2.1 Tabel Vigenere angka Vigenere Cipher menggunakan suatu kunci yang memiliki panjang tertentu. Panjang kunci tersebut bisa lebih pendek maupun sama dengan panjang palintext. Jika panjang kunci lebih pendek dengan plaintext, maka kunci tersebut akan diulang secara periodik
sehinnga panjang kunci
tersebut sama dengan panjang plaintextnya. Tabel 2.2 Tabel huruf Vigenere Cipher
Algoritma enkripsi Vigenere Cipher adalah : Ci = (Pi + Ki) mod 26 Algoritma dekripsi Vigenere Cipher adalah : Pi = (Ci – Ki) mod 26 ;
untuk Ci >= Ki
= (Ci + 26 – Ki) mod 26 ; untuk Ci <= Ki
Universitas Sumatera Utara
23
Dimana : Ci = Nilai dari karakter ciphertext ke-i Pi = Nilai dari karakter plaintext ke-i Ki = Nilai dari karakter kata kunci ke-i Sebagai contoh , jika plaintext adalah DODIEHERMAWANPURBA dan kata kunci adalah CIPHER maka proses enkripsi adalah sebagai berikut : Plaintext
= DODIEHERMAWANPURBA
Kunci
= CIPHER
Ciphertext
= …?
Prose Enkripsi : P = DODIEHERMAWANPURBA P1 = D
P7 = E
P13 = N
P2 = O
P8 = R
P14 = P
P3 = D
P9 = M
P15 = U
P4 = I
P10 = A
P16 = R
P5 = E
P11 = W
P17 = B
P6 = H
P12 = A
P18 = A
Kunci = CIPHER, karena panjang karakter lebih kecil dengan plainext maka kata kunci diulang sehingga menjadi sama dengan panjang karakter plaintext sehingga K = CIPHERCIPHERCIPHER Ci = (Pi+Ki) mod 26; maka C1 = (P1 + K1) mod 26
Universitas Sumatera Utara
24
= (3 + 2) mod 26 C1 = 5
C7 = 6
C13 = 15
C2 = 22
C8 = 25
C14 = 23
C3 = 18
C9 = 1
C15 = 7
C4 = 15
C10 = 7
C16 = 24
C5 = 8
C11 = 0
C17 = 5
C6 = 24
C12 = 17
C18 = 17
C = 5 22 18 15 8 24 6 25 1 7 0 17 15 23 7 24 5 17 Untuk ciphertext yang didapat diperoleh
subtitusi dari nilai masing-
masing C ke dalam tabel Vigenere, sehingga yang menjadi Ciphertext adalah FWSPIYGZBHARPXHYFR. 2.3.6
Metode Blowfish Blowfish merupakan metode enkripsi yang mirip dengan DES (DES-like cipher) dan yang ditujukan untuk mikroprosessor besar (32 bit ke atas dengan cache data yang besar) (Tambunan, 2010: 6). Blowfish atau disebut juga dengan OpenPGP.Cipher.4 merupakan algoritma kunci simetrik cipher blok dengan panjang blok tetap 64 bit dan menerapkan teknik kunci sembarang serta bebas lisensi dan dirancang pada tahun 1993 oleh Bruce Shneier untuk menggantikan DES (Data Encryption Standard) (Suhendra, 2012). Metode Blowfish terdiri dari 2 bagian yaitu Pembangkitan sub-kunci (KeyExpansion) dan enkripsi data. Enkripsi data terdiri dari iterasi fungsi sederhana (Feistel Network) sebanyak 16 kali putaran. Semua operasi adalah dan XOR pada variabel 32-bit. Pada Metode Blowfish, digunakan banyak sub-key. Kunci-kunci ini harus dihitung atau dibangkitkan terlebih dahulu sebelum dilakukan enkripsi atau dekripsi data.
Universitas Sumatera Utara
25
Blowfish dikembangan untuk memenuhi kriteria rancangan sebagai berikut
Cepat,
Blowfish
melakukan
enkripsi
data
pada
mikriprosessor 32-bit dengan rate 26 clock cycle per bite.
Compact, Blowfish dapat dijalankan pada memori kurang dari 5 KB.
Sederhana,
Blowfish
hanya
menggunakan
operasi
perhitungan yang sederhana seperti : penambahan, XOR, dan lookup tabel pada operand 32 bit.
Memiliki tingkat keamanan yang variatif. Panjang kunci yang digunakan oleh Blowfish bervariasi bisa sampai panjang minimum 32-bit, maksimal 448-bit, multiple 8-bit dan default 128 bit.
Namun, dalam penerapanya Blowfish sering kali tidak menjadi optimal. Karena strategi implementasi yang tidak tepat. Algoritma Blofish akan menjadi optimal jika digunakan untuk aplikasi yang tidak sering berganti kunci seperti jaringan komunikasi atau enkripsi file ototmatis. Untuk melakukan enkripsi pada Blowfish langkah-langkahnya adalah sebagai berikut : 1. Bagi X menjadi dua bagian yang masing-masing terdiri dari 32-bit yaitu XL dan XR. 2. For I = 1 to 16 : a) XL = XL Xor P(i) b) XR = F (XL) Xor XR c) Tukar XL dan XR 3. Setelah iterasi keenambelas tukar XL dan XR lagi untuk membatalkan pertukaran terakhir. 4. Lalu lakukan : a) XR = XR Xor P17 b) XL = XL Xor P18
Universitas Sumatera Utara
26
5. Terakhir
gabungkan
kembali
XL
dan
XR
untuk
mendapatkan ciphertext. Seperti yang ditunjukan pada gambar 2.5 berikut adalah alur terhadap proses jaringan Feistel pada metode Blowfish.
= Xor
Plaintext 64
32
32
P1 P1 P1
F
F1
P2 P2
F
P2
F2 (13 More Iteration)
F
F15
P15
P16 P16 F
F16
Plaintext Gambar 2.5 Jaringan Feistel Metode Blowfish
Universitas Sumatera Utara
27
Fungsi F adalah cara untuk membagi Xl menjadi 4 bagian 8-bit yaitu a,b,c,dan d seperti pada gambar 2.6 berikut, maka : F(XL) = (((S1,a + S2,b) Xor S3,c) + S4,d)
8 bits
S-box 1
= XOR
32 bits ∑
∑ 8 bits
S-box 2
= SUM
32 bits 32 bits
= SUM
32 bits 8 bits
8 bits
S-box 3
32 bits
∑
32 bits
S-box 4 Gambar 2.6 Skema Fungsi F
Metode Blowfish terdiri dari 2 bagian, yaitu : Key Expansion yang berfungsi untuk merubah kunci yang dapat mencapai 448-bit menjadi beberapa array subkunci dengan total 4168 byte, dan Enkripsi data merupakan suatu proses yang terdiri dari iterasi fungsi sederhana (Feistel Network) sebanyak 16 kali putaran. Setiap putaran terdiri dari permutasi kunci dependent serta substitusi kunci dan data dependent. Semua operasi merupakan penambahan dan XOR pada variabel 32-bit. Operasi tambahan lainya hanyalah empat penelusuran tabel array berindeks untuk setiap putaran. Metode Blowfish memiliki keunikan dalam hal dekripsi, yaitu proses dekripsi dilakukan dengan urutan yang sama persis dengan enkripsi hanya saja proses dekripsi pada P1,P2,…,P18 dilakukan dengan urutan yang terbalik.
Universitas Sumatera Utara
28
Cara menghitung atau membangkitkan subkunci pada Metode Blowfish (Ibrahim , 2012 : 88), caranya adalah sebagai berikut : 1. Inisialisasi P-array dan kemudian S-box secara berurutan dengan string yang tetap. String ini terdiri dari hexadesimal dari pi. Contoh : P1 = 0x243f6a88 P2 = 0x85a308d3 P3 = 0x13198a2e P4 = 0x03707344 2. XOR P1 dengan 32 bit kunci pertama, XOR P2 dengan 32 bit kedua dari kunci dan seterusnya untuk setiap bit dari kunci (sampai P18). Ulangi terhadap bit kunci sampai seluruh P-array di XOR dengan bit kunci. 3. Enkrip semua string nol dengan Metode Blowfish dengan menggunakan subkunci seperti pada langkah 1 dan langkah 2. 4. Ganti P1 dan P2 dengan keluaran dari langkah 3. 5. Enkrip keluaran dari langkah 3 dengan Metode Blowfish dengan subkunci yang sudah dimodifikasi. 6. Ganti P3 dan P4 dengan keluaran dari langkah 5. 7. Lanjutkan proses tersebut, ganti seluruh elemen dari Parray, dan kemudian seluruh keempat S-box berurutan, dengan keluaran yang berubah secara kontinu dari Metode Blowfish. Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang dibutuhkan. Aplikasi kemudian dapat menyimpan subkunci ini dan tidak dibutuhkan langkah-langkah proses penurunan ini berulang kali, kecuali kunci yang digunakan berubah (Ibrahim,2012:89).
Universitas Sumatera Utara
29
Proses dekripsi pada Metode Blowfish sama dengan proses enkripsi hanya saja subkunci P1 sampai P18 digunakan dalam urutan terbalik yaitu P1 menjadi P18, P2 menjadi P17 dan seterusnya. Didalam proses dekripsi ciphertext diubah kembali dalam bentuk plaintext atau kondisi semula sebelum dienkripsi. Sampai saat ini Metode Blowfish tidak ditemukkan kelemahan yang berarti hanya ada weak key dimana dua entri dari S- box mempunyai nilai yang sama. Belum ada cara untuk mengecek weak key sebelum melakukan key ekspansion, tetapi hal ini tidak berpengaruh terhadap hasil enkripsi. Hasil enkripsi dengan Metode Blowfish sangat tidak mungkin dan tidak praktis untuk diterjemahkan tanpa bantuan kunci. Sampai saat ini belum ada cryptanalysis yang dapat membongkar pesan tanpa kunci yang dienkripsi dengan memeakai bantuan Metode Blowfish. Agar lebih aman dari pembongkaran pesan maka dalam algoritmanya harus menggunakan tidak kurang dari 16 putaran agar pesan tidak dapat dibongkar. Metode Blowfish pun cukup dapat digabungkan dengan algoritma enkripsi lainya dalam pengenkripsian sebuah data untuk lebih menjamin kerahasiaan dari data tersebut.
Universitas Sumatera Utara