Algoritma Blowfish Kel 5

Embed Size (px)

DESCRIPTION

Algoritma blowfish

Citation preview

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