SISTEM KEAMANAN FILE DAN FOLDER DATA
MENGGUNAKAN ALGORITMA BLOWFISH
DENGAN KUNCI SIMETRIK
Tugas Akhir
Mata Kuliah Keamanan Sistem Informasi
Oleh
Ahyar Supani
23201061
FAKULTAS TEKNIK INDUSTRI
JURUSAN TEKNIK ELEKTRO
BIDANG STUDI KOMPUTER
INSTITUT TEKNOLOGI BANDUNG
2001/2002
ABSTRAK
Sistem Keamanan File dan Folder data menggunakan Algoritma Blowfish dengan Kunci Simetrik
(2002: vi + 23 halaman + 12 gambar)
Ahyar Supani
23201061
Jurusan Teknik Elektro – Fakultas Teknik Industri Institut Teknologi Bandung
Dalam era konektifitas elektronik universal, hacker, virus, penipuan elektronik maupun mendengar diam-diam secara elektronik, maka keamanan data benar-benar menjadi permasalahan yang sangat penting, terutama pada jaringan komputer. Pad jaringan komputer banyak sekali serangan (attack). Untuk mengamankan data atau message dijaringan diperlukan cryptography dengan metode encryption. Metode yang digunakan adalah Algoritma Blowfish.
Dalam tugas akhir ini akan disajikan analisis kinerja algoritma Blowfish dengan memakai kunci simetrik. Kegunaan algoritma ini adalah menghasilkan suatu self-decryption archive setelah mengenkripsi file dan folder. Untuk mendekripsi file dan folder, user harus menjalankan archive tersebut juga memberikan password dan lintasan tujuan (destination). Tugas akhir ini juga akan menampilkan program simulasi untuk menampilkan bagaimana mengenkripsi/mendekripsi file dan folder serta mensplit archive tersebut.
KATA PENGANTAR
Puji syukur kehadirat Allah SWT atas limpahan rahmatNya sehingga Tugas Akhir Mata Kuliah keamanan Sistem Informasi berjudul “Sistem Keamanan File dan Folder data menggunakan Algoritma Blowfish dengan Kunci Simetrik” penulisannya dapat diselesaikan sesuai sebagaimana mestinya.
Dari penyusunan Tugas Akhi ini, penulis banyak mengucapkan terima kasih serta penghargaan yang setinggi-tingginya kepada yang terhormat: Bapak Dr Budi Rahardjo, selaku Dosen pengasuh Mata Kuliah Keamanan Sistem Informasi
Dengan rendah hati penulis berharap agar Tugas Akhir ini dapat menjadi informasi dan berguna bagi kita semua.
Bandung, Januari 2002
Penulis
DAFTAR ISI
Halaman
ABSTRAK ............................................................................................................ ii
KATA PENGANTAR ........................................................................................... iii
DAFTAR ISI ........................................................................................................ iv
DAFTAR GAMBAR ............................................................................................ v
DAFTAR TABEL ................................................................................................. vi
BAB I PENDAHULUAN .................................................................................. 1
1.1 Latar Belakang Permasalahan ........................................................... 1
1.2 Tujuan dan Manfaat .......................................................................... 2
1.3 Metode Pembahasan ......................................................................... 2
BAB II TINJAUAN PUSTAKA ......................................................................... 3
2.1 Konsep Dasar Cryptosystem ............................................................ 3
2.2 Algoritma Simetrik ........................................................................... 4
2.3 Algoritma Public Key ....................................................................... 4
2.4 Algoritma Blowfish ......................................................................... 5
2.4.1 Enkripsi Algoritma Blowfish ..................................................... 5
2.4.2 Dekripsi Algoritma Blowfish ..................................................... 8
2.5 Jaringan Feistel ................................................................................. 9
2.6 Bidang Aplikasi ................................................................................ 10
2.7 Platform ............................................................................................ 10
2.8 Membangkitkan Subkey ................................................................... 11
2.9 Kriteria Rancangan Algoritma Blowfish ......................................... 13
BAB III PEMBAHASAN ..................................................................................... 14
3.1 Analisis Algoritma Blowfish ............................................................ 14
3.2 Simulasi Enkripsi Folder Data ......................................................... 17
3.3 Simulasi Enkripsi File Data .............................................................. 18
3.4 Simulasi Dekripsi Folder Data .......................................................... 19
3.5 Simulasi Dekripsi File Data ............................................................. 20
3.6 Simulasi Split File ............................................................................. 20
BAB IV KESIMPULAN DAN SARAN .............................................................. 22
4.1 Kesimpulan ...................................................................................... 22
4.2 Saran ................................................................................................. 22
DAFTAR PUSTAKA .......................................................................................... 23
DAFTAR GAMBAR
1. Gambar 1 Cyptosistem Secara Umum ............................................................ 3
2. Gambar 2 Block Diagram Algoritma Enkripsi Blowfish ............................... 6
3. Gambar 3 Fungsi F .......................................................................................... 7
4. Gambar 4 Block Diagram Dekripsi Algoritma Blowfish ................................ 8
5. Gambar 5 Tampilan Pertam Program VisualSoft File Secure ......................... 17
6. Gambar 6 Hasil Simulasi Enkripsi Folder Data .............................................. 18
7. Gambar 7 Hasil Simulasi Enkripsi File Data................................................... 18
8. Gambar 8 Tampilan Pertama File/Folder Data yang akan Didekripsi............. 19
9. Gambar 9 Hasil Dekripsi Folder Data, File Enkrip Menjadi Folder Blowfish1 19
10. Gambar 10 Hasil Simulasi Dekripsi File Fileenkrip1 menjadi
file TugasBlowfish1 ................................................................... 20
11. Gambar 11 Tampilan Menu Split File ............................................................ 21
12. Gambar 12 Hasil Simulasi Enkripsi Split File ............................................... 21
DAFTAR TABEL
1. Tabel 1 Contoh Fungsi f(x) = x2 mod 7 ......................................................... 14
BAB I
PENDAHULUAN
1.1 Latar Belakang Permasalahan
Dalam era konektifitas elektronik universal, hacker, virus, penipuan elektronik maupun mendengar diam-diam secara elektronik, maka keamanan data benar-benar menjadi permasalahan yang sangat penting. Perkembangan sistem komputer dan interkoneksinya melalui jaringan telah meningkat, tentu saja hal ini membutuhkan keamananan data dan message yang handal agar terhindar dari serangan (attack)[3]. Untuk mengamankan data atau message dijaringan diperlukan cryptography dengan metode encryption. Salah satu metode encryption data/folder yang akan dibahas dalam tugas akhir ini adalah Algoritma Blowfish.
Dalam tugas akhir ini akan disajikan analisis kinerja algoritma Blowfish dengan cara memakai kunci simetrik. Kegunaan algoritma ini adalah menghasilkan suatu self-decryption archive setelah mengenkripsi file dan folder. Untuk mendekripsi file dan folder, user harus menjalankan archive tersebut juga memberikan password dan lintasan tujuan (destination). Tugas akhir ini juga akan menampilkan program simulasi untuk menampilkan bagaimana mengenkripsi/mendekripsi file dan folder serta mensplit archive tersebut.
1.2 Tujuan dan Manfaat
Dalam tugas akhir mata kuliah keamanan system informasi dengan judul “Sistem Keamanan File dan Folder Data Menggunakan Algoritma Blowfish
dengan Kunci Simetrik ” bertujuan menganalisis kinerja algoritma Blowfish dengan simulasi file dan folder data yang diamankan.
Manfaatnya adalah untuk keamanan file dan folder data.
1.3 Metode Pembahasan
Dalam pembahasan tugas akhir Sistem Keamanan File dan Folder data menggunakan Algoritma Blowfish dengan Kunci Simetrik yaitu studi literature dan melakukan simulasi untuk mengamankan file dan folder data.
BAB II
TINJAUAN PUSTAKA
2.1 Konsep Dasar Cryptosystem
Cryptoystem digunakan untuk menjamin privasi dan autentik data dalam sistem komputer-komunikasi. Message yang tidak diproteksi disebut plaintext. Proses tersebut yang mana plaintext dibentuk dalam ciphertext dari suatu bentuk yang tak dapat dipahami yang disebut enkripsi atau enchiperment. Sebuah algoritma dechipering digunakan untuk dekripsi atau decipherment agar mengembalikan plaintext aslinya. Dalam cryptosystom, sekumpulan parameter yang memilih sebuah transformasi chipering khusus yang sebut sekumpulan key. Enkripsi dan dekripsi dikontrol oleh sebuah key atau beberapa key. Gambar 1 menunjukkan cryptosystem secara umum [2].

Gambar 1. Cryptosystem Secara Umum [2]
Operasi enhipering dan deciphering dijelaskan secara umum sebagai berikut :
dimana: X = plaintext, Y = chipertext
KE = key enkripsi, KD = key dekripsi
2.2 Algoritma Simetrik
Model enkripsi konvensional yang juga disebut algoritma simetrik. Proses enkripsi terdiri dari sebuah algoritma dan sebuah key (kunci). Key adalah sebuah nilai yang bebas dari plaintext yang mengontrol algoritma tersebut. Algoritma akan menghasilkan output yang berbeda tergantung pada key khusus yang digunakan pada waktu tersebut. Merubah key akan merubah output algoritma. Untuk menghasilkan kembali plaintext yang aslinya, kita menggunakan algoritma dekripsi dengan kunci yang sama dengan enkripsi [3]. Pada gambar 1, KE adalah sama dengan KD.
2.3 Algoritma Public-Key
Algoritma public-key juga disebut algoritma asymmetric yang dirancang sehingga key yang digunakan untuk enkripsi berbeda dengan key yang digunakan untuk dekripsi. Selanjutnya key dekripsi tidak dapat dihitung dari key enkripsi. Algoritma tersebut disebut public-key karena key enkripsi dapat dibuat secara public. Orang asing dapat menggunakan key enkripsi tersebut untuk mengenkripsi sebuah message, tetapi hanya seorang tertentu dengan key dekripsi sepadan dapat mendekripsi message tersebut. Dalam sistem ini key enkripsi sering disebut public key dan key dekripsi disebut private key.
Enkripsi dengan public key (K) dinotasikan dengan :
EK(M) = C
Dan didekripsi dengan private key dengan notasi sebagai berikut:
DK(C) = M
Kadang-kadang message akan dienkripsi dengan private key dan didekripsi dengan public key, seperti yang digunakan dalam digital signatures [1].
2.4 Algoritma Blowfish
2.4.1 Enkripsi Algoritma Blowfish
Blowfish adalah cipher blok 64-bit yang memiliki sebuah kunci yang panjangnya variabel. Algoritma blowfish terdiri dari dua bagian yaitu key expansion dan enkripsi data. Blok diagram enkripsi algoritma Blowfish dapat dilihat pada gambar 2 [1].
Key expansion mengkonversikan sebuah kunci sampai 448 bit ke dalam beberapa array subkey dengan total 4168 byte.
Enkripsi data terdiri dari sebuah fungsi yang sederhana dengan iterasi 16 kali. Setiap round mempunyai sebuah permutasi key-dependent dan sebuah subsitusi key- dan data-dependent. Semua operasi, penjumlahan dan XOR pada word 32-bit. Hanya operasi tambahan diindek empat lookup data array per round [1].
Blowfish menggunakan sejumlah subkey yang besar. Key ini harus dihitung awal sebelum enkripsi atau dekripsi [1].
P-array mempunyai 18 subkey 32-bit :
P1, P2, P3,..............................P18
Empat S-box 32- bit mempunyai masing-masing 256 entry [1, 7] yaitu :
S1,0, S1,1, S1,2, S1,3, ................S1,255
S2,0, S2,1, S2,2, S2,3, ................S2,255
S3,0, S3,1, S3,2, S3,3, ................S3,255
S4,0, S4,1, S4,2, S4,3, ................S4,255
![]() |
Gambar 2 Blok diagram Algoritma Enkripsi Blowfish [1]
Blowfish adalah sebuah jaringan Feistel yang mempunyai 16 round. Inputnya adalah ( x ) element data 64-bit. Untuk mengenkripsi ( x ) yaitu :
Bagi ( x ) dalam dua bagian 32-bit menghasil ( xL ) dan ( xR ).
Untuk i = 1 sampai 16 maka :
xL = xL Ã… Pi
xR = F(xL) Ã… xR
Swap (tukar) xL dan xR
Swap (tukar) xL dan xR (mengulang swap yang lalu)
xR = xR Ã… P17
xL = xL Ã… P18
Gabungkan kembali xL dan xR [1, 7]
Fungsi F adalah sebagai berikut [1]:
Bagi xL dalam empat kuarter 8-bit yaitu a, b, c dan d seperti gambar 3 maka :
F(xL) = ((S1,a + S2,b mod 232 ) Ã… S3,c ) + S4,d mod 232
Gambar 3. Fungsi F (Bruce Schenier: 1996)
2.4.2 Dekripsi Algoritma Blowfish
Dekripsi sama persis dengan enkripsi, kecuali bahwa P1, P2,…, P18 digunakan pada urutan yang berbalik (reverse) [1, 7]. Blok diagram dekripsi seperti pada gambar 4.

|
|
Dengan membalikkan 18 subkey untuk medekripsi metode algoritma Blowfish. Pertama, masalah ini nampak tidak dapat dipercaya, karena ada dua XOR operasi yang mengikuti pemakaian f-fungsi yang sebelumnya, dan hanya satu yang sebelumnya pemakaian pertama f-fungsi. Meskipun 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, walaupun 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 [5].
2.5 Jaringan Feistel
Banyak algoritma menggunakan jaringan Feistel. Ide ini muncul pada tahun 1970. Bila kita ambil sebuah blok dengan panjang n dan bagilah blok tersebut dengan dua bagian sepanjang n/2 yaitu bagian L (kiri0 dan bagian R (kanan). Tentu saja panjang n adalah genap. Kita dddapat mendefinisikan sebuah cipher blok iterasi dimana output round ke-I ditentukan dari output round sebelumnya [1,6]:
Ki adalah subkey yang digunakan dalam round ke-I dan f adalah fungsi round arbitrary.
2.6 Bidang-Bidang Aplikasi
Suatu standar algoritma enkripsi harus cocok pada bidang-bidang beberapa aplikasi yaitu [4]:
· Enkripsi Bulk
Algoritma tersebut harus efisien dalam mengenkripsi file data atau stream data kontinyu.
· Generation Bit Acak (random bit generation
Algoritma tersebut harus efisien dalam memproduksi singel bit acak
· Enkripsi Paket
Algoritma tersebut harus efisien dalam mengenkripsi data packet-size. (Sebuah paket ATM mempunyai data field 48-byte). Ia harus dapat diimplimentasikan dalam sebuah aplikasi dimana paket berurut akan dienkripsi atau didekripsi dengan kunci yang berbeda.
· Hashing
Algoritma tersebut harus efisien dalam dikonversikan ke fungsi hash one-way.
2.7 Platform
Sebuah algoritma enkripsi standar harus dapat diimplimentasikan pada bermacam-macam platform yang berbeda, yang masing-masing mempunyai syarat-syaratnya sendiri [4]. Ini termasuk :
· Hardware Khusus
Algoritma tersebut dapat diimplimentasikan secara efisien dalam hardware VLSI sesuai dengan keinginan (custom VLSI hadware).
· Prosesor Yang Besar
Sementara hardware yang terdedikasi akan selalu digunakan untuk aplikasi yang tercepat, sedangkan implimentasi software adalah lebih umum (common). Algoritma tersebut harus efisien pada mikroprosesor 32-bit yang mempunyai 4 k byte program dan cache data.
· Prosesor Medium-size
Algoritma tersebut harus berjalan pada mikrocontroler dan prosesor medium-size yang lain, seperti 68HC11
· Prosesor Kecil
Ia harus memungkinkan untuk mengimplimentasikan algoritma pada smart card, bahkan tidak efisien
Syarat-syarat untuk prosesor yang kecil adalah lebih susah. Batas RAM dan ROM adalah beberapa bagi platform ini. Juga, efisiensi lebih penting pada mesin kecil ini. Workstation mengandakan kapasitasnya hampir setiap tahun. Embedded system yang kecil adalah sama tahun ke tahun, dan ada sedikit kapasitas untuk spare. Jika ada suatu pilihan, maka burden komputasi extra haruslah pada prosesor yang besar lebih baik daripada yang kecil [4].
2.8 Membangkitkan Subkey (Generating the Subkeys)
Subkey dihitung menggunakan algoritma Blowfish. Metode yang pasti sebagai berikut [4, 7]:
1. Pertama inisial P-array dan kemudian S-boxes, agar mempunyai string yang tetap. String ini terdiri dari digit hexadesimal pi (kurang inisial 3). Contoh :
P1 = 0x243f6a88
P2 = 0x85a308d3
P3 = 0x13198a2e
P4 = 0x03707344
2. XOR P1 dengan 32 bit key pertama , XOR P2 dengan 32- bit key yang kedua dan seterusnya untuk semua bit key ( mungkin sampai P14 ). Silus yang berulang melalui key bit sampai semua P-array yang telah di-XOR-kan dengan key bit. (Untuk setiap key yang pendek, maka ada paling sedikit satu key ekivalen yang panjang; contoh jika A adalah 64-bit key maka kemudian AA, AAA, dan lain-lain adalah key yang ekivalen).
3. Enkripsikan string all-zero dengan algoritma blowfish menggunakan subkey yang dijelaskan pada langkah 1 dan langkah 2.
4. Gantikan P1 dan P2 dengan output langkah 3.
5. Enkripsikan output langkah 3 menggunakan algoritma Blowfish dengan subkey yang termodifikasi.
6. Gantikan P3 dan P4 dengan output langkah 5.
7. Teruskan proses tersebut, gantikan semua entry P-array, dan kemudian semua empat S-boxes supaya mempunyai output algoritma Blowfish secara kontinyu berubah (continuously-changing).
Total iterasi 521 dibutuhkan untu membangkitkan semua subkey yang diinginkan dari pada mengeksekusi proses turunan ini beberapa kali [4].
2.9 Kriteria Rancangan Algoritma Blowfish
Blowfish dirancang oleh Bruce Schneier dengan kriteria rancangan sebagai berikut [1]:
1. Cepat. Blowfish mengenkripsi data pada 32-bit microprosesor dengan rate 26 clock siklus per byte.
2. Tersusun rapi (compact). Blowfish dapat running kurang lebih 5 K memory.
3. Sederhana (simple). Blowfish hanya menggunakan operasi yang sederhana yaitu penjumlahan, XORs dan tabel dalam mencari operand 32-bit. Rancanannya mudah dianalisa yang membuatnya tahan terhadapat kesalahan (errors) implimentasi.
4. Keamanannya variabel. Panjang key (kunci) adalah variabel dan dapat menjadi sepanjang 448 bit.
Blowfish dioptimasi bagi aplikasi-aplikasi dimana kunci tersebut tidak sering berubah, seperti jaringan komunikasi atau sebuah encriptor file otomatis. Blowfish ini siknifikan lebih cepat dari pada DES bila implimentasi pada 32-bit mikroprosesor yang mempunyai cahce data yang besar, seperti Pentium dan PowerPC. Blowfish tidak cocok untuk aplikasi seperti paket switcing yang kuncinya sering berubah, atau sebagai sebuah fungsi hash one-way. Syarat memorinya besar yang membuatnya tidak mungkin untuk aplikasi smart card [1].
BAB III
PEMBAHASAN
3.1 Analisis Algoritma Blowfish
Blowfish terdiri dari 16 round (putaran). Untuk setiap putaran, pertama XOR-kan separuh kiri blok dengan subkey untuk round itu. Kemudian menerapkan f-fungsi ke separuh blok kiri dan XOR-kan separuh kanan blok dengan hasil tersebut. Terakhir setelah semua dieksekusi tetapi round terakhir saling tukar (swap) separuh kiri dan kanan blok. Hanya ada satu subkey untuk setiap round, dan f-fungsi mengkonsumsi tanpa subkey tetapi menggunakan S-box yang mana S-box tersebut adalah keydependent (ketergantungan key) [5].
Setelah round terakhir, XOR-kan separuh kanan blok dengan subkey 17 dan XOR-kan separuh kiri dengan subkey 18 [5]. Kemudian gabungkan blok kiri dan kanan, sehingga sekarang kita mendapat fungsi informasi yang terenkripsi sebagai chipertext.
Kebanyakan bagian 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 [6]: 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 7 |
1 | 1 | 1 |
2 | 4 | 4 |
3 | 9 | 2 |
4 | 16 | 2 |
5 | 25 | 4 |
6 | 36 | 1 |
7 | 49 | 0 |
Menghasilkan suatu output yang tidak ada fungsi yang dapat menghasilkan input 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 aritmatinya 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) [6].
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 kenyataanya 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 enkrupsi dan dekripsi harus hanya menuju proses key-setup satu kali, maka proses enkripsi dan dekripsi relatif cepat [6].
Elemen yang terpenting 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. Beberapa iterasi 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 [6].
Subkey Generation (Membangkit Subkey)
Mulai dengan menginisial subkey 1 sampai 18 diikuti element zero sampai 255 dari S-box pertama kemudian element zero sampai 255 dari S-box kedua, dan seterusnya sampai S-box keempat, dengan bagian pecahan pi. Bit signifikan yang terbesar dari pecahan pi menjadi bit signifikan terbesar dari subkey yang pertama. Kemudian tentukan key tersebut yang panjangnya sampai 72 byte dan mengulanginya untuk merentangkan semua array 18 subkey, dan XOR-kan key tersebut dengan isi array subkey [5].
Kemudian mengeksekusikan algoritma Blowfish berulang-ulang dengan sebuah input inisial blok all zero 64-byte sebagai input. Setelah setiap eksekusi gantikan bagian subkey atau S-box dengan output Blowfish secara berurut, dalam urutan yang sama sebagai digit pi dalam bentuk biner atau hexadecimal ditempatkan di dalamnya; setelah iterasi pertama gantikan subkey 1 dan 2; setelah iterasi ke sepuluh gantikan dua entri pertama (0 dan 1) dalam S-box 1; dan seterusnya [5].
Untuk setiap itersi Blowfish dalam key generation juga menggunakan iterasi sebelumnya sebagai input. Seperti yang dijelaskan oleh jurnal Dr Dobb pada april 1994 yang dapat diterjemahkan untuk mengimplikasi zero itu dan digunakan sebagai input untuk setiap iterasi. Seperti iterasi selanjutnya hanya merubah masing-masing S-box entri, hal ini dapat mengatur sederetan data identik yang besar dalam S-box dan ini adalah salah pembacaan arah, bukan bentuk asli yang berbeda dari algoritma tersebut [5].
F-Fungsi
Blowfish menggunakan empat S-box. Setiap S-box mempunyai 256 entri dan setiap entri adalah 32 bit panjangnya. Untuk menghitung f-fungsi: gunakan byte pertama 32 bit input untuk mendapatkan sebuah entry dalam S-box pertama, byte kedua untuk mendapatkan sebuah entri S-box kedua dan seterusnya. Nilai f-fungsi adalah ((S1(B1)+S2(B2) mod 232) XOR S3(B3)) + S4(B4) mod 232. [5]
3.2 Simulasi Enkripsi Folder Data
Dalam menjalankan simulasi folder dan file data, software yang digunakan dan diinstal adalah VisualSoft FileSecure [8].
![]() |
Eksekusikan program tersebut dan pilih folder data yang mau dienkripsikan seperti gambar 5 dibawah ini kemudian masukkan password (key enkripsi), folder Blowfish1 yang akan dienkripsi dan menghasilkan folder baru yang namanya visualsoftfilesecure dengan isi file enkrip. File enkrip adalah isi folder yang terenkripsi, seperti gambar 6.
Gambar 5 Tampilan pertama program Visualoft FileSecure

Gambar 6 Hasil simulasi enkripsi folder data
3.3 Simulasi Enkripsi File Data
![]() |
Simulasi enkripsi file data sama dengan enkripsi folder data, setelah program VisualSoft FileSecure dijalankan seperti gambar 5, pilih file yang akan dienkripsi. Seperti gambar 7 dibawah ini, merupakan hasil enkripsi file TugasBlowfish1 menjadi file yang terenkripsi bernama Fileenkrip1.
Gambar 7 Hasil simulasi enkripsi file data
3.4 Simulasi Dekripsi Folder Data
Untuk mendekripsi folder data, kita hanya mengklick dua kali atau menekan tombol enter pada folder yang terenkripsi. Setelah itu muncul seperti gambar 8. Masukkan key dekripsi atau password yang sama dengan key enkripsi.
![]() |
Gambar 8 Tampilan Pertama File/Folder data yang akan didekripsi
![]() |
Pada gambar 9 merupakan hasil folder data setelah didekripsi yaitu file enkrip pada gambar 6 didekripsi menjadi folder data semula yaitu folder Blowfish1.
Gambar 9 Hasil dekripsi folder data, file enkrip menjadi folder Blowfish1
3.5 Simulasi Dekripsi File Data
![]() |
Simulasi dekripsi file data sama dengan folder data, dan tampilan pertama seperti gambar 8 setelah mengklik dua kali atau menekan tombol enter pada file yang terenkripsi. Hasil dekripsi file seperti gambar 10, file Fileenkrip1 pada gambar 7 didekripsi menjadi file aslinya yaitu File TugasBlowfish.
Gambar 10 Hasil simulasi dekripsi file Fileenkrip1 menjadi file TugasBlowfish
3.6 Simulasi Split File
Fasilitas yang tersedia yang ada pada program VisualSoft File Secure yaitu split file. Split file sangat berguna bagi file yang berukuran besar yang ingin kita enkripsi. Setelah program ini dijalankan, tampil seperti gambar 5 dan kita pilih file yang akan kita enkripsi, kemudian pilih Option pada menu bar, selanjutnya pilih Split File dan muncul seperti gambar 11 berikut. Pada gambar 11 adalah mensimulasikan file tulisan1 yang berkapasitas 1,120k byte dan file ini displit dengan ukuran 512 k byte dengan base name tulis. Hasilnya terlihat seperti pada
![]() |
gambar 12, ada tiga file yaitu file 1_tulis, 2_tulis dan Filemerger.
![]() |
Gambar 11. Tampilan Menu Split File
Gambar 12 Hasil simulasi enkripsi split file
BAB IV
KESIMPULAN DAN SARAN
6.1 Kesimpulan
Dari analisa algoritma dan simulasi program Blowfish dapat disimpulkan sebagai berikut:
1 Selama proses key set-up algoritma Blowfish, key ini digabungkan dengan S-box sehingga menguatkan algoritmanya.
2 Dengan menggunakan jaringan Feistel maka algoritma Blowfish mempunyai dua sifat: dekripsi menggunakan f-fungsi yang sama (non-invertible function) dan kemampuannya mengiterasi fungsi banyak kali (multiple times).
3 Blowfish bekerja dengan menggabungkan sebuah f-fungsi non invertible, keydependent S-box, dan jaringan Feistel.
4 Dalam proses simulasi file/folder data maupun split file enkripsi dalam program algoritma Blowfish ini menggunakan key dengan minimum 6 karekter.
5 Kunci yang simetrik 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.
6.2 Saran
Disarankan agar cara yang lebih efisien untuk memecahkan Blowfish yaitu melakukan penelitian yang mendalam dari keyspace. Dan juga untuk medapatkan hasil analisis metode algoritma Blowfish yang baik sebaiknya memahami fungsi nin-invertibel, keydependent S-box dan jaringan Feistel.
DAFTAR PUSTAKA
[1] Bruce Schneier, Applied Cryptography : Protocols, Algorithms, and Source Code in C, USA, John Wiley & Sons, Inc., 1996.
[2] Rhee, Man Young, Cryptography and Sesure Communications, Singapore, McGraw-Hill Book Co., 1994.
[3] William Stallings, Network and Internetwork Security Principles and Practice, New Jersey, Prectice-Hall, 1995.
[4] Kent Johansson, A short summary of Blowfish Algorithm : Descryption of a New Variable-Length Key, 64/128-Bit Block Cipher (Blowfish) by Bruce Schneier, 2001
http://www.finecrypt.net/blowfish encryption algoritm.htm
[5] Blowfish http://home.ecn.ab.ca/~jsavard/crypto
[6] Concepts of Cryptography http://www.kremlinecrypt.com/crypto
[7] Bruce Schneier, The Blowfish Encryption Algorithm - - One Year Later, Dr. Dobb’s Journal, September 1995 http://www.counterpane.com/bfdobsoyl.html
[8] VisualSoft FileSecure 1.0, VisualSoft Technologies, 2001 http://www.visualsoft-india.com








0 komentar:
Posting Komentar