• Tidak ada hasil yang ditemukan

TUGAS AKHIR - Simulasi enkripsi dan dekripsi algoritma blowfish - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "TUGAS AKHIR - Simulasi enkripsi dan dekripsi algoritma blowfish - USD Repository"

Copied!
107
0
0

Teks penuh

(1)

i

TUGAS AKHIR

SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS

ALGORITMA BLOWFISH

Diajukan untuk memenuhi salah syarat

Memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro

Jurusan Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

ANTONIUS BAYU ARIYANTO

NIM : 045114059

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

ii

FINAL PROJECT

ENCRYPTION AND DECRYPTION SIMULATION

BASED ON BLOWFISH ALGORITHM

In partial fulfilment of the requirements

For the degree of Sarjana Teknik

Electrical Engineering Study Program

Electrical Engineering Departement

Science and Technology Faculty Sanata Dharma University

ANTONIUS BAYU ARIYANTO

NIM : 045114059

ELECTRICAL ENGINEERING STUDY PROGRAM

ELECTRICAL ENGINEERING DEPARTMENT

SCIENCE AND TECHNOLOGY FACULTY

SANATA DHARMA UNIVERSITY

(3)
(4)
(5)
(6)

vi

HALAMAN MOTTO

Setiap orang bisa memulai

Tetapi hanya yang bertindak teruslah

Mencapai akhir.

Walau perjuangan akhir bukanlah

Mencapai garis batas, tetapi

Menyelesaikan

yang tidak terbatas.

Hidup adalah perjuangan, dimana tidak

Ada kata mundur untuk sesuatu yang

Telah diputuskan dan kalah bukanlah pilihan.

Bila hari ini ada yang pergi

(7)

vii

INTISARI

Kriptogafi adalah sebuah seni dan bidang keilmuan dalam penyandian informasi atau

pesan dengan tujuan menjaga keamanannya. Salah satu jenis kriptografi adalah kriptografi

Blowfish. Kriptografi Blowfish merupakan metode enkripsi dekripsi 64-bit yang mirip

dengan DES (Des Like Cipher) dan diciptakan oleh Bruce. Blowfish dikembangkan untuk

memenuhi kriteria desain yang cepat, kompak, sederhana dan aman.

Program dibuat dengan algoritma Blowfish terdiri dari tiga proses, yaitu subkunci,

proses enkripsi (penyandian dari plaintext ke ciphertext), proses dekripsi (penyandian dari

ciphertext ke plaintext). Proses subkunci, pesan asli di-XOR-kan dengan PBox yang telah

diinisialisasi kemudian dilakukan modifikasi dengan masukan string 0. Pada proses enkripsi

pesan asli dikenakan jaringan feistel dan diputar sebanyak 15 kali putaran, sedangkan untuk

proses dekripsi kebalikan dari proses enkripsi yang juga dikenakan jaringan feistel dan

diputar sebanyak 16 kali putaran.

Dari hasil perancangan dan pengamatan menunjukkan program penyandi enkripsi dan

dekripsi dengan algoritma Blowfish berhasil menyandikan data 64 bit dan program algoritma

Blowfish mampu menampilkan pesan asli dan pesan yang telah disandikan.

(8)

viii

ABSTRACT

Cryptography is an art an subject knowledge in information coding or messages with

purpose to keep it’s security. Kind of cryptography is Blowfish cryptography. Blowfish

cryptography is 64-bit description encryption metod whichis like with DES ( Des Like

Chiper) and created by Bruce Sheiner. Blowfish develop for fulfil design criteria with is fast,

compact, simple and secure.

This program made by Blowfish algorithm consist of three is subkey, procces is

encryption (coding from plaintext to chipertext), procces is decryption (coding from

chipertext to plaintext). At the subkey procces, original messages is XOR-ed by PBox which

was inisialed then it is modified by entering zero 0 string. There is feistel network at original

message in encryption procces and 15 times turned, description procces is the opponent of

encryptionwith is also use feistel network and turned 16 times.

From design result and observation are show that encryption decryption coding

program with Blowfish algorithm are success to code 64 data and Blowfish algorithm

program is able to show original messages and coded messages.

(9)
(10)

x

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa atas karunia dan rahmat sehingga

penulis dapat menyelesaikan tugas akhir yang berjudul Simulasi Enkripsi dan Dekripsi

berbasis algoritma Blowfish. Tugas akhir ini disusun guna memenuhi salah satu persyaratan

untuk memperoleh salah satu gelar sarjana Sains dan Teknologi di jurusan Teknik Elektro,

Universitas Sanata Dharma.

Penyusunan tugas akhir ini tidak terlapas dari bantuan, bimbingan serta dukungan dari

berbagai pihak yang sangat bermanfaat bagi penulis. Maka pada kesempatan ini penulis

mengucapkan terima kasih yang sebesar-besarnya kepada:

1.

Ibu Wiwien Widyastuti, S.T, M.T. selaku dosen pembimbing yang telah meluangkan

waktu untuk memberikan bimbingan dan pengarahan selama penyusunan tugas akhir.

2.

Para dosen Universitas Sanata Dharma khususnya dosen program studi Teknik

Elektro yang telah memberikan bekal kepada penulis.

3.

Para dosen penguji yang telah memberikan saran dan masukan yang berguna bagi

kesempurnaan tugas akhir ini.

4.

Para karyawan dan staff fakultas Sains dan Teknologi (mas Trie, mas Gito, dan

khusnya pak Jito), atas bantuannya.

5.

Bapak, Ibu, kakak, adikku dan kekasihku Angger yang telah memberikan perhatian,

kasih sayang dan dukungan yang besar kepada penulis.

6.

Teman-teman Teknik Elektro angkatan 04 atas dukungannya, khususnya Sumin, Putra

(11)
(12)

xii

DAFTAR ISI

Halaman Sampul ( Bahasa Indonesia) ... i

Halaman Sampul ( Bahasa Inggris) ... ii

Halaman Persetujuan Tugas Akhir ... iii

Halaman Pengesahan Penguji ... iv

Pernyataan Keaslian Karya ... v

Halaman Motto ... vi

Intisari ... vii

Abstract ... viii

Publikasi Karya Ilmiah ... ix

Kata Pengantar ... x

Daftar isi... xii

Daftar Gambar ... xv

Daftar Tabel ... xvii

BAB I:PENDAHULUAN

1.1.Judul ... 1

1.2.Latar Belakang ... 1

1.3.Tujuan dan Manfaat ... 2

1.4.Batasan Masalah ... 2

(13)

xiii

BAB II:DASAR TEORI

2.1.Pengertian dan Konsep Dasar Kriptografi ... 4

2.2.Klasifikasi Kriptografi ... 7

2.2.1.Kriptografi Berdasarkan Proses Enkripsi dan Dekripsi ... 7

2.2.2.Kriptografi Berdasarkan Jumlah Kunci yang Digunakan ... 8

2.2.2.1.Kriptografi Simetrik ... 8

2.2.2.2.Kriptografi Asimetrik ... 11

2.2.3.Kriptografi Berdasarkan Teknik Pembentukan Ciphertext ... 12

2.2.3.1.Blok Cipher ... 12

2.2.3.2.Cipher Aliran ... 13

2.3.Algoritma Kriptografi Blowfish ... 14

2.3.1.Prinsip Perancangan Algoritma Blowfish 64-Bit ... 15

2.3.1.1.Proses Pembangkit Subkunci ... 15

2.3.1.2.Proses Enkripsi Data ... 16

2.3.1.3.Proses Dekripsi Data ... 16

2.3.1.4.Kotak-S ... 17

2.3.1.5.Jaringan Feistel ... 18

2.4.Mengenal Visual Basic ... 20

2.4.1.Pengenalan IDE (Integrated Development Environment) ... 20

2.4.2.1.Title Bar ... 21

2.4.2.2.Menu Bar ... 21

2.4.2.3.Tool Bar ... 22

2.4.2.4.Tool Box ... 22

(14)

xiv

2.4.2.6.Propertis Window ... 23

2.4.2.7.Form Layout Window ... 24

2.4.2.8.Form ... 24

2.4.2.9.Form Code ... 25

BAB III:PERANCANGAN ALGORITMA BLOWFISH

3.1.Diagram Alir Pembangkit Subkunci ... 26

3.2.Diagram Alir Enkripsi Data ... 31

3.3.Diagram Alir Dekripsi Data ... 33

3.4.Tampilan Program ... 34

3.4.1.Tampilan Blok Menu ... 34

3.4.2.Tampilan Simulasi Enkripsi dan Dekripsi ... 35

BAB IV: PEMBAHASAN ... 39

4.1.Proses Penyandiaan Blowfish ... 39

4.2.Analisa dan Pembahasan Algoritma ... 49

4.2.1.Analisa Hasil Perangkat Lunak ... 52

4.2.1.1.Kelebihan ... 52

4.2.1.2.Kekurangan ... 52

BAB V: KESIMPULAN DAN SARAN ... 53

5.1. Kesimpulan ... 53

5.2.Saran ... 53

DAFTAR PUSTAKA ... 53

(15)

xv

DAFTAR GAMBAR

Gambar 2.1.Konsep Dasar Sistem Kriptografi ... 5

Gambar 2.2.Kriptosistem Simetrik ... 8

Gambar 2.3.Model Sistem Kriptografi Konvensional ... 9

Gambar 2.4.Model Sistem Kriptografi kunci Publik ... 12

Gambar 2.5.Enkripsi Blok Cipher ... 13

Gambar 2.6.Enkripsi Cipher Aliran ... 14

Gambar 2.7.Satu Putaran dalam Jaringan Feistel ... 19

Gambar 2.8.Dialog Box ... 20

Gambar 2.9.Tampilan IDE Visual Basic ... 21

Gambar 2.10.Tampilan title bar dan menu bar ... 22

Gambar 2.11.Tampilan Tool bar ... 22

Gambar 2.12.Tampilan Tool Box ... 22

Gambar 2.13.Tampilan Project Explorer ... 23

Gambar 2.14.Properties Window ... 23

Gambar 2.15.Form Layout Window ... 24

Gambar 3.16.Form ... 25

Gambar 3.17.Form Code ... 25

Gambar 3.1.Diagaram Alir Utama Blowfish ... 26

Gambar 3.2.Diagram Alir Subkunci ... 27

Gambar 3.3.Diagram Alir Proses Padding ... 28

(16)

xvi

Gambar 3.5.Diagram Alir Modifikasi PBox dan SBox ... 30

Gambar 3.6.Diagram Alir Proses Enkripsi ... 31

Gambar 3.7.Diagram Alir Proses Dekripsi ... 33

Gambar 3.8.Blok Alur Enkripsi dan Dekripsi Algoritma Blowfish ... 34

Gambar 3.9.Tampilan Simulasi Enkripsi Dekripsi Blowfish ... 35

Gambar 3.10. Tampilan Langkah2 XOR semua PBox dengan Key ... 36

Gambar 3.11.Tampilan Langkah3 Modifikasi PBox dan SBox ... 36

Gambar 3.12.Tampilan Proses Enkripsi ... 37

Gambar 3.13.Tampilan Proses Dekripsi ... 37

Gambar 4.1.Tampilan Simulasi Enkripsi dan Dekripsi ... 40

Gambar 4.2.Tampilan Mengisi Data di Textbox Plaintext dan texbox Key ... 41

Gambar 4.3.Tampilan Inisialisasi PBox dan SBox ... 42

Gambar 4.4.Tampilan Hasil Key yang di-XOR-kan denga PBox ... 43

Gambar 4.5.Tampilan Hasil Modifikasi Enkripsi dengan Input string0 ... 44

Gambar 4.6.Tampilan Hasil Enkripsi pada From Progrees ... 44

Gambar 4.7.Tampilan Hasil Enkripsi pada From Utama ... 45

Gambar 4.8. Tampilan Inisialisasi PBox dan SBox ... 46

Gambar 4.9. Tampilan Hasil Key yang di-XOR-kan denga PBox ... 47

Gambar 4.10. Tampilan Hasil Modifikasi Enkripsi dengan Input string0 ... 48

Gambar 4.11. .Tampilan Hasil Dekripsi pada From Progrees ... 48

(17)

xvii

DAFTAR TABEL

Tabel 2.1.Contoh Subsitusi Ceaser Cipher ... 8

Tabel 4.1.PBox yang telah di-XOR-kan dengan Kunci ... 50

(18)

PENDAHULUAN

1.1 Judul

Simulasi Enkripsi dan Dekripsi berbasis Algoritma Blowfish.

1.2 Latar Belakang

Perkembangan dunia telekomunikasi yang sangat pesat saat ini membawa pertumbuhan

dunia ke dalam masa teknologi informasi yang lebih berkembang. Sebagai contoh

penggunaan komputer digital, karena itulah nilai informasi saat ini sangat penting. Teknologi

informasi yang telah terjalin saat ini berdiri di atas media komunikasi sebagai media

transmisi informasi dari suatu tempat ke tempat lainnya. Informasi-informasi yang ingin

disampaikan melalui media komunikasi. Media komunikasi yang banyak digunakan tentu

harus merupakan media yang mudah dijangkau dan digunakan oleh semua orang. Contoh

media komunikasi yang saat ini sering digunakan adalah telepon dan jaringan internet.

Pengaksesan media komunikasi yang sangat mudah oleh semua orang membawa

dampak bagi keamanan informasi atau pesan yang menggunakan media komunikasi

tersebut[1]. Informasi menjadi sangat rentan untuk diketahui, diambil, dan dimanipulasi oleh

pihak-pihak yang tidak berkepentingan. Karena itulah dibutuhkan suatu metode yang dapat

menjaga kerahasiaan informasi ini. Metode yang dapat menjaga kerahasian informasi tersebut

adalah kriptografi. Kriptografi adalah sebuah seni dan bidang keilmuan dalam penyandian

informasi atau pesan dengan tujuan menjaga keamanannya[2]. Walaupun telah berkembang

sejak dulu, teknik kriptografi harus menyesuaikan diri

(19)

terhadap meluasnya penggunaan komputer digital

pada masa kini. Penggunaan komputer

digital mendorong berkembangnya kriptografi modern yang beroperasi dalam mode bit

daripada dalam mode karakter.

Blowfish merupakan kriptografi modern. Proses enkripsi dan dekripsi Blowfish

termasuk dalam golongan kriptosistem simetrik [3], yang berarti menggunakan kunci yang

sama untuk melakukan enkripsi dan dekripsi. Kelebihan Blowfish adalah menggunakan

operasi sederhana yaitu penambahan (addition), XOR, dan penelusuran tabel array [4].

1.3 Tujuan dan Manfaat

Tujuan penelitian ini adalah :

1.

Menghasilkan suatu program simulasi enkripsi

dan dekripsi dengan algoritma

Blowfish dengan menggunakan bahasa pemograman Visual Basic.

Manfaat penelitian ini adalah:

1.

Sebagai alat bantu bagi mahasiswa untuk memahami proses penyandian enkripsi

dan dekripsi.

1.4 Batasan Masalah

1. Bahasa yang digunakan di penelitian ini adalah bahasa pemograman Visual Basic.

2. Bit yang akan dienkripsi dan dekripsi adalah 64-bit.

1.5 Metodologi Penelitian

1.

Melakukan studi literatur mengenai algoritma Blowfish pada beberapa buku,

menunjukkan dasar teori, maupun situs yang berhubungan dengan algoritma

(20)

2.

Penulis mengambil beberapa materi yang menjelaskan mengenai algoritma

Blowfish dan pembahasannya.

3.

Melakukan perancangan dan menerapkan algoritma blowfish menggunakan

bahasa Visual Basic.

4.

Pembuatan program simulasi dengan algoritma kriptografi Blowfish.

5.

Pembahasan dan analisis proses dari plaintext

ke

ciphertext dan ciphertext ke

plaintext.

1.6

Sistematika Penulisan

BAB I

PENDAHULUHAN

Berisi judul, latar belakang, tujuan, manfaat, batasan masalah,

metodologi penelitian, sistematika penulisan.

BAB II

DASAR TEORI

Berisi dasar teori yang dipakai untuk pembahasan penulisan tugas

akhir.

BAB III

PERANCANGAN

Membahas tentang gambaran perancangan dengan diagram alir dan

tampilan algoritma Blowfish.

BAB IV

PEMBAHASAN

Berisi pembahasan kerja program yang telah dibangun, kelebihan dan

kekurangan.

BAB V

KESIMPULAN DAN SARAN

Berisi kesimpulan setelah dilakukan perancangan dan pembahasan

kerja program dan saran-saran untuk pengembangan program

(21)

4

BAB II

DASAR TEORI

2.1 Pengertian dan Konsep Dasar Kriptografi

Kriptologi merupakan ilmu yang mempelajari mengenai komunikasi aman. Kriptologi

meliputi dua hal pokok yaitu:

2.1.1

Kriptografi (

Cryptography

)

Kriptografi berasal dari dua suku kata yaitu kripto dan grafi. Kripto artinya

menyembunyikan, sedangkan grafi artinya ilmu[1]. Kriptografi adalah ilmu yang

mempelajari cara-cara menyandikan pesan yang bertujuan untuk menghindari

perolehan pesan secara tidak sah.

Secara umum, sistem kriptografi dapat didefinisikan sebagai serangkaian

proses meliputi pengubahan file

dari

file asli menjadi file tersandi dan pengubahan

data

file tersandi menjadi file asli kembali. Di dalam sistem kriptografi sering

digunakan istilah khusus yaitu:

a.

Algoritma Kriptografi

Algoritma merupakan sekumpulan langkah yang diperlukan untuk

pengubahan atau transformasi file, dari file asli menjadi file tersandi dan sebaliknya.

b.

Kunci Kriptografi

Kunci merupakan sekumpulan variabel yang terdiri atas urutan bit atau angka

yang diperlukan untuk proses transformasi file. Kunci berperan sebagai pengendali

(22)

ENKRIPSI

DEKRIPSI

Plaintext

Ciphertext

Plaintext

erat dengan algoritma yang digunakan dalam sistem kriptografi. Di dalam

penerapannya, variasi dari satu jenis kunci yang digunakan dapat berubah-ubah agar

dapat lebih aman.

c.

Plaintext

Plaintext adalah pesan asli atau informasi yang ingin dikirimkan dan dijaga

keamanannya.

d.

Ciphertext

Ciphertext adalah pesan yang telah disandikan sehingga siap untuk dikirimkan.

e.

Enkripsi

Enkripsi adalah proses pengubahan sebuah sandi dari yang bisa dimengerti

(plaintext) menjadi sebuah sandi yang tidak bisa dimengerti (ciphertext). Proses ini

dilakukan oleh pengirim.

f.

Dekripsi

Dekripsi adalah proses mengubah ciphertext menjadi plaintext. Proses ini

dilakukan oleh penerima. Pesan yang ditransmisikan adalah yang telah berbentuk

ciphertext, sehingga orang yang menyadap media transmisi tidak akan dapat

memahami pesan yang diperoleh. Gambar 2.1 menggambarkan blok konsep dasar

sistem kriptografi.

Gambar 2.1 Konsep Dasar Sistem Kriptografi[1]

(23)

Kriptanalis merupakan cabang dari kriptografi yang menangani secara khusus

mengenai pemecahan mekanisme yang digunakan dalam kriptografi[1]. Kriptanalis

harus mengetahui algoritma enkripsi dan dekripsi secara detail.

Secara umum operasi enkripsi

dan dekripsi secara matematis dapat dinotasikan

sebagai berikut:

Misalkan:

C

=

Ciphertext

P

=

Plaintext

Fungsi enkripsi E memetakan P ke C

(2.1)

Fungsi dekripsi D memetakan C ke P

(2.2)

Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal,

kesamaan berikut harus benar

(2.3)

Dengan menggunakan kunci K, fungsi enkripsi dan dekripsi menjadi:

E

K

(P) = C

(2.4)

D

K

(C) = P

(2.5)

Kedua fungsi di atas memenuhi syarat sebagai berikut:

D

K

(E

K

(P) = P

(2.6)

Kekuatan algoritma kriptografi diukur dari banyaknya kerja yang dibutuhkan untuk

memecahkan data ciphertext menjadi plaintext. Kerja ini dapat diekivalenkan dengan waktu.

(24)

waktu yang dibutuhkan, maka semakin kuat algoritma kriptografinya, yang berarti

semakin aman digunakan untuk menyandikan pesan [2].

2.2 Klasifikasi Kriptografi

2.2.1 Kriptografi Berdasarkan Proses Enkripsi dan Dekripsi

1.

Transposisi

Kunci transposisi merupakan suatu blok kunci yang digunakan untuk mengubah

posisi karakter atau bit data asli [2]. Pengubahan posisi itu tergantung pada panjang pola

pengubahan yang digunakan. Sebagai contoh plaintext adalah ”JURUSAN TEKNIK

ELEKTRO”. Jika menggunakan kunci=3, maka ciphertext adalah

JSEKKUUATKIEETORNNLR

J

S

E

K

K

U U

A T K I E E T O

R

N

N

L R

2.

Subsitusi

Teknik subsitusi ini, ciphertext

dibentuk dengan melakukan proses penggantian

terhadap elemen-elemen plaintext dengan simbol atau bilangan. Ada beberapa tipe cipher

subsitusi, diantaranya adalah monoalphabetic dan polyalphabetic.

Monoalphabetic

merupakan

cipher yang paling sederhana. Karakter diperlukan sebagai elemen terkecil dan

satu karakter memiliki pengganti dengan karakter lain. Cipher monoalphabetic yang tertua

adalah cipher Caesar[2]. Metode ini dilakukan dengan cara mengganti karakter ke karakter ke

(25)

ENKRIPSI

DEKRIPSI

Plaintext

Ciphertext

Plaintext

KUNCI

Tabel 2.1 Contoh Subsitusi Caesar Cipher dengan kunci = 5

Plaintext :

FAKULTAS TEKNIK

Ciphertext

:

KFPYQXFWXJPSNP

2.2.2 Kriptografi Berdasarkan Jumlah Kunci yang Digunakan

1.

Kriptografi Simetrik (Algoritma Konvensional)

2.

Kriptografi Asimetrik (Algoritma Kunci Publik)

2.2.2.1 Kriptografi Simetrik

Kriptografi simetrik atau disebut juga algoritma konvensional adalah

algoritma yang menggunakan kunci yang sama untuk proses enkripsi dan proses

dekripsi. Gambar 2.2 menggambarkan kriptografi simetrik

Gambar 2.2 Kriptografi Simetrik [1]

Kunci yang digunakan pada kriptografi simetrik harus benar-benar dijaga

kerahasiannya karena itu disebut kunci pribadi (private key) dan sebelum

berkomunikasi kedua pihak harus bersepakat dulu tentang kunci yang

dipergunakan.

Keamanan dari enkripsi

simetrik tergantung dari beberapa faktor. Algoritma enkripsi

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

S

T

U

V

W

X

Y

Z

(26)

harus cukup kuat sehingga tidak mungkin untuk mendekripsi pesan dengan berdasar

pada

ciphertext dan algoritma saja. Gambar 2.3 menggambarkan proses enkripsi dan

dekripsi pada kriptografi simetrik

.

Gambar 2.3 Model Sistem Kriptografi Simetrik atau Konvensional [2]

Suatu

plaintext P dienkripsi dengan menggunakan transformasi balik

(invertible transformation) E, dengan kunci K yang menghasilkan ciphertext C.

Proses ini dapat dituliskan dalam bentuk:

C = E (K,P)

(2.7)

Ciphertext ini ditransmisikan melalui kanal umum. Ketika seseorang yang

dituju menerima C, ia mendekripsikannya dengan transformasi invers D. Proses ini

dapat ditulis dengan bentuk:

D

(K,C) = D[( K,E) (K,P)] = P

(2.8)

Sistem kriptografi konvensional mempunyai sifat sebagai berikut :

Enkripsi

Dekripsi

Kanal Rahasia

Kriptanalisis

PENGIRIM

Kunci

Plaintext

Plaintext

PENERIMA

P = D (K,C)

= D (K,E( K,P)

Ciphertext

(27)

1.

Proses dekripsi adalah kebalikan dari proses enkripsi

D[( K,E) (K,P)] = P

(2.9)

2.

Dekripsi tidak dapat dilakukan tanpa menggunakan kunci yang sama dengan enkripsi

Jika pihak A akan berkomunikasi dengan pihak B, maka langkah-langkah

yang harus dilakukan adalah sebagai berikut :

1.

A dan B saling memberitahu kunci K, yang tidak boleh diketahui oleh pihak lain.

2.

A mengenkripsi plaintext P menggunakan algoritma enkripsi

E, dengan kunci K dan

mengirimkan hasilnya berupa ciphertext C = E (K,P) ke B.

3.

B menggunakan algoritma dekripsi D dengan kunci K, memperoleh kembali plaintext

P = D[K,E(K,P)]

Jika kunci yang dipergunakan untuk mendekripsi tidak sama dengan kunci

yang dipergunakan untuk mengenkripsi, maka proses dekripsi tidak dapat berjalan.

Yang perlu diperhatikan pada sistem kriptogarafi konvensional ini adalah kerahasiaan

kunci mutlak diperlukan. Hal ini tentunya memerlukan kerjasama dari kedua belah

pihak untuk saling menjaga kerahasian kunci yang mereka pergunakan.

Kelebihan algoritma simetrik ini adalah kecepatan proses enkripsi dan

dekripsinya yang jauh lebih cepat dibandingkan dengan algoritma asimetrik.

Sedangkan kelemahan algoritma ini adalah permasalahan distribusi kunci (key

distribution). Seperti yang telah dibahas, proses enkripsi dan dekripsi menggunakan

kunci yang sama. Sehingga muncul persoalan menjaga kerahasian kunci, yaitu pada

(28)

sampai hilang atau sudah dapat ditebak oleh orang lain (orang yang tidak berhak),

maka kriptogarfi ini sudah tidak aman lagi.

Kelemahan lain adalah masalah efisiensi jumlah kunci. Jika terdapat n

pengguna, maka diperlukan n(n-1)/2 kunci, sehingga untuk jumlah pengguna yang

sangat banyak, sistem ini tidak efisien lagi [2].

Semua fungsi kriptografi harus memiliki sifat reversibility, yaitu mampu

mengembalikan

ciphertext hasil enkripsi kembali ke plaintext melalui proses

dekripsi[2]. Kemampuan reversibility hampir semua metode pada algoritma kunci

mengandalkan kemampuan reverse operation. Metode ini berintikan membalik semua

operasi yang ada dengan melakukan operasi yang berlawanan. Jika operasi yang

berlawanan adalah penjumlahan dan pengurangan, maka terjadi penggeseran ke kiri

dan ke kanan. Algoritma kunci simetrik blok cipher yang memiliki metode yang

bersifat reversible tidak bisa berdiri sendiri seperti metode expand dan filter. Metode

tersebut akan bersifat reversible jika digunakan pada metode jaringan feistel.

2.2.2.2 Kriptografi Asimetrik

Kriptografi asimetrik, yang biasanya juga dengan doble key atau

public key,

menggunakan dua kunci , yaitu kunci satu digunakan untuk proses enkripsi dan kunci

yang digunakan untuk proses dekripsi [2]. Meskipun kedua kunci itu berbeda namun

memiliki hubungan secara matematik. Kriptografi asimetrik ini memberikan secrecy

dan autehentication kepada pemakainya. Kunci untuk enkripsi diberitahukan kepada

umum tanpa membahayakan kunci yang digunakan untuk dekripsi. Kunci untuk

umum disebut dengan public key dan kunci untuk dekripsi yang dirahasiakan disebut

(29)

ENKRIPSI

DEKRIPSI

Plaintext

Chipertext

Plaintext

KUNCI PUBLIK

KUNCI RAHASIA

Gambar 2.4 menggambarkan model sistem kriptografi kunci publik.

Gambar 2.4 Model Sistem Kriptografi Kunci Publik. [1]

Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan

kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka

tidak ada kesepakatan mengenai keamanan data terlebih dahulu maupun saling tidak

mengenal satu sama lainnya.

2.2.3 Kriptografi Berdasarkan Teknik Pembentukan

Ciphertext

2.2.3.1

Blok

Cipher

Teknik ini mentransformasikan secara simultan seluruh blok dari bit-bit

plaintext dengan menggunakan kunci yang sama [3]. Pemetaan yang dilakukan adalah

pemetaan satu-satu dari blok plaintext ke blok ciphertext. Jika panjang plaintext tidak

habis dibagi dengan panjang ukuran blok, yaitu 64-bit, maka mengakibatkan blok

terakhir berukuran lebih pendek daripada blok-blok lainnya. Cara mengatasi hal ini

adalah dengan padding, yaitu menambahkan blok terakhir dengan pola bit yang

(30)

Pengirim

Blok

plaintext

Algoritma Enkripsi

Penerima

Blok

ciphertext

Algoritma Dekripsi

Blok

plaintext

Blok

ciphertext

menggambarkan pemetaan yang dilakukan adalah pemetaan satu-satu dari blok

plaintext ke blok ciphertext.

Gambar 2.5 Enkripsi Blok Cipher

2.2.3.2

Cipher

Aliran

Proses ini berkaitan dengan aliran bit data. Cipher aliran beroperasi pada

aliran bit data. Transformasi yang dilakukan berada di bawah kendali bit-bit kunci.

Tiap blok bit plaintext digabungkan dengan blok bit kunci.

Ukuran paket bervariasi dan beberapa sistem cipher mengijinkan pemakainya

menentukan sendiri ukuran paket. Jika ukuran paket yang dipilih sesuai, maka arus

cipher bisa menyediakan arus kunci yang sesuai dengan panjang plaintext. Hal ini

menghilangkan masalah yang terdapat dalam penambahan bit untuk menyesuaikan

ukuran

plaintext [4]. Gambar 2.6 menggambarkan enkripsi aliran yang beroperasi

(31)

Pembangkit aliran

kunci

Plaintext

Ciphertext

....1101

Kunci

…..0101

…1000

Aliran Kunci

Gambar 2.6 Enkripsi cipher aliran [2]

2.3 Algoritma Kriptografi Blowfish

Blowfish merupakan sebuah algoritma kunci simetrik cipher

blok yang

dirancang pada tahun 1993 oleh Bruce Schneier untuk menggantikan DES (Data

Encryption Standard)[4]. Blowfish adalah algoritma kunci simetrik, yang berarti

menggunakan kunci yang sama untuk melakukan proses enkripsi dan proses dekripsi

data. Blowfish 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 ditambah bit-bit tambahan (padding) sehingga

ukuran tiap blok sama. Jika ukuran blok adalah 64-bit (8 byte) dan blok terakhir terdiri

dari 24-bit ( 3 byte), maka blok terakhir ditambah dengan 40 bit ( 5 byte) agar menjadi

64-bit. Jika dengan menambahkan 4 buah byte 0 dan satu buah byte angka 5, maka dekripsi 5

(32)

2.3.1 Prinsip Perancangan Algoritma Blowfish 64-Bit

Perancangan pada algoritma Blowfish mempunyai tiga tahap utama yaitu

pembangkit subkunci, proses enkripsi data dan Proses dekripsi data[5]. Cipher blok yang

digunakan pada algoritma blowfish harus memperhatikan beberapa prinsip yaitu jaringan

Feistel (Feistel network), kotak-S (S-box) dan inisial Pbox.

2.3.1.1 Proses Pembangkit Subkunci

Subkunci merupakan bagian proses awal sebelum melakukan enkripsi data

maupun dekripsi data. Proses pembangkit subkunci adalah sebagai berikut:

1.

Pertama-tama PBox dan SBox diinisialisasi secara berurutan dengan string yang tetap

seperti pada lampiran.

2.

Operasi XOR dilakukan pada P1 dengan 32-bit pertama dari kunci, operasi XOR

dilakukan pada P2

dengan 32-bit kedua dari kunci dan seterusnya untuk setiap bit

dari kunci (sampai P18).

3.

PBox dimodifikasi menggunakan enkripsi dengan input string 0

4.

Seluruh P1 dan P2 untuk melakukan proses enkripsi sampai PBox terenkrip semua

diganti.

5.

Seluruh PBox dan keempat SBox diganti dengan keluaran yang berubah secara

berurutan dari algoritma Blowfish.

Contoh 2.1:

Panjang maksimum kunci adalah 7 blok, masing-masing 32-bit

P

1

= P

1

XOR K

1

, P

2

= P

2

XOR K

2

, P

3

= P

3

XOR K

3

, P

4

= P

4

XOR K

4

, P

5

= P

5

XOR K

5,

P

6

= P

6

XOR K

6,

P

7

= P

7

XOR K

7,

….., P

15

= P

15

XOR K

1

,

(33)

2.3.1.2 Proses Enkripsi Data

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali putaran.

Semua operasi adalah penambahan dan XOR pada variabel 32-bit. Tambahan operasi

lainnya hanyalah empat penelusuran tabel array berindeks untuk setiap putaran. Untuk

proses enkripsi pada algoritma Blowfish dapat dijelaskan sebagai berikut:

1.

Plaintext yang akan dienkripsi diasumsikan sebagai masukan. Plaintext tersebut

diambil sebanyak 64-bit.

2.

Plaintext yang sudah disandikan dibagi menjadi dua. 32-bit pertama disebut Xl, dan

32-bit yang kedua disebut Xr

3.

Xl = Xl XOR Pi dan Xr = F(Xl) XOR Xr

4.

Xl

ditukar menjadi Xr

dan Xr

ditukar menjadi Xl

5.

Pertukaran dilakukan sebanyak 16 kali putaran.

6.

Xr = Xr

XOR P17

dan Xl = Xl XOR P18

7.

Menyatukan kembali Xl dan Xr

sehingga menjadi 64-bit kembali.

2.3.1.3 Proses Dekripsi Data

Proses dekripsi sama dengan enkripsi, kecuali pada PBox digunakan dengan

urutan terbalik. Proses algoritma dekripsi pada blowfish dapat dijelaskan sebagai berikut:

1.

Ciphertext yang akan didekripsi diasumsikan sebagai masukan, ciphertext

tersebut

diambil sebanyak 64-bit.

2.

Ciphertext dibagi menjadi 2, 32-bit pertama disebut Xl, 32-bit yang kedua disebut Xr

3.

Xl = Xl XOR Pi dan Xr = F(Xl) XOR Xr

4.

Xl

ditukar menjadi Xr dan Xr ditukar menjadi Xl

(34)

6.

Xr = Xr

XOR P1 dan Xl = Xl XOR P1

7.

Proses terakhir adalah menyatukan Xl dan Xr

sehingga menjadi 64-bit kembali.

2.3.1.4 Kotak-S (PBox)

Kotak-S merupakan substitusi sederhana yang memetakan satu atau lebih bit

dengan satu atau lebih bit yang lain. Algoritma Blowfish kotak-S memetakan m

bit

masukan menjadi n bit keluaran, sehingga S tersebut dinamakan kotak m x n

kotak-S. Contoh 2.2 menunjukkan proses penentuan PBox yang terdapat dalam algoritma

Blowfish.

Contoh 2.2 merupakan masukan dari operasi tabel array

yang

dijadikan sebagai

indeks PBox, dan keluarannya ditelusuri di dalam PBox seperti pada lampiran.

Contoh 2.2

Masukan : C66B9A20, penentuan PBox

Bagi masukan, menjadi empat bagian 8-bit : a,b,c dan d

a = c6 b = 6b

c = 9a d = 20

Ubah a, b, c, d ke desimal

a = 198 b = 107

c = 154 d = 32

Gabungkan S

1

, S

2

, S

3

, S

4

dengan a, b, c, d

S

1

,

198

S

2,107

S

3,154

S

4,

32

Kemudian untuk mencari keluaran pada kotak-S dapat dicari

dengan penelusuran tabel array, seperti pada lampiran.

S

1,198

= BE0E1777 S

2

,

107

= 9EbABF2C

(35)

2.3.1.5 Jaringan

Feistel

Jaringan Feistel pertama kali diperkenalkan oleh Horst Feistel. Metode ini

digunakan dalam salah satu algoritma kriptografi blok, yaitu Blowfish. Proses enkripsi

dan dekripsi jaringan Feistel terdapat pada putaran-putaran kunci untuk menghasilkan

keluaran. Kemudian salah satu blok dikenakan fungsi F, yaitu fungsi yang dikenakan

pada saat menghitung nilai Xl. Kemudian diputar sebanyak 16 kali putaran, demikian

seterusnya selama beberapa kali putaran sehingga menghasilkan Cipher blok yang lebih

acak.

l

i

= R

i-1

(2.11)

r

i =

L

i-1

XOR F( R

i-1,

K

i

)

(2.12)

F(Xl) = (((S

1,a

+ S

2,b

mod 2

32

) XOR S

3,c

) + S

4,c

)

mod 2

32

(2.13)

Nilai a, b, c, dan d diperoleh dari Xl

dimana Xl

yang berukuran 32-bit

dipecah-pecah menjadi 8-bit. L

i

adalah jumlah bit kiri pada putaran ke i. R

i

adalah jumlah bit

kanan pada putaran ke i. K

i

adalah kunci pada putaran ke i. F(Xl) adalah fungsi F.

Inti dari jaringan Feistel adalah fungsi F, yang memetakan sebuah bit masukan

menjadi bit keluaran. Blok hasil dari fungsi F tersebut diputar. Kemudian dilakukan

fungsi F kembali selama beberapa kali. Untuk melakukan proses perputaran, fungsi F

membutuhkan adanya kunci internal. Jadi keluaran fungsi F dengan masukan

(36)

Gambar 2.7 Satu putaran dalam Jaringan Feistel [4]

Gambar 2.7 menunjukkan proses satu putaran pada Blowfish. Keluaran

ciphertext

adalah

blok bagian bawah. Masukan berupa plaintext

ada di blok bagian

atas. Sedangkan yang bekerja pada bagian tengah, beroperasi dengan mode operasi

XOR.

Contoh 2.3

Masukan =

4d415441

F(XL) = (((S

1,a

+ S

2,b

mod 2

32

) XOR S

3,c

) + S

4,c

)mod 2

32

Penentuan kotak-S : a = 77, b = 65, c = 84, d = 65

S

1,77

= 21C66842 S

2,65

= 4E548B38 S

3,84

= 5D886E17 S

4,65

= E029AC71

F(Xl) = (((21C66842 + 4E548B38 mod 100000000)XOR 5d886e17 +

E029AC71 )mod C

= ((701AF37A XOR 5D886E17) + e029ac71) mod 100000000

= 2D929D6D + E029AC71

= 10DBC49DE mod 100000000

=

0DBC49DE

Input

Output

(37)

2.4

Mengenal Visual Basic

Visual Basic 6.0 merupakan salah satu bahasa pemrograman BASIC (Beginner’s All

purpose Symbolic Instruction Code) yang dikembangkan oleh Microsoft sejak tahun 1991.

Bahasa pemrograman pada Visual Basic mendukung pemrograman yang berorientasi obyek

atau disebut juga OOP (Object Oriented Programming). Maksud dari object oriented atau

OO adalah melihat masalah dari obyek-obyek yang terdapat dalam masalah tersebut [6].

2.4.1 Pengenalan IDE (

Integrated Development Environment

)

Saat pertama kali membuka program Visual Basic, akan muncul sebuah dialog box

seperti di Gambar 2.8. Dialog box ini digunakan untuk memilih jenis proyek yang akan

dibuat.

Gambar 2.8 Dialog box untuk pilihan tipe new project. [6]

Setelah jenis proyek dipilih, tampilan Visual Basic akan terlihat seperti Gambar 2.9.

Tampilan ini memperlihatkan bagian-bagian penting seperti menu bar,

tool bar,

project,

(38)

Gambar 2.9 Tampilan IDE Visual Basic. [6]

2.4.2.1

Title Bar

Title bar terletak pada bagian paling atas dan menyatakan nama atau judul proyek

yang sedang aktif .

2.4.2.2

Menu bar

Menu bar terletak di bawah title

bar dan berisi kumpulan perintah-perintah yang

memiliki fungsi berbeda. Visual Basic 6.0 menyediakan tiga belas menu yaitu File, Edit,

View, Project, Format, Debug, Run, Query, Diagram, Tools, Add-ins, Window, dan Help.

Menu-menu ini ada pada Gambar 2.10.

(39)

2.4.2.3

Tool bar

Tool bar sebenarnya memiliki fungsi yang sama seperti menu bar, hanya saja berbeda

cara penggunaannya. Pada menu bar, perintah dijalankan dengan mengakses menu terlebih

dulu, lalu sub menu, dan selanjutnya baru perintah yang akan digunakan. Pada tool bar,

perintah langsung ditampilkan dalam bentuk icon dan akan langsung dilaksanakan ketika

icon tersebut dipilih. Dengan kata lain, icon-icon pada tool bar merupakan shortcut dari

perintah-perintah pada menu bar. Gambar 2.11 menunjukkan tampilan tool bar.

Gambar 2.11 Tampilan tool bar. [6]

2.4.2.4

Tool box

Tool box adalah tempat kontrol-kontrol yang akan digunakan untuk membantu

pembuatan program aplikasi. Beberapa kontrol yang digunakan yaitu textbox, label,

command button, option button, dan combo box. Tidak semua kontrol ditampilkan pada tool

box. Namun kontrol-kontrol yang tidak ditampilkan dapat ditambah ke dalam tool box sesuai

dengan kebutuhan penggunaannya. Tampilan tool box ditunjukkan pada Gambar 2.12.

Gambar 2.12 Tampilan tool box. [6]

2.4.2.5

Project Explorer

Project explorer digunakan untuk mengakses bagian-bagian pembentuk project. Pada

(40)

bertingkat. Pengguna juga dapat dengan mudah menambah form atau module melalui project

explorer ini. Tampilan project explorer ditunjukkan pada Gambar 2.13.

Gambar 2.13 Tampilan project explorer. [6]

2.4.2.6

Properties window

Properties window merupakan tempat yang digunakan untuk mengatur properti dari

setiap obyek kontrol yang akan digunakan pada program aplikasi.

Gambar 2.14 Tampilan properties window. [6]

Terdapat dua cara untuk menampilkan properties window, yaitu sesuai abjad

(alphabetic) atau sesuai kategori (categorized). Tampilan properties window ditunjukkan

(41)

2.4.2.7

Form Layout Window

Form layout digunakan untuk melihat atau mengetahui posisi tampilan form saat

program dijalankan. Hasil pengaturan ukuran form

yang dilakukan pada properties window

akan terlihat pada form layout window ini. Pengguna dapat mengubah letak tampilan form

dengan mengatur posisi form

pada

form layout window. Tampilan form layout window

ditunjukkan pada Gambar 2.15.

Gambar 2.15 Tampilan form layout window. [6]

2.4.2.8

Form

Form

digunakan untuk menempatkan obyek dari kontrol-kontrol yang akan

digunakan untuk merancang dan membuat program aplikasi. Tampilan form

ditunjukkan

pada Gambar 2.16.

(42)

2.4.2.9

Form Code

Form code digunakan sebagai tempat untuk menulis kode-kode program aplikasi.

Untuk menampilkan form code, perintah view code dipilih pada window properties. Tampilan

form code ditunjukkan pada Gambar 2.17.

(43)

BAB III

PERANCANGAN ALGORITMA BLOWFISH

Bab ini akan memaparkan perancangan diagram alir program simulasi untuk

algoritma Blowfish. Program dibuat berdasarkan tiga tahap utama dalam merancang

algoritma Blowfish yang telah dibahas pada Bab II menggunakan program Visual Basic.

Gambar 3.1 menggambarkan proses tiga tahap utama dalam perancangan algoritma Blowfish.

Gambar 3.1 Diagram Alir Utama dalam Perancangan Algoritma Blowfish.

3.1

Diagram Alir Pembangkit Subkunci

Proses pembangkit subkunci pada Blowfish harus dibangkitkan terlebih dahulu

sebelum melakukan proses enkripsi maupun dekripsi data. Proses pembangkit subkunci

diawali dengan penginisialisasi PBox(Pi) seperti pada lampiran, yaitu dari P1

sampai dengan

P18. Masukan berupa kunci dengan panjang maksimum 448-bit atau mulai dari kelipatan

32-Mulai

Proses Pembangkit

Subkunci

Proses Enkripsi

Data

Proses Dekripsi

Data

Selesai

(44)

bit. Proses selanjutnya adalah mengkonversi masukan dari kode ASCII ke heksadesimal dan

kunci dibagi masing-masing 32-bit. Gambar 3.2 adalah diagram alir proses pembangkit

subkunci.

Gambar 3.2 Diagram Alir proses Pembangkit subkunci

Mulai

Inisialisasi PBbox1 (P1 sampai P18) dan SBox

Tampilkan inisialisasi PBox (P1 sampai P18) SBox

Masukkan Kunci (Kn)

Kn < kelipatan 32 bit

XOR semua PBox dengan Kunci (Kn)

A

A

Kn < P18

Modifikasi PBox dan SBox dengan string 0

PBox < 32 bit

Hasil Proses pembangkit subkunci yaitu PBox dan Sbox Padding

Padding

Selesai Ya

Ya

Tidak

Tidak

(45)

Proses pertama dalam membangkitkan kunci adalah operasi XOR dilakukan pada

dengan 32-bit dari kunci pertama, sedangkan operasi XOR dilakukan pada P2dengan 32-bit

dari kunci kedua dan seterusnya untuk setiap bit dari kunci (sampai P18). Selanjutnya Jika

panjang kunci kurang dari kelipatan 32-bit, maka yang akan terjadi adalah blok terakhir

berukuran lebih pendek daripada blok-blok lainnya. Cara mengatasinya adalah dengan

padding.

Padding

adalah penambahan blok akhir dengan pola bit yang teratur agar

panjangnya sama dengan ukuran blok yang ditetapkan. Gambar 3.3 adalah diagram alir

proses padding.

Gambar 3.3 Diagram Alir proses Padding

Proses selanjutnya adalah modifikasi PBox dan SBox menggunakan enkripsi dengan

input string 0. Algoritma Blowfish menggunakan subkunci, Xl adalah PBox ganjil (P1, P3,

P5, P6, P7, P9, P11, P13,P15, P17 dan Xr adalah PBox genap (P2, P4, P6, P8, P10, P12, P14,

P16, P18) dan keempat SBox. Selanjutnya mengganti P1 dan P2 dengan keluaran proses

pertama. Proses kedua modifikasi PBox dan SBox adalah dengan mengenkrip keluaran dari

proses pertama dengan algoritma Blowfish menggunakan kunci yang sudah dimodifikasi.

Mulai

Penambahan nilai 0 pada akhir blok

Tampilkan hasil padding

(46)

Selanjutnya P3 dan P4 diganti dengan keluaran proses kedua dan seterusnya dengan

mengganti PBox, kemudian seluruh SBox berurutan, dengan keluaran yang berubah secara

kontinyu dari algoritma Blowfish. Proses SBox1 =128, SBox2 = 128, SBox3 = 128 dan

SBox4 = 128 jadi total keseluruhan SBox adalah 512 iterasi. Proses modifikasi Sbox dan

PBox terdapat proses jaringan Feistel. Gambar 3.4 adalah diagram alir proses jaringan Feistel

dan Gambar 3.5 adalah diagram alir modifikasi PBox dan SBox.

Gambar 3.4 Diagram Alir Proses Jaringan Feistel

Mulai

Xl =32-bit dan SBox

Xl dibagi menjadi 4 = a,b,c,d bernilai 8bit

F(Xl) = (((S1,a + S2,b mod 2^32) XOR s3,c) + s4)mod 2^32

F(Xl) <32 bit

Padding

Hasil Jaringan Feistel (FXl)

Selesai Ya

(47)

Gambar 3.5 Modifikasi PBox dan SBox menggunakan enkripsi dengan input string 0

Mulai

Hitung Jaringan Feistel F(Xl)

Xr= F(Xl) Xor Xr

Tukar Xl dan Tukar Xr

Xr = Xr Xor P17 Xl= Xl Xor P18

Selesai Xl= PBox ganjil

Xr= PBox genap

Hasil terakhir modifikasi PBox dijadikan input Sbox

Apakah PBox sudah dimodifikasi semua? Xl= Xl Xor Pi

Pi < 16

Ya

Tidak

A

A

Xl= Xl Xor Pi

Hitung Jaringan Feistel F(Xl)

Xr= F(Xl) Xor Xr

Tukar Xl dan Tukar Xr

Pi < 16

Xr = Xr Xor P17 Xl= Xl Xor P18

Apakah SBox sudah dimodifikasi semua? Belum

Sudah

Sudah Ya

Tidak

(48)

3.2

Diagram Alir Enkripsi Data

Enkripsi adalah proses pengubahan dari plaintext ke ciphertext. Gambar 3.6

menunjukkan diagram alir proses enkripsi.

Gambar 3.6 Diagram Alir proses Enkripsi

Mulai

Masukkan

Plaintext

Xl dan Xr <64 bit

Hitung Jaringan Feistel F(Xl)

F(Xl) <32 bit

Xr = F(Xl) XOR Xr

Tukar Xl dan Xr

Xr = Xr XOR P17

Xl = Xl Xor P18 A

ya

Tidak

Ya

Tidak

Padding

Padding

Hasil proses pembangkit subkunci yaitu PBox dan Sbox

Pi < 16

Tidak Ya

Xl = Xl XOR Pi

Penggabungan Xl dan Xr Plaintext dibagi

menjadi 2 yaitu Xl dan Xr

A

Seles

ai

(49)

Gambar 3.5 menjelaskan bahwa masukan berupa plaintext 64-bit dibagi menjadi 2.

32-bit pertama disebut Xl dan 32-bit yang kedua disebut Xr. Xl

dan Xr

hanya sebagai simbol

untuk mempermudah proses enkripsi. Jika plaintext lebih dari 64-bit, maka proses dilakukan

2 kali, proses yang pertama 64 bit dan proses yang kedua 64-bit.

Proses selanjutnya adalah melakukan operasi Xl = Xl XOR PBox

dan Xr = F(Xl)

XOR Xr. Dari operasi di atas, Xl ditukar menjadi Xr dan Xr ditukar menjadi Xl. Proses

operasi tersebut terjadi sebanyak 16 kali putaran, putaran yang ke-16 terjadi proses penukaran

Xl dan Xr. Proses P17 dan P18 adalah operasi untuk Xr = Xr

XOR P17 dan Xl = Xl XOR

P18. Proses terakhir adalah menyatukan Xl dan Xr

sehingga menjadi 64-bit kembali. Proses

penyatuan Xl

dan Xr

menghasilkan ciphertext.

3.3 Diagram Alir Dekripsi Data

Proses dekripsi sama dengan proses enkripsi kecuali pada PBox yang digunakan

dengan urutan terbalik.

Ciphertext yang akan didekripsi diasumsikan sebagai masukan.

Tampilan hasil proses pembangkit subkunci yaitu PBox dan SBox. Kemudian ciphertext

64-bit dibagi menjadi 2. 32-64-bit pertama disebut Xl, 32-64-bit yang kedua disebut Xr.

Proses selanjutnya adalah operasi Xl = Xl XOR PBox dan Xr = F(Xl) XOR Xr.

.

Dari

operasi di atas, Xl ditukar

menjadi Xr dan Xr ditukar menjadi Xl. Proses operasi dekripsi

terjadi sebanyak 16 kali putaran dimulai dari P18 sampai P3, putaran yang ke 3 dilakukan

proses penukaran Xl dan Xr. Proses P2 dan P1 terjadi operasi untuk Xr = Xr XOR P2 dan

Xl = Xl XOR P1. Proses terakhir adalah menyatukan kembali Xl dan Xr

sehingga menjadi

64-bit. Xl

dan Xr digabung sehingga menghasilkan pesan asli atau dapat disebut dengan

(50)

Gambar 3.7 menunjukkan diagram alir proses dekripsi.

Mulai

Tampilkan

Ciphertext

Xl dan Xr <64 bit

Hitung Jaringan Feistel F(Xl)

Xr = Xr XOR P2

Xl = Xl XOR P1

Hasil Penggabungan Xl dan Xr adalah

Plaintext

A

F (Xl) = 32 bit

Xr = F (Xl) XOR Xr

Ya

Tidak

Ya

Tidak

Padding

Padding

Hasil proses pembangkit subkunci yaitu P Box dan Sbox

Tukar Xl dan Xr

Xl = Xl XOR Pi

Pi < 16

Tidak Ya

Penggabungan Xl dan Xr

ciphertext dibagi menjadi 2 yaitu Xl dan Xr

Sel

esai

(51)

1.4

Tampilan Program

3.4.1 Tampilan Blok Menu

Setelah merancang diagram alir pembangkit subkunci, enkripsi data, dan dekripsi

data, maka dapat dirancang tampilan blok enkripsi data dan dekripsi data. Gambar 3.8

menjelaskan pengirim

mengirimkan

Plaintext, kemudian mengenkripsi Plaintext

menggunakan algoritma enkripsi dengan kunci dan mengirimkan hasilnya berupa ciphertext.

Penerima menggunakan proses algoritma dekripsi dengan kunci yang sama, untuk

memperoleh kembali plaintext. Gambar 3.8 menunjukkan blok alur enkripsi dan dekripsi

algoritma Blowfish

Gambar 3.8 Blok alur Enkripsi dan Dekripsi Algoritma Blowfish

3.4.2 Tampilan Simulasi Enkripsi dan Dekripsi

Tampilan simulasi enkripsi dan dekripsi terdapat empat commondbutton yaitu

commondbutton

Enkripsi

,

commondbutton

Dekripsi

,

commondbutton

Browse

dan

(52)

plaintext ke ciphertext.

Commondbutton

Dekripsi

berfungsi mengubah ciphertext ke

plaintext.

Commondbutton

Browse

berfungsi untuk mengambil data dengan ekstensi .*txt

yang digunakan sebagai masukan pada textplaintext.

Commondbutton

close

berfungsi

mengakhiri tampilan simulasi enkripsi dan dekripsi Blowfish. Gambar 3.9 adalah tampilan

simulasi enkripsi dan dekripsi algoritma Blowfish

Gambar 3.9 Tampilan Simulasi Enkripsi Dekripsi Algoritma Blowfish

Tampilan langkah 2 adalah XOR semua PBox dengan Key yang terdapat pada Form

progrees enkripsi. From Progrees terdiri Commondbutton

Copy PBox

,

Copy SBox

berfungsi

untuk mencopy seluruh data PBox dan SBox ke dalam bentuk notepad atau microsoft office

dan

Copy Log

berfungsi untuk mencopy hasil ciphertext dan plaintext.

Commondbutton

(53)

secara berurutan yang ada pada textLog.

Label

monitor F(Xl) berfungsi untuk memonitor

proses jaringan Feistel F(Xl). Label monitor terdiri dari label input F(Xl) dan label

output

F(Xl). Label F(Xl) counter berfungsi menampilkan counter tiap putaran. Gambar 3.10 adalah

Tampilan langkah 2 XOR semua PBox dengan kunci

Gambar 3.10 Tampilan Langkah 2 XOR semua PBox dengan Kunci (Key)

(54)

Gambar 3.11 menunjukkan tampilan langkah 3 yaitu modifikasi PBox dan SBox

dengan string 0. Proses langkah 3 dapat memproses jika menekan commonbotton

Lanjutkan

,

maka proses langkah 3 akan memproses data. Gambar 3.12 adalah proses langkah 4 proses

enkripsi dan Gambar 3.13 tampilan proses dekripsi.

Gambar 3.12 Tampilan Proses Enkripsi

(55)

Tampilan langkah-langkah proses dekripsi sama dengan tampilan langkah proses

enkripsi yang membedakan untuk langkah 4 yaitu proses dekripsi. Langkah 1 adalah

inisialisasi PBox dan SBox, langkah 2 XOR semua PBox dengan key, langkah 3 modifikasi

(56)

BAB IV

PEMBAHASAN

Bab IV akan menjelaskan mengenai cara kerja program simulasi penyandian

algoritma Blowfish menggunakan Visual Basic 6.0 disertai dengan beberapa pengujian dan

pengambilan beberapa data pada simulasi. Proses pengujian ini didapatkan dari data-data

maupun bukti-bukti hasil akhir yang dapat dilihat apakah perangkat lunak yang telah dibuat

dengan baik atau tidak. Berdasarkan data-data dan bukti-bukti tersebut dapat dilakukan

analisa terhadap proses kerja algoritma Blowfish.

4.1 Proses Penyandian Blowfish

Program simulasi penyandian dimulai dengan menampilkan menu utama penyandi

dengan menekan tombol

(start) di tool bar , sehingga akan muncul tampilan simulasi

enkripsi dan dekripsi Blowfish seperti pada Gambar 4.1. Proses yang terdapat pada simulasi

enkripsi dan dekripsi Blowfish merupakan proses simulasi pengubahan plaintext ke

ciphertext. Enkripsi dan dekripsi menggunakan algoritma Blowfish dimulai dengan pengisian

data asli di textbox

Plaintext

dan pengisian data di textbox

Key

atau pengisian plaintext oleh

pengguna,

selanjutnya akan ditampilkan secara langsung setelah melakukan pencarian

melalui

commondbutton

Browse

(berekstensi *.txt), selanjutnya memilih commondbutton

Enkripsi

.

Gambar

4.1 adalah tampilan simulasi proses enkripsi dan dekripsi algoritma

Blowfish.

(57)

Gambar 4.1 Tampilan Simulasi Enkripsi dan Dekripsi Algoritma Blowfish

Contoh hasil tampilan program Blowfish pada Gambar 4.2 adalah pengisian textbox

(58)

Gambar 4.2 Tampilan Mengisi data di textbox Plaintext dan texbox Key

Proses selanjutnya adalah pengguna memilih commondbutton

Enkripsi,

kemudian

Form progress akan muncul dengan menampilkan textbox

Log,

textbox

PBox,

textbox

SBox,

commondbutton

CopyPbox,

commonbutton

CopySbox,

commondbutton

CopyPLog

,

commondbutton

Lanjutka

dan commondbutton

close

. Pengguna memilih commondbuton

Lanjutkan

dan pada textLog akan muncul

langkah yang pertama, yaitu inisialisasi PBox,

SBox dan langkah kedua semua PBox XOR dengan key dengan catatan langkah kedua belum

(59)

Gambar 4.3 Tampilan Inisialisasi PBox dan SBox

PBox dan SBox yang diinisilisasi terdapat pada text

PBox

yang berisi 18 PBox dan

textSBox

yang berisi 4 SBox, masing-masing SBox berjumlah 255 masukan, textLog berisi

Plaintext MATAHARI dalam kode ASCII dan 4D 41 54 41 48 41 52 49 dalam

heksadesimal, selanjutnya memilih commondbutton

Lanjutkan

kemudian langkah 2 akan

diproses dan muncul pada textLog langkah 3 yaitu modifikasi PBox SBox menggunakan

enkripsi dengan input string 0 (menggunakan proses enkripsi Blowfish dengan masukan

Xl=00000000 dan Xr=00000000) dengan catatan untuk proses langkah 3 belum

(60)

Gambar 4.4 Tampilan Hasil XOR key dengan PBox

Selanjutnya pengguna memilih commondbutton

Lanjutkan

, langkah 3 akan diproses

yaitu modifikasi PBox dan SBox dengan menggunakan enkripsi dengan input string 0

(menggunakan proses enkripsi Blowfish dengan masukan Xl=00000000 dan Xr=00000000).

PBox dan SBox sudah berubah semua dan digunakan dalam proses enkripsi maupun dekripsi

algoritma Blowfish dan muncul textLog langkah 4 yaitu proses enkripsi, dengan catatan

proses langkah 4 belum dilaksanakan. Gambar 4.5 adalah tampilan hasil modifikasi PBox dan

SBox dengan input

string 0. Kemudian pengguna memilih commondbutton

Lanjutkan

langkah 4 akan diproses dan menghasilkan ciphertext pada textLog yaitu kode ASCII

‰È§æwÏL dan dalam kode heksadesimal 89 C8 07 A7 E6 77 CF 4C. Gambar 4.6 adalah

tampilan hasil enkripsi pada Form progrees dan Gambar 4.7 adalah tampilan hasil enkripsi

(61)

Gambar 4.5 Tampilan hasil Modifikasi Enkripsi dengan Input String 0

(62)

Gambar 4.7 Tampilan hasil Enkripsi pada Form Utama

Proses enkripsi selesai kemudian dengan menekan commondbutton

close

akan

kembali ke Form utama (frmmain) dan commondbutton

Dekripsi

akan aktif seperti pada

Gambar 4.7. Tampilan proses dekripsi dengan tampilan proses enkripsi adalah sama, yang

membedakan proses algoritma proses enkripsi dan dekripsi. Selanjutnya memilih

commondbutton

Dekripsi

dan akan muncul From Progress dekripsi. Form Progress dekripsi

pada textLog menampilkan kode ASCII ‰È§æwÏL dan kode heksadesimal 89 C8 07 A7 E6

77 CF 4C. Pengguna memilih commondbuton

Lanjutkan

pada textLog akan muncul

Langkah 1 yaitu inisialisasi PBox, SBox dan langkah kedua XOR semua PBox dengan key

dengan catatan proses langkah kedua belum dilaksanakan. Gambar 4.8 adalah tampilan

(63)

Gambar 4.8 Tampilan tampilan inisialisasi PBox dan SBox

Selanjutnya pengguna memilih commondbutton

Lanjutkan

kemudian langkah 2 akan

diproses dan muncul pada textLog langkah 3 yaitu modifikasi PBox dan SBox menggunakan

dekripsi dengan input string 0 dengan catatan untuk proses langkah 3 belum dilaksanakan.

(64)

Gambar 4.9 Tampilan Hasil XOR key dengan PBox

Pengguna memilih commondbutton

Lanjutkan

, langkah 3 akan diproses yaitu

modifikasi PBox dan SBox dengan menggunakan enkripsi dengan input string 0 dan muncul

textLog langkah 4 yaitu proses dekripsi dengan catatan proses langkah 4 belum dilaksanakan.

Gambar 4.10 adalah tampilan hasil modifikasi PBox dan SBox dengan menggunakan enkripsi

dengan

input string 0. Kemudian pengguna memilih commondbutton

Lanjutkan

dan

langkah 4 akan diproses, selanjutnya pengguna memilih commondbutton

Lanjutkan

sehingga muncul plaintext pada textLog kode ASCII MATAHARI dan dalam kode

heksadesimal 4D 41 54 41 48 41 52 49. Gambar 4.11 adalah tampilan hasil dekripsi yang

(65)

Gambar 4.10 Tampilan hasil Modifikasi Enkripsi dengan Input String 0

(66)

Gambar 4.12 Tampilan Hasil Dekripsi di Form Utama

4.1.1 Tampilan Algoritma Blowfish dengan

Text File

(*.TXT)

Tampilan algoritma Blowfish dengan text file (*.TXT) diawali dengan dengan

menekan

commondbutton

Browse

pada from

utama, selanjutnya akan muncul open dialog

dengan pilihan contoh.txt. Gambar 4.13 adalah tampilan open dialog

(67)

Selanjutnya dengan menekan open akan kembali ke from utama dan di textbox

Plaintext

akan muncul tulisan hello world... dalam heksadesimal 68 65 6C 6C 6F 20 77 6F

72 6C 64 2E 2E 2E dan mengisi textbox

Key

dengan key teknik elektro. Gambar 4.14 adalah

tampilan hasil proses enkripsi dan dekripsi dengan text file (*.TXT)

Gambar 4.14 Tampilan Hasil Enkripsi dan Dekripsi dengan text file (*.TXT)

Hasil proses dekripsi untuk plaintext hello word terdapat 00 00 karena data plaintext

kurang dari kelipatan 32-bit. Cara mengatasi hal ini dengan padding agar panjangnya sama

(68)

4.2 Analisa dan Pembahasan Algoritma

Proses pengujian dapat dibandingkan apakah hasil algoritma Blowfish sesuai antara

pembahasan dengan menggunakan program. Sebagai contoh plaintext: MATAHARI dan key

adalah INOVATIF

4.2.1

Proses Pembangkit Subkunci

Key terlebih dahulu disandikan ke heksadesimal menjadi M=4D A=41 T=54, A=41

H=48 A=41 R=52 I=49. Langkah pertama dalam melakukan proses penentuan subkunci

adalah operasi XOR dilakukan pada PBox1 dengan 32-Bit dari kunci pertama,

sedangkan operasi XOR dilakukan pada PBox2 dengan 32-Bit dari kunci kedua dan

seterusnya untuk setiap bit dari key (sampai P18). Hasil perhitungan proses operasi XOR

PBox dengan kunci ada pada lampiran 10 (L-10). Tabel 4.1 adalah Hasil Proses XOR

dengan key

Tabel 4.1 Hasil XOR PBox dengan key.

Hasil XOR PBox yang telah di XOR kan dengan key pada Tabel 4.1 sama dengan

tampilan pada textbox

PBox

program Gambar 4.9. Setelah operasi XOR dilakukan pada

PBox (Pi) dengan 32-bit dari kunci, kemudian PBox dan SBox dimodifikasi dengan

menggunakan enkripsi dengan input

0

.

Proses modifikasi atau mengganti PBox yang

telah diinisialisasi dari PBox (P1) sampai PBox (P18).

Proses

mengganti PBox (P3) dan

PBox (P4) pada i = 1 (FXl yang ke-17) di lampiran 12 (L-12) nilainya 00000000 karena

(69)

nilai Xl sama dengan nilai PBox (P1) setelah dilakukan operasi XOR. Proses

perhitungan manual modifikasi PBox ada pada lampiran 10 (L-10). Tabel 4.2 adalah

hasil modifikasi PBox.

Tabel 4.2 PBox dimodifikasi dengan menggunakan enkripsi input 0

PBox(1) = 580BC7DA

PBox(2) = EB742C6C

PBox(3) = 26CC1286

PBox(4) = E5ED9F9C

PBox(5) = A037815B

PBox(6) = 7E6301F6

PBox(7) = 8541918D

PBox(8) = 880862CC

PBox(9) = F5B8705B

PBox(10)= C38E57F6

PBox(11)= A2E318EA

PBox(12)= 1E6E775B

PBox(13)= 71D12FFA

PBox(14)= 531DDC15

PBox(15)=8BD48DCA

PBox(16)= 8F406CD2

PBox17)= 767C333A

PBox(18)= 63486277

Modifikasi SBox yang terdiri dari SBox1 =128, SBox2 = 128, SBox3 = 128 dan

SBox4 = 128, total keseluruhan proses modifikasi SBox adalah 512 iterasi. Proses

perhitungan satu iterasi SBox ada pada lampiran 28 (L-28) dan keseluruhan perubahan

SBox ada pada lampiran 34 (L-34).

4.2.2

Proses Enkripsi

Proses enkripsi diawali dengan mengkonversi Plaintext MATAHARI terlebih

dahulu dari kode ASCII ke heksadesimal M=4D A=41 T=54 A=41 H=48 A=41 R=52

I=49. Proses enkripsi dengan operasi Xl= Xl XOR PBox( i ) dan Xl

dikenakan proses

jaringan Feistel yaitu F(Xl)= (((s1,a+s2 mod 2^32) XOR s3,c)+s4,d) mod 2^ 32 . dan Xr

=F(Xl) XOR Xr dan diputar sebanyak 16 kali putaran. Proses 17 dan 18 dilakukan Xr =

Xr XOR P17 dan Xl = Xl XOR P18. Proses perhitungan manual ada pada Lampiran 30

(70)

4.2.3

Proses Dekripsi

Proses dekripsi diawali dengan hasil proses enkripsi berupa ciphertext diasumsikan

sebagai masukan yaitu 89 C8 07 A7 E6 77 CF 4C . Proses dekripsi dengan operasi Xl=

Xl XOR PBox( i ) dan Xl dikenakan proses jaringan Feistel yaitu F(Xl)= (((s1,a+s2 mod

2^32) XOR s3,c)+s4,d) mod 2^ 32 . dan Xr =F(Xl) XOR Xr dan diputar sebanyak 16

kali putaran. Pada putaran 2 dan 1 dilakukan Xr = Xr XOR P2 dan Xl = Xl XOR P1.

Proses perhitungan manual ada pada Lampiran 32 (L-32) dan hasil plaintext proses

dekripsi adalah MATAHARI dengan hexadesimal 89 C8 07 A7 E6 77 CF 4C

4.2.1 Analisa Hasil perangkat Lunak

Setelah dilakukan uji coba, secara umum program enkripsi dekripsi 64-bit atau lebih

dari 64-bit seperti pada lampiran 42 (L-42) dengan metode algoritma Blowfish dapat

berjalan dengan baik. Program enkripsi dan dekripsi ini dapat melakukan enkripsi dan

dekripsi dengan masukan dari pengguna berupa data atau mengambil data dengan text file

(.*TXT). Kelebihan dan kekurangan program ini sebagai berikut:

4.2.1.1 Kelebihan

1. Dengan hasil yang berbeda-beda untuk setiap hasil enkripsi, akan semakin

menyulitkan pemecahan ciphertext tanpa mengetahui key enkripsi dan dekripsi.

4.2.1.2 Kekurangan

1. Tampilan masih sederhana dan kurang menarik

2. Tidak disertai fasilitas untuk mengatasi permasalahan pengguna yang kehilangan

(71)

BAB V

KESIMPULAN DAN SARAN

5.1

Kesimpulan

Dari hasil uji coba yang dilakukan, secara umum program enkripsi dan dekripsi

dengan algoritma Blowfish dapat diambil beberapa kesimpulan:

1.

Secara umum program enkripsi dan dekripsi ini dapat berjalan dengan baik.

2.

Program dapat melakukan enkripsi data 64-bit atau lebih dari 64-bit.

3.

Program dapat melakukan proses enkripsi dan dekripsi dengan text file (*.txt)

5.2 Saran

Dari pengalaman selama pengerjaan tugas akhir ini, penulis ingin menyarankan hal

sebagai berikut :

1.

Ditambahkan mekanisme untuk mengatasi permasalahan penggunaan jika

mengalami kehilangan kunci.

2.

Program dapat melakukan proses enkripsi dan dekripsi berupa data gambar

(*.JPG, *.BMP)

(72)

DAFTAR PUSTAKA

[1]

Munir, Rinaldi, 2004, Kriptografi, Penerbit Informatika Bandung, Ban

Gambar

Gambar 2.3 Model Sistem Kriptografi Simetrik atau Konvensional [2]
Gambar 2.5 Enkripsi Blok Cipher
Gambar 2.7 Satu putaran dalam Jaringan Feistel [4]
Gambar 2.8 Dialog box untuk pilihan tipe new project. [6]
+7

Referensi

Dokumen terkait

Hasil uji statistik didapatkan p-value = 0,0001 &lt;  = 0,05 maka Ho ditolak dengan demikian dapat disimpulkan bahwa ada pengaruh yang signifikan antara

Pengujian hipotesis dilakukan untuk mengetahui perbedaan tingkat keterikatan karyawan pada perawat yang diberikan pelatihan kebermaknaan kerja (kelompok eksperimen)

PUSAT PENGADAAN SECARA ELEKTRONIK UNIT LAYANAN PENGADAAN DAERAH KELOMPOK KERJA PROVINSI KEPULAUAN RIAU2. KPKNL

 Marketing, Contracting, Customer Relationship Skills, Kemampuan menjual tidak hanya dimiliki oleh marketer saja, akan tetapi manajer proyek harus memiliki kemampuan untuk

Kejahatan dunia maya (cyber crime) sebagai kejahatan yang relatif baru. memiliki ciri-ciri

Properties Window atau jendela properties adalah jendela yang memuat semua informasi mengenai objek, yang terdapat dalam aplikasi Microsoft Visual Basic 6.0.. Properties adalah

Menyatakan dengan sesungguhnya bahwa penulisan hukum (skripsi) berjudul : ANALISIS KETERANGAN SAKSI VERBALISAN SEBAGAI AKIBAT PENCABUTAN BERITA ACARA PEMERIKSAAN

Skripsi ini juga mencakup beberapa fitur baru untuk Services Binusmaya yang terletak pada bagian Home dari Binusmaya versi 3 yaitu fitur Most Visited Services , yaitu