• Tidak ada hasil yang ditemukan

Analisis perbandingan unjuk kerja algoritma des,3des,aes,blowfish dan twofish pada dokumen

N/A
N/A
Protected

Academic year: 2021

Membagikan "Analisis perbandingan unjuk kerja algoritma des,3des,aes,blowfish dan twofish pada dokumen"

Copied!
55
0
0

Teks penuh

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

(2) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. COMPARATIVE ANALYSIS OF DES, 3DES, AES, BLOWFISH AND TWOFISH ALGORITHM PERFORMANCE ON DOCUMENTS. A THESIS Presented as Partial Fulfillment of Requirements To Obtain Sarjana Komputer Degree In Informatics Engineering Department. By: Y ADVENSIUS PUTRA PAMUNGKAS 155314086. DEPARTMENT OF INFORMATICS FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2019 ii.

(3) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. iii.

(4) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. iv.

(5) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. v.

(6) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. vi.

(7) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. HALAMAN MOTTO. “janganlah takut, sebab Aku menyertai engkau , janganlah bimbang, sebab Aku ini Allahmu; Aku akan meneguhkan, bahkan akan menolong engkau; Aku akan memegang engkau dengan tangan kanan-Ku yang membawa kemenangan.” (Yesaya 41:10). vii.

(8) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. ABSTRAK. Keamanan suatu informasi adalah suatu hal sangat penting. Sehingga perlu adanya perlindungan pada informasi tersebut, salah satunya yaitu dengan kriptografi. Kriptografi adalah suatu penyandian untuk melindungi informasi dengan menggunakan algoritma tertentu, sehingga informasi yang rahasia dapat terlindungi dari penyadapan. Data Encryption Standard (DES), Triple Data Encryption Standard (3DES), Advance Encryption Standard (AES), Blowfish dan Twofish merupakan algoritma penyandian yang akan digunakan dalam penelitian ini. Setiap algoritma sudah memenuhi kebutuhan untuk mengacak data sehingga dapat dimanfaatkan untuk pengamanan informasi. Namun masingmasing algoritma memiliki performansi yang berbeda-beda dalam proses enkripsi maupun dekripsi.. viii.

(9) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. ABSTRACT. The security of information is a very important thing. Because there needs to be information about this, one of them is with cryptography. Cryptography is one of the encodings to protect information by using certain, so that confidential information can be protected from eavesdropping. Data Encryption Standard (DES), Triple Data Encryption Standard (3DES), Advanced Encryption Standard (AES), Blowfish and Twofish are the encoding algorithms that will be used in this study. Each algorithm has fulfilled the need to randomize data so that it can be used for information security. However, each algorithm has different performance in the encryption and decryption process.. ix.

(10) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. KATA PENGANTAR. Puji Syukur penulis panjatkan kepada Tuhan Yang Maha Esa karena atas rahmat dan berkat-Nya penulis dapat menyelesaikan penyusunan tugas akhir dengan tepat waktu. Dalam pelaksanaan penyusunan skripsi ini mendapatkan banyak bimbingan dan bantuan dari berbagai pihak. Pada kesempatan ini penulis mengucapkan banyak terimakasih kepada: 1. Tuhan Yesus Kristus yang telah memberikan banyak sekali pengalaman berharga, kasih yang tulus, berkat dan rahmat yang melimpah untuk membentuk penulis menjadi pribadi yang lebih lagi. 2. Keluarga, yang senantiasa mendoakan, memberikan dukungan dan semangat. 3. Bapak Bambang Soelistijanto, S.T, M.Sc., Ph.D. selaku dosen pembimbing tugas akhir yang sudah memberikan banyak bimbingan dan ilmu dalam mengerjakan tugas akhir. 4. Bapak Eko Hari Parmadi, S.Si., M.Kom. selaku dosen pembimbing akademis yang sudah memberikan bimbingan dalam mengerjakan tugas akhir. 5. Seluruh teman angkatan 2015 terutama teman-teman jaringan yang selalu memberikan dukungan dan semangat sehinga penulis dapat menyelesaikan tugas akhir. 6. Kamsky yang selalu memberi support dan doa kepada saya. 7. Maria Regina Tryonita yang memberi motivasi dukungan dan menemani saya selama pengerjaan skripsi. Penulis menyadari bahwa dalam penyelesaian tugas akhir ini mungkin masih banyak kekurangan, maka dari kritik dan saran sangat penulis harapkan untuk perbaikan di masa mendatang. Akhir kata, penulis mengucapkan banyak terimakasih semoga tugas akhir ini dapat bermanfaat untuk ke depannya.. x.

(11) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. DAFTAR ISI. ANALISIS PERBANDINGAN UNJUK KERJA ALGORITMA DES, 3DES, AES, BLOWFISH DAN TWOFISH PADA DOKUMEN............................................................ i HALAMAN PERSETUJUAN........................................................................................... iii HALAMAN PENGESAHAN.............................................................................................iv PERNYATAAN LEMBAR KEASLIAN KARYA ............................................................ v LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS .......................................................................................................................vi ABSTRAK ........................................................................................................................ viii ABSTRACT........................................................................................................................ix KATA PENGANTAR ........................................................................................................ x DAFTAR ISI.......................................................................................................................xi DAFTAR GAMBAR ........................................................................................................ xiv DAFTAR GRAFIK ............................................................................................................ xv DAFTAR RUMUS ........................................................................................................... xvi BAB I .................................................................................................................................. 1 1.1. Latar Belakang .............................................................................................................. 1 1.2. Rumusan Masalah ........................................................................................................ 3 1.3. Tujuan Penelitian .......................................................................................................... 3 1.4. Batasan Masalah ........................................................................................................... 3 1.5. Manfaat Penelitian ........................................................................................................ 4 1.6. Metode Penelitian.......................................................................................................... 4 1.7. Sistematika Penulisan ................................................................................................... 5 BAB II................................................................................................................................. 6. xi.

(12) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 2.1. Kriptografi ..................................................................................................................... 6 2.1.1. Kriptografi simetris ................................................................................................. 6 2.1.2. Kriptografi Asimetris............................................................................................... 7 2.2. DES (Data Encryption Standard).................................................................................. 8 2.2.1.. Algoritma DES .................................................................................................. 9. 2.3. 3DES (Triple Data Encryption Standard) ................................................................... 10 2.4. AES (Advance Encrytion Standard) ........................................................................... 10 2.4.1. Algoritma AES ...................................................................................................... 12 2.5. Blowfish........................................................................................................................ 15 2.5.1.. Algoritma Blowfish .......................................................................................... 16. 2.6. Twofish ......................................................................................................................... 18 2.6.1. Algoritma Twofish ................................................................................................ 19 BAB III ............................................................................................................................. 22 3.1. Alat Penelitian............................................................................................................... 22 3.1.1. Hardware ............................................................................................................... 22 3.1.2. Software................................................................................................................. 22 3.2. Pembuatan Alat Uji ....................................................................................................... 22 1. Studi Literatur ........................................................................................................... 22 2. Pengumpulan Bahan Penelitian ................................................................................ 22 3. Implementasi ............................................................................................................. 22 3.3. Parameter Unjuk Kerja ................................................................................................. 23 3.4. Desain Alat Uji ............................................................................................................. 24 4.1. Hasil Pengujian Sistem ................................................................................................. 26 4.1.1.. Perbandingan Running Time proses enkripsi. .................................................. 26. 4.1.2. Perbandingan Running Time proses dekripsi ........................................................ 27 4.1.3. Perbandingan Avalanche kunci. ............................................................................ 28 xii.

(13) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 4.1.4. Perbandingan Avalanche pesan. ............................................................................ 29 BAB V .............................................................................................................................. 31 5.1 KESIMPULAN ............................................................................................................. 31 5.2 SARAN ......................................................................................................................... 31 DAFTAR PUSTAKA ....................................................................................................... 32. xiii.

(14) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. DAFTAR GAMBAR. Gambar 1. Skema Proses Enkripsi dan Dekripsi ............................................. 6 Gambar 2. Proses Kriptografi Simetris ............................................................ 7 Gambar 3. Proses Kriptografi Asimetris .......................................................... 7 Gambar 4. Proses Algoritma DES ................................................................... 9 Gambar 5. Proses Algoritma 3DES ................................................................. 10 Gambar 6. Enkripsi AES .................................................................................. 11 Gambar 7. Kombinasi Kunci-Blok Putaran ..................................................... 11 Gambar 8. Algoritma AES ............................................................................... 13 Gambar 9. Add Round Key.............................................................................. 13 Gambar 10. Sub Bytes ..................................................................................... 14 Gambar 11. Shift Rows .................................................................................... 14 Gambar 12. Mix Column ................................................................................. 15 Gambar 13. Struktur Feistel ............................................................................. 17 Gambar 14. Fungsi Feistel ............................................................................... 18 Gambar 15. Proses Algoritma Twofish ............................................................ 19. xiv.

(15) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. DAFTAR GRAFIK Grafik 1. Perbandingan Runtime Enkripsi ....................................................... 26 Grafik 2. Perbandingan Runtime Dekripsi ....................................................... 27 Grafik 3. Perbandingan Avalanche Kunci ....................................................... 28 Grafik 4. Perbandingan Avalanche Kunci ....................................................... 29. xv.

(16) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. DAFTAR RUMUS. Rumus 1. Ekspansi Kunci Blowfish ................................................................ 16 Rumus 2. Fungsi Feistel ................................................................................... 17 Rumus 3. Running Time .................................................................................. 23 Rumus 4. Avalanche Effect ............................................................................. 23. xvi.

(17) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB I PENDAHULUAN 1.1.. Latar Belakang Pada perkembangan era digital saat ini, keamanan suatu informasi adalah suatu hal sangat penting. Penyadapan informasi yang rahasia pun sering terjadi. Sehingga perlu adanya perlindungan pada informasi tersebut, salah satunya yaitu dengan kriptografi. Kriptografi adalah suatu penyandian untuk melindungi informasi dengan menggunakan algoritma tertentu, sehingga informasi yang rahasia dapat terlindungi dari penyadapan. Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses dan proses dekripsi. Proses enkripsi adalah proses penyandian pesan terbuka menjadi pesan yang rahasia atau biasa disebut chipertext. Chipertext inilah yang nantinya akan dikirimkan melalui saluran terbuka. Sedangkan proses dekripsi adalah dimana pesan chipertext yang sudah dikirimkan diubah kembali ke dalam pesan terbuka oleh penerima. Algoritma kriptografi itu sendiri yang biasa digunakan adalah DES (Data Encryption Standard), AES (Advance Encryption Standard), Blowfish, Twofish, 3DES (Triple Data Encryption Standard) dll. Setiap algoritma mempunyai spesifikasi, karakter yang berbeda dan mempunyai kelebihan dan kelemahan masing-masing. Pada dasarnya hal yang penting pada proses enkripsi adalah pada kuncinya, dan penentuan algoritma yang tepat juga mempengaruhi performansi proses enkripsi. Sehingga informasi yang ingin dilindungi akan lebih aman. Di sini penulis ingin mencoba membandingkan unjuk kerja algoritma DES, 3DES, AES , Twofish dan Blowfish. DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau lupa-kunci (subkey). 1.

(18) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit. 3DES adalah salah satu sistem enkripsi berlapis tiga dari sistem yang sebelumnya sudah ada, yaitu DES (Data Encryption Standard). 3DES lebih aman dari DES, karena mengalami enkripsi tiga kali. Pada awalnya, ukuran kunci sandi DES yaitu 56 bit sudah mencukupi pada saat algoritme ini dibuat. Namun, dengan meningkatnya kemampuan komputasi, serangan. brutal telah. mungkin. terjadi.. Triple. DES. menyediakan metode yang sederhana dengan menambah ukuran kunci DES untuk mencegah serangan tersebut, tanpa memerlukan perancangan sandi blok (block cipher) yang sama sekali baru. AES merupakan algoritma cipher yang cukup aman untuk melindungi data atau informasi yang bersifat rahasia. AES dikeluarkan oleh National Institute of Standard and Technology (NIST) sebagai standard algoritma kriptografi untuk menggantikan DES yang sudah tak dipakai pada tahun 2002 karena tidak bisa mengikuti perkembangan teknologi infomasi yang cepat. Blowfish merupakan algoritma kunci simetris blok cipher yang hadir lebih dulu untuk alternatif menggantikan DES pada tahun 1993 oleh Bruce Schenier. Kedua algoritma diatas merupakan algoritma kunci simetri dan merupakan algoritma lanjutan untuk menggantikan DES (Data Encryption Standard), inilah yang membuat penulis menjadikan perbandingan kedua algoritma tersebut sebagai topik penelitian. Twofish merupakan algoritme kriptografi yang beroperasi dalam mode blok cipher berukuran 128 bit dengan ukuran kunci sebesar 256 bit, ukuran kunci yang besar ditujukan untuk meniadakan kemungkinan kunci lemah (weak-key). Algoritme Twofish sendiri merupakan pengembangan dari. algoritme Blowfish.. Perancangan. Twofish. dilakukan. dengan. memperhatikan kriteria-kriteria yang diajukan National Institute of Standards and Technology (NIST) untuk kompetisi Advanced Encryption. 2.

(19) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Standard (AES), tetapi algoritme ini tidak terpilih sebagai basis standardisasi.. 1.2.. Rumusan Masalah Berdasarkan latar belakang yang telah di paparkan, rumusan masalah yang di dapat penulis adalah : a. Bagaimana performansi yang dihasilkan algoritma DES, 3DES, AES, Blowfish dan Twofish dalam melakukan proses enkripsi dan proses dekripsi pada dokumen ?. 1.3.. Tujuan Penelitian Tujuan dari penelitian ini adalah : a. Mengetahui running time / waktu yang dibutuhkan untuk melakukan proses enkripsi dan dekripsi pada algoritma DES, 3DES, AES, Blowfish dan Twofish. b. Mengetahui avalanche effect / berapa banyak perubahan bit yang dihasilkan jika pesan atau kunci diubah karakternya.. 1.4.. Batasan Masalah Batasan masalah dalam penelitian ini adalah : a.. Algoritma kriptografi yang diuji adalah algoritma DES, 3DES, AES, Blowfish dan Twofish.. b.. Pengujian dilakukan menggunakan Java Cryptography Extention.. c.. Tipe data yang digunakan sebagai plaintext adalah berupa dokumen text.. d.. Metrik unjuk kerja yang akan digunakan adalah avalanche effect dan running time. 3.

(20) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 1.5.. Manfaat Penelitian Hasil dari penelitian ini diharapkan dapat digunakan sebagai perbandingan dalam memilih algoritma untuk melakukan enkripsi pesan sesuai kebutuhan supaya permormansi lebih efisien.. 1.6.. Metode Penelitian Metode yang dilakukan dalam penelitian ini meliputi : a. Studi pustaka Membaca referensi buku dan jurnal yang berkaitan dengan teori kriptografi. b. Pengumpulan bahan penelitian Pengumpulan data untuk penelitian menggunakan software dan tools untuk melakukan penelitian. c. Pembuatan alat uji Perancangan system dilakukan untuk menguji parameter unjuk kerja yang akan dibandingkan. d. Pengujian Dalam tahap ini akan dilakukan pengujian untuk mengetahui performansi algoritma kriptografi dari DES, 3DES, AES, Blowfish dan Twofish. e. Analisi hasil pengujian Dalam tahap ini akan dianalisis performansi algoritma.. 4.

(21) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 1.7.. Sistematika Penulisan BAB I : PENDAHULUAN Bab ini berisi penjelasan tentang latar belakang masalah, rumusan masalah, tujuan penelitian, manfaat penelitian, batasan masalah, metode penelitian, dan sistematika penulisan BAB II : LANDASAN TEORI Bab ini berisi tentang teori tentang Algoritma DES, 3DES, AES, Blowfish dan Twofish yang digunakan sebagai dasar dalam mengukur unjuk kerja proses enkripsi dan dekripsi. BAB III : METODE PENELITIAN Bab ini berisi tentang data penelitian, alat penelitian, langkahlangkah pengujian. BAB IV : HASIL DAN ANALISIS Bab ini berisi tentang hasil pengujian serta analisis dari hasil data yang sudah diuji. BAB V : KESIMPULAN DAN SARAN Bab ini berisi tentang kesimpulan hasil penelitian dan saran dari penulis untuk penelitian selanjutnya.. 5.

(22) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB II LANDASAN TEORI. 2.1.. Kriptografi Kata kriptografi berasal dari bahasa Yunani, “kryptós” yang berarti tersembunyi dan “gráphein” yang berarti tulisan. Kriptografi mempunyai dua bagian penting, yaitu enkripsi dan deskripsi. Enkripsi adalah proses penyandian dari pesan asli (plaintext) menjadi pesan yang tidak dapat diartikan (ciphertext). Sedangkan dekripsi sendiri berarti merubah pesan yang sudah disandikan (ciphertext) menjadi pesan aslinya (plaintext). Adapun algoritma matematis yang digunakan pada proses enkripsi yakin disebut cipher dan sistem yang memanfaatkan kriptografi untuk mengamankan sistem informasi disebut kriptosistem. Pada gambar 1 adalah skema proses enkripsi dan dekripsi.. Gambar 1. Skema proses enkripsi dan dekripsi. Teknik kriptografi untuk enkripsi data ada dua macam yaitu : 2.1.1. Kriptografi simetris Kriptografi simetris adalah algoritma yang menggunakan kunci yang sama untuk proses enkripsi dan proses deskripsi. Algoritma kriptografi simetris dibagi menjadi dua kategori yaitu algoritma aliran (Stream Ciphers) dan algoritma blok (Block Ciphers). Dimana pada algoritma aliran, proses penyandiannya akan beriorientasi pada satu 6.

(23) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. bit/byte data. Sedangkan pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit/byte data (per blok). Adapun contoh algoritma kunci simetris adalah DES (Data Encryption Standard), Blowfish, Twofish, MARS, IDEA, 3DES (DES diaplikasikan 3 kali), AES. (Advanced. Encryption. Standard). yang. bernama. asli. Rijndael. Pada gambar 2 merupakan proses kriptografi dengan teknik simetris.. Gambar 2. Proses kriptografi simetris. 2.1.2. Kriptografi Asimetris Kriptografi asimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan deskripsi. Dimana kunci enkripsi dapat disebarkan kepada umum dan dinamakan sebagai kunci publik (public key), sedangkan kunci deskripsi disimpan untuk digunakan sendiri dan dinamakan sebagai kunci pribadi (private key). Oleh karena itu, kriptografi ini dikenal pula dengan nama kriptografi kunci publik (public. key. cryptography).. Adapun. contoh. algoritma. yang. menggunakan kunci asimetris adalah RSA (Riverst Shamir Adleman) dan ECC (Elliptic Curve Cryptography). Pada gambar 3 adalah proses kriptografi dengan teknik asimetris.. Gambar 3. Proses Kriptografi asimetris. 7.

(24) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Tujuan dari kriptografi itu sendiri ialah : a.. Kerahasiaan : layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka maupun menghapus informasi yang telah disandi.. b.. Integritas data : berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak. yang. tidak. berhak,. antara. lain. penyisipan,. penghapusan dan pensubstitusian data lain kedalam data yang sebenarnya. c.. Authentifikasi : berhubungan dengan identifikasi atau pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Dimana inforamsi yang dikirimkan melalui kanal harus diauthentifikasi keaslian, isi datanya, waktu pengiriman dan lainlain.. d.. Non-repudiasi : usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman atau terciptanya suatu informasi oleh yang mengirimkan atau membuat.. 2.2. DES (Data Encryption Standard) Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L.Tuchman pada tahun 1972. Algoritma ini telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat. DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteksmenjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal. (internal. key)atau. upa-kunci. (subkey).. Kunci. internal. dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit.. 8.

(25) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 2.2.1. Algoritma DES a. Blok plainteks dipermutasi dengan matriks permutasi awal initial permutation atau IP). b. Hasil permutasi awal kemudian di-enciphering- sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda. c. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP -1 ) menjadi blok cipherteks.. Gambar 4. Proses Algoritma DES. Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal K i . Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES. Secara matematis, satu putaran DES dinyatakan sebagai : Ø Li=Ri–1 Ø R i = L i – 1  f(R i – 1 , K i ). 9.

(26) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 2.3. 3DES (Triple Data Encryption Standard) 3DES (Triple Data Encryption Standard) merupakan suatu algoritma. pengembangan. dari algoritma. DES (Data. Encryption. Standard). Pada dasarnya algoritma yang digunakan sama, hanya pada 3DES dikembangkan dengan melakukan enkripsi dengan implementasi algoritma DES sebanyak tiga kali. 3DES memiliki tiga buah kunci yang berukuran 168-bit (tiga kali kunci 56-bit dari DES). Pada algoritma 3DES. dibagi. menjadi tiga. tahap,. setiap. tahapnya merupakan. implementasi dari algoritma DES.. Gambar 5. Proses Algoritma Triple DES. 2.4. AES (Advance Encrytion Standard) AES atau bisa juga disebut Rijndael merupakan algoritma kunci simetris blok cipher yang menggunakan kunci kriptografi 128, 192 dan 256 bit untuk melakukan enkripsi dan dekripsi data pada 128 bit. Algoritma AES menggunakan sistem permutasi dan substitusi (P-Box dan S-Box) dan terbagi menjadi tiga jenis, yaitu AES-128, AES-192 dan AES256.. 10.

(27) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Gambar 6. Enkripsi AES. Untuk algoritma AES, panjang kunci cipher, K, adalah 128, 192, atau 256 bit. Panjang kunci diwakili oleh Nk = 4, 6, atau 8, yang merupakan jumlah kata 32-bit (jumlah kolom) dalam kunci cipher. Panjang blok input, blok output dan state adalah 128 bit. Ini diwakili oleh Nb = 4, yang merupakan jumlah kata 32-bit (jumlah kolom) di state. Jumlah putaran yang harus dilakukan selama eksekusi algoritma tergantung pada ukuran kunci. Jumlah putaran diwakili oleh Nr, di mana Nr = 10 ketika Nk = 4, Nr = 12 ketika Nk = 6, dan Nr = 14 ketika Nk = 8. untuk lebih jelas bisa lihat tabel 1 dibawah ini.. Gambar 7. Kombinasi Kunci-Blok-Putaran. Dengan panjang kunci 128-bit, maka terdapat. = 3,4 x 1038. kemungkinan kunci. Jika digunakan 1 juta komputer yang masing-masing memiliki kemampuan mencoba 1 juta kunci per detik, maka akan diperlukan waktu 5,4 trilyun tahun untuk mencoba seluruh kemungkinan kunci (Yusuf, Kurniawan, 2004).. 11.

(28) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Algoritma AES mempunyai 3 (tiga) parameter : a.. plainteks adalah array yang berukuran 16-byte, yang berisi data masukkan.. b.. Cipherteks adalah array yang berukuran 16-byte, yang berisi hasil enkripsi.. c.. Kunci adalah array yang berukuran 16-byte, yang berisi kunci cipher (disebut juga cipher key).. 2.4.1. Algoritma AES Garis besar Algoritma AES yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut (di luar proses pembangkitan round key) : 1. AddRoundKey:. melakukan XOR antara state awal. (plainteks). dengan cipher key. Tahap ini disebut juga initial round. 2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah: a.. SubBytes. : substitusi byte dengan menggunakan table. substitusi (S-box). b.. ShiftRows. : pergeseran baris-baris array state secara. wrapping. c.. MixColumns. : mengacak data di masing-masing kolom. array state. d.. AddRoundKey: melakukan XOR antara state sekarang round key.. 3. Final round: proses untuk putaran terakhir: a.. SubBytes. b.. ShiftRows. c.. AddRoundKey. 12.

(29) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Secara umum metode yang digunakan dalam pemrosesan enkripsi dalam algoritma ini dapat dilihat pada gambar dibawah ini.. Gambar 8. algoritma AES. -. Add Round Key Pada. AddRoundKey. disini. akan. mengkombinasikan. chipertext yang sudah ada dengan chipertext yang chiperkey dengan hubungan XOR. Operasi XOR akan mengembalikan nilai 1 jika jumlah operan bernilai satu ganjil, jika tidak akan menghasilkan 0.. Gambar 9. Add Round Key. 13.

(30) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. -. Sub Bytes Prinsip dari Sub Bytes adalah menukar isi matriks/tabel yang ada dengan matriks/tabel lain yang disebut dengan Rijndael S-Box. Cara pensubstitusian adalah untuk setiap byte pada array state, misalkan S[r,c] = xy, yang dalam hal ini xy adalah digit heksadesimal. dari. nilai. S’[r,c],. maka. nilai. substitusinya,. yang dinyatakan dengan S’[r,c], adalah elemen di dalam S-Box yang merupakan perpotongan baris x dengan kolom y.. Gambar 10. Sub Bytes. -. Shift Rows Pada ShiftRows() melakukan pergerseran wrapping (sikklik) pada 3 baris terkhir dari array state, baris pertama tidak bergeser. Jumlah pergeseran bergantung nilai baris (r). Baris r = 1 digeser sejauh 1 byte, baris r = 2 digeser 2 byte, dan baris r = 3 digeser sejauh 3 byte. Baris r = 0 tidak digeser.. Gambar 11. Shift Rows. 14.

(31) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. -. Mix Columns Pada mix columns tiap elemen dari blok chiper akan dikalikan dengan tabel matriks mix column. Mengalikan array state dengan suatu polinom a(x) mod (x8+x4+x3+x+1).. Gambar 12. Mix Column. Proses metode ini berlangsung mulai dari ronde kedua sampai ronde kesepuluh tetapi pada ronde kesepuluh mix columns tidak dilakukan lagi. Dan hasil dari add round key lah yang dijadikan sebagai chipertext dari algoritma AES.. 2.5. Blowfish Blowfish adalah suatu algoritma kriptografi yang beroperasi pada mode blok. Blowfish menggunakan jaringan Feistel(x) yang terdiri dari 16 putaran dengan data ukuran 64 bit. Panjang kunci yang digunakan bervariasi. dengan. panjang. kunci. maksimal. 448. bit.. Blowfish. menggunakan subkunci yang besar. Subkunci ini harus dihitung sebelum proses enkripsi atau dekripsi dilakukan.. 15.

(32) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 2.5.1. Algoritma Blowfish. 1. Ekspansi Kunci Ekspansi kunci adalah proses untuk membangkitkan subkunci yang langkabnya adalah sebagai berikut : a.. Inisialisasi delapan belas P-array dan kemudian empat buah S-Box secara berurutan dengan string yang tetap. String ini terdiri atas digit heksadesimal bilangan pi (x), contoh : P1 = Ox243f6a88 P2 = Ox85a308d3 P3 = Ox13198a2e P4 = Ox3707344. b.. XOR P1 dengan 32-bit pertama dari kunci, XOR P2 dengan 32-bit kedua dari kunci dan seterusnya untuk setiap bit dari kunci (mungkin sampai P14). Ulangi terhadap bit kunci sampai seluruh P-array di-XOR dengan bit kunci.. c.. Enkripsi semua string no1 dengan algoritma Blowfish dengan menggunakan subkunci seperti dijelaskan pada langkah (I) dan (2).. d.. Ganti P1 dan P2 dengan keluaran dari langkah (3).. e.. Enkripsi keluaran dari langkah (3) dengan algoritma Blowfish dengan subkunci yang sudah dimodifikasi.. f.. Ganti P3 dan P4 dengan keluaran dari langkah (5).. g.. Lanjutkan proses tersebut, ganti seluruh elemen dari Parray, dengan keluaran yang berubah secara kontinu dari algoritma Blowfish. Total iterasi yang diperlukan untuk menghasilkan subkunci Blowfish ini adalah : ). ). Rumus 1. Ekspansi Kunci Blowfish. 16.

(33) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 2. Proses Enkripsi Blowfish Input proses kripsi merupakan plaintext 64-bit, X. Untuk mengenkripsi X dilakukan langkah-langkah sebagai berikut : a.. Bagi x menjadi setengah bagian, feistel(x) = 64 bit dibagi 2 maka menjadi 32 bit. Hasil pembagian ini menjadi xL dan xR.. b.. xL = xL XOR Pi xR = F (xL) XOR xR Tukar xL dan xR Hentikan pertukaran pada putaran terakhir.. c.. xR = xR XOR P17. d.. xL = xL XOR P18. e.. Menggabungkan kembali xL dan xR. Gambar 13. Struktur Feistel. Fungsi Feistel sebagai berikut : Bagi xL menjadi empat bagian delapan-bit: a, b, c, dan d. ). ((. ). ). Rumus 2. Fungsi Feistel. 17.

(34) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Gambar 14. Fungsi Feistel. 3. Proses Dekripsi Blowfish Proses dekripsi pada algoritma ini dilakukan dengan langkah yang sama dengan enkripsi, kecuali P1,P2,...,P18 digunakan dengan urutan yang terbalik dari proses enkripsi.. 2.6. Twofish Twofish merupakan algoritma kriptografi yang beroperasi dalam mode blok cipher berukuran 128 bit dengan ukuran kunci sebesar 256 bit, ukuran kunci yang besar ditujukan untuk meniadakan kemungkinan kunci lemah (weak-key). Algoritma twofish menggunakan struktur sejenis Feistel dalam 16 putaran dengan tambahan teknik whitening terhadap input dan output. Teknik whitening sendiri adalah teknik melakukan operasi XOR terhadap materi kunci sebelum putaran pertama dan sesudah putaran akhir. Elemen di luar jaringan feistel normal yang terdapat dalam algoritma twofish adalah rotasi 1 bit. Proses rotasi ini dapat dipindahkan ke dalam fungsi F untuk membentuk struktur jaringan Feistel yang murni, tetapi hal ini membutuhkan tambahan rotasi kata sebelum langkah output whitening. Twofish memanfaatkan teknik pemanipulasian bit , kotak permutasi / pemutihan, jaringan feistel, pemutaran ulang dan pergiliran kunci dengan jumlah perputaran dan pergiliran kunci sebanyak 16 kali ,. 18.

(35) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. tranformasi pseudo-Hadamard , ekspansi dan filter , dan kotak MDS (Most Distance Separable). 2.6.1. Algoritma Twofish. Gambar 15. Proses Algoritma Twofish. 1. Masukan satu blok plain teks adalah 128 bit. Satu blok tersebut dibagi menjadi 4 buah subblok yang masing-masing sepanjang 32 bit (A, B, C, dan D). 2. Masing-masing subblok tersebut diputihkan dengan mengxorkan dengan kunci K0, K1, K2, dan K3. Langkah-langkah 1 putaran adalah sebagai berikut: 19.

(36) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 3. 2 buah 32 bit yang kiri (A dan B) merupakan input dari fungsi g (yang merupakan bagian dari fungsi f), yang salah satunya (B) di geser ke kiri sejauh 8 bit dahulu. 4. Fungsi g memiliki 4 buah kotak substitusi yang dibangkitkan oleh kunci. 5. Keluaran fungsi kotak substitusi dilakukan percampuran linear menggunakan kotak Most Distance Separable 6. Keluaran fungsi g dimasukkan ke fungsi transformasi pseudoHadamard, kemudian ditambahkan dengan 2 buah 32 bit dari kunci. 7. Dua buah 32 bit hasil kemudian di xor kandengan C dan D. Hasil xor dengan C digeser ke kanan sejauh 1 bit. Dan untuk D sebelum dixorkan digeser ke kiri sejauh 1 bit. 8. 2 buah 32 bit kiri dan kanan dipertukarkan (A dan B dipertukarkan dengan C dan D). 1. Langkah diatas dilakukan hingga 16 kali putaran. Kemudian. langkah-langkah. selanjutnya. :. 9. Hasil keluaran setelah diputar 16 kali, ditukar lagi (A dan B dipertukarkan dengan C dan D). 10. Hasil dari pertukaran tersebut di xorkan dengan empat buah 32 bit dari kunci menghasilkan cipher teks.. Fungsi F Fungsi F adalah permutasi yang bergantung pada kunci dengan nilai 64 bit. Fungsi ini menerima 3 argumen, dua buah 32 bit R0 dan R1, dan nomor putaran untuk menentukan subkunci mana yang dipakai. R0 akan diserahkan ke fungsi g yang akan mengembalikan T0. R1 akan digeser sejauh 8 bit yang kemudian. di. berikan. juga. ke. fungsi. g. yang. akan. 20.

(37) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. mengembalikan T1. Hasil T0 danT1 kemudian dikombinasikan ulang menggunakan transformasi pseudo-Hadamard, yang kemudian ditambahkan dengan dua buah 32 bit dari kunci. T0 = g(R0); T1 = g (shift Left (R1,8)); F0 = (T0+T1+K2r+8) mod 232; F1 = (T0+2T1+K2r+9) mod 232;. F0 dan F1 adalah hasil dari F, yang masing-masing sepanjang 32 bit. Hasil keluaran ini nantinya akan dipertukarkan dan dimasukkan kembali ke putaran selanjutnya.. Fungsi G Fungsi g merupakan jantung dari keseluruhan algoritma twofish. 32 bit masukan X dari fungsi F dipecah menajdi 4 buah yang masing-masing sepanjang 8 bit. Setiap 8 bit kemudian diproses dengan kotak S yang bersesuaian. Setiap kotak S bersifat bijektif, yaitu menerima 8 bit dan mengeluarkan 8 bit pula. 4 buah 8 bit hasil keluaran kemudian dikalikan dengan matriks Most Distance Separable (MDS) 4x4. Hasil pengalian kemudian diartikan sebagai 32 bit, yang merupakan keluaran dari fungsi g, yang kemudian akan dikembalikan kembali ke fungsi F. Matriks MDS yang setiap elemennya ditampilkan sebagai heksadesimal.. 21.

(38) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB III METODE PENELITIAN. 3.1.. Alat Penelitian 3.1.1. Hardware - Prosessor AMD 9-9420 Radeon R5, 5 Compute Cores 3 GHz - RAM 4,00 GB. 3.1.2. Software - Java Cryptogaphy Encrytion dari JDK (Java Development Kit) 64 bit. - NetBeans IDE 8.2 - System Operation Windows 10, 64 bit. 3.2.. Pembuatan Alat Uji 1.. Studi Literatur. Studi pustaka dilakukan dengan membaca jurnal yang berkaitan dengan enkripsi dan dekripsi dari algoritma DES, 3DES, AES, Blowfish dan Twofish. Dan Java Encryption Extention.. 2.. Pengumpulan Bahan Penelitian. Analisis kelas java, java collection dan struktur data yang dibutuhkan untuk mengimplementasikan nilai parameter pengujian dengan Java Cryptography Extention.. 3.. Implementasi. Implementasi dari kelas java, java collection dan truktur data yang sudah dianalisis menggunakan Java Cryptography Extention.. 22.

(39) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 3.3.. Parameter Unjuk Kerja Dalam penelitian ini, untuk mengevaluasi unjuk kerja algoritma AES dan Blowfish adalah dengan matrik unjuk kerja sebagai berikut :. a. Running Time Running Time adalah waktu yang dibutuhkan oleh sebuah algoritma untuk menyelesaikan proses enkripsi maupun dekripsi. Running Time dihitung mulai dari algoritma dimulai sampai algoritma berhenti.. –. ). Rumus 3. Running Time. waktu akhir = waktu yang diambil dari akhir proses enkripsi atau dekripsi. waktu awal = waktu yang diambil sebelum melakukan enkripsi atau dekripsi. b. Avalanche Effect Avalanche effect adalah salah satu karakteristik yang menjadi acuan untuk menentukan baik atau tidaknya sebuah algoritma kriptografi yaitu perubahan sebuah bit pada plaintext atau kunci yang dapat menghasilkan perubahan beberapa bit dari ciphertext.. Rumus 4. Avalanche effect. 23.

(40) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 3.4.. Desain Alat Uji. 1. Flowchart Running Time Enkripsi. 2. Flowchart Running Time Dekripsi. 24.

(41) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 3. Flowchart Avalanche Effect. 25.

(42) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB IV PENGUJIAN DAN ANALISIS Untuk melakukan evaluasi terhadap unjuk kerja algoritma DES, 3DES, AES, Blowfish dan Twofish, maka dilakukan pengujian dengan menggunakan rancangan skenario yang sudah dijelaskan pada Bab III, Data diperoleh dari output yang dihasilkan ketika sistem berlangsung dan kemudian menjadi bahan untuk dilakukan analisis. Setelah melakukan pengujian program enkripsi dan dekripsi maka didapatkan hasil sebagai berikut :. 4.1.. Hasil Pengujian Sistem. 4.1.1. Perbandingan Running Time proses enkripsi.. ENKRIPSI 8000 7000 6000 5000. 1 MB 7367. 4000. 225 2300 2441. 50 MB 1877 2385 3164. 4113. 25 MB. 1580 2085 2832. 1000. 2000. 2000. 1549 2767 4121. 3000. AES. BLOWFISH. TWOFISH. 0 DES. TDES. Grafik 1. Perbandingan Runtime Enkripsi. Pada grafik 1 menunjukkan perbandingan running time saat melakukan enkripsi data. algoritma twofish dapat melakukan proses enkripsi lebih cepat dari algoritma. 26.

(43) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. lainnya pada size dokumen 1MB yaitu 225ms. Sedangkan pada algoritma lainnya mendapat waktu diatas 1000ms. 3DES pada size 50MB mencatat waktu paling lama dari yang lain yaitu mencapai 7367 ms. 4.1.2. Perbandingan Running Time proses dekripsi. DEKRIPSI 8000 7000 6000 5000 1 MB 7060. 4000. 25 MB. 1857 2165 2972. 465 2440 2374. 4833. 50 MB 1971 2067 2219. 1000. 2100. 2000. 1681 2720 4238. 3000. AES. BF. TF. 0 DES. TDES. Grafik 2. Perbandingan Runtime Dekripsi. Pada grafik 2 menunjukkan perbandingan running time saat melakukan dekripsi data. Waktu yang dibutuhkan untuk melakukan dekripsi tidak terlalu berbeda dari enkripsi, karena algoritma diatas menggunakan kunci simetris. Algoritma twofish mendapat waktu paling cepat pada ukuran 1MB yaitu 465ms. Dan 3DES membutuhkan waktu yang lebih lama dari algoritma lainnya.. 27.

(44) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 4.1.3. Perbandingan Avalanche kunci.. Avalanche Kunci 45. Variasi 1 huruf Variasi 2 huruf. 30,55. 33,33. 31,01 30,55. 36,11. 31,94. 35,18. 35,18. 32,87. 15. 30,09. 25 20. 32,87. 40,74. 36,57. 30. 30,55. Persentase (%). 35. 35,64. 40. Variasi 3 huruf. 10 5 0 DES. TDES. AES. BLOWFISH TWOFISH. Grafik 3. Perbandingan Avalanche Kunci. Variasi 1 huruf Variasi 2 huruf Variasi 3 huruf. DES 30,55 35,64 30,09. variasi 1 huruf 2 huruf 3 huruf. DES 66/216 77/216 65/216. Avalanche Kunci TDES AES 32,87 35,18 36,57 40,74 35,18 31,94 TDES 71/216 79/216 76/216. pesan. key. Advensius Putra. MyKey. AES 76/216 88/216 69/216. BLOWFISH 36,11 31,01 30,55. TWOFISH 33,33 32,87 30,55. BLOWFISH 78/216 67/216 66/216. TWOFISH 72/216 71/216 66/216. Variasi Key MyKee MyKit MyHop. Tabel 1. Avalanche Effect Kunci. Pada tabel 1. Menunjukkan perbandingan avalanche effect dari kunci. Pada variasi 1 huruf, algoritma Blowfish menghasilkan avalanche paling besar yaitu 36,11% dengan perubahan bit 78 dari total bit 216. Pada variasi 2 huruf algoritma AES menghasilkan avalanche paling besar yaitu 40,74% dengan perubahan bit 88 dari 216 bit. Pada variasi 3 huruf algoritma 3DES menghasilkan avalache paling besar yaitu 35,18% dengan perubahan bit 76 dari 216 bit. Namun jika dirata-rata dari 28.

(45) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. semua variasi kunci yang ada, algoritma AES mendapatkan avalache yang paling besar yaitu 35,9%.. 4.1.4. Perbandingan Avalanche pesan.. Avalanche Pesan 40 35. 25. 5. 34,72 34,25 32,4 DES. TDES. 17,59 17,59 19,44. 10. 19,9 15,74 18,05. 15. 30,55 28,7 24,07. Variasi 1 huruf 20. 15,27 12,96 16,66. Persentase (%). 30. Variasi 2 huruf Variasi 3 huruf. 0 AES. BLOWFISH TWOFISH. Grafik 4. Perbandingan Avalanche Pesan. Avalanche Pesan TDES 19,9 15,74 18,05. Variasi 1 huruf Variasi 2 huruf Variasi 3 huruf. DES 15,27 12,96 16,66. AES 34,72 34,25 32,4. BLOWFISH 17,59 17,59 19,44. TWOFISH 30,55 28,7 24,07. variasi 1 huruf 2 huruf 3 huruf. DES 33/216 28/216 36/216. TDES 43/216 34/216 39/216. AES 75/216 74/216 70/216. BLOWFISH 38/216 38/216 42/216. TWOFISH 66/216 62/216 52/216. key. Pesan. MyKey. Advensius Putra. Variasi Pesan Advensius Putri Advensius Putlo Advensius Punce. Tabel 2. Avalanche Effect Pesan. 29.

(46) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Pada tabel 2. Menunjukkan perbandingan avalanche effect dari pesan. Pada variasi 1 huruf, algoritma AES menghasilkan avalanche paling besar yaitu 34,72% dengan perubahan bit 75 dari total bit 216. Pada variasi 2 huruf algoritma AES menghasilkan avalanche paling besar yaitu 34,25% dengan perubahan bit 74 dari 216 bit. Pada variasi 3 huruf algoritma AES menghasilkan avalache paling besar yaitu 32,4% dengan perubahan bit 70 dari 216 bit. Pada avalanche pesan perbandingan algoritma AES dengan yang lainnya sangatlah besar.. 30.

(47) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB V KESIMPULAN DAN SARAN. 5.1 KESIMPULAN Setelah dilakukan anailis oleh penulis, didapat kesimpulan bahwa semakin besar ukuran data yang akan dienkripsi maka running time akan semakin lama. Perubahan bit kunci sangat mempengaruhi isi cipherteks, sehingga avalanche yang dihasilkan oleh perubahan kunci dapat mengakibatkan perubahan bit yang besar. Pada avalanche kunci bit yang terjadi jika salah satu hurufnya lebih besar dari avalanche pesan, penulis menyimpulkan bahwa variasi dari kunci lebih berpengaruh dari perubahan bit dari ciphertext daripada variasi dari pesan, karena pengacakan data pesan diacak berdasarkan ekspansi kuncinya. Dan untuk hasil pengujian kali ini algoritma AES lebih baik dari algoritma lainnya dari semua parameter unjuk kerja yang di ujikan. AES memiliki persentase lebih besar untuk avalanche effect dari algoritma lainnya.. 5.2 SARAN Untuk algoritma DES penyandian sangat sederhana dan pola dapat diukur dengan komputer modern, sedangkan algoritma 3DES membutuhkan waktu yang lama dalam melakukan enkripsi. Penulis menyarankan untuk menggunakan algoritma enkripsi yang sudah diperbarui dan dapat digunakan sesuai kebutuhan kita dalam mengamankan data. AES dan Blowfish sama-sama baik dalam metode penyandian.. Semoga. untuk. penelitian. selanjutnya. dapat. memberikan. perbandingan unjuk kerja dari semua algoritma kriptografi.. 31.

(48) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. DAFTAR PUSTAKA. [1] https://id.wikipedia.org/wiki/Kriptografi [2] Munir, Rinaldi., “ Bahan Kuliah IF3058 Kriptografi.”, Program Studi Informatika, Institut Teknologi Bandung, 2009. [3] Riyanto, M.Zaki., “Mengenal Kriptografi : Ilmu Pengamanan Rahasia Berbasis Matematika”, Prodi Matematika, Universitas Islam Negri Sunan Kalijaga, Yogyakarta, 2018.. [4] National Institute of Standards and Technology, Data Encryption Standard, FIPS PUB 46-3, U.S. Department of Commerce, October1999.. [5] Charles H. Bennett, Gilles Brassard, \Quantum Cryptography: Pu-blic Key Distribution and Coin Tossing," International Conference on Computers, Systems and Signal Processing, 1984.. 32.

(49) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. LAMPIRAN. 1.. Code DES. Generate key DES public class GenerateKeyDES { static Key generateKey(String kunciEnkripsi) throws Exception { Key key = new SecretKeySpec(KonversiByte.konversiKeByte(kunciEnkripsi), "DES"); return key; } static class KonversiByte { static byte[] konversiKeByte(String kunci) { byte[] array_byte = new byte[8]; int i = 0; while (i < kunci.length()) { array_byte[i] = (byte) kunci.charAt(i); i++; } if (i < 8) { while (i < 8) { array_byte[i] = (byte) i; i++; } } return array_byte; } } }. Enkripsi DES public class EncryptDES { public static String encryptDES(String Data, String kunciEnkripsi) throws Exception { Cipher c = Cipher.getInstance("DES"); Key key = GenerateKeyDES.generateKey(kunciEnkripsi); c.init(Cipher.ENCRYPT_MODE, key); byte[] encVal = c.doFinal(Data.getBytes("UTF-8")); String encryptedValue = DatatypeConverter.printBase64Binary(encVal); return encryptedValue; } }. 33.

(50) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Dekripsi DES public class DecryptDES { public static String decryptDES(String encryptedData, String kunciEnkripsi) throws Exception { Cipher c = Cipher.getInstance("DES"); Key key = GenerateKeyDES.generateKey(kunciEnkripsi); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue = DatatypeConverter.parseBase64Binary(encryptedData); byte[] decValue = c.doFinal(decordedValue); String decryptedValue = new String(decValue); return decryptedValue; } } 2.. Code 3DES Generate key 3DES public class GenerateKeyDESede { static Key generateKey(String kunciEnkripsi) throws Exception { Key key = new SecretKeySpec(KonversiByte.konversiKeByte(kunciEnkripsi), "DESede"); return key; } static class KonversiByte { static byte[] konversiKeByte(String kunci) { byte[] array_byte = new byte[24]; int i = 0; while (i < kunci.length()) { array_byte[i] = (byte) kunci.charAt(i); i++; } if (i < 24) { while (i < 24) { array_byte[i] = (byte) i; i++; } } return array_byte; } } } Enkripsi 3DES public class EncryptDESede { public static String encryptDESede(String Data, String kunciEnkripsi) throws Exception { Cipher c = Cipher.getInstance("DESede"); Key key = GenerateKeyDESede.generateKey(kunciEnkripsi);. 34.

(51) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. c.init(Cipher.ENCRYPT_MODE, key); byte[] encVal = c.doFinal(Data.getBytes("UTF-8")); String encryptedValue = DatatypeConverter.printBase64Binary(encVal); return encryptedValue; } } Dekripsi 3DES public class DecryptDESede { public static String decryptDESede(String encryptedData, String kunciEnkripsi) throws Exception { Cipher c = Cipher.getInstance("DESede"); Key key = GenerateKeyDESede.generateKey(kunciEnkripsi); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue = DatatypeConverter.parseBase64Binary(encryptedData); byte[] decValue = c.doFinal(decordedValue); String decryptedValue = new String(decValue); return decryptedValue; } } 3.. Code AES Generate key AES public class GenerateKeyAES { static Key generateKey(String kunciEnkripsi) throws Exception { Key key = new SecretKeySpec(KonversiByte.konversiKeByte(kunciEnkripsi), "AES"); return key; } static class KonversiByte { static byte[] konversiKeByte(String kunci) { byte[] array_byte = new byte[16]; int i = 0; while (i < kunci.length()) { array_byte[i] = (byte) kunci.charAt(i); i++; } if (i < 16) { while (i < 16) { array_byte[i] = (byte) i; i++; } } return array_byte; } } }. 35.

(52) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Enkripsi AES public class EncryptAES { public static String encryptAES(String Data, String kunciEnkripsi) throws Exception { Cipher c = Cipher.getInstance("AES"); Key key = GenerateKeyAES.generateKey(kunciEnkripsi); c.init(Cipher.ENCRYPT_MODE, key); byte[] encVal = c.doFinal(Data.getBytes("UTF-8")); String encryptedValue = DatatypeConverter.printBase64Binary(encVal); return encryptedValue; } } Dekripsi AES public class DecryptAES { public static String decryptAES(String encryptedData, String kunciEnkripsi) throws Exception { Cipher c = Cipher.getInstance("AES"); Key key = GenerateKeyAES.generateKey(kunciEnkripsi); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue = DatatypeConverter.parseBase64Binary(encryptedData); byte[] decValue = c.doFinal(decordedValue); String decryptedValue = new String(decValue); return decryptedValue; } } 4.. Code Blowfish Generate key Blowfish public class GenerateKeyBlowfish { static Key generateKey(String kunciEnkripsi) throws Exception { Key key = new SecretKeySpec(KonversiByte.konversiKeByte(kunciEnkripsi), "Blowfish"); return key; } static class KonversiByte { static byte[] konversiKeByte(String kunci) { byte[] array_byte = new byte[16]; int i = 0; while (i < kunci.length()) { array_byte[i] = (byte) kunci.charAt(i); i++; } if (i < 16) { while (i < 16) { array_byte[i] = (byte) i; i++; } }. 36.

(53) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. return array_byte; } } } Enkripsi Blowfish public class EncryptBlowFish { public static String encryptBlowfish(String Data, String kunciEnkripsi) throws Exception { Cipher c = Cipher.getInstance("Blowfish"); Key key = GenerateKeyBlowfish.generateKey(kunciEnkripsi); c.init(Cipher.ENCRYPT_MODE, key); byte[] encVal = c.doFinal(Data.getBytes("UTF-8")); String encryptedValue = DatatypeConverter.printBase64Binary(encVal); return encryptedValue; } } Dekripsi Blowfish public class DecryptBlowFish { public static String decryptBlowfish(String encryptedData, String kunciEnkripsi) throws Exception { Cipher c = Cipher.getInstance("Blowfish"); Key key = GenerateKeyBlowfish.generateKey(kunciEnkripsi); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue = DatatypeConverter.parseBase64Binary(encryptedData); byte[] decValue = c.doFinal(decordedValue); String decryptedValue = new String(decValue); return decryptedValue; } } 5.. CodeTwofish Generate key Twofish public class GenerateKeyTwofish { static class KonversiByte { static byte[] konversiKeByte(String kunci) { byte[] array_byte = new byte[16]; int i = 0; while (i < kunci.length()) { array_byte[i] = (byte) kunci.charAt(i); i++; } if (i < 16) { while (i < 16) { array_byte[i] = (byte) i; i++; } }. 37.

(54) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. return array_byte; } } } Enkripsi Twofish public class EncryptTwofish { public static String encryptTwofish(String cookieValue, String key) throws InvalidKeyException, UnsupportedEncodingException { byte[] plainText; byte[] encryptedText; Twofish twofish = new Twofish(); // ekspansi kunci Object keyObject = twofish.makeKey(konversiKeByte(key), 16); //membuat ukuran blok dengan 16 byte if ((cookieValue.length() % 16) != 0) { while ((cookieValue.length() % 16) != 0) { cookieValue += " "; } } // inisialisasi plainteks/ciphertext plainText = cookieValue.getBytes("UTF-8"); encryptedText = new byte[cookieValue.length()]; // proses enkripsi for (int i = 0; i < Array.getLength(plainText); i += 16) { twofish.encrypt(plainText, i, encryptedText, i, keyObject, 16); } String encryptedString = DatatypeConverter.printBase64Binary(encryptedText); return encryptedString; } } Dekripsi Twofish public class DecryptTwofish { public static String decryptTwofish(String cookieValue, String key) throws InvalidKeyException, UnsupportedEncodingException { byte[] encryptedText; byte[] decryptedText; Twofish twofish = new Twofish(); //ekpansi kunci Object keyObject = twofish.makeKey(konversiKeByte(key), 16); //panjang ukuran blok if ((cookieValue.length() % 16) != 0) { while ((cookieValue.length() % 16) != 0) { cookieValue += " "; } } //inisialisasi array plainteks/ciphertext encryptedText = DatatypeConverter.parseBase64Binary(cookieValue); decryptedText = new byte[cookieValue.length()]; //iterasi for (int i = 0; i < Array.getLength(encryptedText); i += 16) {. 38.

(55) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. twofish.decrypt(encryptedText, i, decryptedText, i, keyObject, 16); } String decryptedString = new String(decryptedText, "UTF-8"); return decryptedString; } } 6.. Code Avalanche Effect Konversi Biner public class KonversiBiner { public static String toBinary(String s) { String temp = s; byte[] bytes = s.getBytes(); for (byte b : bytes) { } StringBuilder binary = new StringBuilder(); for (byte b : bytes) { int val = b; for (int i = 0; i < 8; i++) { binary.append((val & 128) == 0 ? 0 : 1); val <<= 1; } binary.append(' '); } return binary.toString(); } } Hamming Distance public class HammingDistance { public static int hamDist (String str1, String str2) { int i = 0, count = 0; while (i < str1.length()) { if (str1.charAt(i) != str2.charAt(i)) { count++; } i++; } return count; } }. 39.

(56)

Referensi

Garis besar

Dokumen terkait

Sepak bola adalah olahraga menggunakan bola yang dimainkan oleh dua tim yang masing-masing beranggotakan 11 (sebelas) orang.. Memasuki abad ke-21, olahraga ini telah

Tujuan pembelajaran membaca al-Qur’an juga mengandung tujuan kognitif, afektif dan psikomotorik. Pengajaran tentang huruf-huruf hijaiyah, tanda baca dan tajwid

1. Peserta didik belum terlibat dalam proses pembelajaran, sehingga materi yang diberikan menjadi sulit dipahami oleh siswa dan mengakibatkan hasil belajar

Struktur Penyampaian Penyampaian Penyampaian Penyampaian Skor 1-4.. wacana 談話構造 dengan struktur wacana sangat runut dan mudah dipahami dengan struktur yang cukup runut

Penurunan kadar sulfur terbesar terjadi pada minyak dari plastik PP warna yang diadsorpsi dengan campuran 55% bentonite dan 45% karbon aktif yaitu 23,52%.

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

Oleh karena itu perlu mendapatkan perhatian serius sehingga tujuan organisasi dapat tercapai,baik jangka panjang maupun jangka pendek.Salah satu sasaran penting dicapai oleh

ASUHAN KEBIDANAN BERKELANJUTAN..., Endah Yuliana Rosita Sari, Fakultas Ilmu Kesehatan UMP,