ANALISIS ALGORITMA DAN KINERJA PADA COUNTER DENGAN CBC-MAC (CCM) SEBAGAI FUNGSI ENKRIPSI TEROTENTIKASI
Oleh: Ratna Purnama Sari G64101009
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2006
ANALISIS ALGORITMA DAN KINERJA PADA COUNTER DENGAN CBC-MAC (CCM) SEBAGAI FUNGSI ENKRIPSI TEROTENTIKASI
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Oleh: Ratna Purnama Sari G64101009
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2006
ABSTRAK RATNA PURNAMA SARI. Analisis Algoritma dan Kinerja pada Counter dengan CBC-MAC (CCM) sebagai Fungsi Enkripsi Terotentikasi. Dibimbing oleh SUGI GURITMAN dan SHELVIE NIDYA NEYMAN. Algoritma CCM merupakan suatu modus enkripsi terotentikasi yang mengkombinasikan modus enkripsi Counter (CTR) dengan modus otentikasi Cipher Block Chaining-Message Authentication Code (CBC-MAC). CCM didasarkan pada algoritma blok kunci simetrik dengan panjang blok 128 bit, seperti algoritma Advanced Encryption Standard (AES). CCM melindungi tiga elemen data, yaitu: nonce, payload, dan associated data. Tulisan ini bertujuan untuk mengimplementasikan, menganalisis algoritma dan kinerja CCM, serta melakukan perbandingan antara CCM dengan modus operasi Electronic Codebook (ECB). Implementasi algoritma CCM ini menggunakan Matlab versi 6.5 bagi analisis uji running time generation-encryption dan decryption-verification. Berdasar analisis, CCM didesain untuk mendapatkan kerahasiaan dan otentikasi pesan secara simultan menggunakan sebuah kunci rahasia. Kebutuhan akan hanya fungsi forward cipher dari algoritma blok yang mendasari CCM menjadikan ukuran kode implementasi CCM yang lebih kecil. Meskipun demikian, beberapa timbal balik kinerja pada proses-proses dalam CCM harus dipikirkan terlebih dahulu sebelum mengaplikasikan algoritma ini. Semakin besar nonce, maka akan semakin kecil panjang maksimum dari payload yang bisa diproteksi CCM. Semakin kecil nonce, maka akan semakin kecil jumlah maksimum nonce yang berbeda. Semakin besar nilai MAC akan memberikan jaminan otentisitas yang semakin besar pula. Namun, dengan semakin besar nilai MAC maka semakin besar pula ruang penyimpanan yang harus disediakan bagi ciphertext. Dengan analisis algoritma, didapatkan CCM memiliki kompleksitas pada lingkup O(n) baik bagi proses generation-encryption maupun decryption-verification. Sebagai modus operasi algoritma blok, CCM dapat memberikan jaminan keamanan yang lebih baik dari ECB. CCM tidak hanya memberikan jaminan kerahasiaan, namun juga memberikan jaminan otentikasi pesan. Namun dari segi kecepatan, ECB lebih baik dibandingkan CCM baik untuk proses enkripsi maupun dekripsi. Meskipun demikian, efisiensi yang rendah dari proses kebalikan dalam AES yang memungkinkan proses dekripsi AES menjadi lambat dalam implementasi, dapat dihindari oleh CCM. Melalui analisis uji implementasi menggunakan Matlab 6.5 dan analisis uji statistik (Independent-Samples T-Test), dapat disimpulkan bahwa running time proses CCM generationencryption tidak berbeda nyata dengan running time proses CCM decryption-verification dengan selang kepercayaan 95%. Melalui analisis regresi, dapat disimpulkan bahwa untuk payload berukuran besar dan tanpa associated data, nilai running time proses generation-encryption dan decryption-verification pada AES-CCM adalah 1.8 sampai dengan 2.0 kali running time proses enkripsi pada AES-ECB. Kata Kunci: CCM, CTR, CBC-MAC, kriptografi, modus enkripsi terotentikasi, authenticated encryption mode, generation-encryption, decryption-verification.
Judul Nama NRP
: Analisis Algoritma dan Kinerja pada Counter dengan CBCMAC (CCM) sebagai Fungsi Enkripsi Terotentikasi : Ratna Purnama Sari : G64101009
Menyetujui: Pembimbing I,
Pembimbing II,
Dr. Sugi Guritman NIP 131999582
Shelvie Nidya Neyman, S.Kom NIP 132311916
Mengetahui: Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Dr. Ir. Yonny Koesmaryono, MS NIP 131473999
Tanggal Lulus :
RIWAYAT HIDUP Penulis lahir di Garut pada tanggal 16 Juni 1983, anak dari ayah Misbach Sudur dan ibu Siddikoh Komariah. Penulis merupakan putri ketujuh dari tujuh bersaudara. Tahun 2001 penulis lulus dari SMU Negeri 1 Tarogong Garut, dan pada tahun yang sama melanjutkan kuliah ke Institut Pertanian Bogor (IPB), Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam melalui jalur Undangan Seleksi Masuk IPB (USMI). Selama mengikuti perkuliahan, penulis pernah menjadi pengurus di Himpunan Mahasiswa Ilmu Komputer (Himalkom) FMIPA IPB bidang Keprofesian periode jabatan 2003/2004. Penulis berkesempatan mengikuti Praktek Lapang (PL) selama dua bulan (26 Januari – 25 Maret 2005) di Departemen Sistem Informasi Rumah Sakit (SIRS) - Rumah Sakit Azra, Bogor. Pada tahun yang sama, penulis juga terlibat dalam pengembangan Sistem Informasi Akademik Universitas Winaya Mukti (Unwim), Jatinangor, Bandung.
PRAKATA Alhamdulillah wa syukrulillah penulis panjatkan ke hadirat Allah Subhanahu wa ta’ala atas segala rahmat, kasih sayang, dan hidayah-Nya sehingga skripsi ini berhasil diselesaikan. Shalawat serta salam semoga senantiasa tercurah kepada teladan kita Nabi Muhammad Shallallahu alaihi wasallam, kerabat, sahabat dan umatnya sampai akhir zaman. Tema yang dipilih dalam penelitian ini ialah teknik kriptografi enkripsi terotentikasi, dengan judul Analisis Algoritma dan Kinerja pada Counter dengan CBC-MAC (CCM) sebagai Fungsi Enkripsi Terotentikasi. Penulis menyampaikan terima kasih kepada semua pihak yang telah membantu dalam penulisan karya ilmiah ini khususnya kepada Bapak Dr. Sugi Guritman dan Ibu Shelvie Nidya Neyman, S.Kom yang telah membimbing dengan penuh ketekunan dan kesabaran hingga selesainya penulisan karya ilmiah ini. Selanjutnya, penulis juga ingin mengucapkan terima kasih kepada: 1.
Kedua orangtuaku, Uki dan Umi, atas segala cinta, kasih sayang, dukungan, dan doa yang tiada pernah putus.
2.
Kakak-kakakku, Jauhar Arifin, Surantiningsih Sagiyati, Fatimah Rahayu, Hikmat Ramdan, Fajar Nugraha, Lia Yulindaria, Ahmad Dermawan, Mira Rahmawati, Rahmat Budiman, Rita Susanti, serta Wahyu Gunawan. Terima kasih atas kasih sayang, bantuan, dan dukungan doa serta semangat yang tiada berbatas.
3.
Keponakan-keponakanku, Hasnan Habib Jauhari, Hana Hanifah, Gina Aura Ramdan, Salma Ersyara, Syifa Azeera, dan Rafa Fauzan Budiman yang juga selalu memberikan semangat dan dukungan meskipun dalam bahasa tak beraksara.
4.
Heti Mulyati dan seluruh keluarga besar Bapak H. Edi Djunaedi, terima kasih atas segala kebaikannya.
5.
Andika Wahyu Agusetyawan, terima kasih atas perhatian, pengertian, dan kesabaran yang menyatu menjadi paket indah dalam kebersamaan.
6.
Sahabat-sahabat Ilkom angkatan 38, M. Astrid, Ellysa Kurniasari, Hendra Saputra, Meisye Francisca, Ifnu Bima, terima kasih atas persahabatan kita selama ini.
7.
Departemen Ilmu Komputer, staf dan dosen yang telah begitu banyak membantu, baik selama pelaksanaan skripsi ini maupun sebelumnya.
Kepada semua pihak lainnya yang telah memberikan kontribusi yang besar selama pengerjaan penelitian ini yang tidak dapat disebutkan satu persatu, penulis ucapkan terima kasih. Semoga karya ilmiah ini dapat bermanfaat dan menjadi amal sholih bagi semua pihak yang terlibat dalam penyusunan skripsi ini. Amin.
Bogor, Januari 2006
Ratna Purnama Sari
DAFTAR ISI Halaman DAFTAR TABEL ............................................................................................................
ix
DAFTAR GAMBAR ........................................................................................................
x
DAFTAR LAMPIRAN ....................................................................................................
xi
PENDAHULUAN ............................................................................................................ Latar Belakang ..........................................................................................................
1
Tujuan .......................................................................................................................
1
Ruang Lingkup ..........................................................................................................
2
TINJAUAN PUSTAKA Kriptografi..................................................................................................................
2
Kriptanalisis ...............................................................................................................
2
Enkripsi dan Dekripsi.................................................................................................
2
Algoritma Kriptografi.................................................................................................
2
Algoritma Simetrik.....................................................................................................
3
Sandi Alir dan Sandi Blok..........................................................................................
3
Modus Operasi Sandi Blok.........................................................................................
3
Electronic Codebook (ECB) ......................................................................................
3
Cipher Block Chaining (CBC) ..................................................................................
3
Counter (CTR) ..........................................................................................................
4
Advanced Encryption Standard (AES).......................................................................
4
Fungsi Hash................................................................................................................
5
Cipher Block Chaining-Message Authentication Code (CBC-MAC) .......................
5
Analisis Algoritma .....................................................................................................
5
Birthday Attack...........................................................................................................
6
Meet-in-the-Middle Attack..........................................................................................
6
Chosen-Ciphertext Attack...........................................................................................
6
Deskripsi Algoritma CCM .........................................................................................
6
Algoritma Blok untuk CCM.......................................................................................
6
Teknik Kriptografi dalam CCM .................................................................................
6
Elemen-elemen Data ..................................................................................................
7
Pemformatan Input .....................................................................................................
7
Fungsi Pemformatan...................................................................................................
7
Fungsi Pembangkitan Counter ...................................................................................
8
Proses Generation-Encryption ...................................................................................
9
Proses Decryption-Verification ..................................................................................
9
METODOLOGI Spesifikasi Implementasi ..........................................................................................
11
Deskripsi Umum Implementasi ................................................................................
11
Spesifikasi Uji Implementasi ....................................................................................
11
HASIL DAN PEMBAHASAN Analisis Algoritma CCM ..........................................................................................
12
Analisis Algoritma Proses Generation-Encryption CCM.........................................
15
Analisis Algoritma Proses Decryption-Verification CCM........................................
15
Analisis Uji Implementasi.........................................................................................
16
KESIMPULAN DAN SARAN Kesimpulan ..............................................................................................................
24
Saran ........................................................................................................................
24
DAFTAR PUSTAKA .......................................................................................................
24
DAFTAR TABEL Halaman 1.
Pemformatan oktet flag dalam B0 ........................................................................................... 8
2.
Pemformatan B0 ...................................................................................................................... 8
3.
Pemformatan Ctri .................................................................................................................... 8
4.
Pemformatan oktet flag dalam Ctri ......................................................................................... 8
5.
Ukuran payload dan ukuran blok counter yang dibangkitkan ................................................ 16
6.
Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 0, n = 7, dan t = 8 .............................................................................................................. 16
7.
Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 8, n = 7, dan t = 8 .............................................................................................................. 17
8.
Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 16, n = 7, dan t = 8 ............................................................................................................ 17
9.
Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 24, n = 7, dan t = 8 ............................................................................................................ 18
10. Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 32, n = 7, dan t = 8 ............................................................................................................ 18 11. Group statistics AES-CCM..................................................................................................... 21 12. Independent-samples t-test (α = 0.05) untuk AES-CCM........................................................ 21 13. Koefisien grafik hubungan running time proses generation-encryption terhadap ukuran ADF dan PF ..................................................................................................................................... 22 14. Koefisien grafik hubungan running time proses decryption-verification terhadap ukuran ADF dan PF ..................................................................................................................................... 22 15. Rekapitulasi rataan running time enkripsi dan dekripsi pada AES-ECB ................................ 22 16. Group statistics AES-ECB...................................................................................................... 23 17. Independent-samples t-test (α = 0.05) untuk AES-ECB......................................................... 23 18. Koefisien grafik hubungan running time proses enkripsi terhadap ukuran file pesan............. 23 19. Koefisien grafik hubungan running time proses dekripsi terhadap ukuran file pesan............. 23
DAFTAR GAMBAR Halaman 1.
Modus operasi ECB (Stalling 2003) ....................................................................................... 3
2.
Modus operasi CBC (Stalling 2003) ....................................................................................... 3
3.
Modus operasi CTR (Stalling 2003) ....................................................................................... 4
4.
Proses enkripsi AES, kunci 128 bit (Stalling 2003)................................................................ 5
5.
Algoritma CBC-MAC (Menezes et al. 1996) ........................................................................ 5
6.
Proses generation-encryption CCM........................................................................................ 10
7.
Proses decryption-verification CCM....................................................................................... 11
8.
Diagram alir proses generation-encryption CCM................................................................... 15
9.
Diagram alir proses decryption-verification CCM.................................................................. 15
10. Hubungan running time generation-encryption dan decryption-verification terhadap ukuran data terformat pada percobaan pertama .................................................................................. 19 11. Hubungan running time generation-encryption dan decryption-verification terhadap ukuran associated data pada kelima percobaan .................................................................................. 20 12. Hubungan panjang MAC pada ciphertext terhadap panjang payload..................................... 20 13. Hubungan running time enkripsi-dekripsi terhadap ukuran pesan.......................................... 23
DAFTAR LAMPIRAN Halaman 1.
Antarmuka implementasi ....................................................................................................... 27
2.
Rekaman ilustrasi tahapan proses generation-encryption dan decryption-verification CCM. 28
3.
Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 0, n = 7, dan t = 8 ........................................................................................................................ 30
4.
Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 0, n = 7, dan t = 8 ........................................................................................................................ 32
5.
Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 8, n = 7, dan t = 8 ........................................................................................................................ 34
6.
Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 8, n = 7, dan t = 8 ........................................................................................................................ 36
7.
Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 16, n = 7, dan t = 8 ........................................................................................................................ 38
8.
Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 16, n = 7, dan t = 8 ........................................................................................................................ 40
9.
Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 24, n = 7, dan t = 8 ........................................................................................................................ 42
10. Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 24, n = 7, dan t = 8 ........................................................................................................................ 44 11. Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 32, n = 7, dan t = 8 ........................................................................................................................ 46 12. Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 32, n = 7, dan t = 8 ........................................................................................................................ 48 13. Rekapitulasi rata-rata uji running time enkripsi AES-ECB .................................................... 50 14. Rekapitulasi rata-rata uji running time dekripsi AES-ECB .................................................... 51
1
PENDAHULUAN Latar Belakang Komunikasi melalui internet telah menjadi suatu bagian penting dalam kehidupan kita. Internet menyebabkan banyak organisasi, industri, maupun individu menggunakan sistem komputer sebagai media komunikasi data. Komunikasi data atau pesan melalui internet ini tentu saja mengandung resiko, terutama untuk data atau pesan yang bersifat rahasia dan berharga, karena internet merupakan media komunikasi umum yang rentan akan terjadinya penyusupan oleh pihak yang tak berwenang. Para penyusup ini melakukan ancaman terhadap data atau pesan dengan dua macam cara, yaitu berupa ancaman pasif dan ancaman aktif. Ancaman pasif terjadi ketika penyusup secara sengaja memonitor saluran komunikasi serta membaca isi pesan. Seorang penyusup pasif hanya mengancam kerahasiaan data. Namun apabila penyusup juga berusaha untuk menghapus pesan, menambahkan isi pesan, atau dengan cara lain mengubah transmisi pesan, maka dalam hal ini telah terjadi ancaman aktif. Seorang penyusup aktif mengancam integritas data, otentikasi maupun kerahasiaan data (Menezes et al. 1996). Berkaitan dengan hal tersebut, seringkali ketika dua pihak berkomunikasi melalui suatu jaringan, ada dua tujuan utama yang ingin mereka capai dalam menjaga keamanan data atau pesan, yaitu kerahasiaan dan otentikasi pesan. Teknik kriptografi dapat digunakan untuk mencapai tujuan tersebut. Tujuan kerahasiaan dapat dicapai dengan menggunakan teknik kriptografi berupa penyandian pesan, sedangkan tujuan otentikasi dapat diraih dengan menggunakan teknik kriptografi berupa otentikasi pesan yang secara implisit memberikan integritas data. Berbagai macam cara penyandian pesan telah dikembangkan. Salah satu contoh adalah algoritma Advanced Encryption Standard (AES) yang menggunakan teknik blok simetrik. Algoritma AES dipublikasikan oleh National Institute of Standards and Technology (NIST) pada tahun 2001 dan dimaksudkan untuk menggantikan algoritma Data Encryption Standard (DES) sebagai standard yang telah disetujui untuk dipakai dalam berbagai macam aplikasi. Kedua algoritma tersebut, baik DES maupun AES
memberikan layanan kerahasiaan data.
keamanan
berupa
Sama halnya dengan teknik penyandian pesan, teknik otentikasi pesan juga telah banyak dikembangkan. Salah satu teknik otentikasi pesan adalah dengan menggunakan Message Authentication Code (MAC) yang merupakan fungsi hash berkunci. Beberapa algoritma MAC diantaranya adalah CBCMAC, HMAC, UMAC, dan masih banyak algoritma lainnya. Sehubungan dengan pencapaian tujuan keamanan data, para ahli kriptogafi berpendapat bahwa seseorang sebaiknya tidak melakukan penyandian pesan tanpa diikuti otentikasi pesan. Berbagai macam solusi untuk mengatasi persoalan ini telah ada sejak beberapa dekade, dan pendekatan tradisional untuk mendapatkan jaminan kerahasiaan dan otentikasi pesan telah dilakukan dengan menggabungkan kedua teknik tersebut dalam suatu cara tertentu yang dikenal dengan istilah “generic composition”. Akan tetapi, baru-baru ini ada sejumlah konstruksi baru yang meraih kerahasiaan dan otentikasi secara simultan dan seringkali lebih cepat daripada sembarang solusi yang menggunakan generic composition (Black 2003). Konstruksi baru ini memanfaatkan modus-modus operasi sandi blok sehingga dikenal dengan istilah “combined modes” atau istilah yang lebih sering digunakan adalah “authenticatedencryption modes” (modus enkripsi terotentikasi). Penelitian ini akan menganalisis salah satu modus enkripsi terotentikasi yaitu algoritma Counter with Cipher Block Chaining-Message Authentication Code, disingkat CCM. CCM dapat dianggap sebagai suatu modus operasi algoritma blok. Seperti ditunjukkan oleh namanya, CCM mengkombinasikan modus enkripsi Counter (CTR) dengan modus otentikasi Cipher Block Chaining-Message Authentication Code (CBC-MAC). CCM didasarkan pada algoritma sandi blok kunci simetrik dengan panjang blok 128 bit, seperti algoritma AES. Pada penelitian ini dilakukan analisis algoritma, serta implementasi algoritma CCM bagi analisis kinerja dengan uji running time proses generation-encryption dan decryption-verification. Tujuan Tujuan penelitian ini adalah: 1. melakukan analisis algoritma CCM
2
2. mengimplementasikan algoritma CCM berdasarkan algoritma AES untuk melakukan analisis kinerja dengan uji running time proses generationencryption dan decryption-verification
Atas dasar ini otentikasi terbagi menjadi dua kelas besar, yaitu otentikasi entitas dan otentikasi asal data. Otentikasi asal data secara implisit memberikan integritas data.
3. melakukan perbandingan modus operasi CCM dengan modus operasi Electronic Codebook (ECB) pada algoritma AES berdasarkan hasil penelitian Giri (2004).
4. Non-repudiasi adalah suatu layanan yang mencegah suatu entitas dari penyangkalan akan komitmen atau aksi yang telah dibuat sebelumnya.
Ruang Lingkup
Sesuai dengan asumsi yang telah dikemukakan sebelumnya, penelitian ini menekankan pada aspek kerahasiaan dan otentikasi pesan.
Implementasi algoritma CCM memanfaatkan algoritma sandi blok AES dengan panjang 128 bit dengan panjang blok kunci yang dipilih adalah 128 bit. Oleh karenanya analisis algoritma CCM dibatasi oleh hal tersebut. Implementasi algoritma CCM ditujukan untuk melakukan enkripsi terotentikasi pada pesan dalam bentuk file teks dengan representasi 8 bit (1 byte) untuk setiap karakter. Untuk mempermudah penelitian, manajemen penentuan nilai kunci diasumsikan terjamin keamanannya. Adapun analisis kinerja mencakup analisis uji running time generation-encryption dan decryptionverification CCM hasil implementasi yang selanjutnya dilakukan perbandingan dengan running time enkripsi dan dekripsi pada algoritma AES dengan modus operasi ECB.
Kriptanalisis Kriptanalisis adalah studi teknik matematik untuk mencoba mematahkan teknik kriptografi, dan lebih umum lagi terhadap layanan keamanan informasi, sedangkan kriptanalis adalah orang yang menggeluti kriptanalisis (Menezes et al. 1996). Enkripsi dan Dekripsi Enkripsi yang disimbolkan dengan E merupakan proses untuk mengubah suatu plaintext (P) menjadi ciphertext (C). Secara matematis fungsi enkripsi dapat dinyatakan sebagai berikut: E(P) = C
TINJAUAN PUSTAKA Kriptografi Menezes et al. (1996) mendefinisikan kriptografi sebagai studi teknik matematik yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, otentikasi entitas, dan otentikasi asal data. Empat tujuan utama kriptografi menurut Menezes et al. (1996) adalah sebagai berikut: 1. Kerahasiaan adalah suatu layanan yang digunakan untuk menjaga isi informasi dari semua pihak yang tidak berwenang memilikinya. 2. Integritas data adalah suatu layanan yang berkaitan dengan pengubahan data oleh pihak yang tidak berwenang. 3. Otentikasi adalah suatu layanan yang berhubungan dengan identifikasi. Fungsi ini diterapkan baik pada entitas maupun pada informasi itu sendiri. Informasi yang disampaikan melalui suatu saluran seharusnya dapat diidentifikasikan asalnya, isinya, tanggal dan waktunya.
Sebagai fungsi kebalikan dari enkripsi, dekripsi disimbolkan dengan D, mengembalikan ciphertext (C) menjadi plaintext (P). Secara matematis fungsi dekripsi dapat dinyatakan sebagai berikut: D(C) = P Dengan demikian, untuk proses enkripsi yang diikuti proses dekripsi berlaku identitas berikut ini: D(E(P)) = P (Schneier 1996). Algoritma Kriptografi Algoritma kriptografi adalah rangkaian fungsi matematika yang digunakan dalam proses enkripsi dan dekripsi. Kriptografi modern menggantungkan keamanannya pada penggunaan suatu kunci, disimbolkan dengan K. Semua kemungkinan nilai kunci disebut dengan ruang kunci. Baik enkripsi maupun dekripsi menggunakan kunci, dengan e merupakan kunci enkripsi dan d merupakan kunci dekripsi. Dengan demikian, fungsi enkripsi dan dekripsi dapat ditulis menjadi:
3
Ee(P) = C Dd(C) = P (Schneier 1996). Algoritma Simetrik Suatu skema algoritma enkripsi dikatakan algoritma simetrik jika untuk setiap pasangan kunci enkripsi dan dekripsi (e,d), maka secara komputasi d “mudah” dihitung apabila e diketahui, dan e “mudah” dihitung apabila d diketahui. Karena pada praktiknya sering kali e = d, maka algoritma simetrik disebut juga enkripsi satu kunci, kunci tunggal, atau enkripsi konvensional (Menezes et al. 1996). Sandi Alir dan Sandi Blok Algoritma simetrik dibedakan menjadi dua, yaitu sandi alir dan sandi blok. Sandi alir mengoperasikan bit-bit pesan per satuan waktu tertentu, sedangkan sandi blok mengoperasikan sekumpulan bit (blok) pesan per satuan waktu tertentu (Menezes et al. 1996). Modus Operasi Sandi Blok Sandi blok mengenkripsi plaintext dalam ukuran tetap n-bit. Untuk pesan yang melampaui n-bit, pendekatan yang paling sederhana adalah dengan mempartisi pesan menjadi blok-blok n-bit, masing-masing blok dienkripsi secara terpisah (Menezes et al. 1996). Cara ini dikenal dengan istilah modus operasi sandi blok. Dalam Special Publication 800-38A, NIST merekomendasikan lima modus operasi sandi blok yaitu: Electronic Codebook (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB), dan Counter (CTR).
(a) Enkripsi
(b) Dekripsi Gambar 1 Modus operasi ECB (Stallings 2003). Cipher Block Chaining (CBC) Dalam skema CBC, input algoritma enkripsi adalah hasil exclusive-or (XOR) antara blok plaintext dengan blok ciphertext sebelumnya. Kunci yang sama digunakan untuk setiap blok. Untuk menghasilkan blok pertama ciphertext, suatu initialization vector (IV) di-XOR-kan dengan blok pertama plaintext. Secara matematis dapat ditulis menjadi: C1 = EK(IV ⊕ P1) Cj = EK[Cj-1 ⊕ Pj] untuk j = 2, ..., n P1 IV K
Ci = EK(Pi); untuk proses enkripsi Pi = DK(Ci); untuk proses dekripsi dengan i = 1, 2, ..., n. Ilustrasi cara kerja modus ECB dapat dilihat pada Gambar 1.
Pn
. . . E
K
C1
Electronic Codebook (ECB) Modus operasi Electronic Codebook (ECB) merupakan modus operasi blok paling sederhana di antara modus operasi blok lainnya (Stallings 2003). Modus operasi ECB melakukan enkripsi setiap blok plaintext ke suatu blok ciphertext yang sama. Demikian pula sebaliknya untuk proses dekripsi (Schneier 1996). Secara matematis dapat dituliskan sebagai berikut:
P2
E
Cn-1 K
C2
E Cn
(a) Enkripsi C1 K
D
C2 K
Cn
D
K
. . .
IV P1
D
Cn-1
P2
Pn
(b) Dekripsi Gambar 2 Modus operasi CBC (Stallings 2003). Untuk dekripsi, setiap blok ciphertext dilewatkan ke dalam algoritma dekripsi. Hasilnya kemudian di-XOR-kan dengan
4
ciphertext sebelumnya untuk menghasilkan plaintext. Secara matematis dapat ditulis menjadi: P1 = IV ⊕ DK (C1) Pj = DK (Cj) ⊕ Cj-1 (Stallings 2003). Gambar 2 menyajikan ilustrasi cara kerja CBC.
(a) Enkripsi
Counter (CTR) Modus CTR diperkenalkan oleh Diffie dan Hellman pada tahun 1979, namun modus ini tidak distandarisasi sebagai modus resmi untuk DES sehingga dalam buku-buku teks modus CTR seringkali tidak disebutkan. Modus CTR baru distandarisasi oleh NIST pada tahun 2001. Modus CTR membutuhkan sebuah nonce yang unik. Nonce adalah suatu nilai yang digunakan hanya sekali. Kebanyakan sistem membentuk nilai nonce dari nomor pesan dan beberapa data tambahan untuk memastikan keunikan dari nonce. Modus CTR menggunakan metode yang sangat sederhana untuk membangkitkan aliran kunci. Nilai nonce digabung dengan nilai counter i. Dalam NIST SP800-38A disebutkan bahwa nilai counter harus berbeda untuk setiap blok plaintext yang dienkripsi. Secara khusus counter diinisialisasi terhadap suatu nilai dan kemudian ditambahkan dengan ‘1’ untuk setiap blok berikutnya. Nilai gabungan nonce dan counter (seringkali disebut juga dengan blok counter) dienkripsi untuk membentuk sebuah blok dari aliran kunci. Blok kunci ini kemudian di-XOR-kan dengan blok plaintext untuk menghasilkan blok ciphertext. Dengan demikian, panjang blok counter harus sama dengan panjang blok plaintext. Secara matematis modus CTR dapat dituliskan sebagai berikut: Ki = E(K, Nonce || i) untuk i = 1, 2, ..., n Ci = Pi ⊕ Ki (Ferguson & Schneier 2003). Rangkaian blok counter yang sama digunakan pada proses enkripsi maupun dekripsi. Untuk dekripsi, setiap blok counter yang telah dienkripsi kemudian di-XOR-kan dengan blok ciphertext untuk mendapatkan kembali blok plaintext yang sesuai. Gambar 3 menyajikan ilustrasi cara kerja CTR.
(b) Dekripsi Gambar 3 Modus operasi CTR (Stallings 2003). Advanced Encryption Standard (AES) AES merupakan algoritma simetrik yang didesain untuk beroperasi pada blok pesan 128 bit dan menggunakan tiga variasi blok kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Empat proses utama algoritma ini terdiri dari satu proses permutasi dan tiga proses subtitusi, yaitu: 1. Subtitute Bytes: menggunakan S-Box untuk untuk menjalankan subtitusi byte demi byte dari blok pesan. 2. Shift Rows: suatu permutasi sederhana. 3. Mix Columns: subtitusi memanfaatkan aritmatika GF(28).
yang
4. Add Round Key: proses XOR sederhana antara blok yang bersesuaian dengan suatu bagian dari ekspansi kunci. Proses enkripsi maupun dekripsi diawali proses Add Round Key, diikuti sembilan round yang masing-masing tersusun atas empat proses, dan diakhiri round ke-sepuluh yang terdiri atas tiga proses (Stallings 2003). Algoritma CCM didasarkan pada algoritma blok kunci simetrik dengan panjang blok 128 bit seperti halnya algoritma AES. Oleh karenanya pada penelitian ini dimanfaatkan algoritma AES dengan dibatasi untuk panjang blok kunci 128 bit. Meskipun demikian algoritma CCM hanya menggunakan fungsi forward cipher atau fungsi enkripsi AES (lihat Gambar 4) baik untuk proses CCM generation-encryption maupun proses CCM decryption-verification.
5
memberikan jaminan sumber pesan dan integritasnya. Cipher Block Chaining – Message Authentication Code (CBC-MAC) Algoritma CBC-MAC merupakan algoritma MAC berdasarkan pada sandi blok yang paling sering digunakan, dengan memanfaatkan modus operasi CBC. Algoritma CBC-MAC didefinisikan sebagai berikut: INPUT: data x, spesifikasi sandi blok E, kunci rahasia MAC k untuk E. OUTPUT: n-bit MAC pada x (n adalah panjang blok dari E). 1. Proses Penambahan Bit Ekstra dan blocking. Proses penambahan bit ekstra dilakukan dengan menggunakan algoritma padding. Padded text dipecah menjadi blok-blok dengan ukuran n-bit dinotasikan dengan x1, x2, x3, ..., xt. 2. Proses CBC. Misalkan Ek merupakan notasi enkripsi menggunakan E dengan kunci k, hitung blok Ht dengan: H1 Å Ek (x1) Hi Å Ek (Hi-1 ⊕ xi ), 2 ≤ i ≤ t (Ini merupakan standard CBC, IV = 0, mengabaikan blok ciphertext Ci = Hi). Gambar 4 Proses enkripsi AES, kunci 128 bit (Stallings 2003). Fungsi Hash Menezes et al. (1996) mendefinisikan fungsi hash sebagai fungsi yang secara komputasi efisien memetakan bitstring dengan panjang sembarang ke bitstring dengan panjang tetap yang disebut kode-hash, hasil-hash, nilai-hash, atau sederhana disebut hash. Berdasarkan kegunaannya, dibagi menjadi dua tipe, yaitu:
3. Proses pilihan untuk meningkatkan kekuatan MAC. Menggunakan kunci rahasia kedua k′ ≠ k, secara opsional dihitung H′t Å E-1k′ (Ht), Ht Å Ek (H′t). 4. Penyelesaian. MAC adalah n-bit blok Ht. Ilustrasi algoritma CBC-MAC dapat dilihat pada Gambar 5 berikut. X1
X2
Xt
IV
Ht-1
fungsi hash
. . .
k
E
H1
k
E
H2
k
1. Modification Detection Codes (MDCs) MDC juga dikenal sebagai Manipulation Detection Codes, atau Message Integrity Codes (MIC). MDC merupakan subkelas dari fungsi hash tak-berkunci. Tujuan MDC adalah memberikan jaminan integritas data sebagaimana dibutuhkan dalam suatu aplikasi khusus. 2. Message Authentication Codes (MACs) MAC merupakan subkelas dari fungsi hash berkunci. Tujuan MAC adalah
E Ht
k'
E
-1
optional k
E H
Gambar 5 Algoritma CBC-MAC (Menezes et al. 1996). Analisis Algoritma Analisis algoritma dilakukan untuk menduga besarnya sumber daya waktu yang
6
dibutuhkan untuk sembarang ukuran input n (Cormen et al. 1990). Pada penelitian ini, algoritma CCM dievaluasi berdasarkan keadaan kompleksitas waktu untuk waktu terburuk, dinotasikan dengan O (big O). Kasus waktu terburuk didefinisikan sebagai batas atas (terbesar) waktu yang diperlukan algoritma untuk menyelesaikan suatu pekerjaan bagi setiap ukuran input (Cormen et al. 1990). Birthday Attack Birthday attack dinamakan demikian karena adanya birthday paradox. Birthday attack adalah suatu serangan yang tergantung pada fakta bahwa nilai rangkap, disebut juga collisions, muncul lebih cepat dari yang diharapkan. Secara umum, jika suatu elemen mempunyai kemungkinan N nilai yang berbeda, maka collision pertama dapat terjadi setelah memilih sekitar N1/2 elemen acak. Jika terdapat 2n nilai yang mungkin, maka 2n/2 elemen sebelum suatu terjadi collision (Ferguson & Schneier 2003). Meet-in-the-Middle Attack Meet-in-the-Middle attack merupakan “saudara” dari birthday attack (keduanya disebut collision attacks). Perbedaan pada kedua jenis serangan tersebut adalah pada birthday attack musuh menunggu sebuah nilai tunggal (yaitu kunci) untuk muncul dua kali dalam sebuah himpunan elemen, sedangkan meet-in-the-middle attack, musuh mempunyai dua himpunan (yaitu kunci yang dipilih secara acak dan MAC yang dihitung dari bagian pesan yang diketahui) dan menunggu terjadinya tumpang tindih (overlap) pada dua himpunan tersebut. Dengan menggunakan meet-in-the-middle attack musuh dapat mematahkan sebuah sistem dengan lebih dalam (Ferguson & Schneier 2003). Chosen-Ciphertext Attack Chosen-ciphertext attack adalah suatu serangan yang dilakukan musuh dengan memilih beberapa ciphertext berbeda sehingga didapatkan plaintext yang bersesuian. Salah satu jalan untuk melaksanakan ini adalah dengan mendapatkan akses terhadap alat yang digunakan untuk mendekripsi ciphertext. Dengan demikian, musuh dapat memperoleh kunci yang digunakan untuk mendekripsi pesan (Menezes et al. 1996). Deskripsi Algoritma CCM Algoritma Counter with Cipher Block Chaining-Message Authentication Code
(CCM) diajukan oleh Doug Whiting, Russ Housley, dan Niels Ferguson pada tahun 2002. CCM merupakan modus algoritma blok yang dapat memberikan jaminan kerahasiaan dan otentikasi data. CCM didasarkan pada algoritma blok kunci simetrik yang telah diakui (yakni diakui oleh Federal Information Processing Standard (FIPS) atau direkomendasikan oleh NIST) dengan ukuran blok 128 bit, seperti algoritma AES yang dipublikasikan dalam FIPS 197. CCM tidak dapat digunakan dengan algoritma 3DES dengan ukuran blok 64 bit. Meskipun demikian, ide CCM dapat dengan mudah diperluas untuk digunakan pada panjang blok lainnya, namun hal ini akan membutuhkan ketentuan lebih lanjut (Whiting et al. 2002). CCM dimaksudkan untuk digunakan dalam lingkungan paket, yaitu ketika semua data tersedia dalam penyimpanan sebelum CCM diaplikasikan. CCM tidak dirancang untuk mendukung pemrosesan parsial (Dworkin 2004). Berikut ini adalah uraian lengkap mengenai algoritma CCM. 1.
Algoritma Blok untuk CCM
Seperti telah diungkapkan sebelumnya bahwa algoritma blok yang akan mendasari CCM pada penelitian ini adalah algoritma AES. Seperti algoritma blok lainnya, AES terdiri dari dua fungsi yang merupakan kebalikan satu sama lain, yaitu fungsi forward cipher dan fungsi invers cipher. Meskipun demikian, CCM hanya memerlukan fungsi forward cipher. Kunci CCM, disimbolkan dengan K, adalah kunci untuk algoritma blok AES. Fungsi forward cipher dengan kunci ini dinyatakan dengan CIPHK, sedangkan panjang K dinyatakan dengan Klen. 2.
Teknik Kriptografi dalam CCM
Spesifikasi CCM pada dasarnya menggabungkan dua mekanisme kriptografik yang didasarkan pada fungsi forward cipher. Mekanisme pertama diadaptasi dari teknik CBC untuk memberikan jaminan otentisitas. Secara spesifik, teknik CBC dengan sebuah vektor inisialisasi bernilai nol diterapkan pada data yang akan diotentikasi. Seluruh atau sebagian dari blok terakhir output CBC merupakan MAC dari data. Algoritma untuk membangkitkan sebuah MAC dengan cara ini disebut dengan CBC-MAC. Mekanisme kriptografik lain dalam CCM adalah modus CTR untuk kerahasiaan. Modus
7
ini membutuhkan pembangkitan rangkaian blok yang cukup panjang yang disebut blokblok counter. Blok-blok counter ini harus berbeda dalam setiap invokasi (yaitu suatu operasi sandi blok) menggunakan kunci yang diberikan. Kunci yang sama, yaitu K, digunakan baik untuk mekanisme CTR maupun CBC-MAC dalam CCM (Dworkin 2004). 3.
Elemen-elemen Data
Data yang dilindungi CCM terdiri dari tiga elemen, yaitu: 1. Sebuah pesan atau data, yaitu suatu bitstring disebut payload, dinyatakan dengan P, dengan panjang bitnya dinyatakan dengan Plen. P akan diotentikasi dan dienkripsi sehingga CCM menyediakan jaminan keaslian dan kerahasiaan P. 2. Suatu bit string disebut associated data, dinyatakan dengan A. Associated data (misalnya suatu header) ini bersifat opsional, yaitu A mungkin saja berupa string kosong. A akan diotentikasi tetapi tidak dienkripsi sehingga CCM hanya menyediakan jaminan keaslian namun tidak memberikan jaminan kerahasiaan A. 3. Suatu bit string unik yang disebut nonce, dinyatakan dengan N, diberikan pada pasangan data yang akan dilindungi, yaitu P dan A. MAC yang dibangkitkan dalam CCM dinyatakan dengan T. Panjang bit T, dinyatakan dengan Tlen, merupakan suatu parameter yang akan ditetapkan untuk semua proses CCM dengan kunci yang diberikan (Dworkin 2004). 4.
Pemformatan Input
Elemen-elemen data CCM yaitu N, P, dan A akan diformat dengan sebuah fungsi pemformatan (dalam Jonsson (2002) disebut dengan encoding function) menjadi rangkaian tak-kosong dari blok data lengkap, dinyatakan dengan B0, B1, …, Br untuk r bilangan bulat tak-negatif. Nilai r tergantung pada fungsi pemformatan dan elemen input. Untuk sembarang kunci, tiga sifat berikut harus dimiliki oleh fungsi pemformatan: 1. Blok pertama, B0, menentukan nonce N.
secara
unik
2. Data yang diformat secara unik menentukan P dan A; selain itu, jika (N, P, A) dan (N, P', A') adalah input triplet
yang berbeda dengan format B0, B1, …, Br dan B0', B1', …, Br'', maka Bi berbeda dari Bi' untuk indeks i sedemikian sehingga i ≤ r dan i ≤ r'. 3. Blok pertama, B0, berbeda dari sembarang blok counter yang digunakan untuk semua proses CCM menggunakan kunci yang diberikan. Sifat ketiga menyarankan agar fungsi pemformatan dan fungsi pembangkitan counter tidak dipilih atau dirancang secara independen satu sama lain. Fungsi pemformatan mungkin memberikan pembatasan pada isi dan panjang bit data input N, P, dan A, seperti halnya pada parameter Tlen. Nilai yang memenuhi batasan dari fungsi pemformatan disebut valid. Fungsi pemformatan dan fungsi pembangkitan counter yang digunakan pada penelitian ini merupakan fungsi pemformatan CCM generik yang diajukan oleh perancang CCM kepada NIST. Kedua fungsi ini tentu saja memenuhi syarat tersebut di atas. Alternatif fungsi pemformatan dan fungsi pembangkitan counter dimungkinkan untuk dikembangkan pada masa mendatang (Dworkin 2004). 5.
Fungsi Pemformatan
5.1. Syarat Panjang Peubah dalam CCM Panjang bit untuk setiap string input, yaitu N, A, dan P, merupakan kelipatan dari 8 bit, yaitu setiap string input merupakan string oktet. Panjang oktet dari string ini dinyatakan dengan n, a, dan p sehingga n, a, dan p merupakan bilangan bulat. Demikian pula dengan parameter t yang menyatakan panjang oktet T. Panjang oktet dari P (yaitu bilangan bulat p) direpresentasikan dalam blok pertama dari data terformat sebagai sebuah string oktet disimbolkan dengan Q. Panjang oktet Q yang dinyatakan dengan q, adalah sebuah parameter untuk fungsi pemformatan. Jadi, Q ekuivalen dengan [p]8q, representasi biner p dalam oktetoktet q. Sebagai contoh, jika q = 3 dan P adalah sebuah string yang terdiri dari 2048 bit, yaitu p = 256, maka Q adalah string 00000000 00000001 00000000. Fungsi pemformatan yang digunakan dalam penelitian ini mensyaratkan panjang dari peubah berikut (Dworkin 2004): •
t adalah elemen dari {4, 6, 8, 10, 12, 14, 16}
8
• •
q adalah elemen dari {2, 3, 4, 5, 6, 7, 8} n adalah elemen dari {7, 8, 9, 10, 11, 12, 13} n + q = 15 a < 264.
• •
5.2. Pemformatan Kontrol Informasi dan Nonce Oktet awal blok pertama dari pemformatan, B0, berisi empat flag untuk mengontrol informasi: yaitu dua bit tunggal (disebut Reserved dan Adata) dan dua string terdiri dari tiga bit yang digunakan untuk menyandikan nilai t dan q. Penyandian t adalah [(t-2)/2]3, dan penyandian q adalah [q-1]3. Sebagai contoh, jika panjang MAC adalah 8 oktet, maka t disandikan menjadi 011. Bit Reserved dicadangkan untuk memungkinkan perluasan pemformatan di masa mendatang dan akan di-set dengan nilai ‘0’. Bit Adata bernilai ‘0’ jika a = 0 dan ‘1’ jika a > 0 (Dworkin 2004). Urutan flag dalam oktet diberikan dalam Tabel 1. Pada Tabel 2 diperlihatkan pemformatan 15 oktet lainnya dari blok pertama yang disediakan untuk nonce dan representasi biner dari panjang pesan dalam oktet-oktet q. Tabel 1 Pemformatan oktet flag dalam B0 Bit
7
6
5
Isi
Reserved
Adata
4
3
2
[(t-2)/2]3
1
0
[q-1]3
•
Jika 0 < a < 216-28, maka a disandikan sebagai [a]16, yaitu dua oktet.
•
Jika 216-28 ≤ a < 232, maka a disandikan sebagai 0xff || 0xfe || [a]32, yaitu enam oktet.
•
Jika 232 ≤ a < 264, maka a disandikan sebagai 0xff || 0xff || [a]64, yaitu sepuluh oktet.
Pemformatan dari kumpulan associated data yang berbeda tidak akan overlap, karena untuk nilai-nilai a yang berbeda, bit-bit yang mendahului dari penyandian a juga berbeda. Pada kasus pertama, oktet yang pertama tidak akan 0xff seperti pada kasus yang kedua dan ketiga; kasus kedua dan ketiga dapat dibedakan dengan oktet yang kedua. Penyandian yang tidak dispesifikasikan pada tiga kasus ini adalah reserved, misalnya ketika kedua oktet yang pertama adalah 0x0000, 0xff00, 0xff01, dan lain-lain (Dworkin 2004). 5.4. Pemformatan Payload Blok-blok associated data, jika ada, diikutkan dalam rangkaian blok pemformatan dengan blok payload. Payload digabungkan dengan jumlah minimum bit-bit ‘0’ (mungkin juga tidak ada) sedemikian sehingga hasilnya bisa dipartisi menjadi 16-blok oktet. Blokblok ini dinyatakan dalam data yang telah diformat sebagai Bu+1, Bu+2, … Br, dengan r = u + ⎡p/16⎤ (Dworkin 2004). 6.
Tabel 2 Pemformatan B0 Oktet
0
1 ... 15-q
16-q ... 15
Isi
Flags
N
Q
5.3. Pemformatan Associated Data Jika a = 0 maka tidak ada blok yang disediakan untuk associated data dalam data yang diformat. Jika a > 0, maka a disandikan seperti dijelaskan di bawah ini, dan sandi dari a digabung dengan associated data A, diikuti oleh jumlah minimum bit-bit ‘0’ (mungkin juga tidak) sedemikian sehingga string yang dihasilkan bisa dipartisi ke dalam 16-blok oktet. Blok-blok ini dinyatakan dalam data terformat sebagai B1, B2, … Bu untuk u bilangan bulat positif yang tergantung dari nilai a. Nilai a disandikan berdasarkan tiga kasus berikut:
Fungsi Pembangkitan Counter
Fungsi pembangkitan counter pada bagian ini adalah ekuivalen dengan pemformatan indeks counter i menjadi suatu blok data lengkap. Blok-blok counter Ctri dibentuk seperti terlihat pada Tabel 3. Dalam setiap blok Ctri, flag dibentuk seperti terlihat pada Tabel 4 (Dworkin 2004). Tabel 3 Pemformatan Ctri Oktet
0
1 ... 15-q
16-q ... 15
Isi
Flags
N
[i]8q
Tabel 4 Pemformatan oktet flag dalam Ctri Bit
7
6
5
4
3
Isi
Reserved
Reserved
0
0
0
2
1
0
[q-1]3
Bit Reserved disediakan untuk perluasan di masa mendatang dan akan di-set dengan nilai ‘0’. Bit 3, 4, dan 5 juga akan di-set dengan nilai ‘0’ untuk memastikan bahwa semua blok
9
counter berbeda dari B0. Bit 0, 1, dan 2 berisi penyandian q yang sama seperti dalam B0. 7.
•
algoritma blok (AES)
•
kunci K
Enkripsi modus counter, yang membutuhkan rangkaian blok-blok counter yang cukup panjang sebagai input, diterapkan pada payload dan secara terpisah diterapkan juga pada MAC. Data yang dihasilkan disebut ciphertext, dinyatakan dengan C, merupakan output proses generation-encryption. Proses ini telah mengekspansi ukuran payload dengan ukuran MAC. Ilustrasi proses generation-encryption dapat dilihat pada Gambar 6.
•
fungsi pembangkitan counter
8.
•
fungsi pemformatan
•
panjang MAC Tlen
Berikut ini adalah spesifikasi dari proses decryption-verification CCM:
Proses Generation-Encryption
Berikut ini adalah spesifikasi dari proses generation-encryption CCM: ¾
¾
Prasyarat:
Proses Decryption-Verification
¾ Prasyarat:
Input: •
valid nonce N
•
algoritma blok (AES)
•
valid payload P dengan panjang Plen bit
•
kunci K
•
fungsi pembangkitan counter
•
valid associated data A
•
fungsi pemformatan
•
valid panjang MAC Tlen
¾ Output: •
ciphertext C
¾ Input:
¾ Langkah-langkah: 1. Jalankan fungsi pemformatan pada (N, A, P) untuk menghasilkan blokblok B0, B1, …, Br. 3. Untuk i = 1 sampai dengan r, lakukan Yi = CIPHK(Bi ⊕ Yi-1). 4. T = MSBTlen(Yr). 5. Jalankan fungsi pembangkitan counter untuk membangkitkan blokblok counter Ctr0, Ctr1, …, Ctrm dengan m = ⎡Plen / 128⎤ 6. Untuk j = 0 sampai dengan m, lakukan Sj = CIPHK(Ctrj). 7. S = S1 || S2 || …|| Sm. MSBPlen(S))
nonce N
•
associated data A
•
ciphertext C dengan panjang Clen bit
¾ Output:
2. Tetapkan Y0 = CIPHK(B0).
8. C = (P ⊕ (T ⊕ MSBTlen(S0)).
•
||
Input data terhadap proses generationencryption adalah valid nonce, valid payload, dan valid associated data, yang dibentuk berdasarkan fungsi pemformatan. Mekanisme CBC-MAC diterapkan pada data terformat untuk membangkitkan sebuah MAC, dengan panjang seperti yang telah disyaratkan.
•
payload P atau INVALID
¾ Langkah-langkah: 1. Jika Clen < Tlen, maka kembalikan INVALID. 2. Jalankan fungsi pembangkitan counter untuk membangkitkan blokblok counter Ctr0, Ctr1,…, Ctrm, dengan m = ⎡(Clen - Tlen) / 128⎤ 3. Untuk j = 0 sampai dengan m, lakukan Sj = CIPHK(Ctrj). 4. S = S1 || S2 || …|| Sm. 5. P = MSBClen-Tlen(C) ⊕ MSBClen-Tlen(S). 6. T = LSBTlen(C) ⊕ MSBTlen(S0).
7. Jika N, A, atau P tidak valid, maka
kembalikan INVALID, selainnya lakukan fungsi pemformatan pada (N, A, P) untuk menghasilkan blok-blok B0, B1, …, Br.
8. Tetapkan Y0 = CIPHK(B0).
10
Gambar 6 Proses generation-encryption CCM. 9. Untuk i = 1 sampai dengan r, lakukan Yj = CIPHK(Bi ⊕ Yi-1). 10. Jika T ≠ MSBTlen(Yr), maka kembalikan INVALID, selainnya kembalikan P. Input proses decryption-verification adalah ciphertext, string associated data, dan nonce yang digunakan dalam membangkitkan ciphertext. Dekripsi modus counter diterapkan pada ciphertext untuk menghasilkan MAC yang bersesuaian dan payload. Jika nonce, string associated data, dan payload adalah valid, maka string tersebut dibentuk kedalam blok-blok berdasarkan fungsi pemformatan, dan mekanisme CBC-MAC diterapkan untuk memverifikasi MAC. Jika verifikasi berhasil, proses decryption-verification mengembalikan payload sebagai output; jika tidak, maka hanya pesan error INVALID yang akan dikembalikan. Jika pesan error ini muncul, payload P dan MAC T tidak akan diketahui. Ilustrasi proses decryption-verification dapat dilihat pada Gambar 7.
METODOLOGI Untuk mengetahui kinerja algoritma CCM sebagai suatu modus operasi sandi blok dengan fungsi enkripsi terotentikasi, metodologi penelitian yang dilakukan meliputi: 1. Metode telaah pustaka bagi analisis algoritma CCM. 2. Metode pendekatan analisis uji hasil implementasi AES-CCM dalam Matlab versi 6.5 bagi uji implementasi generation-encryption dan decryptionverification. Analisis ini mencakup uji running time hasil implementasi serta hubungannya terhadap ukuran payload dan associated data yang berbeda antara proses generation-encryption dan decryption-verification algoritma AESCCM. 3. Metode pendekatan analisis uji hasil implementasi AES-ECB (Giri 2004) bagi uji implementasi enkripsi dan dekripsi. Analisis ini mencakup uji running time hasil implementasi serta hubungannya terhadap ukuran pesan yang berbeda antara proses enkripsi dan dekripsi algoritma AES-ECB.
11
Gambar 7 Proses decryption-verification CCM. Spesifikasi Implementasi Implementasi dirancang dengan menggunakan perangkat keras dan lunak sebagai berikut: Perangkat keras: 1. Prosesor Intel(R) Pentium(R) 4 2.00GHz 2. Memori 256 MB 3. Kapasitas harddisk 80 GB Perangkat lunak: 1. Sistem operasi Windows XP 2. Bahasa pemrograman Matlab versi 6.5 Deskripsi Umum Implementasi Implementasi akan dirancang dengan dua tujuan utama yaitu: 1. Menyediakan fasilitas uji running time bagi proses generation-encryption dan decryption-verification algoritma CCM. 2. Menyediakan fasilitas untuk merekam hasil uji implementasi tahapan proses algoritma CCM baik generationencryption, decryption-verification, maupun keduanya. Bentuk rekaman hasil
uji implementasi disajikan dalam bentuk file teks. Spesifikasi Uji Implementasi Uji implementasi AES-CCM dilakukan dengan menggunakan objek kajian file payload berupa teks dengan 32 ukuran berbeda dalam selang 0 byte sampai dengan 1000 byte. Selain itu, terkait dengan fungsi pemformatan input, dalam uji implementasi ini digunakan beberapa nilai a, yaitu a = 0, 8, 16, 24, dan 32 oktet, sedangkan n ditetapkan dengan nilai 7 oktet. Panjang MAC (Tlen) dipilih 64 bit, atau dengan kata lain t bernilai 8 oktet. Pengukuran running time dilakukan untuk setiap perlakuan. Ulangan setiap perlakuan dilakukan sebanyak 10 kali. Untuk uji implementasi AES-ECB juga dilakukan dengan menggunakan 32 ukuran file teks yang berbeda dalam selang 1 byte sampai dengan 1000 byte sebagai objek kajian, dilakukan dengan pengukuran running time dari setiap perlakuan. Ulangan setiap perlakuan dilakukan sebanyak 10 kali.
12
HASIL DAN PEMBAHASAN Analisis Algoritma CCM Algoritma CCM diajukan oleh Doug Whiting, Russ Housley, dan Niels Ferguson pada tahun 2002. Algoritma CCM bergantung pada pemilihan algoritma blok kunci simetrik yang mendasarinya. Dengan demikian, algoritma CCM merupakan sebuah modus operasi algoritma blok. Algoritma blok yang digunakan mendasari CCM merupakan algoritma yang sudah diakui dengan ukuran blok 128 bit. Sampai dengan sekarang satusatunya algoritma blok 128 bit yang sudah diakui adalah algoritma AES. Seperti modus operasi lainnya, sebuah kunci rahasia untuk algoritma blok tersebut harus dibangkitkan sebelumnya di antara pihak-pihak yang akan berhubungan. Kunci dibangkitkan acak secara seragam, atau mendekati acak secara seragam sehingga setiap kemungkinan kunci dibangkitkan secara (hampir) equally likely. Sebagai tambahan, kunci harus dibangun oleh suatu metode manajemen kunci yang terjamin. Kunci harus dijaga kerahasiaannya dan hanya digunakan untuk modus CCM. Pada keadaan minimum, sifat keamanan CCM tergantung pada kerahasiaan kunci. AES merupakan algoritma kriptografi yang didesain untuk beroperasi pada blok pesan 128 bit dan menggunakan variasi blok kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Variasi ukuran kunci mengakibatkan pemilihan penggunaan kunci sulit untuk diprediksi oleh kriptanalis. Ukuran kunci minimum yang mencapai 128 bit mengakibatkan range minimum bagi ruang kunci sebesar 2128, dibandingkan dengan DES yang menggunakan 56 bit kunci, ruang kunci sebesar 256 mengindikasikan AES lebih tahan terhadap serangan exhaustive key search. AES didesain untuk melakukan proses penyandian secara rahasia dengan tingkat keamanan tak linear dengan kompleksitas waktu seefisien mungkin melalui penggunaan proses-proses transformasi yang ringan dalam implementasi seperti XOR, pergeseran (shift), dan subtitusi. Akan tetapi, invers (proses kebalikan) dari proses-proses tersebut terkadang memiliki efisiensi yang rendah, akibatnya proses dekripsi AES menjadi lambat dalam implementasi. Hal ini ditunjukkan dalam hasil penelitian Giri (2004).
Meskipun demikian, kekurangan ini dapat dihindari oleh algoritma CCM. CCM hanya memerlukan fungsi enkripsi AES baik dalam proses CCM generation-encryption maupun dalam proses CCM decryption-verification. Dengan hanya menggunakan fungsi enkripsi AES dapat mengarah ke penghematan ukuran program CCM atau ukuran perangkat keras (jika CCM diimplementasikan dalam perangkat keras). Data yang dilindungi CCM terdiri dari tiga elemen, yaitu: Nonce (N), Payload (P), dan Associated Data (A). Ketiga elemen data ini dibentuk dengan suatu cara yang unik menggunakan sebuah fungsi pemformatan menjadi rangkaian tak-kosong dari blok data input lengkap. Selain fungsi pemformatan, CCM juga memerlukan suatu fungsi pembangkitan counter. Nilai nonce sebaiknya tak-berulang dengan pengertian bahwa pada sembarang dua pasangan data yang berbeda yang dilindungi oleh CCM selama umur hidup kunci akan diberikan nonce yang berbeda. Sebagai akibatnya, nonce menentukan suatu invokasi (yaitu suatu operasi sandi blok) dalam CCM. Dengan mengasumsikan bahwa tidak terdapat associated data, atau kalaupun ada, associated data tersebut bernilai kecil, maka dapat dikatakan bahwa jumlah total invokasi dalam CCM tidak akan melebihi 261. Dari fungsi pemformatan dapat dilihat bahwa parameter nonce n menentukan parameter q, yaitu panjang oktet dari representasi biner panjang oktet payload, karena q = 15 - n. Parameter q menentukan panjang maksimum dari payload dengan p < 28q, maka P terdiri atas oktet-oktet kurang dari 28q, yaitu kurang dari 28q-4 blok-blok 128-bit. Nilai n menentukan jumlah maksimum nonce yang berbeda, yaitu 28n. Dengan asumsi bahwa associated data bernilai kecil, maka semakin besar nonce akan mengakibatkan panjang maksimum dari payload yang bisa diproteksi CCM menjadi semakin kecil. Namun semakin kecil nonce, maka akan semakin kecil jumlah maksimum nonce yang berbeda. CCM pada dasarnya menggabungkan dua algoritma kriptografik. Mekanisme pertama adalah CBC-MAC yang memberikan jaminan otentikasi. Jaminan ini berarti musuh tidak dapat dengan mudah memalsukan valid ciphertext tanpa adanya akses terhadap kunci rahasia.
13
Algoritma CBC-MAC membangkitkan sebuah nilai MAC yang merupakan nilai otentikasi dari suatu pesan. Suatu nilai MAC memberikan jaminan otentisitas yang lebih kuat daripada suatu nilai checksum atau error detecting code. Verifikasi dari suatu (nonkriptografik) checksum atau error detecting code dirancang hanya untuk mendeteksi modifikasi data yang bersifat kebetulan (accidental), sementara verifikasi dengan MAC, seperti yang digunakan pada CCM, dirancang untuk mendeteksi modifikasi data yang bersifat kebetulan, maupun bersifat disengaja, serta dilakukan oleh pihak yang tak punya kuasa. Proses CCM generation-encryption akan mengekspansi panjang payload dengan panjang MAC. MAC yang dibangkitkan dalam CCM dinyatakan dengan T. Panjang bit T, dinyatakan dengan Tlen, merupakan suatu parameter yang ditetapkan untuk semua proses CCM dengan kunci yang diberikan. Nilai Tlen yang semakin besar memberikan jaminan otentisitas yang semakin besar pula. Namun, dengan semakin besar nilai Tlen maka semakin besar pula ruang penyimpanan untuk ciphertext. Meskipun fungsi pemformatan yang digunakan dalam penelitian ini memungkinkan Tlen untuk sembarang bilangan bulat kelipatan 16 antara 32 dan 128, namun nilai Tlen yang kurang dari 64 seharusnya tidak digunakan tanpa analisis yang cermat dari resiko penerimaan data takotentik sebagai otentik. Secara khusus nilai Tlen yang lebih kecil dari 64 sebaiknya tidak digunakan kecuali lingkungan protokol atau aplikasi pengontrolan dengan cukup membatasi jumlah kejadian proses decryptionverification bisa mengembalikan pesan error INVALID, untuk semua implementasi dengan menggunakan kunci yang diberikan. Suatu batasan pada jumlah kejadian dengan output adalah pesan error INVALID sebelum masa hidup kunci berakhir untuk semua implementasi proses decryption-verification dengan menggunakan kunci tersebut dinyatakan sebagai MaxErrs. Dengan cara yang sama, untuk nilai Tlen yang lebih besar, lingkungan protokol atau aplikasi pengontrolan sebaiknya membatasi jumlah input yang tak-otentik yang mungkin dihadirkan pada proses decryption-verification sampai pada jumlah sepadan dengan nilai dari data yang dilindungi. Probabilitas tertinggi yang dapat diterima untuk sebuah pesan yang
tak-otentik dapat melewati proses decryptionverification ini dinyatakan sebagai Risk. Berdasarkan kedua hal tersebut maka nilai Tlen harus memenuhi pertidaksamaan berikut ini: Tlen ≥ log2 (MaxErrs / Risk) (Dworkin 2004). Sebagai contoh, misalkan sebuah sistem tidak akan menghasilkan pesan INVALID lebih dari 1024 pesan sebelum memberhentikan kunci (yaitu MaxErrs = 210), dan bahwa para pengguna dapat mentolerir sekitar satu dari satu juta kesempatan sistem tersebut dapat menerima pesan tak-otentik (yaitu Risk = 2-20). Dalam hal ini, bisa digunakan nilai Tlen terendah, yaitu 32. Namun, jika MaxErrs = 232 dan Risk = 2-32, maka nilai Tlen sekurang-kurangnya adalah 64. Untuk kebanyakan aplikasi, Whiting et al. (2002) merekomendasikan penggunaan Tlen sekurang-kurangnya adalah 64. Penelitian ini tidak dilakukan dalam suatu aplikasi pengontrolan tertentu sehingga sulit untuk menentukan parameter Risk dan MaxErrs. Oleh karenanya, dalam penelitian ini pun dipilih nilai minimum Tlen yang direkomendasikan yaitu 64 bit sehingga dapat memberikan jaminan otentisitas yang cukup serta ekspansi pesan pun tidak terlalu besar. Mekanisme kedua dalam CCM adalah modus Counter (CTR) yang memberikan jaminan kerahasiaan. Jaminan ini berarti musuh tidak dapat dengan mudah mengambil sembarang informasi dari ciphertext tanpa adanya akses terhadap kunci rahasia. Tujuan utama seorang musuh dalam hal ini adalah untuk membedakan ciphertext dari “random gibberish”, yaitu bitstring yang dipilih secara acak seragam dari kumpulan semua bitstring yang mungkin dengan panjang tertentu. Karena nilai nonce selalu berbeda, maka blok pertama dari data terformat dan blok-blok counter akan selalu baru. Suatu payload yang sama dengan kunci rahasia yang sama pun akan menghasilkan ciphertext yang berbeda jika nonce yang digunakan juga berbeda. Dengan demikian, output ciphertext akan sangat menyerupai “random gibberish” dan pada modus CTR ini tidak terjadi collision sehingga birthday attack dapat dihindari. Berbeda keadaannya jika nonce yang digunakan bernilai sama, misal N0, untuk beberapa aplikasi CCM dengan menggunakan kunci yang berbeda. Meet-in-the-middle
14
attack atau precomputation attack dapat terjadi di sini. Misalkan musuh memilih nonce tertentu N0 dan memilih 264 kunci K yang berbeda secara acak. Diasumsikan musuh mengetahui 16 byte pertama dari pesan, maka musuh dapat dengan mudah menghitung suatu table entry dari masing-masing nilai kunci, membangkitkan pasangan dalam bentuk (K,S1). Musuh lalu pengawasi pengiriman pesan dan collision untuk S1 diharapkan terjadi setelah memeriksa 264 pesan yang dikirim. Dengan cara ini, kunci yang digunakan dapat diketahui oleh musuh. Langkah yang ditempuh adalah sebanyak 264 dan bukan sebanyak ukuran ruang kunci yaitu 2128. Dua senjata yang bisa digunakan untuk melawan serangan ini adalah dengan menggunakan ukuran kunci yang lebih besar serta dengan menggunakan nilai nonce yang selalu baru. Modus CTR tidak hanya digunakan untuk mengenkripsi payload tetapi juga mengenkripsi MAC. Dengan mengenkripsi MAC maka collision attack pada proses CBCMAC juga dapat dihindari dan musuh tidak akan memperoleh informasi apapun mengenai hasil CBC-MAC. Pada proses CCM decryption-verification, seluruh atau sebagian payload tidak boleh dilepaskan sampai nilai MAC telah berhasil diverifikasi. Hal ini dapat mencegah terjadinya chosen-ciphertext attack yang akan mengambil informasi berharga dari kueri proses decryption-verification yang tak-valid. Dari segi efisiensi, dapat dengan mudah dihitung bahwa penggunaan CCM untuk mengenkripsi dan mengotentikasi payload kosong, tanpa associated data, membutuhkan dua invokasi. Untuk setiap blok associated data yang ditambahkan dibutuhkan satu invokasi, sedangkan untuk setiap blok payload yang ditambahkan dibutuhkan dua invokasi. Kasus terburuk adalah ketika payload dan associated data masing-masing hanya terdiri dari satu oktet. Pada kasus ini, CCM membutuhkan lima invokasi. Dari struktur CCM yang menggabungkan modus CBC-MAC dengan modus CTR dapat dilihat bahwa CCM bersifat not fully parallelizable. Pemparalelan tidak dapat dilakukan pada proses CBC-MAC namun mungkin untuk dilakukan pada proses CTR. Hal ini bisa dikatakan sebagai salah satu kekurangan CCM. Meskipun demikian, CCM mempunyai kelebihan dari sisi lain. Para perancang CCM tidak akan memberlakukan
paten terhadap algoritma ini. Seluruh hak kekayaan intelektual terhadap algoritma CCM dilepaskan kepada publik. Dari beberapa hal yang diuraikan di atas dapat diketahui bahwa jika dipandang sebagai modus operasi algoritma blok, CCM memberikan jaminan keamanan yang lebih baik dari modus operasi ECB seperti yang diterapkan pada penelitian Giri (2004) terhadap algoritma blok AES karena selain jaminan kerahasiaan, CCM juga memberikan jaminan otentikasi pesan. Untuk dua blok plaintext yang sama dengan kunci yang diberikan, modus ECB akan menghasilkan blok ciphertext yang sama. Dengan alasan ini, ECB tidak baik digunakan untuk mengenkripsi plaintext berukuran panjang ataupun untuk suatu aplikasi yang kuncinya digunakan berulang-ulang untuk mengenkripsi lebih dari satu pesan. Jika hal ini dilakukan maka musuh dapat dengan mudah mematahkannya. Namun dari segi kecepatan, secara teoritis dapat dikatakan bahwa ECB lebih baik dari CCM karena dalam ECB hanya terdapat satu proses enkripsi algoritma blok dan tidak terdapat chaining di dalamnya, sedangkan dalam CCM terjadi dua proses yaitu otentikasi dengan CBC-MAC dan enkripsi dengan CTR, serta di dalam CBCMAC terdapat proses chaining. Selain itu, struktur ECB yang memungkinkan pemrosesan secara paralel semakin dapat meningkatkan kecepatan algoritma ECB. Berdasar analisis dapat dikatakan bahwa CCM didesain untuk mendapatkan kerahasiaan dan otentikasi pesan secara simultan menggunakan sebuah kunci rahasia. Kebutuhan akan hanya fungsi forward cipher dari algoritma blok yang mendasari CCM menjadikan ukuran kode implementasi CCM yang lebih kecil. Meskipun demikian, beberapa timbal balik kinerja pada prosesproses dalam CCM harus dipikirkan terlebih dahulu sebelum mengaplikasikan algoritma ini. Semakin besar nonce, maka akan semakin kecil panjang maksimum dari payload yang bisa diproteksi CCM. Semakin kecil nonce, maka akan semakin kecil jumlah maksimum nonce yang berbeda. Semakin besar nilai Tlen akan memberikan jaminan otentisitas yang semakin besar pula. Namun, dengan semakin besar nilai Tlen maka semakin besar pula ruang penyimpanan untuk ciphertext. Berikut ini adalah evaluasi algoritma CCM berdasarkan keadaan kompleksitas waktu untuk waktu terburuk, dinotasikan dengan O
15
(big O), yang dilakukan untuk menduga besarnya sumber daya waktu yang dibutuhkan untuk sembarang ukuran input. a. Analisis Algoritma Proses GenerationEncryption CCM Diagram alir proses generation-encryption CCM dapat dilihat pada Gambar 8. Langkah untuk melakukan proses generationencryption CCM dengan didasarkan pada algoritma blok AES adalah: 1. Pemformatan input nonce, associated data, dan payload 2. Ekspansi kunci 3. Pembangkitan nilai otentikasi menggunakan algoritma CBC-MAC berdasarkan algoritma blok AES 4. Pembangkitan blok-blok counter 5. Enkripsi nilai otentikasi (hasil pada langkah nomor 3) dan payload menggunakan algoritma blok AES dengan modus operasi CTR sehingga didapatkan ciphertext. Waktu eksekusi pada langkah 1 dan 2 adalah konstan (misal α) karena tidak dipengaruhi ukuran input. Langkah 3 (misal waktu eksekusi = ε1) dipengaruhi jumlah blok data terformat, sehingga untuk input berukuran n1 blok diperlukan waktu ε1n1. Langkah 4 (misal waktu eksekusi = ε2) dipengaruhi jumlah blok payload, sehingga untuk payload berukuran n2 blok diperlukan waktu ε2(n2+1). Langkah 5 (misal waktu eksekusi = ε3) dipengaruhi jumlah blok counter hasil langkah 4 sehingga diperlukan waktu sebesar ε3(n2+1). Secara keseluruhan, waktu eksekusi generation-encryption CCM adalah ε1n1 + ε2(n2+1) + ε3(n2+1) + α, dengan ε1, ε2, ε3 dan α adalah suatu konstanta; n1 adalah jumlah blok data terformat dan n2 adalah jumlah blok counter. Notasi О untuk kasus terburuk proses generation-encryption CCM adalah:
Gambar 8 Diagram alir proses generationencryption CCM.
Gambar 9 Diagram alir proses decryptionverification CCM.
b. Analisis Algoritma Proses DecryptionVerification CCM
1. Pembangkitan blok-blok counter 2. Ekspansi kunci 3. Dekripsi ciphertext menggunakan algoritma blok AES dengan modus operasi CTR sehingga didapatkan payload 4. Pemformatan input nonce, associated data, dan payload 5. Pembangkitan nilai otentikasi menggunakan algoritma CBC-MAC berdasarkan algoritma blok AES untuk kemudian dilakukan verifikasi dengan nilai otentikasi yang terdapat pada ciphertext sehingga diperoleh payload terverifikasi.
Diagram alir proses decryptionverification CCM dapat dilihat pada Gambar 9. Langkah untuk melakukan proses decryption-verification CCM dengan didasarkan pada algoritma blok AES adalah:
Langkah 1 (misal waktu eksekusi = δ1) dipengaruhi jumlah blok input ciphertext, sehingga untuk input berukuran n1 blok (setelah dikurangkan dengan panjang nilai otentikasi yang terdapat pada ciphertext)
GE(CCM) = ε1n1 + ε2(n2+1) + ε3(n2+1) + α Didapatkan kompleksitas GE(CCM) dalam lingkup О(n).
adalah
16
diperlukan waktu δ1(n1+1). Waktu eksekusi pada langkah 2 dan 4 adalah konstan (misal β) karena tidak dipengaruhi ukuran input. Langkah 3 (misal waktu eksekusi = δ2) dipengaruhi jumlah blok counter hasil langkah 1 sehingga diperlukan waktu δ2(n1+1). Langkah 5 (misal waktu eksekusi = δ3) dipengaruhi jumlah blok data terformat, sehingga untuk input berukuran n3 blok diperlukan waktu δ3n3. Secara keseluruhan, waktu eksekusi decryption-verification CCM adalah δ1(n1+1) + δ2(n1+1) + δ3n3 + β, dengan δ1, δ2, δ3, dan β adalah suatu konstanta; n1 adalah jumlah blok counter dan n2 adalah jumlah blok data terformat. Notasi О untuk kasus terburuk proses decryption-verification CCM adalah: DV(CCM) = δ1(n1+1) + δ2(n1+1) + δ3n3 + β Didapatkan kompleksitas DV(CCM) adalah dalam lingkup О(n). Analisis Uji Implementasi Antarmuka implementasi diberikan pada Lampiran 1. Contoh rekaman uji implementasi deskripsi tahapan proses generation-encryption dan decryptionverification diberikan pada Lampiran 2. Uji implementasi CCM dilakukan dengan lima macam percobaan. Setiap percobaan mengambil 32 ukuran file payload berupa teks sebagai objek kajian dalam selang 0 byte sampai dengan 1000 byte, dengan n ditetapkan dengan nilai 7 serta t ditetapkan dengan nilai 8. Untuk tiap percobaan diberikan nilai a yang berbeda, secara berturut-turut yaitu a = 0, 8, 16, 24, dan 32. Rekapitulasi setiap hasil pengujian secara lengkap diberikan pada Lampiran 3-12. Tabel 5 berikut memperlihatkan 32 ukuran payload yang dikaji pada penelitian ini serta ukuran blok counter yang dibangkitkan untuk setiap ukuran payload. Ukuran terkecil blok counter yang dibangkitkan adalah 16 byte, yaitu 1 blok counter 128-bit. Ukuran terbesar blok counter adalah 1024 byte, yaitu 64 blok counter 128-bit. Dengan demikian, jumlah invokasi terbesar pada modus CTR adalah sebanyak 26. Dari setiap percobaan yang dilakukan didapatkan rekapitulasi uji hasil implementasi proses generation-encryption dan decryptionverification yang tercantum pada Tabel 6-10. Masing-masing tabel memuat rekapitulasi rataan running time generation-encryption
(GE) dan decryption-verification (DV) terhadap ukuran data terformat yang berbeda, yaitu payload dan associated data yang telah dibentuk oleh fungsi pemformatan. Tabel 5 Ukuran payload dan ukuran blok counter yang dibangkitkan Payload Blok Counter (byte) (byte) 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 336 352 368 384 400 416 432 448 464 480 496 512 528 544 560 576 592 608 624 640 656 672 688 704 720 736 752 768 784 800 816 832 848 864 880 896 912 928 944 960 976 1000 1024 Tabel 6 Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 0, n = 7, dan t = 8 Data Rataan Rataan Terformat GE DV (byte) (detik) (detik) 16 0.1530 0.1640 48 0.4448 0.4524 80 0.7558 0.7873 112 1.0537 1.0923 144 1.3700 1.3893 176 1.6768 1.6867 208 1.9729 2.0158
17
Lanjutan Tabel 6 Data Rataan Terformat GE (byte) (detik) 240 2.2437 272 2.5514 304 2.8637 336 3.1560 368 3.4960 400 3.8084 432 4.0902 464 4.3848 496 4.6915 528 4.9940 560 5.2835 592 5.5748 624 5.8981 656 6.2266 688 6.5049 720 6.7982 752 7.1057 784 7.4118 816 7.7323 848 8.0192 880 8.3427 912 8.5839 944 8.9451 976 9.2229 1024 9.6444
Rataan DV (detik) 2.3128 2.6058 2.9056 3.2532 3.5248 3.8179 4.0704 4.4694 4.7481 5.0215 5.3330 5.6638 5.9440 6.2405 6.5608 6.8346 7.1093 7.5480 7.8020 8.0347 8.3558 8.6721 8.8814 9.2166 9.6682
Dari Tabel 6 dapat dilihat bahwa dengan a = 0, ukuran terkecil data terformat adalah 16 byte, yakni 1 blok 128-bit, sedangkan ukuran terbesar data terformat adalah 1024 byte, yakni 64 blok 128-bit. Jumlah invokasi pada CBC-MAC dalam percobaan yang pertama ini adalah 26. Dengan demikian, jumlah total invokasi pada percobaan pertama adalah sebanyak 2 x 26 = 27. Jumlah ini masih jauh lebih kecil dari batas jumlah invokasi 261. Tabel 7 Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 8, n = 7, dan t = 8 Data Rataan Rataan Terformat GE DV (byte) (detik) (detik) 32 0.2237 0.2250 64 0.5362 0.5174 96 0.8395 0.8455 128 1.1202 1.1722 160 1.4746 1.4910 192 1.7540 1.8048 224 2.0260 2.0562 256 2.3621 2.3799
Lanjutan Tabel 7 Data Rataan Terformat GE (byte) (detik) 288 2.6616 320 2.9515 352 3.2626 384 3.6008 416 3.8703 448 4.1820 480 4.5212 512 4.7732 544 5.0709 576 5.4487 608 5.6966 640 5.9291 672 6.2465 704 6.5932 736 6.9783 768 7.2356 800 7.5244 832 7.8768 864 8.0953 896 8.4724 928 8.7315 960 9.0656 992 9.4285 1040 9.8250
Rataan DV (detik) 2.7046 3.0102 3.2933 3.6287 3.8854 4.2202 4.5092 4.8238 5.1144 5.4636 5.7556 6.0661 6.3903 6.6003 6.9285 7.3079 7.5972 7.9417 8.1593 8.4550 8.8235 9.1549 9.3160 9.8731
Tabel 7 menunjukkan bahwa dengan a = 8, ukuran terkecil data terformat adalah 32 byte, yaitu 2 blok 128-bit, sedangkan ukuran terbesar data terformat adalah 1040 byte, yakni 65 blok 128-bit. Jumlah invokasi pada CBC-MAC dalam percobaan kedua ini adalah 64. Dengan demikian, jumlah total invokasi pada percobaan kedua adalah sebanyak 129, atau dengan kata lain bertambah 1 invokasi dibandingkan pada percobaan pertama. Tabel 8 Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 16, n = 7, dan t = 8 Data Rataan Rataan Terformat GE DV (byte) (detik) (detik) 48 0.2968 0.3060 80 0.6073 0.5966 112 0.9109 0.9212 144 1.2050 1.2329 176 1.5101 1.5344 208 1.8296 1.8331 240 2.0966 2.1528 272 2.4179 2.4428 304 2.7136 2.7618
18
Lanjutan Tabel 8 Data Rataan Terformat GE (byte) (detik) 336 3.0143 368 3.3078 400 3.6358 432 3.9497 464 4.2106 496 4.5384 528 4.8027 560 5.1751 592 5.4843 624 5.7447 656 6.0599 688 6.3164 720 6.6757 752 6.9567 784 7.3128 816 7.5224 848 7.8518 880 8.1506 912 8.5154 944 8.8087 976 9.1149 1008 9.3991 1056 9.7745
Rataan DV (detik) 3.0283 3.3730 3.6222 3.9393 4.2576 4.6134 4.8374 5.1542 5.4841 5.7250 6.0949 6.3130 6.6866 6.9662 7.2841 7.5819 7.8838 8.2336 8.6321 8.8426 9.1055 9.3947 9.8277
Tabel 9 Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 24, n = 7, dan t = 8 Data Rataan Rataan Terformat GE DV (byte) (detik) (detik) 48 0.3067 0.2937 80 0.6050 0.6112 112 0.9032 0.936 144 1.2099 1.2457 176 1.4988 1.5502 208 1.7991 1.8614 240 2.1025 2.1415 272 2.4111 2.4538 304 2.743 2.7581 336 2.9909 3.0594 368 3.3047 3.3813 400 3.6326 3.6703 432 3.9328 3.9648 464 4.2205 4.2395 496 4.5306 4.5496 528 4.8211 4.8651 560 5.1219 5.1643 592 5.4241 5.4621 624 5.7501 5.7926 656 6.0302 6.1002
Lanjutan Tabel 9 Data Rataan Terformat GE (byte) (detik) 688 6.3412 720 6.6566 720 6.6566 752 6.9259 784 7.2609 816 7.5284 848 7.8493 880 8.1737 912 8.5073 944 8.7816 976 9.0529 1008 9.3533 1056 9.8392
Rataan DV (detik) 6.3832 6.6721 6.6721 6.9949 7.2826 7.5531 7.9250 8.2350 8.4967 8.8515 9.1209 9.4697 9.9103
Dari Tabel 8 dan Tabel 9 dapat ditunjukkan bahwa dengan a = 16 dan a = 24, ukuran terkecil data terformat adalah 48 byte, yaitu 3 blok 128-bit, sedangkan ukuran terbesar data terformat adalah 1056 byte, yakni 66 blok 128-bit. Jumlah invokasi pada CBC-MAC dalam percobaan ketiga dan keempat ini adalah 66. Dengan demikian, jumlah total invokasi pada percobaan ketiga dan keempat adalah sebanyak 130, atau dengan kata lain bertambah 2 invokasi dibandingkan pada percobaan pertama. Rekapitulasi percobaan kelima ditunjukkan pada Tabel 10. Dengan a = 32, ukuran terkecil data terformat adalah 64 byte, yaitu 4 blok 128-bit, sedangkan ukuran terbesar data terformat adalah 1072 byte, yakni 67 blok 128-bit. Jumlah invokasi pada CBC-MAC dalam percobaan ini adalah 67. Dengan demikian, jumlah total invokasi adalah sebanyak 131, atau dengan kata lain bertambah 3 invokasi dibandingkan pada percobaan pertama. Tabel 10 Rekapitulasi rataan running time generation-encryption dan decryption-verification dengan a = 32, n = 7, dan t = 8 Data Rataan Rataan Terformat GE DV (byte) (detik) (detik) 64 0.3828 0.3856 96 0.6706 0.6845 128 0.9739 1.0070 160 1.2893 1.2979 192 1.5734 1.5915 224 1.8908 1.8877 256 2.1794 2.2312
19
Rataan GE (detik) 2.4826 2.7880 3.1027 3.4055 3.7178 4.0183 4.2970 4.5917 4.9081 5.1772 5.5091 5.8372 6.1361 6.4151 6.7278 7.0321 7.3289 7.6376 7.9047 8.2262 8.5469 8.8271 9.1572 9.4762 9.9238
Rataan DV (detik) 2.5327 2.8197 3.1359 3.4405 3.7471 4.0485 4.3266 4.6505 4.9334 5.2415 5.5225 5.8624 6.1662 6.4350 6.7701 7.0690 7.3249 7.6719 7.9674 8.2748 8.5981 8.8509 9.2565 9.4622 9.9819
Berdasar Tabel 6-10, dengan meningkatnya ukuran file payload, running time eksekusi proses uji baik generationencryption maupun decryption-verification mengalami peningkatan. Hal ini terjadi karena semakin besar ukuran payload maka ukuran data terformat dan blok counter yang dibangkitkan menjadi semakin besar pula. Gambar 10 adalah grafik hubungan antara proses generation-encryption dan decryptionverification terhadap ukuran data terformat untuk percobaan pertama, yaitu dengan a = 0. Dari grafik tersebut dapat dikatakan bahwa nilai running time proses generationencryption dan decryption-verification adalah sama, dalam artian tidak terdapat beda atau selisih nilai running time yang signifikan di antara kedua proses tersebut. Hal ini dikarenakan CCM hanya memerlukan fungsi enkripsi dari AES baik untuk CCM generation-encryption maupun CCM decryption-verification, sehingga efisiensi yang rendah pada proses kebalikan AES yang memungkinkan proses dekripsi menjadi lambat dalam implementasi seperti yang sudah diuraikan sebelumnya, dapat dihindari.
Dari keempat percobaan lainnya juga dapat dilihat keadaaan yang tidak berbeda, yaitu nilai running time proses generationencryption dapat dikatakan sama dengan nilai running time proses decryption-verification. Running Time Generation-Encryption dan Decryption-Verification CCM a = 0, n = 7, t = 8 12.00
Rataan Running Tim e (detik)
Lanjutan Tabel 10 Data Terformat (byte) 288 320 352 384 416 448 480 512 544 576 608 640 672 704 736 768 800 832 864 896 928 960 992 1024 1072
Generation-Encryption 10.00
Decryption-Verification
8.00
6.00
4.00
2.00
0.00 16
144
272
400
528
656
784
912
Formatted Data (byte )
Gambar 10 Hubungan running time generation-encryption dan decryption-verification terhadap ukuran data terformat pada percobaan pertama. Dengan adanya penambahan blok associated data (pada percobaan kedua sampai dengan kelima) maka ukuran data terformat semakin besar sehingga menambah jumlah invokasi yang terjadi. Penambahan jumlah invokasi ini mengakibatkan running time proses generation-encryption dan decryption-verification pada percobaan kedua sampai dengan kelima mengalami peningkatan dibandingkan percobaan pertama (dengan a = 0). Gambar 11 memberikan gambaran hubungan antara proses generationencryption dan decryption-verification terhadap ukuran associated data pada kelima percobaan yang dilakukan. Hal lain yang dapat ditunjukkan oleh Tabel 6-10 adalah bahwa meskipun data terformat berukuran sama, dengan nilai a dan payload yang berbeda, misal data terformat berukuran 96 pada Tabel 7 dan Tabel 10, maka running time-nya juga akan berbeda. Hal ini dikarenakan penambahan associated data hanya berpengaruh terhadap jumlah invokasi pada CBC-MAC, sedangkan penambahan ukuran payload akan berpengaruh terhadap jumlah invokasi pada kedua proses CBC-MAC dan CTR. Untuk ukuran payload yang besar dengan ukuran associated data yang kecil sehingga diperoleh data terformat dengan ukuran tertentu akan
20
memerlukan running time yang lebih besar dibandingkan dengan ukuran data terformat yang sama namun dibentuk dari associated data berukuran besar dengan payload berukuran kecil.
Seperti diuraikan sebelumnya bahwa nilai MAC akan mengekspansi panjang ciphertext sehingga panjang ciphertext menjadi sama dengan panjang payload ditambah dengan panjang MAC. Hal ini mengakibatkan CCM memerlukan penyimpanan ciphertext yang lebih besar dari modus operasi algoritma blok lainnya.
Pada percobaan ini dipilih nilai t minimum yang direkomendasikan yaitu sebesar 8.
Running Time Generation-Encryption dan Decryption-Verification CCM 0 ≤ p ≤ 1000, n = 7, t = 8 12.00
Running Time (detik)
10.00
8.00
6.00
4.00
2.00
0.00 0
8
16
24
32
Associated Data (byte ) Generation-Encryption
Decryption-Verification
Gambar 11 Hubungan running time generation-encryption dan decryption-verification terhadap ukuran associated data pada kelima percobaan. Hubungan Panjang MAC pada Ciphertext terhadap Panjang Payload 1.20 1
MAC/Ciphertext
1.00
0.80
0.60
0.40 1/5
0.20
1/9 1/13
1/17 1/21 1/25 1/29 1/33 1/37 1/41 1/45 1/49 1/53 1/57 1/61 1/65 1/69 1/73 1/77 1/81 1/85 1/89 1/93 1/97 1/101 1/105 1/109 1/113 1/117 1/121 1/126
Payload (byte) MAC/Ciphertext
Gambar 12 Hubungan panjang MAC pada ciphertext terhadap panjang payload.
96 0 10 00
92 8
89 6
86 4
83 2
80 0
76 8
73 6
70 4
67 2
64 0
60 8
57 6
54 4
51 2
48 0
44 8
41 6
38 4
35 2
32 0
28 8
25 6
22 4
19 2
16 0
96 12 8
64
0
32
0.00
21
Gambar 12 memperlihatkan hubungan panjang MAC pada ciphertext terhadap panjang payload. Untuk ukuran payload terkecil yaitu 0 byte, ciphertext yang dihasilkan adalah sebesar 8 byte. Dengan kata lain, MAC berada pada seluruh bagian ciphertext. Nilai perbandingan panjang MAC pada ciphertext terus mengalami penurunan seiring dengan pertambahan ukuran payload. Untuk ukuran payload terbesar yaitu 1000 byte, ciphertext yang dihasilkan adalah sebesar 1008 byte. Pada keadaan ini, MAC hanya menempati 0.00793 bagian ciphertext saja. Berdasar hal ini dapat dikatakan bahwa perluasan panjang MAC pada ciphertext ini menjadi semakin kecil dan tidak signifikan. Secara teoritis, pemilihan nilai t yang lebih kecil atau lebih besar tidak akan berpengaruh secara signifikan terhadap running time generation-encryption maupun decryptionverification. Nilai t yang dipilih hanya berpengaruh terhadap panjang pendeknya ukuran blok terakhir hasil proses CBC-MAC yang akan diambil untuk digunakan sebagai nilai MAC. Nilai t terbesar adalah sepanjang blok hasil CBC-MAC tersebut yaitu 16 byte, dan nilai ini memberikan jaminan otentisitas yang lebih besar daripada nilai t = 8 yang digunakan pada penelitian ini. Seperti halnya nilai t = 8, untuk nilai t = 16 akan terjadi perluasan panjang MAC pada ciphertext yang tidak signifikan. Sebagai contoh, untuk ukuran payload 1000 byte, maka MAC hanya menempati 0.01574 bagian dari 1016 byte ciphertext, dan nilai ini akan terus menurun seiring ukuran payload yang bertambah. Oleh karenanya, pemilihan nilai t yang lebih besar sebaiknya dilakukan agar mendapatkan jaminan otentisitas yang lebih besar tanpa perlu mempermasalahkan secara berlebihan terhadap perluasan ciphertext yang akan terjadi. Seperti yang telah diuraikan sebelumnya, dari hasil percobaan dapat dilihat bahwa nilai running time proses generation-encryption dan decryption-verification adalah sama, dalam artian tidak terdapat beda atau selisih nilai running time yang signifikan di antara kedua proses tersebut. Namun untuk menguji kesignifikanan dari beda running time antara proses generation-encryption dengan proses decryption-verification dilakukan analisis lanjut menggunakan uji statistik (IndependentSamples T-Test) dengan asumsi bahwa antara proses generation-encryption dan decryptionverification sebagai dua proses berbeda hanya ditentukan oleh dua peubah bebas, yaitu
ukuran file payload dan associated data yang dieksekusi. Hasil uji statistik disajikan pada Tabel 11 dan Tabel 12. Tabel 11 memperlihatkan rataan running time proses generation-encryption dan decryption-verification dari 160 data untuk masing-masing proses. Tabel 12 memperlihatkan nilai Sig. > 0.05 maka dapat disimpulkan dengan selang kepercayaan 95% proses generation-encryption tidak berbeda nyata dengan decryption-verification. Representasi perbedaan yang tidak nyata antara kedua proses juga digambarkan dengan nilai perbedaan rataan yang hanya mencapai 0.0343630. Tabel 11 Group statistics AES-CCM
Time
Group
N
Mean
Std. Error Mean
GE
160
4.968956
0.2226319
DV
160
5.003319
0.2230973
GE: Generation-Encryption DV: Decryption-Verification Tabel 12 Independent-samples t-test (α=0.05) untuk AES-CCM t-test for Equality of Means t -0.109 degree of freedom (df) 318 Sig.(2-tailed) 0.913 Mean Difference -0.0343630 Std. Error Difference 0.3151783 95% Confidence Interval of the Difference Lower -0.6544613 Upper 0.5857351 Melalui analisis regresi linier berganda pada masing-masing data kedua proses didapatkan koefisien grafik hubungan running time proses generation-encryption maupun proses decryption-verification terhadap ukuran associated data terformat (ADF) dan ukuran payload terformat (PF) yaitu associated data dan payload yang telah dibentuk oleh fungsi pemformatan. Hasil analisis ini ditunjukkan pada Tabel 13 dan Tabel 14.
22
Tabel 13 Koefisien grafik hubungan running time proses generation-encryption terhadap ukuran ADF dan PF Constant Unstandard. Coefficients Std. Error t Sig.
ADF
PF
0.136
0.004
0.009
0.007 19.072 0.000
0.000 25.382 0.000
0.000 987.499 0.000
Tabel 14 Koefisien grafik hubungan running time proses decryption-verification terhadap ukuran ADF dan PF Constant Unstandard. Coefficients Std. Error t Sig.
ADF
PF
0.163
0.004
0.010
0.009 18.839 0.000
0.000 20.443 0.000
0.000 814.964 0.000
Berdasar Tabel 13, secara umum persamaan garis dari grafik hubungan running time proses generation-encryption terhadap ukuran ADF (x1) dan PF (x2) dapat dituliskan sebagai GE(x) = 0.004x1 + 0.009x2 + 0.136. Berdasar Tabel 14, persamaan garis dari grafik hubungan running time proses decryption-verification terhadap ukuran ADF (x1) dan PF (x2) dapat dituliskan sebagai DV(x) = 0.004x1 + 0.010x2 + 0.163. Kedua persamaan garis tersebut dapat digunakan untuk meramalkan running time jika diketahui ukuran associated data dan payload tertentu. Untuk ADF berukuran kecil dan PF berukuran besar dapat diasumsikan nilai running time proses decryption-verification adalah 1.111 kali nilai running time proses generationencryption, sedangkan jika ADF berukuran besar dan PF berukuran kecil, nilai running time proses decryption-verification adalah 1.000 kali nilai running time proses generation-encryption, atau dengan kata lain running time kedua proses tersebut akan bernilai sama. Sebagai pembanding, pada penelitian ini juga dilakukan uji implementasi AES-ECB hasil penelitian Giri (2004) dengan menggunakan 32 ukuran file teks yang berbeda dalam selang 1 byte sampai dengan 1000 byte sebagai objek kajian. Rekapitulasi hasil pengujian AES-ECB secara lengkap diberikan pada Lampiran 13-14. Dari hasil tersebut didapatkan rekapitulasi uji hasil
implementasi proses enkripsi dan dekripsi yang tercantum pada Tabel 15. Tabel 15 Rekapitulasi rataan running time enkripsi dan dekripsi pada AESECB Ukuran Pesan Ukuran Enkripsi Dekripsi Pesan setelah (detik) (detik) (byte) Padding (byte) 1 16 0.0813 0.1061 33 48 0.2437 0.3130 65 80 0.3891 0.5544 97 112 0.5234 0.7796 129 144 0.6779 0.9981 161 176 0.8455 1.1970 193 208 1.0059 1.4504 225 240 1.1410 1.6666 257 272 1.2877 1.8783 289 304 1.4164 2.1053 321 336 1.5737 2.3259 353 368 1.7308 2.5350 385 400 1.9005 2.8058 417 432 2.0444 3.0009 449 464 2.1803 3.1591 481 496 2.3158 3.4720 513 528 2.4771 3.6242 545 560 2.6330 3.8728 577 592 2.7534 4.0662 609 624 2.9295 4.2069 641 656 3.1117 4.5578 673 688 3.2163 4.8092 705 720 3.3743 5.0253 737 752 3.5261 5.2120 769 784 3.6951 5.4139 801 816 3.8221 5.6752 833 848 4.0122 5.8329 865 880 4.1654 6.0700 897 912 4.2883 6.2054 929 944 4.4186 6.3581 961 976 4.5368 6.6797 1000 1008 4.7607 6.9416 Berdasar Tabel 15, dengan meningkatnya ukuran pesan, running time eksekusi proses enkripsi dan dekripsi mengalami peningkatan. Hal ini terjadi karena semakin besar panjang blok pesan maka ukuran iterasi proses yang dilakukan pun akan semakin besar. Untuk menggambarkan fenomena ini, diberikan grafik hubungan antara proses enkripsi dan
23
dekripsi terhadap ukuran pesan pada Gambar 13. Running Time Enkripsi dan Dekripsi AES-ECB 8.00
Enkripsi
Running Time (detik)
7.00
Dekripsi
6.00 5.00 4.00 3.00 2.00 1.00 0.00 16
144
272
400
528
656
784
912
Ukuran File setelah Padding (byte)
Gambar 13 Hubungan running time enkripsidekripsi terhadap ukuran pesan. Dari Gambar 13 dapat dilihat bahwa pada AES-ECB ukuran running time proses dekripsi selalu lebih besar dari running time proses enkripsi dengan margin yang semakin besar seiring membesarnya ukuran pesan. Seperti telah dijelaskan sebelumnya bahwa algoritma kriptografi proses enkripsi AES didesain untuk melakukan proses penyandian secara rahasia melalui penggunaan prosesproses transformasi yang ringan dalam implementasi seperti XOR, pergeseran (shift), dan subtitusi. Akan tetapi, kebalikan dari proses-proses tersebut terkadang memiliki efisiensi yang rendah sehingga memungkinkan proses dekripsi AES menjadi lambat dalam implementasi. Untuk mengetahui besar perbedaan antara proses enkripsi dan dekripsi dilakukan analisis lanjut dengan uji statistik (IndependentSamples T-Test) dengan asumsi bahwa proses enkripsi dan dekripsi adalah dua proses yang berbeda dan hanya ditentukan oleh satu peubah bebas, yaitu ukuran file pesan yang dieksekusi. Hasil uji statistik disajikan pada Tabel 16 dan Tabel 17. Tabel 16 Group statistics AES-ECB
Time
Group
N
Mean
Enkripsi Dekripsi
32 32
2.408687 3.528084
Std. Error Mean 1.4063 2.0598
Tabel 16 memperlihatkan rataan running time proses enkripsi dan dekripsi dari 32 data untuk masing-masing proses. Tabel 17
memperlihatkan nilai Sig. < 0.05 maka dapat disimpulkan dengan selang kepercayaan 95% proses enkripsi berbeda nyata dengan proses dekripsi. Representasi perbedaan yang sangat nyata antara kedua proses juga digambarkan dengan nilai perbedaan rataan yang mencapai 1.119397. Nilai tersebut dapat dikatakan besar karena nilai rataan proses enkripsi dan dekripsi tercakup dalam suatu nilai nyata yang kecil yaitu 2.408687 dan 3.528084. Tabel 17 Independent-samples t-test (α=0.05) untuk AES-ECB t-test for Equality of Means t -2.539 degree of freedom (df) 62 Sig.(2-tailed) 0.014 Mean Difference -1.119397 Std. Error Difference 0.4409169 95% Confidence Interval of the Difference Lower -2.0007772 Upper -0.2380166 Tabel 18 Koefisien grafik hubungan running time proses enkripsi terhadap ukuran file pesan Constant Unstandardized Coefficients Std. Error t Sig.
File Pesan
0.010
0.005
0.006 1.602 0.120
0.000 438.553 0.000
Tabel 19 Koefisien grafik hubungan running time proses dekripsi terhadap ukuran file pesan Unstandardized Coefficients Std. Error t Sig.
Constant
File Pesan
0.016
0.007
0.016 0.987 0.331
0.000 257.631 0.000
Melalui analisis regresi linier pada masing-masing data enkripsi dan dekripsi didapatkan hasil pada Tabel 18 dan Tabel 19. Berdasar Tabel 18, secara umum persamaan garis dari grafik hubungan running time proses enkripsi terhadap ukuran file pesan dapat dituliskan sebagai E(x) = 0.005x + 0.010. Berdasar Tabel 19, persamaan garis dari grafik hubungan running time proses dekripsi terhadap ukuran file pesan dapat
24
dituliskan sebagai D(x) = 0.007x + 0.016, dengan x merupakan peubah bebas yang dalam hal ini adalah ukuran file pesan. Dari kedua persamaan tersebut maka untuk pesan berukuran berukuran besar dapat diasumsikan nilai running time proses dekripsi adalah 1.4 kali nilai running time proses enkripsi. Persamaan garis dari grafik hubungan running time proses enkripsi terhadap ukuran file pesan pada AES-ECB dapat diperbandingkan dengan persamaan garis dari grafik hubungan running time proses generation-encryption dan decryptionverification terhadap ukuran ADF dan PF. Untuk AES-CCM tanpa associated data, dan untuk file pesan berukuran besar dapat diasumsikan nilai running time proses generation-encryption dan decryptionverification pada AES-CCM adalah 1.8 sampai dengan 2.0 kali running time proses enkripsi pada AES-ECB.
KESIMPULAN DAN SARAN Kesimpulan Berdasar analisis, CCM didesain untuk mendapatkan kerahasiaan dan otentikasi pesan secara simultan menggunakan sebuah kunci rahasia. Kebutuhan akan hanya fungsi forward cipher dari algoritma blok yang mendasari CCM menjadikan ukuran kode implementasi CCM yang lebih kecil. Meskipun demikian, beberapa timbal balik kinerja pada proses-proses dalam CCM harus dipikirkan terlebih dahulu sebelum mengaplikasikan algoritma ini. Semakin besar nonce, maka akan semakin kecil panjang maksimum dari payload yang bisa diproteksi CCM. Semakin kecil nonce, maka akan semakin kecil jumlah maksimum nonce yang berbeda. Semakin besar nilai Tlen akan memberikan jaminan otentisitas yang semakin besar pula. Namun, dengan semakin besar nilai Tlen maka semakin besar pula ruang penyimpanan yang harus disediakan bagi ciphertext. Dengan analisis algoritma, didapatkan CCM memiliki kompleksitas pada lingkup O(n). Hal ini berlaku bagi proses generationencryption dan decryption-verification. Bila dipandang sebagai modus operasi algoritma blok, CCM dapat memberikan jaminan keamanan yang lebih baik dari modus operasi ECB. Selain itu, CCM tidak hanya memberikan jaminan kerahasiaan, namun juga
memberikan jaminan otentikasi pesan. Namun dari segi kecepatan, meskipun kedua modus memiliki notasi-О yang sama, modus ECB lebih baik dibandingkan CCM baik untuk proses enkripsi maupun dekripsi. Meskipun demikian, efisiensi yang rendah dari proses kebalikan dalam AES yang memungkinkan proses dekripsi AES menjadi lambat dalam implementasi, dapat dihindari oleh CCM. Melalui analisis uji implementasi menggunakan Matlab 6.5 dan analisis uji statistik (Independent-Samples T-Test), dapat disimpulkan bahwa running time proses CCM generation-encryption tidak berbeda nyata dengan running time proses CCM decryptionverification dengan selang kepercayaan 95%. Melalui analisis regresi, dapat disimpulkan bahwa untuk payload berukuran besar dan tanpa associated data, nilai running time proses generation-encryption dan decryptionverification pada AES-CCM adalah 1.8 sampai dengan 2.0 kali running time proses enkripsi pada AES-ECB. Saran Ruang lingkup penelitian ini dibatasi pada algoritma CCM dengan AES sebagai algoritma blok yang mendasarinya. Penelitian dapat dikembangkan dengan memanfaatkan algoritma blok yang lain dengan panjang blok input 128 bit, seperti algoritma Serpent, Twofish, MARS, dan RC6. Pada penelitian ini, CCM diaplikasikan pada file berbentuk teks. Untuk penelitian selanjutnya dapat dicoba untuk mengaplikasikan CCM pada file berbentuk lain, misalnya file gambar, atau file dokumen seperti Portable Document Format (PDF). Algoritma CCM merupakan salah satu modus enkripsi terotentikasi yang secara simultan mendapatkan kerahasiaan dan otentikasi pesan dengan menggunakan sebuah kunci rahasia. Pada penelitian selanjutnya dapat dikaji modus enkripsi terotentikasi yang lain seperti algoritma EAX, Carter-Wegman Counter (CWC), Helix, dan Galois/Counter Mode (GCM).
DAFTAR PUSTAKA Black J. 2003. Authenticated Encryption. www.cs.colorado.edu [7 Februari 2005]. Cormen TH, Leiserson CE, Rivest RL. 1990. Introduction to Algorithms. Massachusetts-London: The MIT Press.
25
Dworkin M. 2001. Recommendation for Block Cipher Modes of Operation: Methods and Techniques. NIST Special Publication 800-38A. [24 http://csrc.nist.gov/publications/ Maret 2005]. Dworkin M. 2004. Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality. NIST Special Publication 800-38C. http://csrc.nist.gov/publications/ [24 Maret 2005]. Ferguson N, Schneier B. 2003. Practical Cryptography. Indianapolis: Wiley Publishing, Inc. Giri EP. 2004. Analisis Algoritme dan Waktu Enkripsi versus Dekripsi pada Advanced Encryption Standard (AES) [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Jonsson J. 2002. On the Security of CTR + CBC-MAC. http://csrc.nist.gov/ encryption/modes/proposedmodes/ [7 Februari 2005]. Menezes A, Van Oorschot P, Vanstone S. 1996. Handbook of Applied Cryptography. CRC Press Inc. Schneier B. 1996. Applied Cryptography Protocols, Algorithms and Source Code in C. New York: John Wiley & Sons, Inc. Stallings W. 2003. Cryptography and Network Security Principles and Practice. New Jersey: Pearson Education. Whiting D, Housley R, Ferguson N. 2002. Counter with CBC-MAC (CCM). http://csrc.nist.gov/CryptoToolkit/modes/ proposedmodes/ [24 Maret 2005].
LAMPIRAN
27
Lampiran 1 Antarmuka Implementasi
28
Lampiran 2 Rekaman Ilustrasi Tahapan Proses Generation-Encryption dan DecryptionVerification CCM ======= SIMULASI PROSES GENERATION-ENCRYPTION DAN DECRYPTION-VERIFICATION ======= ===== DATA INPUT ===== Key: my puzzlepancake Nonce: abcdefg Associated Data: 1a2b3c4d Payload: Ratna Purnama Sari Deret 6D 79 Deret 61 62 Deret 31 61 Deret 52 61 72 69
Heksadesimal dari 20 70 75 7A 7A 6C Heksadesimal dari 63 64 65 66 67 Heksadesimal dari 32 62 33 63 34 64 Heksadesimal dari 74 6E 61 20 50 75
Key: 65 70 61 6E 63 61 6B 65 Nonce: Associated Data: Payload: 72 6E 61 6D 61 20 53 61
PRAPROCESSING Deret Heksadesimal dari Key Setelah PraProcessing: 6D 79 20 70 75 7A 7A 6C 65 70 61 6E 63 61 6B 65 ===== FUNGSI PEMFORMATAN ===== Blok Nonce Setelah Pemformatan: 5F 61 62 63 64 65 66 67 0 0 0 0 0 0 0 12 Blok Associated Data Setelah Pemformatan: 0 8 31 61 32 62 33 63 34 64 0 0 0 0 0 0 Blok Payload Setelah Pemformatan: 52 61 74 6E 61 20 50 75 72 6E 61 6D 61 20 53 61 72 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ===== FUNGSI PEMBANGKITAN COUNTER Ctr-0: 7 61 62 63 64 65 66 67 0 0 0 Ctr-1: 7 61 62 63 64 65 66 67 0 0 0 Ctr-2: 7 61 62 63 64 65 66 67 0 0 0
===== 0
0
0
0
0
0
0
0
0
1
0
0
0
0
2
=============== GENERATION-ENCRYPTION =============== ========== AES-CBC-MAC ========== Nilai MAC (T): 3C B3 A0 64 F A0 58 D5 String dari T: <³ d XÕ ========== AES-COUNTER ========== Nilai Autentikasi (U): 39 A7 13 17 A6 EE 22 A8 String dari U: 9§ ¦î"¨ Pesan Terenkripsi: D1 70 C9 F6 1C 41 AE 39 7F BD 29 DF 60 5D String dari Pesan Terenkripsi : ÑpÉö A®9 ½)ß ö `] Ciphertext: D1 70 C9 F6 1C 41 AE 39 7F BD 29 DF 60 5D 39 A7 13 17 A6 EE 22 A8 String Ciphertext: ÑpÉö A®9 ½)ß ö `]9§ ¦î"¨
3 F6 A0 16
3 F6 A0 16
29
-------------------------------------------------------------------------Selanjutnya setelah proses Generation-Encryption selesai, ciphertext hasil proses tersebut dapat kita kembalikan menjadi plaintext awal melalui proses Decryption-Verification sebagai berikut : -------------------------------------------------------------------------===== DATA INPUT ===== Ciphertext: ÑpÉö A®9 ½)ß ö `]9§ ¦î"¨ Key: my puzzlepancake Nonce: abcdefg Associated Data: 1a2b3c4d Deret Heksadesimal dari Ciphertext: D1 70 C9 F6 1C 41 AE 39 7F BD 29 DF 3 F6 A0 16 60 5D 39 A7 13 17 A6 EE 22 A8 Deret Heksadesimal dari Key: 6D 79 20 70 75 7A 7A 6C 65 70 61 6E 63 61 6B 65 Deret Heksadesimal dari Nonce: 61 62 63 64 65 66 67 Deret Heksadesimal dari Associated Data: 31 61 32 62 33 63 34 64 PRAPROCESSING Deret Heksadesimal dari Key Setelah PraProcessing: 6D 79 20 70 75 7A 7A 6C 65 70 61 6E 63 61 6B 65 ===== FUNGSI PEMBANGKITAN COUNTER Ctr-0: 7 61 62 63 64 65 66 67 0 0 0 Ctr-1: 7 61 62 63 64 65 66 67 0 0 0 Ctr-2: 7 61 62 63 64 65 66 67 0 0 0
===== 0
0
0
0
0
0
0
0
0
1
0
0
0
0
2
========== AES-COUNTER ========== Payload: 52 61 74 6E 61 20 50 75 72 6E 61 6D 61 20 53 61 72 69 String dari Payload : Ratna Purnama Sari Nilai MAC: 3C B3 A0 64 F A0 58 D5 String dari T: <³ d XÕ ===== FUNGSI PEMFORMATAN ===== Blok Nonce Setelah Pemformatan: 5F 61 62 63 64 65 66 67 0 0 0 0 0 0 0 12 Blok Associated Data Setelah Pemformatan: 0 8 31 61 32 62 33 63 34 64 0 0 0 0 0 0 Blok Payload Setelah Pemformatan: 52 61 74 6E 61 20 50 75 72 6E 61 6D 61 20 53 61 72 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ========== AES-CBC-MAC ========== Payload Terverifikasi: Ratna Purnama Sari
Lampiran 3 Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 0, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL GE (detik)
0
16
0.0063
0.0000
0.0000
0.0062
0.0000
0.0016
0.0688
0.0016
0.0031
0.0000
0.0016
0.0686
0.0015
0.1530
32
48
0.0016
0.0000
0.0015
0.0000
0.0000
0.0030
0.2158
0.0030
0.0076
0.0016
0.0094
0.2012
0.0032
0.4448
64
80
0.0047
0.0000
0.0000
0.0016
0.0031
0.0112
0.3588
0.0016
0.0095
0.0032
0.0112
0.3493
0.0063
0.7558
96
112
0.0016
0.0000
0.0000
0.0015
0.0046
0.0141
0.4910
0.0047
0.0155
0.0030
0.0155
0.4990
0.0048
1.0537
128
144
0.0047
0.0000
0.0000
0.0016
0.0000
0.0172
0.6532
0.0079
0.0189
0.0015
0.0250
0.6447
0.0000
1.3700
160
176
0.0000
0.0000
0.0016
0.0000
0.0060
0.0343
0.7864
0.0079
0.0266
0.0047
0.0186
0.7829
0.0094
1.6768
192
208
0.0015
0.0000
0.0000
0.0000
0.0032
0.0345
0.9309
0.0063
0.0282
0.0078
0.0252
0.9304
0.0064
1.9729
224
240
0.0031
0.0000
0.0000
0.0015
0.0125
0.0312
1.0382
0.0080
0.0329
0.0092
0.0513
1.0494
0.0095
2.2437
256
272
0.0016
0.0000
0.0000
0.0000
0.0063
0.0420
1.2056
0.0076
0.0405
0.0032
0.0405
1.1977
0.0080
2.5514
288
304
0.0030
0.0000
0.0000
0.0046
0.0076
0.0310
1.3471
0.0188
0.0422
0.0047
0.0550
1.3401
0.0126
2.8637
320
336
0.0077
0.0000
0.0000
0.0078
0.0095
0.0416
1.4774
0.0109
0.0467
0.0062
0.0407
1.5026
0.0126
3.1560
352
368
0.0016
0.0000
0.0000
0.0000
0.0031
0.0747
1.6180
0.0217
0.0544
0.0048
0.0514
1.6396
0.0283
3.4960
384
400
0.0030
0.0000
0.0000
0.0031
0.0093
0.0529
1.7927
0.0236
0.0547
0.0123
0.0487
1.7940
0.0171
3.8084
416
432
0.0032
0.0000
0.0000
0.0015
0.0063
0.0642
1.9328
0.0202
0.0595
0.0111
0.0865
1.8910
0.0171
4.0902
448
464
0.0032
0.0000
0.0000
0.0000
0.0139
0.0501
2.0610
0.0159
0.0640
0.0078
0.0511
2.1024
0.0186
4.3848
480
496
0.0032
0.0000
0.0000
0.0016
0.0095
0.0673
2.2082
0.0296
0.0640
0.0172
0.0672
2.2158
0.0111
4.6915
512
528
0.0015
0.0000
0.0000
0.0000
0.0126
0.0730
2.3465
0.0248
0.0750
0.0124
0.0844
2.3417
0.0236
4.9940
544
560
0.0000
0.0000
0.0000
0.0016
0.0216
0.0633
2.4861
0.0218
0.0765
0.0172
0.0556
2.5117
0.0281
5.2835
576
592
0.0047
0.0000
0.0000
0.0016
0.0124
0.0781
2.6424
0.0140
0.0826
0.0140
0.0879
2.6214
0.0204
5.5748
608
624
0.0061
0.0000
0.0000
0.0000
0.0110
0.0839
2.7748
0.0346
0.0845
0.0110
0.0973
2.7901
0.0109
5.8981
640
656
0.0016
0.0000
0.0000
0.0000
0.0175
0.1031
2.8969
0.0253
0.0907
0.0030
0.1099
2.9645
0.0157
6.2266
672
688
0.0062
0.0000
0.0000
0.0000
0.0221
0.1169
3.0495
0.0283
0.0951
0.0094
0.0917
3.0607
0.0312
6.5049
704
720
0.0032
0.0000
0.0000
0.0032
0.0173
0.1174
3.1752
0.0311
0.1002
0.0199
0.1189
3.1777
0.0373
736
752
0.0048
0.0000
0.0000
0.0000
0.0187
0.1291
3.3535
0.0233
0.1032
0.0238
0.0987
3.3214
0.0340
6.7982 7.1057
768
784
0.0047
0.0000
0.0000
0.0016
0.0246
0.1164
3.4784
0.0317
0.1109
0.0141
0.1045
3.4910
0.0386
7.4118
30
Payload (byte)
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
GE TOTAL (detik)
3.6191
0.0280
0.1126
0.0234
0.1383
3.6287
0.0408
7.7323
3.8051
0.0408
0.1189
0.0266
0.1561
3.6993
0.0422
8.0192
0.1049
3.9530
0.0501
0.1218
0.0140
0.1176
3.9317
0.0325
8.3427
0.1596
4.0172
0.0375
0.1250
0.0220
0.1271
4.0394
0.0265
8.5839
0.0246
0.1342
4.2093
0.0373
0.1282
0.0265
0.1473
4.1845
0.0485
8.9451
0.0000
0.0095
0.1579
4.3487
0.0437
0.1359
0.0236
0.1834
4.2716
0.0486
9.2229
0.0015
0.0201
0.1496
4.5391
0.0343
0.1407
0.0141
0.1630
4.5226
0.0594
9.6444
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
816
0.0062
0.0000
0.0000
0.0032
0.0185
0.1197
832
848
0.0015
0.0000
0.0000
0.0000
0.0109
0.1193
864
880
0.0016
0.0000
0.0000
0.0032
0.0139
896
912
0.0016
0.0000
0.0000
0.0031
0.0265
928
944
0.0046
0.0000
0.0016
0.0047
960
976
0.0032
0.0000
0.0000
1000
1024
0.0031
0.0000
0.0015
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey GE = Generation-Encryption
31
Lampiran 4 Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 0, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL DV (detik)
0
16
0.0016
0.0000
0.0000
0.0062
0.0016
0.0030
0.0720
0.0000
0.0062
0.0000
0.0016
0.0734
0.0000
0.1640
32
48
0.0047
0.0000
0.0000
0.0000
0.0015
0.0061
0.2140
0.0000
0.0077
0.0000
0.0079
0.2104
0.0048
0.4524
64
80
0.0016
0.0000
0.0000
0.0016
0.0045
0.0140
0.3534
0.0015
0.0140
0.0031
0.0126
0.3778
0.0048
0.7873
96
112
0.0000
0.0000
0.0000
0.0015
0.0031
0.0331
0.4809
0.0015
0.0236
0.0032
0.0124
0.5250
0.0080
1.0923
128
144
0.0031
0.0000
0.0000
0.0016
0.0031
0.0313
0.6282
0.0047
0.0264
0.0048
0.0329
0.6515
0.0048
1.3893
160
176
0.0048
0.0000
0.0000
0.0000
0.0048
0.0237
0.7821
0.0048
0.0296
0.0063
0.0092
0.8089
0.0173
1.6867
192
208
0.0032
0.0000
0.0000
0.0000
0.0048
0.0377
0.9403
0.0078
0.0312
0.0047
0.0378
0.9389
0.0126
2.0158
224
240
0.0046
0.0000
0.0000
0.0015
0.0079
0.0439
1.0541
0.0174
0.0422
0.0032
0.0470
1.0801
0.0155
2.3128
256
272
0.0030
0.0000
0.0000
0.0000
0.0031
0.0533
1.1753
0.0173
0.0469
0.0031
0.0418
1.2556
0.0094
2.6058
288
304
0.0000
0.0000
0.0000
0.0046
0.0063
0.0345
1.3545
0.0157
0.0502
0.0032
0.0405
1.3882
0.0079
2.9056
320
336
0.0047
0.0000
0.0000
0.0078
0.0047
0.0531
1.5154
0.0157
0.0545
0.0080
0.0563
1.5268
0.0109
3.2532
352
368
0.0016
0.0000
0.0000
0.0000
0.0047
0.0346
1.6696
0.0205
0.0609
0.0078
0.0488
1.6577
0.0202
3.5248
384
400
0.0016
0.0000
0.0000
0.0031
0.0079
0.0637
1.7780
0.0188
0.0690
0.0046
0.0576
1.7995
0.0157
3.8179
416
432
0.0016
0.0000
0.0000
0.0015
0.0094
0.0435
1.8816
0.0172
0.0688
0.0187
0.0607
1.9453
0.0237
4.0704
448
464
0.0016
0.0000
0.0000
0.0000
0.0031
0.0681
2.1043
0.0139
0.0814
0.0263
0.0687
2.0786
0.0250
4.4694
480
496
0.0016
0.0000
0.0000
0.0016
0.0110
0.0641
2.2272
0.0141
0.0826
0.0093
0.0840
2.2210
0.0332
4.7481
512
528
0.0030
0.0000
0.0000
0.0000
0.0139
0.0711
2.3445
0.0420
0.0890
0.0156
0.0799
2.3328
0.0327
5.0215
544
560
0.0047
0.0000
0.0000
0.0016
0.0048
0.0961
2.4384
0.0389
0.0905
0.0141
0.1110
2.5172
0.0204
5.3330
576
592
0.0016
0.0000
0.0000
0.0016
0.0156
0.0780
2.6406
0.0282
0.0937
0.0125
0.0844
2.6934
0.0158
5.6638
608
624
0.0047
0.0000
0.0000
0.0000
0.0183
0.0950
2.7876
0.0171
0.1014
0.0206
0.0979
2.7782
0.0279
5.9440
640
656
0.0000
0.0000
0.0000
0.0000
0.0139
0.1131
2.8935
0.0358
0.1047
0.0159
0.0863
2.9385
0.0388
6.2405
672
688
0.0030
0.0000
0.0000
0.0000
0.0171
0.0969
3.0548
0.0391
0.1123
0.0126
0.1205
3.0867
0.0208
6.5608
704
720
0.0016
0.0000
0.0000
0.0032
0.0235
0.0776
3.2161
0.0312
0.1202
0.0140
0.1338
3.1855
0.0295
736
752
0.0046
0.0000
0.0000
0.0000
0.0171
0.1211
3.3285
0.0296
0.1250
0.0280
0.1034
3.3332
0.0234
6.8346 7.1093
768
784
0.0015
0.0000
0.0000
0.0016
0.0298
0.1042
3.5173
0.0356
0.1454
0.0263
0.1219
3.5129
0.0530
7.5480
32
Payload (byte)
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
DV TOTAL (detik)
3.6430
0.0452
0.1359
0.0265
0.1263
3.6469
0.0330
7.8020
3.7459
0.0360
0.1406
0.0138
0.1151
3.7904
0.0313
8.0347
0.1410
3.9110
0.0387
0.1452
0.0236
0.1486
3.9038
0.0283
8.3558
0.1310
4.0883
0.0482
0.1484
0.0265
0.1376
4.0247
0.0453
8.6721
0.0263
0.1555
4.1617
0.0327
0.1547
0.0366
0.1361
4.1307
0.0424
8.8814
0.0000
0.0201
0.1312
4.3187
0.0373
0.1686
0.0267
0.1340
4.3300
0.0500
9.2166
0.0015
0.0251
0.1716
4.5208
0.0438
0.1656
0.0235
0.1497
4.5230
0.0436
9.6682
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
816
0.0032
0.0000
0.0000
0.0032
0.0141
0.1279
832
848
0.0063
0.0000
0.0000
0.0000
0.0204
0.1412
864
880
0.0016
0.0000
0.0000
0.0032
0.0124
896
912
0.0030
0.0000
0.0000
0.0031
0.0190
928
944
0.0031
0.0000
0.0000
0.0047
960
976
0.0031
0.0000
0.0000
1000
1024
0.0000
0.0000
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey DV = Decryption-Verification
33
Lampiran 5 Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 8, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Data Terformat a (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL GE (detik)
0
32
0.0032
0.0063
0.0000
0.0000
0.0000
0.0078
0.1348
0.0016
0.0031
0.0000
0.0032
0.0717
0.0015
0.2237
32
64
0.0016
0.0000
0.0016
0.0016
0.0000
0.0031
0.2893
0.0064
0.0063
0.0000
0.0078
0.2202
0.0015
0.5362
64
96
0.0030
0.0015
0.0000
0.0047
0.0046
0.0109
0.4344
0.0031
0.0112
0.0000
0.0156
0.3519
0.0031
0.8395
96
128
0.0031
0.0015
0.0000
0.0016
0.0076
0.0078
0.5656
0.0077
0.0158
0.0078
0.0204
0.4813
0.0046
1.1202
128
160
0.0016
0.0000
0.0000
0.0000
0.0032
0.0437
0.7152
0.0095
0.0188
0.0000
0.0254
0.6509
0.0079
1.4746
160
192
0.0046
0.0000
0.0000
0.0030
0.0016
0.0294
0.8628
0.0061
0.0252
0.0030
0.0249
0.7902
0.0078
1.7540
192
224
0.0016
0.0000
0.0000
0.0000
0.0000
0.0267
0.9663
0.0269
0.0313
0.0047
0.0419
0.9172
0.0110
2.0260
224
256
0.0016
0.0000
0.0000
0.0000
0.0079
0.0361
1.1416
0.0077
0.0327
0.0127
0.0342
1.0781
0.0111
2.3621
256
288
0.0031
0.0000
0.0000
0.0031
0.0094
0.0500
1.2720
0.0186
0.0404
0.0016
0.0440
1.2085
0.0140
2.6616
288
320
0.0031
0.0000
0.0000
0.0015
0.0093
0.0410
1.4404
0.0109
0.0406
0.0063
0.0437
1.3547
0.0031
2.9515
320
352
0.0015
0.0015
0.0015
0.0031
0.0064
0.0704
1.5377
0.0108
0.0469
0.0125
0.0440
1.5200
0.0108
3.2626
352
384
0.0032
0.0000
0.0000
0.0031
0.0109
0.0671
1.7122
0.0251
0.0516
0.0077
0.0628
1.6479
0.0124
3.6008
384
416
0.0016
0.0016
0.0000
0.0000
0.0125
0.0470
1.8851
0.0142
0.0595
0.0111
0.0510
1.7743
0.0156
3.8703
416
448
0.0047
0.0000
0.0000
0.0015
0.0078
0.0752
2.0123
0.0141
0.0607
0.0062
0.0551
1.9383
0.0108
4.1820
448
480
0.0000
0.0000
0.0000
0.0047
0.0079
0.0780
2.1476
0.0188
0.0688
0.0125
0.0646
2.0901
0.0282
4.5212
480
512
0.0000
0.0000
0.0000
0.0032
0.0157
0.0750
2.2599
0.0188
0.0640
0.0187
0.0721
2.2190
0.0268
4.7732
512
544
0.0015
0.0000
0.0000
0.0015
0.0111
0.0754
2.4425
0.0266
0.0767
0.0107
0.0985
2.3015
0.0264
5.0709
544
576
0.0015
0.0000
0.0000
0.0032
0.0155
0.0827
2.5951
0.0233
0.0798
0.0279
0.0895
2.5020
0.0297
5.4487
576
608
0.0031
0.0016
0.0000
0.0000
0.0124
0.0758
2.7426
0.0248
0.0796
0.0140
0.1003
2.6148
0.0323
5.6966
608
640
0.0032
0.0000
0.0000
0.0032
0.0111
0.1049
2.8128
0.0298
0.0875
0.0125
0.0749
2.7707
0.0217
5.9291
640
672
0.0000
0.0015
0.0000
0.0016
0.0143
0.1098
2.9752
0.0406
0.0905
0.0125
0.0924
2.8831
0.0265
6.2465
672
704
0.0016
0.0000
0.0000
0.0015
0.0127
0.1274
3.1120
0.0189
0.0938
0.0141
0.1003
3.0718
0.0407
6.5932
704
736
0.0015
0.0000
0.0000
0.0031
0.0187
0.1119
3.2942
0.0421
0.1018
0.0189
0.1048
3.2440
0.0388
736
768
0.0031
0.0015
0.0000
0.0046
0.0159
0.1523
3.3844
0.0438
0.1044
0.0205
0.1249
3.3597
0.0251
6.9783 7.2356
768
800
0.0031
0.0000
0.0000
0.0047
0.0172
0.1262
3.5689
0.0296
0.1094
0.0157
0.1318
3.4836
0.0373
7.5244
34
Payload (byte)
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
GE TOTAL (detik)
3.7528
0.0329
0.1170
0.0173
0.1392
3.6332
0.0451
7.8768
3.8083
0.0484
0.1173
0.0205
0.1216
3.7830
0.0373
8.0953
0.1322
4.0262
0.0292
0.1218
0.0190
0.1279
3.9428
0.0391
8.4724
0.1321
4.1008
0.0501
0.1265
0.0205
0.1327
4.1124
0.0330
8.7315
0.0187
0.1347
4.3239
0.0421
0.1310
0.0205
0.1318
4.2162
0.0467
9.0656
0.0000
0.0284
0.1608
4.4499
0.0467
0.1372
0.0281
0.1532
4.3834
0.0408
9.4285
0.0000
0.0362
0.1628
4.6528
0.0360
0.1406
0.0236
0.1624
4.5840
0.0266
9.8250
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
832
0.0016
0.0000
0.0000
0.0016
0.0170
0.1207
832
864
0.0047
0.0000
0.0000
0.0016
0.0126
0.1447
864
896
0.0032
0.0000
0.0000
0.0030
0.0312
896
928
0.0000
0.0032
0.0000
0.0030
0.0204
928
960
0.0031
0.0000
0.0000
0.0000
960
992
0.0016
0.0000
0.0000
1000
1040
0.0016
0.0015
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey GE = Generation-Encryption
35
Lampiran 6 Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 8, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL DV (detik)
0
32
0.0031
0.0000
0.0000
0.0000
0.0000
0.0047
0.1451
0.0000
0.0016
0.0000
0.0015
0.0721
0.0000
0.2250
32
64
0.0047
0.0000
0.0016
0.0016
0.0031
0.0045
0.2864
0.0016
0.0110
0.0015
0.0048
0.1982
0.0047
0.5174
64
96
0.0078
0.0000
0.0000
0.0047
0.0030
0.0140
0.4204
0.0062
0.0109
0.0032
0.0141
0.3642
0.0048
0.8455
96
128
0.0046
0.0015
0.0000
0.0016
0.0015
0.0123
0.5786
0.0063
0.0204
0.0015
0.0220
0.5173
0.0107
1.1722
128
160
0.0031
0.0000
0.0000
0.0000
0.0015
0.0253
0.7138
0.0079
0.0237
0.0015
0.0326
0.6817
0.0030
1.4910
160
192
0.0048
0.0016
0.0000
0.0030
0.0077
0.0265
0.8661
0.0063
0.0250
0.0046
0.0187
0.8362
0.0107
1.8048
192
224
0.0016
0.0000
0.0000
0.0000
0.0046
0.0251
0.9967
0.0140
0.0298
0.0155
0.0499
0.9064
0.0142
2.0562
224
256
0.0031
0.0000
0.0000
0.0000
0.0078
0.0466
1.1423
0.0125
0.0407
0.0079
0.0391
1.0720
0.0110
2.3799
256
288
0.0015
0.0047
0.0000
0.0031
0.0111
0.0467
1.2894
0.0092
0.0467
0.0062
0.0281
1.2548
0.0093
2.7046
288
320
0.0000
0.0000
0.0000
0.0015
0.0048
0.0701
1.4195
0.0141
0.0546
0.0061
0.0564
1.3753
0.0078
3.0102
320
352
0.0031
0.0000
0.0000
0.0031
0.0063
0.0312
1.6020
0.0126
0.0549
0.0109
0.0515
1.5097
0.0111
3.2933
352
384
0.0032
0.0000
0.0000
0.0031
0.0095
0.0580
1.7288
0.0157
0.0608
0.0047
0.0501
1.6856
0.0124
3.6287
384
416
0.0015
0.0000
0.0000
0.0000
0.0079
0.0559
1.8473
0.0285
0.0642
0.0232
0.0535
1.7769
0.0280
3.8854
416
448
0.0015
0.0000
0.0000
0.0015
0.0077
0.0827
1.9844
0.0265
0.0687
0.0140
0.0889
1.9286
0.0172
4.2202
448
480
0.0031
0.0000
0.0000
0.0047
0.0142
0.0749
2.1361
0.0205
0.0749
0.0109
0.0685
2.0796
0.0249
4.5092
480
512
0.0015
0.0000
0.0000
0.0032
0.0079
0.0608
2.2974
0.0265
0.0813
0.0124
0.0762
2.2361
0.0220
4.8238
512
544
0.0031
0.0000
0.0000
0.0015
0.0110
0.0724
2.4339
0.0297
0.0874
0.0157
0.0923
2.3374
0.0331
5.1144
544
576
0.0015
0.0000
0.0000
0.0032
0.0110
0.1018
2.6027
0.0126
0.0872
0.0140
0.0734
2.5342
0.0235
5.4636
576
608
0.0000
0.0000
0.0000
0.0000
0.0203
0.0846
2.7253
0.0185
0.0970
0.0189
0.1078
2.6629
0.0203
5.7556
608
640
0.0016
0.0000
0.0000
0.0032
0.0172
0.0751
2.8749
0.0261
0.0998
0.0184
0.1317
2.7918
0.0279
6.0661
640
672
0.0046
0.0016
0.0000
0.0016
0.0218
0.1038
3.0273
0.0297
0.1077
0.0140
0.1145
2.9402
0.0297
6.3903
672
704
0.0048
0.0000
0.0016
0.0015
0.0202
0.1218
3.1000
0.0232
0.1173
0.0202
0.1119
3.0594
0.0248
6.6003
704
736
0.0031
0.0000
0.0000
0.0031
0.0236
0.0969
3.2710
0.0313
0.1157
0.0189
0.0944
3.2407
0.0329
736
768
0.0016
0.0016
0.0000
0.0046
0.0329
0.1207
3.4352
0.0327
0.1250
0.0107
0.0925
3.4161
0.0375
6.9285 7.3079
768
800
0.0032
0.0016
0.0000
0.0047
0.0189
0.1284
3.5786
0.0358
0.1281
0.0267
0.0784
3.5566
0.0410
7.5972
36
Payload (byte)
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
DV TOTAL (detik)
3.7257
0.0423
0.1422
0.0189
0.1190
3.6908
0.0313
7.9417
3.8817
0.0283
0.1358
0.0187
0.1249
3.7940
0.0092
8.1593
0.1441
3.9752
0.0453
0.1483
0.0266
0.1506
3.9008
0.0425
8.4550
0.1204
4.1469
0.0470
0.1546
0.0218
0.1275
4.1386
0.0388
8.8235
0.0206
0.1506
4.3006
0.0327
0.1688
0.0282
0.1558
4.2537
0.0439
9.1549
0.0000
0.0281
0.1403
4.4014
0.0391
0.1565
0.0268
0.1439
4.3499
0.0300
9.3160
0.0000
0.0296
0.1511
4.6445
0.0518
0.1732
0.0186
0.1427
4.6226
0.0390
9.8731
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
832
0.0015
0.0000
0.0000
0.0016
0.0220
0.1479
832
864
0.0016
0.0000
0.0000
0.0016
0.0328
0.1323
864
880
0.0031
0.0000
0.0000
0.0030
0.0186
896
912
0.0000
0.0000
0.0000
0.0030
0.0249
928
944
0.0000
0.0000
0.0000
0.0000
960
976
0.0016
0.0016
0.0000
1000
1024
0.0016
0.0016
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey DV = Decryption-Verification
37
Lampiran 7 Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 16, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL GE (detik)
0
48
0.0000
0.0000
0.0015
0.0000
0.0000
0.0046
0.2110
0.0016
0.0015
0.0000
0.0047
0.0734
0.0000
0.2968
80
0.0032
0.0000
0.0000
0.0031
0.0016
0.0158
0.3526
0.0031
0.0094
0.0016
0.0047
0.2154
0.0000
0.6073
64
112
0.0064
0.0000
0.0000
0.0000
0.0016
0.0248
0.4937
0.0047
0.0095
0.0063
0.0127
0.3530
0.0046
0.9109
96
144
0.0000
0.0016
0.0015
0.0000
0.0030
0.0327
0.6209
0.0046
0.0156
0.0030
0.0172
0.5018
0.0062
1.2050
128
176
0.0015
0.0000
0.0000
0.0031
0.0032
0.0236
0.7791
0.0127
0.0219
0.0031
0.0233
0.6355
0.0046
1.5101
160
208
0.0015
0.0000
0.0000
0.0032
0.0079
0.0252
0.9373
0.0076
0.0265
0.0060
0.0190
0.7890
0.0079
1.8296
192
240
0.0032
0.0031
0.0000
0.0016
0.0048
0.0417
1.0482
0.0063
0.0264
0.0064
0.0248
0.9241
0.0123
2.0966
224
272
0.0030
0.0000
0.0000
0.0015
0.0094
0.0316
1.2174
0.0126
0.0361
0.0061
0.0253
1.0685
0.0094
2.4179
256
304
0.0064
0.0000
0.0000
0.0000
0.0061
0.0486
1.3322
0.0205
0.0372
0.0045
0.0464
1.2102
0.0079
2.7136
288
336
0.0062
0.0000
0.0000
0.0031
0.0125
0.0505
1.4835
0.0096
0.0391
0.0110
0.0449
1.3477
0.0124
3.0143
320
368
0.0030
0.0000
0.0000
0.0016
0.0123
0.0682
1.6257
0.0094
0.0470
0.0126
0.0359
1.4734
0.0217
3.3078
352
400
0.0000
0.0000
0.0000
0.0031
0.0094
0.0686
1.7577
0.0202
0.0547
0.0063
0.0751
1.6250
0.0157
3.6358
384
432
0.0031
0.0000
0.0000
0.0000
0.0110
0.0601
1.9308
0.0158
0.0561
0.0032
0.0519
1.8097
0.0111
3.9497
416
464
0.0000
0.0000
0.0000
0.0016
0.0047
0.0735
2.0521
0.0203
0.0626
0.0138
0.0722
1.8957
0.0141
4.2106
448
496
0.0031
0.0000
0.0000
0.0000
0.0110
0.0754
2.1976
0.0236
0.0656
0.0095
0.0778
2.0546
0.0233
4.5384
480
528
0.0015
0.0015
0.0000
0.0000
0.0096
0.0736
2.3389
0.0170
0.0688
0.0201
0.0765
2.1889
0.0093
4.8027
512
560
0.0016
0.0016
0.0000
0.0000
0.0141
0.0940
2.4936
0.0189
0.0720
0.0048
0.0799
2.3712
0.0266
5.1751
544
592
0.0016
0.0015
0.0000
0.0032
0.0092
0.1077
2.6404
0.0250
0.0767
0.0170
0.0778
2.5134
0.0139
5.4843
576
624
0.0046
0.0000
0.0000
0.0030
0.0138
0.0793
2.7919
0.0295
0.0812
0.0142
0.0799
2.6237
0.0282
5.7447
608
656
0.0046
0.0000
0.0000
0.0000
0.0158
0.1014
2.9396
0.0202
0.0828
0.0109
0.0706
2.8093
0.0093
6.0599
640
688
0.0016
0.0016
0.0000
0.0000
0.0094
0.0825
3.0533
0.0379
0.0890
0.0171
0.1005
2.9063
0.0204
6.3164
672
720
0.0015
0.0015
0.0000
0.0000
0.0156
0.1128
3.1992
0.0329
0.0952
0.0250
0.0955
3.0759
0.0236
6.6757
704
752
0.0000
0.0016
0.0000
0.0000
0.0219
0.1197
3.3308
0.0248
0.0998
0.0174
0.1310
3.1941
0.0172
736
784
0.0000
0.0000
0.0000
0.0000
0.0141
0.1011
3.5604
0.0221
0.1060
0.0190
0.0952
3.3607
0.0342
6.9567 7.3128
768
816
0.0047
0.0015
0.0000
0.0016
0.0158
0.1128
3.6195
0.0252
0.1080
0.0250
0.1318
3.4531
0.0296
7.5224
38
32
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
GE TOTAL (detik)
3.7433
0.0266
0.1125
0.0139
0.1121
3.6400
0.0455
7.8518
3.9365
0.0421
0.1158
0.0186
0.1217
3.7589
0.0264
8.1506
0.1336
4.0583
0.0501
0.1189
0.0220
0.1474
3.9365
0.0317
8.5154
0.1443
4.2097
0.0455
0.1250
0.0095
0.1503
4.0686
0.0373
8.8087
0.0333
0.1341
4.3403
0.0404
0.1296
0.0206
0.1549
4.2304
0.0313
9.1149
0.0016
0.0234
0.1796
4.4388
0.0628
0.1360
0.0218
0.1416
4.3535
0.0400
9.3991
0.0016
0.0139
0.1414
4.6763
0.0425
0.1407
0.0202
0.1390
4.5483
0.0506
9.7745
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
848
0.0047
0.0000
0.0016
0.0016
0.0203
0.1360
832
880
0.0015
0.0016
0.0000
0.0031
0.0263
0.1012
864
912
0.0000
0.0015
0.0016
0.0015
0.0154
896
944
0.0015
0.0016
0.0000
0.0015
0.0170
928
976
0.0031
0.0000
0.0000
0.0000
960
1008
0.0015
0.0016
0.0000
1000
1056
0.0048
0.0000
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey GE = Generation-Encryption
39
Lampiran 8 Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 16, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL DV (detik)
0
48
0.0000
0.0000
0.0000
0.0000
0.0015
0.0078
0.2202
0.0016
0.0032
0.0000
0.0015
0.0702
0.0000
0.3060
80
0.0031
0.0000
0.0000
0.0031
0.0031
0.0015
0.3626
0.0030
0.0109
0.0000
0.0047
0.2061
0.0016
0.5966
64
112
0.0000
0.0016
0.0000
0.0000
0.0046
0.0124
0.4954
0.0047
0.0108
0.0047
0.0125
0.3731
0.0030
0.9212
96
144
0.0062
0.0016
0.0000
0.0000
0.0016
0.0093
0.6552
0.0047
0.0186
0.0048
0.0157
0.5184
0.0046
1.2329
128
176
0.0015
0.0015
0.0000
0.0031
0.0016
0.0298
0.7751
0.0126
0.0205
0.0032
0.0187
0.6635
0.0063
1.5344
160
208
0.0031
0.0015
0.0000
0.0032
0.0062
0.0343
0.9003
0.0110
0.0314
0.0062
0.0156
0.8156
0.0093
1.8331
192
240
0.0031
0.0000
0.0000
0.0016
0.0078
0.0375
1.0561
0.0125
0.0311
0.0032
0.0455
0.9512
0.0063
2.1528
224
272
0.0015
0.0015
0.0000
0.0015
0.0093
0.0174
1.2173
0.0156
0.0360
0.0047
0.0329
1.0954
0.0127
2.4428
256
304
0.0047
0.0016
0.0000
0.0000
0.0062
0.0667
1.3478
0.0095
0.0453
0.0031
0.0251
1.2472
0.0109
2.7618
288
336
0.0015
0.0000
0.0000
0.0031
0.0063
0.0498
1.4800
0.0203
0.0529
0.0032
0.0460
1.3620
0.0047
3.0283
320
368
0.0032
0.0000
0.0000
0.0016
0.0046
0.0518
1.6393
0.0201
0.0578
0.0155
0.0406
1.5308
0.0109
3.3730
352
400
0.0047
0.0016
0.0000
0.0031
0.0091
0.0468
1.7617
0.0109
0.0608
0.0078
0.0625
1.6439
0.0156
3.6222
384
432
0.0031
0.0000
0.0000
0.0000
0.0140
0.0706
1.9035
0.0218
0.0672
0.0125
0.0640
1.7619
0.0238
3.9393
416
464
0.0016
0.0000
0.0000
0.0016
0.0079
0.0612
2.0526
0.0157
0.0703
0.0110
0.0547
1.9534
0.0292
4.2576
448
496
0.0000
0.0030
0.0000
0.0000
0.0139
0.1009
2.1874
0.0217
0.0766
0.0061
0.0855
2.1026
0.0187
4.6134
480
528
0.0000
0.0000
0.0000
0.0000
0.0048
0.0520
2.3591
0.0311
0.0812
0.0110
0.0924
2.1776
0.0282
4.8374
512
560
0.0000
0.0016
0.0000
0.0000
0.0171
0.0905
2.4559
0.0279
0.0843
0.0142
0.0673
2.3782
0.0188
5.1542
544
592
0.0077
0.0000
0.0000
0.0032
0.0126
0.0805
2.6379
0.0220
0.0953
0.0125
0.0745
2.5300
0.0156
5.4841
576
624
0.0016
0.0000
0.0000
0.0030
0.0172
0.0830
2.7482
0.0239
0.0984
0.0139
0.0839
2.6287
0.0248
5.7250
608
656
0.0031
0.0000
0.0000
0.0000
0.0190
0.0802
2.9128
0.0294
0.1016
0.0282
0.0733
2.8223
0.0281
6.0949
640
688
0.0046
0.0000
0.0000
0.0000
0.0266
0.1028
3.0134
0.0238
0.1076
0.0233
0.0855
2.9033
0.0267
6.3130
672
720
0.0032
0.0030
0.0000
0.0000
0.0186
0.1057
3.1722
0.0312
0.1124
0.0141
0.1002
3.0990
0.0332
6.6866
704
752
0.0046
0.0016
0.0000
0.0000
0.0156
0.1280
3.3092
0.0346
0.1173
0.0144
0.1121
3.1914
0.0436
736
784
0.0000
0.0000
0.0000
0.0000
0.0217
0.0971
3.4796
0.0307
0.1249
0.0140
0.1006
3.3918
0.0237
6.9662 7.2841
768
816
0.0062
0.0000
0.0000
0.0016
0.0312
0.0953
3.5961
0.0487
0.1328
0.0157
0.1063
3.5216
0.0326
7.5819
40
32
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
DV TOTAL (detik)
3.7371
0.0373
0.1329
0.0235
0.1297
3.6249
0.0358
7.8838
3.9399
0.0329
0.1454
0.0186
0.1221
3.7863
0.0393
8.2336
0.1533
4.1450
0.0314
0.1486
0.0252
0.1025
3.9568
0.0428
8.6321
0.1450
4.1879
0.0268
0.1531
0.0201
0.1436
4.0921
0.0328
8.8426
0.0250
0.1443
4.3123
0.0513
0.1546
0.0251
0.1538
4.2075
0.0316
9.1055
0.0016
0.0188
0.1531
4.4803
0.0389
0.1577
0.0253
0.1573
4.3086
0.0531
9.3947
0.0016
0.0263
0.1828
4.6458
0.0340
0.1671
0.0232
0.1818
4.5244
0.0407
9.8277
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
848
0.0031
0.0000
0.0000
0.0016
0.0285
0.1325
832
880
0.0000
0.0015
0.0000
0.0031
0.0156
0.1304
864
912
0.0015
0.0000
0.0000
0.0015
0.0250
896
944
0.0016
0.0015
0.0032
0.0015
0.0397
928
976
0.0047
0.0000
0.0000
0.0000
960
1008
0.0031
0.0000
0.0000
1000
1056
0.0016
0.0031
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey DV = Decryption-Verification
41
Lampiran 9 Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 24, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL GE (detik)
0
48
0.0076
0.0016
0.0000
0.0000
0.0000
0.0094
0.2159
0.0031
0.0016
0.0015
0.0031
0.0721
0.0000
0.3067
80
0.0047
0.0000
0.0000
0.0031
0.0032
0.0175
0.3512
0.0061
0.0047
0.0015
0.0064
0.2113
0.0000
0.6050
64
112
0.0032
0.0000
0.0000
0.0015
0.0000
0.0235
0.4971
0.0030
0.0109
0.0047
0.0064
0.3513
0.0048
0.9032
96
144
0.0000
0.0000
0.0000
0.0031
0.0046
0.0201
0.6410
0.0077
0.0155
0.0015
0.0141
0.4976
0.0047
1.2099
128
176
0.0032
0.0015
0.0000
0.0016
0.0030
0.0252
0.7748
0.0031
0.0205
0.0046
0.0202
0.6379
0.0079
1.4988
160
208
0.0015
0.0000
0.0000
0.0016
0.0015
0.0280
0.9271
0.0095
0.0266
0.0000
0.0201
0.7721
0.0126
1.7991
192
240
0.0016
0.0000
0.0000
0.0000
0.0077
0.0267
1.0686
0.0095
0.0295
0.0031
0.0329
0.9183
0.0062
2.1025
224
272
0.0000
0.0000
0.0000
0.0016
0.0095
0.0513
1.2029
0.0079
0.0344
0.0047
0.0328
1.0598
0.0062
2.4111
256
304
0.0000
0.0015
0.0000
0.0031
0.0090
0.0451
1.3547
0.0187
0.0406
0.0078
0.0466
1.2081
0.0093
2.7430
288
336
0.0031
0.0016
0.0000
0.0015
0.0158
0.0375
1.4722
0.0063
0.0421
0.0107
0.0409
1.3530
0.0109
2.9909
320
368
0.0031
0.0000
0.0015
0.0016
0.0016
0.0528
1.6189
0.0187
0.0455
0.0048
0.0549
1.4887
0.0172
3.3047
352
400
0.0062
0.0000
0.0000
0.0015
0.0063
0.0627
1.7635
0.0363
0.0485
0.0159
0.0544
1.6357
0.0078
3.6326
384
432
0.0031
0.0000
0.0000
0.0000
0.0108
0.0628
1.9171
0.0219
0.0544
0.0031
0.0547
1.7847
0.0233
3.9328
416
464
0.0000
0.0000
0.0000
0.0015
0.0158
0.0562
2.0590
0.0252
0.0594
0.0046
0.0659
1.9110
0.0219
4.2205
448
496
0.0015
0.0000
0.0000
0.0016
0.0046
0.0878
2.1908
0.0267
0.0642
0.0062
0.0703
2.0594
0.0190
4.5306
480
528
0.0048
0.0016
0.0000
0.0000
0.0095
0.0733
2.3439
0.0250
0.0640
0.0092
0.0673
2.2038
0.0251
4.8211
512
560
0.0047
0.0000
0.0000
0.0000
0.0174
0.1017
2.4718
0.0251
0.0733
0.0094
0.0699
2.3363
0.0170
5.1219
544
592
0.0047
0.0000
0.0000
0.0016
0.0062
0.0848
2.6221
0.0284
0.0780
0.0204
0.0751
2.4825
0.0250
5.4241
576
624
0.0046
0.0000
0.0000
0.0030
0.0281
0.0769
2.7718
0.0218
0.0828
0.0142
0.0942
2.6340
0.0233
5.7501
608
656
0.0048
0.0000
0.0000
0.0016
0.0158
0.1002
2.8860
0.0218
0.0843
0.0092
0.1029
2.7805
0.0279
6.0302
640
688
0.0031
0.0000
0.0000
0.0016
0.0157
0.0989
3.0461
0.0405
0.0918
0.0218
0.0857
2.9095
0.0296
6.3412
672
720
0.0091
0.0000
0.0000
0.0032
0.0202
0.1171
3.1806
0.0434
0.0938
0.0111
0.0902
3.0564
0.0406
6.6566
704
752
0.0047
0.0000
0.0000
0.0016
0.0140
0.1050
3.3190
0.0311
0.1003
0.0219
0.0973
3.1888
0.0469
736
784
0.0015
0.0000
0.0000
0.0030
0.0187
0.1125
3.4842
0.0420
0.1063
0.0170
0.1004
3.3376
0.0392
6.9259 7.2609
768
816
0.0032
0.0000
0.0000
0.0015
0.0266
0.1015
3.6229
0.0379
0.1076
0.0108
0.1012
3.4861
0.0323
7.5284
42
32
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
GE TOTAL (detik)
3.7676
0.0280
0.1126
0.0252
0.1294
3.5984
0.0410
7.8493
3.8945
0.0438
0.1170
0.0220
0.1392
3.7793
0.0358
8.1737
0.1481
4.0649
0.0423
0.1234
0.0220
0.1238
3.9086
0.0571
8.5073
0.1340
4.2053
0.0438
0.1250
0.0296
0.1284
4.0546
0.0391
8.7816
0.0125
0.1443
4.3303
0.0354
0.1345
0.0094
0.1310
4.2144
0.0363
9.0529
0.0015
0.0310
0.1248
4.4674
0.0454
0.1345
0.0235
0.1706
4.2995
0.0551
9.3533
0.0030
0.0235
0.1550
4.6967
0.0390
0.1501
0.0191
0.1691
4.5445
0.0392
9.8392
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
848
0.0062
0.0000
0.0000
0.0016
0.0283
0.1172
832
880
0.0032
0.0016
0.0000
0.0045
0.0253
0.1123
864
912
0.0064
0.0000
0.0000
0.0000
0.0171
896
944
0.0015
0.0000
0.0000
0.0032
0.0186
928
976
0.0031
0.0000
0.0000
0.0048
960
1008
0.0062
0.0000
0.0000
1000
1056
0.0078
0.0000
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey GE = Generation-Encryption
43
Lampiran 10 Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 24, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL DV (detik)
0
48
0.0046
0.0000
0.0000
0.0000
0.0000
0.0000
0.2189
0.0031
0.0000
0.0015
0.0000
0.0672
0.0030
0.2937
80
0.0030
0.0015
0.0000
0.0031
0.0015
0.0110
0.3566
0.0031
0.0122
0.0000
0.0127
0.2094
0.0016
0.6112
64
112
0.0031
0.0031
0.0000
0.0015
0.0016
0.0186
0.4988
0.0046
0.0109
0.0047
0.0172
0.3718
0.0063
0.9360
96
144
0.0016
0.0000
0.0000
0.0031
0.0016
0.0254
0.6419
0.0046
0.0218
0.0016
0.0185
0.5163
0.0109
1.2457
128
176
0.0015
0.0000
0.0000
0.0016
0.0032
0.0279
0.7861
0.0064
0.0250
0.0061
0.0157
0.6705
0.0077
1.5502
160
208
0.0047
0.0000
0.0000
0.0016
0.0078
0.0347
0.9282
0.0078
0.0281
0.0046
0.0357
0.7974
0.0155
1.8614
192
240
0.0016
0.0000
0.0000
0.0000
0.0047
0.0361
1.0665
0.0061
0.0375
0.0079
0.0419
0.9361
0.0047
2.1415
224
272
0.0015
0.0000
0.0000
0.0016
0.0094
0.0496
1.1979
0.0092
0.0455
0.0015
0.0328
1.0875
0.0188
2.4538
256
304
0.0031
0.0000
0.0000
0.0031
0.0062
0.0572
1.3511
0.0172
0.0483
0.0094
0.0434
1.2112
0.0110
2.7581
288
336
0.0047
0.0000
0.0016
0.0015
0.0095
0.0409
1.5010
0.0218
0.0530
0.0062
0.0503
1.3641
0.0111
3.0594
320
368
0.0032
0.0000
0.0000
0.0016
0.0063
0.0686
1.6282
0.0156
0.0612
0.0062
0.0636
1.5220
0.0080
3.3813
352
400
0.0000
0.0000
0.0000
0.0015
0.0173
0.0577
1.7771
0.0251
0.0657
0.0064
0.0607
1.6432
0.0156
3.6703
384
432
0.0045
0.0015
0.0000
0.0000
0.0108
0.0722
1.9203
0.0186
0.0721
0.0110
0.0562
1.7800
0.0236
3.9648
416
464
0.0063
0.0000
0.0000
0.0015
0.0136
0.0705
2.0447
0.0282
0.0782
0.0125
0.0594
1.9090
0.0219
4.2395
448
496
0.0000
0.0000
0.0000
0.0016
0.0110
0.0761
2.1921
0.0233
0.0827
0.0110
0.0748
2.0474
0.0296
4.5496
480
528
0.0047
0.0000
0.0000
0.0000
0.0139
0.0827
2.3390
0.0206
0.0812
0.0157
0.0742
2.2144
0.0234
4.8651
512
560
0.0045
0.0000
0.0000
0.0000
0.0204
0.0791
2.4926
0.0221
0.0892
0.0171
0.0749
2.3517
0.0172
5.1643
544
592
0.0061
0.0000
0.0000
0.0016
0.0141
0.0747
2.6346
0.0217
0.0984
0.0078
0.0704
2.5026
0.0362
5.4621
576
624
0.0015
0.0015
0.0000
0.0030
0.0142
0.1017
2.7550
0.0309
0.1031
0.0186
0.0890
2.6600
0.0171
5.7926
608
656
0.0032
0.0047
0.0000
0.0016
0.0110
0.1070
2.9147
0.0234
0.1079
0.0109
0.0885
2.8119
0.0233
6.1002
640
688
0.0016
0.0016
0.0000
0.0016
0.0094
0.1035
3.0645
0.0326
0.1095
0.0205
0.0950
2.9202
0.0264
6.3832
672
720
0.0016
0.0032
0.0016
0.0032
0.0220
0.1028
3.2004
0.0189
0.1186
0.0156
0.1031
3.0578
0.0297
6.6721
704
752
0.0016
0.0016
0.0016
0.0016
0.0183
0.1208
3.3425
0.0263
0.1251
0.0202
0.1029
3.2093
0.0279
736
784
0.0016
0.0000
0.0000
0.0030
0.0189
0.1160
3.4750
0.0331
0.1328
0.0158
0.1185
3.3240
0.0455
6.9949 7.2826
768
816
0.0032
0.0000
0.0015
0.0015
0.0155
0.1078
3.6189
0.0250
0.1343
0.0221
0.1141
3.4746
0.0393
7.5531
44
32
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
DV TOTAL (detik)
3.7537
0.0514
0.1391
0.0235
0.1404
3.6354
0.0408
7.9250
3.8984
0.0406
0.1484
0.0331
0.1218
3.7866
0.0456
8.2350
0.1234
4.0341
0.0488
0.1624
0.0188
0.1350
3.9243
0.0314
8.4967
0.1113
4.2204
0.0359
0.1671
0.0203
0.1649
4.0662
0.0313
8.8515
0.0217
0.1432
4.3223
0.0392
0.1687
0.0172
0.1787
4.2001
0.0250
9.1209
0.0015
0.0185
0.1558
4.4845
0.0460
0.1703
0.0296
0.1560
4.3716
0.0359
9.4697
0.0030
0.0343
0.1395
4.6905
0.0468
0.1905
0.0280
0.1548
4.5684
0.0545
9.9103
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
848
0.0062
0.0000
0.0000
0.0016
0.0235
0.1156
832
880
0.0031
0.0000
0.0000
0.0045
0.0283
0.1277
864
912
0.0016
0.0015
0.0000
0.0000
0.0185
896
944
0.0048
0.0000
0.0016
0.0032
0.0309
928
976
0.0032
0.0015
0.0000
0.0048
960
1008
0.0016
0.0016
0.0000
1000
1056
0.0000
0.0015
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey DV = Decryption-Verification
45
Lampiran 11 Rekapitulasi rata-rata uji running time generation-encryption AES-CCM dengan a = 32, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL GE (detik)
0
64
0.0015
0.0000
0.0000
0.0063
0.0016
0.0077
0.2922
0.0000
0.0032
0.0000
0.0032
0.0670
0.0016
0.3828
96
0.0030
0.0031
0.0000
0.0032
0.0000
0.0080
0.4296
0.0030
0.0032
0.0000
0.0092
0.2129
0.0015
0.6706
64
128
0.0031
0.0000
0.0000
0.0000
0.0032
0.0124
0.5687
0.0127
0.0109
0.0016
0.0093
0.3535
0.0016
0.9739
96
160
0.0030
0.0016
0.0000
0.0030
0.0016
0.0328
0.7063
0.0109
0.0160
0.0032
0.0122
0.4954
0.0079
1.2893
128
192
0.0016
0.0000
0.0000
0.0000
0.0077
0.0218
0.8467
0.0031
0.0266
0.0062
0.0249
0.6348
0.0016
1.5734
160
224
0.0048
0.0000
0.0000
0.0063
0.0093
0.0296
0.9966
0.0016
0.0266
0.0048
0.0312
0.7753
0.0095
1.8908
192
256
0.0032
0.0000
0.0000
0.0000
0.0000
0.0468
1.1399
0.0078
0.0296
0.0063
0.0218
0.9177
0.0095
2.1794
224
288
0.0015
0.0000
0.0000
0.0000
0.0077
0.0329
1.2792
0.0235
0.0329
0.0048
0.0246
1.0693
0.0077
2.4826
256
320
0.0016
0.0000
0.0000
0.0015
0.0032
0.0579
1.4110
0.0094
0.0406
0.0062
0.0425
1.2047
0.0110
2.7880
288
352
0.0000
0.0015
0.0000
0.0015
0.0126
0.0470
1.5574
0.0142
0.0437
0.0095
0.0436
1.3605
0.0127
3.1027
320
384
0.0031
0.0016
0.0000
0.0016
0.0094
0.0675
1.7030
0.0236
0.0469
0.0063
0.0403
1.4848
0.0221
3.4055
352
416
0.0032
0.0000
0.0016
0.0015
0.0171
0.0687
1.8491
0.0110
0.0500
0.0124
0.0637
1.6332
0.0111
3.7178
384
448
0.0047
0.0000
0.0000
0.0032
0.0061
0.0670
1.9845
0.0187
0.0547
0.0109
0.0671
1.7906
0.0155
4.0183
416
480
0.0016
0.0000
0.0000
0.0015
0.0047
0.0815
2.1249
0.0188
0.0625
0.0078
0.0656
1.9097
0.0200
4.2970
448
512
0.0031
0.0000
0.0000
0.0000
0.0155
0.0714
2.2603
0.0266
0.0643
0.0192
0.0550
2.0625
0.0169
4.5917
480
544
0.0000
0.0015
0.0000
0.0047
0.0141
0.0738
2.4192
0.0235
0.0688
0.0152
0.0693
2.1947
0.0248
4.9081
512
576
0.0016
0.0000
0.0000
0.0015
0.0155
0.0890
2.5460
0.0140
0.0764
0.0186
0.0615
2.3421
0.0126
5.1772
544
608
0.0016
0.0000
0.0000
0.0000
0.0173
0.0845
2.7013
0.0268
0.0780
0.0202
0.0970
2.4619
0.0221
5.5091
576
640
0.0032
0.0015
0.0000
0.0032
0.0187
0.0844
2.8546
0.0219
0.0843
0.0183
0.0971
2.6358
0.0189
5.8372
608
672
0.0000
0.0000
0.0000
0.0032
0.0205
0.0899
2.9945
0.0360
0.0876
0.0220
0.0750
2.7823
0.0251
6.1361
640
704
0.0047
0.0000
0.0000
0.0016
0.0219
0.1029
3.1301
0.0247
0.0904
0.0156
0.0950
2.9140
0.0189
6.4151
672
736
0.0000
0.0000
0.0000
0.0016
0.0266
0.1050
3.2447
0.0325
0.0969
0.0219
0.1086
3.0490
0.0410
6.7278
704
768
0.0016
0.0032
0.0000
0.0015
0.0112
0.1293
3.4037
0.0390
0.0986
0.0170
0.1075
3.1835
0.0408
736
800
0.0063
0.0015
0.0000
0.0015
0.0219
0.1297
3.5404
0.0362
0.1001
0.0236
0.1199
3.3242
0.0314
7.0321 7.3289
768
832
0.0015
0.0016
0.0000
0.0032
0.0092
0.1252
3.6822
0.0374
0.1078
0.0125
0.1367
3.4873
0.0361
7.6376
46
32
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
GE TOTAL (detik)
3.8124
0.0371
0.1109
0.0205
0.1307
3.6274
0.0402
7.9047
3.9658
0.0611
0.1171
0.0233
0.1250
3.7439
0.0311
8.2262
0.1408
4.1265
0.0327
0.1202
0.0124
0.1124
3.9331
0.0342
8.5469
0.1514
4.2481
0.0395
0.1250
0.0266
0.1407
4.0377
0.0423
8.8271
0.0188
0.1529
4.3981
0.0549
0.1313
0.0204
0.1404
4.1951
0.0453
9.1572
0.0016
0.0296
0.1703
4.5402
0.0371
0.1392
0.0285
0.1578
4.3361
0.0358
9.4762
0.0000
0.0251
0.1880
4.7432
0.0486
0.1408
0.0301
0.1590
4.5503
0.0387
9.9238
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
864
0.0016
0.0000
0.0000
0.0000
0.0112
0.1143
832
896
0.0047
0.0016
0.0000
0.0015
0.0204
0.1370
864
928
0.0032
0.0016
0.0000
0.0031
0.0315
896
960
0.0016
0.0000
0.0000
0.0000
0.0158
928
992
0.0016
0.0000
0.0000
0.0000
960
1024
0.0015
0.0000
0.0000
1000
1072
0.0015
0.0015
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey GE = Generation-Encryption
47
Lampiran 12 Rekapitulasi rata-rata uji running time decryption-verification AES-CCM dengan a = 32, n = 7, dan t = 8 AES-CBC-MAC
AES-COUNTER
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
TOTAL DV (detik)
0
64
0.0032
0.0000
0.0000
0.0063
0.0015
0.0093
0.2859
0.0015
0.0016
0.0015
0.0000
0.0780
0.0000
0.3856 0.6845
96
0.0046
0.0000
0.0000
0.0032
0.0032
0.0126
0.4262
0.0063
0.0077
0.0016
0.0096
0.2110
0.0031
64
128
0.0000
0.0000
0.0016
0.0000
0.0015
0.0205
0.5753
0.0063
0.0171
0.0031
0.0111
0.3675
0.0046
1.007
96
160
0.0045
0.0000
0.0000
0.0030
0.0016
0.0268
0.7066
0.0031
0.0172
0.0031
0.0142
0.5145
0.0078
1.2979
128
192
0.0064
0.0000
0.0000
0.0000
0.0015
0.0234
0.8434
0.0139
0.0203
0.0048
0.0234
0.6576
0.0032
1.5915
160
224
0.0015
0.0016
0.0000
0.0063
0.0016
0.0359
0.9878
0.0108
0.0266
0.0031
0.0121
0.7956
0.0079
1.8877
192
256
0.0016
0.0000
0.0000
0.0000
0.0110
0.0464
1.1297
0.0126
0.0344
0.0063
0.0436
0.9379
0.0093
2.2312
224
288
0.0016
0.0000
0.0000
0.0000
0.0064
0.0406
1.2782
0.0170
0.0405
0.0094
0.0393
1.0856
0.0157
2.5327
256
320
0.0046
0.0000
0.0000
0.0015
0.0062
0.0498
1.4196
0.0112
0.0470
0.0140
0.0390
1.2238
0.0076
2.8197
288
352
0.0000
0.0016
0.0000
0.0015
0.0060
0.0471
1.5735
0.0237
0.0546
0.0046
0.0358
1.3751
0.0140
3.1359
320
384
0.0016
0.0000
0.0000
0.0016
0.0077
0.0515
1.7171
0.0140
0.0577
0.0064
0.0735
1.5002
0.0108
3.4405
352
416
0.0015
0.0000
0.0000
0.0015
0.0168
0.0657
1.8569
0.0108
0.0596
0.0157
0.0653
1.6440
0.0108
3.7471
384
448
0.0016
0.0016
0.0000
0.0032
0.0077
0.0610
1.9953
0.0156
0.0625
0.0062
0.0578
1.8124
0.0268
4.0485
416
480
0.0016
0.0016
0.0000
0.0015
0.0093
0.0846
2.1176
0.0200
0.0735
0.0078
0.0576
1.9344
0.0203
4.3266
448
512
0.0063
0.0000
0.0000
0.0000
0.0140
0.0748
2.2865
0.0282
0.0798
0.0079
0.0781
2.0596
0.0216
4.6505
480
544
0.0031
0.0000
0.0000
0.0047
0.0108
0.0764
2.4223
0.0282
0.0796
0.0141
0.0795
2.1960
0.0218
4.9334
512
576
0.0015
0.0016
0.0000
0.0015
0.0188
0.0699
2.5576
0.0269
0.0859
0.0109
0.0672
2.3764
0.0264
5.2415
544
608
0.0046
0.0000
0.0000
0.0000
0.0078
0.0763
2.6846
0.0328
0.0875
0.0141
0.0669
2.5194
0.0331
5.5225
576
640
0.0031
0.0000
0.0016
0.0032
0.0143
0.1100
2.8419
0.0300
0.0954
0.0141
0.0748
2.6474
0.0313
5.8624
608
672
0.0000
0.0000
0.0000
0.0032
0.0172
0.1079
2.9830
0.0361
0.1015
0.0125
0.0893
2.7923
0.0232
6.1662
640
704
0.0031
0.0016
0.0000
0.0016
0.0234
0.0807
3.1345
0.0309
0.1108
0.0221
0.0890
2.9107
0.0313
6.435
672
736
0.0031
0.0015
0.0000
0.0016
0.0263
0.1074
3.2692
0.0218
0.1125
0.0277
0.1043
3.0602
0.0391
6.7701
704
768
0.0000
0.0015
0.0000
0.0015
0.0185
0.1285
3.4092
0.0437
0.1172
0.0092
0.1067
3.1998
0.0347
736
800
0.0000
0.0048
0.0000
0.0015
0.0172
0.1017
3.5363
0.0310
0.1250
0.0190
0.1091
3.3498
0.0343
7.069 7.3249
768
832
0.0000
0.0015
0.0000
0.0032
0.0267
0.1061
3.6851
0.0379
0.1296
0.0219
0.1167
3.5055
0.0392
7.6719
48
32
Lanjutan AES-CBC-MAC
AES-COUNTER
ARK (detik)
Pembangkitan Counter (detik)
SB (detik)
SR (detik)
MC (detik)
ARK (detik)
DV TOTAL (detik)
3.8145
0.0406
0.1328
0.0172
0.1139
3.6360
0.0423
7.9674
3.9597
0.0578
0.1454
0.0310
0.1560
3.7549
0.0232
8.2748
0.1500
4.1129
0.0409
0.1499
0.0142
0.1251
3.9443
0.0358
8.5981
0.1341
4.2856
0.0328
0.1515
0.0230
0.1164
4.0496
0.0375
8.8509
0.0186
0.1507
4.4265
0.0468
0.1688
0.0264
0.1708
4.2058
0.0421
9.2565
0.0016
0.0249
0.1186
4.5201
0.0611
0.1639
0.0311
0.1496
4.3443
0.0470
9.4622
0.0000
0.0205
0.1624
4.7825
0.0547
0.1641
0.0250
0.1684
4.5729
0.0314
9.9819
Payload (byte)
Data Terformat (byte)
Pemformatan Nonce (detik)
Pemformatan Associated Data (detik)
Pemformatan Payload (detik)
Ekspansi Kunci (detik)
SB (detik)
SR (detik)
MC (detik)
800
864
0.0016
0.0000
0.0000
0.0000
0.0281
0.1420
832
896
0.0015
0.0015
0.0000
0.0015
0.0216
0.1237
864
928
0.0031
0.0000
0.0000
0.0031
0.0219
896
960
0.0015
0.0015
0.0000
0.0000
0.0204
928
992
0.0000
0.0000
0.0000
0.0000
960
1024
0.0000
0.0000
0.0000
1000
1072
0.0000
0.0000
0.0000
Keterangan: SB = SubBytes SR = ShiftRows MC = MixColumns ARK = AddRoundKey DV = Decryption-Verification
49
50
Lampiran 13 Rekapitulasi rata-rata uji running time enkripsi AES-ECB Ukuran Pesan (byte)
Ukuran Pesan setelah Padding (byte)
Ekspansi Kunci (detik)
SubBytes (detik)
ShiftRows (detik)
MixColumns (detik)
AddRoundKey (detik)
Enkripsi (detik)
1
16
0.0031
0.0000
0.0015
0.0720
0.0047
0.0813
33
48
0.0031
0.0000
0.0031
0.2375
0.0000
0.2437
65
80
0.0016
0.0016
0.0092
0.3719
0.0048
0.3891
97
112
0.0032
0.0015
0.0142
0.4968
0.0077
0.5234
129
144
0.0000
0.0031
0.0223
0.6463
0.0062
0.6779
161
176
0.0016
0.0063
0.0344
0.8000
0.0032
0.8455
193
208
0.0063
0.0108
0.0361
0.9369
0.0158
1.0059
225
240
0.0000
0.0061
0.0528
1.0744
0.0077
1.1410
257
272
0.0064
0.0122
0.0416
1.2230
0.0045
1.2877
289
304
0.0048
0.0047
0.0530
1.3412
0.0127
1.4164
321
336
0.0064
0.0064
0.0487
1.4997
0.0125
1.5737
353
368
0.0046
0.0096
0.0625
1.6433
0.0108
1.7308
385
400
0.0063
0.0126
0.0655
1.7959
0.0202
1.9005
417
432
0.0000
0.0108
0.0878
1.9239
0.0219
2.0444
449
464
0.0016
0.0109
0.0636
2.0794
0.0248
2.1803
481
496
0.0047
0.0143
0.0691
2.2059
0.0218
2.3158
513
528
0.0015
0.0111
0.0931
2.3446
0.0268
2.4771
545
560
0.0031
0.0157
0.0816
2.5106
0.0220
2.6330
577
592
0.0079
0.0175
0.0564
2.6558
0.0158
2.7534
609
624
0.0062
0.0139
0.0984
2.7828
0.0282
2.9295
641
656
0.0031
0.0170
0.1106
2.9374
0.0436
3.1117
673
688
0.0032
0.0125
0.0845
3.0860
0.0301
3.2163
705
720
0.0095
0.0269
0.1115
3.1982
0.0282
3.3743
737
752
0.0048
0.0139
0.0895
3.3961
0.0218
3.5261
769
784
0.0062
0.0189
0.1201
3.5141
0.0358
3.6951
801
816
0.0048
0.0171
0.1196
3.6479
0.0327
3.8221
833
848
0.0062
0.0308
0.1703
3.7598
0.0451
4.0122
865
880
0.0062
0.0247
0.1401
3.9585
0.0359
4.1654
897
912
0.0063
0.0292
0.1439
4.0668
0.0421
4.2883
929
944
0.0046
0.0271
0.1387
4.2167
0.0315
4.4186
961
976
0.0061
0.0267
0.1458
4.3131
0.0451
4.5368
1000
1008
0.0016
0.0296
0.1722
4.5186
0.0387
4.7607
51
Lampiran 14 Rekapitulasi rata-rata uji running time dekripsi AES-ECB Ukuran Pesan (byte)
Ukuran Pesan Setelah Padding (byte)
Ekspansi Kunci (detik)
Invers SubBytes (detik)
Invers ShiftRows (detik)
Invers MixColumns (detik)
Invers AddRoundKey (detik)
Dekripsi (detik)
1
16
0.0031
0.0032
0.0046
0.0937
0.0015
0.1061
33
48
0.0031
0.0124
0.0046
0.2882
0.0047
0.3130
65
80
0.0016
0.0313
0.0156
0.5028
0.0031
0.5544
97
112
0.0032
0.0503
0.0139
0.7074
0.0048
0.7796
129
144
0.0000
0.0571
0.0249
0.9049
0.0112
0.9981
161
176
0.0016
0.0675
0.0297
1.0918
0.0064
1.1970
193
208
0.0063
0.0692
0.0296
1.3313
0.0140
1.4504
225
240
0.0000
0.1037
0.0448
1.4942
0.0239
1.6666
257
272
0.0064
0.1300
0.0519
1.6775
0.0125
1.8783
289
304
0.0048
0.1260
0.0434
1.9169
0.0142
2.1053
321
336
0.0064
0.1184
0.0595
2.1307
0.0109
2.3259
353
368
0.0046
0.1553
0.0678
2.2930
0.0143
2.5350
385
400
0.0063
0.1737
0.0687
2.5384
0.0187
2.8058
417
432
0.0000
0.1902
0.0822
2.7064
0.0221
3.0009
449
464
0.0016
0.1726
0.0640
2.9066
0.0143
3.1591
481
496
0.0047
0.1886
0.0718
3.1820
0.0249
3.4720
513
528
0.0015
0.2394
0.0858
3.2786
0.0189
3.6242
545
560
0.0031
0.2518
0.1011
3.4935
0.0233
3.8728
577
592
0.0079
0.2397
0.0970
3.6968
0.0248
4.0662
609
624
0.0062
0.2374
0.0800
3.8581
0.0252
4.2069
641
656
0.0031
0.2960
0.1141
4.1117
0.0329
4.5578
673
688
0.0032
0.3360
0.1215
4.3127
0.0358
4.8092
705
720
0.0095
0.3281
0.1143
4.5296
0.0438
5.0253
737
752
0.0048
0.2963
0.1377
4.7309
0.0423
5.2120
769
784
0.0062
0.3312
0.1362
4.8920
0.0483
5.4139
801
816
0.0048
0.3888
0.1281
5.1131
0.0404
5.6752
833
848
0.0062
0.3395
0.1409
5.3021
0.0442
5.8329
865
880
0.0062
0.3816
0.1820
5.4550
0.0452
6.0700
897
912
0.0063
0.3000
0.1298
5.7304
0.0389
6.2054
929
944
0.0046
0.3355
0.1611
5.8083
0.0486
6.3581
961
976
0.0061
0.3600
0.1528
6.1155
0.0453
6.6797
1000
1008
0.0016
0.3994
0.1784
6.2869
0.0753
6.9416