• Tidak ada hasil yang ditemukan

Sistem keamanan menggunakan algoritma bl

N/A
N/A
Protected

Academic year: 2018

Membagikan "Sistem keamanan menggunakan algoritma bl"

Copied!
27
0
0

Teks penuh

(1)

SISTEM KEAMANAN MENGGUNAKAN ALGORITMA

BLOWFISH ADVANCE CS PADA FILE DAN FOLDER DATA

Tugas Akhir

Mata Kuliah Keamanan Jaringan Komputer

Oleh

Trisnawati

08053111015

JURUSAN TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER

(2)

SISTEM KEAMANAN MENGGUNAKAN ALGORITMA

BLOWFISH ADVANCE CS PADA FILE DAN FOLDER DATA

Abstrak

Masalah keamanan dan kerahasiaan data merupakan hal yang sangat penting baik dalam suatu organisasi yang berupa komersial ( perusahaan ), perguruan tinggi, lembaga pemerintahan, maupun dalam hal individual ( pribadi ). Apalagi kalau data tersebut berada dalam suatu jaringan komputer yang terhubung / terkoneksi ke jaringan publik atau internet. Kemampuan untuk mengakses dan menyediakan informsi secara cepat dan akurat akan sangat berpengaruh terhadap suatu organisasi tersebut. Kita sebisa mungkin menjaga agar data tersebut jangan sampai di baca apalagi di bajak oleh pihak yang tidak berwenang. Apabila hal sampai terjadi maka hal yang paling buruk adalah memungkinkan data yang kita punyai akan rusak ( diganti ) atau juga bahkan bisa hilang, dan akan sangat menimbulkan kerugian materi yang besar bagi kita.

Pada tulisan ini akan mencoba untuk membahas sistem keamanan pengiriman pesan / data dengan menggunakan suatu bentuk penyandian yang bertujuan untuk menjaga kerahasiaan data atau kerahasiaan suatu pesan. Agar pesan / data yang kita kirimkan tidak bisa di akses atau di baca oleh orang yang tidak berhak. Karena banyak sekali sistem keamanan yang digunakan oleh suatu organisasi atau juga pribadi, maka di sini akan menggunakan salah satu metodenya yaitu dengan menggunakan suatu metode sistem keamanan dengan menggunakan algoritma Kriptographi. Algoritma Kriptographi terdapat 2 ( dua ) macam yaitu Algoritma Kunci Simetri dan Algoritma Kunci Asimetri.

(3)

KATA PENGANTAR

Puji syukur kehadirat Allah SWT atas limpahan rahmatNya sehingga Tugas

Akhir Mata Kuliah Keamanan Jaringan Komputer ini berjudul “Sistem Keamanan

menggunakan Algoritma Blowfish Advance CS pada File dan Folder data” akhirnya

dapat terselesaikan juga.

Penyusunan Tugas Akhir ini banyak sekali melihat dari berbagai macam

referensi-referensi yang ada. Penulis juga mengucapkan terima kasih serta memberikan penghargaan

setinggi-tingginya kepada yang terhormat : Bapak Deris Stiawan M.Kom selaku Dosen yang

mengajar Mata Kuliah Keamanan Jaringan Komputer yang telah memberikan tugas akhir ini

sehingga penulis bisa mengetahui dan memahami lebih banyak lagi tentang Algoritma

Kriptographi khususnya pada Algoritma Blowfish Advance CS.

Mudah-mudahan apa yang penulis tulis ini dapat berguna bagi kita semua dan

dengan rendah hati penulis berharap apabila ada kesalahan terhadap penulisan dan

kata-kata pada Tugas Akhir ini mohon kiranya dapat di maafkan.

Palembang, Mei 2008

Penulis

(4)

Halaman

2.1

Algoritma Kunci Simetri ... 9

2.1.1 Reversibility algoritma kunci simetri ... 9

2.1.2 Deskripsi cipher blok ... 10

2.2 Apa itu Blowfish ? ……….. 12

2.3 Kotak permutasi / pemutihan ……….. 13

2.4 Enkripsi Algoritma Blowfish …... 14

2.5 Dekripsi Algoritma Blowfish ... 15

BAB III PEMBAHASAN ... 20

3.1 Analisis Algoritma Blowfish …... . 20

3.2 Pembuktian Algoritma Blowfish ... 21

BAB IV KESIMPULAN ………... 26

Kesimpulan ... 26

(5)

BAB I PENDAHULUAN

1.1 Latar Belakang

Di era globalisasi ini, dimana segala sesuatunya itu berjalan dengan cepat, kemajuan teknologi semkain memudahkan manusia untuk berkomunikasi dan saling bertukar informasi. Tetapi dengan kemajuan teknnologi itu pula dapat mengakibatkan informasi yang ditukar bisa terganggu dan bia saja dapat di ubah oleh orang lain yang tidak berhak.

Keamanan dan kerahasiaan sebuah data atau informasi dalam komunikasi dan pertukaran informasi menjadi hal yang sangat penting. Itu dikarenakan seringkalinya data atau informasi yang penting kadang tidak sampai ke tangan si penerima atau juga bahkan bisa sampai ke tangan si penerima tapi data yang di terima tersebut di sadap terlebih dahulu tanpa pengetahun dari si pengirim maupun oleh si penerima itu sendiri. Dan bisa saja data asli tersebut oleh si penyadap dirubah datanya sehingga yang seharusnya dikirim ke si penerima berupa data yang asli menjadi data yang tidak sesuai, sehingga bisa menjatuhkan pihak si pengirim. Padahal isi data sebenarnya tidak seperti itu.

Hal inilah yang seringkali di takutkan oleh pihak – pihak yang saling ingin bertukar informasi. Mereka takut apakah data yang mereka kirim tersebut bisa sampai ke si penerima atau tidak, sehingga masalah keamanan dan rahasianya sebuah data merupakan hal yang sangat penting dalam pertukaran informasi. Maka dari itu saking pentingnya data yang di berikan tersebut agar bisa sampai ke penerima dalam bentuk yang autentik diperlukannya sebah metode untuk merahasiakan data yang dikirim tersebut.

(6)

1.1.1 Sejarah Kriptographi

Agoritma Kriptographi pertama kali digunakan sebagai petunjuk dalam perang. Menurut Sejarah pada tahun 1900 SM Julius Caesar dikenal sebagai orang yang pertama kali mengembangkan algoritma kriptographi untuk mengirimkan pesan kepada tentaranya yang sedang di medan peperangan. Algoritma yang digunakan oleh Julius Caesar itu sendiri dikenal dengan nama caesar chiper. Yang mana cara kerjayanya dengan menggeser setiap huruf dalam pesan yang akan menjadi algoritma standar sehingga dapat menginformasikan semua keputusan dan kemudian mengirimkan pesan tersebut dalam bentuk yang aman.

Kriptographi ( Cryptography ) atau yang lebih sering dikenal dengan ilmu penyandian data adalah suatu ilmu sekaligus seni untuk menjaga kerahasiaan pesan baik itu berupa data maupun informasi yang mempunyai tujuan untuk menjaga kerahasiaan suatu pesan kita dari pihak – pihak lain yang ingin mengakses data kita secara ilegal.

Kriptographi semulanya hanya digunakan oleh pihak militer dan bidang intelijen untuk menyandikan pesan mereka. Akan tetapi seiring dengan berkembangnya teknologi, kebutuhan sistem keamanan semakin besar dan semakin pesat. Sehingga semakin yang kompleks pulalah data yang harus di amankan. Maka Kriptogrpahi yang dahulunya hanya dipergunakan oleh militer saja menjadi sangat populer. Karena Kriptographi di anggap sebagai metode sistem keamanan yang baik walaupun bukan yang terbaik. Sehingga banyak Organisasi maupun pihak pribadi menggunakannya karena sudah teruji dan tebukti keamanannya.

Ilmu Kriptographi sendiri sebenarnya telah dipergunakan oleh Kerajaan Inggris pada saat di pancungnya Queen Merry setelah terbongkarnya komunikasi rahasia dengan kelompok anti Queen Elisabeth oleh lawannya yang menggunakan jasa pakar pemecah kode rahasia. Pada PD II Jerman juga telah menggunakan mesin enigma untuk penyandian pesan rahasianya. Sedangkan di Indonesia sendiri mempunyai suatu badan yang Bernama Lembaga Sandi Negara.

(7)

1.1.2 Tujuan Kriptographi

Kriptographi merupakan dasar bagi keamanan komputer dalam jaringan, yang menjadi pokoknya data atau informasi, sedangkan yang menjadi sarana distribusinya adalah komputer. Untuk selalu menjaga agar data maupun informasi yang di kirim bebas dari pihak luar maka digunakan suatu metode yaitu Kriptographi. Metode kriptographi merupakan salah satu cara untuk mengamankan data, sehingga baik data maupun informasi yang di sharing antar ke dua belah pihak dapat di amankan tanpa ada pihak lain yang tidak berkepentingan untuk bisa mengaksesnya.

Yang terutama dalam menjalankan komunikasi antara kedua blekah pihak adalah keamanan datanya. Apakah data tersebut telah aman atau tidak kita tidak bisa mengetahuinya. Sehingga masalah privatnya data sampai ke masalah Otentik (Asli) atau tidaknya data kita dapat mengetahuinya dengan mengunakn metode kriptographi. Privat Data disini maksudnya adalah data tersebut hanya bisa dimengerti oleh pihak yang mengirim dan menerima informasi tersebut. Sehingga orang lain diusahakan agar tidak bisa mengaksesnya. Sedangkan otentik data disini maksudnya apakah data yang dikirim oleh si pengirim tersebut sesuai dengan data yang telah diterima oleh si penerima atau tidak. Sehingga tujuannya adalah mencegah agar orang lain atau pihak ketiga untuk memanipulasi/mengubah, menghapus atau bahkan juga bisa membuat data yang dikirimkan tersebut tidak sampai ke pengirim.

Adapun tujuan dari kriptographi itu sendiri adalah :

1. Melindungi pesan, data, atau informasi yang akan dikirimkan agar tidak bisa di baca oleh oranng – orang yang tidak berhak

2. Mencegah agar orang – orang yang tidak berhak itu menyisipkan pesan, megubah pesan, atau juga bahkan bisa menghapus pesan yang akan dikirimkan.

3. Memberikan jaminan bahwa pesan tidak akan mengalami perubahan dari saat data dikirim sampai dengan saat data tersebut diterima oleh si penerima.

4. Memberikan kerahasiaan pesan dan menyimpan data dengan cara menyebunyikan informasi yang dkirim melalui teknik peng-enkripsian. 5. Memberikan jaminan akan keotentikannya data yang dikirim, dan juga

bisa menguji identitas seseorang apabila ia akan masuk ke sebuah sistem 6. Memberikan cara untuk membuktikan bahwa suatu dokumen datang dari

(8)

1.2

Tujuan Penelitian

Penelitian ini dibuat oleh penulis dengan tujuan sebagai berikut :

1. Untuk memenuhi tugas matakuliah “Keamanan Jaringan Komputer” yang diberikan oleh dosen pengajar.

2. Agar penulis bisa memahami dan mengerti tentang Kriptographi yang juga menjadi bahan ajar matakuliah tersebut.

3. Secara keseluruhan agar penulis dapat memahami cara kerja dan struktur algoritma dari Blowfish itu sendiri.

4. Dan juga apa yang telah ditulis ini bisa penulis implementasikan dalam sebuah pesan yang ingin di rahasiakan oleh penulis.

1.3 Metode Penelitian

(9)

BAB II LANDASAN TEORI

2.1 Algoritma Kunci Simetri

Algoritma kunci simetri adalah algoritma kriptografi yang memiliki kunci yang sama untuk proses enkripsi dan dekripsinya. Kunci tersebut merupakan satu-satunya jalan untuk proses enkripsi (kecuali mencoba membobol algoritma tersebut), sehingga kerahasiaan kunci menjadi nomor satu. Untuk mengirimkan kunci tersebut ke suatu pihak tanpa diketahui pihak yang lain merupakan masalah awal dari algoritma kunci simetrik.

Algoritma kunci simetri terbagi menjadi dua buah bergantung pada datanya.

Keduanya adalah: cipher aliran (

stream cipher

) dan cipher blok (

block cipher

). Cipher

aliran memproses satu bit pesan sekali dalam satu waktu, sedangkan cipher blok

memproses sekumpulan bit sekaligus sebagai satu unit. Ukuran blok yang umu

dipakai adalah 64 bit. Dari segi kecepatan komputasi, algoritma kunci simetri lebih

cepat daripada algoritma asimetrik. Kelemahan utamanya seperti yang disebutkan

diatas, yaitu dalam mendistribusikan kunci ke pihak-pihak yang berkepentingan. Jika

dipakai dalam suatu lingkungan yang tidak membutuhkan pendistribusian kunci

(seperti penggunaan pribadi), maka algoritma ini merupakan algoritma yang terbaik.

2.1.1 Reversibility algoritma kunci simetri

Semua fungsi kriptografi harus memiliki sifat reversibility, yaitu mampu mengembalikan cipher teks hasil enkripsi kembali ke plain teks melalui proses dekripsi. Kemampuan reversibility pada hampir semua metode pada algoritma kunci simetrik mengandalkan kemampuan reverse operation. Metode ini berintikan membalik semua operasi yang ada. Yaitu dengan melakukan operasi yang berlawanan. Misal operasi yang berlawanan adalah: penjumlahan & pengurangan, penggeseran ke kiri & ke kanan, dll.

(10)

2.1.2 Deskripsi cipher blok

Cipher blok merupakan salah satu pendekatan dalam algoritma kriptografi kunci simetrik. Pendekatan lain adalah cipher aliran. Perbedaan mendasar keduanya adalah jika cipher blok memproses dalam suatu kumpulan bit sekaligus sebagai suatu unit dan cipher aliran memproses bit per bit. Panjang blok yang biasa diimplementasikan oleh perancang algoritma kriptografi adalah kelipatan 64 bit. Pada awal tahun 1990-an, panjang blok yang paling umum adalah 64 bit.

Masyrakat merasa dengan panjang kunci 64 bit telah cukup aman dan tidak mungkin ada komputer yang mampu menyerang dengan metode brute force. Namun dengan berlalunya waktu, ternyata mungkin untuk menyerang algoritma dengan kunci 64 bit menggunakan metode brute force. Oleh karena itu panjang blok umum berkembang menjadi 128 bit pada awal 2000-an, atau bahkan akhir-akhir ini mulai umum ditemukan algoritma dengan panjang blok 256 bit.

Dengan panjang blok 128 bit (hampir semua algoritma mengimplementasikan panjang kunci sama dengan panjang blok), maka secara teoritis, memerlukan 2128/220 detik (dengan asumsi satu detik dapat mencoba 1000000 kemungkinan kunci) yang merupakan lebih dari 1 triliun tahun. Blok cipher pertama kalinya diperkenalkan oleh IBM dengan Lucifer-nya pada tahun 1970-an yang didasarkan pada karya Horst Feistel. Versi revisi dari Lucifer yang lebih dikenal dengan Data Encryption Standard (DES) diadopsi sebagai standar algoritma kriptografi oleh US National Bureau of Standard (NBS).

Algoritma kunci simetri merupakan metode enkripsi yang menggunakan kunci yang sama untuk enkripsi dan dekripsi, seperti ditunjukkan pada Gambar 1 atau bisa juga seperti Gambar 2 dibawah ini.

(11)

Gambar 2

Dari gambar diatas dapat kita lihat bahwa untuk mengirimkan pesan antara si pengirim dan si penerima menggunakan satu kunci atau kunci yang di gunkan sama. Maksudnya adlah kunci yang digunakan untuk mengenkripsi pesan dan kunci yang digunakan untuk mengdekripsikan pesan sama. Berarti mereka dalam melakukan komunikasi menggunkan satu kunci yang disebut kunci asimetri. Proses enkripsi dan dekripsi keduanya menggunakan kunci yang sama K1=K2.

(12)

2.2 Apa itu Blowfish ?

Blowfish alias "OpenPGP.Cipher.4" merupakan enkripsi yang termasuk dalam golongan Symmetric Cryptosystem , metoda enkripsinya mirip dengan DES (DES-like Cipher) diciptakan oleh seorang Cryptanalyst bernama Bruce Schneier Presiden perusahaan Counterpane Internet Security, Inc (Perusahaan konsultan tentang kriptografi dan keamanan Komputer) dan dipublikasikan tahun 1994. Sejak saat itu telah dilakukan berbagai macam analisis, dan perlahan - lahan mulai mendapat penerimaan sebagai algoritma enkripsi yang kuat. Dibuat untuk digunakan pada komputer yang mempunyai microposesor besar (32-bit keatas dengan cache data yang besar). Sampai saat ini belum ada attack yang dapat memecahkan Blowfish.

Algoritma utama terbagi menjadi dua subalgoritma utama, yaitu bagian ekspansi kunci dan bagian enkripsi-dekripsi data. Pengekspansian kunci dilakukan pada saat awal dengan masukan sebuah kunci dengan panjang 32 bit hingga 448 bit, dan keluaran adalah sebuah array subkunci dengan total 4168 byte.

Bagian enkripsi-dekripsi data terjadi dengan memanfaatkan perulangan 16 kali terhadap jaringan feistel. Setiap perulangan terdiri dari permutasi dengan masukan adalah kunci, dan substitusi data. Semua operasi dilakukan dengan memanfaatkan operator Xor dan penambahan. Operator penambahan dilakukan terhadap empat array lookup yang dilakukan setiap putarannya.

Blowfish juga merupakan cipher blok, yang berarti selama proses enkripsi dan dekripsi, Blowfish akan membagi pesan menjadi blok-blok dengan ukuran yang sama panjang. Panjang blok untuk algoritma Blowfish adalah 64-bit. Pesan yang bukan merupakan kelipatan delapan byte akan ditambahkan bit-bit tambahan (padding) sehingga ukuran untuk tiap blok sama.

Blowfish adalah algoritma yang tidak dipatenkan dan license free, dan tersedia secara gratis untuk berbagai macam kegunaan. Blowfish dirancang dan diharapkan mempunyai kriteria perancangan yang diiginkan sebagai berikut :

1. Cepat, Blowfish melakukan enkripsi data pada microprocessor 32-bit dengan rate 26 clock cycles per byte.

2. Compact, Blowfish dapat dijalankan pada memory kurang dari 5K.

3. Sederhana, Blowfish hanya menggunakan operasi – operasi sederhana, Blowfish hanya menggunakan operasi – operasi sederhana, seperti : penambahan, XOR, dan lookup tabel pada operan32-bit.

(13)

Blowfish dioptimasikan untuk berbagai aplikasi dimana kunci tidak sering berubah, seperti pada jaringan komunikasi atau enkripsi file secara otomatis. Dalam pengimplementasiannya dalam komputer bermicroprosesor 32-bit dengan cache data yang besar (Pentium dan Power PC) Blowfish terbukti jauh lebih cepat dari DES. Tetapi Blowfish tidak cocok dengan aplikasi dengan perubahan kunci yang sering atau sebagai fungsi hast satu arah seperti pada aplikasi packet switching. Blowfish pun tidak dapat digunakan pada aplikasi kartu pintar (smart card) karena memerlukan memori yang besar.

Algoritma Blowfish terdiri atas dua bagian : 1. Key-Expansion

Berfungsi merubah kunci (Minimum 32-bit, Maksimum 448-bit) menjadi beberapa array subkunci (subkey) dengan total 4168 byte.

2. Enkripsi Data

Terdiri dari iterasi fungsi sederhana (Feistel Network) sebanyak 16 kali putaran. Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi kunci- dan data-dependent. Semua operasi adalah penambahan (addition) dan XOR pada variabel 32-bit. Operasi tambahan lainnya hanyalah empat penelusuran tabel (table lookup) array berindeks untuk setiap putaran.

Blowfish menggunakan subkunci yang besar. Kunci tersebut harus dihitung sebelum enkripsi atau deskripsi data. Blowfish adalah algoritma yang menerapkan jaringan Feistel (Feistel Network) yang terdiri dari 16 putaran. Input adalah elemen 64-bit,X. Blowfish termasuk dalam kategori Kriptographi kunci Simetri yang mana kunci yang dipakai untuk menutup dan membuka itu menggunakan kunci yang sama. Kesuksesan blowfish mulai memudar setelah kehadiran algoritma-algoritma dengan ukuran blok yang lebih besar, seperti AES. AES sendiri memang dirancang untuk menggantikan DES. Sehingga secara keseluruhan AES lebih unggul dari DES dan juga blowfish.

2.3 Kotak permutasi / pemutihan

(14)

beberapa prosesnya. Kotak permutasi ini bertujuan untuk mengacaukan urutan bit, sehingga mencegah kriptanalis yang akan menyerang algoritma tersebut menggunakan metoda seperti metoda kunci lemah.

2.4 Enkripsi Algoritma Blowfish

Blowfish menggunakan subkunci berukuran besar. Kunci-kunsi tersebut harus dikomputasikan pada saat awal, sebelum pengkomputasian enkripsi dan dekripsi data.

Langkah-langkahnya adalah sebagai berikut:

1. Terdapat kotak permutasi (P-box) yang terdiri dari 18 buah 32 bit subkunci: P1, P2, P3, ... P18. P-box ini telah ditetapkan sejak awal, 4 buah P-box awal adalah sebagai berikut:

P1 = 0x243f6a88 P2 = 0x85a308d3 P3 = 0x13198a2e P4 = 0x03707344

2. Xorkan P1 dengan 32 bit awal kunci, xorkan P2 dengan 32 bit berikutnya dari kunci,

dan teruskan hingga seluruh panjang kunci telah terxorkan (kemungkinan sampai P14, 14x32 = 448, panjang maksimal kunci).

3. Terdapat 64 bit dengan isi kosong, bit-bit tersebut dimasukkan ke langkah 2. 4. Gantikan P1 dan P2 dengan keluaran dari langkah 3.

5. Enkripsikan keluaran langkah 3 dengan langkah 2 kembali, namun kali ini dengan subkunci yang berbeda (sebab langkah 2 menghasilkan subkunci baru).

6. Gantikan P3 dan P4 dengan keluaran dari langkah 5

7. Lakukan seterusnya hingga seluruh P-box teracak sempurna

8. Total keseluruhan, terdapat 521 iterasi untuk menghasilkan subkunci-subkunci yang dibutuhkan. Aplikasi hendaknya menyimpannya daripada menghasilkan ulang subkunci-subkunci tersebut.

Kunci- kunci yang digunakan antara lain terdiri dari, 18 buah 32-bit subkey yang tergabung dalam P-array (P1, P2, ..., P18). Selain itu, ada pula empat 32-bit S-box yang masing-masingnya memiliki 256 entri :

(15)

1. Bagi X menjadi dua bagian yang masing-masing terdiri dari 32-bit: XL, XR. 2. For i = 1 to 16:

XL = XL XOR Pi XR = F(XL) XOR XR Tukar XL dan XR

3. Setelah iterasi ke-enam belas, tukar XL dan XR lagi untuk melakukan undo pertukaran

terakhir. 4. Lalu lakukan

XR = XR XOR P17 XL = XL XOR P1

5. Terakhir, gabungkan kembali XL dan XR untuk mendapatkan cipherteks.

Untuk lebih jelasnya, gambaran tahapan pada jaringan feistel yang digunakan Blowfish adalah seperti pada Gambar 3 diabawah ini :

(16)

Pada langkah kedua, telah dituliskan mengenai penggunaan fungsi F. Fungsi F adalah: Bagi XL menjadi empat bagian 8-bit: a,b,c dan d. F(XL) = ((S1,a + S2,b mod 232) XOR S3,c) + S4,d mod 232.

Agar dapat lebih memahami fungsi F, tahapannya dapat dilihat pada Gambar 4 di bawah ini :

Gambar 4

Pada Algoritma Blowfish terdapat keunikan dalam hal proses dekripsinya, yaitu proses dekripsi dilakukan dengan urutan yang sama persis dengan proses enkripsi, hanya saja pada proses dekripsi P1, P2, …, P18 digunakan dalam urutan yang terbalik.

2.5

Dekripsi Algoritma Blowfish

Dekripsi sama persis dengan enkripsi, kecuali P

1

, P

2

, . . . , P

18

digunakan pada urutan yang terbalik. kecuali bahwa P

1

, P

2

,…, P

18

. Dekripsi untuk

Blowfish bersifat maju kedepan. Mengakibatkan dekripsi bekerja dalam arah

algoritma yang sama seperti halnya dengan enkripsi, namun sebagai masukannya

adalah chipertext. Walaupun begitu, seperti yang diharapkan, sub-kunci yang

digunakan dalam urutan terbalik.

Subkunci dihitung menggunakan algoritma Blowfish, metodanya adalah sebagai berikut: 1. Pertama-tama inisialisasi P-array dan kemudian empat S-box secara berurutan dengan

string yang tetap. String ini terdiri digit hexadesimal dari pi.

2. XOR P1 dengan 32 bit pertama kunci, XOR P2 dengan 32 bit kedua dari kunci dan

seterusnya untuk setiap bit dari kunci (sampai P18). Ulangi terhadap bit kunci sampai

(17)

3. Enkrip semua string nol dengan algoritma Blowfiah dengan menggunakan subkunci seperti dijelaskan pada langkah (1) dan (2).

4. Ganti P1 dan P2 dengan keluaran dari langkah (3)

5. Enkrip keluaran dari langkah (3) dengan algoritma Blowfish dengan subkunci yang sudah dimodifikasi.

6. Ganti P3 dan P4 dengan keluaran dari langkah (5).

7. Lanjutkan proses tersebut, ganti seluruh elemen dari P-array, dan kemudian seluruh keempat S-box berurutan, dengan keluaran yang berubah secara kontinyu dari algoritma 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.

Gambar diagram skema dekripsi algoritma Blowfish

.

(18)

Metode Algoritma Blowfish dilakukan dengan cara membalikkan 18 subskey

yang ada.Yang akan kita lakuakan pertama kali adalah masalah ini nampak tidak

dapat dipercaya, karena terdapat dua XOR operasi yang mengikuti pemakaian

fungsi yang sebelumnya, dan hanya satu yang sebelumnya pemakaian pertama

f-fungsi. Walupun jika kita memodifikasi algoritma tersebut sehingga pemakaian

subkey 2 sampai 17 menempatkan sebelum output f-fungsi yang di-XOR-kan ke

sebelah kanan blok dan dilakukan ke data yang sama sebelum XOR itu, meskipun itu

berarti ia sekarang berada di sebelaha kanan blok, karena XOR subkey tersebut telah

dipindahkan sebelum swap (tukar) kedua belah blok tersebut (tukar separuh blok kiri

dan separuh blok kanan). Kita tidak merubah suatu apapun karena informasi yang

sama di-XOR-kan ke separuh blok kiri antara setiap waktu, informasi ini digunakan

sebagai input f-fungsi. Kenyataannya, kita mempunyai kebalikan yang pasti dari

barisan dekripsi.

(19)

BAB III PEMBAHASAN

3.1 Analisis Algoritma Blowfish

Sebagian besar dari Blowfish yang menarik adalah f-fungsi yang tidak membalik. Fungsi ini menggunakan aritmatik modular untuk membangkitkan index-index ke dalam S-box. Tidak membalik (non-invertibility) ini dijelaskan sebagai berikut dengan contoh : Ambil fungsi f(x) = x2

mod 7, lihat tabel 1 dibawah ini :

Tabel 1 Contoh fungsi f(x) = x

2

mod 7

Output yang dihasilkan tidak ada fungsi sehingga fungsi yang dihasilkanpun tidak ada fungsi khusus ke f(x). Sebagai contoh jika kita mengetahui bahwa fungsi kita mempunyai sebuah nilai 4 di beberapa nilai X, maka tidak ada cara untuk mengetahui jika nilai X tersebut adalah 2; 5; atau nilai X yang lain yang mempunyai fungsi f(x) = 4. Blowfish melakukan aritmatikanya sebesar mod 232 ( 232 sama dengan 4 milyar). Ini disebut aritmatik dalam bidang berhingga dan

membuat banyak asumsi matematika yang sama yang tidak benar (1+1 tidak sama dengan 2 jika kita berada disebuah bidang ukuran 2 yang berhingga).

S-box adalah array yang besar dari data yang didefinisikan sebelumnya. Selama proses setup key, key tersebut menggabungkan dengan S-box. Detail key-setup ini relatif tidak menarik tetapi kenyataannya bahwa ia menggabungkan key tersebut dengan S-box yang menguatkan algoritma tersebut. Key-setup dalam Blowfish dirancang relatif lamban. Hal ini sangat bermanfaat karena seseorang akan melakukan suatu search-key brute-force yang akan menuju proses key-setup yang lamban untuk setiap key yang dicobanya. Meskipun seseorang melakukan enkripsi dan dekripsi harus hanya menuju proses key-setup satu kali, maka proses enkripsi dan dekripsi relatif cepat.

(20)

diinginkan yaitu dekripsi menggunakan fungsi (f) yang sama dan kemampuan untuk

mengiterasi fungsi tersebut beberapa kali ini disebut round (putaran). Semakin banyak

round maka semakin banyak keamanan algoritma tersebut. Jumlah round yang

direkomendasikan tergantung pada aloritma khusus; untuk Blowfish adalah 16 round.

3.2 Pembuktian Algoritma Blowfish

Contoh untuk mengenkripsikan suatu pesan pada file data:

1. Kita terebih dahulu dapatkan toolsnya yang bisa di download secara gratis, saya mendapatkan toolsnya dengan lambang ikan kembung

2. Lalu kita buka toolsnya dan pilih file apa yang akan kita enkripsikan

(21)

3. Lalu klik gambar kunci yang tertutup

(22)

5. Lalu masukkan passwordnya kemudian klik OK

6. Lalu akan keluar tampilan seperti dibawah ini, lalu klik yes

(23)

8. Secara otomatis file yang kita enkripdi tadi akan tidak bisa di baca datanya oleh orang lain.

(24)

10. Dan ternyata file tersebut datanya telah aman, data yang ada pada file tersebut telah berubah menjadi sebuah bentuk tuisan aneh yang tdak dapt di mengerti. Dengan itu kita dapat merasa aman dengan data yang kita rahasiakan tersebut. 11. Untuk membuka kembali datanya kita buka kembali toolsnya lalu kita klik tanda

kunci yang terbuka

(25)

13. Setelah itu akan keluar kembali tampilan seperti di bawah ini dan klik yes

14. Maka akan tampil seperti tampilan di bawah ini, lalu klik OK :

15. Maka secara otomatis file yang telah di enkripsi tadi telah berubah menjadi seperti semula sebelum di enkripsi, atau kembali lagi menjadi plaintexs.

(26)

BAB IV KESIMPULAN

Kesimpulan

Dari analisa algoritma dan simulasi program Blowfish advance CS tersbut dapat disimpulkan sebagai berikut:

1 Pada saat proses key set-up algoritma Blowfish, key ini digabungkannya dengan S-box sehingga menguatkan algoritmanya.

2 Menggunkan jaringan Feistel sehingga algoritma Blowfish tersebut mempunyai dua sifat, yaitu : dekripsi menggunakan f-fungsi yang sama (non-invertible function) dan kemampuannya mengiterasi fungsi banyak kali (multiple times).

3 Algoritma Blowfish bekerja dengan cara menggabungkan sebuah f-fungsi non invertible, keydependent S-box, dan jaringan Feistel sehingga algoritma yang dihasilkanpun kuat.

4 Pada saat proses simulasi file/folder data file enkripsi dalam program algoritma Blowfish ini menggunakan key dengan minimum bisa 4 karakter.

5 Kunci yang simetri pada algoritma Blowfish ini sehingga proses simulasi enkripsi dan dekripsi file/folder data selalu menggunakan key yang sama, begitu juga split file dan merger file menggunakan key yang sama.

(27)

DAFTAR PUSTAKA

http://maakus.dyndns.org

http://209.85.175.104/search?q=cache:bB8j4EYXUMsJ:www.bimacipta.com/

protek.htm+keamanan+data+pada+algoritma+triple+DES&hl=id&ct=clnk&cd=5&gl=id

http://209.85.175.104/search?q=cache:bFj44gvKzloJ:www.pusatartikel.com/article/komputer/

hacking/keamanan-data-dan-metode-enskripsi.html+keamanan+data+pada+algoritma+triple+DES&hl=id&ct=clnk&cd=9&gl=id

http://www.informatika.org/~rinaldi/Kriptografi/2006-2007/Makalah1/Makalah1-077.pdf

www.pusatartikel.com/index.php?print/id:1057,pdf:1

http://209.85.175.104/search?q=cache:2OknDICacywJ:sisyboy.wordpress.com/ 2007/12/+proses+enkripsi+pada+algoritma+blowfish&hl=id&ct=clnk&cd=13&gl=id

www.informatika.org/~rinaldi/Matdis/2006-2007/Makalah/Makalah0607 -30.pdf

Gambar

Gambar 3. Jaringan Feistel
Gambar diagram skema dekripsi algoritma Blowfish
Tabel 1 Contoh fungsi f(x) = x 2  mod 7

Referensi

Dokumen terkait

Inilah bait ke-1, dalam tembang Sinom dari serat Kalatidha karya pujangga agung Ranggawarsita:.. Mangkya darajating praja, kawuryan

Mata Pelajaran Nilai Rata-rata Rapor.. Nilai Ujian

Menurut Powers JM, dkk (2008), bahan cetak yang ideal adah bahan cetak yang memenuhi persyaratan yaitu: (1) mempunyai aroma dan rasa yang menyenangkan serta warna yang baik; (2)

Desa Lama tergabung dengan Kelompok Tani Paluh Pandan luas tambak silvofishery seluas 6 ha dengan jarak tanam vegetasi mangrove 2m x 2m sebanyak 1200 vegetasi mangrove/ha dengan

Dasar hukum: Pasal 12 Undang-Undang Nomor 25 Tahun 2007 tentang Penanaman Modal juncto Peraturan Presiden Nomor 39 Tahun 2014 tentang Daftar Bidang Usaha yang Tertutup dan Bidang

dengan tumpuan sendi di ujung yang satu dan rol pada ujung yang lainnya. Pembebanan dilakukan dengan menggunakan beban dua titik di sepertiga bentang yaitu sebesar 750

Rekomendasi,

Sebaliknya instrumen observasi mempunyai keterbatasan dalam menggali informasi yang berupa pendapat dari subjek yang diteliti, untuk memaksimalkan hasil