Top Banner
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 2009
107

SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

Dec 02, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

2009

Page 2: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

2009

Page 3: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

iii

Page 4: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

iv

Page 5: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

v

Page 6: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

Tentu esok ada yang tinggal, karena

Hidup bukanlah milik masa lalu.

Page 7: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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.

Kata kunci : enkripsi, dekripsi, subkey, plaintext, ciphertext, jaringan feistel

Page 8: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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.

Keyword: encryption, decryption, subkey, plaintext, chipertext, feistel network

Page 9: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

ix

Page 10: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

Daga, Heru, Ery dan Stenly.

Page 11: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

xi

Page 12: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

1.5.Metodologi Penelitian .................................................................................................. 2

Halaman

Page 13: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

2.4.2.5.Project Explorer........................................................................... 23

Page 14: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

LAMPIRAN ................................................................................................................................ (L)

Page 15: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

Gambar 3.4.Diagram Alir Proses Jaringan Feistel ....................................................................... 29

Halaman

Page 16: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

Gambar 4.12.Tampilan Hasil Dekripsi di From Utama .............................................................. 49

Page 17: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

xvii

DAFTAR TABEL

Tabel 2.1.Contoh Subsitusi Ceaser Cipher ................................................................................... 8

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

Tabel 2.3.PBox dimodifikasi dengan menggunakan enkripsi input 0 ......................................... 51

Halaman

Page 18: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

BAB I

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

1

Page 19: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

2

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

Blowfish

Page 20: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

3

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

selanjutnya.

Page 21: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

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

proses transformasi. Oleh karena itu jenis kunci sangat berhubungan

Page 22: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

5

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]

2.1.2 Kriptanalis

Page 23: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

6

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:

EK (P) = C (2.4)

DK (C) = P (2.5)

Kedua fungsi di atas memenuhi syarat sebagai berikut:

DK (EK (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.

Semakin banyak usaha yang diperlukan, yang berarti juga semakin lama

Page 24: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

7

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

(i+k). Tabel 2.1 menggambarkan contoh Caesar Cipher dengan kunci = 5

Page 25: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

8

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

F G H I J K L M N O P Q R S T U V W X Y A B C D E

Page 26: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

9

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 C = E(K,P) Kunci

Page 27: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

10

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

saat pengiriman kunci pada media yang tidak aman seperti internet. Jika kunci ini

Page 28: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

11

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

private key.

Page 29: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

12

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

teratur agar panjangnya sama dengan ukuran blok yaitu 64-bit. Gambar 2.5

Page 30: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

13

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

pada aliran bit data.

Page 31: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

14

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

byte terakhir dihapus dari blok dekripsi.

Page 32: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

15

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

P1 = P1 XOR K1, P2 = P2 XOR K2, P3 = P3 XOR K3, P4 = P4 XOR K4

, P5 = P5 XOR K5, P6 = P6 XOR K6, P7 = P7XOR K7,….., P15 = P15 XOR K1,

P16 = P16 XOR K2, P18 = P17 XOR K2, P18 =P18 XOR K3

Page 33: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

16

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

5. Pertukaran dilakukan sebanyak 16 kali putaran

Page 34: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

17

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 kotak-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 S1, S2, S3, S4 dengan a, b, c, d S1,198 S2,107

S3,154 S4,32 Kemudian untuk mencari keluaran pada kotak-S dapat dicari dengan penelusuran tabel array, seperti pada lampiran. S1,198 = BE0E1777 S2,107 = 9EbABF2C S3,154 = 0A121386 S4,32 = 9A86EE22

Page 35: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

18

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.

li = Ri-1 (2.11)

ri = Li-1 XOR F( Ri-1, Ki) (2.12)

F(Xl) = (((S1,a + S2,b mod 232 ) XOR S3,c ) + S4,c) mod 232 (2.13)

Nilai a, b, c, dan d diperoleh dari Xl dimana Xl yang berukuran 32-bit dipecah-

pecah menjadi 8-bit. Li adalah jumlah bit kiri pada putaran ke i. Ri adalah jumlah bit

kanan pada putaran ke i. Ki 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

4D415441 pada contoh 2 di bawah adalah C4F8F51D

Page 36: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

19

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) = (((S1,a + S2,b mod 232 ) XOR S3,c ) + S4,c )mod 232

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

S1,77 = 21C66842 S2,65 = 4E548B38 S3,84 = 5D886E17 S4,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 Proses

fungsi F

Page 37: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

20

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,

form, dan fasilitas lain.

Page 38: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

21

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.

Gambar 2.10 Tampilan title bar dan menu bar. [6]

Page 39: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

22

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

project explorer dapat dilihat daftar form, module, dan class module yang disusun secara

Page 40: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

23

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

pada Gambar 2.14.

Page 41: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

24

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.

Gambar 2.16 Tampilan form. [6]

Page 42: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

25

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.

Gambar 2.17 Tampilan form code. [6]

Page 43: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

26

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

26

Page 44: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

27

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

Tidak

Ya

Page 45: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

28

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

selasai

Page 46: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

29

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

Tidak

Page 47: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

30

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

Belum

Page 48: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

31

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

Selesai

Padding

Page 49: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

32

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-bit pertama disebut Xl, 32-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

plaintext. Gambar 3.7 menunjukkan diagram alir proses dekripsi.

Page 50: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

33

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

Selesai

A

Page 51: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

34

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

commondbutton close. commondbutton Enkripsi berfungsi melakukan proses enkripsi dari

Page 52: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

35

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

Lanjutkan berfungsi untuk menampilkan proses langkah-langkah enkripsi maupun dekripsi

Page 53: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

36

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)

Gambar 3.11 Tampilan Langkah 3 Modifikasi PBox dan SBox dengan string 0

Page 54: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

37

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

Gambar 3.13 Tampilan Proses Dekripsi

Page 55: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

38

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

PBox dan SBox menggunakan enkripsi dengan input string 0, langkah 4 proses dekripsi.

Page 56: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

39

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.

39

Page 57: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

40

Gambar 4.1 Tampilan Simulasi Enkripsi dan Dekripsi Algoritma Blowfish

Contoh hasil tampilan program Blowfish pada Gambar 4.2 adalah pengisian textbox

Plaintext dengan masukan MATAHARI, textbox Key dengan masukan INOVATIF.

Konversi dari kode ASCII ke heksadesimal untuk textbox Plaintext adalah 4D 41 54 41 48

41 52 49 kemudian konversi dari kode ASCII ke heksadesimal untuk textbox Key adalah 49

4E 4F 56 41 54 49 46

Page 58: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

41

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 textboxLog, textboxPBox, textboxSBox,

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

dilaksanakan. Gambar 4.3 adalah tampilan inisialisasi PBox dan SBox.

Page 59: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

42

Gambar 4.3 Tampilan Inisialisasi PBox dan SBox

PBox dan SBox yang diinisilisasi terdapat pada textPBox 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

dilaksanakan. Gambar 4.4 adalah tampilan proses hasil XOR key dengan PBox.

Page 60: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

43

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

pada Form utama.

Page 61: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

44

Gambar 4.5 Tampilan hasil Modifikasi Enkripsi dengan Input String 0

Gambar 4.6 Tampilan hasil Enkripsi pada Form Progrees

Page 62: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

45

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

inisialisasi PBox dan SBox.

Page 63: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

46

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.

Gambar 4.9 adalah tampilan proses hasil XOR key dengan PBox.

Page 64: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

47

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

terdapat pada Form Progress dan Gambar pada 4.12 terdapat pada Form utama.

Page 65: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

48

Gambar 4.10 Tampilan hasil Modifikasi Enkripsi dengan Input String 0

Gambar 4.11 Tampilan Hasil Dekripsi di From Progress

Page 66: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

49

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

Gambar 4.13 Tampilan Open Dialog

Page 67: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

50

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

dengan ukuran blok yang ditetapkan yaitu dengan menambahkan 00 00 diakhir blok.

Page 68: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

51

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

PBox(1) = 6D7125DE PBox(2) = C4F74195 PBox(3) = 5A57C578 PBox(4) = 42243A02

PBox(5) = ED477774 PBox(6) = 68CB7896 PBox(7) = 4160B5CE PBox(8)= AD1A25CF

PBox(9) = 0C666EB0 PBox(10)= 79845A31 PBox(11)= F71A2999 PBox(12)=75BD452A

PBox(13)= 89E266E1 PBox(14)= 8828199B PBox(15)= 76CA9AE3 PBox(16)= F4134051

PBox(17= DB589A8F PBox(18)= C82DB25D

Page 69: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

52

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

(L-30) dan hasil ciphertext proses enkripsi adalah 89 C8 07 A7 E6 77 CF 4C

Page 70: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

53

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

atau lupa akan kunci enkripsi dan dekripsi.

Page 71: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

54

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)

54

Page 72: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

55

DAFTAR PUSTAKA

[1] Munir, Rinaldi, 2004, Kriptografi, Penerbit Informatika Bandung, Bandung.

[2] Galbreath, Nick, 2002, Cryptography for Internet and Database Applications.

Indianapolis, Indiana. Wiley Publishing, inc.

[3] Klein, Timothy., 2005. Blowfish a Cipher for The Right Reasons,

www.wikipedia.org/wiki/blowfisheditor/ett.pdf. 8 September 2008.

[4] http://www.wikipedia.org/wiki/NetworkFeistel . 8 September 2008.

[5] Schneier, B. (1996). Applied Crytography: Protocols, Algorithms, and Source code in

C. John Wiley and Sons, Inc., New York, 2nd edition.

http:// www.schneier.com/blowfish-dowload.html. 10 september 2008.

[6] Raharjo, Budi, 2006, Visual Basic, Penerbit Informatika Bandung, Bandung.

Page 73: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

56

LAMPIRAN

Page 74: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

57

INISIALISASI KOTAK S

SBox(0,0) = D1310BA6, SBox(0,1) = 98DFB5AC, SBox(0,2) = 2FFD72DB, SBox(0,3) = D01ADFB7 SBox(0,4) = B8E1AFED, SBox(0,5) = 6A267E96, SBox(0,6) = BA7C9045, SBox(0,7) = F12C7F99 SBox(0,8) = 24A19947, SBox(0,9) = B3916CF7, SBox(0,10) = 0801F2E2, SBox(0,11) = 858EFC16 SBox(0,12) = 636920D8, SBox(0,13) = 71574E69, SBox(0,14) = A458FEA3, SBox(0,15) = F4933D7E SBox(0,16) = 0D95748F, SBox(0,17) = 728EB658, SBox(0,18) = 718BCD58, SBox(0,19) = 82154AEE SBox(0,20) = 7B54A41D, SBox(0,21) = C25A59B5, SBox(0,22) = 9C30D539, SBox(0,23) = 2AF26013 SBox(0,24) = C5D1B023, SBox(0,25) = 286085F0, SBox(0,26) = CA417918, SBox(0,27) = B8DB38EF SBox(0,28) = 8E79DCB0, SBox(0,29) = 603A180E, SBox(0,30) = 6C9E0E8B, SBox(0,31) = B01E8A3E SBox(0,32) = D71577C1, SBox(0,33) = BD314B27, SBox(0,34) = 78AF2FDA, SBox(0,35) = 55605C60 SBox(0,36) = E65525F3, SBox(0,37) = AA55AB94, SBox(0,38) = 57489862, SBox(0,39) = 63E81440 SBox(0,40) = 55CA396A, SBox(0,41) = 2AAB10B6, SBox(0,42) = B4CC5C34, SBox(0,43) = 1141E8CE SBox(0,44) = A15486AF, SBox(0,45) = 7C72E993, SBox(0,46) = B3EE1411, SBox(0,47) = 636FBC2A SBox(0,48) = 2BA9C55D, SBox(0,49) = 741831F6, SBox(0,50) = CE5C3E16, SBox(0,51) = 9B87931E SBox(0,52) = AFD6BA33, SBox(0,53) = 6C24CF5C, SBox(0,54) = 7A325381, SBox(0,55) = 28958677 SBox(0,56) = 3B8F4898, SBox(0,57) = 6B4BB9AF, SBox(0,58) = C4BFE81B, SBox(0,59) = 66282193 SBox(0,60) = 61D809CC, SBox(0,61) = FB21A991, SBox(0,62) = 487CAC60, SBox(0,63) = 5DEC8032 SBox(0,64) = EF845D5D, SBox(0,65) = E98575B1, SBox(0,66) = DC262302, SBox(0,67) = EB651B88 SBox(0,68) = 23893E81, SBox(0,69) = D396ACC5, SBox(0,70) = 0F6D6FF3, SBox(0,71) = 83F44239 SBox(0,72) = 2E0B4482, SBox(0,73) = A4842004, SBox(0,74) = 69C8F04A, SBox(0,75) = 9E1F9B5E SBox(0,76) = 21C66842, SBox(0,77) = F6E96C9A, SBox(0,78) = 670C9C61, SBox(0,79) = ABD388F0 SBox(0,80) = 6A51A0D2, SBox(0,81) = D8542F68, SBox(0,82) = 960FA728, SBox(0,83) = AB5133A3 SBox(0,84) = 6EEF0B6C, SBox(0,85) = 137A3BE4, SBox(0,86) = BA3BF050, SBox(0,87) = 7EFB2A98 SBox(0,88) = A1F1651D, SBox(0,89) = 39AF0176, SBox(0,90) = 66CA593E, SBox(0,91) = 82430E88 SBox(0,92) = 8CEE8619, SBox(0,93) = 456F9FB4, SBox(0,94) = 7D84A5C3, SBox(0,95) = 3B8B5EBE SBox(0,96) = E06F75D8, SBox(0,97) = 85C12073, SBox(0,98) = 401A449F, SBox(0,99) = 56C16AA6 SBox(0,100)= 4ED3AA62, SBox(0,101)= 363F7706, SBox(0,102)= 1BFEDF72, SBox(0,103)= 429B023D SBox(0,104)= 37D0D724, SBox(0,105)= D00A1248, SBox(0,106)= DB0FEAD3, SBox(0,107)= 49F1C09B SBox(0,108)= 075372C9, SBox(0,109)= 80991B7B, SBox(0,110)= 25D479D8, SBox(0,111)= F6E8DEF7 SBox(0,112)= E3FE501A, SBox(0,113)= B6794C3B, SBox(0,114)= 976CE0BD, SBox(0,115)= 04C006BA SBox(0,116)= C1A94FB6, SBox(0,117)= 409F60C4, SBox(0,118)= 5E5C9EC2, SBox(0,119)= 196A2463 SBox(0,120)= 68FB6FAF, SBox(0,121)= 3E6C53B5, SBox(0,122)= 1339B2EB, SBox(0,123)= 3B52EC6F SBox(0,124)= 6DFC511F, SBox(0,125)= 9B30952C, SBox(0,126)= CC814544, SBox(0,127)= AF5EBD09 SBox(0,128)= BEE3D004, SBox(0,129)= DE334AFD, SBox(0,130)= 660F2807, SBox(0,131)= 192E4BB3 SBox(0,132)= C0CBA857, SBox(0,133)= 45C8740F, SBox(0,134)= D20B5F39, SBox(0,135)= B9D3FBDB SBox(0,136)= 5579C0BD, SBox(0,137)= 1A60320A, SBox(0,138)= D6A100C6, SBox(0,139)= 402C7279 SBox(0,140)= 679F25FE, SBox(0,141)= FB1FA3CC, SBox(0,142)= 8EA5E9F8, SBox(0,143)= DB3222F8 SBox(0,144)= 3C7516DF, SBox(0,145)= FD616B15, SBox(0,146)= 2F501EC8, SBox(0,147)= AD0552AB SBox(0,148)= 323DB5FA, SBox(0,149)= FD238760, SBox(0,150)= 53317B48, SBox(0,151)= 3E00DF82 SBox(0,152)= 9E5C57BB, SBox(0,153)= CA6F8CA0, SBox(0,154)= 1A87562E, SBox(0,155)= DF1769DB SBox(0,156)= D542A8F6, SBox(0,157)= 287EFFC3, SBox(0,158)= AC6732C6, SBox(0,159)= 8C4F5573 SBox(0,160)= 695B27B0, SBox(0,161)= BBCA58C8, SBox(0,162)= E1FFA35D, SBox(0,163)= B8F011A0 SBox(0,164)= 10FA3D98, SBox(0,165)= FD2183B8, SBox(0,166)= 4AFCB56C, SBox(0,167)= 2DD1D35B SBox(0,168)= 9A53E479, SBox(0,169)= B6F84565, SBox(0,170)= D28E49BC, SBox(0,171)= 4BFB9790 SBox(0,172)= E1DDF2DA, SBox(0,173)= A4CB7E33, SBox(0,174)= 62FB1341, SBox(0,175)= CEE4C6E8 SBox(0,176)= EF20CADA, SBox(0,177)= 36774C01, SBox(0,178)= D07E9EFE, SBox(0,179)= 2BF11FB4 SBox(0,180)= 95DBDA4D, SBox(0,181)= AE909198, SBox(0,182)= EAAD8E71, SBox(0,183)= 6B93D5A0 SBox(0,184)= D08ED1D0, SBox(0,185)= AFC725E0, SBox(0,186)= 8E3C5B2F, SBox(0,187)= 8E7594B7 SBox(0,188)= 8FF6E2FB, SBox(0,189)= F2122B64, SBox(0,190)= 8888B812, SBox(0,191)= 900DF01C SBox(0,192)= 4FAD5EA0, SBox(0,193)= 688FC31C, SBox(0,194)= D1CFF191, SBox(0,195)= B3A8C1AD SBox(0,196)= 2F2F2218, SBox(0,197)= BE0E1777, SBox(0,198)= EA752DFE, SBox(0,199)= 8B021FA1 SBox(0,200)= E5A0CC0F, SBox(0,201)= B56F74E8, SBox(0,202)= 18ACF3D6, SBox(0,203)= CE89E299 SBox(0,204)= B4A84FE0, SBox(0,205)= FD13E0B7, SBox(0,206)= 7CC43B81, SBox(0,207)= D2ADA8D9 SBox(0,208)= 165FA266, SBox(0,209)= 80957705, SBox(0,210)= 93CC7314, SBox(0,211)= 211A1477 SBox(0,212)= E6AD2065, SBox(0,213)= 77B5FA86, SBox(0,214)= C75442F5, SBox(0,215)= FB9D35CF SBox(0,216)= EBCDAF0C, SBox(0,217)= 7B3E89A0, SBox(0,218)= D6411BD3, SBox(0,219)= AE1E7E49 SBox(0,220)= 00250E2D, SBox(0,221)= 2071B35E, SBox(0,222)= 226800BB, SBox(0,223)= 57B8E0AF SBox(0,224)= 2464369B, SBox(0,225)= F009B91E, SBox(0,226)= 5563911D, SBox(0,227)= 59DFA6AA SBox(0,228)= 78C14389, SBox(0,229)= D95A537F, SBox(0,230)= 207D5BA2, SBox(0,231)= 02E5B9C5 SBox(0,232)= 83260376, SBox(0,233)= 6295CFA9, SBox(0,234)= 11C81968, SBox(0,235)= 4E734A41 SBox(0,236)= B3472DCA, SBox(0,237)= 7B14A94A, SBox(0,238)= 1B510052, SBox(0,239)= 9A532915 SBox(0,240)= D60F573F, SBox(0,241)= BC9BC6E4, SBox(0,242)= 2B60A476, SBox(0,243)= 81E67400 SBox(0,244)= 08BA6FB5, SBox(0,245)= 571BE91F, SBox(0,246)= F296EC6B, SBox(0,247)= 2A0DD915 SBox(0,248)= B6636521, SBox(0,249)= E7B9F9B6, SBox(0,250)= FF34052E, SBox(0,251)= C5855664 SBox(0,252)= 53B02D5D, SBox(0,253)= A99F8FA1, SBox(0,254)= 08BA4799, SBox(0,255)= 6E85076A SBox(1,0) = 4B7A70E9, SBox(1,1) = B5B32944, SBox(1,2) = DB75092E, SBox(1,3) = C4192623 SBox(1,4) = AD6EA6B0, SBox(1,5) = 49A7DF7D, SBox(1,6) = 9CEE60B8, SBox(1,7) = 8FEDB266 SBox(1,8) = ECAA8C71, SBox(1,9) = 699A17FF, SBox(1,10) = 5664526C, SBox(1,11) = C2B19EE1 SBox(1,12) = 193602A5, SBox(1,13) = 75094C29, SBox(1,14) = A0591340, SBox(1,15) = E4183A3E

Page 75: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

58

SBox(1,16) = 3F54989A, SBox(1,17) = 5B429D65, SBox(1,18) = 6B8FE4D6, SBox(1,19) = 99F73FD6 SBox(1,20) = A1D29C07, SBox(1,21) = EFE830F5, SBox(1,22) = 4D2D38E6, SBox(1,23) = F0255DC1 SBox(1,24) = 4CDD2086, SBox(1,25) = 8470EB26, SBox(1,26) = 6382E9C6, SBox(1,27) = 021ECC5E SBox(1,28) = 09686B3F, SBox(1,29) = 3EBAEFC9, SBox(1,30) = 3C971814, SBox(1,31) = 6B6A70A1 SBox(1,32) = 687F3584, SBox(1,33) = 52A0E286, SBox(1,34) = B79C5305, SBox(1,35) = AA500737 SBox(1,36) = 3E07841C, SBox(1,37) = 7FDEAE5C, SBox(1,38) = 8E7D44EC, SBox(1,39) = 5716F2B8 SBox(1,40) = B03ADA37, SBox(1,41) = F0500C0D, SBox(1,42) = F01C1F04, SBox(1,43) = 0200B3FF SBox(1,44) = AE0CF51A, SBox(1,45) = 3CB574B2, SBox(1,46) = 25837A58, SBox(1,47) = DC0921BD SBox(1,48) = D19113F9, SBox(1,49) = 7CA92FF6, SBox(1,50) = 94324773, SBox(1,51) = 22F54701 SBox(1,52) = 3AE5E581, SBox(1,53) = 37C2DADC, SBox(1,54) = C8B57634, SBox(1,55) = 9AF3DDA7 SBox(1,56) = A9446146, SBox(1,57) = 0FD0030E, SBox(1,58) = ECC8C73E, SBox(1,59) = A4751E41 SBox(1,60) = E238CD99, SBox(1,61) = 3BEA0E2F, SBox(1,62) = 3280BBA1, SBox(1,63) = 183EB331 SBox(1,64) = 4E548B38, SBox(1,65) = 4F6DB908, SBox(1,66) = 6F420D03, SBox(1,67) = F60A04BF SBox(1,68) = 2CB81290, SBox(1,69) = 24977C79, SBox(1,70) = 5679B072, SBox(1,71) = BCAF89AF SBox(1,72) = DE9A771F, SBox(1,73) = D9930810, SBox(1,74) = B38BAE12, SBox(1,75) = DCCF3F2E SBox(1,76) = 5512721F, SBox(1,77) = 2E6B7124, SBox(1,78) = 501ADDE6, SBox(1,79) = 9F84CD87 SBox(1,80) = 7A584718, SBox(1,81) = 7408DA17, SBox(1,82) = BC9F9ABC, SBox(1,83) = E94B7D8C SBox(1,84) = EC7AEC3A, SBox(1,85) = DB851DFA, SBox(1,86) = 63094366, SBox(1,87) = C464C3D2 SBox(1,88) = EF1C1847, SBox(1,89) = 3215D908, SBox(1,90) = DD433B37, SBox(1,91) = 24C2BA16 SBox(1,92) = 12A14D43, SBox(1,93) = 2A65C451, SBox(1,94) = 50940002, SBox(1,95) = 133AE4DD SBox(1,96) = 71DFF89E, SBox(1,97) = 10314E55, SBox(1,98) = 81AC77D6, SBox(1,99) = 5F11199B SBox(1,100)= 043556F1, SBox(1,101)= D7A3C76B, SBox(1,102)= 3C11183B, SBox(1,103)= 5924A509 SBox(1,104)= F28FE6ED, SBox(1,105)= 97F1FBFA, SBox(1,106)= 9EBABF2C, SBox(1,107)= 1E153C6E SBox(1,108)= 86E34570, SBox(1,109)= EAE96FB1, SBox(1,110)= 860E5E0A, SBox(1,111)= 5A3E2AB3 SBox(1,112)= 771FE71C, SBox(1,113)= 4E3D06FA, SBox(1,114)= 2965DCB9, SBox(1,115)= 99E71D0F SBox(1,116)= 803E89D6, SBox(1,117)= 5266C825, SBox(1,118)= 2E4CC978, SBox(1,119)= 9C10B36A SBox(1,120)= C6150EBA, SBox(1,121)= 94E2EA78, SBox(1,122)= A5FC3C53, SBox(1,123)= 1E0A2DF4 SBox(1,124)= F2F74EA7, SBox(1,125)= 361D2B3D, SBox(1,126)= 1939260F, SBox(1,127)= 19C27960 SBox(1,128)= 5223A708, SBox(1,129)= F71312B6, SBox(1,130)= EBADFE6E, SBox(1,131)= EAC31F66 SBox(1,132)= E3BC4595, SBox(1,133)= A67BC883, SBox(1,134)= B17F37D1, SBox(1,135)= 018CFF28 SBox(1,136)= C332DDEF, SBox(1,137)= BE6C5AA5, SBox(1,138)= 65582185, SBox(1,139)= 68AB9802 SBox(1,140)= EECEA50F, SBox(1,141)= DB2F953B, SBox(1,142)= 2AEF7DAD, SBox(1,143)= 5B6E2F84 SBox(1,144)= 1521B628, SBox(1,145)= 29076170, SBox(1,146)= ECDD4775, SBox(1,147)= 619F1510 SBox(1,148)= 13CCA830, SBox(1,149)= EB61BD96, SBox(1,150)= 0334FE1E, SBox(1,151)= AA0363CF SBox(1,152)= B5735C90, SBox(1,153)= 4C70A239, SBox(1,154)= D59E9E0B, SBox(1,155)= CBAADE14 SBox(1,156)= EECC86BC, SBox(1,157)= 60622CA7, SBox(1,158)= 9CAB5CAB, SBox(1,159)= B2F3846E SBox(1,160)= 648B1EAF, SBox(1,161)= 19BDF0CA, SBox(1,162)= A02369B9, SBox(1,163)= 655ABB50 SBox(1,164)= 40685A32, SBox(1,165)= 3C2AB4B3, SBox(1,166)= 319EE9D5, SBox(1,167)= C021B8F7 SBox(1,168)= 9B540B19, SBox(1,169)= 875FA099, SBox(1,170)= 95F7997E, SBox(1,171)= 623D7DA8 SBox(1,172)= F837889A, SBox(1,173)= 97E32D77, SBox(1,174)= 11ED935F, SBox(1,175)= 16681281 SBox(1,176)= 0E358829, SBox(1,177)= C7E61FD6, SBox(1,178)= 96DEDFA1, SBox(1,179)= 7858BA99 SBox(1,180)= 57F584A5, SBox(1,181)= 1B227263, SBox(1,182)= 9B83C3FF, SBox(1,183)= 1AC24696 SBox(1,184)= CDB30AEB, SBox(1,185)= 532E3054, SBox(1,186)= 8FD948E4, SBox(1,187)= 6DBC3128 SBox(1,188)= 58EBF2EF, SBox(1,189)= 34C6FFEA, SBox(1,190)= FE28ED61, SBox(1,191)= EE7C3C73 SBox(1,192)= 5D4A14D9, SBox(1,193)= E864B7E3, SBox(1,194)= 42105D14, SBox(1,195)= 203E13E0 SBox(1,196)= 45EEE2B6, SBox(1,197)= A3AAABEA, SBox(1,198)= DB6C4F15, SBox(1,199)= FACB4FD0 SBox(1,200)= C742F442, SBox(1,201)= EF6ABBB5, SBox(1,202)= 654F3B1D, SBox(1,203)= 41CD2105 SBox(1,204)= D81E799E, SBox(1,205)= 86854DC7, SBox(1,206)= E44B476A, SBox(1,207)= 3D816250 SBox(1,208)= CF62A1F2, SBox(1,209)= 5B8D2646, SBox(1,210)= FC8883A0, SBox(1,211)= C1C7B6A3 SBox(1,212)= 7F1524C3, SBox(1,213)= 69CB7492, SBox(1,214)= 47848A0B, SBox(1,215)= 5692B285 SBox(1,216)= 095BBF00, SBox(1,217)= AD19489D, SBox(1,218)= 1462B174, SBox(1,219)= 23820E00 SBox(1,220)= 58428D2A, SBox(1,221)= 0C55F5EA, SBox(1,222)= 1DADF43E, SBox(1,223)= 233F7061 SBox(1,224)= 3372F092, SBox(1,225)= 8D937E41, SBox(1,226)= D65FECF1, SBox(1,227)= 6C223BDB SBox(1,228)= 7CDE3759, SBox(1,229)= CBEE7460, SBox(1,230)= 4085F2A7, SBox(1,231)= CE77326E SBox(1,232)= A6078084, SBox(1,233)= 19F8509E, SBox(1,234)= E8EFD855, SBox(1,235)= 61D99735 SBox(1,236)= A969A7AA, SBox(1,237)= C50C06C2, SBox(1,238)= 5A04ABFC, SBox(1,239)= 800BCADC SBox(1,240)= 9E447A2E, SBox(1,241)= C3453484, SBox(1,242)= FDD56705, SBox(1,243)= 0E1E9EC9 SBox(1,244)= DB73DBD3, SBox(1,245)= 105588CD, SBox(1,246)= 675FDA79, SBox(1,247)= E3674340 SBox(1,248)= C5C43465, SBox(1,249)= 713E38D8, SBox(1,250)= 3D28F89E, SBox(1,251)= F16DFF20 SBox(1,252)= 153E21E7, SBox(1,253)= 8FB03D4A, SBox(1,254)= E6E39F2B, SBox(1,255)= DB83ADF7 SBox(2,0) = E93D5A68, SBox(2,1) = 948140F7, SBox(2,2) = F64C261C, SBox(2,3) = 94692934 SBox(2,4) = 411520F7, SBox(2,5) = 7602D4F7, SBox(2,6) = BCF46B2E, SBox(2,7) = D4A20068 SBox(2,8) = D4082471, SBox(2,9) = 3320F46A, SBox(2,10) = 43B7D4B7, SBox(2,11) = 500061AF SBox(2,12) = 1E39F62E, SBox(2,13) = 97244546, SBox(2,14) = 14214F74, SBox(2,15) = BF8B8840 SBox(2,16) = 4D95FC1D, SBox(2,17) = 96B591AF, SBox(2,18) = 70F4DDD3, SBox(2,19) = 66A02F45 SBox(2,20) = BFBC09EC, SBox(2,21) = 03BD9785, SBox(2,22) = 7FAC6DD0, SBox(2,23) = 31CB8504 SBox(2,24) = 96EB27B3, SBox(2,25) = 55FD3941, SBox(2,26) = DA2547E6, SBox(2,27) = ABCA0A9A SBox(2,28) = 28507825, SBox(2,29) = 530429F4, SBox(2,30) = 0A2C86DA, SBox(2,31) = E9B66DFB SBox(2,32) = 68DC1462, SBox(2,33) = D7486900, SBox(2,34) = 680EC0A4, SBox(2,35) = 27A18DEE SBox(2,36) = 4F3FFEA2, SBox(2,37) = E887AD8C, SBox(2,38) = B58CE006, SBox(2,39) = 7AF4D6B6 SBox(2,40) = AACE1E7C, SBox(2,41) = D3375FEC, SBox(2,42) = CE78A399, SBox(2,43) = 406B2A42 SBox(2,44) = 20FE9E35, SBox(2,45) = D9F385B9, SBox(2,46) = EE39D7AB, SBox(2,47) = 3B124E8B SBox(2,48) = 1DC9FAF7, SBox(2,49) = 4B6D1856, SBox(2,50) = 26A36631, SBox(2,51) = EAE397B2 SBox(2,52) = 3A6EFA74, SBox(2,53) = DD5B4332, SBox(2,54) = 6841E7F7, SBox(2,55) = CA7820FB

Page 76: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

59

SBox(2,56) = FB0AF54E, SBox(2,57) = D8FEB397, SBox(2,58) = 454056AC, SBox(2,59) = BA489527 SBox(2,60) = 55533A3A, SBox(2,61) = 20838D87, SBox(2,62) = FE6BA9B7, SBox(2,63) = D096954B SBox(2,64) = 55A867BC, SBox(2,65) = A1159A58, SBox(2,66) = CCA92963, SBox(2,67) = 99E1DB33 SBox(2,68) = A62A4A56, SBox(2,69) = 3F3125F9, SBox(2,70) = 5EF47E1C, SBox(2,71) = 9029317C SBox(2,72) = FDF8E802, SBox(2,73) = 04272F70, SBox(2,74) = 80BB155C, SBox(2,75) = 05282CE3 SBox(2,76) = 95C11548, SBox(2,77) = E4C66D22, SBox(2,78) = 48C1133F, SBox(2,79) = C70F86DC SBox(2,80) = 07F9C9EE, SBox(2,81) = 41041F0F, SBox(2,82) = 404779A4, SBox(2,83) = 5D886E17 SBox(2,84) = 325F51EB, SBox(2,85) = D59BC0D1, SBox(2,86) = F2BCC18F, SBox(2,87) = 41113564 SBox(2,88) = 257B7834, SBox(2,89) = 602A9C60, SBox(2,90) = DFF8E8A3, SBox(2,91) = 1F636C1B SBox(2,92) = 0E12B4C2, SBox(2,93) = 02E1329E, SBox(2,94) = AF664FD1, SBox(2,95) = CAD18115 SBox(2,96) = 6B2395E0, SBox(2,97) = 333E92E1, SBox(2,98) = 3B240B62, SBox(2,99) = EEBEB922 SBox(2,100)= 85B2A20E, SBox(2,101)= E6BA0D99, SBox(2,102)= DE720C8C, SBox(2,103)= 2DA2F728 SBox(2,104)= D0127845, SBox(2,105)= 95B794FD, SBox(2,106)= 647D0862, SBox(2,107)= E7CCF5F0 SBox(2,108)= 5449A36F, SBox(2,109)= 877D48FA, SBox(2,110)= C39DFD27, SBox(2,111)= F33E8D1E SBox(2,112)= 0A476341, SBox(2,113)= 992EFF74, SBox(2,114)= 3A6F6EAB, SBox(2,115)= F4F8FD37 SBox(2,116)= A812DC60, SBox(2,117)= A1EBDDF8, SBox(2,118)= 991BE14C, SBox(2,119)= DB6E6B0D SBox(2,120)= C67B5510, SBox(2,121)= 6D672C37, SBox(2,122)= 2765D43B, SBox(2,123)= DCD0E804 SBox(2,124)= F1290DC7, SBox(2,125)= CC00FFA3, SBox(2,126)= B5390F92, SBox(2,127)= 690FED0B SBox(2,128)= 667B9FFB, SBox(2,129)= CEDB7D9C, SBox(2,130)= A091CF0B, SBox(2,131)= D9155EA3 SBox(2,132)= BB132F88, SBox(2,133)= 515BAD24, SBox(2,134)= 7B9479BF, SBox(2,135)= 763BD6EB SBox(2,136)= 37392EB3, SBox(2,137)= CC115979, SBox(2,138)= 8026E297, SBox(2,139)= F42E312D SBox(2,140)= 6842ADA7, SBox(2,141)= C66A2B3B, SBox(2,142)= 12754CCC, SBox(2,143)= 782EF11C SBox(2,144)= 6A124237, SBox(2,145)= B79251E7, SBox(2,146)= 06A1BBE6, SBox(2,147)= 4BFB6350 SBox(2,148)= 1A6B1018, SBox(2,149)= 11CAEDFA, SBox(2,150)= 3D25BDD8, SBox(2,151)= E2E1C3C9 SBox(2,152)= 44421659, SBox(2,153)= 0A121386, SBox(2,154)= D90CEC6E, SBox(2,155)= D5ABEA2A SBox(2,156)= 64AF674E, SBox(2,157)= DA86A85F, SBox(2,158)= BEBFE988, SBox(2,159)= 64E4C3FE SBox(2,160)= 9DBC8057, SBox(2,161)= F0F7C086, SBox(2,162)= 60787BF8, SBox(2,163)= 6003604D SBox(2,164)= D1FD8346, SBox(2,165)= F6381FB0, SBox(2,166)= 7745AE04, SBox(2,167)= D736FCCC SBox(2,168)= 83426B33, SBox(2,169)= F01EAB71, SBox(2,170)= B0804187, SBox(2,171)= 3C005E5F SBox(2,172)= 77A057BE, SBox(2,173)= BDE8AE24, SBox(2,174)= 55464299, SBox(2,175)= BF582E61 SBox(2,176)= 4E58F48F, SBox(2,177)= F2DDFDA2, SBox(2,178)= F474EF38, SBox(2,179)= 8789BDC2 SBox(2,180)= 5366F9C3, SBox(2,181)= C8B38E74, SBox(2,182)= B475F255, SBox(2,183)= 46FCD9B9 SBox(2,184)= 7AEB2661, SBox(2,185)= 8B1DDF84, SBox(2,186)= 846A0E79, SBox(2,187)= 915F95E2 SBox(2,188)= 466E598E, SBox(2,189)= 20B45770, SBox(2,190)= 8CD55591, SBox(2,191)= C902DE4C SBox(2,192)= B90BACE1, SBox(2,193)= BB8205D0, SBox(2,194)= 11A86248, SBox(2,195)= 7574A99E SBox(2,196)= B77F19B6, SBox(2,197)= E0A9DC09, SBox(2,198)= 662D09A1, SBox(2,199)= C4324633 SBox(2,200)= E85A1F02, SBox(2,201)= 09F0BE8C, SBox(2,202)= 4A99A025, SBox(2,203)= 1D6EFE10 SBox(2,204)= 1AB93D1D, SBox(2,205)= 0BA5A4DF, SBox(2,206)= A186F20F, SBox(2,207)= 2868F169 SBox(2,208)= DCB7DA83, SBox(2,209)= 573906FE, SBox(2,210)= A1E2CE9B, SBox(2,211)= 4FCD7F52 SBox(2,212)= 50115E01, SBox(2,213)= A70683FA, SBox(2,214)= A002B5C4, SBox(2,215)= 0DE6D027 SBox(2,216)= 9AF88C27, SBox(2,217)= 773F8641, SBox(2,218)= C3604C06, SBox(2,219)= 61A806B5 SBox(2,220)= F0177A28, SBox(2,221)= C0F586E0, SBox(2,222)= 006058AA, SBox(2,223)= 30DC7D62 SBox(2,224)= 11E69ED7, SBox(2,225)= 2338EA63, SBox(2,226)= 53C2DD94, SBox(2,227)= C2C21634 SBox(2,228)= BBCBEE56, SBox(2,229)= 90BCB6DE, SBox(2,230)= EBFC7DA1, SBox(2,231)= CE591D76 SBox(2,232)= 6F05E409, SBox(2,233)= 4B7C0188, SBox(2,234)= 39720A3D, SBox(2,235)= 7C927C24 SBox(2,236)= 86E3725F, SBox(2,237)= 724D9DB9, SBox(2,238)= 1AC15BB4, SBox(2,239)= D39EB8FC SBox(2,240)= ED545578, SBox(2,241)= 08FCA5B5, SBox(2,242)= D83D7CD3, SBox(2,243)= 4DAD0FC4 SBox(2,244)= 1E50EF5E, SBox(2,245)= B161E6F8, SBox(2,246)= A28514D9, SBox(2,247)= 6C51133C SBox(2,248)= 6FD5C7E7, SBox(2,249)= 56E14EC4, SBox(2,250)= 362ABFCE, SBox(2,251)= DDC6C837 SBox(2,252)= D79A3234, SBox(2,253)= 92638212, SBox(2,254)= 670EFA8E, SBox(2,255)= 406000E0 SBox(3,0) = 3A39CE37, SBox(3,1) = D3FAF5CF, SBox(3,2) = ABC27737, SBox(3,3) = 5AC52D1B SBox(3,4) = 5CB0679E, SBox(3,5) = 4FA33742, SBox(3,6) = D3822740, SBox(3,7) = 99BC9BBE SBox(3,8) = D5118E9D, SBox(3,9) = BF0F7315, SBox(3,10) = D62D1C7E, SBox(3,11) = C700C47B SBox(3,12) = B78C1B6B, SBox(3,13) = 21A19045, SBox(3,14) = B26EB1BE, SBox(3,15) = 6A366EB4 SBox(3,16) = 5748AB2F, SBox(3,17) = BC946E79, SBox(3,18) = C6A376D2, SBox(3,19) = 6549C2C8 SBox(3,20) = 530FF8EE, SBox(3,21) = 468DDE7D, SBox(3,22) = D5730A1D, SBox(3,23) = 4CD04DC6 SBox(3,24) = 2939BBDB, SBox(3,25) = A9BA4650, SBox(3,26) = AC9526E8, SBox(3,27) = BE5EE304 SBox(3,28) = A1FAD5F0, SBox(3,29) = 6A2D519A, SBox(3,30) = 63EF8CE2, SBox(3,31) = 9A86EE22 SBox(3,32) = C089C2B8, SBox(3,33) = 43242EF6, SBox(3,34) = A51E03AA, SBox(3,35) = 9CF2D0A4 SBox(3,36) = 83C061BA, SBox(3,37) = 9BE96A4D, SBox(3,38) = 8FE51550, SBox(3,39) = BA645BD6 SBox(3,40) = 2826A2F9, SBox(3,41) = A73A3AE1, SBox(3,42) = 4BA99586, SBox(3,43) = EF5562E9 SBox(3,44) = C72FEFD3, SBox(3,45) = F752F7DA, SBox(3,46) = 3F046F69, SBox(3,47) = 77FA0A59 SBox(3,48) = 80E4A915, SBox(3,49) = 87B08601, SBox(3,50) = 9B09E6AD, SBox(3,51) = 3B3EE593 SBox(3,52) = E990FD5A, SBox(3,53) = 9E34D797, SBox(3,54) = 2CF0B7D9, SBox(3,55) = 022B8B51 SBox(3,56) = 96D5AC3A, SBox(3,57) = 017DA67D, SBox(3,58) = D1CF3ED6, SBox(3,59) = 7C7D2D28 SBox(3,60) = 1F9F25CF, SBox(3,61) = ADF2B89B, SBox(3,62) = 5AD6B472, SBox(3,63) = 5A88F54C SBox(3,64) = E029AC71, SBox(3,65) = E019A5E6, SBox(3,66) = 47B0ACFD, SBox(3,67) = ED93FA9B SBox(3,68) = E8D3C48D, SBox(3,69) = 283B57CC, SBox(3,70) = F8D56629, SBox(3,71) = 79132E28 SBox(3,72) = 785F0191, SBox(3,73) = ED756055, SBox(3,74) = F7960E44, SBox(3,75) = E3D35E8C SBox(3,76) = 15056DD4, SBox(3,77) = 88F46DBA, SBox(3,78) = 03A16125, SBox(3,79) = 0564F0BD SBox(3,80) = C3EB9E15, SBox(3,81) = 3C9057A2, SBox(3,82) = 97271AEC, SBox(3,83) = A93A072A SBox(3,84) = 1B3F6D9B, SBox(3,85) = 1E6321F5, SBox(3,86) = F59C66FB, SBox(3,87) = 26DCF319 SBox(3,88) = 7533D928, SBox(3,89) = B155FDF5, SBox(3,90) = 03563482, SBox(3,91) = 8ABA3CBB SBox(3,92) = 28517711, SBox(3,93) = C20AD9F8, SBox(3,94) = ABCC5167, SBox(3,95) = CCAD925F

Page 77: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

60

SBox(3,96) = 4DE81751, SBox(3,97) = 3830DC8E, SBox(3,98) = 379D5862, SBox(3,99) = 9320F991 SBox(3,100)= EA7A90C2, SBox(3,101)= FB3E7BCE, SBox(3,102)= 5121CE64, SBox(3,103)= 774FBE32 SBox(3,104)= A8B6E37E, SBox(3,105)= C3293D46, SBox(3,106)= 48DE5369, SBox(3,107)= 6413E680 SBox(3,108)= A2AE0810, SBox(3,109)= DD6DB224, SBox(3,110)= 69852DFD, SBox(3,111)= 09072166 SBox(3,112)= B39A460A, SBox(3,113)= 6445C0DD, SBox(3,114)= 586CDECF, SBox(3,115)= 1C20C8AE SBox(3,116)= 5BBEF7DD, SBox(3,117)= 1B588D40, SBox(3,118)= CCD2017F, SBox(3,119)= 6BB4E3BB SBox(3,120)= DDA26A7E, SBox(3,121)= 3A59FF45, SBox(3,122)= 3E350A44, SBox(3,123)= BCB4CDD5 SBox(3,124)= 72EACEA8, SBox(3,125)= FA6484BB, SBox(3,126)= 8D6612AE, SBox(3,127)= BF3C6F47 SBox(3,128)= D29BE463, SBox(3,129)= 542F5D9E, SBox(3,130)= AEC2771B, SBox(3,131)= F64E6370 SBox(3,132)= 740E0D8D, SBox(3,133)= E75B1357, SBox(3,134)= F8721671, SBox(3,135)= AF537D5D SBox(3,136)= 4040CB08, SBox(3,137)= 4EB4E2CC, SBox(3,138)= 34D2466A, SBox(3,139)= 0115AF84 SBox(3,140)= E1B00428, SBox(3,141)= 95983A1D, SBox(3,142)= 06B89FB4, SBox(3,143)= CE6EA048 SBox(3,144)= 6F3F3B82, SBox(3,145)= 3520AB82, SBox(3,146)= 011A1D4B, SBox(3,147)= 277227F8 SBox(3,148)= 611560B1, SBox(3,149)= E7933FDC, SBox(3,150)= BB3A792B, SBox(3,151)= 344525BD SBox(3,152)= A08839E1, SBox(3,153)= 51CE794B, SBox(3,154)= 2F32C9B7, SBox(3,155)= A01FBAC9 SBox(3,156)= E01CC87E, SBox(3,157)= BCC7D1F6, SBox(3,158)= CF0111C3, SBox(3,159)= A1E8AAC7 SBox(3,160)= 1A908749, SBox(3,161)= D44FBD9A, SBox(3,162)= D0DADECB, SBox(3,163)= D50ADA38 SBox(3,164)= 0339C32A, SBox(3,165)= C6913667, SBox(3,166)= 8DF9317C, SBox(3,167)= E0B12B4F SBox(3,168)= F79E59B7, SBox(3,169)= 43F5BB3A, SBox(3,170)= F2D519FF, SBox(3,171)= 27D9459C SBox(3,172)= BF97222C, SBox(3,173)= 15E6FC2A, SBox(3,174)= 0F91FC71, SBox(3,175)= 9B941525 SBox(3,176)= FAE59361, SBox(3,177)= CEB69CEB, SBox(3,178)= C2A86459, SBox(3,179)= 12BAA8D1 SBox(3,180)= B6C1075E, SBox(3,181)= E3056A0C, SBox(3,182)= 10D25065, SBox(3,183)= CB03A442 SBox(3,184)= E0EC6E0E, SBox(3,185)= 1698DB3B, SBox(3,186)= 4C98A0BE, SBox(3,187)= 3278E964 SBox(3,188)= 9F1F9532, SBox(3,189)= E0D392DF, SBox(3,190)= D3A0342B, SBox(3,191)= 8971F21E SBox(3,192)= 1B0A7441, SBox(3,193)= 4BA3348C, SBox(3,194)= C5BE7120, SBox(3,195)= C37632D8 SBox(3,196)= DF359F8D, SBox(3,197)= 9B992F2E, SBox(3,198)= E60B6F47, SBox(3,199)= 0FE3F11D SBox(3,200)= E54CDA54, SBox(3,201)= 1EDAD891, SBox(3,202)= CE6279CF, SBox(3,203)= CD3E7E6F SBox(3,204)= 1618B166, SBox(3,205)= FD2C1D05, SBox(3,206)= 848FD2C5, SBox(3,207)= F6FB2299 SBox(3,208)= F523F357, SBox(3,209)= A6327623, SBox(3,210)= 93A83531, SBox(3,211)= 56CCCD02 SBox(3,212)= ACF08162, SBox(3,213)= 5A75EBB5, SBox(3,214)= 6E163697, SBox(3,215)= 88D273CC SBox(3,216)= DE966292, SBox(3,217)= 81B949D0, SBox(3,218)= 4C50901B, SBox(3,219)= 71C65614 SBox(3,220)= E6C6C7BD, SBox(3,221)= 327A140A, SBox(3,222)= 45E1D006, SBox(3,223)= C3F27B9A SBox(3,224)= C9AA53FD, SBox(3,225)= 62A80F00, SBox(3,226)= BB25BFE2, SBox(3,227)= 35BDD2F6 SBox(3,228)= 71126905, SBox(3,229)= B2040222, SBox(3,230)= B6CBCF7C, SBox(3,231)= CD769C2B SBox(3,232)= 53113EC0, SBox(3,233)= 1640E3D3, SBox(3,234)= 38ABBD60, SBox(3,235)= 2547ADF0 SBox(3,236)= BA38209C, SBox(3,237)= F746CE76, SBox(3,238)= 77AFA1C5, SBox(3,239)= 20756060 SBox(3,240)= 85CBFE4E, SBox(3,241)= 8AE88DD8, SBox(3,242)= 7AAAF9B0, SBox(3,243)= 4CF9AA7E SBox(3,244)= 1948C25C, SBox(3,245)= 02FB8A8C, SBox(3,246)= 01C36AE4, SBox(3,247)= D6EBE1F9 SBox(3,248)= 90D4F869, SBox(3,249)= A65CDEA0, SBox(3,250)= 3F09252D, SBox(3,251)= C208E69F SBox(3,252)= B74E6132, SBox(3,253)= CE77E25B, SBox(3,254)= 578FDFE3, SBox(3,255)= 3AC372E6

Page 78: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

61

INISIALISASI PBOX

PBox(1) = 243F6A88, PBox(2) = 85A308D3, PBox(3) = 13198A2E, PBox(4) = 03707344 PBox(5) = A4093822, PBox(6) = 299F31D0, PBox(7) = 082EFA98, PBox(8) = EC4E6C89 PBox(9) = 452821E6, PBox(10)= 38D01377, PBox(11)= BE5466CF, PBox(12)= 34E90C6C PBox(13)= C0AC29B7, PBox(14)= C97C50DD, PBox(15)= 3F84D5B5, PBox(16)= B5470917 PBox(17)= 9216D5D9, PBox(18)= 8979FB1B

Page 79: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

62

Contoh Blowfish 64 bit Plaintext = MATAHARI dan Kunci = INOVATIF

1. Pembangkitan Subkunci

a. Inisialisasi P empat PBox secara berurutan dengan string yang tetap I = 49 N= 4E O= 4F V=56 A=41 T=54 I=49 F=46

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

P1 = P1 XOR K1 = 243F6A88 XOR 494E4F56 = 6D7125DE P2 = P2 XOR K2 = 85A308D3 XOR 41544946 = C4F74195 P3 = P3 XOR K1 = 13198A2E XOR 494E4F56 = 5A57C578

Tabel 2.1 Hasil XOR dengan kunci untuk P4 sampai P18 P4= 42243A02 P5= ED477774 P6= 68CB7896 P7= 4160B5CE P8= AD1A25CF

P9= 0C666EB0 P10=79845A31 P11= F71A2999 P12=75BD452A P13=89E266E1

P14=8828199B P15=76CA9AE3 P16= F4134051 P17= DB589A8F P18= C82DB25D

c. Modifikasi PBox dan SBox menggunakan enkripsi dengan input string 0 Mengganti PBox1(P1) dan PBox2(P2) i = 1 (FXl yang ke-1) Xl = 00000000 Xr = 00000000 Xl = Xl XOR P1 = 00000000 XOR 6D7125DE = 6D7125DE Proses Jaringan Feistel A=6d (109), b = 71 (113), c=25 (37), d=de (222) F(Xl) : ((((s1a+s2b) mod 2^32) xor s3c) + s4d) mod 2^32 : ((((80991B7B+ 4E3D06FA) MOD 100000000) XOR E887AD8C) + 45E1D006) mod100000000 : ((CED62275 XOR E887AD8C) + 45E1D006) mod 100000000 : (26518FF9 + 45E1D006) mod 100000000 : 6C335FFF Xr : F(Xl) XOR Xr

: 6C335FFF XOR 00000000

: 6C335FFF i = 2 (FXl yang ke-2) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 6C335FFF dan Xr = 6D7125DE Xl = Xl XOR P2

= 6C335FFF XOR C4F74195 = A8C41E6A Proses Jaringan Feistel A=A8 (168), b = C4 (196), c=1E (30), d=6A (106) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 : ((((9A53E479+45EEE2B6) mod 100000000) XOR 0A2C86DA) + 48DE5369) mod 100000000 : ((E042C72F XOR 0A2C86DA) +48DE5369) mod 100000000 : (EA6E41F5+ 48DE5369) mod 100000000

: 1334C955E bit MSB diabaikan menghindari terjadinya overload maka output 334C955E

Xr = F(Xl) XOR Xr = 334C955E XOR 6D7125DE

= 5E3DB080

Page 80: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

63

Tabel 2.2 Hasil putaran i(FXl)= 6 sampai putaran i(FXl) = 16 Proses i(17) dan i(18) Xl = 302CB6E0 Xr = 90267587 Xl = Xl XOR P17 = 302CB6E0 XOR DB589A8F = EB742C6F Xr = Xr XOR P18 = 90267587 XOR C82DB25D = 580BC7DA Tabel 2.3

Perubahan PBox(1) dan PBox(2) PBox(1)=580BC7DA PBox(2)=EB742C6C PBox(3)= 5A57C578 PBox(4)=42243A02

PBox(5)=ED477774 PBox(6)=68CB7896 PBox(7)= 4160B5CE PBox(8)=AD1A25CF

PBox(9)=0C666EB0 PBox(10)= 79845A31 PBox(11)= F71A2999 PBox(12)=75BD452A

PBox(13)=89E266E1 PBox(14)= 8828199B PBox(15)= 76CA9AE3 PBox(16)=F4134051

PBox(17=DB589A8F PBox(18)= C82DB25D

Mengganti PBox(P3) dan PBox (P4) i = 1 (FXl yang ke-17) Xl = Xl XOR P1 = 580BC7DA XOR 580BC7DA = 00000000 Proses Jaringan Feistel A=00 (0), b = 00 (0), c=00 (0), d=00 (0) F(Xl) :((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( D1310BA6+ 4B7A70E9) mod 100000000)XOR E93D5A68) + 3A39CE37) mod 100000000 : ((1CAB7C8F XOR E93D5A68) + 3A39CE37) mod 100000000 : 2FCFF51E Xr = F(Xl) XOR Xr = 2FCFF51E XOR EB742C6C

i (FXl) Xl Xr XL=XL XorPi

XR=F(XL) xor XR

3 (3) 5E3DB080 A8C41E6A 046A75F8 2F88B520

4 (4) 2F88B520 046A75F8 6DAC8F22 A2762D4B

5 (5) A2762D4B 6DAC8F22 4F315A3F 3FA1CAB3

6 (6) 3FA1CAB3 4F315A3F 576AB225 CA9B2B76

7 (7) CA9B2B76 576AB225 8BFB9EB8 2778B43A

8 (8) 2778B43A 8BFB9EB8 8A6291F5 79212ABF

9 (9) 79212ABF 8A6291F5 7547440F 4FF99F2C

10 (10) 4FF99F2C 7547440F 367DC51D CE54B05E

11(11) CE54B05E 367DC51D 394E99C7 F725B02D

12 (12) F725B02D 394E99C7 8298F507 BBD66CC0

13 (13) BBD66CC0 8298F507 F433010B 4B74FBB

14 (14) 4B74FBB F433010B 8C9F5620 5C8B2F93

15 (15) 5C8B2F93 8C9F5620 2A41B570 643535D6

16 (16) 643535D6 2A41B570 90267587 302CB6E0

Page 81: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

64

= C4BBD9724 i = 2 (FXl yang ke-18) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = C4BBD972 Xr = 00000000 Xl = Xl XOR P2 = C4BBD972 XOR EB742C6C = 2FCFF51E Proses Jaringan Feistel A=2F (47), b = CF (207), c=F5 (245), d=1E (30) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :((((636FBC2A+ 3D816250) mod 100000000)XOR B161E6F8) + 63EF8CE2) mod 100000000 : ((A0F11E7A XOR B161E6F8) + 63EF8CE2) mod 100000000 : 75808564 Xr = F(Xl) XOR Xr = 75808564 XOR 0 = 75808564 Tabel 2.4 Hasil putaran i(FXl)= 6(22) sampai putaran i(FXl) = 16(32) Proses P17 dan P18 Xl

= 3EB50513 Xr = EEE1A0DB Xl = Xl XOR P17 = 3EB50513 XOR DB589A8F = E5ED9F9C Xr = Xr XOR P18 = EEE1A0DB XOR C82DB25D = 26CC1286 Tabel 2.5 Perubahan PBox(3) dan PBox (4) PBox(1)=580BC7DA PBox(2)= EB742C6C PBox(3)= 26CC1286 PBox(4)= E5ED9F9C

PBox(5)= ED477774 PBox(6)= 68CB7896 PBox(7)= 4160B5CE PBox(8)= AD1A25CF

i (FXl) Xl Xr Xl=Xl XOR Pi

Xr=F(Xl) XOR Xr

3(19) 75808564 2FCFF51E 2FD7401C BE6B2A1D

4(20) BE6B2A1D 2FD7401C FC4F101F 76F0B507

5(21) 76F0B507 FC4F101F 9BB7C273 F8DD8AF8

6 (22) F8DD8AF8 9BB7C273 9016F26E 2093A360

7(23) 2093A360 9016F26E 61F316AE 6C133D33

8 (24) 6C133D33 61F316AE C10918FC 9DE24B74

9 (25) 9DE24B74

C10918FC 918425C4 29C6A44F

10 (26) 29C6A44F 918425C4 5042FE7E DD874FCD

11 (27) DD874FCD 5042FE7E 2A9D6654 B6D90F8C

12 (28) B6D90F8C 2A9D6654 C3644AA6 EFC3596A

13 (29) EFC3596A C3644AA6 66213F8B 7C7B4E91

14 (30) 7C7B4E91 66213F8B F453570A EF60CB28

15 (31) EF60CB28 F453570A 99AA51CB 1AF2E08A

16 (32) 1AF2E08A 99AA51CB EEE1A0DB 3EB50513

Page 82: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

65

PBox(13)= 89E266E1 PBox(14)= 8828199B PBox(15)= 76CA9AE3 PBox(16)= F4134051

PBox(9)= 0C666EB0 PBox(10)= 79845A31 PBox(11)= F71A2999 PBox(12)= 75BD452A

PBox(13)= 89E266E1 PBox(14)= 8828199B PBox(15)= 76CA9AE3 PBox(16)= F4134051

PBox(17)= DB589A8F PBox(18)= C82DB25D

Mengganti PBox5 (P5) dan PBox6 (P6) i = 1 (FXl yang ke-33) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 26CC1286 Xr = E5ED9F9C Xl = Xl XOR P1 = 26CC1286 xor 580BC7DA = 7EC7D55C Proses Jaringan Feistel A= 7E (126), b =C7 (199), c=D5 (213), d=5C (92) F(Xl) : ((((s1a+s2b) mod 2^32) xor s3c) + s4d) mod 2^32 :(((( CC814544 + FACB4FD0) MOD 100000000)XOR A70683FA) + 28517711) mod 100000000 : ((C74C9514 XOR A70683FA) + 28517711) MOD 100000000 : 889B8DFF Xr = F(Xl) XOR Xr = 889B8DFF XOR E5ED9F9C = 6D761263 i = 2 (FXl yang ke-34) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 6D761263 Xr = 7EC7D55C Xl = Xl XOR P2 = 6D761263 XOR EB742C6C = 86023E0F Proses Jaringan Feistel A= 86 (134), b =02 (02), c=3E (62), d=0F (15) F(Xl) :((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :((((D20B5F39 +DB75092E) mod 100000000)XOR FE6BA9B7) + 6A366EB4) mod 100000000 : ((AD806867 XOR FE6BA9B7) + 6A366EB4) mod 100000000 : BE223084 Xr = F(Xl) XOR Xr = BE223084 XOR 7EC7D55C = C0E5E5D8 Tabel 2.6 Hasil putaran i(FXl)= 3(35) sampai putaran i(FXl) = 16(48)

i (FXl) Xl Xr XL=Xl XOR Pi

XR=F(Xl) XOR Xr

3 (35) C0E5E5D8 86023E0F E629F75E AE6AFBF5

4 (36) AE6AFBF5 E629F75E 4B876469 3B6E8290

5 (37) 3B6E8290 4B876469 D629F5E4 3C5F7696

6 (38) 3C5F7696 D629F5E4 54940E00 6FD3EFB

7 (39) 6FD3EFB 54940E00 479D8B35 FA393964

8 (40) FA393964 479D8B35 57231CAB 6F6904B3

9 (41) 6F6904B3 57231CAB 630F6A03 EE4AC50A

10 (42) EE4AC50A 630F6A03 97CE9F3B A0297839

11 (43) A0297839 97CE9F3B 573351A0 6C4A6AE4

12 (44) 6C4A6AE4 573351A0 19F72FCE E2560B20

Page 83: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

66

Proses P17 dan P18 Xl = A53B9B79 Xr = 681A3306 Xl = Xl XOR P17 = A53B9B79 XOR DB589A8F = 7E6301F6 Xr = Xr XOR P18 = 681A3306 XOR C82DB25D

= A037815B

Tabel 2.7 Perubahan PBox (5) dan PBox (6) PBox(1 = 580BC7DA

PBox(2)= EB742C6C PBox(3)= 26CC1286 PBox(4)= E5ED9F9C

PBox(5) = A037815B PBox(6)= 7E6301F6 PBox(7)= 4160B5CE PBox(8)= AD1A25CF

PBox(9) = 0C666EB0 PBox(10)= 79845A31 PBox(11)= F71A2999 PBox(12)= 75BD452A

PBox(13)= 89E266E1 PBox(14)= 8828199B PBox(15)= 76CA9AE3 PBox(16)= F4134051

PBox(17)= DB589A8F PBox(18)= C82DB25D

Mengganti PBox7 (P7) dan PBox8 (P8) i = 1 (FXl yang ke-49) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = A037815B Xr = 7E6301F6 Xl = Xl XOR P1 = A037815B XOR 580BC7DA = F83C4681 Proses Jaringan Feistel A= F8 (248), b =3C (60), c=46 (70), d=81 (129) F(Xl) :((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( B6636521 + E238CD99) mod 100000000)XOR 5EF47E1C) + 542F5D9E) mod 100000000 : ((989C32BA XOR 5EF47E1C) + 542F5D9E) mod 100000000 : 11A97AA44 mod 100000000 : 1A97AA44 Xr = F(Xl) XOR Xr = 1A97AA44 XOR 7E6301F6 = 64F4ABB2 i = 2 (FXl yg ke-50) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 64F4ABB2 Xr = F83C4681 Xl = Xl XOR P2 = 64F4ABB2 XOR EB742C6C = 8F8087DE Proses Jaringan Feistel a= 8F (143), b =80 (128), c=87 (135), d=DE (222) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( DB3222F8 + 5223A708) mod 100000000)XOR 763BD6EB) + 45E1D006) mod 100000000 : ((2D55CA00 XOR 763BD6EB) + 45E1D006) mod 100000000

13 (45) E2560B20 19F72FCE 6BB46DC1 6BCA6D88

14 (46) 6BCA6D88 6BB46DC1 E3E27413 96C37F02

15 (47) 96C37F02 E3E27413 E009E5E1 9C097357

16 (48) 9C097357 E009E5E1 681A3306 A53B9B79

Page 84: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

67

: A14FECF1 Xr = F(Xl) XOR Xr = A14FECF1 XOR F83C4681 = 5973AA70 Tabel 2.8 Hasil putaran i(FXl)= 6(54) sampai putaran i(FXl) = 16(64)

Proses P17 dan P18 Xl = 5350F843 XR = 4D6C23D0 Xr = 4D6C23D0 Xl = XL XOR P17 = 5350F843 XOR DB589A8F = 880862CC Xr = Xr XOR P18 = 4D6C23D0 XOR C82DB25D = 8541918D Tabel 2.9 Tabel

Perubahan PBox(7) dan PBox(8) 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)= 0C666EB0 PBox(10)= 79845A31 PBox(11)= F71A2999 PBox(12)= 75BD452A

PBox(13)= 89E266E1 PBox(14)= 8828199B PBox(15)= 76CA9AE3 PBox(16)= F4134051

PBox(17)= DB589A8F PBox(18)= C82DB25D

Mengganti PBox9 (P9) dan PBox10 (P10) i = 1 (FXl yang ke-65) Xl = 8541918D Xr = 880862CC Xl = Xl XOR P1 = 8541918D XOR 580BC7DA = DD4A5657 Proses Jaringan Feistel A= DD (221), b =4A (74), c=56 (86), d=57 (87) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( 2071B35E + B38BAE12) mod 100000000)XOR F2BCC18F) + 26DCF319) mod 100000000 : ((D3FD6170 XOR F2BCC18F) + 26DCF319) mod 100000000 : 481E9418

i (FXl) Xl Xr Xl=Xl XOR Pi

Xr=F(Xl) XOR Xr

3 (51) 5973AA70 8F8087DE 7FBFB8F6 6775CDDF

4 (52) 6775CDDF 7FBFB8F6 82985243 36E64F38

5 (53) 36E64F38 82985243 96D1CE63 20C11F51

6 (54) 20C11F51 96D1CE63 5EA21EA7 6EE47A96

7 (55) 6EE47A96 5EA21EA7 2F84CF58 BADAD759

8 (56) BADAD759 2F84CF58 17C0F296 24BF4E32

9 (57) 24BF4E32 17C0F296 28D92082 0EC2FF16

10 (58) 0EC2FF16 28D92082 7746A527 7C9907B9

11 (59) 7C9907B9 7746A527 8B832E20 F226AC0B

12 (60) F226AC0B 8B832E20 879BE921 9AA4297D

13 (61) 9AA4297D 879BE921 13464F9C 7805AF1B

14 (62) 7805AF1B 13464F9C F02DB680 6A0B519B

15 (63) 6A0B519B F02DB680 1CC1CB78 B97F6381

16 (64) B97F6381 1CC1CB78 4D6C23D0 5350F843

Page 85: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

68

Xr = F(Xl) XOR Xr = 481E9418 XOR 880862CC = C016F6D4 i = 2 (FXl yang ke-66) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = C016F6D4 Xr = DD4A5657 Xl = XL XOR P2 = C016F6D4 XOR EB742C6C = 2B62DAB8 Proses Jaringan Feistel A= 2B (43), b =62 (98), c=DA (218), d=B8 (184) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( 1141E8CE+ 81AC77D6) mod 100000000)XOR C3604C06) + 0115AF84) mod 100000000 : ((92EE60A4 XOR C3604C06) +E0EC6E0E) mod 100000000 : 1327A9AB0 mod 100000000 : 327A9AB0 Xr = F(Xl) XOR Xr = 327A9AB0 XOR DD4A5657 = EF30CCE7 Tabel 2.10 Hasil putaran i(FXl)= 3(67) sampai putaran i(FXl) = 16(80) PBox(17) dan PBox(18) XL = 18D6CD79 XR = 3D95C206 XL = XL XOR P17 = 18D6CD79 XOR DB589A8F = C38E57F6 XR = XR XOR P18 = 3D95C206 XOR C82DB25D = F5B8705B Tabel 2.11

Perubahan PBox (9) dan PBox (10) PBox(1 = 580BC7DA

PBox(2)= EB742C6C PBox(3)= 26CC1286 PBox(4)= E5ED9F9C

PBox(5)= A037815B PBox(6)= 7E6301F6 PBox(7)= 4160B5CE PBox(8)= AD1A25CF

PBox(9)= F5B8705B PBox(10)= C38E57F6 PBox(11)= F71A2999 PBox(12)= 75BD452A

PBox(13)= 89E266E1 PBox(14)= 8828199B PBox(15)= 76CA9AE3 PBox(16)= F4134051

i (FXl) Xl Xr Xl=Xl XOR Pi

XR=F(Xl) XOR Xr

3(67)

EF30CCE7 2B62DAB8 C9FCDE61 299C704B

4 (68)

299C704B C9FCDE61 CC71EFD7 C9FCDE61

5 (69)

C9FCDE61 CC71EFD7 33853EC8 6DC423BD

6 (70) 6DC423BD 33853EC8 13A7224B 3D881F05

7 (71) 3D881F05 13A7224B B8C98E88 FE6AAE1A

8 (72) FE6AAE1A B8C98E88 7662CCD6 D00FEC94

9 (73) D00FEC94 7662CCD6 DC698224 CA25EA30

10 (74) CA25EA30 DC698224 B3A1B001 039B58E4

11 (75) 039B58E4 B3A1B001 F481717D D2E9B1DB

12 (76) D2E9B1DB F481717D A754F4F1 7B85AFDE

13 (77) 7B85AFDE A754F4F1 F267C93F 40AA19CE

14 (78) 40AA19CE F267C93F C8820055 A4B17B35

15 (79) A4B17B35 C8820055 D27BE1D6 C9868257

16 (80) C9868257 D27BE1D6 3D95C206 18D6CD79

Page 86: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

69

PBox(17)= DB589A8F PBox(18)= C82DB25D

Mengganti PBox11 (P11) dan PBox12 (P12) i = 1 (FXl yang ke-81) Xl = F5B8705B Xr = C38E57F6 Xl = Xl XOR P1 = F5B8705B XOR 580BC7DA = ADB3B781 Proses Jaringan Feistel A= AD (173), b =B3 (179), c=B7 (183), d=81 (129) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( A4CB7E33 + 7858BA99) mod 100000000)XOR 46FCD9B9) + 542F5D9E) mod 100000000 : ((1D2438CC XOR 46FCD9B9) + 542F5D9E) mod 100000000 : B0083F13 Xr = F(XL) XOR Xr = B0083F13 XOR C38E57F6 = 738668E5 i = 2 (FXl yg ke-82) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 738668E5 Xr = ADB3B781 Xl = Xl XOR P2 = 738668E5 XOR EB742C6C = 98F24489 F(2) = 98F24489 A= 98 (152), b =F2 (242), c=44 (68), d=89 (137) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( 9E5C57BB + FDD56705) mod 100000000)XOR A62A4A56) + 4EB4E2CC)mod 100000000 : ((9C31BEC0 XOR A62A4A56) + 4EB4E2CC) mod 100000000 : 88D0D762 Xr = F(Xl) XOR Xr = 88D0D762 XOR ADB3B781 = 256360E3 Tabel 2.12 Hasil putaran i(FXl)= 3(83) sampai putaran i(FXl) = 16(96)

i (FXl) Xl Xr Xl=Xl XOR Pi

Xr=F(Xl) XOR Xr

3 (83) 256360E3 98F24489 03AF7265 40DE5CE8

4 (84) 40DE5CE8 03AF7265 A533C374 B28E2961

5 (85) B28E2961 A533C374 12B9A83A BCF91601

6 (86) BCF91601 12B9A83A C29A17F7 7F2944AB

7 (87) 7F2944AB C29A17F7 FA68D526 243092C6

8 (88) 243092C6 FA68D526 AC38F00A C6CBC8F0

9 (89) C6CBC8F0 AC38F00A 3373B8AB DB662BE2

10 (90) DB662BE2 3373B8AB 18E87C14 DD738EE5

11 (91) DD738EE5 18E87C14 2A69A77C 169B0F9E

12 (92) 169B0F9E 2A69A77C 63264AB4 362F6550

13 (93) 362F6550 63264AB4 BFCD03B1 3296FB76

14 (94) 3296FB76 BFCD03B1 BABEE2ED 692360CB

15 (95) 692360CB BABEE2ED 1FE9FA28 9EDDEAE6

Page 87: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

70

Proses P17 dan P18 XL = C536EDD4 XR = 6ACEAAB7 XL = XL XOR P17 = C536EDD4 XOR DB589A8F = 1E6E775B XR = XR XOR P18 = 6ACEAAB7 XOR C82DB25D = A2E318EA Tabel 2.13Perubahan PBox (11) dan PBox (12) PBox(1)=580BC7DA PBox(2)= EB742C6C PBox(3)= 26CC1286 PBox(4)= E5ED9F9C

PBox(5)= A037815B PBox(6)= 7E6301F6 PBox(7)= 4160B5CE PBox(8)= AD1A25CF

PBox(9)= F5B8705B PBox(10)= C38E57F6 PBox(11)= A2E318EA

PBox(12)= 1E6E775B

PBox(13)= 89E266E1 PBox(14)= 8828199B PBox(15)= 76CA9AE3 PBox(16)= F4134051

PBox(17)= DB589A8F PBox(18)= C82DB25D

Mengganti PBox13 (P13) dan PBox 14 (P14) i = 1 (FXl yang ke-97) Xl = A2E318EA Xr = 1E6E775B Xl = Xl XOR P1 = A2E318EA XOR 580BC7DA = FAE8DF30 Proses Jaringan Feistel A= FA (250), b =E8 (232), c=DF (223), d=30 (48) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( FF34052E + A6078084) mod 100000000)XOR 30DC7D62) + 80E4A915) mod 100000000 : ((A53B85B2 XOR 30DC7D62) + 80E4A915) mod 100000000 : 116CCA1E5 mod 100000000 : 16CCA1E5 Xr = F(Xl) XOR Xr = 16CCA1E5 XOR 1E6E775B = 8A2D6BE i = 2 (FXl yang ke-98) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 8A2D6BE Xr = FAE8DF30 Xl = Xl XOR P2 = 8A2D6BE XOR EB742C6C = E3D6FAD2 Proses Jaringan Feistel A= E3 (227), b =D6 (214), c=FA (250), d=D2 (210) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( 59DFA6AA + 47848A0B) mod 100000000)XOR 362ABFCE) + 93A83531) mod 100000000 : ((A16430B5 XOR 362ABFCE) + 93A83531) mod 100000000 : 12AF6C4AC mod 100000000

16 (96) 9EDDEAE6 1FE9FA28 6ACEAAB7 C536EDD4

Page 88: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

71

: 2AF6C4AC Xr = F(Xl) XOR XR = 2AF6C4AC XOR FAE8DF30 = D01E1B9C Tabel 2.14 Hasil putaran i(FXl)= 3(99) sampai putaran i(FXl) = 16(112) Proses PBox(17) dab PBox(16) Xl = 8845469A Xr = B9FC9DA7 Xl = Xl XOR P17 = 8845469A XOR DB589A8F = 531DDC15 Xr = XR XOR P18 = B9FC9DA7 XOR C82DB25D = 71D12FFA Tabel 2.15 Perubahan PBox (13) dan PBox (14) PBox(1) =580BC7DA PBox(2) = EB742C6C PBox(3) = 26CC1286 PBox(4) = E5ED9F9C

PBox(5) = A037815B PBox(6) = 7E6301F6 PBox(7) = 4160B5CE PBox(8) = AD1A25CF

PBox(9) = F5B8705B PBox(10)= C38E57F6 PBox(11)= A2E318EA

PBox(12)= 1E6E775B

PBox(13)= 71D12FFA PBox(14)= 531DDC15 PBox(15)= 76CA9AE3 PBox(16)= F4134051

PBox(17)= DB589A8F PBox(18)= C82DB25D

Mengganti PBox(15) dan PBox(16) i = 1 (FXl yg ke-113)

i (FXl) XL XR XL=XL Xor

Pi XR=f(XL) xor

XR

3 (99) D01E1B9C E3D6FAD2 F6D2091A 6B02519B

4 (100)

6B02519B F6D2091A 8EEFCE07 BE21EB83

5 (1001) BE21EB83 8EEFCE07 1E166AD8 32A37FA2

6 (102) 32A37FA2 1E166AD8 4CC07E54 FB7E8AFC

7 (103) FB7E8AFC 4CC07E54 7E3F1B71 FF7BCD98

8 (104) FF7BCD98 7E3F1B71 7773AF54 5977C7DF

9 (105) 5977C7DF 7773AF54 ACCFB784 BAC23574

10 (106) BAC23574 ACCFB784 794C6282 FBD2F255

11 (107) FBD2F255 794C6282 5931EABF 61D04FED

12 (108) 61D04FED 5931EABF 7FBE38B6 3E6E4536

13 (109) 3E6E4536 7FBE38B6 B78C23D7 792853BB

14 (110) 792853BB B78C23D7 F1004A20 FEBAC69E

15 (111) FEBAC69E F1004A20 88705C7D 4DEFDDF6

16 (112) 4DEFDDF6 88705C7D B9FC9DA7 8845469A

Page 89: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

72

Xl =71D12FFA Xr =531DDC15 Xl = Xl XOR P1 = 71D12FFA XOR 580BC7DA = 29DAE820 Proses Jaringan Feistel A= 29 (41), b =DA (218), c=E8 (232), d=20 (32) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( 2AAB10B6 + 1462B174) mod 100000000)XOR 6F05E409) + C089C2B8) mod 100000000 : ((3F0DC22A XOR 6F05E409) + C089C2B8) mod 100000000 : 11091E8DB mod 100000000 : 1091E8DB Xr = F(XL) XOR Xr = 1091E8DB XOR 531DDC15 = 438C34CE i = 2 (FXl yang ke-114) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 438C34CE Xr =29DAE820 Xl = Xl XOR P2 = 438C34CE XOR EB742C6C = A8F818A2 Proses Jaringan Feistel A= A8 (168), b =F8 (248), c=18 (24), d=A2 (162) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( 9A53E479 + C5C43465) mod 100000000)XOR 96EB27B3) + D0DADECB) mod 100000000 : ((601818DE XOR 96EB27B3) + D0DADECB) mod 100000000 : 1C7CE1E38 mod 100000000 : C7CE1E38 Xr = F(Xl) XOR Xr = C7CE1E38 XOR 29DAE820 = EE14F618 Tabel 2.16 Hasil putaran i(FXl)= 3(115) sampai putaran i(FXl) = 16(128) Proses i(17) dan i(18) Xl = 5418F65D Xr = 43F93F97 Xl = Xl XOR P17

= 5418F65D XOR DB589A8F

= 8F406CD2 Xr = Xr XOR P18

= 43F93F97 XOR C82DB25D

= 8BD48DCA

Tabel 2.17 Perubahan PBox (15) dan PBox (16)

i (FXl) Xl Xr Xl=Xl XOR Pi

Xr=F(Xl) XOR Xl

3 (115) EE14F618 A8F818A2 C8D8E49E 8CC06FBE

4 (116) 8CC06FBE C8D8E49E 692DF022 4FD133B2

5 (117) 4FD133B2 692DF022 EFE6B2E9 2DC32875

6 (118) 2DC32875 EFE6B2E9 53A02983 3CDFC3C7

7 (119) 3CDFC3C7 53A02983 B99E524A 506C20F0

8 (120) 506C20F0 B99E524A D864423C E5D70027

9 (121) E5D70027 D864423C 106F707C 381B8897

10 (122) 381B8897 106F707C FB95DF61 A8033B5A

11 (123) A8033B5A FB95DF61 0AE023B0 EC2EDE9A

12 (124) EC2EDE9A 0AE023B0 F240A9C1 DFAE9ADB

13 (125) DFAE9ADB F240A9C1 AE7FB521 0572980A

14 (126) 0572980A AE7FB521 566F441F E2A88A56

15 (127) E2A88A56 566F441F 946210B5 B7EA7FC6

16 (128) B7EA7FC6 946210B5 43F93F97 5418F65D

Page 90: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

73

PBox(1) =580BC7DA PBox(2)= EB742C6C PBox(3)= 26CC1286 PBox(4)= E5ED9F9C

PBox(5)= A037815B PBox(6)= 7E6301F6 PBox(7)= 4160B5CE PBox(8)= AD1A25CF

PBox(9)= F5B8705B PBox(10)= C38E57F6 PBox(11)= A2E318EA

PBox(12)= 1E6E775B

PBox(13)= 71D12FFA PBox(14)= 531DDC15 PBox(15)= 8BD48DCA PBox(16)= 8F406CD2

PBox(17)= DB589A8F PBox(18)= C82DB25D

Mengganti PBox17 (P17) dan PBox 18 (P18) i = 1 (FXl yang ke-129) Xl = 8BD48DCA Xr =8F406CD2 Xl = Xl XOR P1 = 8BD48DCA XOR 580BC7DA = D3DF4A10 Proses Jaringan Feistel A= D3 (211), b =DF (223), c=4A (74), d=10 (16) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( 211A1477 + 233F7061) mod 100000000)XOR 80BB155C) + 5748AB2F) mod 100000000 : ((445984D8 XOR 80BB155C) + 5748AB2F) mod 100000000 : 11C2B3CB3 mod 100000000 : 1C2B3CB3 Xr = F(Xl) XOR Xr = 1C2B3CB3 XOR 8F406CD2 = 936B5061 i = 2 (FXl yg ke-130) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 936B5061 Xr = D3DF4A10 Xl = Xl XOR P2 = 936B5061 XOR EB742C6C = 781F7C0D Proses Jaringan Feistel A= 78 (120), b =1F (31), c=7C (124), d=0D (13) F(Xl) : ((((s1a+s2b) mod 2^32) xor s3c) + s4d) mod 2^32 :(((( 68FB6FAF + 6B6A70A1) MOD 100000000)XOR F1290DC7) + 21A19045) MOD 100000000 : ((D465E050 XOR F1290DC7) + 21A19045) MOD 100000000 : 46EE7DDC Xr = F(Xl) XOR Xr = 46EE7DDC XOR D3DF4A10 = 953137CC Tabel 2.18 Hasil putaran i(FXl)= 6(134) sampai putaran i(FXl) = 16(144)

i (FXl) Xl Xr Xl=Xl XOR Pi

Xr=F(Xl) XOR Xr

3 (131) 953137CC 781F7C0D B3FD254A 32A383BB

4 (132) 32A383BB B3FD254A D74E1C27 ADB1E22C

5 (133) ADB1E22C D74E1C27 0D866377 EF533EF4

6 (134) EF533EF4 0D866377 91303F02 C7A1020B

7 (135) C7A1020B 91303F02 42E09386 ADE4B837

8 (136) ADE4B837 42E09386 25ECDAFB 10089651

9 (137) 10089651 25ECDAFB E5B0E60A C74C187C

10 (138) C74C187C E5B0E60A 04C24F8A 977F344D

Page 91: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

74

Proses i = 17 dan i = 18 Xl = B810F8F8 Xr = BE518167 Xl = Xl XOR P17 = B810F8F8 XOR DB589A8F = 63486277 Xr = Xr XOR P18 = BE518167 XOR C82DB25D = 767C333A Tabel 2.19 Perubahan PBox 17 dan PBox 18 PBox(1 =580BC7DA PBox(2)= EB742C6C PBox(3)= 26CC1286 PBox(4)= E5ED9F9C

PBox(5) = A037815B PBox(6)= 7E6301F6 PBox(7)= 4160B5CE PBox(8)= AD1A25CF

PBox(9)= F5B8705B PBox(10)= C38E57F6 PBox(11)= A2E318EA

PBox(12)= 1E6E775B

PBox(13)= 71D12FFA PBox(14)= 531DDC15 PBox(15)= 8BD48DCA PBox(16)= 8F406CD2

PBox(17)= 767C333A PBox(18)= 63486277

Proses perubahan SBox i = 1 (FXl yg ke-145) Xl = 767C333A Xr = 63486277 Xl = XL XOR P1 = 767C333A XOR 580BC7DA = 2E77F4E0 Proses jaringan Feistel a= 2E (46), b = 77 (119), c=F4 (244), d=E0 (224) Output: ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32

:(((( B3EE1411 + 9C10B36A) mod 100000000)XOR 1E50EF5E) + C9AA53FD) mod 100000000 : ((4FFEC77B XOR 1E50EF5E) + C9AA53FD) MOD 100000000 : 1B587C22 Xr = F(Xl) XOR Xr = 1B587C22 XOR 63486277 = 78101E55 i = 2 (FXl yg ke-146) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 78101E55 Xr = 2E77F4E0 Xl = XL XOR P2 = 78101E55 XOR EB742C6C = 93643239 Proses jaringan Feistel a= 93 (147), b = 64 (100), c=32 (50), d= 39 (57) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32

:(((( AD0552AB + 043556F1) mod 100000000)XOR 26A36631) + 017DA67D) mod 100000000 : ((B13AA99C XOR 26A36631) + 017DA67D) MOD 100000000 : 9917762A Xr = F(Xl) XOR Xr

11(139) 977F344D 04C24F8A 359C2CA7 5E02BCF6

12(140) 5E02BCF6 359C2CA7 406CCBAD B56C75A0

13(141) B56C75A0 406CCBAD C4BD5A5A FF08348E

14 (142) FF08348E C4BD5A5A AC15E89B 9A5ED8D5

15 (143) 9A5ED8D5 AC15E89B 118A551F 3111EDB5

16 (144) 3111EDB5 118A551F BE518167 B810F8F8

Page 92: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

75

= 9917762A XOR 2E77F4E0 = B76082CA Tabel 2.20 Proses SBox i(FXl) = 3(147) sampai i(FXl) = 6(160) Proses P17 Dan P18 XL = 9376F1EB XR = D0D6698F XL = XL XOR P17 = 9376F1EB XOR 767C333A = E50AC2D1 XR = XR XOR P18 = D0D6698F XOR 63486277 = B39E0BF8 Proses SBox1 =128 iterasi, SBox2 = 128 itersi, SBox3 = 128iterasi dan SBox4 = 128itersi . Total keseluruhan SBox adalah 512 iterasi dengan proses sama langkah di atas. Proses Enkripsi Plaintext : MATAHARI heksa dari plaintext adalah 4D 41 54 41 48 41 52 49 i = 1 (FXl yang ke-1) Xl = 4D415441 Xr = 48415249 Xl = Xl XOR P1 = 4D415441 XOR 580BC7DA = 154A939B Proses Jaringan Feistel A= 15 (21), b = 4A (74), c=93 (147), d=9B (155) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( A63ACF43 + 9B41DFAF) mod 100000000)XOR 504D135B) + E06402B0) mod 100000000 : ((417CAEF2 XOR 504D135B) + E06402B0) mod 100000000 : F195C059 Xr = F(Xl) XOR Xr = F195C059 XOR 48415249 = B9D49210 i = 2 (FXl yang ke-2) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = B9D49210

i (FXl) Xl Xr Xl=Xl XOR Pi

Xr=F(Xl) XOR Xr

3 (147) B76082CA 93643239 91AC904C 27F42D55

4 (148) 27F42D55 91AC904C C219B2C9 50A39C6C

5 (149) 50A39C6C C219B2C9 F0941D37 7F12D325

6 (150) 7F12D325 F0941D37 0171D2D3 6D5F2208

7(151) 6D5F2208 0171D2D3 E81EB385 1EFE6B4C

8 (152) 1EFE6B4C E81EB385 96F60980 B453358B

9 (153) B453358B 96F60980 41EB45D0 FF6415F6

10 (154) FF6415F6 41EB45D0 3CEA4200 8143DCA9

11 (155) 8143DCA9 3CEA4200 23A0C443 C0C21F54

12 (156) C0C21F54 23A0C443 DEAC680F 17649B87

13 (157) 17649B87 DEAC680F 66B5B47D 800044DE

14 (158) 800044DE 66B5B47D D31D98CB 8E6024F5

15 (159) 8E6024F5 D31D98CB 05B4A93F 5F96055D

16 (160) 5F96055D 05B4A93F D0D6698F 9376F1EB

Page 93: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

76

Xr = 154A939B Xl = Xl XOR P2 = B9D49210 XOR EB742C6C = 52A0BE7C Proses Jaringan Feistel A= 52 (82), b = A0 (160), c=BE (190), d=7C (124) F(Xl) : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32

:(((( 2C163025 + 5E50E61B) mod 100000000)XOR 3F8B177D) + 691898F3) mod 100000000 : ((8A671640 XOR 3F8B177D) + 691898F3) mod 100000000 : 11F049A30 mod 100000000 : 1F049A30 Xr = F(Xl) XOR Xr = 1F049A30 XOR 154A939B = 0A4E09AB Tabel 2.20 Hasil putaran i(FXl)= 6(6) sampai putaran i(FXl) = 16(16) Proses P17 dan P18 Xl = EA8065D0 Xr = 900BFC76 Xr = Xr XOR P17 = 900BFC76 XOR 767C333A = E677CF4C Xl = Xl XOR P18 = EA8065D0 XOR 63486277 = 89C807A7 Proses Dekripsi i = 1 (FXl yang ke- 18) Xl = 89C807A7 Xr = E677CF4C Xl = Xl XOR P18 = 89C807A7 XOR 63486277 = EA8065D0 Proses Jaringan Feistel a= EA (234), b =80 (128), c=65 (101), d=D0 (208) FXl : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32

:((((E1D2CE49 + FD6561C5) mod 100000000)XOR C65D8811) + 923FDE9E) mod 100000000 : ((DF38300E XOR C65D8811) + 923FDE9E) mod 100000000 : ABA596BD XR = F(Xl) XOR XR = ABA596BD XOR E677CF4C = 4DD259F1 i = 2 (FXl yang ke-17) Xl ditukar menjadi Xr dan Xr menjadi Xl Xl = 4DD259F1 Xr = EA8065D0 Xl = Xl XOR P17 = 4DD259F1 XOR 767C333A = 3BAE6ACB Proses Jaringan Feistel a= 3B (59), b =AE (174), c=6A (106), d=CB (203)

i (FXl) Xl Xr Xl=Xl XOR Pi

Xr=F(Xl) XOR Xr

3 (3) 0A4E09AB 52A0BE7C 2C821B2D 47C36103

4 (4) 47C36103 2C821B2D A22EFE9F 225914FB

5 (5) 225914FB A22EFE9F 826E95A0 A7D07973

6 (6) A7D07973 826E95A0 D9B37885 BE0E8294

7(7) BE0E8294 D9B37885 3B4F1319 6C133D33

8 (8) 0172383A 3B4F1319 897A5AF6 7874CB52

9 (9) 7874CB52

897A5AF6 8DCCBB09 798E59A0

10 (10) 798E59A0 8DCCBB09 BA000E56 FCD9E535

11 (11) FCD9E535 BA000E56 5E3AFDDF 75E9A224

12 (12) 75E9A224 5E3AFDDF 6B87D57F E6F2D9AC

13 (13) E6F2D9AC 6B87D57F 9723F656 4D2E9D67

14 (14) 4D2E9D67 9723F656 1E334172 B07AE701

15 (15) B07AE701 1E334172 3BAE6ACB 65C00902

16 (16) 65C00902 3BAE6ACB EA8065D0 900BFC76

Page 94: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

77

FXl : ((((s1a+s2b) mod 2^32) XOR s3c) + s4d) mod 2^32 :(((( 800320BD + 54A5919F) mod 100000000)XOR 85D0D2BC) + 2A7AE790) mod 100000000

: ((D4A8B25C XOR 85D0D2BC) + 2A7AE790) mod 100000000 : 7BF34870 Xr = F(Xl) XOR Xr = 7BF34870 XOR EA8065D0 = 91732DA0 Tabel 2.21 Hasil putaran i(FXl)= 6(13) sampai putaran i(FXl) = 14(3)

Proses i = 1 dan i = 2 untuk proses dekripsi Xl = 154A939B Xr = A3357E25 Xr = Xr XOR P2 = A3357E25 XOR EB742C6C = 48415249 Xl = Xl XOR P1 = 154A939B XOR 580BC7DA = 4D415441 Maka plaintext dapat diperoleh kembali 4D 41 54 41 48 41 52 49

Perubahan SBox

SBox(0,0) = D1310BA6, SBox(0,1) = 98DFB5AC, SBox(0,2) = 2FFD72DB, SBox(0,3) = D01ADFB7 SBox(0,4) = B8E1AFED, SBox(0,5) = 6A267E96, SBox(0,6) = BA7C9045, SBox(0,7) = F12C7F99 SBox(0,8) = 24A19947, SBox(0,9) = B3916CF7, SBox(0,10) = 0801F2E2, SBox(0,11) = 858EFC16 SBox(0,12) = 636920D8, SBox(0,13) = 71574E69, SBox(0,14) = A458FEA3, SBox(0,15) = F4933D7E SBox(0,16) = 0D95748F, SBox(0,17) = 728EB658, SBox(0,18) = 718BCD58, SBox(0,19) = 82154AEE SBox(0,20) = 7B54A41D, SBox(0,21) = C25A59B5, SBox(0,22) = 9C30D539, SBox(0,23) = 2AF26013

i (FXl) Xl Xr Xl=Xl XOR Pi

Xr=F(Xl) XOR Xr

3(16) 91732DA0 3BAE6ACB 1E334172 1CF77B9C

4(17) 1CF77B9C 1E334172 9723F656 389A096A

5 (18) 389A096A 9723F656 6B87D57F 2FEBD225

6 (13) 2FEBD225 6B87D57F 5E3AFDDF A46E790D

7 (12) A46E790D 5E3AFDDF BA000E56 2F2FA3E3

8 (11) 2F2FA3E3 BA000E56 8DCCBB09 4AF40D00

9 (10)

4AF40D00 8DCCBB09 897A5AF6 CEF76342

10 (9) CEF76342 897A5AF6 3B4F1319 51BB1A49

11 (8) 51BB1A49 3B4F1319 D9B37885 072F042D

12 (7) 072F042D D9B37885 826E95A0 DC4DFF69

13 (6) DC4DFF69 826E95A0 A22EFE9F 8CB59A76

12 (5) 8CB59A76 A22EFE9F 2C821B2D B74D21E0

13 (4) B74D21E0 2C821B2D 52A0BE7C 3386811D

14 (3) 3386811D 52A0BE7C 154A939B A3357E25

Page 95: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

78

SBox(0,24) = C5D1B023, SBox(0,25) = 286085F0, SBox(0,26) = CA417918, SBox(0,27) = B8DB38EF SBox(0,28) = 8E79DCB0, SBox(0,29) = 603A180E, SBox(0,30) = 6C9E0E8B, SBox(0,31) = B01E8A3E SBox(0,32) = D71577C1, SBox(0,33) = BD314B27, SBox(0,34) = 78AF2FDA, SBox(0,35) = 55605C60 SBox(0,36) = E65525F3, SBox(0,37) = AA55AB94, SBox(0,38) = 57489862, SBox(0,39) = 63E81440 SBox(0,40) = 55CA396A, SBox(0,41) = 2AAB10B6, SBox(0,42) = B4CC5C34, SBox(0,43) = 1141E8CE SBox(0,44) = A15486AF, SBox(0,45) = 7C72E993, SBox(0,46) = B3EE1411, SBox(0,47) = 636FBC2A SBox(0,48) = 2BA9C55D, SBox(0,49) = 741831F6, SBox(0,50) = CE5C3E16, SBox(0,51) = 9B87931E SBox(0,52) = AFD6BA33, SBox(0,53) = 6C24CF5C, SBox(0,54) = 7A325381, SBox(0,55) = 28958677 SBox(0,56) = 3B8F4898, SBox(0,57) = 6B4BB9AF, SBox(0,58) = C4BFE81B, SBox(0,59) = 66282193 SBox(0,60) = 61D809CC, SBox(0,61) = FB21A991, SBox(0,62) = 487CAC60, SBox(0,63) = 5DEC8032 SBox(0,64) = EF845D5D, SBox(0,65) = E98575B1, SBox(0,66) = DC262302, SBox(0,67) = EB651B88 SBox(0,68) = 23893E81, SBox(0,69) = D396ACC5, SBox(0,70) = 0F6D6FF3, SBox(0,71) = 83F44239 SBox(0,72) = 2E0B4482, SBox(0,73) = A4842004, SBox(0,74) = 69C8F04A, SBox(0,75) = 9E1F9B5E SBox(0,76) = 21C66842, SBox(0,77) = F6E96C9A, SBox(0,78) = 670C9C61, SBox(0,79) = ABD388F0 SBox(0,80) = 6A51A0D2, SBox(0,81) = D8542F68, SBox(0,82) = 960FA728, SBox(0,83) = AB5133A3 SBox(0,84) = 6EEF0B6C, SBox(0,85) = 137A3BE4, SBox(0,86) = BA3BF050, SBox(0,87) = 7EFB2A98 SBox(0,88) = A1F1651D, SBox(0,89) = 39AF0176, SBox(0,90) = 66CA593E, SBox(0,91) = 82430E88 SBox(0,92) = 8CEE8619, SBox(0,93) = 456F9FB4, SBox(0,94) = 7D84A5C3, SBox(0,95) = 3B8B5EBE SBox(0,96) = E06F75D8, SBox(0,97) = 85C12073, SBox(0,98) = 401A449F, SBox(0,99) = 56C16AA6 SBox(0,100)= 4ED3AA62, SBox(0,101)= 363F7706, SBox(0,102)= 1BFEDF72, SBox(0,103)= 429B023D SBox(0,104)= 37D0D724, SBox(0,105)= D00A1248, SBox(0,106)= DB0FEAD3, SBox(0,107)= 49F1C09B SBox(0,108)= 075372C9, SBox(0,109)= 80991B7B, SBox(0,110)= 25D479D8, SBox(0,111)= F6E8DEF7 SBox(0,112)= E3FE501A, SBox(0,113)= B6794C3B, SBox(0,114)= 976CE0BD, SBox(0,115)= 04C006BA SBox(0,116)= C1A94FB6, SBox(0,117)= 409F60C4, SBox(0,118)= 5E5C9EC2, SBox(0,119)= 196A2463 SBox(0,120)= 68FB6FAF, SBox(0,121)= 3E6C53B5, SBox(0,122)= 1339B2EB, SBox(0,123)= 3B52EC6F SBox(0,124)= 6DFC511F, SBox(0,125)= 9B30952C, SBox(0,126)= CC814544, SBox(0,127)= AF5EBD09 SBox(0,128)= BEE3D004, SBox(0,129)= DE334AFD, SBox(0,130)= 660F2807, SBox(0,131)= 192E4BB3 SBox(0,132)= C0CBA857, SBox(0,133)= 45C8740F, SBox(0,134)= D20B5F39, SBox(0,135)= B9D3FBDB SBox(0,136)= 5579C0BD, SBox(0,137)= 1A60320A, SBox(0,138)= D6A100C6, SBox(0,139)= 402C7279 SBox(0,140)= 679F25FE, SBox(0,141)= FB1FA3CC, SBox(0,142)= 8EA5E9F8, SBox(0,143)= DB3222F8 SBox(0,144)= 3C7516DF, SBox(0,145)= FD616B15, SBox(0,146)= 2F501EC8, SBox(0,147)= AD0552AB SBox(0,148)= 323DB5FA, SBox(0,149)= FD238760, SBox(0,150)= 53317B48, SBox(0,151)= 3E00DF82 SBox(0,152)= 9E5C57BB, SBox(0,153)= CA6F8CA0, SBox(0,154)= 1A87562E, SBox(0,155)= DF1769DB SBox(0,156)= D542A8F6, SBox(0,157)= 287EFFC3, SBox(0,158)= AC6732C6, SBox(0,159)= 8C4F5573 SBox(0,160)= 695B27B0, SBox(0,161)= BBCA58C8, SBox(0,162)= E1FFA35D, SBox(0,163)= B8F011A0 SBox(0,164)= 10FA3D98, SBox(0,165)= FD2183B8, SBox(0,166)= 4AFCB56C, SBox(0,167)= 2DD1D35B SBox(0,168)= 9A53E479, SBox(0,169)= B6F84565, SBox(0,170)= D28E49BC, SBox(0,171)= 4BFB9790 SBox(0,172)= E1DDF2DA, SBox(0,173)= A4CB7E33, SBox(0,174)= 62FB1341, SBox(0,175)= CEE4C6E8 SBox(0,176)= EF20CADA, SBox(0,177)= 36774C01, SBox(0,178)= D07E9EFE, SBox(0,179)= 2BF11FB4 SBox(0,180)= 95DBDA4D, SBox(0,181)= AE909198, SBox(0,182)= EAAD8E71, SBox(0,183)= 6B93D5A0 SBox(0,184)= D08ED1D0, SBox(0,185)= AFC725E0, SBox(0,186)= 8E3C5B2F, SBox(0,187)= 8E7594B7 SBox(0,188)= 8FF6E2FB, SBox(0,189)= F2122B64, SBox(0,190)= 8888B812, SBox(0,191)= 900DF01C SBox(0,192)= 4FAD5EA0, SBox(0,193)= 688FC31C, SBox(0,194)= D1CFF191, SBox(0,195)= B3A8C1AD SBox(0,196)= 2F2F2218, SBox(0,197)= BE0E1777, SBox(0,198)= EA752DFE, SBox(0,199)= 8B021FA1 SBox(0,200)= E5A0CC0F, SBox(0,201)= B56F74E8, SBox(0,202)= 18ACF3D6, SBox(0,203)= CE89E299 SBox(0,204)= B4A84FE0, SBox(0,205)= FD13E0B7, SBox(0,206)= 7CC43B81, SBox(0,207)= D2ADA8D9 SBox(0,208)= 165FA266, SBox(0,209)= 80957705, SBox(0,210)= 93CC7314, SBox(0,211)= 211A1477 SBox(0,212)= E6AD2065, SBox(0,213)= 77B5FA86, SBox(0,214)= C75442F5, SBox(0,215)= FB9D35CF SBox(0,216)= EBCDAF0C, SBox(0,217)= 7B3E89A0, SBox(0,218)= D6411BD3, SBox(0,219)= AE1E7E49 SBox(0,220)= 00250E2D, SBox(0,221)= 2071B35E, SBox(0,222)= 226800BB, SBox(0,223)= 57B8E0AF SBox(0,224)= 2464369B, SBox(0,225)= F009B91E, SBox(0,226)= 5563911D, SBox(0,227)= 59DFA6AA SBox(0,228)= 78C14389, SBox(0,229)= D95A537F, SBox(0,230)= 207D5BA2, SBox(0,231)= 02E5B9C5 SBox(0,232)= 83260376, SBox(0,233)= 6295CFA9, SBox(0,234)= 11C81968, SBox(0,235)= 4E734A41 SBox(0,236)= B3472DCA, SBox(0,237)= 7B14A94A, SBox(0,238)= 1B510052, SBox(0,239)= 9A532915 SBox(0,240)= D60F573F, SBox(0,241)= BC9BC6E4, SBox(0,242)= 2B60A476, SBox(0,243)= 81E67400 SBox(0,244)= 08BA6FB5, SBox(0,245)= 571BE91F, SBox(0,246)= F296EC6B, SBox(0,247)= 2A0DD915 SBox(0,248)= B6636521, SBox(0,249)= E7B9F9B6, SBox(0,250)= FF34052E, SBox(0,251)= C5855664 SBox(0,252)= 53B02D5D, SBox(0,253)= A99F8FA1, SBox(0,254)= 08BA4799, SBox(0,255)= 6E85076A SBox(1,0) = 4B7A70E9, SBox(1,1) = B5B32944, SBox(1,2) = DB75092E, SBox(1,3) = C4192623 SBox(1,4) = AD6EA6B0, SBox(1,5) = 49A7DF7D, SBox(1,6) = 9CEE60B8, SBox(1,7) = 8FEDB266 SBox(1,8) = ECAA8C71, SBox(1,9) = 699A17FF, SBox(1,10) = 5664526C, SBox(1,11) = C2B19EE1 SBox(1,12) = 193602A5, SBox(1,13) = 75094C29, SBox(1,14) = A0591340, SBox(1,15) = E4183A3E SBox(1,16) = 3F54989A, SBox(1,17) = 5B429D65, SBox(1,18) = 6B8FE4D6, SBox(1,19) = 99F73FD6 SBox(1,20) = A1D29C07, SBox(1,21) = EFE830F5, SBox(1,22) = 4D2D38E6, SBox(1,23) = F0255DC1 SBox(1,24) = 4CDD2086, SBox(1,25) = 8470EB26, SBox(1,26) = 6382E9C6, SBox(1,27) = 021ECC5E SBox(1,28) = 09686B3F, SBox(1,29) = 3EBAEFC9, SBox(1,30) = 3C971814, SBox(1,31) = 6B6A70A1 SBox(1,32) = 687F3584, SBox(1,33) = 52A0E286, SBox(1,34) = B79C5305, SBox(1,35) = AA500737 SBox(1,36) = 3E07841C, SBox(1,37) = 7FDEAE5C, SBox(1,38) = 8E7D44EC, SBox(1,39) = 5716F2B8 SBox(1,40) = B03ADA37, SBox(1,41) = F0500C0D, SBox(1,42) = F01C1F04, SBox(1,43) = 0200B3FF SBox(1,44) = AE0CF51A, SBox(1,45) = 3CB574B2, SBox(1,46) = 25837A58, SBox(1,47) = DC0921BD SBox(1,48) = D19113F9, SBox(1,49) = 7CA92FF6, SBox(1,50) = 94324773, SBox(1,51) = 22F54701 SBox(1,52) = 3AE5E581, SBox(1,53) = 37C2DADC, SBox(1,54) = C8B57634, SBox(1,55) = 9AF3DDA7 SBox(1,56) = A9446146, SBox(1,57) = 0FD0030E, SBox(1,58) = ECC8C73E, SBox(1,59) = A4751E41 SBox(1,60) = E238CD99, SBox(1,61) = 3BEA0E2F, SBox(1,62) = 3280BBA1, SBox(1,63) = 183EB331

Page 96: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

79

SBox(1,64) = 4E548B38, SBox(1,65) = 4F6DB908, SBox(1,66) = 6F420D03, SBox(1,67) = F60A04BF SBox(1,68) = 2CB81290, SBox(1,69) = 24977C79, SBox(1,70) = 5679B072, SBox(1,71) = BCAF89AF SBox(1,72) = DE9A771F, SBox(1,73) = D9930810, SBox(1,74) = B38BAE12, SBox(1,75) = DCCF3F2E SBox(1,76) = 5512721F, SBox(1,77) = 2E6B7124, SBox(1,78) = 501ADDE6, SBox(1,79) = 9F84CD87 SBox(1,80) = 7A584718, SBox(1,81) = 7408DA17, SBox(1,82) = BC9F9ABC, SBox(1,83) = E94B7D8C SBox(1,84) = EC7AEC3A, SBox(1,85) = DB851DFA, SBox(1,86) = 63094366, SBox(1,87) = C464C3D2 SBox(1,88) = EF1C1847, SBox(1,89) = 3215D908, SBox(1,90) = DD433B37, SBox(1,91) = 24C2BA16 SBox(1,92) = 12A14D43, SBox(1,93) = 2A65C451, SBox(1,94) = 50940002, SBox(1,95) = 133AE4DD SBox(1,96) = 71DFF89E, SBox(1,97) = 10314E55, SBox(1,98) = 81AC77D6, SBox(1,99) = 5F11199B SBox(1,100)= 043556F1, SBox(1,101)= D7A3C76B, SBox(1,102)= 3C11183B, SBox(1,103)= 5924A509 SBox(1,104)= F28FE6ED, SBox(1,105)= 97F1FBFA, SBox(1,106)= 9EBABF2C, SBox(1,107)= 1E153C6E SBox(1,108)= 86E34570, SBox(1,109)= EAE96FB1, SBox(1,110)= 860E5E0A, SBox(1,111)= 5A3E2AB3 SBox(1,112)= 771FE71C, SBox(1,113)= 4E3D06FA, SBox(1,114)= 2965DCB9, SBox(1,115)= 99E71D0F SBox(1,116)= 803E89D6, SBox(1,117)= 5266C825, SBox(1,118)= 2E4CC978, SBox(1,119)= 9C10B36A SBox(1,120)= C6150EBA, SBox(1,121)= 94E2EA78, SBox(1,122)= A5FC3C53, SBox(1,123)= 1E0A2DF4 SBox(1,124)= F2F74EA7, SBox(1,125)= 361D2B3D, SBox(1,126)= 1939260F, SBox(1,127)= 19C27960 SBox(1,128)= 5223A708, SBox(1,129)= F71312B6, SBox(1,130)= EBADFE6E, SBox(1,131)= EAC31F66 SBox(1,132)= E3BC4595, SBox(1,133)= A67BC883, SBox(1,134)= B17F37D1, SBox(1,135)= 018CFF28 SBox(1,136)= C332DDEF, SBox(1,137)= BE6C5AA5, SBox(1,138)= 65582185, SBox(1,139)= 68AB9802 SBox(1,140)= EECEA50F, SBox(1,141)= DB2F953B, SBox(1,142)= 2AEF7DAD, SBox(1,143)= 5B6E2F84 SBox(1,144)= 1521B628, SBox(1,145)= 29076170, SBox(1,146)= ECDD4775, SBox(1,147)= 619F1510 SBox(1,148)= 13CCA830, SBox(1,149)= EB61BD96, SBox(1,150)= 0334FE1E, SBox(1,151)= AA0363CF SBox(1,152)= B5735C90, SBox(1,153)= 4C70A239, SBox(1,154)= D59E9E0B, SBox(1,155)= CBAADE14 SBox(1,156)= EECC86BC, SBox(1,157)= 60622CA7, SBox(1,158)= 9CAB5CAB, SBox(1,159)= B2F3846E SBox(1,160)= 648B1EAF, SBox(1,161)= 19BDF0CA, SBox(1,162)= A02369B9, SBox(1,163)= 655ABB50 SBox(1,164)= 40685A32, SBox(1,165)= 3C2AB4B3, SBox(1,166)= 319EE9D5, SBox(1,167)= C021B8F7 SBox(1,168)= 9B540B19, SBox(1,169)= 875FA099, SBox(1,170)= 95F7997E, SBox(1,171)= 623D7DA8 SBox(1,172)= F837889A, SBox(1,173)= 97E32D77, SBox(1,174)= 11ED935F, SBox(1,175)= 16681281 SBox(1,176)= 0E358829, SBox(1,177)= C7E61FD6, SBox(1,178)= 96DEDFA1, SBox(1,179)= 7858BA99 SBox(1,180)= 57F584A5, SBox(1,181)= 1B227263, SBox(1,182)= 9B83C3FF, SBox(1,183)= 1AC24696 SBox(1,184)= CDB30AEB, SBox(1,185)= 532E3054, SBox(1,186)= 8FD948E4, SBox(1,187)= 6DBC3128 SBox(1,188)= 58EBF2EF, SBox(1,189)= 34C6FFEA, SBox(1,190)= FE28ED61, SBox(1,191)= EE7C3C73 SBox(1,192)= 5D4A14D9, SBox(1,193)= E864B7E3, SBox(1,194)= 42105D14, SBox(1,195)= 203E13E0 SBox(1,196)= 45EEE2B6, SBox(1,197)= A3AAABEA, SBox(1,198)= DB6C4F15, SBox(1,199)= FACB4FD0 SBox(1,200)= C742F442, SBox(1,201)= EF6ABBB5, SBox(1,202)= 654F3B1D, SBox(1,203)= 41CD2105 SBox(1,204)= D81E799E, SBox(1,205)= 86854DC7, SBox(1,206)= E44B476A, SBox(1,207)= 3D816250 SBox(1,208)= CF62A1F2, SBox(1,209)= 5B8D2646, SBox(1,210)= FC8883A0, SBox(1,211)= C1C7B6A3 SBox(1,212)= 7F1524C3, SBox(1,213)= 69CB7492, SBox(1,214)= 47848A0B, SBox(1,215)= 5692B285 SBox(1,216)= 095BBF00, SBox(1,217)= AD19489D, SBox(1,218)= 1462B174, SBox(1,219)= 23820E00 SBox(1,220)= 58428D2A, SBox(1,221)= 0C55F5EA, SBox(1,222)= 1DADF43E, SBox(1,223)= 233F7061 SBox(1,224)= 3372F092, SBox(1,225)= 8D937E41, SBox(1,226)= D65FECF1, SBox(1,227)= 6C223BDB SBox(1,228)= 7CDE3759, SBox(1,229)= CBEE7460, SBox(1,230)= 4085F2A7, SBox(1,231)= CE77326E SBox(1,232)= A6078084, SBox(1,233)= 19F8509E, SBox(1,234)= E8EFD855, SBox(1,235)= 61D99735 SBox(1,236)= A969A7AA, SBox(1,237)= C50C06C2, SBox(1,238)= 5A04ABFC, SBox(1,239)= 800BCADC SBox(1,240)= 9E447A2E, SBox(1,241)= C3453484, SBox(1,242)= FDD56705, SBox(1,243)= 0E1E9EC9 SBox(1,244)= DB73DBD3, SBox(1,245)= 105588CD, SBox(1,246)= 675FDA79, SBox(1,247)= E3674340 SBox(1,248)= C5C43465, SBox(1,249)= 713E38D8, SBox(1,250)= 3D28F89E, SBox(1,251)= F16DFF20 SBox(1,252)= 153E21E7, SBox(1,253)= 8FB03D4A, SBox(1,254)= E6E39F2B, SBox(1,255)= DB83ADF7 SBox(2,0) = E93D5A68, SBox(2,1) = 948140F7, SBox(2,2) = F64C261C, SBox(2,3) = 94692934 SBox(2,4) = 411520F7, SBox(2,5) = 7602D4F7, SBox(2,6) = BCF46B2E, SBox(2,7) = D4A20068 SBox(2,8) = D4082471, SBox(2,9) = 3320F46A, SBox(2,10) = 43B7D4B7, SBox(2,11) = 500061AF SBox(2,12) = 1E39F62E, SBox(2,13) = 97244546, SBox(2,14) = 14214F74, SBox(2,15) = BF8B8840 SBox(2,16) = 4D95FC1D, SBox(2,17) = 96B591AF, SBox(2,18) = 70F4DDD3, SBox(2,19) = 66A02F45 SBox(2,20) = BFBC09EC, SBox(2,21) = 03BD9785, SBox(2,22) = 7FAC6DD0, SBox(2,23) = 31CB8504 SBox(2,24) = 96EB27B3, SBox(2,25) = 55FD3941, SBox(2,26) = DA2547E6, SBox(2,27) = ABCA0A9A SBox(2,28) = 28507825, SBox(2,29) = 530429F4, SBox(2,30) = 0A2C86DA, SBox(2,31) = E9B66DFB SBox(2,32) = 68DC1462, SBox(2,33) = D7486900, SBox(2,34) = 680EC0A4, SBox(2,35) = 27A18DEE SBox(2,36) = 4F3FFEA2, SBox(2,37) = E887AD8C, SBox(2,38) = B58CE006, SBox(2,39) = 7AF4D6B6 SBox(2,40) = AACE1E7C, SBox(2,41) = D3375FEC, SBox(2,42) = CE78A399, SBox(2,43) = 406B2A42 SBox(2,44) = 20FE9E35, SBox(2,45) = D9F385B9, SBox(2,46) = EE39D7AB, SBox(2,47) = 3B124E8B SBox(2,48) = 1DC9FAF7, SBox(2,49) = 4B6D1856, SBox(2,50) = 26A36631, SBox(2,51) = EAE397B2 SBox(2,52) = 3A6EFA74, SBox(2,53) = DD5B4332, SBox(2,54) = 6841E7F7, SBox(2,55) = CA7820FB SBox(2,56) = FB0AF54E, SBox(2,57) = D8FEB397, SBox(2,58) = 454056AC, SBox(2,59) = BA489527 SBox(2,60) = 55533A3A, SBox(2,61) = 20838D87, SBox(2,62) = FE6BA9B7, SBox(2,63) = D096954B SBox(2,64) = 55A867BC, SBox(2,65) = A1159A58, SBox(2,66) = CCA92963, SBox(2,67) = 99E1DB33 SBox(2,68) = A62A4A56, SBox(2,69) = 3F3125F9, SBox(2,70) = 5EF47E1C, SBox(2,71) = 9029317C SBox(2,72) = FDF8E802, SBox(2,73) = 04272F70, SBox(2,74) = 80BB155C, SBox(2,75) = 05282CE3 SBox(2,76) = 95C11548, SBox(2,77) = E4C66D22, SBox(2,78) = 48C1133F, SBox(2,79) = C70F86DC SBox(2,80) = 07F9C9EE, SBox(2,81) = 41041F0F, SBox(2,82) = 404779A4, SBox(2,83) = 5D886E17 SBox(2,84) = 325F51EB, SBox(2,85) = D59BC0D1, SBox(2,86) = F2BCC18F, SBox(2,87) = 41113564 SBox(2,88) = 257B7834, SBox(2,89) = 602A9C60, SBox(2,90) = DFF8E8A3, SBox(2,91) = 1F636C1B SBox(2,92) = 0E12B4C2, SBox(2,93) = 02E1329E, SBox(2,94) = AF664FD1, SBox(2,95) = CAD18115 SBox(2,96) = 6B2395E0, SBox(2,97) = 333E92E1, SBox(2,98) = 3B240B62, SBox(2,99) = EEBEB922 SBox(2,100)= 85B2A20E, SBox(2,101)= E6BA0D99, SBox(2,102)= DE720C8C, SBox(2,103)= 2DA2F728

Page 97: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

80

SBox(2,104)= D0127845, SBox(2,105)= 95B794FD, SBox(2,106)= 647D0862, SBox(2,107)= E7CCF5F0 SBox(2,108)= 5449A36F, SBox(2,109)= 877D48FA, SBox(2,110)= C39DFD27, SBox(2,111)= F33E8D1E SBox(2,112)= 0A476341, SBox(2,113)= 992EFF74, SBox(2,114)= 3A6F6EAB, SBox(2,115)= F4F8FD37 SBox(2,116)= A812DC60, SBox(2,117)= A1EBDDF8, SBox(2,118)= 991BE14C, SBox(2,119)= DB6E6B0D SBox(2,120)= C67B5510, SBox(2,121)= 6D672C37, SBox(2,122)= 2765D43B, SBox(2,123)= DCD0E804 SBox(2,124)= F1290DC7, SBox(2,125)= CC00FFA3, SBox(2,126)= B5390F92, SBox(2,127)= 690FED0B SBox(2,128)= 667B9FFB, SBox(2,129)= CEDB7D9C, SBox(2,130)= A091CF0B, SBox(2,131)= D9155EA3 SBox(2,132)= BB132F88, SBox(2,133)= 515BAD24, SBox(2,134)= 7B9479BF, SBox(2,135)= 763BD6EB SBox(2,136)= 37392EB3, SBox(2,137)= CC115979, SBox(2,138)= 8026E297, SBox(2,139)= F42E312D SBox(2,140)= 6842ADA7, SBox(2,141)= C66A2B3B, SBox(2,142)= 12754CCC, SBox(2,143)= 782EF11C SBox(2,144)= 6A124237, SBox(2,145)= B79251E7, SBox(2,146)= 06A1BBE6, SBox(2,147)= 4BFB6350 SBox(2,148)= 1A6B1018, SBox(2,149)= 11CAEDFA, SBox(2,150)= 3D25BDD8, SBox(2,151)= E2E1C3C9 SBox(2,152)= 44421659, SBox(2,153)= 0A121386, SBox(2,154)= D90CEC6E, SBox(2,155)= D5ABEA2A SBox(2,156)= 64AF674E, SBox(2,157)= DA86A85F, SBox(2,158)= BEBFE988, SBox(2,159)= 64E4C3FE SBox(2,160)= 9DBC8057, SBox(2,161)= F0F7C086, SBox(2,162)= 60787BF8, SBox(2,163)= 6003604D SBox(2,164)= D1FD8346, SBox(2,165)= F6381FB0, SBox(2,166)= 7745AE04, SBox(2,167)= D736FCCC SBox(2,168)= 83426B33, SBox(2,169)= F01EAB71, SBox(2,170)= B0804187, SBox(2,171)= 3C005E5F SBox(2,172)= 77A057BE, SBox(2,173)= BDE8AE24, SBox(2,174)= 55464299, SBox(2,175)= BF582E61 SBox(2,176)= 4E58F48F, SBox(2,177)= F2DDFDA2, SBox(2,178)= F474EF38, SBox(2,179)= 8789BDC2 SBox(2,180)= 5366F9C3, SBox(2,181)= C8B38E74, SBox(2,182)= B475F255, SBox(2,183)= 46FCD9B9 SBox(2,184)= 7AEB2661, SBox(2,185)= 8B1DDF84, SBox(2,186)= 846A0E79, SBox(2,187)= 915F95E2 SBox(2,188)= 466E598E, SBox(2,189)= 20B45770, SBox(2,190)= 8CD55591, SBox(2,191)= C902DE4C SBox(2,192)= B90BACE1, SBox(2,193)= BB8205D0, SBox(2,194)= 11A86248, SBox(2,195)= 7574A99E SBox(2,196)= B77F19B6, SBox(2,197)= E0A9DC09, SBox(2,198)= 662D09A1, SBox(2,199)= C4324633 SBox(2,200)= E85A1F02, SBox(2,201)= 09F0BE8C, SBox(2,202)= 4A99A025, SBox(2,203)= 1D6EFE10 SBox(2,204)= 1AB93D1D, SBox(2,205)= 0BA5A4DF, SBox(2,206)= A186F20F, SBox(2,207)= 2868F169 SBox(2,208)= DCB7DA83, SBox(2,209)= 573906FE, SBox(2,210)= A1E2CE9B, SBox(2,211)= 4FCD7F52 SBox(2,212)= 50115E01, SBox(2,213)= A70683FA, SBox(2,214)= A002B5C4, SBox(2,215)= 0DE6D027 SBox(2,216)= 9AF88C27, SBox(2,217)= 773F8641, SBox(2,218)= C3604C06, SBox(2,219)= 61A806B5 SBox(2,220)= F0177A28, SBox(2,221)= C0F586E0, SBox(2,222)= 006058AA, SBox(2,223)= 30DC7D62 SBox(2,224)= 11E69ED7, SBox(2,225)= 2338EA63, SBox(2,226)= 53C2DD94, SBox(2,227)= C2C21634 SBox(2,228)= BBCBEE56, SBox(2,229)= 90BCB6DE, SBox(2,230)= EBFC7DA1, SBox(2,231)= CE591D76 SBox(2,232)= 6F05E409, SBox(2,233)= 4B7C0188, SBox(2,234)= 39720A3D, SBox(2,235)= 7C927C24 SBox(2,236)= 86E3725F, SBox(2,237)= 724D9DB9, SBox(2,238)= 1AC15BB4, SBox(2,239)= D39EB8FC SBox(2,240)= ED545578, SBox(2,241)= 08FCA5B5, SBox(2,242)= D83D7CD3, SBox(2,243)= 4DAD0FC4 SBox(2,244)= 1E50EF5E, SBox(2,245)= B161E6F8, SBox(2,246)= A28514D9, SBox(2,247)= 6C51133C SBox(2,248)= 6FD5C7E7, SBox(2,249)= 56E14EC4, SBox(2,250)= 362ABFCE, SBox(2,251)= DDC6C837 SBox(2,252)= D79A3234, SBox(2,253)= 92638212, SBox(2,254)= 670EFA8E, SBox(2,255)= 406000E0 SBox(3,0) = 3A39CE37, SBox(3,1) = D3FAF5CF, SBox(3,2) = ABC27737, SBox(3,3) = 5AC52D1B SBox(3,4) = 5CB0679E, SBox(3,5) = 4FA33742, SBox(3,6) = D3822740, SBox(3,7) = 99BC9BBE SBox(3,8) = D5118E9D, SBox(3,9) = BF0F7315, SBox(3,10) = D62D1C7E, SBox(3,11) = C700C47B SBox(3,12) = B78C1B6B, SBox(3,13) = 21A19045, SBox(3,14) = B26EB1BE, SBox(3,15) = 6A366EB4 SBox(3,16) = 5748AB2F, SBox(3,17) = BC946E79, SBox(3,18) = C6A376D2, SBox(3,19) = 6549C2C8 SBox(3,20) = 530FF8EE, SBox(3,21) = 468DDE7D, SBox(3,22) = D5730A1D, SBox(3,23) = 4CD04DC6 SBox(3,24) = 2939BBDB, SBox(3,25) = A9BA4650, SBox(3,26) = AC9526E8, SBox(3,27) = BE5EE304 SBox(3,28) = A1FAD5F0, SBox(3,29) = 6A2D519A, SBox(3,30) = 63EF8CE2, SBox(3,31) = 9A86EE22 SBox(3,32) = C089C2B8, SBox(3,33) = 43242EF6, SBox(3,34) = A51E03AA, SBox(3,35) = 9CF2D0A4 SBox(3,36) = 83C061BA, SBox(3,37) = 9BE96A4D, SBox(3,38) = 8FE51550, SBox(3,39) = BA645BD6 SBox(3,40) = 2826A2F9, SBox(3,41) = A73A3AE1, SBox(3,42) = 4BA99586, SBox(3,43) = EF5562E9 SBox(3,44) = C72FEFD3, SBox(3,45) = F752F7DA, SBox(3,46) = 3F046F69, SBox(3,47) = 77FA0A59 SBox(3,48) = 80E4A915, SBox(3,49) = 87B08601, SBox(3,50) = 9B09E6AD, SBox(3,51) = 3B3EE593 SBox(3,52) = E990FD5A, SBox(3,53) = 9E34D797, SBox(3,54) = 2CF0B7D9, SBox(3,55) = 022B8B51 SBox(3,56) = 96D5AC3A, SBox(3,57) = 017DA67D, SBox(3,58) = D1CF3ED6, SBox(3,59) = 7C7D2D28 SBox(3,60) = 1F9F25CF, SBox(3,61) = ADF2B89B, SBox(3,62) = 5AD6B472, SBox(3,63) = 5A88F54C SBox(3,64) = E029AC71, SBox(3,65) = E019A5E6, SBox(3,66) = 47B0ACFD, SBox(3,67) = ED93FA9B SBox(3,68) = E8D3C48D, SBox(3,69) = 283B57CC, SBox(3,70) = F8D56629, SBox(3,71) = 79132E28 SBox(3,72) = 785F0191, SBox(3,73) = ED756055, SBox(3,74) = F7960E44, SBox(3,75) = E3D35E8C SBox(3,76) = 15056DD4, SBox(3,77) = 88F46DBA, SBox(3,78) = 03A16125, SBox(3,79) = 0564F0BD SBox(3,80) = C3EB9E15, SBox(3,81) = 3C9057A2, SBox(3,82) = 97271AEC, SBox(3,83) = A93A072A SBox(3,84) = 1B3F6D9B, SBox(3,85) = 1E6321F5, SBox(3,86) = F59C66FB, SBox(3,87) = 26DCF319 SBox(3,88) = 7533D928, SBox(3,89) = B155FDF5, SBox(3,90) = 03563482, SBox(3,91) = 8ABA3CBB SBox(3,92) = 28517711, SBox(3,93) = C20AD9F8, SBox(3,94) = ABCC5167, SBox(3,95) = CCAD925F SBox(3,96) = 4DE81751, SBox(3,97) = 3830DC8E, SBox(3,98) = 379D5862, SBox(3,99) = 9320F991 SBox(3,100)= EA7A90C2, SBox(3,101)= FB3E7BCE, SBox(3,102)= 5121CE64, SBox(3,103)= 774FBE32 SBox(3,104)= A8B6E37E, SBox(3,105)= C3293D46, SBox(3,106)= 48DE5369, SBox(3,107)= 6413E680 SBox(3,108)= A2AE0810, SBox(3,109)= DD6DB224, SBox(3,110)= 69852DFD, SBox(3,111)= 09072166 SBox(3,112)= B39A460A, SBox(3,113)= 6445C0DD, SBox(3,114)= 586CDECF, SBox(3,115)= 1C20C8AE SBox(3,116)= 5BBEF7DD, SBox(3,117)= 1B588D40, SBox(3,118)= CCD2017F, SBox(3,119)= 6BB4E3BB SBox(3,120)= DDA26A7E, SBox(3,121)= 3A59FF45, SBox(3,122)= 3E350A44, SBox(3,123)= BCB4CDD5 SBox(3,124)= 72EACEA8, SBox(3,125)= FA6484BB, SBox(3,126)= 8D6612AE, SBox(3,127)= BF3C6F47 SBox(3,128)= D29BE463, SBox(3,129)= 542F5D9E, SBox(3,130)= AEC2771B, SBox(3,131)= F64E6370 SBox(3,132)= 740E0D8D, SBox(3,133)= E75B1357, SBox(3,134)= F8721671, SBox(3,135)= AF537D5D SBox(3,136)= 4040CB08, SBox(3,137)= 4EB4E2CC, SBox(3,138)= 34D2466A, SBox(3,139)= 0115AF84 SBox(3,140)= E1B00428, SBox(3,141)= 95983A1D, SBox(3,142)= 06B89FB4, SBox(3,143)= CE6EA048

Page 98: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

81

SBox(3,144)= 6F3F3B82, SBox(3,145)= 3520AB82, SBox(3,146)= 011A1D4B, SBox(3,147)= 277227F8 SBox(3,148)= 611560B1, SBox(3,149)= E7933FDC, SBox(3,150)= BB3A792B, SBox(3,151)= 344525BD SBox(3,152)= A08839E1, SBox(3,153)= 51CE794B, SBox(3,154)= 2F32C9B7, SBox(3,155)= A01FBAC9 SBox(3,156)= E01CC87E, SBox(3,157)= BCC7D1F6, SBox(3,158)= CF0111C3, SBox(3,159)= A1E8AAC7 SBox(3,160)= 1A908749, SBox(3,161)= D44FBD9A, SBox(3,162)= D0DADECB, SBox(3,163)= D50ADA38 SBox(3,164)= 0339C32A, SBox(3,165)= C6913667, SBox(3,166)= 8DF9317C, SBox(3,167)= E0B12B4F SBox(3,168)= F79E59B7, SBox(3,169)= 43F5BB3A, SBox(3,170)= F2D519FF, SBox(3,171)= 27D9459C SBox(3,172)= BF97222C, SBox(3,173)= 15E6FC2A, SBox(3,174)= 0F91FC71, SBox(3,175)= 9B941525 SBox(3,176)= FAE59361, SBox(3,177)= CEB69CEB, SBox(3,178)= C2A86459, SBox(3,179)= 12BAA8D1 SBox(3,180)= B6C1075E, SBox(3,181)= E3056A0C, SBox(3,182)= 10D25065, SBox(3,183)= CB03A442 SBox(3,184)= E0EC6E0E, SBox(3,185)= 1698DB3B, SBox(3,186)= 4C98A0BE, SBox(3,187)= 3278E964 SBox(3,188)= 9F1F9532, SBox(3,189)= E0D392DF, SBox(3,190)= D3A0342B, SBox(3,191)= 8971F21E SBox(3,192)= 1B0A7441, SBox(3,193)= 4BA3348C, SBox(3,194)= C5BE7120, SBox(3,195)= C37632D8 SBox(3,196)= DF359F8D, SBox(3,197)= 9B992F2E, SBox(3,198)= E60B6F47, SBox(3,199)= 0FE3F11D SBox(3,200)= E54CDA54, SBox(3,201)= 1EDAD891, SBox(3,202)= CE6279CF, SBox(3,203)= CD3E7E6F SBox(3,204)= 1618B166, SBox(3,205)= FD2C1D05, SBox(3,206)= 848FD2C5, SBox(3,207)= F6FB2299 SBox(3,208)= F523F357, SBox(3,209)= A6327623, SBox(3,210)= 93A83531, SBox(3,211)= 56CCCD02 SBox(3,212)= ACF08162, SBox(3,213)= 5A75EBB5, SBox(3,214)= 6E163697, SBox(3,215)= 88D273CC SBox(3,216)= DE966292, SBox(3,217)= 81B949D0, SBox(3,218)= 4C50901B, SBox(3,219)= 71C65614 SBox(3,220)= E6C6C7BD, SBox(3,221)= 327A140A, SBox(3,222)= 45E1D006, SBox(3,223)= C3F27B9A SBox(3,224)= C9AA53FD, SBox(3,225)= 62A80F00, SBox(3,226)= BB25BFE2, SBox(3,227)= 35BDD2F6 SBox(3,228)= 71126905, SBox(3,229)= B2040222, SBox(3,230)= B6CBCF7C, SBox(3,231)= CD769C2B SBox(3,232)= 53113EC0, SBox(3,233)= 1640E3D3, SBox(3,234)= 38ABBD60, SBox(3,235)= 2547ADF0 SBox(3,236)= BA38209C, SBox(3,237)= F746CE76, SBox(3,238)= 77AFA1C5, SBox(3,239)= 20756060 SBox(3,240)= 85CBFE4E, SBox(3,241)= 8AE88DD8, SBox(3,242)= 7AAAF9B0, SBox(3,243)= 4CF9AA7E SBox(3,244)= 1948C25C, SBox(3,245)= 02FB8A8C, SBox(3,246)= 01C36AE4, SBox(3,247)= D6EBE1F9 SBox(3,248)= 90D4F869, SBox(3,249)= A65CDEA0, SBox(3,250)= 3F09252D, SBox(3,251)= C208E69F SBox(3,252)= B74E6132, SBox(3,253)= CE77E25B, SBox(3,254)= 578FDFE3, SBox(3,255)= 3AC372E6 PENGAMBILAN DATA SIMULASI ENKRIPSI DEKRIPSI ALGORITMA KURANG 64-BIT

PLAINTEXT (ASCII)

PLAINTEXT (HEXADESIMAL) HASIL ENKRIPSI HASIL DEKRIPSI

MINUM 4D 49 4E 55 4D 64 B9 56 8B 71 BC C8 62

4D 49 4E 55 4D 00 00 00

BACA 42 41 43 41 B5 22 82 CD 64 F8 8C 6D

42 41 43 41 00 00 00 00

TIDUR 54 49 44 55 52 BE 15 5A 27 13 D9 E5 D7

54 49 44 55 52 00 00 00

KAMAR 4B 41 4D 41 52 74 68 1C 92 17 D7 B6 43

4B 41 4D 41 52 00 00 00

PENGAMBILAN DATA SIMULASI ENKRIPSI DEKRIPSI ALGORITMA 64 BIT

PLAINTEXT (ASCII)

PLAINTEXT (HEXADESIMAL) HASIL ENKRIPSI HASIL DEKRIPSI

MATAHARI 4D 41 54 41 48 41 52 49

89 C8 07 A7 E6 77 CF 4C

4D 41 54 41 48 41 52 49

PENGAMBILAN DATA SIMULASI ENKRIPSI DEKRIPSI ALGORITMA LEBIH DARI 64 BIT

PLAINTEXT (ASCII)

PLAINTEXT (HEXADESIMAL) HASIL ENKRIPSI HASIL DEKRIPSI

SANATA DHARMA 53 41 4E 41 54 41 20 44 48 41 52 4D 41

C1 A1 50 9E 87 97 94 C4 0E 96 98 C5 C0 73 0D B5

53 41 4E 41 54 41 20 44 48 41 52 4D 41 00 00 00

Page 99: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

82

Listing Program

ModBlowfish Private Function UnsignedAdd&(vData1&, vData2&) Dim x1(0 To 3) As Byte, x2(0 To 3) As Byte, xx(0 To 3) As Byte CopyMem x1(0), vData1, 4 CopyMem x2(0), vData2, 4 cryflg% = 0 For i% = 0 To 3 addret& = CLng(x1(i%)) + CLng(x2(i%)) + cryflg% xx(i%) = addret& And 255 cryflg% = addret& \ 256 Next i% CopyMem UnsignedAdd, xx(0), 4 End Function Private Sub SwapLong(ByRef vLong1&, ByRef vLong2&) tmplng& = vLong2 vLong2 = vLong1 vLong1 = tmplng& End Sub Private Function BlwfXFunction&(vWord&) Dim b(0 To 3) As Byte wrdval& = vWord CopyMem b(0), wrdval&, 4 fncst1& = UnsignedAdd(mSBox(0, b(3)), mSBox(1, b(2))) fncst2& = fncst1& Xor mSBox(2, b(1)) fncout& = UnsignedAdd(fncst2&, mSBox(3, b(0))) FrmProgress.ReportFXValue wrdval&, fncout& BlwfXFunction = fncout& End Function Private Sub BlwfEncryptBlock(XL&, XR&) For i& = 0 To 15 XL = XL Xor mPBox(i&) XR = BlwfXFunction(XL) Xor XR SwapLong XL, XR Next i& SwapLong XL, XR XR = XR Xor mPBox(16) XL = XL Xor mPBox(17) End Sub Private Sub BlwfDecryptBlock(XL&, XR&) For i& = 17 To 2 Step -1 XL = XL Xor mPBox(i&) XR = BlwfXFunction(XL) Xor XR SwapLong XL, XR Next i& SwapLong XL, XR XR = XR Xor mPBox(1) XL = XL Xor mPBox(0) End Sub Private Sub GenerateSubkeys(vKey$) Static oldkey$ Dim kbyte() As Byte

Page 100: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

83

newkey$ = vKey 'If newkey$ <> oldkey$ Then keylen% = Len(newkey$) kbyte() = StrConv(newkey$, vbFromUnicode) bytofs% = 0 For i% = 0 To 17 crt32b& = 0 For j% = 0 To 3 CopyMem ByVal VarPtr(crt32b&) + 1, crt32b&, 3 crt32b& = crt32b& Or kbyte(bytofs%) bytofs% = bytofs% + 1 If bytofs% >= keylen% Then bytofs% = 0 Next j% mPBox(i%) = mPBox(i%) Xor crt32b& Next i% ' ## enkrip semua pbox dengan 0 dt32lo& = 0 dt32hi& = 0 For i% = 0 To 17 Step 2 BlwfEncryptBlock dt32lo&, dt32hi& mPBox(i% + 0) = dt32lo& mPBox(i% + 1) = dt32hi& Next i% ' ## enkrip semua sbox dengan 0 For i% = 0 To 3 For j% = 0 To 255 Step 2 BlwfEncryptBlock dt32lo&, dt32hi& mSBox(i%, j% + 0) = dt32lo& mSBox(i%, j% + 1) = dt32hi& Next j% Next i% oldkey$ = newkey$ 'End If End Sub Public Sub GenerateSubkeys1(vKey$) Static oldkey$ Dim kbyte() As Byte ' ## xor semua pbox dengan key newkey$ = vKey 'If newkey$ <> oldkey$ Then keylen% = Len(newkey$) kbyte() = StrConv(newkey$, vbFromUnicode) bytofs% = 0 For i% = 0 To 17 crt32b& = 0 For j% = 0 To 3 CopyMem ByVal VarPtr(crt32b&) + 1, crt32b&, 3 crt32b& = (crt32b& And &HFFFFFF00) Or kbyte(bytofs%) bytofs% = bytofs% + 1 If bytofs% >= keylen% Then bytofs% = 0 Next j% mPBox(i%) = mPBox(i%) Xor crt32b& Next i% oldkey$ = newkey$ 'End If End Sub Public Sub GenerateSubkeys2() ' ## enkrip semua pbox dengan 0 dt32lo& = 0 dt32hi& = 0 For i% = 0 To 17 Step 2 BlwfEncryptBlock dt32lo&, dt32hi& mPBox(i% + 0) = dt32lo& mPBox(i% + 1) = dt32hi& Next i% ' ## enkrip semua sbox dengan 0 For i% = 0 To 3 For j% = 0 To 255 Step 2 BlwfEncryptBlock dt32lo&, dt32hi&

Page 101: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

84

mSBox(i%, j% + 0) = dt32lo& mSBox(i%, j% + 1) = dt32hi& Next j% Next i% End Sub Public Function LngReverse&(vLong&) Dim bytes(0 To 3) As Byte CopyMem bytes(0), vLong, 4 For i% = 0 To 1 i1% = i% i2% = 3 - i% tmpbyte% = bytes(i1%) bytes(i1%) = bytes(i2%) bytes(i2%) = tmpbyte% Next i% CopyMem revlng&, bytes(0), 4 LngReverse = revlng& End Function Public Function BlwfEncryptData$(vPlaintext$) Dim bytes() As Byte srclen& = Len(vPlaintext) cphlen& = srclen& + 0 bytes() = StrConv(vPlaintext, vbFromUnicode) If (cphlen& Mod 8) <> 0 Then cphlen& = cphlen& + (8 - (cphlen& Mod 8)) ReDim Preserve bytes(0 To cphlen& - 1) For offset& = 0 To (cphlen& - 1) Step 8 CopyMem lftwrd&, bytes(offset& + 0), 4 ' left word (XL) CopyMem rgtwrd&, bytes(offset& + 4), 4 ' right word (XR) lftwrd& = LngReverse(lftwrd&) rgtwrd& = LngReverse(rgtwrd&) BlwfEncryptBlock lftwrd&, rgtwrd& lftwrd& = LngReverse(lftwrd&) rgtwrd& = LngReverse(rgtwrd&) CopyMem bytes(offset& + 0), lftwrd&, 4 CopyMem bytes(offset& + 4), rgtwrd&, 4 Next offset& cipher$ = StrConv(bytes(), vbUnicode) BlwfEncryptData = cipher$ End Function Public Function BlwfDecryptData$(vCiphertext$) Dim bytes() As Byte cphlen& = Len(vCiphertext) bytes() = StrConv(vCiphertext, vbFromUnicode) If (cphlen& Mod 8) <> 0 Then cphlen& = cphlen& + (8 - (cphlen& Mod 8)) ReDim Preserve bytes(0 To cphlen& - 1) For offset& = 0 To (cphlen& - 1) Step 8 CopyMem lftwrd&, bytes(offset& + 0), 4 CopyMem rgtwrd&, bytes(offset& + 4), 4 lftwrd& = LngReverse(lftwrd&) rgtwrd& = LngReverse(rgtwrd&) BlwfDecryptBlock lftwrd&, rgtwrd& lftwrd& = LngReverse(lftwrd&) rgtwrd& = LngReverse(rgtwrd&) CopyMem bytes(offset& + 0), lftwrd&, 4 CopyMem bytes(offset& + 4), rgtwrd&, 4 Next offset& CopyMem srclen&, bytes(0), 4 dcrtxt$ = StrConv(bytes(), vbUnicode) BlwfDecryptData = dcrtxt$ End Function Mod procedures Public Sub SetBackground(vForm As Form, vFile$) If Dir(vFile) <> "" Then vForm.Picture = LoadPicture(vFile) End If

Page 102: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

85

End Sub Public Function FLHex$(XprValue, strlen%) 'returns fixed-length hex string temp$ = Hex(XprValue) If Len(temp$) > strlen% Then temp$ = Right$(temp$, strlen%) temp$ = String(strlen% - Len(temp$), "0") + temp$ FLHex = temp$ End Function Public Sub StrMerge(dstString$, mrgString$, Optional vDelimiter, Optional Clear% = 0) If Clear Then dstString = "" delimitertxt$ = IIf(Not IsMissing(vDelimiter), vDelimiter, "") dstString = dstString + IIf(mrgString$ <> "", IIf(dstString <> "", delimitertxt$, "") + mrgString$, "") End Sub Public Function HexView$(vASCII$) asctxt$ = vASCII For c& = 1 To Len(asctxt$) StrMerge hextxt$, FLHex(Asc(Mid(asctxt$, c&, 1)), 2), " " Next c& HexView = hextxt$ End Function Public Function StrView$(vASCII$) strtxt$ = vASCII strtxt$ = Replace(strtxt$, Chr(0), ".") StrView = strtxt$ End Function ==================================================================================== Mod procedure Public Sub SetBackground(vForm As Form, vFile$) If Dir(vFile) <> "" Then vForm.Picture = LoadPicture(vFile) End If End Sub Public Function FLHex$(XprValue, strlen%) 'returns fixed-length hex string temp$ = Hex(XprValue) If Len(temp$) > strlen% Then temp$ = Right$(temp$, strlen%) temp$ = String(strlen% - Len(temp$), "0") + temp$ FLHex = temp$ End Function Public Sub StrMerge(dstString$, mrgString$, Optional vDelimiter, Optional Clear% = 0) If Clear Then dstString = "" delimitertxt$ = IIf(Not IsMissing(vDelimiter), vDelimiter, "") dstString = dstString + IIf(mrgString$ <> "", IIf(dstString <> "", delimitertxt$, "") + mrgString$, "") End Sub Public Function HexView$(vASCII$) asctxt$ = vASCII For c& = 1 To Len(asctxt$) StrMerge hextxt$, FLHex(Asc(Mid(asctxt$, c&, 1)), 2), " " Next c& HexView = hextxt$ End Function Public Function StrView$(vASCII$) strtxt$ = vASCII strtxt$ = Replace(strtxt$, Chr(0), ".") StrView = strtxt$ End Function

Listing Fromcode Private mBuffer$(0 To 3), mFromBuffer%(0 To 3), mFlgBinary%(0 To 3) Public BlwfKey$, BlwfPlainText$ Public Property Get BlwfCipherText$() BlwfCipherText = mBuffer(2) End Property Public Property Let BlwfCipherText(vData$) SetTBText 2, vData End Property

Page 103: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

86

Public Property Get BlwfDecriptedText$() BlwfDecriptedText = mBuffer(3) End Property Public Property Let BlwfDecriptedText(vData$) SetTBText 3, vData End Property Private Function StrLengthInfo$(vLength&) StrLengthInfo = Str(vLength) + " karakter" End Function Private Sub ResetButtons() If mBuffer(1) <> "" Then If mBuffer(0) <> "" Then canenc% = 1 If mBuffer(2) <> "" Then candec% = 1 End If CmdEncrypt.Enabled = canenc% CmdDecrypt.Enabled = candec% End Sub Private Sub SetTBText(Index%, vText$) mFromBuffer(Index) = 1 mBuffer(Index) = vText If mBuffer(Index) <> "" Then If Left(mBuffer(Index), 1) = Chr(0) Then binflg% = 1 End If mFlgBinary(Index) = binflg% 'If mFlgBinary(Index) = 0 Then ' TxtAsc(Index).Text = mBuffer(Index) 'Else ' TxtAsc(Index).Text = "{DATA BINER}" 'End If TxtAsc(Index).Text = StrView(mBuffer(Index)) TxtHex(Index).Text = HexView(mBuffer(Index)) mFromBuffer(Index) = 0 End Sub Private Sub TxtAsc_Change(Index As Integer) Static chgflg% If chgflg% = 0 Then If mFromBuffer(Index) = 0 Then If mFlgBinary(Index) = 0 Then mBuffer(Index) = TxtAsc(Index).Text Else chgflg% = 1 TxtAsc(Index).Text = "" mBuffer(Index) = "" mFlgBinary(Index) = 0 chgflg% = 0 End If BlwfCipherText = "" BlwfDecriptedText = "" TxtHex(Index).Text = HexView(mBuffer(Index)) End If LblLen(Index).Caption = StrLengthInfo(Len(mBuffer(Index))) ResetButtons End If End Sub Private Sub TxtAsc_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer) ' End Sub Private Sub CmdBrowse_Click() fltlst$ = "Text file (*.TXT)|*.TXT|All files (*.*)|*.*" srcfil$ = DialogOpen(Me.hWnd, , , fltlst$, 0, "*.TXT") If srcfil$ <> "" Then filnbr% = FreeFile Open srcfil$ For Binary As #filnbr% filsiz& = LOF(filnbr%) If filsiz& <= 8192 Then rawdat$ = String(LOF(filnbr%), 0) Get #filnbr%, , rawdat$ Else toobig% = 1 End If Close #filnbr% If toobig% = 0 Then SetTBText 0, rawdat$

Page 104: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

87

Else MsgBox "Ukuran file terlalu besar (maksimal 8KB).", vbInformation End If End If ResetButtons End Sub Private Sub CmdEncrypt_Click() mEncrypt = 1 mDecrypt = 0 BlwfKey = mBuffer(1) BlwfPlainText = mBuffer(0) BlwfCipherText = "" BlwfDecriptedText = "" FrmProgress.Show 1, Me End Sub Private Sub CmdDecrypt_Click() mEncrypt = 0 mDecrypt = 1 'BlwfKey = mBuffer(1) 'BlwfPlainText = "" 'BlwfCipherText = mBuffer(2) 'BlwfDecriptedText = "" FrmProgress.Show 1, Me ResetButtons End Sub Private Sub CmdClose_Click() Unload Me End Sub Private Sub Form_DblClick() FunctionTest End Sub Private Sub Form_Load() For i% = 0 To 3 LblAsc(i%).BackStyle = 0 LblHex(i%).BackStyle = 0 LblLen(i%).BackStyle = 0 Next i% LblSource.BackStyle = 0 SetBackground Me, "bg.jpg" For i% = 0 To 3 LblLen(i%).Caption = StrLengthInfo(0) Next i% 'InitBlowfish ResetButtons End Sub Private Sub FunctionTest() 'For i% = 32 To 255 ' srctxt$ = srctxt$ + Chr(i%) 'Next i% ''srctxt$ = Replace(srctxt$, Chr(0), ".") 'TxtAsc(0).Text = srctxt$ 'srclng& = &H11223344 'dstlng& = LngReverse(srclng&) 'srchex$ = Hex(srclng&) 'dsthex$ = Hex(dstlng&) End Sub ========================================================================================== Listing From Progrees Private mFXValue1&, mFxValue2&, mFXCounter&, mFXPause% Private Sub DumpPBox() TxtBox(0).Text = "" For b& = 0 To 17 boxcnt& = boxcnt& + 1 boxnbr$ = Format(b& + 1, "#0") crtbox$ = "PBox(" + boxnbr$ + ")" + Space(2 - Len(boxnbr$)) + "= " + FLHex(mPBox(b&), 8)

Page 105: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

88

StrMerge boxinf$, crtbox$, ", " If (boxcnt& >= 4) Or (b& = 17) Then TxtBox(0).SelStart = Len(TxtBox(0).Text) TxtBox(0).SelLength = 0 TxtBox(0).SelText = IIf(b& > 3, vbCrLf, "") + boxinf$ boxcnt& = 0 boxinf$ = "" End If Next b& End Sub Private Sub DumpSBox() TxtBox(1).Text = "" For i& = 0 To 3 boxcnt& = 0 For j& = 0 To 255 boxcnt& = boxcnt& + 1 boxnbr$ = Format(i&, "#0") + "," + Format(j&, "#0") crtbox$ = "SBox(" + boxnbr$ + ")" + Space(5 - Len(boxnbr$)) + "= " + FLHex(mSBox(i&, j&), 8) StrMerge boxinf$, crtbox$, ", " If boxcnt& >= 4 Then TxtBox(1).SelStart = Len(TxtBox(1).Text) TxtBox(1).SelLength = 0 TxtBox(1).SelText = boxinf$ + vbCrLf boxcnt& = 0 boxinf$ = "" End If Next j& If i& < 3 Then TxtBox(1).SelText = vbCrLf Next i& End Sub Private Sub ShowCurrentStep(vLog$) TxtLog.SelStart = Len(TxtLog.Text) TxtLog.SelLength = 0 TxtLog.SelText = vLog + vbCrLf End Sub Private Sub UpdateFXInfo(Optional vPause% = 0) If ChkFXMon.Value = Checked Then mFXCounter = mFXCounter + 1 FldFXValue(0).Caption = ": " + FLHex(mFXValue1, 8) FldFXValue(1).Caption = ": " + FLHex(mFxValue2, 8) FldFXCounter.Caption = ": " + IIf(mFXCounter > 0, Format(mFXCounter, "#,##0"), "-") FldFXValue(0).Refresh FldFXValue(1).Refresh FldFXCounter.Refresh If vPause Then mFXPause = 1 If mFXCounter = 1 Then currentstep$ = " Monitor FX (pause)" ShowCurrentStep currentstep$ End If Do While mFXPause DoEvents Loop End If End Sub Private Sub RunProcess() If (mEncrypt <> 0) And (mDecrypt = 0) Then Select Case mEncrypt Case 1 srctxt$ = FrmMain.BlwfPlainText currentstep$ = "Plaintext (ASCII):" + vbCrLf _ + StrView(srctxt$) + vbCrLf _ + "Plaintext (Hex): " + vbCrLf _ + HexView(srctxt$) + vbCrLf + vbCrLf _ + "Proses enkripsi siap dilaksanakan." + vbCrLf _ + "Langkah 1: Inisialisasi PBox" ShowCurrentStep currentstep$ Case 2 InitBlowfish currentstep$ = "Langkah 2: XOR semua PBox dengan key" ShowCurrentStep currentstep$ Case 3 GenerateSubkeys1 FrmMain.BlwfKey currentstep$ = "Langkah 3: Modifikasi PBox dan SBox menggunakan enkripsi dengan input string 0"

Page 106: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

89

ShowCurrentStep currentstep$ Case 4 GenerateSubkeys2 UpdateFXInfo currentstep$ = "Langkah 4: Enkripsi data" ShowCurrentStep currentstep$ Case 5 cphtxt$ = BlwfEncryptData(FrmMain.BlwfPlainText) UpdateFXInfo FrmMain.BlwfCipherText = cphtxt$ cphinf$ = "Ciphertext (ASCII):" + vbCrLf + StrView(cphtxt$) + vbCrLf + vbCrLf _ + "Ciphertext (Hex):" + vbCrLf + HexView(cphtxt$) currentstep$ = "Proses enkripsi selesai." + vbCrLf + vbCrLf + cphinf$ ShowCurrentStep currentstep$ End Select ElseIf (mEncrypt = 0) And (mDecrypt <> 0) Then Select Case mDecrypt Case 1 cphtxt$ = FrmMain.BlwfCipherText currentstep$ = "Ciphertext (ASCII):" + vbCrLf _ + StrView(cphtxt$) + vbCrLf _ + "Ciphertext (Hex):" + vbCrLf _ + HexView(cphtxt$) + vbCrLf + vbCrLf _ + "Proses dekripsi siap dilaksanakan." + vbCrLf _ + "Langkah 1: Inisialisasi PBox" ShowCurrentStep currentstep$ Case 2 InitBlowfish currentstep$ = "Langkah 2: XOR semua PBox dengan key" ShowCurrentStep currentstep$ Case 3 GenerateSubkeys1 FrmMain.BlwfKey currentstep$ = "Langkah 3: Modifikasi PBox dan SBox menggunakan enkripsi dengan input string 0" ShowCurrentStep currentstep$ Case 4 GenerateSubkeys2 UpdateFXInfo currentstep$ = "Langkah 4: Dekripsi data" ShowCurrentStep currentstep$ Case 5 dcrtxt$ = BlwfDecryptData(FrmMain.BlwfCipherText) UpdateFXInfo FrmMain.BlwfDecriptedText = dcrtxt$ dcrinf$ = "Decrypted text (ASCII):" + vbCrLf + StrView(dcrtxt$) + vbCrLf + vbCrLf _ + "Decrypted text (Hex):" + vbCrLf + HexView(dcrtxt$) currentstep$ = "Proses enkripsi selesai." + vbCrLf + vbCrLf + dcrinf$ ShowCurrentStep currentstep$ End Select End If End Sub Private Sub ChkFXMon_Click() mFXCounter = 0 If ChkFXMon.Value = Unchecked Then mFXPause = 0 End Sub Private Sub CmdCopy_Click(Index As Integer) Clipboard.Clear If Index < 2 Then Clipboard.SetText TxtBox(Index).Text Else Clipboard.SetText TxtLog.Text End If End Sub Private Sub CmdClose_Click() Unload Me End Sub Private Sub CmdNext_Click() If mFXPause Then mFXPause = 0 Else If (mEncrypt <> 0) And (mDecrypt = 0) Then mEncrypt = mEncrypt + 1 RunProcess DumpPBox

Page 107: SIMULASI ENKRIPSI DAN DEKRIPSI BERBASIS ALGORITMA …

90

DumpSBox If mEncrypt >= 5 Then CmdNext.Enabled = False ElseIf (mEncrypt = 0) And (mDecrypt <> 0) Then mDecrypt = mDecrypt + 1 RunProcess DumpPBox DumpSBox If mDecrypt >= 5 Then CmdNext.Enabled = False End If End If End Sub Private Sub Form_Load() mFXCounter = 0 If (mEncrypt <> 0) And (mDecrypt = 0) Then Me.Caption = "Proses Enkripsi" Else Me.Caption = "Proses Dekripsi" End If FldFXValue(0).Caption = "" FldFXValue(1).Caption = "" FldFXCounter.Caption = "" CmdNext.Enabled = True 'For i& = 0 To 17 ' mPBox(i&) = 0 'Next i& 'For i& = 0 To 3 ' For j& = 0 To 255 ' mSBox(i&, j&) = 0 ' Next j& 'Next i& DumpPBox DumpSBox ReportFXValue 0, 0 RunProcess End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) mFXPause = 0 End Sub Public Sub ReportFXValue(vInput&, vOutput&) mFXValue1 = vInput mFxValue2 = vOutput If ChkFXMon.Value = Checked Then DumpPBox DumpSBox UpdateFXInfo 1 End If End Sub