analisis sistem enkripsi dan deskripsi pada · web viewnamun tidak sedikit juga algoritma kunci...

40
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

Upload: vophuc

Post on 07-May-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

SISTEM KEAMANAN MENGGUNAKAN ALGORITMA

BLOWFISH ADVANCE CS PADA FILE DAN FOLDER DATA

Tugas Akhir

Mata Kuliah Keamanan Jaringan Komputer

Oleh

Trisnawati

08053111015

JURUSAN TEKNIK INFORMATIKAFAKULTAS 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 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

DAFTAR ISI

HalamanABSTRAK ............................................................................................................ 1KATA PENGANTAR ........................................................................................... 2DAFTAR ISI ........................................................................................................ 3

BAB I PENDAHULUAN .................................................................................. 41.1 Latar Belakang ………………........................................................... 4

1.1.1 Sejarah Kriptographi ................................................................. 61.1.2 Tujuan Kriptographi ................................................................. 6

1.2 Tujuan Penelitian ………………………………………………….. 71.3 Metode Penelitian ............................................................................. 7

BAB II LANDASAN TEORI ......................................................................... 82.1 Algoritma Kunci Simetri ......................................................................... 9

2.1.1 Reversibility algoritma kunci simetri ................................................ 92.1.2 Deskripsi cipher blok ......................................................................... 10

2.2 Apa itu Blowfish ? ……………………………………………………….. 122.3 Kotak permutasi / pemutihan …………………………………………….. 13

2.4 Enkripsi Algoritma Blowfish …................................................................. 14 2.5 Dekripsi Algoritma Blowfish .................................................................... 15

BAB III PEMBAHASAN ..................................................................................... 203.1 Analisis Algoritma Blowfish ….............................................................. . 203.2 Pembuktian Algoritma Blowfish ............................................................... 21

BAB IV KESIMPULAN ……………………............................................................... 26Kesimpulan ...................................................................................... 26DAFTAR PUSTAKA.......................................................................................... 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 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

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

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.

Dengan menggunakan bahasa pemrograman C++ dekripsi pada algoritma

Blowfish adalah sebgai berikut :

BAB IIIPEMBAHASAN

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) = x2 mod 7

X X2 X2 Mod 71 1 12 4 43 9 24 16 25 25 46 36 17 49 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:

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.

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

www.informatika.org/~rinaldi/Matdis/2006-2007/Makalah/Makalah1 -007.pdf