ANALISIS PERBANDINGAN ALGORITMA SIMETRIS TINY ENCRYPTION ALGORITHM DAN DALAM ENKRIPSI DAN DEKRIPSI DATA 1 Pradana Marlando 2 Wamiliana, 3 Rico Andrian 1, 3 Jurusan Ilmu Komputer FMIPA Unila 2 Jurusan Matematika FMIPA Unila Abstract Information can be kept secure by an encryption process in cryptography technique. In this research we discussed comparative analysis of symmetric algorithms: Tiny Encryption Algorithm () and in terms of their complexity, time and speed performances. The testing was conducted using 30 data with size varies between 50 bytes and 1500 bytes. Thirty data were tested 50 times. The result shows that is faster in encryption and decryption compared to and the complexity of both algorithms are linear algorithms (O (n)). Keywords: Big-O, cryptographic, encryption,, performance, Tiny Encryption Algorithm, 1. Pendahuluan Suatu pesan yang memiliki informasi yang penting menjadi hal yang berbahaya jika diketahui oleh orang lain, dan karena perkembangan teknologi pula proses penyadapan informasi dapat dilakukan dengan mudah saat ini. Informasi atau pesan dapat dijaga agar tetap aman dengan proses enkripsi atau penyandian. Penyandian dilakukan agar pesan tidak dapat dengan mudah dibaca oleh sembarang orang. Orang yang rasa ingin tahunya besar akan melihat bahwa sebuah pesan acak sebagai suatu misteri yang perlu dipecahkan, karenanya diperlukan suatu teknik kriptografi yang baik dalam menjaga informasi atau pesan tetap aman. Kriptografi merupakan ilmu sekaligus seni untuk menjaga keamanan pesan dengan menggunakan proses penyandian pesan tersebut ke dalam bentuk yang sulit dimengerti maksudnya. Proses penyandian pada pesan plaintext menjadi chipertext disebut enkripsi sedangkan proses pengembalian chipertext menjadi plaintext disebut dekripsi [1]. Algoritma kriptografi dibagi menjadi dua kelompok besar yaitu algoritma simetris dan algoritma asimetris. Algoritma simetris menggunakan kunci rahasia yang umum dimiliki oleh pengirim maupun penerima sering disebut secret-key cipher system. Algoritma asimetris memiliki dua kunci yang berbeda yaitu kunci publik dan private key yang berbeda untuk proses enkripsi dan dekripsinya [1]. Contoh dari algoritma simetris adalah algoritma Tiny Encryption Algorithm (),, dan contoh dari algoritma asimetris adalah algoritma Pohlig-Hellman, RSA, dan lain-lain. Setiap algoritma memiliki kompleksitasnya masing-masing yang mempengaruhi performance dari algoritma tersebut. Tingkat performance tersebut dapat dilihat dari waktu proses dari algoritma. Waktu proses tersebut dipengaruhi oleh berbagai aspek dari perangkat komputer dan data yang diproses. Algoritma yang memiliki waktu proses yang cepat lebih dipilih dalam melakukan proses dalam kehidupan sehari-hari. Oleh karena itu perhitungan analisis algoritma dibutuhkan untuk menentukan performance berdasarkan waktu proses dari algoritma yang di analisis. Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, Hal. 36 dari 186
sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi [4]. Pada penelitian ini akan didiskusikan perbandingan antara dua algoritma simetri yaitu algrotima dan algoritma. 1.1 Algoritma Tiny Encryption Algorithm Tiny Encription Algorithm () merupakan suatu algoritma sandi yang diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994. Algoritma ini merupakan algoritma mengenkripsi suatu blok plaintext dengan jumlah bit tertentu dan menghasilkan blok ciphertext yang dirancang untuk penggunaan memory yang seminimal mungkin dengan kecepatan proses yang maksimal [2]. 1.2 Algoritma dirancang oleh kriptografer Australia yaitu Lawrie Brown, Josef Pieprzyk, dan Jennifer Seberry. didesain sebagai hasil dari analisis yang dilakukan secara detail terhadap blok cipher yang standar digunakan pada saat itu, yaitu DES (Data Encryption Standar). Ada versi terbaru dari ini, maka yang dibuat pertama kali lebih dikenal dengan nama 89 sesuai dengan tahun pembuatannya, walaupun pertama kali diperkenalkan pada tahun 1990 [3]. 2. Metode Penelitian ini dilakukan berdasarkan tahapan penelitian yang terdapat pada Gambar 1. Pengujian dilakukan berdasarkan pada skenario pengujian. Berikut adalah skenario pengujian yang sudah ditetepkan : Gambar 1 Tahapan Penelitian 1. Parameter Sistem Pengujian eksekusi program simulasi akan dilakukan pada komputer dengan spesifikasi perangkat keras dan perangkat yang sama. Pengujian juga dilakukan beberapa kali agar hasil pengukuran waktu konsisten mengingat kecepatan ekseskusi program dapat berubah ubah sesuai dengan ketidak stabilan kesibukan prosesor. Hal. 37 dari 186
WAKTU (detik) WAKTU (detik) 2. Faktor Pengujian Faktor pengujian yang diuji pada penelitian ini adalah kecepatan algoritma. Kecepatan yang dimaksud adalah meliputi kecepatan proses enkripsi dan kecepatan proses dekripsi, setiap algoritma akan diuji pada proses enkripsi dan dekripsi terhadap berbagai ukuran data. 3. Analisis Algoritma Analisis algoritma dilihat dari analisis kompleksitas waktu algoritma dihitung dengan menggunakan notasi O(f(n)) dimana notasi O menyatakan running time (T(n)) dari suatu algoritma untuk memungkinkan kasus terburuk (worst case). 3. Implementasi dan Hasil Dari implementasi terhadap 30 data yang dilakukan didapat hasil sebagai berikut: 3.1 Waktu Proses Gambar 2 menampilkan perbandingan waktu enkripsi dalam detik diantara algoritma dan. menunjukkan lebih unggul dibandingkan dalam hal waktu enkripsi. Algoritma juga menunjukkan lebih unggul dibandingkan dalam hal waktu dekripsi seperti ditampilkan pada Gambar 3. 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930 Gambar 2 Waktu Enkripsi 0.0800000 0.0700000 0.0600000 0.0500000 0.0400000 0.0300000 0.0200000 0.0100000 0.0000000 1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930 Gambar 3 Waktu Dekripsi Hal. 38 dari 186
Byte/detik Byte/detik 3.2 Kecepatan Gambar 4 menampilkan kecepatan enkripsi dari algoritma dan, dan Gambar 5 menampilkan kecepatan dekripsi dari algoritma dan. Berdasarkan Gambar 4 dapat diambil kesimpulan bahwa kecepatan lebih unggul dibandingkan, sedangkan pada Gambar 5 menunjukkan bahwa lebih unggul dibandingkan dalam kecepatan dekripsi 45000 40000 35000 30000 25000 20000 Kecepatan 15000 10000 5000 0 25000 Gambar 4 Kecepatan Enkripsi 20000 15000 10000 Kecepatan 5000 0 3.3 Besar Data Gambar 5 Kecepatan Dekripsi Tabel 1 menampilkan perbandingan besar data setelah enkripsi dan dekripsi dari algoritma dan. menghasilkan ciphertext yang sama dengan besar plaintext, sedangkan menghasilkan besaran yang sama untuk tiap ciphertext. Algoritma dan menghasilkan besar data yang sama dengan plaintext awal setelah dekripsi. Hal. 39 dari 186
Tabel 1 Besar Data Enkripsi Data Besar Plaintext (byte) (byte) (byte) 1 50 56 123 2 100 104 123 3 150 152 123 4 200 200 123 5 250 256 123 6 300 304 123 7 350 352 123 8 400 400 123 9 450 456 123 10 500 504 123 11 550 552 123 12 600 600 123 13 650 656 123 14 700 704 123 15 750 752 123 16 800 800 123 17 850 856 123 18 900 904 123 Data Besar Plaintext (byte) (byte) (byte) 19 950 952 123 20 1000 1000 123 21 1050 1030 123 22 1100 1070 123 23 1150 1120 123 24 1200 1170 123 25 1250 1220 123 26 1300 1270 123 27 1350 1320 123 28 1400 1360 123 29 1450 1420 123 30 1500 1460 123 3.4 Kompleksitas Kompleksitas waktu algoritma dihitung dengan menggunakan notasi O(f(n)) dimana notasi O menyatakan running time (T(n)) dari suatu algoritma untuk memungkinkan kasus terburuk (worst case). Perhitungan nilai T(n) dari algoritma adalah sebagai berikut T(n) = T 1 (n) + T 2 (n) + T 3 (n) =7 + 8n + 7 + 8n + 5n =14+ 21n Hal. 40 dari 186
Dengan T 1 (n) adalah perhitungan kompleksitas untuk enkripsi, T 2 (n) adalah perhitungan untuk dekripsi, dan T 3 (n) adalah perhitungan untuk pembangkit kunci Perhitungan nilai T(n) dari algoritma adalah sebagai berikut T(n) = T1(n)+ T2(n)+ T3(n) T(n) = -7 +11n +11 + 5n +10 + 5n T(n) = 14 + 21n Dengan T 1 (n) adalah perhitungan pembangkit kunci, T 2 (n) adalah perhitungan untuk enkripsi dekripsi, dan T 3 (n) adalah perhitungan untuk dekripsi. Kompleksitas dari kedua algoritma adalah O(n) yang artinya kedua algoritma adalah algoritma linear. 3.5 Perbandingan Algoritma dan Dari hasil implementasi tersebut dapat dibuat tabel perbandingan antara algoritma dan sebagai berikut. Tabel 2 Perbandingan Algoritma dan No Faktor Algoritma Algoritma 1 2 3 4 Rata-rata Waktu proses enkripsi (detik) Rata-rata Waktu proses dekripsi (detik) Rata-rata kecepatan enkripsi (byte/detik) Rata-rata kecepatan dekripsi (byte/detik) 0.017734 detik 0.0393501 detik 0.014832 detik 0.0359322 detik 41576 byte/detik 19653 byte/detik 9192 byte/detik 21614 byte/detik 5 Data enkrip (Ciphertext) (byte) Data yang di enkrip selalu 123 byte Data yang dienkrip mengalami pennambahan jumlah bit sehingga besar data enkrip dan data awal lebih besar atau sama 6 Data dekrip (Plaintext) (byte) Data yang di dekrip kembali ke data awal Data yang didekrip kembali ke data awal 7 Kompleksitas Algoritma 14+21n = O(n) 14+21n = O(n) Hal. 41 dari 186
4. Kesimpulan Hasil penelitian yang telah dilakukan, memperoleh beberapa hal sebagai berikut : 1. Algoritma dan merupakan algoritma kriptografi yang dapat digunakan untuk menyandikan suatu pesan yang sulit dipahami. 2. Rata-rata waktu enkripsi yang diperlukan oleh algoritma lebih cepat dibandingkan waktu, begitu pula untuk waktu dekripsi. 3. Rata-rata kecepatan enkripsi algoritma lebih cepat dibandingkan algoritma, sedangkan lebih cepat dibandingkan dalam hal rata-rata kecepatan dekripsi. 4. Besar ukuran data setelah dienkripsi dengan algoritma sama dengan data awal, sedangkan memiliki besar data yang sama tiap enkripsinya. Untuk besar ukuran data setelah didekripsi memiliki besar yang sama seperti data awal. 5. Kompleksitas yang dimiliki kedua algoritma adalah O(n). 5. Referensi [1] Wirdasari, Dian. 2008. Prinsip Kerja Kriptografi dalam Mengamankan Informasi. SAINTIKOM, Jakarta. [2] Nurdin. 2013 Implementasi Algoritma dan Fungsi Hash MD4 Untuk Enkripsi dan Dekripsi Data. Jurnal Penelitian Teknik Informatika Universitas Malikussaleh. [3] Indriani, Raden Fitri. 2007. Cipher Blok Menggunakan. Skripsi. [4] Weiss, Mark Allen. 2007. Data Structures and Algorithm Analysis in C. Yogyakarta: Penerbit ANDI. Hal. 42 dari 186