7
wordatau 8 bytedan dapat dihitung dengan persamaan U = (L + 1) 256 + i, dengani adalah index perulangan fungsi SEQ. d V merupakan ID yang panjangnya 1 word atau 8 byte dan bernilai r||L||z||p||keylen||d. e Cmerupakan rangkaian byte dengan panjang c =16 wordatau 128 byteyang bertindak sebagai initial vector. Pada iterasi pertama,C akan bernilai 0, namun pada iterasi selanjutnya akan berisi 16 word terakhir hasil kompresi iterasi sebelumnya. f
B merupakan blok pesan yang telah mengalami proses message padding.
5 Fungsi Kompresi Fungsi kompresi mendapatkan input dari fungsi SEQ, yaitu Ci = fr(Q||K||U||Ci-1||Bi). Input yang diperoleh tersebut akan diubah dalam bentuk array, yang setiap elemen array bernilai 1 word (8 byte atau 64 bit). Bahasa pemrograman Visual C# menggunakan tipe data UInt64 untuk merepresentasikan 1 word. Fungsi yang kompresi menghasilkan outputCi panjangnya 16 word. Jika blok pesan jumlahnya lebih dari 1, Cidigunakan kembali sebagai inputfungsi kompresi untuk tahap selanjutnya. Setiap iterasi pada fungsi kompresi akan dilakukan sebanyak 16 kali. 6 Output Output yang dihasilkan adalah message digest yaitu Ci sepanjang 16 wordyang lalu diubah menjadistring. Sistem MD6 akan memberikan rangkaian byteoutput sepanjang d yang diperoleh dengan cara mengambil dbit terakhir dari Ci. Lingkungan Pengembangan Penelitian ini dilakukan dengan menggunakan bantuan beberapa perangkat keras dan perangkat lunak. Spesifikasi dari perangkat keras dan perangkat lunakyang digunakan adalah sebagai berikut: Perangkat lunak: • Sistem Operasi Windows7 Professional 32bit. • Visual C#. • Vector Magic v1.15. • Adobe IllustratorCS5. Perangkat keras: • • • •
ProcessorIntel® Core™ 2 Duo 2.2 GHz. Memori DDR3 RAM 2.00 GB. Harddisk 320 GB. Monitor dengan resolusi 1366x768.
• Mouse dan keyboard. Analisis Pada tahap analisis hasil, dilakukan analisis terhadap algoritme MD6. Hal-hal yang akan dilakukan adalah: 1 Menghitung kompleksitas algoritme MD6. 2 Melakukan perhitungan digestdariberkas ijazah digital.
message
3 Membandingkan waktu komputasi perhitungan message digest mengggunakan algortime MD6 dan algoritme MD5 terhadap 12 berkasteks dengan ukuran berbeda. 4 Menguji apakah MD6 dapat memperbaiki kesalahan algoritme sebelumnya (MD5) dalam mengatasi collision dengan cara melakukan perhitungan message digest terhadap string yang menyebabkan collision pada algoritme MD5.
HASIL DAN PEMBAHASAN Kompleksitas Algoritme MD6 Pemrosesan algoritme MD6 dilakukan secara sekuensial sehingga setiap instruksi program dieksekusi baris perbaris secara berturut-turut. Secara garis besar algoritme MD6 dapat dikelompokkan ke dalam langkahlangkah berikut: 1 2 3 4 5 6
Praproses. Messages padding. Key padding. Fungsi SEQ. Fungsi Kompresi. Output.
Waktu eksekusi pada langkah 1, 2, 3, 4, dan 6 adalah konstan (misalkan α) karena tidak dipengaruhi ukuran input. Langkah 5memiliki waktu komputasi (misalkan ε) terdiri atas minimal 80 putaran untuk setiap blok pesan. Setiap putaran terdiri atas 16 langkah yang masing-masing terdiri atas 10 operasi dasar sehingga untuk input berukuran n blok pesan diperlukan waktu εn. Secara keseluruhan, waktu eksekusi algoritme MD6 adalah εn+ α, dengan ε dan α adalah suatu konstanta dan n adalah jumlah blok input. Notasi O untuk kasus terburuk pada algoritme MD6 adalah: (10)
8
Gambar 7Tampilan sistem. Kompleksitas dalam lingkup O(n).
yang diperoleh berada
Integritas BerkasIjazah Digital Sistem yang dibuat memiliki dua mode dalam operasinya, yaitu menghitung message digestdan menguji integritas ijazah digital. Sistem memiliki dua input yang bersifat opsional, yaitu panjang message digest (d) dan nilai kunci (K) serta dua input wajib, yaitu file ijazah digital dan filemessage digest seperti dapat dilihat pada Gambar 7. a Menghitung message digest ijazah digital Dalam mode sistem ini, filemessage digest adalah sebuah berkasteks yang akan diisi message digest ijazah digital, nilai d, dan nilai K yang dapat dilihat pada Gambar 8. Setiap kombinasi nilai d dan K yang berbeda akan menghasilkan message digest yang berbeda. Terdapat beberapa kemungkinan dalam proses perhitungan message digest. Kemungkinan pertama sampai kemungkinan keempat menggunakan berkas ijazah digital pada Lampiran 1.
Gambar 8Berkasmessage digest. 1 Kemungkinan pertama Kemungkinan pertama terjadi jika pengguna sistem tidak memberikannilai d dan K. Sistem akan menggunakan nilai ddefault, yaitu d = 256 dan K akan dianggap bernilai 0 sepanjang 8 word atau 64 byte.Sistem akan menghasilkan message digestberdasarkan input-input yang telah diberikan, yaitu: 40dde019dedcc61363525866170756092272 f87d0a1ef62fab9a3ee3aa29fdf2. 2 Kemungkinan kedua Kemungkinan kedua terjadi jika pengguna sistem tidak memberikan nilaiddan hanya memberikan nilai K,misalnya K=“abc”. Sistem akan menggunakan nilai ddefault, yaitu d = 256.Sistem akan menghasilkan message digestberdasarkan input-input yang telah diberikan, yaitu:6fb2defded0eb9916f11c95888339642 1da05ebbc98 806999a4233f361cfc2ef. 3 Kemungkinan ketiga Kemungkinan ketiga terjadi jika pengguna sistem memberikan nilaid, misalnya d=512, namun tidak memberikan nilai K. Sistem akan menggunakan nilai ddefault, yaitu d = 256.Sistem akan menghasilkan message digestberdasarkan input-input yang telah diberikan,
9
yaitu:cc6b178313b2ee173c336b9291b632bc b69d18640e946facc00e16426819c8ca73454 c63d73757b45fb2fddb35ba03420d2d61400 9627c0bb20406b10fa6d821. 4 Kemungkinan keempat Kemungkinan keempat terjadi jika pengguna sistem memberikan nilai d, yaitu d=512 dan nilai K, yaitu K=”abc”.Sistem akan menghasilkan message digestberdasarkan input-input yang telah diberikan, yaitu:53f51c3d04dd54d7d8c2f40 69d2bfac8e8b35961eba12b326309808961c 3ccb644178ad2c923024e84830ee9e2657da5 51a3659c74fdb22111ac9ca187fc9d87.
Pada mode ini akan diuji apakah message digest ijazah digital yang menjadi input M sama dengan message digest yang ada pada berkasoutput dan harus sesuai dengan input opsional yang tertera pada berkasoutput, karena message digest yang dihasilkan akan berbeda untuk tiap kombinasi input opsional. Jika hasilnya sama, sistem akan menampilkan pesan seperti pada Gambar 9 dan jika tidak sama, sistem akan menampilkan pesan seperti pada Gambar 10.
5 Kemungkinan kelima Kemungkinan kelima terjadi jika pengguna menggunakan berkas ijazah digital yang telah dimodifikasi.Dalam hal ini telah diubah nama yang tertera di dalam ijazah digital menggunakan softwareAdobe Illustrator. Berkas ijazah digital yang telah dimodifikasi tersebut dapat dilihat pada Lampiran 2. Pengguna juga tidak memberikan input panjang message digest (d) dan input kunci (K), seperti pada kemungkinan pertama. Sistem akan menghasilkan message digestyang berbeda dengan message digest pada kemungkinan pertama, yaitu:6df750f8f1dd88d63f6a4d7e7 7e3a02a6b75efb6bb1d0f2eb8845e10cd35c9 a3. Output yang dihasilkan oleh kemungkinan pertama sampai kemungkinan keempat semuanya berbeda. Hal ini disebabkan karena setiap kemungkinan memiliki input opsional berbeda-beda, sehingga dapat disimpulkan bahwa input opsional juga sangat mempengaruhi message digestyang dihasilkan. Kemungkinan kelima menggunakan berkas ijazah digital yang telah dimodifikasi dan memiliki perbedaan dengan berkas ijazah digital yang ada pada Lampiran 1 sehingga menghasilkan message digest yang berbeda jika dibandingkan dengan message digest pada kemungkinan pertama yang memiliki kombinasi opsional yang serupa. b Menguji message digestijazah digital Pada mode sistem ini file message digest adalah berkasteks hasil perhitungan message digest pada mode pertama yang berisi message digest, nilai d, dan nilai K. Diasumsikan bahwa setiap pemilik ijazah juga akan mendapatkan berkas bersamaan dengan ijazah digital dan ijazah yang tercetak.
Gambar 9Pesan yang ditampilkan sistem jika message digest ijazah digital sama dengan message digest yang ada dalam berkasoutput.
Gambar 10Pesan yang ditampilkan sistem jika message digest ijazah digital tidak sama dengan message digest yang ada dalam berkasoutput. Sistem Ijazah Digital Sistem ijazah digital merupakan sebuah gagasan yang dapatdikembangkan oleh pihak lainuntuk memudahkan proses legalisir ijazah. Proses legalisir ijazah secara digital memudahkan para alumni yang berdomisili jauh dari kampus IPB. Sistem ijazah digital juga memudahkan suatu perusahaan untuk memeriksa kesahan ijazah dari calon pekerjanya. Sistem ijazah digital yang ingin dibangun akan menggunakan fungsi hash MD6. Teknik kriptografi fungsi hash biasanya digunakan untuk memeriksa keutuhan atau integritas suatu data. Integritas suatu ijazah digital diperlukan saat seseorang ingin memeriksa apakah ijazahnya masih asli atau telah mengalami modifikasi. Integritas ijazah digital juga diperlukan sebelum seseorang melakukan proses legalisir ijazah secara digital. Fungsi hash MD6 selain digunakan untuk
10
memberikan jaminan integritas, juga dapat memberikan jaminan autentikasi, yaitu suatu teknik yang digunakan untuk menjamin entitas atau informasi yang sah, yang belum dimanipulasi oleh pihak-pihak yang tidak berwenang.Sistem ijazah digital dapat diimplementasikan secara online maupun offline.
dapat digunakan untuk memeriksa keutuhan atau integritas suatu ijazah digital. Berkas ijazah digital yang disimpan dalam harddiskmemungkinkan berkas ijazah digital tersebut corrupt yang dapat disebabkan oleh virus komputer. Berkas ijazah digital yang corrupt akan menghasilkan message digest yang berbeda.
a Sistem ijazah digital secara online
MD6 yang diimplementasikan secara offline dapat digunakan sebagai jaminan integritas dengan cara membandingkan message digest yang dihasilkan oleh ijazah digital dengan kombinasi nilai d dan K yang tercantum dalam berkas teks dengan message digest yang ada pada berkas teks. Pengecekan ijazah digital ini dapat dilakukan sebelum seseorang ingin melamar pekerjaan di sebuah perusahaan atau saat ingin melegalisir ijazah digital yang dimilikinya untuk memastikan bahwa ijazah digital yang dimilikinya masih asli dan belum mengalami modifikasi. Jika message digest yang dihasilkan berbeda, pemilik ijazah digital dapat meminta kembali salinan ijazah digitalnya pada pihak IPB.
Sistem ijazah digital menggunakan fungsi hash MD6 dapat diimplementasikan secara online untuk memudahkan akses pengguna terhadap sistem ini. Pada penelitian ini telah dijelaskan bahwa setiap alumni dari IPB diasumsikan akan menerima sebuah berkas teks bersamaan dengan ijazah digital dan ijazah yang tercetak. Berkas teks itu berisi message digest dari ijazah digital beserta nilai ddanK. Fungsi hash MD6 juga dapat digunakan untuk memeriksa autentikasi pesan suatu ijazah digital karena telah dilengkapi kunci. MD6 dapat digunakan sebagai jaminan autentikasi ijazah digital jika kunci yang digunakan bersifat rahasia.Pengguna sistem tidak perlu memasukkan nilai K yang ada dalam berkas teks ke dalam sistem. Nilai K untuk setiap ijazah digital akan disimpan dalam database berdasarkan NRP setiap pemiliki ijazah digital. Pada saat ingin melakukan proses autentikasi, pengguna sistem atau pemilik ijazah digital akan diminta memasukkan NRP.Dari NRP tersebut,akan diperoleh kunci yang tersimpan dalam database sehingga kunci yang digunakan untuk memproses message digest ijazah digital hanya dimiliki oleh pihak IPB. MD6 yang diimplementasikan secara onlinelebih baik menggunakan panjang message digest yang sama agar lebih memudahkan dan efisien dalam penyimpanan nilai message digestdi database, yaitu menggunakan nilai defaultd=256 sehingga pengguna tidak perlu memasukkan nilai d pada sistem.Message digest yang dihasilkan oleh sistem MD6 kemudian akan dibandingkan dengan message digest ijazah digital yang ada pada database. Jika hasilnya sama,dapat dikatakan bahwa ijazah digital autentik. Dari sistem ini juga dapat dilihat apakah ijazah digital masih asli atau telah mengalami modifikasi dengan membandingkan hasil message digest. b Sistem ijazah digital secara offline Sistem ijazah digital menggunakan fungsi hash MD6 juga dapat diimplementasikan secara offline seperti yang dilakukan pada penelitian ini. MD6 yang diimplementasikan secara offline
Analisis Kecepatan dan Hasil Implementasi Dari hasil implementasi dapat diperoleh message digestdan kecepatan algoritme MD6. Pengukuran kecepatan komputasi sistem menggunakan berkas teks dengan ukuran yang bervariasi, dari 1 KB-2048 KB. Pengukuran kecepatan waktu komputasi dilakukan dengan membandingkan waktu komputasi fungsi hash MD6 dengan fungsi hash MD5. Algoritme MD5 tidak memiliki input kunci (K) sehingga untuk membandingkan kecepatan antara MD5 dengan MD6, maka pada algoritme MD6 tidak menggunakan input K. Sistem MD5 yang digunakan juga dibangun menggunakan bahasa pemrograman C#.Hasil perbandingan kecepatan komputasi MD5 dan MD6 disajikan pada Tabel 4. Tabel4 Hasilperbandingankecepatankomputasi Ukuran input
Waktu (detik)
(KB)
MD5
1
0.003
0.001
2
0.003
0.001
4
0.004
0.002
8
0.004
0.005
16
0.003
0.01
32
0.005
0.019
MD6
11
64
0.003
0.039
128
0.008
0.083
Tabel 4 Hasilperbandingankecepatankomputasi (Lanjutan) Ukuran input
Waktu (detik)
(KB)
MD5
256
0.009
1.035
512
0.009
2.083
1024
0.015
5.069
2048
0.022
11.078
MD6
Berdasarkan hasil pengukuran kecepatan pada Tabel 4, MD6 memerlukan rata-rata waktu lebih banyak untuk memproses input hingga menghasilkan message digest dibandingkan dengan MD5. Untuk menggambarkan keadaan tersebut, diberikan grafik hubungan antara kecepatan komputasi MD6 dan MD5 terhadap ukuran berkas pada Gambar 11.
Waktu kom[utasi (detik)
Salah satu properti yang dapat menyatakan suatu fungsi hash aman secara kriptografik adalah collision resistance atau ketahanan terhadap collision. Menurut Wang dan Yu (2005) telah ditemukan adanya collisionpada algoritme MD5. Terdapat dua string berbeda yang menghasilkan message digestyang sama jika dihitung menggunakan MD5. Hal tersebut dijelaskan pada Tabel 5.
10
6
1 Pada fungsi kompresi, MD6 memiliki ukuran blok yang lebih besar (512byte) yang terdiri atas 128 byte chunk dan 384 byte pesan jika dibandingkan dengan MD5 (512 bit atau 64 byte). 2 MD6 juga memiliki lebih banyak konstanta unik, yaitu Q yang berupa array sebanyak 15 dan memiliki panjang 120 byte dan memiliki chunk sebesar 16 word atau 128 byte, sedangkan MD5 memiliki 4 buah bufferyang masing-masing panjangnya 32 bit dan jika dijumlahkan panjangnyahanya 16 byte. 3 Fungsi kompresi pada MD6 terdiri atas minimal 80 putaran yang dapat dihitungmenggunakan persamaan 2, dan pada tiap putaran terdiri atas 16 langkah. Setiap langkah terdiri atas 10 operasi dasar terhadap tiap input blok pesan, sedangkan MD5 hanya terdiri atas 4 putaran dan setiap putaran terdiri atas 16 kali operasi dasar. Analisis Keamanan Algoritme MD6
12
8
Dapat dilihat bahwa MD6 memiliki waktu komputasi yang lebih lambat daripada MD5.Hal tersebut dimungkinkan oleh beberapa hal berikut:
MD5 MD6
4 2 0
Ukuran file (KB)
Gambar11 Hubunganwaktukomputasi MD5 dan MD6 terhadapukuranberkas. Tabel 5Perbandingan message digest menggunakan MD5 dan MD6 Input String 1
String 2
d131dd02c5e6eec4 693d9a0698aff95c 2fcab58712467eab 4004583eb8fb7f89 55ad340609f4b302 83e488832571415a 085125e8f7cdc99f d91dbdf280373c5b d8823e3156348f5b ae6dacd436c919c6 dd53e2b487da03fd 02396306d248cda0 e99f33420f577ee8 ce54b67080a80d1e c69821bcb6a88393 96f9652b6ff72a70 d131dd02c5e6eec4 693d9a0698aff95c 2fcab50712467eab 4004583eb8fb7f89 55ad340609f4b302 83e4888325f1415a 085125e8f7cdc99f d91dbd7280373c5b d8823e3156348f5b ae6dacd436c919c6 dd53e23487da03fd 02396306d248cda0 e99f33420f577ee8 ce54b67080280d1e c69821bcb6a88393 96f965ab6ff72a70
Message digest MD5
Message digest MD6
79054025255fb1a2 6e4bc422aef54eb4
96ad38206644df565a 1364bfd179721883b 97005b7bc0f6235942 27005501e46
79054025255fb1a2 6e4bc422aef54eb4
c8c94c3fbdcd268d00 dbc13a71f7e7f57cf6c 4b679ed9314708e95 01fb981055