Algoritma Blowfish Kel 5
-
Upload
waliulu-raditya -
Category
Documents
-
view
41 -
download
0
description
Transcript of Algoritma Blowfish Kel 5
-
5/19/2018 Algoritma Blowfish Kel 5
1/24
Hanifudin Sukri - 30000414410004
Fikra Fahma Ihdina 30000414410027
Setiawan Widiyanto -
-
5/19/2018 Algoritma Blowfish Kel 5
2/24
SejarahAlgoritma pertama kali dikembangkan untuk
mengijinkan organisasi tertentu untuk mengaksessuatu informasi.
Algoritma kriptografi mengalami perkembangansehingga hasil lebih memuaskan.
Algoritma contohnya, RSA, BLOWFISH,IDEA, DES,
AES, dan lainya.
-
5/19/2018 Algoritma Blowfish Kel 5
3/24
BLOWFISH
Blowfishmerupakan algoritmakunci simetrik cipherblok yang dirancang pada tahun 1993oleh BruceSchneieruntuk menggantikanDES.
Schneier menyatakan bahwa blowfish bebas paten danakan berada pada domain publik
Keberhasilan blowfish dalam menembus pasar telah
terbukti dengan diadopsinya blowfish sebagai OpenCryptography Interface(OCI) pada kernel linuxversi2.5 keatas.
http://id.wikipedia.org/wiki/Algoritmahttp://id.wikipedia.org/wiki/1993http://id.wikipedia.org/w/index.php?title=Bruce_Schneier&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=Bruce_Schneier&action=edit&redlink=1http://id.wikipedia.org/wiki/DEShttp://id.wikipedia.org/wiki/Kernel_Linuxhttp://id.wikipedia.org/wiki/Kernel_Linuxhttp://id.wikipedia.org/wiki/Kernel_Linuxhttp://id.wikipedia.org/wiki/DEShttp://id.wikipedia.org/w/index.php?title=Bruce_Schneier&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=Bruce_Schneier&action=edit&redlink=1http://id.wikipedia.org/wiki/1993http://id.wikipedia.org/wiki/Algoritma -
5/19/2018 Algoritma Blowfish Kel 5
4/24
Flowchart
algoritma
blowfish
-
5/19/2018 Algoritma Blowfish Kel 5
5/24
Kriteria Algortima BlowfishBlowfishadalah algoritma kriftografi kunci simetri.
Blowfishjuga merupakan cipher blok
Blowfishakan membagi pesan menjadi blok-blok
dengan ukuran yang sama panjang Panjang blok untuk algoritmaBlowfishadalah 64-bit.
Blowfishmenerapkan teknik kunci berukuransembarang.
Ukuran kunci yang dapat diterimaoleh Blowfishadalah antara 32 bit hingga 448 bit,dengan ukuran default sebedar 128 bit
-
5/19/2018 Algoritma Blowfish Kel 5
6/24
Lanjutan.
Algoritma utama terbagi menjadi dua subalgoritmautama,yaitu bagian ekspansi kunci dan bagianenkripsi-dekripsi data.
Blowfishmemanfaatkan teknik pemanipulasian bitdan teknik pemutaran ulang dan pergiliran kunci yangdilakukan sebanyak 16 kali
-
5/19/2018 Algoritma Blowfish Kel 5
7/24
Key expansion Berfungsi merubah kunci (Minimum 32-bit,
Maksimum 448-bit) menjadi beberapa array subkunci(subkey) dengan total 4168 byte
Enkripsi data
Terdiri dari iterasi fungsi sederhana (FeistelNetwork) sebanyak 16 kali putaran. Setiap putaranterdiri dari permutasi kunci-dependentdansubstitusi kunci- dan data-dependent.
Semua operasi adalah penambahan (addition) danXOR pada variabel 32-bit. Operasi tambahanlainnya hanyalah empat penelusuran tabel (tablelookup) array berindeks untuk setiap putaran
-
5/19/2018 Algoritma Blowfish Kel 5
8/24
Alur Enkripsi Algoritma Blowfish Sebelum Melakukan enkripsi harus menghitung subkeyyang
akan digunakan
Bentuk inisial P-array sebanyak 18 buah (P1,P2,..............P18)masing-msing bernilai 32-bit, dengan string yang sudah pasti
yang terdiri dari digit hexa decimal Pi, Array P terdiri dari
delapan belas kunci 32-bit subkunci : P1,P2,.......,P18 Bentuk S-box sebanyak 4 buah masing-masing bernilai 32-bit
yang memiliki masukan 256. Empat 32-bit S-box masing-masing mempunyai 256 entri :
-
5/19/2018 Algoritma Blowfish Kel 5
9/24
Alur Enkripsi Algoritma
Blowfish(cont) Setelah inisialisasi, XOR P1 dengan 32 bit Kunci pertama,XOR P2 dengan 32 bit kunci ke-2 Berikut Langkah-langkahnya : Kunci = K1, K2, K3 K14 Subkey =P1, P2, P3 P18 P1 = P1 XOR K1 P2 = P2 XOR K2 | P14 = P14 XOR K14
P15 = P15 XOR K1 P16 = P16 XOR K2 P17 = P17 XOR K3 P18 = P18 XOR K4
-
5/19/2018 Algoritma Blowfish Kel 5
10/24
Alur Enkripsi Algoritma
Blowfish(cont)
Enkrip semua string nol dengan algoritma blowfishdengan menggunakan subkunci seperti dijelaskan padalangkah (1) dan (2)
Ganti P1 dan P2 dengan keluaran dari langkah (3)
Enkrip keluaran dari langkah (3) dengan P-array da S-array (S-box)
P1 dan P2 yang sudah diganti dengan hasil dari langkah (3)dienkripsi dengan algoritma blowfish
Ganti P3 dan P4 dengan keluaran dari langkah (5). Hasildari langkah (5) digunakan untuk menggantikan P3 danP4
Lanjutkan proses tersebut , ganti seluruh elemen dari P-
array, Kemudian seluruh keempat S-Box
-
5/19/2018 Algoritma Blowfish Kel 5
11/24
Alur Enkripsi Algoritma
Blowfish(cont)
Plaintext yang akan dienkripsi diasumsikan sebagaimasukan, Plaintext tersebut diambil sebanyak 64-bit, danapabila kurang dari 64-bit maka kita tambahkan bitnya,supaya dalam operasi nanti sesuai dengan datanya.
-
5/19/2018 Algoritma Blowfish Kel 5
12/24
Alur Enkripsi Algoritma
Blowfish(cont) Hasil pengambilan tadi dibagi 2, 32-bit pertama
disebut XL, 32-bit yang kedua disebut XR. Selanjutnya lakukan operasi XL = XL xor Pi dan XR =
F(XL) xor XR Hasil dari operrasi diatas ditukar XL menjadi XR dan
XR menjadi XL Lakukan sebanyak 16 kali, perulangan yang ke-16
lakukan lagi proses penukaran XL dan XR. Pada proses ke-17 lakukan operasi untuk XR = XR xor
P17 dan XL = XL xor P18. Proses terakhir satukan kembali XL dan XR sehingga
menjadi 64-bit kembali.
-
5/19/2018 Algoritma Blowfish Kel 5
13/24
Flowchart Blowfish
-
5/19/2018 Algoritma Blowfish Kel 5
14/24
Gambar Alur Algoritma Blowfish
-
5/19/2018 Algoritma Blowfish Kel 5
15/24
Gambar fungsi Feistel dalam
Blowfish Proses yang terjadi pada Fungsi Feistel tidak lain
merupakan proses S-box
Pada proses ini terjadi penelusuran tabel (tablelookup)
-
5/19/2018 Algoritma Blowfish Kel 5
16/24
Gambar fungsi Feistel dalam
Blowfish Proses yang terjadi pada Fungsi Feistel tidak lain
merupakan proses S-box
Pada proses ini terjadi penelusuran tabel (tablelookup)
Dalam proses S-box terjadi proses perhitungan bit,dimana hasil penelusuran tabel pada S-box pertama
akan ditambahkan dg hasil S-box yg ke-2, kemudianhasil penjumlahannya di Xor-kan dg hasil S-box yg ke-3 hasilnya kemudian ditambahkan kembali dg S-boxyg ke-4, maka menghasilkan output berukuran 32 bit
-
5/19/2018 Algoritma Blowfish Kel 5
17/24
Gambar fungsi Feistel dalam
Blowfish Proses yang terjadi pada Fungsi Feistel tidak lain
merupakan proses S-box
Pada proses ini terjadi penelusuran tabel (tablelookup)
Dalam proses S-box terjadi proses perhitungan bit,dimana hasil penelusuran tabel pada S-box pertama
akan ditambahkan dg hasil S-box yg ke-2, kemudianhasil penjumlahannya di Xor-kan dg hasil S-box yg ke-3 hasilnya kemudian ditambahkan kembali dg S-boxyg ke-4, maka menghasilkan output berukuran 32 bit
-
5/19/2018 Algoritma Blowfish Kel 5
18/24
Dekripsi Proses dekripsi sama dengan proses enkripsi hanya
saja subkey-nya dibalik
P18 diproses terlebih dahulu. P18 xor XL kemudianF(XL) xor XR lalu ditukar tempat, begitu seterusnya.
Dan diakhiri pada P1 dan P2 tidak dilakukanpenukaran melainkan penyatuan untuk mendapatkan
plainteks
-
5/19/2018 Algoritma Blowfish Kel 5
19/24
Dekripsi
-
5/19/2018 Algoritma Blowfish Kel 5
20/24
Menghilangkan Padding Setelah menghasilkan plainteks, maka selanjutnya
ialah memeriksa apakah plainteks yang dihasilkanterjadi penambahan bit (padding) sebelum dienkripsiatau tidak
Jika terjadi penambahan bit maka bit tersebut harusdilepaskan untuk mengembalikan plainteks utuhseperti sebelum di enkripsi
-
5/19/2018 Algoritma Blowfish Kel 5
21/24
Menghilangkan Padding
-
5/19/2018 Algoritma Blowfish Kel 5
22/24
Kelemahan Blowfish Kebutuhan memorinya yang besar tidak
memungkinkan untuk aplikasi kartu pintar (smartcard).
Blowfish tidak cocok untuk aplikasi seperti packetswitching, dengan perubahan kunci yang sering, atausebagai fungsi hash satu arah.
-
5/19/2018 Algoritma Blowfish Kel 5
23/24
Referensi http://www.schneier.com
http://www.codeproject/KB/security/blowfish/Blowfish.zip
http://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithm
http://www.schneier.com/http://www.codeproject/KB/security/blowfish/Blowfish.ziphttp://www.codeproject/KB/security/blowfish/Blowfish.ziphttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.design-reuse.com/articles/5922/encrypting-data-with-the-blowfish-algorithmhttp://www.codeproject/KB/security/blowfish/Blowfish.ziphttp://www.codeproject/KB/security/blowfish/Blowfish.ziphttp://www.schneier.com/ -
5/19/2018 Algoritma Blowfish Kel 5
24/24
Terima kasih.