Anda di halaman 1dari 28

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
UNIVERSITAS SRIWIJYA
2007/2008

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.
Sistem keamanan yang akan dibahas adalah sistem keamanan menggunakan
algoritma Blowfish Advance CS pada File dan folder yang meliputi proses enkripsi, deskripsi
dan contoh simulasi data dengan menggunakan algoritma Blowfish advance CS tersebut.
Dengan enkripsi, data kita disandikan ( encrypted ) dengan menggunakan sebuah kunci
( key ). Untuk membuka

( decript ) data tersebut digunakan juga sebuah kunci yang sama

dengan kunci mengenkripsi tadi atau yang sering disebut dengan private key kriptographi.

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 referensireferensi 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

DAFTAR ISI
Halaman
ABSTRAK
............................................................................................................
1
KATA PENGANTAR
...........................................................................................
2
DAFTAR ISI
........................................................................................................
3
BAB I PENDAHULUAN
..................................................................................
1.1 Latar Belakang
...........................................................
1.1.1 Sejarah Kriptographi
.................................................................
1.1.2 Tujuan Kriptographi
.................................................................
1.2 Tujuan Penelitian
..
1.3 Metode Penelitian
.............................................................................

4
4
6
6
7
7

BAB II LANDASAN TEORI


.........................................................................
2.1 Algoritma Kunci Simetri .........................................................................
2.1.1 Reversibility algoritma kunci simetri ................................................
2.1.2 Deskripsi cipher blok .........................................................................
2.2 Apa itu Blowfish ? ..
2.3 Kotak permutasi / pemutihan ..
2.4 Enkripsi Algoritma Blowfish .................................................................
2.5 Dekripsi Algoritma Blowfish ....................................................................

8
9
9
10
12
13
14
15

BAB III PEMBAHASAN


.....................................................................................
3.1 Analisis Algoritma Blowfish .............................................................. .
3.2 Pembuktian Algoritma Blowfish ...............................................................

20
20
21

BAB IV KESIMPULAN ...............................................................


Kesimpulan
......................................................................................
DAFTAR PUSTAKA..........................................................................................

26
26
27

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.
Maka kebanyakan dari pihak pihak yamg saling bertukar informasi itu
menggunakan beberapa macam metode untuk menjaga kerahasiaan pesan mereka,
diantaranya dengan menggunakan sebuah metode penyandian pesan yang bernama
Kriptographi ( Cryptographi ) untuk merahasiakan pesan yang mereka kirimkan.

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.
Dimasa sekarang kajian dari bidang ilmu kriptographi sudah sangat
luas. Yang di mulai dari bidang militer, telekomunikasi, jaringan komputer,
keuangan dan perbankan, atau bahkan juga untuk pribadi. Di sinilah
pentingnya kriptographi, dia memegang peranan penting untuk merahasiakan
suatu pesan yang di tugaskan kepadanya.

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
sesorang apabila ia menyangkal memiliki dokumen tersebut.

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
Metode penelitian yang penulis gunakan di sini adalah studi literature yang di
ambil dari website website yang membahas tentang algoritma kriptographi
khususnya pada algoritma kunci simetri pada sofware Blowfish Advance CS dan
melakukan simulasi sendiri dengan cara merahasiakan file atau folder data.

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.
Namun tidak sedikit juga algoritma kunci simetrik blok cipher memiliki sub
metode yang tidak bersifat reversible jika berdiri sendiri seperti metode Expand dan
Filter. Namun metode tersebut akan bersifat reversible jika ditanamkan pada metode
Jaringan Feistel. Dan metode yang digunakan tidak hanya mengandalkan reverse
operation, namun melibatkan teknik teknik lain.

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.

Gambar 1

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.
Pertama kali sebelum pesan dikirim pesan tersebut masih dalam keadaan asli atau
belum di enkripsi atau yang lebih dikenal dengan nama plaintext atau cleartext. Kemudian
pada saat pesan tersebut dikirim pesan tersebut terlebih dahulu dilakukan proses encription
(encipherment) yaitu proses menyandikan pesan plaintext kedalam chipertext yang apabila di
buka akan berupa algoritma atau kata-kata yang sama sekali tidak dimengerti, sehingga orang
lain tidak bisa membaca data yang telah di enkripsi tersebut. Kemudian setelah sampai di si
penerima untuk mengubah chipertext tadi ke dalam plaintext disebut dengan decryption
(dechiperment). Sedangkan Orang yang melakukan enkripsi terhadap suatu pesan atau
praktisi kriptographi disebut Cryptographer. Pendistribusian Kunci pada

Kriptografi

Kunci Simetri tidak dapat dilakukan menggunakan saluran/ media yang akan digunakan untuk
komunikasi, diperlukan media khusus untuk distribusi kunci, beberapa kunci mungkin
membutuhkan beberapa media paralel untuk distribusinya.

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.
4. Memiliki tingkat keamanan yang bervariasi, panjang kunci yang digunakan oleh
Blowfish dapat bervariasi dan bisa sampai sepanjang minimal 32-bit, maksimal
448 -bit, Multiple 8 bit, defalutl 128 bit.

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 datadependent. Semua operasi adalah penambahan (addition) dan XOR pada variabel 32bit. 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


Pada algoritma Blowfish, digunakan banyak subkey. Kunci-kunci ini harus dihitung

atau dibangkitkan terlebih dahulu sebelum dilakukan enkripsi atau dekripsi data. Tujuan dari
metode ini adalah untuk mengacak urutan bit-bit pada sebuah blok. Metode ini berbeda
dengan metode substitusi pada pemanipulasian bit (Subbab 3.1). Perbedaannya adalah pada
metode ini digunakan acuan yang telah pasti dalam pensubstitusian bit. Acuan tersebut tidak
memiliki pola khusus, dan pada kebanyakan algoritma kriptografi, acuan tersebut telah
ditetapkan oleh si perancang algoritma. Dinamakan kotak permutasi, sebab merupakan
sebuah kotak 2 dimensi yang setiap isinya memiliki informasi bit tersebut harus dipindahkan
ke urutan keberapa pada blok tersebut. Blowfish memanfaatkan kotak permutasi dalam

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 :
S1,0,S1,1,..., S1,255; S2,0, S2,1,..,, S2,255; S3,0, S3,1,..., S3,255; S4,0, S4,1,..,, S4,255.
Pada jaringan feistel, Blowfish memiliki 16 iterasi, masukannya adalah 64-bit elemen data, X.
Untuk melakukan proses enkripsi:

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 :

Gambar 3. Jaringan Feistel

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 P1, P2, . . . , P18


digunakan pada urutan yang terbalik. kecuali bahwa P1, P2,, P18. 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 P 2 dengan 32 bit kedua dari kunci dan
seterusnya untuk setiap bit dari kunci (sampai P 18). Ulangi terhadap bit kunci sampai
seluruh P-array di XOR dengan bit kunci.

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

.
Gambar 5

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 ffungsi yang sebelumnya, dan hanya satu yang sebelumnya pemakaian pertama ffungsi. 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.
Dengan menggunakan bahasa pemrograman C++ dekripsi pada algoritma
Blowfish adalah sebgai berikut :

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) = x 2
mod 7, lihat tabel 1 dibawah ini :

Tabel 1 Contoh fungsi f(x) = x2 mod 7


X
1
2
3
4
5
6
7

X2
1
4
9
16
25
36
49

X2 Mod 7
1
4
2
2
4
1
0

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.

Elemen yang terpenting pada Blowfish yang lain adalah jaringan Feistel.
Menggunakan jaringan Feistel yang menghasilkan cipher dengan dua sifat yang dapat

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

Dari gambar diatas saya memilih untuk meng-enkripsikan file Keamanan


Password dan Enkripsi

3. Lalu klik gambar kunci yang tertutup

4. setelah di klik maka akan muncul seperti kotak di bawah ini :

5. Lalu masukkan passwordnya kemudian klik OK

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

7. Setelah klik yes maka akan keluar tampilan kembali sepeti di bawah ini dan klik
OK

8. Secara otomatis file yang kita enkripdi tadi akan tidak bisa di baca datanya oleh
orang lain.
9. Untuk membuktikannya kita buka file tadi lalu lihat apakah yang terjadi pada file
tersebut

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

12. masukkan kembali password kita yang tadi lalu kllik OK, dan pasword tadi
jangan sampai lupa. Apabila hal tersebut terjadi maka file tersebut tidak akan
pernah bisa dibaca kembali.

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.
16. Untuk membuktikan apakah file yang berisi data Keamanan Password dan
Enkripsi tadi telah kembali seperi semula maka dapat kembali di buka seperti
membuka file seperti biasanya.

BAB IV
KESIMPULAN
Kesimpulan
Dari analisa algoritma dan simulasi program Blowfish advance CS tersbut dapat
disimpulkan sebagai berikut:

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

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).

Algoritma Blowfish bekerja dengan cara menggabungkan sebuah f-fungsi non


invertible, keydependent S-box, dan jaringan Feistel sehingga algoritma yang
dihasilkanpun kuat.

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

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.

Jadi dengan menggunakan metode algoritma Blowfish ini dapat mengurangi


kecemasan kita akan data yang kita rahasiakan. Sehingga apabila data yang bersifat
rahasia sebaiknya terlebih dahulu kita lakukan penyandian pesan terhadap data tersebut
sehingga mengakibatkan orang lain yang tidak berhak tidak bisa untuk membacanya data
yang kita amankan tersebut.

DAFTAR PUSTAKA
http://maakus.dyndns.org
http://209.85.175.104/search?
q=cache:bB8j4EYXUMsJ:www.bimacipta.com/protek.htm+keamanan+data+pada+algoritma+tri
ple+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-danmetodeenskripsi.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+blo
wfish&hl=id&ct=clnk&cd=13&gl=id
www.informatika.org/~rinaldi/Matdis/2006-2007/Makalah/Makalah0607 -30.pdf
www.informatika.org/~rinaldi/Matdis/2006-2007/Makalah/Makalah1 -007.pdf

Anda mungkin juga menyukai