• Tidak ada hasil yang ditemukan

Analisis unjuk kerja Java Cryptography Extension untuk enkripsi dan dekripsi file : studi kasus algoritma aes, des, 3des, dan blowfish.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis unjuk kerja Java Cryptography Extension untuk enkripsi dan dekripsi file : studi kasus algoritma aes, des, 3des, dan blowfish."

Copied!
88
0
0

Teks penuh

(1)

ABSTRAK

Pada saat ini banyak algoritma kriptografi bermunculan, baik itu algoritma yang benar – benar baru, atau algoritma penyempurnaan algoritma yang sebelum nya dirasa sudah tidak cukup kuat untuk mengamankan isi dari file nya. Fitur seperti JCE ( Java Cryptography Extension) masih tidak begitu familiar bagi para programmer sebagai plugin yang nanti nya akan sangat membantu dalam membuat sebuah software yang didalam nya menggunakan algoritma kriptografi. JCE sendiri hampir mendukung semua algoritma yang beredar saat ini, dari mulai algoritma klasik dan modern, simetris dan asimetris. Nantinya di tulisan ini akan dilakukan pengujian dengan cara membuat program dengan memanfaatkan JCE untuk empat algoritma, yaitu aloritma AES, DES 3DES, dan Blowfish. Untuk pengujian dilakukan dengan cara melakukan enkrispi dan dekripsi untuk file yang sama, maksud nya adalah tipe file dan ukuran file akan sama untuk semua algoritma. Setelah itu maka akan diambil data berupa lama waktu enkripsi dan dekripsi, dan banyak nya memori yang digunakan dalam proses enkripsi dan dekripsi. Nanti nya akan diketahui algoritma mana yang paling lambat atau pun yang paling cepat dalam hal proses enkripsi maupun dekripsi, dan juga dapat diketahui algoritma mana yang menggunakan memori paling banyak untuk proses enkripi maupun dekripsi.

(2)

At this time many cryptographic algorithms are springing up, be it the correct algorithm ( the new right ), or refinement algorithm before its not strong enough to secure the contents of the file . Features like JCE ( Java Cryptography Extension) still not so familiar to programmers as a plugin even soon its be very helpful in making a software which in its use of cryptographic algorithms. JCE it self almost support all algorithms that are currently circulating, from getting classic and modern algorithms, symmetric and asymmetric. Later in this paper, the test will be done in a way to make the program by leveraging the JCE to four algorithm, which is AES, DES, 3DES and Blowfish algorithm. For testing performed by enkrispi and decryption for the same file, the intent is the file type and file size will be the same for all algorithms. After that it will be taken in the form of data encryption and decryption time, and much of his memory that will used in the encryption and decryption process. Later the result of the algorithms where the slowest or the fastest in terms of encryption or decryption, and can also be known algorithm which uses the most memory for the process of decryption or encryption.

(3)

i

ANALISIS UNJUK KERJA JAVA CRYPTOGRAPHY EXTENSION

UNTUK ENKRIPSI DAN DEKRIPSI FILE (STUDI KASUS

ALGORITMA AES, DES, 3DES, DAN BLOWFISH)

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Disusun Oleh :

Yohanes Adven Arswindra

105314016

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(4)

ii

ANALYSIS OF THE PERFORMANCE OF JAVA CRYPTOGRAPHY EXTENSION FOR ENCRYPTION DAN DECRYPTION FILE (THE CASE

STUDY ALGORITHM AES, DES, 3DES, AND BLOWFISH)

THESIS

Presented as Partial Fulfillment of the Requirements to Obtain Sarjana Komputer Degree

in Informatics Engineering Department

Created By :

Yohanes Adven Arswindra

105314016

INFORMATICS ENGINEERING STUDY PROGRAM

INFORMATICS ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

(5)
(6)

iv

(7)
(8)
(9)

vii

HALAMAN MOTTO

Pada waktu kamu dicobai, ia akan memberikan kamu jalan keluar

sehingga kamu dapat menanggungnya

( Korintus 10:13c)

There is no way I was born to just pay bills and die.

(10)

viii

ABSTRAK

Pada saat ini banyak algoritma kriptografi bermunculan, baik itu algoritma yang benar – benar baru, atau algoritma penyempurnaan algoritma yang sebelum nya dirasa

sudah tidak cukup kuat untuk mengamankan isi dari file nya. Fitur seperti JCE ( Java Cryptography Extension) masih tidak begitu familiar bagi para programmer sebagai

plugin yang nanti nya akan sangat membantu dalam membuat sebuah software yang

didalam nya menggunakan algoritma kriptografi. JCE sendiri hampir mendukung semua

algoritma yang beredar saat ini, dari mulai algoritma klasik dan modern, simetris dan asimetris. Nantinya di tulisan ini akan dilakukan pengujian dengan cara membuat program dengan memanfaatkan JCE untuk empat algoritma, yaitu aloritma AES, DES

3DES, dan Blowfish. Untuk pengujian dilakukan dengan cara melakukan enkrispi dan dekripsi untuk file yang sama, maksud nya adalah tipe file dan ukuran file akan sama

untuk semua algoritma. Setelah itu maka akan diambil data berupa lama waktu enkripsi dan dekripsi, dan banyak nya memori yang digunakan dalam proses enkripsi dan dekripsi.

Nanti nya akan diketahui algoritma mana yang paling lambat atau pun yang paling cepat dalam hal proses enkripsi maupun dekripsi, dan juga dapat diketahui algoritma mana

yang menggunakan memori paling banyak untuk proses enkripi maupun dekripsi.

Pada proses pengambilan data untuk masing – masing file didapatkan bahwa

algoritma 3DES yang paling lambat dalam proses enkripsi maupun dekripsi. Ini berlaku untuk semua tipe file yang diproses, algoritma 3DES menempati urutan pertama dan

selisih nya lumayan banyak dengan algoritma yang lain. Hampir tiga kali lipat dengan posisi ke dua, yaitu algoritma DES. Untuk algoritma tercepat di tempati oleh algoritma Blowfish dan terpaut sangat sedikit dengan algoritma AES. Untuk hasil file nya sendiri

tidak mengalami error, artinya file awal identik dengan hasil file setelah mengalami proses enkripsi maupun dekripsi. File tidak mengalami redudansi data, ukuran nya sama

dengan ukuran file awal. Untuk kinerja CPU sendiri akan mengalami proses peningkatan pada saat proses pembuatan file hasil enkripsi maupun dekripsi. Sedangkan pada saat

(11)

ix

ABSTRACT

At this time many cryptographic algorithms are springing up, be it the correct

algorithm ( the new right ), or refinement algorithm before its not strong enough to secure

the contents of the file . Features like JCE ( Java Cryptography Extension) still not so familiar to programmers as a plugin even soon its be very helpful in making a software which in its use of cryptographic algorithms. JCE it self almost support all algorithms that

are currently circulating, from getting classic and modern algorithms, symmetric and asymmetric. Later in this paper, the test will be done in a way to make the program by

leveraging the JCE to four algorithm, which is AES, DES, 3DES and Blowfish algorithm. For testing performed by enkrispi and decryption for the same file, the intent is the file

type and file size will be the same for all algorithms. After that it will be taken in the form of data encryption and decryption time, and much of his memory that will used in the

encryption and decryption process. Later the result of the algorithms where the slowest or the fastest in terms of encryption or decryption, and can also be known algorithm which

uses the most memory for the process of decryption or encryption.

On the data retrieval process for each file is obtained that the slowest is 3DES algorithm in encryption or decryption process. This applies to all types of files are

processed, the algorithm is 3DES ranks first and the difference in his tolerable much with the other algorithms. Almost tripled with two positions wich is DES algorithm. The

fastest algorithm is Blowfish and very little to be embedded with the AES algorithm. For the results of its own files is not experiencing an error, this means that the files are

identical to the results of the initial file encryption process or after decryption. The files are the same size, data redundancies is equal to the size of the default file. For CPU

performance alone will experience a process of improving upon the process of making a file encryption or decryption results. At the time of encryption or decryption, CPU

(12)

x

KATA PENGANTAR

Puji Tuhan Yesus Kristus yang telah memberikan berkat serta penyertaan

– Nya sehingga penulis dapat menyelesaikan skripsi dengan judul “ Analisis Unjuk Kerja Java Cryptography Extension untuk enkripsi dan dekripsi File (

Studi kasus Algoritma AES, DES, 3DES dan Blowfish )”. Penulisan skripsi ini diajukan untuk memenuhi syarat untuk memperoleh gelar Sarjana Komputer

Program Studi Teknik Informatika Universitas Sanata Dharma

Selesainya penulisan skripsi ini, maka penulis mengucapkan terimakasih

kepada pihak – pihak yang telah membantu dan memberikan dukungan dalam berbagai bentuk. Ucapan terimakasih ditujukan kepada :

1. Kedua orang tua. Terimakasih telah menjadi orang tua yang terbaik sampai

saat ini. Terimakasih atas dukungan, baik spiritual dan material selama

menempuh studi. Terimakasih atas kesabaran dan doa nya.

2. Bapak Benedictus Herry Suharto, S.T., M.T. sebagai dosen pembimbing

yang telah memberikan solusi dalam proses penulisan skripsi.

3. Ibu Ridowati Gunawan S.Kom., selaku Ketua Program Studi Teknik

Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma.

4. Seluruh dosen program studi Teknik Informatika yang membimbing dari

awal perkuliahaan hingga selesai masa studi.

5. Maria Magdalena Pradita Eka Kurniawati, terimakasih untuk ide, solusi,

dan semangat, serta dukungan selama proses penulisan skripsi.

6. Yosephine Martiana Arsweni, Bernardus Yuniar Arswendo, Bernadinus

Agus Arswimba, Laurensius Ferdinan Putra Nugroho atas doa, dukungan

dan keceriaanya selama proses penyelesaian skripsi.

7. Kepada Bernardus Bimantara Putra atas semangat, ide-ide dan

(13)
(14)

xii

DAFTAR ISI

HALAMAN JUDUL ………… i

HALAMAN JUDUL (INGGRIS) ……….. ii

HALAMAN PERSETUJUAN ...Error! Bookmark not defined. LEMBAR PENGESAHAN ...Error! Bookmark not defined. PERNYATAAN KEASLIAN KARYA ...iv

(15)

xiii

1.7. Sistematika Penulisan ... 8

BAB II ... 10

LANDASAN TEORI ... 10

2.1. Kriptografi ... 10

Panjang Kunci ... 12

2.1.1. Kriptografi Secret Key dan Public Key ... 14

2.2. Enkripsi ... 17

2.3. Dekripsi ... 18

2.4. Algoritma Kriptografi ... 18

2.4.1. Algoritma DES ... 18

2.4.2. Algoritma 3DES ... 21

2.4.3. Algoritma AES ... 22

2.4.4. Algoritma Blowfish ... 24

2.5. JCE ... 27

BAB III ... 28

ANALISIS MASALAH DAN PERANCANGAN SISTEM ... 28

3.1. Analisis Masalah / Problem Analys ... 28

3.2. Gambaran Aplikasi ... 28

3.2.1. Contoh Kasus ... 29

3.3. Requirment Analysis ... 30

3.3.1. Diagram flowchart enkripsi ... 30

3.3.2. Diagram flowchart dekripsi ... 32

BAB IV IMPLEMENTASI SISTEM ... 34

4.1. Implementasi Sistem ... 34

(16)

xiv

4.2. Penghitungan running time ... 34

4.3. Penjelasan program ... 36

4.3.1. Enkripsi ... 37

4.3.2. Dekripsi ... 40

BAB V ANALISIS DAN HASIL IMPLEMENTASI ... 43

5.1. Hasil Pengujian Sistem ... 43

5.1.1. Enkripsi image ... 43

5.1.3. Enkripsi file MP3 ... 46

5.1.4. Dekripsi file MP3 ... 47

5.1.5. Enkripsi file dokumen ... 48

5.1.6. Dekripsi file dokumen ... 49

(17)

xv

DAFTAR GAMBAR

Gambar 1. Ilustrasi dari proses SubBytes ... 2

Gambar 2. Ilustrasi dari proses ShiftRows ... 3

Gambar 3. Ilustrasi dari prose MixColoumns ... 3

Gambar 4. Ilustrasi dari proses Add Round Key ... 4

Gambar 5. Proses Enkripsi dan Dekripsi ... 12

Gambar 6. Kriptografi simetris ... 15

Gambar 7. Kriptografi Asimetris ... 17

Gambar 8. Proses enkripsi algoritma 3DES ... 22

Gambar 9. Proses enkripsi algoritma AES ... 23

Gambar 10. Skema jaringan Feistel pada algoritma Blowfish ... 26

Gambar 11. Skema fungsi F pada algoritma Blowfish ... 26

Gambar 12. Potongan Program 1 ... 35

Gambar 13. Potongan Program 2 ... 35

Gambar 14. Potongan Program 3 ... 36

Gambar 15. Potongan Program 4 ... 36

Gambar 16. Potongan Program 5 ... 37

Gambar 17. Hasil Running Program ... 38

Gambar 18. Hasil enkripsi dan dekripsi ... 39

Gambar 19. Hasil running program ... 41

(18)

xvi

DAFTAR TABEL

Table 1. Dari enkripsi untuk mengetahui alokasi memory yang digunakan dan

running time nya ... 29

Table 2. Hasil dari enkripsi data berupa gambar untuk masing-masing algoritma 43

Table 3. Hasil dari dekripsi data berupa gambar untuk masing-masing algoritma 44

Table 4. Hasil dari enkripsi data berupa MP3 untuk masing-masing algoritma ... 46

Table 5. Hasil dari dekripsi data berupa MP3 untuk masing-masing algoritma ... 47

Table 6. Hasil dari enkripsi data berupa dokumen untuk masing-masing algoritma

... 48

Table 7. Hasil dari dekripsi data berupa dokumen untuk masing-masing algoritma

... 49

Table 8. Hasil dari enkripsi data berupa file video untuk masing-masing algoritma

... 51

Table 9. Hasil dari dekripsi data berupa file video untuk masing-masing algoritma

(19)

xvii

DAFTAR GRAFIK

Grafik 1. Hasil dari enkripsi data berupa gambar untuk masing-masing algoritma

... 44

Grafik 2. Hasil dari dekripsi data berupa gambar untuk masing-masing algoritma

... 45

Grafik 3. Hasil dari enkripsi data berupa MP3 untuk masing-masing algoritma.. 46

Grafik 4. Hasil dari dekripsi data berupa MP3 untuk masing-masing algoritma.. 47

Grafik 5. Hasil dari enkripsi data berupa dokumen untuk masing-masing

algoritma ... 49

Grafik 6. Hasil dari dekripsi data berupa dokumen untuk masing-masing

algoritma ... 50

Grafik 7. Hasil dari enkripsi data berupa file video untuk masing-masing algoritma

... 51

Grafik 8. hasil dari dekripsi data berupa file video untuk masing-masing algoritma

(20)

1

BAB I PENDAHULUAN

1.1.Latar Belakang

Masalah keamanan dan kerahasiaan data merupakan salah satu aspek

penting dari suatu sistem informasi. Dalam hal ini, sangat terkait dengan betapa

pentingnya informasi tersebut dikirim dan diterima oleh orang yang

berkepentingan. Informasi akan tidak berguna lagi apabila di tengah jalan

informasi itu disadap atau dibajak oleh orang yang tidak berhak. Untuk mencegah

data-data penting tersebut digunakan dengan tidak semestinya. oleh karena itu

perlu dilakukan perlindungan terhadap informasi dengan berbagai cara. Salah satu

metode yang digunakan untuk melindungi data adalah dengan menggunakan

teknik kriptografi dimana informasi yang ada dibuat sedemikian rupa agar tidak

dapat diketahui oleh yang tidak memiliki hak akses.

Enkripsi adalah suatu proses untuk merubah suatu pesan data atau

informasi (plaintext), sehingga informasi tersebut tidak dapat dibaca oleh orang

yang tidak bertanggung jawab (chipertext). Jadi plaintext adalah informasi yang

dapat dimengerti dan chipertext adalah informasi yang tidak dapat dimengerti atau

dibaca.

.Untuk saat ini terdapat banyak algoritma kriptografi dimana

masing-masing algoritma memiliki karakter dan spesifikasi yang berbeda. Disini penulis

ingin mencoba membandingkan algoritma AES (Advanced Encryption Standard),

(21)

2

Blowfish. Keempat algoritma tersebut memiliki tingkat keamanan yang cukup

tinggi, karena sampai sekarang belum ditemukan algoritma/mesin yang mampu

untuk memecahkan data hasil enkripsi algoritma kriptografi tersebut dengan

cepat.

Algoritma AES menggunakan empat teknik, yaitu :

1. SubBytes : Prinsip dari SubBytes adalah menukar isi matrik/tabel yang

ada dengan matrik/tabel yang lain yang disebut juga dengan Rijndael

S-Box.

Gambar 1. Ilustrasi dari proses SubBytes

2. ShiftRows : Proses pergeseran dalam suatu elemen blok/tabel yang

dilakukan per barisnya, Yaitu baris pertama tidak dilakukan

pergeseran, baris kedua dilakukan pergeseran 1 byte, baris ketiga

dilakukan pergeseran 2 byte, dan baris keempat dilakukan pergeseran 3

byte. Pergeseran sebuah blok adalah sebuah pergeseran tiap elemen ke

kiri tergantung berapa byte tergesernya, tiap pergeseran 1 byte berarti

(22)

3

Gambar 2. Ilustrasi dari proses ShiftRows

3. MixColoumns : adalah proses mengalikan tiap elemen dari blok chiper

dengan matrik.

(23)

4

4. AddRoundKey : adalah mengkombinasikan chiper teks yang sudah

ada dengan chiper key yang chiper key dengan hubungan XOR

Gambar 4. Ilustrasi dari proses Add Round Key

Keempat teknik yang menjadikan AES mempunyai kinerja yang baik,

ditunjukan dari segi keamanan, kesederhanaan struktur dan fleksibilitas yang

membawa AES sebagai pemenang algoritma paling optimal yang menggantikan

DES yang pernah popular tahun 80-an.

DES merupakan nama dari sebuah algoritma untuk mengenkripsi data

yang dikeluarkan oleh Federal Information Processing Standard (FIPS) 46–1

Amerika Serikat. 46-1 disini adalah tipe dari algoritma DES, karena Algoritma

DES sendiri mengalami pembaharuan, 46-1 adalah algoritma tipe awal yang

diluncurkan oleh FIPS, algoritma DES sendiri mengalami tiga kali pembaharuan

hingga sampi tipe 46-3 yang lebih dikenal dengan algoritma 3DES. Algoritma

dasarnya dikembangkan oleh IBM (International Business Machines), NSA

(National Security Agency), dan NBS (Nanyang Business School) yang berperan

penting dalam pengembangan bagian akhir algoritmanya. DEA dan DES telah

dipelajari secara ekstensif sejak publikasi pertamanya, dan diketahui sebagai

(24)

5

memiliki blok kunci 64 bit tetapi yang digunakan dalam proses eksekusi adalah 56

bit. Pada awalnya dirancang untuk implementasi secara hardware. Penggunaan

dalam sistem komunikasi mengharuskan pengirim dan penerima memiliki kunci

rahasia yang sama, yang dapat digunakan untuk mengenkripsi dan mendekripsi

data yang dikirim atau diterima.

3DES merupakan salah satu algoritma simetris pada kriptografi yang

digunakan untuk mengamankan data dengan cara menyandikan data. Proses yang

dilakukan dalam penyandian datanya, yaitu proses enkripsi dan proses dekripsi.

Algoritma 3DES adalah suatu algoritma pengembangan dari algoritma DES.

Perbedaan DES dengan 3DES terletak pada panjangnya kunci yang digunakan.

Pada DES menggunakan satukunci yang panjangnya 56-bit, sedangkan pada

3DES menggunakan 3 kunci yang panjangnya 168-bit (masing-masing

panjangnya 56-bit). Pada 3DES, 3 kunci yang digunakan bisa bersifat saling bebas

(K1 ≠ K2 ≠ K3) atau hanya dua buah kunci yang saling bebas dan satu kunci

lainnya sama dengan kunci pertama (K1 ≠ K2 dan K3 = K1). Karena tingkat

kerahasiaan algoritma 3DES terletak pada panjangnya kunci yang digunakan,

maka penggunaan algoritma 3DES dianggap lebih aman dibandingkan dengan

algoritma DES.

Blowfish merupakan algoritma kunci simetrik chipper blok yang dirancang

pada tahun 1993 oleh Bruce Schenier untuk menggantikan DES. Pada saat itu

banyak sekali rancangan algoritma yang ditawarkan namun hampir semua

terhalang oleh paten atau kerahasiaan pemerintah Amerika. Schneier menyatakan

(25)

6

pernyataan Schneier tersebut Blowfish telah mendapatkan tempat di dunia

kriptografi, kususnya bagi masyarakat yang membutuhkan algoritma kriptografi

yang cepat, kuat, dan tidak terhalang oleh lisensi.

1.2.Rumusan masalah

1. Menguji Java Cryptography Extension untuk mengenkripsi file dengan

studi kasus algoritma AES, DES, 3DES, dan Blowfish

2. Mengetahui hasil kinerja Java Cryptography Extension dalam

mengenkripsi file dengan studi kasus algoritma AES, DES, 3DES, dan

Blowfish

3. Mengetahui running time dan memory usage untuk masing-masing

algoritma dalam sebuah skenario pengujian enkripsi dan dekripsi.

1.3.Tujuan penelitian

Tujuan dari penelitian ini adalah:

1. Mengetahui algoritma mana yang paling lambat dalah hal mengenkripsi

file dengan memanfaatkan JCE.

2. Mengetahui algoritma mana yang paling cepat dalam hal mengenkripsi file

dengan memanfaatkan JCE.

3. Mengetahui hasil file dari proses enkripsi maupun dekripsi apakah ada

(26)

7

1.4.Batasan Masalah

1. Aplikasi ini dibuat menggunakan menggunakan netbeans 8.1 dan Java ™

SE Development Kit 6 Update 12 dan berjalan di sistem operasi windows

7 ultimate edition 64 bit

2. JCE yang digunakan adalah JCE Unlimited Strength Jurisdiction Policy

Files 7

3. Data yang di enkripsi dan dekripsi untuk gambar berukuran 8 MB, video

80 MB, audio 17 MB dan teks 22 MB.

1.5.Manfaat

Manfaat dari penyusunan tugas akhir ini adalah membantu para

developer atau programmer untuk membuat program enkripsi dan dekripsi

untuk mengamankan data berupa file milik mereka

1.6.Metodologi Penelitian :

Metode penelitian yang digunkan adalah sebagai berikut :

1. Studi literarur dengan membaca buku “belajar Ilmu Kriptografi” penerbit

Andi oleh Rinaldi Munir, dan skripsi atau abstract yang terkait untuk

membantu pembuatan program ini.

2. Menganalisa dan merancang method apa saja yang akan digunakan nanti

nya dalam membuat program.

3. Membuat program enkrispsi dan dekripsi menggunakan aplikasi netbeans

(27)

8

4. Menguji program dengan mencoba untuk mengenkripsi file

1.7.Sistematika Penulisan

Sistematika penulisan yang digunakan adalah sebagai berikut :

BAB I PENDAHULUAN

Bab ini menguraikan tentang latar belakang, rumusan masalah,

tujuan, batasan masalah, manfaat penelitian, dan metodologi

penelitian,

BAB II LANDASAN TEORI

Bab ini membahas dasar-dasar teori mengenai Algoritma

Kriptografi (AES, DES, 3DES, BLOWFISH), JCE, Enkripsi, dan

Dekripsi

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi tentang analisis masalah dan gambaran aplikasi yang

akan dibuat untuk pembuatan program.

BAB IV IMPLEMENTASI SISTEM

Bab ini berisi tentang penerapan skenario yang telah dibuat untuk

nantinya diujikan. Bagian ini juga berisi tentang perangkat yang

digunakan dalam pengimplementasian program dan penjelasan

method yang digunakan dalam program.

(28)

9

Bab ini berisi analisis hasil implementasi yang mencakup data yang

dihasilkan dalam pengujian program.

BAB VI PENUTUP

Bab ini berisi tentang kesimpulan dan saran yang didapatkan selama

proses pembuatan program serta saran-saran untuk pengembanagan

(29)

10

BAB II

LANDASAN TEORI

2.1.Kriptografi

Kriptografi berasal dari dua kata Yunani, yaitu Crypto yang berarti

rahasia dan Grapho yang berarti menulis. Secara umum kriptografi dapat

diartikan sebagai ilmu dan seni penyandian yang bertujuan untuk menjaga

keamanan dan kerahasiaan suatu pesan. Kriptografi pada dasarnya sudah

dikenal sejak lama. Menurut catatan sejarah, kriptografi sudah digunakan oleh

bangsa Mesir sejak 4000 tahun yang lalu oleh raja-raja Mesir pada saat

perang untuk mengirimkan pesan rahasia kepada panglima perangnya melalui

kurir-kurinya. Orang yang melakukan penyandian ini disebut kriptografer,

sedangkan orang yang mendalami ilmu dan seni dalam membuka atau

memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya

disebut kriptanalis.

Seiring dengan perkembangan teknologi, algoritma kriptografi pun

mulai berubah menuju ke arah algoritma kriptografi yang lebih rumit dan

kompleks. Kriptografi mau tidak mau harus diakui mempunyai peranan yang

paling penting dalam peperangan sehingga algoritma kriptografi berkembang

cukup pesat pada saat Perang Dunia I dan Perang Dunia II. Menurut catatan

sejarah, terdapat beberapa algoritma kriptografi yang pernah digunakan dalam

peperangan, diantaranya adalah ADFVGX yang dipakai oleh Jerman pada

(30)

11

Perang Dunia II, Typex oleh Inggris, dan Purple oleh Jepang. Selain itu

Jerman juga mempunyai mesin legendaris yang dipakai untuk memecahkan

sandi yang dikirim oleh pihak musuh dalam peperangan yaitu, Enigma.

Algoritma kriptografi yang baik tidak ditentukan oleh kerumitan

dalam mengolah data atau pesan yang akan disampaikan. Yang penting,

algoritma tersebut harus memenuhi 4 persyaratan berikut :

1. Kerahasiaan. Pesan (plaintext) hanya dapat dibaca oleh pihak yang

memliki kewenangan.

2. Autentikasi. Pengirim pesan harus dapat diidentifikasi dengan pasti,

penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain.

3. Integritas. Penerima pesan harus dapat memastikan bahwa pesan yang

dia terima tidak dimodifikasi ketika sedang dalam proses transmisi data.

4. Non-Repudiation. Pengirim pesan harus tidak bisa menyangkal pesan

yang dia kirimkan.

Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses

enkripsi dan proses dekripsi. Proses enkripsi adalah proses penyandian

pesan terbuka menjadi pesan rahasia (ciphertext). Ciphertext inilah

yang nantinya akan dikirimkan melalui saluran komunikasi terbuka.

Pada saat ciphertext diterima oleh penerima pesan, maka pesan rahasia

tersebut diubah lagi menjadi pesan terbuka melalui proses dekripsi

(31)

12

umum, proses enkripsi dan dekripsi dapat digambarkan sebagai

berikut :

Gambar 5. Proses Enkripsi dan Dekripsi

Dalam sistem komputer, pesan terbuka (plaintext) diberi

lambang M, yang merupakan singkatan dari Message. Plaintext ini

dapat berupa tulisan, foto, atau video yang berbentuk data biner.

Plaintext inilah yang nantinya akan dienkripsi menjadi pesan rahasia

atau ciphertext yang dilambangkan dengan C.

Panjang Kunci

Keamanan dari sebuah teknik penyandian tergantung dari dua

hal : algoritma penyandian dan panjang kunci (key). Algoritma

sangat menentukan kekuatan dari sebuah teknik penyandian, tetapi

panjang kunci juga tidak kalah penting dalam menentukan

kekuatan sebuah teknik penyandian.

Sebagai contoh, apabila seorang kriptanalis mengetahui

algoritma yang dipakai untuk melakukan teknik penyandian

(32)

13

kunci yang dipakai terlebih dahulu sebelum dapat melakukan

dekripsi terhadap semua ciphertext yang dia punya. Satu-satunya

cara untuk mendapatkan kunci yang dipakai adalah dengan cara

mencoba semua variasi kunci yang ada. Teknik serangan ini sering

dikenal dengan nama brute force.

Mudah untuk menghitung banyaknya variasi kunci yang

ada. Apabila panjang kunci adalah 8 bit, maka ada 28 atau 256

kemungkinan kunci yang dapat dicoba. Dari 256 percobaan ini,

peluang untuk mendapatkan kunci yang benar adalah 50 persen

setelah melalui setengah usaha percobaan. Bila panjang kunci 56

bit, maka ada 256 kemungkinan variasi kunci. Dengan menganggap

sebuah super komputer dapat mencoba satu juta kunci per detik,

maka diperkirakan sekitar 2285 tahun untuk menemukan kunci

yang benar. Bila menggunakan panjang kunci 64 bit, maka dengan

super komputer yang sama akan membutuhkan 585 ribu tahun.

Dengan jangka waktu yang lama ini, maka dapat dipastikan bahwa

pesan yang disandikan tersebut tidak mempunyai arti lagi apabila

telah berhasil dilakukan dekripsi.

Dengan melihat situasi ini, maka kriptografi yang baik akan

memilih untuk menggunakan sepanjang mungkin kunci yang akan

digunakan, namun hal ini tidak dapat diterapkan begitu saja.

Semakin panjang kunci, semakin lama pula waktu yang digunakan

(33)

14

panjang kunci yang akan digunakan hendaknya memperhatikan 3

hal, yaitu seberapa penting data yang akan dirahasiakan, berapa

lama waktu yang dibutuhkan agar data tersebut tetap aman, dan

seberapa kuat kemampuan kriptanalis dalam memecahkan teknik

penyandian kita. Saat ini yang paling banyak dipakai adalah kunci

dengan panjang 128 bit karena panjang kunci ini dianggap paling

optimal untuk saat ini.

2.1.1. Kriptografi Secret Key dan Public Key

Pada dasarnya terdapat dua jenis algoritma kriptografi

berdasarkan kunci yang digunakan. Yang pertama adalah

kriptografi dengan menggunakan secret key dan yang kedua

adalah kriptografi yang menggunakan public key. Kriptografi

public key menggunakan dua kunci yang berbeda dimana satu

kunci digunakan untuk melakukan enkripsi dan kunci yang lain

digunakan untuk melakukan dekripsi.

a. Kriptografi Secret Key

Kriptografi secret key adalah kriptografi yang hanya

melibatkan satu kunci dalam proses enkripsi dan dekripsi.

Proses dekripsi dalam kriptografi secret key ini adalah

(34)

15

Gambar 6. Kriptografi simetris

Kriptografi secret key seringkali disebut sebagai

kriptografi konvensional atau kriptografi simetris

(Symmetric Cryptography) dimana proses dekripsi adalah

kebalikan dari proses enkripsi dan menggunakan kunci yang

sama.

Kriptografi simetris dapat dibagi menjadi dua, yaitu

penyandian blok dan penyandian alir. Penyandian blok

bekerja pada suatu data yang terkelompok menjadi

blok-blok data atau kelompok data dengan panjang data yang

telah ditentukan. Pada penyandian blok, data yang masuk

akan dipecah-pecah menjadi blok data yang telah ditentukan

ukurannya. Penyandian alir bekerja pada suatu data bit

tunggal atau terkadang dalam satu byte. Jadi format data

yang mengalami proses enkripsi dan dekripsi adalah berupa

(35)

16

Algoritma yang ada pada saat ini kebanyakan

bekerja untuk penyandian blok karena kebanyakan proses

pengiriman data pada saat ini menggunakan blok-blok data

yang telah ditentukan ukurannya untuk kemudian dikirim

melalui saluran komunikasi.

b. Kriptografi Public Key

Kriptografi public key sering disebut dengan

kriptografi asimetris. Berbeda dengan kriptografi secret key,

kunci yang digunakan pada proses enkripsi dan proses

dekripsi pada kriptografi public key ini berbeda satu sama

lain. Jadi dalam kriptografi public key, suatu key generator

akan menghasilkan dua kunci berbeda dimana satu kunci

digunakan untuk melakukan proses enkripsi dan kunci yang

lain digunakan untuk melakukan proses dekripsi.

Kunci yang digunakan untuk melakukan enkripsi

akan dipublikasikan kepada umum untuk dipergunakan

secara bebas. Oleh sebab itu, kunci yang digunakan untuk

melakukan enkripsi disebut juga sebagai public key.

Sedangkan kunci yang digunakan untuk melakukan dekripsi

akan disimpan oleh pembuat kunci dan tidak akan

dipublikasikan kepada umum. Kunci untuk melakukan

(36)

17

Gambar 7. Kriptografi Asimetris

Dengan cara demikian, semua orang yang akan

mengirimkan pesan kepada pembuat kunci dapat melakukan

proses enkripsi terhadap pesan tersebut, sedangkan proses

dekripsi hanya dapat dilakukan oleh pembuat atau pemilik

kunci dekripsi. Dalam kenyataannya, kriptografi asimetris

ini dipakai dalam ssh, suatu layanan untuk mengakses suatu

server.

2.2.Enkripsi

Enkripsi adalah proses mengamankan suatu informasi dengan

membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan

khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan

komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan

individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan

yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat

(37)

18

Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem

secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM

pada bank.

Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain

masih diperlukan untuk membuat komunikasi yang aman, terutama untuk

memastikan integritas dan autentikasi dari sebuah pesan. Contohnya,

Message Authentication Code (MAC) atau digital signature.

2.3.Dekripsi

Deskripsi dalam dunia keamanan komputer merupakan proses

untuk mengubah chyperteks menjadi plainteks atau pesan asli. Jadi deskripsi

merupakan kebalikan dari Enkripsi upaya pengolahan data menjadi sesuatu

yang dapat diutarakan secara jelas dan tepat dengan tujuan agar dapat

dimengerti oleh orang yang tidak langsung mengalaminya sendiri.

2.4.Algoritma Kriptografi 2.4.1. Algoritma DES

Algoritma DES dikembangkan di IBM dibawah

kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma ini

didasarkan pada algoritma LUCIFER yang dibuat oleh Horst Feistel.

Algoritma ini telah disetujui oleh (NBS) setelah penilaian kekuatannya

oleh (NSA) Amerika Serikat. DES termasuk ke dalam sistem

kriptografi simetris dan tergolong jenis cipher blok. DES beroperasi

pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plaintext menjadi

(38)

19 key) atau (subkey).

Kunci internal dibangkitkan dari kunci eksternal (external

key) yang panjangnya 64 bit.

Skema global dari algoritma DES adalah sebagai berikut :

1. Blok plainteks dipermutasi dengan matriks permutasi awal.

2. Hasil permutasi awal kemudian mengalami 16 putaran. Setiap

putaran menggunakan kunci internal yang berbeda.

3. Hasil nya kemudian dipermutasi dengan matriks permutasi (invers

initial permutation atau IP-1 ) menjadi blok cipherteks.

4. Di dalam proses tersebut, blok plainteks terbagi menjadi dua bagian,

kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit.

(39)

20

5. Pada setiap putaran i, blok R merupakan masukan untuk fungsi

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

dengan kunci internal Ki. Keluaran dari 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

Li = Ri – 1

Ri = Li – 1 f(Ri – 1, Ki)

Pembangkitan Kunci Internal

Kunci internal = kunci setiap putaran, Ada 16 putaran, jadi ada 16 kunci

(40)

21

Gambar 7 Proses pembangkitan kunci-kunci internal DES

2.4.2. Algoritma 3DES

3DES merupakan salah satu algoritma simetris pada

kriptografi yang digunakan untk mengamankan data dengan cara

menyandikan data. Proses yang dilakukan dalam pengamanan data nya

yaitu proses enkripsi dan proses dekripsi. Algoritma 3DES adalah

suatu algoritma pengembangan dari algoritma. Perbedaan DES dengan

3DES terletak pada panjangnya kunci yang digunakan . pada DES

menggunakan satu kunci yang panjang nya 56 bit, sedangkan 3DES

menggunakan 3 kunci yang panjang nya 168 bit (masing-masing kunci

panjang nya 56 bit). Pada 3DES, 3 kunci yang digunakan bersifat

saling bebas (K1 ≠ K2 ≠ K3). Karena tingkat kerahasiaan algoritma

3DES terletak pada panjangnya kunci yang digunakan, maka

penggunaan algoritma 3DES dianggap lebih aman dibandingkan

algoritma DES. Pada algoritma 3DES digami menjadi 3 tahap, setiap

tahap nya merupakan implementasi dari algoritma DES. Tahap

pertama plainteks (file) yang diinputkan dioperasikan dengan kunci

eksternal pertama (K1) dan melakukan proses enkripsi dengan

menggunakan algoritma DES, sehingga menghasilkan pra-chiperteks

pertama. Kemudian setelah itu tahap kedua pra-chiperteks pertama

yang dihasilkan pada tahap pertama kemudian dioperasikan dengan

(41)

22

proses dekripsi dengan menggunakan algoritma DES, sehingga

menghasilkan pra-chiperteks (chipper tekx awal). Kedua. tahap

terakhir pra-chiperteks kedua yang dihasilkan pada tahap kedua

dioperasikan dengan kunci eksternal ketiga (K3) dan melakukan proses

enkripsi dengan menggunakan algoritma DES, sehingga akan

menghasilkan chiperteks.

Gambar 8. Proses enkripsi algoritma 3DES

2.4.3. Algoritma AES

Algoritma kriptografi bernama Rijndael yang di desain oleh

Vincent Rijmen dan John Daemen asal Belgia keluar sebagai

pemenang kontes algoritma kriptografi pengganti DES yang diadakan

oleh NIST milik pemerinah Amerika Serikat pada 26 November 2001.

Algoritma Rijndael ini yang kemudian dikenal dengan AES. Setelah

mengalami beberapa proses standarisasi oleh NIST, Rijndael kemudian

(42)

23

Pada 2006 AES merupakan salah satu algoritma terpopuler yang di

gunakan dalam kriptografi asimetrik.

AES merupakan algoritma block chipper dengan menggunakan

system permutasi dan substitusi (P-box dan S-box) bukan dengan

jaringan Feistel sebagaimana block chipper pada umumnya. AES

memiliki ukuran block yang tetap panjang selama 128 bit dan ukuran

kunci 128, 192, 256. Tidak seperti Rijndael yang blok kunci nya dapat

berukuran kelipatan 32 bit dengan ukuran minimum 128 bit dan

maksimal 256 bit.

(43)

24

2.4.4. Algoritma Blowfish

Blowfish adalah suatu algoritma kriptografi yang beroperasi

pada mode blok. Algoritma Blowfish ditujukan untuk

diimplementasikan pada sebuah mikroprosesor berskala besar.

Algoritma Blowfish sendiri tidak dipatenkan sehingga dapat digunakan

oleh banyak orang .Blowfish menggunakan jaringan Feistel yang terdiri

dari 16 buah putaran. Masukan terhadap jaringan Feistel ini adalah x

yang merupakan elemen data ukuran 64 bit. Blowfish dirancang untuk

memenuhi kriteria-kriteria sebagai berikut :

1. Cepat. Blowfish dirancang agar dapat mengenkripsikan data pada

mikroprosesor 32 bit dengan kecepatan 26 clock cycles per byte.

2. Kompak. Blowfish dirancang agar dapat berjalan dengan

menggunakan memori kurang dari 5kb

3. Sederhana. Blowfish dirancang hanya menggunakan

operasi-operasi sederhana. Operasi yang digunakan dalam Blowfish dalah

penambahan XOR dan tabel lookup dalam 32 bit. Rancangan yang

sederhana ini mempermudah proses analisa yang mebuat Blowfih

terhindar dari kesalahan implementasi.

4. Keamanan yang beragam. Panjang kunci yang digunakan dalam

algoritma Blowfish bervariasi dengan panjang kunci maksimal 448

(44)

25

Proses enkripsi dilakukan dengan langkah-langkah sebagai berikut :

1. Bagi x menjadi setengah bagian, yaitu dengan ukuran 32 bit. Hasil

pembagian ini adalah : xL dan xR.

2. Lakukan langkah-langkah berikut dalam 16 putaran:

xL = xL ⊕ Pi

xR = F(xL) ⊕ xR

Tukar xL dan xR

Keterangan:

i = 1, 2, ..., 16 (menunjukkan nomor putaran)

3. Tukar xL dan xR (membatalkan pertukaran terakhir).

4. xR = xR ⊕ P17

5. xL = xL ⊕ P18

6. Gabungkan kembali xL dan xR

Fungi F yang terdapat pada jaringan Feistel didefinisikan sebagai berikut

:

1. Bagi xL menjadi empat bagian yang berukuran 8 bit. Keempat

bagian yang dihasilkan adalah a, b, c, dan d.

2. Fungsi F(xL) didefinisikan sebagai berikut:

(45)

26

Gambar 10. Skema jaringan Feistel pada algoritma Blowfish

(46)

27

Proses dekripsi dilakukan dengan langkah yang sama dengan

proses enkripsi, kecuali P1, P2, ..., P18 digunakan dengan urutan terbalik dari

proses enkripsi.

2.5.JCE

JCE merupakan framework sekuriti ekstensi dari Java. Ia

menyediakan ekstensi untuk kriptografi yang kuat, diperbolehkan untuk

di-ekspor oleh pemerintah Amerika setelah kebijakan mengenai di-ekspor tahun

2000. JCE mulai diperbolehkan sebagai opsi paket tambahan pada JDK v

1.2.x dan 1.3.x, sedangkan pada JDK v 1.7.x telah diintegrasikan. API JCE

diimplementasi oleh Cryptographic Service Providers. Pada JDK v 1.7.x

secara default API service-provider nya adalah SunJCE.

JCE menyediakan kelas interface untuk operasi kriptografi,

mulai dari proses enkripsi, generalisasi kunci, dan dekripsi. Banyak fitur yang

disediakan oleh JCE. Mulai dari Chiper, KeyGenerator, SekcretKeyFactory

(47)

28

BAB III

ANALISIS MASALAH DAN PERANCANGAN SISTEM

3.1.Analisis Masalah / Problem Analys

Pada saat ini, terdapat banyak sekali algoritma kriptografi dengan

berbagai macam tipe dan berbagai macam keunggulan dari masing-masing

algoritma. Tiap tahun selalu ada yang muncul algoritma kriptografi baru, bisa

itu merupakan algoritma penyempurnaan dari yang sebelum nya, atau bisa

juga algoritma yang benar-benar baru. Permasalahan yang akan diteliti saat

ini yaitu perbandingan algoritma AES, DES, 3DES, dan Blowfish dalam hal

kecepatan enkripsi dan dekripsi, dan alokasi memory yang diperlukan setiap

aplikasi tersebut dieksekusi untuk beberapa skenario pengujian.

3.2.Gambaran Aplikasi

Aplikasi yang akan di buat nanti hendaknya akan membantu para Developer

atau orang-orang yang hendak membuat suatu aplikasi yang akan

memanfaatkan plugin dari JCE akan terbantu karena aplikasi ini nantinya

akan memberikan rekomendasi pada para Developer untuk memilih

algoritma apa yang hendak merek pakai.

Aplikasi ini nantinya akan mengenkripsi file dengan tipe file sebagai berikut :

a. File Image (jpg)

b. File suara (flac)

(48)

29 d. File teks (docx)

Aplikasi ini juga akan menampilkan Running Time dan Memory Usage

tiap aplikasi dijalankan, jadi hendaknya user akan dapat memilih algoritma

apa yang akan mereka pakai yang sesuai dengan apa yang mereka

inginkan.

3.2.1. Contoh Kasus

1. Terdapat sebuah file yang akan di enkripsi untuk mengetahui

total alokasi memory dan kecepatan enkripsi pada setiap jenis

file dari tiap algoritma.

Table 1. Dari enkripsi untuk mengetahui alokasi memory yang digunakan dan running time nya

NO Nama algoritma

Ukuran file

(mb)

Running time Memory usage

1 AES 8 11536 6477

2 DES 8 12232 6487

3 3DES 8 43762 6477

(49)

30

3.3.

Requirment Analysis

(50)

31

(51)

32

3.3.2. Diagram flowchart dekripsi

(52)

33

(53)

34

BAB IV

IMPLEMENTASI SISTEM

4.1.Implementasi Sistem

4.1.1.Perangkat yang digunakan

Perangkat lunak yang digunakan untuk menjalankan program ini adalah:

1. netbeans 7.1 dan Java ™ SE Development Kit 6 Update 12

2. Sistem Operasi Windows 7, 64 bit.

3. JDK (Java Development Kit) 64 bit.

Perangkat keras yang digunakan dalam pembuatan sistem ini adalah

computer dengan spesifikasi sebagai berikut:

1. Prosesor Intel Core i7 CPU 3,20 GHz.

2. RAM 8.00 GB.

3. Hardisk Hitachi 1 TB

4.2. Penghitungan running time

Dalam program ini nantinya setiap proses enkripsi maupun

dekripsi yang dilakukan akan dicatat running time nya dan memory usage

maka dari itu diperlukan method untuk dapat menghitung semua nya itu.

(54)

35

Gambar 12. Potongan Program 1

Disini terlihat potongan program untuk tanda awal dari program

yang akan dilakukan penghitungan.

Gambar 13. Potongan Program 2

Dan disini adalah potongan untuk menghitung nilai total alokasi

memory dan memory usage nya. Untuk penghitungan running time nya

dilakukan dengan cara

1. Pertama deklarasikan code long end = System.currentTimeMillis(); ini

untuk menandai dimana letak posisi penghitungan akan berhenti. Line

ini biasanya diletakan di akhir program.

2. Untuk menghitung total memory usage dapat dilakukan dengan code

long memory = ((runtime.totalMemory() /1024) -

runtime.freeMemory() / 1024) ;dapat dilihat di line ini total memory

yang didapatkan akan dibagi 1024, karena nantinya yang diambil

(55)

36

3. Setelah itu untuk menghitung total running time nya dan menampilkan

nya maka bisa menggunakan System.out.println("waktu yang

dibutuhkan adalah: " + (end - start) + "ms"); di line ini dilakukan

penghitungan running time dengan cara mengurangkan waktu saat

program selesai dirunning dengan waktu pertamakali program

dijalankan, maka nanti akan ditampilkan waktu running nya dalam

satuan ms (micro second).

4. Untuk selanjutnya untuk mengetahui memory yang diperlukan kita

hanya perlu memanggil parameter memory yang tadi sudah dilakukan

penghitungan.

4.3.Penjelasan program

Gambar 14. Potongan Program 3

Chiper disini berguna untuk menyediakan atau mengaktifkan

fungsi chiper kriptografi untuk enkripsi dan dekripsi. Fungsi ini berasal dari

JCE. Untuk membuat objek chipper, aplikasi akan memanggil method

getInstance chiper dan akan memanggil nama penyedia nya, yaitu AES.

(56)

37

Keygenarator disini berguna untuk menyediakan fungsi dari kunci

simetris. Keygenerator disini akan di gunakan menurut metode dari

getinstance dalam hal ini adalah AES. Setelah itu maka key tersebut akan di

generate untuk mendapatkan kunci.

4.3.1. Enkripsi

Gambar 16. Potongan Program 5

Line ini akan melakukan encrypt dengan mendeklarasikan

ENCRYPT_MODE di javax.crypto.Cipher dan memanggil key yang

tadi sudah di buat di method keygenerator.

Setelah itu maka file yang akan di enkripsi akan di masukan

melalui line ini. CipherInputStream disini merupakan suatu

gabungan dari InputStream dan Chiper. data masukan nanti akan di

baca oleh InputStream tetapi akan mengalami tambahan proses oleh

Chiper. Chiper sudah harus dideklarasikan sebelum digunakan oleh

ChiperInputStream. Setelah itu maka akan di deklarasikan lokasi file

yang akan di enkripsi. Disini file yang akan di enkripsi berada di

(57)

38

akan dienkripsi itu berada, dan enkrip.mp4 ini adalah nama file yang

akan di enkripsi, diikuti dengan File extension nya.

Setelah file tersebut dimasukan sekarang tinggal mendeklarasikan

keluaran file nya. Caranya adalah dengan menggunakan method

FileOutpoutStream dan diikuti dengan lokasi file dan nama file yang

diinginkan. Disini lokasi file nya akan dietakan di Disk F dan dengan

nama video_enkrip. Maka method yang digunakan adalah

FileOutputStream(newFile("F:\\video_enkrip.mp4).

setelah program dieksekusi maka akan tampil outpout :

Gambar 17. Hasil Running Program

Disini akan terlihat hasil outpout di netbean. Akan terlihat

juga memory yang dihabiskan untuk running program dan juga waktu

yang di butuhkan program untuk sekali jalan.

(58)

39

Gambar 18. Hasil enkripsi dan dekripsi

File enkrip.mp4 adalah file yang akan di enkrip sedangkan file

video_enkrip.mp4 adalah file hasil enkrip. Jika file hasil enkrip akan

di jalankan maka tampilan nya akan menjadi

Ini menandakan file nya berhasil di enkrip. Karena itu file tidak dapat

di eksekusi, walaupun ukuran file antara hasil dekrip dan file asli nya

(59)

40

4.3.2. Dekripsi

Proses untuk mendekrip file hampir sama dengan proses enkrip.

Hanya perbedaan nya adalah method yang akan digunakan. Jika pada

proses encrypt haru dideklarasikan terlebih dahulu dengan

Maka untuk proses dekrip adalah kebalikan nya, yaitu dengan cara

Disini terlihat perbedaan nya adalah di ENCRYPT_MODE dan

DECRYPT_MODE. Selebihnya sama dengan proses enkrip.

Setelah itu maka seperti pada proses enkrip, file yang akan di

dekrip harus dimasukan terlebih dahulu dengan cara

Disini terlihat perbedaan nya antara proses enkrip dan dekrip,

pada proses dekrip file yang akan di dekrip adalah file yang tadi sudah

di buat pada proses enkripsi. Pada saat proses enkripsi file nya adalah

“video_enkrip.mp4”. maka dari itu file yang akan di masukan

dituliskan dengan cara

(newFileInputStream(new

(60)

41

Setelah melewati proses dekripsi maka hasil file nya akan dibuat

dengan cara :

File hasil dekrip akan di beri nama “video_dekrip.mp4” dan

lokasi nya berada di disk F. Untuk tampilan outpout pada netbean

ketika program dieksekusi maka akan tampil seperti ini :

Gambar 19. Hasil running program

Disini akan terlihat hasil outpout di netbean. Akan terlihat juga

memory yang dihabiskan untuk running program dan juga waktu yang

di butuhkan program untuk sekali jalan.

(61)

42

Gambar 20. Hasil Dekrip dan Enkrip

Disini terlihat perbedaan nya bahwa file hasil enkrip tidak

memiliki thumbnail karena file tersebut tidak terbaca, sedangkan

setelah melalui proses dekrip file tersebut kembali memiliki

thumbsnail. Dan jikan file tersebut di eksekusi maka tampilan nya

adalah seperti ini :

Disini file hasil dekrip bisa di eksekusi, beda dari sebelum nya, maka

(62)

43

BAB V

ANALISIS DAN HASIL IMPLEMENTASI

5.1.Hasil Pengujian Sistem

Setelah melakukan pengujian program dengan beragam variasi file

yang dienkripsi maka didapatkan hasil yang beragam sesuai dengan

masing-masing algoritma. Tipe file yang dienkripsi adalah gambar, suara, video, dan

dokumen. Berikut adalah hasil pengujian nya :

5.1.1. Enkripsi image

Table 2. Hasil dari enkripsi data berupa gambar untuk masing-masing algoritma

NO Nama algoritma

Ukuran file

(mb)

Running time Memory usage

1 AES 8 11536 6477

2 DES 8 12232 6487

3 3DES 8 43762 6477

(63)

44

Grafik 1. Hasil dari enkripsi data berupa gambar untuk masing-masing algoritma

Penjelasan : dari grafik diatas dapat kita lihat bahwa untuk proses enkripsi

algoritma 3des menjadi yang paling banyak memakan waktu enkripsi.

5.1.2. Dekirpsi image

Table 3. Hasil dari dekripsi data berupa gambar untuk masing-masing algoritma

0

Running time Memory usage

1 AES 8 1218 6477

2 DES 8 590 8455

3 3DES 8 532 8774

(64)

45

Grafik 2. Hasil dari dekripsi data berupa gambar untuk masing-masing algoritma

Penjelasan : Dilihat dari data yang didapatkan dapat disimpulkan bahwa untuk

proses enkripsi dan dekripsi algoritma 3DES menjadi yang paling lama dalam hal

proses enkripsi dan dekripsi file gambar.

Analisa :

Dapat dilihat dari graph diatas, algoritma 3DES memerlukan waktu yang

paling lama untuk melakukan enkripsi. Ini karena algoritma ini tidak di kususkan

dibuat untuk berjalan atau diimplementasikan ke sebuah software, karena saat itu

processor belum ditemukan, maka kebanyakan algoritma ini diimplementasikan

ke sebuah hardware, bukan software. Maka dari itu ketika dicoba dijalankan dan

diimplementasikan ke sebuah program maka algoritma ini tidak begitu efektif,

terbukti dengan banyaknya waktu yang dia perlukan untuk melakukan enkripsi.

(65)

46

5.1.3. Enkripsi file MP3

Table 4. Hasil dari enkripsi data berupa MP3 untuk masing-masing algoritma

Grafik 3. Hasil dari enkripsi data berupa MP3 untuk masing-masing algoritma

0

Running time Memory usage

1 AES 17 11466 6477

2 DES 17 13217 6477

3 3DES 17 44722 6476

(66)

47

Penjelasan : untuk enkripsi file mp3 hasil nya adalah 3des masih menjadi yang

paling banyak memakan waktu enkripsi, disusul dengan algoritma DES, AES, dan

BLOWFISH.

5.1.4. Dekripsi file MP3

Table 5. Hasil dari dekripsi data berupa MP3 untuk masing-masing algoritma

Grafik 4. Hasil dari dekripsi data berupa MP3 untuk masing-masing algoritma

0

Running time Memory usage

1 AES 17 1218 6477

2 DES 17 628 12122

3 3DES 17 548 12290

(67)

48

Penjelasan : tidak seperti proses enkripsi, untuk proses dekripsi hasil dari running

time nya berbeda-beda. Dan yuntuk file mp3 didapatkan bahwa algoritma

Blowfish adalah yang paling lama dalam proses dekripsi.

Analisa :

Uuntuk file mp3 algoritma yang paling lambat dalam mengenkripsi file

masih tetap algoritma 3DES dikarenakan memang algoritma ini tidak dikhususkan

untuk berjalan di sebuah software. Algoritma ini membutuhkan hampir 3 kali lipat

waktu yang dibutuhkan dibanding dengan algoritma yang lain.

5.1.5. Enkripsi file dokumen

Table 6. Hasil dari enkripsi data berupa dokumen untuk masing-masing algoritma

NO Nama algoritma

Ukuran file

(mb)

Running time Memory usage

1 AES 22 12184 6477

2 DES 22 12772 6477

3 3DES 22 54238 6476

(68)

49

Grafik 5. Hasil dari enkripsi data berupa dokumen untuk masing-masing algoritma

Penjelasan : pada file dokumen (teks) dilihat perbedaan yang sangat signifikan

untuk algoritma 3des, algoritma ini membutuhkan waktu enkrip hamper 5 kali

lipat dari algoritma yang lain.

5.1.6. Dekripsi file dokumen

Table 7. Hasil dari dekripsi data berupa dokumen untuk masing-masing algoritma

0

Running time Memory usage

1 AES 22 915 11728

2 DES 22 617 11407

3 3DES 22 555 11400

(69)

50

Grafik 6. Hasil dari dekripsi data berupa dokumen untuk masing-masing

algoritma

Penjelasan : Untuk proses dekripsi hampil sama rata untuk hasil running time dan

memory usage. Tapi AES menjadi sedikit diatas rata-rata dibanding algoritma

yang lain.

Analisa :

Untuk enkripsi file dokumen masih saja algoritma 3DES yang menduduki paling

banyak memerlukan waktu untuk melakukan enkripsi data,sedangkan untuk

dekripsi algoritma Blowfish yang paling banyak memakan waktu dibanding dengan

algoritma yang lain.

Running time Memory usage

(70)

51

Table 8. Hasil dari enkripsi data berupa file video untuk masing-masing algoritma

Grafik 7. Hasil dari enkripsi data berupa file video untuk masing-masing algoritma

Penjelasan : enkripsi video lagi-lagi algoritma 3DES menjadi yang terlambat

dalam hal mengenkripsi file video. Karena algoritma ini memang tidak efisien

untuk digunakan di sebuah software.

5.1.8. Dekripsi file video 0

(71)

52

Table 9. Hasil dari dekripsi data berupa file video untuk masing-masing algoritma

Grafik 8. hasil dari dekripsi data berupa file video untuk masing-masing algoritma

Penjelasan : memory usage untuk keempat algoritma mirip, hanya berbeda sedikit

tapi disini algoritma DES menjadi yang tercepat, tetapi dia yang memakan banyak

(72)

53

Untuk hasil proses enkripsi file video hasil nya hampir sama dengan file-file yang

terdahulu. Ini membuktikan bahwa tipe file tidak berpengaruh pada kecepatan

(73)

54

BAB VI

PENUTUPAN

6.1 Kesimpulan

Berdasarkan hasil analisis, desain dan implementasi, serta uji coba

program dapat disimpulkan bahwa :

1. Dari data yang sudah didapat dapat disimpulkan bahwa tipe file tidak

mempengaruhi hasil dari running time dan memory usage pada sebuah

algoritma. Ini dibuktikan dengan algoritma 3DES yang selalu menjadi

yang terlambat di semua tipe file pada saat proses enkripsi. Dari semua

tipe file urutan nya sama yaitu yang tercepat adalah algoritma blowfish,

lalu AES, DES dan yang paling lambat 3DES.

2. Dari data yang sudah didapat dapat disimpulkan bahwa algoritma 3DES

adalah yang paling lambat dalam proses enkripsi, dan juga paling banyak

memakan memori. Sedangkan untuk algoritma tercepat ditempati oleh

algoritma Blowfish. tapi mengingat fitur yang dibawa oleh algoritma

AES lebih lengkap dan hail dari waktu enkrip dan dekrip tidak terlampau

(74)

55

6.2 Saran

Saran yang penulis dapat berikan adalah dengan membuat program

di system operasi lain, hal ini akan memperlihatkan apakah sistem operasi

juga akan berpengaruh pada jalan nya program untuk proses enkripsi maupun

(75)

56

DAFTAR PUSTAKA

Munir, Rinaldi. "Kriptografi." Informatika, Bandung (2006)

Andri Kristanto, Kemanan data pada jaringan computer, Yogyakarta 2003

Sistem Intelijen. KOMMIT 2002. Jakarta: Universitas Gunadarma.

Sari, Martha. 2010. Implementasi kriptography dalam kehidupan sehari-hari .

Jurusan Teknik Informatika STMIK GIMDP

Pistoia, Marco, et al. Enterprise Java 2 Security: Building Secure and Robust

J2EE Applications. Addison Wesley Longman Publishing Co., Inc., 2004.

Joan Daemen, Vincent Rijmen. AES Proposal : Rijndael, Document Version 2.

NIST, 1999.

HIDAYAT, AKIK, 2014. Enkripsi dan Dekripsi Algoritma 3DES (Triple Data

Encryption) Jurusan Matematika Universitas Padjajaran.

HAMZAH, RIO, 2011. Implementasi Algoritma Blowfish untuk enkripsi data

menggunakan delphi 7 Jurusan teknik Informatika Universitas Islam Syarif Hidayatullah

Soewito, Baenfano, 2010. Konsep Enkripsi dan Dekripsi Asimetris Jurusan MTI Binus University

Farid, Muhamad, 2016. Enkripsi Pesan Rahasia Menggunakan Algoritma (Advanced Encryption Standard) Program Studi Matematika Jurusan MIPA Fakultas Sains Dan

Teknologi Universitas Islam Negero Syarif Hidayatullah Jakarta

(76)
(77)
(78)

59

FileOutputStream fop = new FileOutputStream(new File("D:\\mp3_dekrip.mp4"));

int j;

while ((j = ciptt.read()) != -1) {

fop.write(j);

}

//

} catch (Exception e) {

}

} catch (FileNotFoundException ex) {

Logger.getLogger(AES.class.getName()).log(Level.SEVERE, null, ex);

}

}

2. Code BLOWFISH

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.security.Key;

(79)

60 import java.util.logging.Logger;

import javax.crypto.Cipher;

import javax.crypto.CipherInputStream;

import javax.crypto.KeyGenerator;

public class BLOWFISH {

public static void main(String[] args) {

try {

FileInputStream File2 = new FileInputStream(new File("D:\\mp3.mp4"));

try {

Cipher cipher = Cipher.getInstance("BLOWFISH ");

KeyGenerator keyGen = KeyGenerator.getInstance("BLOWFISH ");

Key key = keyGen.generateKey();

Long start = System.nanoTime();

(80)

61

cipher.init(Cipher.ENCRYPT_MODE, key);

//CipherInputStream cipt = new CipherInputStream(new

FileInputStream(new File("D:\\mp3_enkrip.mp3")), cipher);

CipherInputStream cipt = new CipherInputStream((File2), cipher);

long end = System.nanoTime();

long memory = ((runtime.totalMemory() / 1024) -

runtime.freeMemory() / 1024);

System.out.println("waktu yang dibutuhkan enkripsi adalah: " + (end -

start) + "ms");

System.out.println("memory yang diperlukan : " + memory + "kb");

FileOutputStream fip = new FileOutputStream(new

File("D:\\test_enkrip.mp4"));

int i;

while ((i = cipt.read()) != -1) {

fip.write(i);

}

FileInputStream File3 = new FileInputStream(new

(81)

62 Long start1 = System.nanoTime();

Runtime runtime1 = Runtime.getRuntime();

cipher.init(Cipher.DECRYPT_MODE, key);

CipherInputStream ciptt = new CipherInputStream((File3), cipher);

long end1 = System.nanoTime();

long memory1 = ((runtime1.totalMemory() / 1024) -

runtime1.freeMemory() / 1024);

System.out.println("waktu yang dibutuhkan dekripsi adalah: " + (end1 -

start1) + "ms");

System.out.println("memory yang diperlukan : " + memory1 + "kb");

// CipherInputStream ciptt = new CipherInputStream(new

FileInputStream(new File("D:\\mp3_enkrip.mp3")), cipher);

FileOutputStream fop = new FileOutputStream(new

File("D:\\mp3_dekrip.mp4"));

int j;

while ((j = ciptt.read()) != -1) {

(82)

63 }

} catch (Exception e) {

}

} catch (FileNotFoundException ex) {

Logger.getLogger(AES.class.getName()).log(Level.SEVERE, null, ex);

}

public static void main(String[] args) {

try {

(83)
(84)

65 adalah: " + (end1 - start1) + "ms");

(85)

66

public static void main(String[] args) {

(86)

67 adalah: " + (end1 - start1) + "ms");

Gambar

Table 5. Hasil dari dekripsi data berupa MP3 untuk masing-masing algoritma ... 47
Grafik 2. Hasil dari dekripsi data berupa gambar untuk masing-masing algoritma
Gambar  1.  Ilustrasi dari proses SubBytes
Gambar  2. Ilustrasi dari proses ShiftRows
+7

Referensi

Dokumen terkait

rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak.. Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009.

Pada proses enkripsi dan dekripsi seringkali pengguna mengalami kendala yaitu terlalu lamanya waktu proses karena besarnya ukuran file atau tidak efektifnya algoritma

Dari hasil perancangan dan pengamatan menunjukkan program penyandi enkripsi dan dekripsi dengan algoritma Blowfish berhasil menyandikan data 64 bit dan program algoritma

Menambah pengetahuan penulis dalam melakukan proses enkripsi dan dekripsi suatu citra dengan menggunakan algoritma Blowfish. Untuk meningkatkan keamanan citra yang

Karena Kunci 2 = Kunci 3 dan 3DES adalah algoritma simetri maka enkripsi menggunakan kunci 3 dari hasil dekripsi menggunakan kunci 2, hasilnya adalah E K1 ( P ) yang

Pada proses enkripsi dan dekripsi seringkali pengguna mengalami kendala yaitu terlalu lamanya waktu proses karena besarnya ukuran file atau tidak efektifnya algoritma

Dari hasil pengujian yang telah dilakukan diperoleh hasil bahwa jika ditinjau dari estimasi waktu proses enkripsi dan dekripsi, algoritma Blowfish lebih cepat waktu eksekusinya

Algoritma Blowfish memiliki keunikan dalam hal proses dekripsi, yaitu proses dekripsi dilakukan dengan urutan yang sama persis dengan proses enkripsi, hanya saja