analisis perbandingan unjuk kerja algoritma des, 3des… · des, 3des, aes, blowfish dan twofish...

55
i ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar Sarjana Komputer Program Studi Teknik Informatika DISUSUN OLEH Y ADVENSIUS PUTRA PAMUNGKAS 155314086 JURUSAN INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2019 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Upload: others

Post on 12-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

i

ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA

DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA

DOKUMEN

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat

Untuk Mendapatkan Gelar Sarjana Komputer

Program Studi Teknik Informatika

DISUSUN OLEH

Y ADVENSIUS PUTRA PAMUNGKAS

155314086

JURUSAN INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2019

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

ii

COMPARATIVE ANALYSIS OF DES, 3DES, AES, BLOWFISH

AND TWOFISH ALGORITHM PERFORMANCE ON

DOCUMENTS

A THESIS

Presented as Partial Fulfillment of Requirements

To Obtain Sarjana Komputer Degree

In Informatics Engineering Department

By:

Y ADVENSIUS PUTRA PAMUNGKAS

155314086

DEPARTMENT OF INFORMATICS

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2019

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

iii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

iv

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

v

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

vi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

vii

HALAMAN MOTTO

“janganlah takut, sebab Aku menyertai engkau

, janganlah bimbang, sebab Aku

ini Allahmu; Aku akan meneguhkan, bahkan akan menolong

engkau; Aku akan

memegang engkau dengan tangan

kanan-Ku yang membawa kemenangan.”

(Yesaya 41:10)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

viii

ABSTRAK

Keamanan suatu informasi adalah suatu hal sangat penting. Sehingga perlu

adanya perlindungan pada informasi tersebut, salah satunya yaitu dengan

kriptografi. Kriptografi adalah suatu penyandian untuk melindungi informasi

dengan menggunakan algoritma tertentu, sehingga informasi yang rahasia dapat

terlindungi dari penyadapan. Data Encryption Standard (DES), Triple Data

Encryption Standard (3DES), Advance Encryption Standard (AES), Blowfish

dan Twofish merupakan algoritma penyandian yang akan digunakan dalam

penelitian ini. Setiap algoritma sudah memenuhi kebutuhan untuk mengacak data

sehingga dapat dimanfaatkan untuk pengamanan informasi. Namun masing-

masing algoritma memiliki performansi yang berbeda-beda dalam proses enkripsi

maupun dekripsi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

ix

ABSTRACT

The security of information is a very important thing. Because there needs

to be information about this, one of them is with cryptography. Cryptography is

one of the encodings to protect information by using certain, so that confidential

information can be protected from eavesdropping. Data Encryption Standard

(DES), Triple Data Encryption Standard (3DES), Advanced Encryption Standard

(AES), Blowfish and Twofish are the encoding algorithms that will be used in this

study. Each algorithm has fulfilled the need to randomize data so that it can be

used for information security. However, each algorithm has different performance

in the encryption and decryption process.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

x

KATA PENGANTAR

Puji Syukur penulis panjatkan kepada Tuhan Yang Maha Esa karena atas rahmat

dan berkat-Nya penulis dapat menyelesaikan penyusunan tugas akhir dengan tepat

waktu. Dalam pelaksanaan penyusunan skripsi ini mendapatkan banyak

bimbingan dan bantuan dari berbagai pihak. Pada kesempatan ini penulis

mengucapkan banyak terimakasih kepada:

1. Tuhan Yesus Kristus yang telah memberikan banyak sekali pengalaman

berharga, kasih yang tulus, berkat dan rahmat yang melimpah untuk

membentuk penulis menjadi pribadi yang lebih lagi.

2. Keluarga, yang senantiasa mendoakan, memberikan dukungan dan semangat.

3. Bapak Bambang Soelistijanto, S.T, M.Sc., Ph.D. selaku dosen pembimbing

tugas akhir yang sudah memberikan banyak bimbingan dan ilmu dalam

mengerjakan tugas akhir.

4. Bapak Eko Hari Parmadi, S.Si., M.Kom. selaku dosen pembimbing akademis

yang sudah memberikan bimbingan dalam mengerjakan tugas akhir.

5. Seluruh teman angkatan 2015 terutama teman-teman jaringan yang selalu

memberikan dukungan dan semangat sehinga penulis dapat menyelesaikan

tugas akhir.

6. Kamsky yang selalu memberi support dan doa kepada saya.

7. Maria Regina Tryonita yang memberi motivasi dukungan dan menemani saya

selama pengerjaan skripsi.

Penulis menyadari bahwa dalam penyelesaian tugas akhir ini mungkin masih

banyak kekurangan, maka dari kritik dan saran sangat penulis harapkan untuk

perbaikan di masa mendatang. Akhir kata, penulis mengucapkan banyak

terimakasih semoga tugas akhir ini dapat bermanfaat untuk ke depannya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

xi

DAFTAR ISI

ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES, AES,

BLOWFISH DAN TWOFISH PADA DOKUMEN............................................................ i

HALAMAN PERSETUJUAN ........................................................................................... iii

HALAMAN PENGESAHAN.............................................................................................iv

PERNYATAAN LEMBAR KEASLIAN KARYA ............................................................ v

LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN

AKADEMIS .......................................................................................................................vi

ABSTRAK ........................................................................................................................ viii

ABSTRACT ........................................................................................................................ ix

KATA PENGANTAR ........................................................................................................ x

DAFTAR ISI ....................................................................................................................... xi

DAFTAR GAMBAR ........................................................................................................ xiv

DAFTAR GRAFIK ............................................................................................................ xv

DAFTAR RUMUS ........................................................................................................... xvi

BAB I .................................................................................................................................. 1

1.1. Latar Belakang .............................................................................................................. 1

1.2. Rumusan Masalah ........................................................................................................ 3

1.3. Tujuan Penelitian .......................................................................................................... 3

1.4. Batasan Masalah ........................................................................................................... 3

1.5. Manfaat Penelitian ........................................................................................................ 4

1.6. Metode Penelitian .......................................................................................................... 4

1.7. Sistematika Penulisan ................................................................................................... 5

BAB II ................................................................................................................................. 6

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

xii

2.1. Kriptografi ..................................................................................................................... 6

2.1.1. Kriptografi simetris ................................................................................................. 6

2.1.2. Kriptografi Asimetris............................................................................................... 7

2.2. DES (Data Encryption Standard) .................................................................................. 8

2.2.1. Algoritma DES .................................................................................................. 9

2.3. 3DES (Triple Data Encryption Standard) ................................................................... 10

2.4. AES (Advance Encrytion Standard) ........................................................................... 10

2.4.1. Algoritma AES ...................................................................................................... 12

2.5. Blowfish ........................................................................................................................ 15

2.5.1. Algoritma Blowfish .......................................................................................... 16

2.6. Twofish ......................................................................................................................... 18

2.6.1. Algoritma Twofish ................................................................................................ 19

BAB III ............................................................................................................................. 22

3.1. Alat Penelitian ............................................................................................................... 22

3.1.1. Hardware ............................................................................................................... 22

3.1.2. Software ................................................................................................................. 22

3.2. Pembuatan Alat Uji ....................................................................................................... 22

1. Studi Literatur ........................................................................................................... 22

2. Pengumpulan Bahan Penelitian ................................................................................ 22

3. Implementasi ............................................................................................................. 22

3.3. Parameter Unjuk Kerja ................................................................................................. 23

3.4. Desain Alat Uji ............................................................................................................. 24

4.1. Hasil Pengujian Sistem ................................................................................................. 26

4.1.1. Perbandingan Running Time proses enkripsi. .................................................. 26

4.1.2. Perbandingan Running Time proses dekripsi ........................................................ 27

4.1.3. Perbandingan Avalanche kunci. ............................................................................ 28

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

xiii

4.1.4. Perbandingan Avalanche pesan. ............................................................................ 29

BAB V .............................................................................................................................. 31

5.1 KESIMPULAN ............................................................................................................. 31

5.2 SARAN ......................................................................................................................... 31

DAFTAR PUSTAKA ....................................................................................................... 32

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

xiv

DAFTAR GAMBAR

Gambar 1. Skema Proses Enkripsi dan Dekripsi ............................................. 6

Gambar 2. Proses Kriptografi Simetris ............................................................ 7

Gambar 3. Proses Kriptografi Asimetris .......................................................... 7

Gambar 4. Proses Algoritma DES ................................................................... 9

Gambar 5. Proses Algoritma 3DES ................................................................. 10

Gambar 6. Enkripsi AES .................................................................................. 11

Gambar 7. Kombinasi Kunci-Blok Putaran ..................................................... 11

Gambar 8. Algoritma AES ............................................................................... 13

Gambar 9. Add Round Key .............................................................................. 13

Gambar 10. Sub Bytes ..................................................................................... 14

Gambar 11. Shift Rows .................................................................................... 14

Gambar 12. Mix Column ................................................................................. 15

Gambar 13. Struktur Feistel ............................................................................. 17

Gambar 14. Fungsi Feistel ............................................................................... 18

Gambar 15. Proses Algoritma Twofish ............................................................ 19

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

xv

DAFTAR GRAFIK

Grafik 1. Perbandingan Runtime Enkripsi ....................................................... 26

Grafik 2. Perbandingan Runtime Dekripsi ....................................................... 27

Grafik 3. Perbandingan Avalanche Kunci ....................................................... 28

Grafik 4. Perbandingan Avalanche Kunci ....................................................... 29

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

xvi

DAFTAR RUMUS

Rumus 1. Ekspansi Kunci Blowfish ................................................................ 16

Rumus 2. Fungsi Feistel ................................................................................... 17

Rumus 3. Running Time .................................................................................. 23

Rumus 4. Avalanche Effect ............................................................................. 23

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Pada perkembangan era digital saat ini, keamanan suatu informasi

adalah suatu hal sangat penting. Penyadapan informasi yang rahasia pun

sering terjadi. Sehingga perlu adanya perlindungan pada informasi

tersebut, salah satunya yaitu dengan kriptografi. Kriptografi adalah suatu

penyandian untuk melindungi informasi dengan menggunakan algoritma

tertentu, sehingga informasi yang rahasia dapat terlindungi dari

penyadapan. Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses

dan proses dekripsi. Proses enkripsi adalah proses penyandian pesan

terbuka menjadi pesan yang rahasia atau biasa disebut chipertext.

Chipertext inilah yang nantinya akan dikirimkan melalui saluran terbuka.

Sedangkan proses dekripsi adalah dimana pesan chipertext yang sudah

dikirimkan diubah kembali ke dalam pesan terbuka oleh penerima.

Algoritma kriptografi itu sendiri yang biasa digunakan adalah DES (Data

Encryption Standard), AES (Advance Encryption Standard), Blowfish,

Twofish, 3DES (Triple Data Encryption Standard) dll.

Setiap algoritma mempunyai spesifikasi, karakter yang berbeda dan

mempunyai kelebihan dan kelemahan masing-masing. Pada dasarnya hal

yang penting pada proses enkripsi adalah pada kuncinya, dan penentuan

algoritma yang tepat juga mempengaruhi performansi proses enkripsi.

Sehingga informasi yang ingin dilindungi akan lebih aman. Di sini penulis

ingin mencoba membandingkan unjuk kerja algoritma DES, 3DES, AES ,

Twofish dan Blowfish.

DES termasuk ke dalam sistem kriptografi simetri dan tergolong

jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. DES

mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan

menggunakan 56 bit kunci internal (internal key) atau lupa-kunci (subkey).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

2

Kunci internal dibangkitkan dari kunci eksternal (external key) yang

panjangnya 64 bit.

3DES adalah salah satu sistem enkripsi berlapis tiga dari sistem

yang sebelumnya sudah ada, yaitu DES (Data Encryption Standard).

3DES lebih aman dari DES, karena mengalami enkripsi tiga kali. Pada

awalnya, ukuran kunci sandi DES yaitu 56 bit sudah mencukupi pada

saat algoritme ini dibuat. Namun, dengan meningkatnya kemampuan

komputasi, serangan brutal telah mungkin terjadi. Triple DES

menyediakan metode yang sederhana dengan menambah ukuran kunci

DES untuk mencegah serangan tersebut, tanpa memerlukan perancangan

sandi blok (block cipher) yang sama sekali baru.

AES merupakan algoritma cipher yang cukup aman untuk

melindungi data atau informasi yang bersifat rahasia. AES dikeluarkan

oleh National Institute of Standard and Technology (NIST) sebagai

standard algoritma kriptografi untuk menggantikan DES yang sudah tak

dipakai pada tahun 2002 karena tidak bisa mengikuti perkembangan

teknologi infomasi yang cepat.

Blowfish merupakan algoritma kunci simetris blok cipher yang

hadir lebih dulu untuk alternatif menggantikan DES pada tahun 1993 oleh

Bruce Schenier. Kedua algoritma diatas merupakan algoritma kunci

simetri dan merupakan algoritma lanjutan untuk menggantikan DES (Data

Encryption Standard), inilah yang membuat penulis menjadikan

perbandingan kedua algoritma tersebut sebagai topik penelitian.

Twofish merupakan algoritme kriptografi yang beroperasi dalam

mode blok cipher berukuran 128 bit dengan ukuran kunci sebesar 256 bit,

ukuran kunci yang besar ditujukan untuk meniadakan kemungkinan kunci

lemah (weak-key). Algoritme Twofish sendiri merupakan pengembangan

dari algoritme Blowfish. Perancangan Twofish dilakukan dengan

memperhatikan kriteria-kriteria yang diajukan National Institute of

Standards and Technology (NIST) untuk kompetisi Advanced Encryption

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

3

Standard (AES), tetapi algoritme ini tidak terpilih sebagai basis

standardisasi.

1.2. Rumusan Masalah

Berdasarkan latar belakang yang telah di paparkan, rumusan masalah yang

di dapat penulis adalah :

a. Bagaimana performansi yang dihasilkan algoritma DES, 3DES, AES,

Blowfish dan Twofish dalam melakukan proses enkripsi dan proses

dekripsi pada dokumen ?

1.3. Tujuan Penelitian

Tujuan dari penelitian ini adalah :

a. Mengetahui running time / waktu yang dibutuhkan untuk melakukan

proses enkripsi dan dekripsi pada algoritma DES, 3DES, AES,

Blowfish dan Twofish.

b. Mengetahui avalanche effect / berapa banyak perubahan bit yang

dihasilkan jika pesan atau kunci diubah karakternya.

1.4. Batasan Masalah

Batasan masalah dalam penelitian ini adalah :

a. Algoritma kriptografi yang diuji adalah algoritma DES, 3DES, AES,

Blowfish dan Twofish.

b. Pengujian dilakukan menggunakan Java Cryptography Extention.

c. Tipe data yang digunakan sebagai plaintext adalah berupa dokumen

text.

d. Metrik unjuk kerja yang akan digunakan adalah avalanche effect dan

running time.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

4

1.5. Manfaat Penelitian

Hasil dari penelitian ini diharapkan dapat digunakan sebagai perbandingan

dalam memilih algoritma untuk melakukan enkripsi pesan sesuai

kebutuhan supaya permormansi lebih efisien.

1.6. Metode Penelitian

Metode yang dilakukan dalam penelitian ini meliputi :

a. Studi pustaka

Membaca referensi buku dan jurnal yang berkaitan dengan teori

kriptografi.

b. Pengumpulan bahan penelitian

Pengumpulan data untuk penelitian menggunakan software dan tools

untuk melakukan penelitian.

c. Pembuatan alat uji

Perancangan system dilakukan untuk menguji parameter unjuk kerja

yang akan dibandingkan.

d. Pengujian

Dalam tahap ini akan dilakukan pengujian untuk mengetahui

performansi algoritma kriptografi dari DES, 3DES, AES, Blowfish

dan Twofish.

e. Analisi hasil pengujian

Dalam tahap ini akan dianalisis performansi algoritma.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

5

1.7. Sistematika Penulisan

BAB I : PENDAHULUAN

Bab ini berisi penjelasan tentang latar belakang masalah, rumusan

masalah, tujuan penelitian, manfaat penelitian, batasan masalah,

metode penelitian, dan sistematika penulisan

BAB II : LANDASAN TEORI

Bab ini berisi tentang teori tentang Algoritma DES, 3DES, AES,

Blowfish dan Twofish yang digunakan sebagai dasar dalam

mengukur unjuk kerja proses enkripsi dan dekripsi.

BAB III : METODE PENELITIAN

Bab ini berisi tentang data penelitian, alat penelitian, langkah-

langkah pengujian.

BAB IV : HASIL DAN ANALISIS

Bab ini berisi tentang hasil pengujian serta analisis dari hasil data

yang sudah diuji.

BAB V : KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan hasil penelitian dan saran dari

penulis untuk penelitian selanjutnya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

6

BAB II

LANDASAN TEORI

2.1. Kriptografi

Kata kriptografi berasal dari bahasa Yunani, “kryptós” yang berarti

tersembunyi dan “gráphein” yang berarti tulisan. Kriptografi mempunyai

dua bagian penting, yaitu enkripsi dan deskripsi. Enkripsi adalah proses

penyandian dari pesan asli (plaintext) menjadi pesan yang tidak dapat

diartikan (ciphertext). Sedangkan dekripsi sendiri berarti merubah pesan

yang sudah disandikan (ciphertext) menjadi pesan aslinya (plaintext).

Adapun algoritma matematis yang digunakan pada proses enkripsi yakin

disebut cipher dan sistem yang memanfaatkan kriptografi untuk

mengamankan sistem informasi disebut kriptosistem. Pada gambar 1

adalah skema proses enkripsi dan dekripsi.

Gambar 1. Skema proses enkripsi dan dekripsi

Teknik kriptografi untuk enkripsi data ada dua macam yaitu :

2.1.1. Kriptografi simetris

Kriptografi simetris adalah algoritma yang menggunakan kunci

yang sama untuk proses enkripsi dan proses deskripsi. Algoritma

kriptografi simetris dibagi menjadi dua kategori yaitu algoritma aliran

(Stream Ciphers) dan algoritma blok (Block Ciphers). Dimana pada

algoritma aliran, proses penyandiannya akan beriorientasi pada satu

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

7

bit/byte data. Sedangkan pada algoritma blok, proses penyandiannya

berorientasi pada sekumpulan bit/byte data (per blok). Adapun contoh

algoritma kunci simetris adalah DES (Data Encryption Standard),

Blowfish, Twofish, MARS, IDEA, 3DES (DES diaplikasikan 3 kali),

AES (Advanced Encryption Standard) yang bernama asli

Rijndael. Pada gambar 2 merupakan proses kriptografi dengan teknik

simetris.

Gambar 2. Proses kriptografi simetris

2.1.2. Kriptografi Asimetris

Kriptografi asimetris adalah algoritma yang menggunakan kunci yang

berbeda untuk proses enkripsi dan deskripsi. Dimana kunci enkripsi

dapat disebarkan kepada umum dan dinamakan sebagai kunci publik

(public key), sedangkan kunci deskripsi disimpan untuk digunakan

sendiri dan dinamakan sebagai kunci pribadi (private key). Oleh karena

itu, kriptografi ini dikenal pula dengan nama kriptografi kunci publik

(public key cryptography). Adapun contoh algoritma yang

menggunakan kunci asimetris adalah RSA (Riverst Shamir Adleman)

dan ECC (Elliptic Curve Cryptography). Pada gambar 3 adalah proses

kriptografi dengan teknik asimetris.

Gambar 3. Proses Kriptografi asimetris

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

8

Tujuan dari kriptografi itu sendiri ialah :

a. Kerahasiaan : layanan yang digunakan untuk menjaga isi dari

informasi dari siapapun kecuali yang memiliki otoritas atau kunci

rahasia untuk membuka maupun menghapus informasi yang telah

disandi.

b. Integritas data : berhubungan dengan penjagaan dari perubahan

data secara tidak sah. Untuk menjaga integritas data, sistem harus

memiliki kemampuan untuk mendeteksi manipulasi data oleh

pihak-pihak yang tidak berhak, antara lain penyisipan,

penghapusan dan pensubstitusian data lain kedalam data yang

sebenarnya.

c. Authentifikasi : berhubungan dengan identifikasi atau pengenalan,

baik secara kesatuan sistem maupun informasi itu sendiri. Dua

pihak yang saling berkomunikasi harus saling memperkenalkan

diri. Dimana inforamsi yang dikirimkan melalui kanal harus

diauthentifikasi keaslian, isi datanya, waktu pengiriman dan lain-

lain.

d. Non-repudiasi : usaha untuk mencegah terjadinya penyangkalan

terhadap pengiriman atau terciptanya suatu informasi oleh yang

mengirimkan atau membuat.

2.2. DES (Data Encryption Standard)

Algoritma DES dikembangkan di IBM dibawah kepemimpinan

W.L.Tuchman pada tahun 1972. Algoritma ini telah disetujui oleh

National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh

National Security Agency (NSA) Amerika Serikat. DES termasuk ke

dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES

beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit

plainteksmenjadi 64 bit cipherteks dengan menggunakan 56 bit kunci

internal (internal key)atau upa-kunci (subkey). Kunci internal

dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

9

2.2.1. Algoritma DES

a. Blok plainteks dipermutasi dengan matriks permutasi awal

initial permutation atau IP).

b. Hasil permutasi awal kemudian di-enciphering- sebanyak 16

kali (16 putaran). Setiap putaran menggunakan kunci

internal yang berbeda.

c. Hasil enciphering kemudian dipermutasi dengan matriks

permutasi balikan (invers initial permutation atau IP -1 )

menjadi blok cipherteks.

Gambar 4. Proses Algoritma DES

Di dalam proses enciphering, blok plainteks terbagi

menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing

panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran

DES. Pada setiap putaran i, blok R merupakan masukan untuk

fungsi transformasi yang disebut f. Pada fungsi f, blok R

dikombinasikan dengan kunci internal K i . Keluaran dai fungsi f

di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru.

Sedangkan blok L yang baru langsung diambil dari blok R

sebelumnya. Ini adalah satu putaran DES. Secara matematis, satu

putaran DES dinyatakan sebagai :

Ø L i = R i – 1

Ø R i = L i – 1 f(R i – 1 , K i )

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

10

2.3. 3DES (Triple Data Encryption Standard)

3DES (Triple Data Encryption Standard) merupakan suatu

algoritma pengembangan dari algoritma DES (Data Encryption

Standard). Pada dasarnya algoritma yang digunakan sama, hanya pada

3DES dikembangkan dengan melakukan enkripsi dengan implementasi

algoritma DES sebanyak tiga kali. 3DES memiliki tiga buah kunci yang

berukuran 168-bit (tiga kali kunci 56-bit dari DES). Pada algoritma

3DES dibagi menjadi tiga tahap, setiap tahapnya merupakan

implementasi dari algoritma DES.

Gambar 5. Proses Algoritma Triple DES

2.4. AES (Advance Encrytion Standard)

AES atau bisa juga disebut Rijndael merupakan algoritma kunci

simetris blok cipher yang menggunakan kunci kriptografi 128, 192 dan

256 bit untuk melakukan enkripsi dan dekripsi data pada 128 bit.

Algoritma AES menggunakan sistem permutasi dan substitusi (P-Box dan

S-Box) dan terbagi menjadi tiga jenis, yaitu AES-128, AES-192 dan AES-

256.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

11

Gambar 6. Enkripsi AES

Untuk algoritma AES, panjang kunci cipher, K, adalah 128, 192,

atau 256 bit. Panjang kunci diwakili oleh Nk = 4, 6, atau 8, yang

merupakan jumlah kata 32-bit (jumlah kolom) dalam kunci cipher.

Panjang blok input, blok output dan state adalah 128 bit. Ini diwakili oleh

Nb = 4, yang merupakan jumlah kata 32-bit (jumlah kolom) di state.

Jumlah putaran yang harus dilakukan selama eksekusi algoritma

tergantung pada ukuran kunci. Jumlah putaran diwakili oleh Nr, di mana

Nr = 10 ketika Nk = 4, Nr = 12 ketika Nk = 6, dan Nr = 14 ketika Nk = 8.

untuk lebih jelas bisa lihat tabel 1 dibawah ini.

Gambar 7. Kombinasi Kunci-Blok-Putaran

Dengan panjang kunci 128-bit, maka terdapat = 3,4 x 1038

kemungkinan kunci. Jika digunakan 1 juta komputer yang masing-masing

memiliki kemampuan mencoba 1 juta kunci per detik, maka akan

diperlukan waktu 5,4 trilyun tahun untuk mencoba seluruh kemungkinan

kunci (Yusuf, Kurniawan, 2004).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

12

Algoritma AES mempunyai 3 (tiga) parameter :

a. plainteks adalah array yang berukuran 16-byte, yang berisi data

masukkan.

b. Cipherteks adalah array yang berukuran 16-byte, yang berisi hasil

enkripsi.

c. Kunci adalah array yang berukuran 16-byte, yang berisi kunci cipher

(disebut juga cipher key).

2.4.1. Algoritma AES

Garis besar Algoritma AES yang beroperasi pada blok 128-bit

dengan kunci 128-bit adalah sebagai berikut (di luar proses

pembangkitan round key) :

1. AddRoundKey: melakukan XOR antara state awal (plainteks)

dengan cipher key. Tahap ini disebut juga initial round.

2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap

putaran adalah:

a. SubBytes : substitusi byte dengan menggunakan table

substitusi (S-box).

b. ShiftRows : pergeseran baris-baris array state secara

wrapping.

c. MixColumns : mengacak data di masing-masing kolom

array state.

d. AddRoundKey: melakukan XOR antara state sekarang round

key.

3. Final round: proses untuk putaran terakhir:

a. SubBytes

b. ShiftRows

c. AddRoundKey

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

13

Secara umum metode yang digunakan dalam pemrosesan

enkripsi dalam algoritma ini dapat dilihat pada gambar dibawah

ini.

Gambar 8. algoritma AES

- Add Round Key

Pada AddRoundKey disini akan mengkombinasikan

chipertext yang sudah ada dengan chipertext yang chiperkey

dengan hubungan XOR. Operasi XOR akan mengembalikan nilai 1

jika jumlah operan bernilai satu ganjil, jika tidak akan

menghasilkan 0.

Gambar 9. Add Round Key

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

14

- Sub Bytes

Prinsip dari Sub Bytes adalah menukar isi matriks/tabel yang

ada dengan matriks/tabel lain yang disebut dengan Rijndael S-Box.

Cara pensubstitusian adalah untuk setiap byte pada array state,

misalkan S[r,c] = xy, yang dalam hal ini xy adalah digit

heksadesimal dari nilai S’[r,c], maka nilai substitusinya,

yang dinyatakan dengan S’[r,c], adalah elemen di dalam S-Box

yang merupakan perpotongan baris x dengan kolom y.

Gambar 10. Sub Bytes

- Shift Rows

Pada ShiftRows() melakukan pergerseran wrapping (sikklik)

pada 3 baris terkhir dari array state, baris pertama tidak bergeser.

Jumlah pergeseran bergantung nilai baris (r). Baris r = 1 digeser

sejauh 1 byte, baris r = 2 digeser 2 byte, dan baris r = 3 digeser

sejauh 3 byte. Baris r = 0 tidak digeser.

Gambar 11. Shift Rows

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

15

- Mix Columns

Pada mix columns tiap elemen dari blok chiper akan dikalikan

dengan tabel matriks mix column. Mengalikan array state dengan

suatu polinom a(x) mod (x8+x4+x3+x+1).

Gambar 12. Mix Column

Proses metode ini berlangsung mulai dari ronde kedua sampai ronde

kesepuluh tetapi pada ronde kesepuluh mix columns tidak dilakukan lagi.

Dan hasil dari add round key lah yang dijadikan sebagai chipertext dari

algoritma AES.

2.5. Blowfish

Blowfish adalah suatu algoritma kriptografi yang beroperasi pada

mode blok. Blowfish menggunakan jaringan Feistel(x) yang terdiri dari 16

putaran dengan data ukuran 64 bit. Panjang kunci yang digunakan

bervariasi dengan panjang kunci maksimal 448 bit. Blowfish

menggunakan subkunci yang besar. Subkunci ini harus dihitung sebelum

proses enkripsi atau dekripsi dilakukan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

16

2.5.1. Algoritma Blowfish

1. Ekspansi Kunci

Ekspansi kunci adalah proses untuk membangkitkan subkunci

yang langkabnya adalah sebagai berikut :

a. Inisialisasi delapan belas P-array dan kemudian empat buah

S-Box secara berurutan dengan string yang tetap. String ini

terdiri atas digit heksadesimal bilangan pi (x), contoh :

P1 = Ox243f6a88

P2 = Ox85a308d3

P3 = Ox13198a2e

P4 = Ox3707344

b. XOR P1 dengan 32-bit pertama dari kunci, XOR P2 dengan

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

kunci (mungkin sampai P14). Ulangi terhadap bit kunci

sampai seluruh P-array di-XOR dengan bit kunci.

c. Enkripsi semua string no1 dengan algoritma Blowfish

dengan menggunakan subkunci seperti dijelaskan pada

langkah (I) dan (2).

d. Ganti P1 dan P2 dengan keluaran dari langkah (3).

e. Enkripsi keluaran dari langkah (3) dengan algoritma

Blowfish dengan subkunci yang sudah dimodifikasi.

f. Ganti P3 dan P4 dengan keluaran dari langkah (5).

g. Lanjutkan proses tersebut, ganti seluruh elemen dari P-

array, dengan keluaran yang berubah secara kontinu dari

algoritma Blowfish.

Total iterasi yang diperlukan untuk menghasilkan subkunci

Blowfish ini adalah :

) )

Rumus 1. Ekspansi Kunci Blowfish

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

17

2. Proses Enkripsi Blowfish

Input proses kripsi merupakan plaintext 64-bit, X. Untuk

mengenkripsi X dilakukan langkah-langkah sebagai berikut :

a. Bagi x menjadi setengah bagian, feistel(x) = 64 bit dibagi 2

maka menjadi 32 bit. Hasil pembagian ini menjadi xL dan xR.

b. xL = xL XOR Pi

xR = F (xL) XOR xR

Tukar xL dan xR

Hentikan pertukaran pada putaran terakhir.

c. xR = xR XOR P17

d. xL = xL XOR P18

e. Menggabungkan kembali xL dan xR

Gambar 13. Struktur Feistel

Fungsi Feistel sebagai berikut :

Bagi xL menjadi empat bagian delapan-bit: a, b, c, dan d

) (( ) )

Rumus 2. Fungsi Feistel

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

18

Gambar 14. Fungsi Feistel

3. Proses Dekripsi Blowfish

Proses dekripsi pada algoritma ini dilakukan dengan

langkah yang sama dengan enkripsi, kecuali P1,P2,...,P18

digunakan dengan urutan yang terbalik dari proses enkripsi.

2.6. Twofish

Twofish merupakan algoritma kriptografi yang beroperasi dalam

mode blok cipher berukuran 128 bit dengan ukuran kunci sebesar 256 bit,

ukuran kunci yang besar ditujukan untuk meniadakan kemungkinan kunci

lemah (weak-key). Algoritma twofish menggunakan struktur sejenis

Feistel dalam 16 putaran dengan tambahan teknik whitening terhadap

input dan output. Teknik whitening sendiri adalah teknik melakukan

operasi XOR terhadap materi kunci sebelum putaran pertama dan sesudah

putaran akhir. Elemen di luar jaringan feistel normal yang terdapat dalam

algoritma twofish adalah rotasi 1 bit. Proses rotasi ini dapat dipindahkan

ke dalam fungsi F untuk membentuk struktur jaringan Feistel yang murni,

tetapi hal ini membutuhkan tambahan rotasi kata sebelum langkah output

whitening. Twofish memanfaatkan teknik pemanipulasian bit , kotak

permutasi / pemutihan, jaringan feistel, pemutaran ulang dan pergiliran

kunci dengan jumlah perputaran dan pergiliran kunci sebanyak 16 kali ,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

19

tranformasi pseudo-Hadamard , ekspansi dan filter , dan kotak MDS (Most

Distance Separable).

2.6.1. Algoritma Twofish

Gambar 15. Proses Algoritma Twofish

1. Masukan satu blok plain teks adalah 128 bit. Satu blok tersebut

dibagi menjadi 4 buah subblok yang masing-masing sepanjang 32

bit (A, B, C, dan D).

2. Masing-masing subblok tersebut diputihkan dengan mengxorkan

dengan kunci K0, K1, K2, dan K3.

Langkah-langkah 1 putaran adalah sebagai berikut:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

20

3. 2 buah 32 bit yang kiri (A dan B) merupakan input dari fungsi g

(yang merupakan bagian dari fungsi f), yang salah satunya (B) di

geser ke kiri sejauh 8 bit dahulu.

4. Fungsi g memiliki 4 buah kotak substitusi yang dibangkitkan oleh

kunci.

5. Keluaran fungsi kotak substitusi dilakukan percampuran linear

menggunakan kotak Most Distance Separable

6. Keluaran fungsi g dimasukkan ke fungsi transformasi pseudo-

Hadamard, kemudian ditambahkan dengan 2 buah 32 bit dari

kunci.

7. Dua buah 32 bit hasil kemudian di xor kandengan C dan D. Hasil

xor dengan C digeser ke kanan sejauh 1 bit. Dan untuk D sebelum

dixorkan digeser ke kiri sejauh 1 bit.

8. 2 buah 32 bit kiri dan kanan dipertukarkan (A dan B dipertukarkan

dengan C dan D).

1. Langkah diatas dilakukan hingga 16 kali putaran.

Kemudian langkah-langkah selanjutnya :

9. Hasil keluaran setelah diputar 16 kali, ditukar lagi (A dan B

dipertukarkan dengan C dan D).

10. Hasil dari pertukaran tersebut di xorkan dengan empat buah 32 bit

dari kunci menghasilkan cipher teks.

Fungsi F

Fungsi F adalah permutasi yang bergantung pada kunci dengan

nilai 64 bit. Fungsi ini menerima 3 argumen, dua buah 32 bit

R0 dan R1, dan nomor putaran untuk menentukan subkunci

mana yang dipakai. R0 akan diserahkan ke fungsi g yang akan

mengembalikan T0. R1 akan digeser sejauh 8 bit yang

kemudian di berikan juga ke fungsi g yang akan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

21

mengembalikan T1. Hasil T0 danT1 kemudian dikombinasikan

ulang menggunakan transformasi pseudo-Hadamard, yang

kemudian ditambahkan dengan dua buah 32 bit dari kunci.

T0 = g(R0);

T1 = g (shift Left (R1,8));

F0 = (T0+T1+K2r+8) mod 232;

F1 = (T0+2T1+K2r+9) mod 232;

F0 dan F1 adalah hasil dari F, yang masing-masing sepanjang

32 bit. Hasil keluaran ini nantinya akan dipertukarkan dan

dimasukkan kembali ke putaran selanjutnya.

Fungsi G

Fungsi g merupakan jantung dari keseluruhan algoritma

twofish. 32 bit masukan X dari fungsi F dipecah menajdi 4

buah yang masing-masing sepanjang 8 bit. Setiap 8 bit

kemudian diproses dengan kotak S yang bersesuaian. Setiap

kotak S bersifat bijektif, yaitu menerima 8 bit dan

mengeluarkan 8 bit pula. 4 buah 8 bit hasil keluaran kemudian

dikalikan dengan matriks Most Distance Separable (MDS) 4x4.

Hasil pengalian kemudian diartikan sebagai 32 bit, yang

merupakan keluaran dari fungsi g, yang kemudian akan

dikembalikan kembali ke fungsi F. Matriks MDS yang setiap

elemennya ditampilkan sebagai heksadesimal.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

22

BAB III

METODE PENELITIAN

3.1. Alat Penelitian

3.1.1. Hardware

- Prosessor AMD 9-9420 Radeon R5, 5 Compute Cores 3 GHz

- RAM 4,00 GB

3.1.2. Software

- Java Cryptogaphy Encrytion dari JDK (Java Development Kit) 64 bit.

- NetBeans IDE 8.2

- System Operation Windows 10, 64 bit

3.2. Pembuatan Alat Uji

1. Studi Literatur

Studi pustaka dilakukan dengan membaca jurnal yang berkaitan dengan

enkripsi dan dekripsi dari algoritma DES, 3DES, AES, Blowfish dan

Twofish. Dan Java Encryption Extention.

2. Pengumpulan Bahan Penelitian

Analisis kelas java, java collection dan struktur data yang dibutuhkan

untuk mengimplementasikan nilai parameter pengujian dengan Java

Cryptography Extention.

3. Implementasi

Implementasi dari kelas java, java collection dan truktur data yang sudah

dianalisis menggunakan Java Cryptography Extention.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

23

3.3. Parameter Unjuk Kerja

Dalam penelitian ini, untuk mengevaluasi unjuk kerja algoritma AES dan

Blowfish adalah dengan matrik unjuk kerja sebagai berikut :

a. Running Time

Running Time adalah waktu yang dibutuhkan oleh sebuah algoritma

untuk menyelesaikan proses enkripsi maupun dekripsi. Running Time

dihitung mulai dari algoritma dimulai sampai algoritma berhenti.

– )

Rumus 3. Running Time

waktu akhir = waktu yang diambil dari akhir proses enkripsi atau

dekripsi.

waktu awal = waktu yang diambil sebelum melakukan enkripsi atau

dekripsi.

b. Avalanche Effect

Avalanche effect adalah salah satu karakteristik yang menjadi acuan

untuk menentukan baik atau tidaknya sebuah algoritma kriptografi yaitu

perubahan sebuah bit pada plaintext atau kunci yang dapat

menghasilkan perubahan beberapa bit dari ciphertext.

Rumus 4. Avalanche effect

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

24

3.4. Desain Alat Uji

1. Flowchart Running Time Enkripsi

2. Flowchart Running Time Dekripsi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

25

3. Flowchart Avalanche Effect

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

26

BAB IV

PENGUJIAN DAN ANALISIS

Untuk melakukan evaluasi terhadap unjuk kerja algoritma DES, 3DES, AES,

Blowfish dan Twofish, maka dilakukan pengujian dengan menggunakan rancangan

skenario yang sudah dijelaskan pada Bab III, Data diperoleh dari output yang

dihasilkan ketika sistem berlangsung dan kemudian menjadi bahan untuk

dilakukan analisis. Setelah melakukan pengujian program enkripsi dan dekripsi

maka didapatkan hasil sebagai berikut :

4.1. Hasil Pengujian Sistem

4.1.1. Perbandingan Running Time proses enkripsi.

Grafik 1. Perbandingan Runtime Enkripsi

Pada grafik 1 menunjukkan perbandingan running time saat melakukan enkripsi

data. algoritma twofish dapat melakukan proses enkripsi lebih cepat dari algoritma

15

49

20

00

15

80

18

77

22

5 27

67

41

13

20

85

23

85

23

00

41

21

73

67

28

32

31

64

24

41

0

1000

2000

3000

4000

5000

6000

7000

8000

DES TDES AES BLOWFISH TWOFISH

ENKRIPSI

1 MB

25 MB

50 MB

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

27

lainnya pada size dokumen 1MB yaitu 225ms. Sedangkan pada algoritma lainnya

mendapat waktu diatas 1000ms. 3DES pada size 50MB mencatat waktu paling

lama dari yang lain yaitu mencapai 7367 ms.

4.1.2. Perbandingan Running Time proses dekripsi

Grafik 2. Perbandingan Runtime Dekripsi

Pada grafik 2 menunjukkan perbandingan running time saat melakukan dekripsi

data. Waktu yang dibutuhkan untuk melakukan dekripsi tidak terlalu berbeda dari

enkripsi, karena algoritma diatas menggunakan kunci simetris. Algoritma twofish

mendapat waktu paling cepat pada ukuran 1MB yaitu 465ms. Dan 3DES

membutuhkan waktu yang lebih lama dari algoritma lainnya.

16

81

21

00

19

71

18

57

46

5 27

20

48

33

20

67

21

65

24

40

42

38

70

60

22

19

29

72

23

74

0

1000

2000

3000

4000

5000

6000

7000

8000

DES TDES AES BF TF

DEKRIPSI

1 MB

25 MB

50 MB

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

28

4.1.3. Perbandingan Avalanche kunci.

Grafik 3. Perbandingan Avalanche Kunci

Avalanche Kunci

DES TDES AES BLOWFISH TWOFISH

Variasi 1 huruf 30,55 32,87 35,18 36,11 33,33

Variasi 2 huruf 35,64 36,57 40,74 31,01 32,87

Variasi 3 huruf 30,09 35,18 31,94 30,55 30,55

variasi DES TDES AES BLOWFISH TWOFISH

1 huruf 66/216 71/216 76/216 78/216 72/216

2 huruf 77/216 79/216 88/216 67/216 71/216

3 huruf 65/216 76/216 69/216 66/216 66/216

pesan key Variasi Key

Advensius Putra MyKey

MyKee MyKit MyHop Tabel 1. Avalanche Effect Kunci

Pada tabel 1. Menunjukkan perbandingan avalanche effect dari kunci. Pada variasi

1 huruf, algoritma Blowfish menghasilkan avalanche paling besar yaitu 36,11%

dengan perubahan bit 78 dari total bit 216. Pada variasi 2 huruf algoritma AES

menghasilkan avalanche paling besar yaitu 40,74% dengan perubahan bit 88 dari

216 bit. Pada variasi 3 huruf algoritma 3DES menghasilkan avalache paling besar

yaitu 35,18% dengan perubahan bit 76 dari 216 bit. Namun jika dirata-rata dari

30

,55

32

,87

35

,18

36

,11

33

,33

35

,64

36

,57

40

,74

31

,01

32

,87

30

,09

35

,18

31

,94

30

,55

30

,55

0

5

10

15

20

25

30

35

40

45

DES TDES AES BLOWFISH TWOFISH

Pe

rse

nta

se (

%)

Avalanche Kunci

Variasi 1 huruf

Variasi 2 huruf

Variasi 3 huruf

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

29

semua variasi kunci yang ada, algoritma AES mendapatkan avalache yang paling

besar yaitu 35,9%.

4.1.4. Perbandingan Avalanche pesan.

Grafik 4. Perbandingan Avalanche Pesan

Avalanche Pesan

DES TDES AES BLOWFISH TWOFISH

Variasi 1 huruf 15,27 19,9 34,72 17,59 30,55

Variasi 2 huruf 12,96 15,74 34,25 17,59 28,7

Variasi 3 huruf 16,66 18,05 32,4 19,44 24,07

variasi DES TDES AES BLOWFISH TWOFISH

1 huruf 33/216 43/216 75/216 38/216 66/216

2 huruf 28/216 34/216 74/216 38/216 62/216

3 huruf 36/216 39/216 70/216 42/216 52/216

key Pesan Variasi Pesan

MyKey Advensius Putra

Advensius Putri

Advensius Putlo

Advensius Punce

Tabel 2. Avalanche Effect Pesan

15

,27

19

,9

34

,72

17

,59

30

,55

12

,96

15

,74

34

,25

17

,59

28

,7

16

,66

18

,05

32

,4

19

,44

24

,07

0

5

10

15

20

25

30

35

40

DES TDES AES BLOWFISH TWOFISH

Pe

rse

nta

se (

%)

Avalanche Pesan

Variasi 1 huruf

Variasi 2 huruf

Variasi 3 huruf

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

30

Pada tabel 2. Menunjukkan perbandingan avalanche effect dari pesan. Pada

variasi 1 huruf, algoritma AES menghasilkan avalanche paling besar yaitu 34,72%

dengan perubahan bit 75 dari total bit 216. Pada variasi 2 huruf algoritma AES

menghasilkan avalanche paling besar yaitu 34,25% dengan perubahan bit 74 dari

216 bit. Pada variasi 3 huruf algoritma AES menghasilkan avalache paling besar

yaitu 32,4% dengan perubahan bit 70 dari 216 bit. Pada avalanche pesan

perbandingan algoritma AES dengan yang lainnya sangatlah besar.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

31

BAB V

KESIMPULAN DAN SARAN

5.1 KESIMPULAN

Setelah dilakukan anailis oleh penulis, didapat kesimpulan bahwa semakin

besar ukuran data yang akan dienkripsi maka running time akan semakin lama.

Perubahan bit kunci sangat mempengaruhi isi cipherteks, sehingga avalanche

yang dihasilkan oleh perubahan kunci dapat mengakibatkan perubahan bit yang

besar. Pada avalanche kunci bit yang terjadi jika salah satu hurufnya lebih besar

dari avalanche pesan, penulis menyimpulkan bahwa variasi dari kunci lebih

berpengaruh dari perubahan bit dari ciphertext daripada variasi dari pesan, karena

pengacakan data pesan diacak berdasarkan ekspansi kuncinya. Dan untuk hasil

pengujian kali ini algoritma AES lebih baik dari algoritma lainnya dari semua

parameter unjuk kerja yang di ujikan. AES memiliki persentase lebih besar untuk

avalanche effect dari algoritma lainnya.

5.2 SARAN

Untuk algoritma DES penyandian sangat sederhana dan pola dapat diukur

dengan komputer modern, sedangkan algoritma 3DES membutuhkan waktu yang

lama dalam melakukan enkripsi. Penulis menyarankan untuk menggunakan

algoritma enkripsi yang sudah diperbarui dan dapat digunakan sesuai kebutuhan

kita dalam mengamankan data. AES dan Blowfish sama-sama baik dalam metode

penyandian. Semoga untuk penelitian selanjutnya dapat memberikan

perbandingan unjuk kerja dari semua algoritma kriptografi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

32

DAFTAR PUSTAKA

[1] https://id.wikipedia.org/wiki/Kriptografi

[2] Munir, Rinaldi., “ Bahan Kuliah IF3058 Kriptografi.”, Program Studi Informatika, Institut

Teknologi Bandung, 2009.

[3] Riyanto, M.Zaki., “Mengenal Kriptografi : Ilmu Pengamanan Rahasia Berbasis Matematika”,

Prodi Matematika, Universitas Islam Negri Sunan Kalijaga, Yogyakarta, 2018.

[4] National Institute of Standards and Technology, Data Encryption Standard, FIPS PUB 46-3,

U.S. Department of Commerce, October1999.

[5] Charles H. Bennett, Gilles Brassard, \Quantum Cryptography: Pu-blic Key Distribution and

Coin Tossing," International Conference on Computers, Systems and Signal Processing, 1984.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

33

LAMPIRAN

1. Code DES

Generate key DES

public class GenerateKeyDES {

static Key generateKey(String kunciEnkripsi) throws Exception {

Key key = new SecretKeySpec(KonversiByte.konversiKeByte(kunciEnkripsi),

"DES");

return key;

}

static class KonversiByte {

static byte[] konversiKeByte(String kunci) {

byte[] array_byte = new byte[8];

int i = 0;

while (i < kunci.length()) {

array_byte[i] = (byte) kunci.charAt(i);

i++;

}

if (i < 8) {

while (i < 8) {

array_byte[i] = (byte) i;

i++;

}

}

return array_byte;

}

}

}

Enkripsi DES

public class EncryptDES {

public static String encryptDES(String Data, String kunciEnkripsi)

throws Exception {

Cipher c = Cipher.getInstance("DES");

Key key = GenerateKeyDES.generateKey(kunciEnkripsi);

c.init(Cipher.ENCRYPT_MODE, key);

byte[] encVal = c.doFinal(Data.getBytes("UTF-8"));

String encryptedValue = DatatypeConverter.printBase64Binary(encVal);

return encryptedValue;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

34

Dekripsi DES

public class DecryptDES {

public static String decryptDES(String encryptedData, String kunciEnkripsi)

throws Exception {

Cipher c = Cipher.getInstance("DES");

Key key = GenerateKeyDES.generateKey(kunciEnkripsi);

c.init(Cipher.DECRYPT_MODE, key);

byte[] decordedValue = DatatypeConverter.parseBase64Binary(encryptedData);

byte[] decValue = c.doFinal(decordedValue);

String decryptedValue = new String(decValue);

return decryptedValue;

}

}

2. Code 3DES

Generate key 3DES

public class GenerateKeyDESede {

static Key generateKey(String kunciEnkripsi) throws Exception {

Key key = new SecretKeySpec(KonversiByte.konversiKeByte(kunciEnkripsi),

"DESede");

return key;

}

static class KonversiByte {

static byte[] konversiKeByte(String kunci) {

byte[] array_byte = new byte[24];

int i = 0;

while (i < kunci.length()) {

array_byte[i] = (byte) kunci.charAt(i);

i++;

}

if (i < 24) {

while (i < 24) {

array_byte[i] = (byte) i;

i++;

}

}

return array_byte;

}

}

}

Enkripsi 3DES

public class EncryptDESede {

public static String encryptDESede(String Data, String kunciEnkripsi)

throws Exception {

Cipher c = Cipher.getInstance("DESede");

Key key = GenerateKeyDESede.generateKey(kunciEnkripsi);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

35

c.init(Cipher.ENCRYPT_MODE, key);

byte[] encVal = c.doFinal(Data.getBytes("UTF-8"));

String encryptedValue = DatatypeConverter.printBase64Binary(encVal);

return encryptedValue;

}

}

Dekripsi 3DES

public class DecryptDESede {

public static String decryptDESede(String encryptedData, String kunciEnkripsi)

throws Exception {

Cipher c = Cipher.getInstance("DESede");

Key key = GenerateKeyDESede.generateKey(kunciEnkripsi);

c.init(Cipher.DECRYPT_MODE, key);

byte[] decordedValue = DatatypeConverter.parseBase64Binary(encryptedData);

byte[] decValue = c.doFinal(decordedValue);

String decryptedValue = new String(decValue);

return decryptedValue;

}

}

3. Code AES

Generate key AES

public class GenerateKeyAES {

static Key generateKey(String kunciEnkripsi) throws Exception {

Key key = new SecretKeySpec(KonversiByte.konversiKeByte(kunciEnkripsi),

"AES");

return key;

}

static class KonversiByte {

static byte[] konversiKeByte(String kunci) {

byte[] array_byte = new byte[16];

int i = 0;

while (i < kunci.length()) {

array_byte[i] = (byte) kunci.charAt(i);

i++;

}

if (i < 16) {

while (i < 16) {

array_byte[i] = (byte) i;

i++;

}

}

return array_byte;

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

36

Enkripsi AES

public class EncryptAES {

public static String encryptAES(String Data, String kunciEnkripsi)

throws Exception {

Cipher c = Cipher.getInstance("AES");

Key key = GenerateKeyAES.generateKey(kunciEnkripsi);

c.init(Cipher.ENCRYPT_MODE, key);

byte[] encVal = c.doFinal(Data.getBytes("UTF-8"));

String encryptedValue = DatatypeConverter.printBase64Binary(encVal);

return encryptedValue;

}

}

Dekripsi AES

public class DecryptAES {

public static String decryptAES(String encryptedData, String kunciEnkripsi)

throws Exception {

Cipher c = Cipher.getInstance("AES");

Key key = GenerateKeyAES.generateKey(kunciEnkripsi);

c.init(Cipher.DECRYPT_MODE, key);

byte[] decordedValue = DatatypeConverter.parseBase64Binary(encryptedData);

byte[] decValue = c.doFinal(decordedValue);

String decryptedValue = new String(decValue);

return decryptedValue;

}

}

4. Code Blowfish

Generate key Blowfish

public class GenerateKeyBlowfish {

static Key generateKey(String kunciEnkripsi) throws Exception {

Key key = new SecretKeySpec(KonversiByte.konversiKeByte(kunciEnkripsi),

"Blowfish");

return key;

}

static class KonversiByte {

static byte[] konversiKeByte(String kunci) {

byte[] array_byte = new byte[16];

int i = 0;

while (i < kunci.length()) {

array_byte[i] = (byte) kunci.charAt(i);

i++;

}

if (i < 16) {

while (i < 16) {

array_byte[i] = (byte) i;

i++;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

37

return array_byte;

}

}

}

Enkripsi Blowfish

public class EncryptBlowFish {

public static String encryptBlowfish(String Data, String kunciEnkripsi)

throws Exception {

Cipher c = Cipher.getInstance("Blowfish");

Key key = GenerateKeyBlowfish.generateKey(kunciEnkripsi);

c.init(Cipher.ENCRYPT_MODE, key);

byte[] encVal = c.doFinal(Data.getBytes("UTF-8"));

String encryptedValue = DatatypeConverter.printBase64Binary(encVal);

return encryptedValue;

}

}

Dekripsi Blowfish

public class DecryptBlowFish {

public static String decryptBlowfish(String encryptedData, String kunciEnkripsi)

throws Exception {

Cipher c = Cipher.getInstance("Blowfish");

Key key = GenerateKeyBlowfish.generateKey(kunciEnkripsi);

c.init(Cipher.DECRYPT_MODE, key);

byte[] decordedValue = DatatypeConverter.parseBase64Binary(encryptedData);

byte[] decValue = c.doFinal(decordedValue);

String decryptedValue = new String(decValue);

return decryptedValue;

}

}

5. CodeTwofish

Generate key Twofish

public class GenerateKeyTwofish {

static class KonversiByte {

static byte[] konversiKeByte(String kunci) {

byte[] array_byte = new byte[16];

int i = 0;

while (i < kunci.length()) {

array_byte[i] = (byte) kunci.charAt(i);

i++;

}

if (i < 16) {

while (i < 16) {

array_byte[i] = (byte) i;

i++;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

38

return array_byte;

}

}

}

Enkripsi Twofish

public class EncryptTwofish {

public static String encryptTwofish(String cookieValue, String key) throws

InvalidKeyException, UnsupportedEncodingException {

byte[] plainText;

byte[] encryptedText;

Twofish twofish = new Twofish();

// ekspansi kunci

Object keyObject = twofish.makeKey(konversiKeByte(key), 16);

//membuat ukuran blok dengan 16 byte

if ((cookieValue.length() % 16) != 0) {

while ((cookieValue.length() % 16) != 0) {

cookieValue += " ";

}

}

// inisialisasi plainteks/ciphertext

plainText = cookieValue.getBytes("UTF-8");

encryptedText = new byte[cookieValue.length()];

// proses enkripsi

for (int i = 0; i < Array.getLength(plainText); i += 16) {

twofish.encrypt(plainText, i, encryptedText, i, keyObject, 16);

}

String encryptedString = DatatypeConverter.printBase64Binary(encryptedText);

return encryptedString;

}

}

Dekripsi Twofish

public class DecryptTwofish {

public static String decryptTwofish(String cookieValue, String key) throws

InvalidKeyException, UnsupportedEncodingException {

byte[] encryptedText;

byte[] decryptedText;

Twofish twofish = new Twofish();

//ekpansi kunci

Object keyObject = twofish.makeKey(konversiKeByte(key), 16);

//panjang ukuran blok

if ((cookieValue.length() % 16) != 0) {

while ((cookieValue.length() % 16) != 0) {

cookieValue += " ";

}

}

//inisialisasi array plainteks/ciphertext

encryptedText = DatatypeConverter.parseBase64Binary(cookieValue);

decryptedText = new byte[cookieValue.length()];

//iterasi

for (int i = 0; i < Array.getLength(encryptedText); i += 16) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES… · DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Untuk Mendapatkan Gelar

39

twofish.decrypt(encryptedText, i, decryptedText, i, keyObject, 16);

}

String decryptedString = new String(decryptedText, "UTF-8");

return decryptedString;

}

}

6. Code Avalanche Effect

Konversi Biner

public class KonversiBiner {

public static String toBinary(String s) {

String temp = s;

byte[] bytes = s.getBytes();

for (byte b : bytes) {

}

StringBuilder binary = new StringBuilder();

for (byte b : bytes) {

int val = b;

for (int i = 0; i < 8; i++) {

binary.append((val & 128) == 0 ? 0 : 1);

val <<= 1;

}

binary.append(' ');

}

return binary.toString();

}

}

Hamming Distance

public class HammingDistance {

public static int hamDist (String str1, String str2) {

int i = 0, count = 0;

while (i < str1.length()) {

if (str1.charAt(i) != str2.charAt(i)) {

count++;

}

i++;

}

return count;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI