PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 2015
i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 2015
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERNYATAAN KEASLIAN KARYA iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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. ( Anonymus,2015 )
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 proses enkripsi maupun dekripsi nya sendiri, kinerja CPU tidak menunjukan peningkatan proses yang berarti
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 performance does not indicate an increase in the process
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 kebersamaan selama penyelesaian penulisan skripsi.
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 LEMBAR PERNYATAAN PERSETUJUAN ..................Error! Bookmark not defined. PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ..........Error! Bookmark not defined. HALAMAN MOTTO ......................................................................................................vii ABSTRAK ....................................................................................................................... viii ABSTRACT .......................................................................................................................ix KATA PENGANTAR ....................................................................................................... x DAFTAR ISI..................................................................................................................... xii DAFTAR GAMBAR ........................................................................................................ xv DAFTAR TABEL ........................................................................................................... xvi DAFTAR GRAFIK ........................................................................................................ xvii BAB I .................................................................................................................................. 1 PENDAHULUAN ............................................................................................................. 1 1.1.
Latar Belakang .................................................................................................... 1
1.2.
Rumusan masalah ............................................................................................... 6
1.3.
Tujuan penelitian ................................................................................................ 6
1.4.
Batasan Masalah ................................................................................................. 7
1.5.
Manfaat ............................................................................................................... 7
1.6.
Metodologi Penelitian : ....................................................................................... 7
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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. 3.3.
Contoh Kasus ............................................................................................ 29
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
4.1.1.
Perangkat yang digunakan ........................................................................ 34
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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
5.1.7.
Enkripsi file Video .................................................................................... 50
5.1.8.
Dekripsi file video..................................................................................... 51
BAB VI PENUTUPAN .................................................................................................. 54 6.1 Kesimpulan ............................................................................................................. 54 6.2 Saran ....................................................................................................................... 55 DAFTAR PUSTAKA ...................................................................................................... 56 LAMPIRAN..................................................................................................................... 57 1.
Code AES.............................................................................................................. 57
2.
Code BLOWFISH ................................................................................................. 59
3.
Code 3DES ............................................................................................................. 63
4.
Code DES.............................................................................................................. 65
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 Gambar 20. Hasil Dekrip dan Enkrip ................................................................... 42
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 algoritma43 Table 3. Hasil dari dekripsi data berupa gambar untuk masing-masing algoritma44 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 ....................................................................................................................... 52
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 ....................................................................................................................... 52
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 masingmasing algoritma memiliki karakter dan spesifikasi yang berbeda. Disini penulis ingin mencoba membandingkan algoritma AES (Advanced Encryption Standard), DES (Data Encryption Standard), 3DES (Triple Data Encryption Standard) , dan
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 bergeser ke kiri sebanyak satu kali.
2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2. Ilustrasi dari proses ShiftRows 3. MixColoumns : adalah proses mengalikan tiap elemen dari blok chiper dengan matrik.
Gambar 3. Ilustrasi dari prose MixColoumns
3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 algoritma simetris yang paling baik dan paling banyak digunakan di dunia. DES 4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 bahwa Blowfish bebas paten dan akan berada pada domain publik. Dengan 5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 redudansi data ataupun adanya file yang corrupt.
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 7.1 dan Java ™ SE Development Kit 6 Update 12
7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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.
BAB V
ANALISIS HASIL IMPLEMENTASI
8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 program di masa yang akan datang
9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 Perang Dunia I, Sigaba/M-134 yang digunakan oleh Amerika Serikat pada
10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 sehingga pesan tadi dapat dibaca kembali oleh penerima pesan. Secara
11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
umum, proses enkripsi dan dekripsi dapat digambarkan sebagai
Plaintext
Enkripsi
Key
Key
berikut :
Ciphertext
Dekripsi
Plaintext
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 terhadap suatu pesan, maka kriptanalis tersebut harus mendapatkan
12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 oleh komputer untuk melakukan proses enkripsi. Oleh sebab itu, 13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 kebalikan dari proses enkripsi.
14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 blokblok 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 aliran bit-bit data.
15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 dekripsi ini disebut private key.
16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika
17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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
kepemimpinan W.L. Tuchman pada tahun 1972.
IBM
dibawah
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 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal
18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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. Kedua bagian ini masuk ke dalam 16 putaran DES.
19
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 internal: K1, K2, …, K16. Dibangkitkan dari kunci eksternal (64 bit) yang diberikan oleh pengguna. Kunci eksternal Permutasi PC-1
C0
D0
Left Shift
Left Shift
C1
D1
Left Shift
Permutasi PC-2
K1
Permutasi PC-2
Kj
Permutasi PC-2
K16
Left Shift
Cj
Dj
Left Shift
Left Shift
C16
D16
20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 kunci eksternal yang kedua (K2) dan melakukan proses enkripsi atau
21
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 diadopsi menjadi standard algortitma secara resmi pada 22 Mei 2002.
22
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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.
Gambar 9. Proses enkripsi algoritma AES
23
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.4.4. Algoritma Blowfish Blowfish adalah suatu algoritma kriptografi yang beroperasi pada
mode
blok.
diimplementasikan
pada
Algoritma
Blowfish
sebuah
mikroprosesor
ditujukan berskala
untuk 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 operasioperasi 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 bit.
24
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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: F(xL) = ((S1,a + S2,b mod 232) ⊕ S3,c) + S4,d mod 232
25
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 10. Skema jaringan Feistel pada algoritma Blowfish
Gambar 11. Skema fungsi F pada algoritma Blowfish
26
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 diekspor oleh pemerintah Amerika setelah kebijakan mengenai 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 dan masih banyak lagi.
27
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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) c. File video (mp4)
28
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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. Ukuran file NO
Nama algoritma
Running time
Memory usage
(mb) 1
AES
8
11536
6477
2
DES
8
12232
6487
3
3DES
8
43762
6477
4
Blowfish
8
11506
6158
Table 1. Dari enkripsi untuk mengetahui alokasi memory yang digunakan dan running time nya
29
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.3. Requirment Analysis 3.3.1. Diagram flowchart enkripsi
30
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Diagram 1. Flowchart Enkripsi
31
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.3.2. Diagram flowchart dekripsi
32
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Diagram 2. Diagram dekripsi
33
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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. Berikut ini adalah potongan program untung menghitung nya :
34
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 satuan nya adalah kb (kilo byte)
35
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3. Setelah itu untuk menghitung total running time nya dan menampilkan nya
maka
bisa
menggunakan
System.out.println("waktu
dibutuhkan adalah: " + (end - start) + "ms");
yang
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.
Gambar 15. Potongan Program 4
36
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 File("F:\\enkrip.mp4")”:. F disini adalah lokasi disk dimana file yang
37
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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. Dan untuk hasil outpout file nya adalah
38
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 sama.
39
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 File("F:\\video_enkrip.mp4")
40
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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. Untuk hasil outpout file nya di komputer adalah seperti ini :
41
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 ini menandakan file tersebut berhasil di dekrip.
42
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 masingmasing algoritma. Tipe file yang dienkripsi adalah gambar, suara, video, dan dokumen. Berikut adalah hasil pengujian nya : 5.1.1.
Enkripsi image
Ukuran file NO
Nama algoritma
Running time
Memory usage
(mb) 1
AES
8
11536
6477
2
DES
8
12232
6487
3
3DES
8
43762
6477
4
Blowfish
8
11506
6158
Table 2. Hasil dari enkripsi data berupa gambar untuk masing-masing algoritma
43
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50000 45000 40000 35000 30000 25000
Running time
20000
Memory usage
15000 10000 5000 0 aes
des
3des
blowfish
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 Ukuran file
NO
Nama algoritma
Running time
Memory usage
(mb) 1
AES
8
1218
6477
2
DES
8
590
8455
3
3DES
8
532
8774
4
Blowfish
8
1281
8455
Table 3. Hasil dari dekripsi data berupa gambar untuk masing-masing algoritma
44
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10000 9000 8000 7000 6000 5000
Running time
4000
Memory usage
3000 2000 1000 0 aes
des
3des
blowfish
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.
45
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5.1.3. Enkripsi file MP3 Ukuran file NO
Nama algoritma
Running time
Memory usage
(mb) 1
AES
17
11466
6477
2
DES
17
13217
6477
3
3DES
17
44722
6476
4
Blowfish
17
11473
6156
Table 4. Hasil dari enkripsi data berupa MP3 untuk masing-masing algoritma
50000 45000 40000 35000 30000 25000
Running time
20000
Memory usage
15000 10000 5000 0 aes
des
3des
blowfish
Grafik 3. Hasil dari enkripsi data berupa MP3 untuk masing-masing algoritma
46
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 Ukuran file NO
Nama algoritma
Running time
Memory usage
(mb) 1
AES
17
1218
6477
2
DES
17
628
12122
3
3DES
17
548
12290
4
Blowfish
17
1272
11892
Table 5. Hasil dari dekripsi data berupa MP3 untuk masing-masing algoritma
14000 12000 10000 8000 Running time 6000
Memory usage
4000 2000 0 aes
des
3des
blowfish
Grafik 4. Hasil dari dekripsi data berupa MP3 untuk masing-masing algoritma 47
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 Ukuran file NO
Nama algoritma
Running time
Memory usage
(mb) 1
AES
22
12184
6477
2
DES
22
12772
6477
3
3DES
22
54238
6476
4
Blowfish
22
11875
6157
Table 6. Hasil dari enkripsi data berupa dokumen untuk masing-masing algoritma
48
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60000 50000 40000 Running time
30000
Memory usage
20000 10000 0 aes
des
3des
blowfish
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 Ukuran file NO
Nama algoritma
Running time
Memory usage
(mb) 1
AES
22
915
11728
2
DES
22
617
11407
3
3DES
22
555
11400
4
Blowfish
22
1232
11408
Table 7. Hasil dari dekripsi data berupa dokumen untuk masing-masing algoritma
49
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14000 12000 10000 8000
Running time
6000
Memory usage
4000 2000 0 aes
des
3des
blowfish
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. 5.1.7. Enkripsi file Video Ukuran file NO
Nama algoritma
Running time
Memory usage
12068
6485
(mb) 1
AES
80
50
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
DES
80
12449
6485
3
3DES
80
45988
6477
4
Blowfish
80
12262
6477
Table 8. Hasil dari enkripsi data berupa file video untuk masing-masing algoritma
50000 45000 40000 35000 30000 25000
Running time
20000
Memory usage
15000 10000 5000 0 aes
des
3des
blowfish
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 Ukuran file NO
Nama algoritma
Running time (mb)
51
Memory usage
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1
AEs
80
826
13879
2
DES
80
658
13943
3
3DES
80
539
13577
4
Blowfish
80
1265
13561
Table 9. Hasil dari dekripsi data berupa file video untuk masing-masing algoritma
16000 14000 12000 10000 Running time
8000
Memory usage
6000 4000 2000 0 aes
des
3des
blowfish
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 memory dalam prosen dekripsi. Analisa :
52
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Untuk hasil proses enkripsi file video hasil nya hampir sama dengan file-file yang terdahulu. Ini membuktikan bahwa tipe file tidak berpengaruh pada kecepatan running time maupun memory usage.
53
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 jauh dari Blowfish maka tidak ada salahnya jika mencoba algoritma AES
54
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 dekripsi.
55
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 Simson Garfinkel, 1995, “PGP : Pretty Good Privacy”, O’Reilly & Associates,Inc
56
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN 1. Code AES
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.security.Key; import java.util.logging.Level; import java.util.logging.Logger; import javax.crypto.Cipher; import javax.crypto.CipherInputStream; import javax.crypto.KeyGenerator;
public class AES { public static void main(String[] args) { try { FileInputStream File2 = new FileInputStream(new File("D:\\mp3.mp4")); try { Cipher cipher = Cipher.getInstance("AES"); KeyGenerator keyGen = KeyGenerator.getInstance("AES"); Key key = keyGen.generateKey(); Long start = System.nanoTime(); Runtime runtime = Runtime.getRuntime(); cipher.init(Cipher.ENCRYPT_MODE, key); //CipherInputStream cipt = new CipherInputStream(new FileInputStream(new File("D:\\mp3_enkrip.mp3")), cipher);
57
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 File("D:\\test_enkrip.mp4")); 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);
58
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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; import java.util.logging.Level;
59
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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(); Runtime runtime = Runtime.getRuntime();
60
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 File("D:\\test_enkrip.mp4")); 61
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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) { fop.write(j);
62
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
} } catch (Exception e) { } } catch (FileNotFoundException ex) { Logger.getLogger(AES.class.getName()).log(Level.SEVERE, null, ex); } 3. Code 3DES
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.security.Key; import java.util.logging.Level; import java.util.logging.Logger; import javax.crypto.Cipher; import javax.crypto.CipherInputStream; import javax.crypto.KeyGenerator;
public class DESede{
public static void main(String[] args) { try { FileInputStream File2 = new FileInputStream(new File("D:\\mp3.mp4"));
63
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
try { Cipher cipher = Cipher.getInstance("DESede"); KeyGenerator keyGen = KeyGenerator.getInstance("DESede"); Key key = keyGen.generateKey(); Long start = System.nanoTime(); Runtime runtime = Runtime.getRuntime(); 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 File("D:\\test_enkrip.mp4")); Long start1 = System.nanoTime(); Runtime runtime1 = Runtime.getRuntime();
64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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) { fop.write(j); } // } catch (Exception e) { } } catch (FileNotFoundException ex) {
Logger.getLogger(AES.class.getName()).log(Level.SEVERE, null, ex); }
4.
Code DES
65
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.security.Key; import java.util.logging.Level; import java.util.logging.Logger; import javax.crypto.Cipher; import javax.crypto.CipherInputStream; import javax.crypto.KeyGenerator;
public class DES {
public static void main(String[] args) { try { FileInputStream File2 = new FileInputStream(new File("D:\\mp3.mp4"));
try { Cipher cipher = Cipher.getInstance("DES "); KeyGenerator keyGen = KeyGenerator.getInstance("DES "); Key key = keyGen.generateKey(); Long start = System.nanoTime(); Runtime runtime = Runtime.getRuntime(); cipher.init(Cipher.ENCRYPT_MODE, key); //CipherInputStream cipt = new CipherInputStream(new FileInputStream(new File("D:\\mp3_enkrip.mp3")), cipher);
66
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 File("D:\\test_enkrip.mp4")); 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");
67
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
// 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) { fop.write(j); } // } catch (Exception e) { } } catch (FileNotFoundException ex) {
Logger.getLogger(AES.class.getName()).log(Level.SEVERE, null, ex); }
}
68
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Revisi : 1. Perbaiki cara tulis, daftar pustaka, spasi, penulisan judul gambar, penulisan judul taber dan penomoran. 2. Kesimpulan diperbaiki, atau ditambahkan dari hasil pengujian keempat algoritma yang dipakai 3. Beri penjelasan semua gambar yang ada 4. Penulisan bab 1 sampai bab 4 dibaca lagi.
69