A review of Comparative Study of Rc4a and MD5 Security Algorithm to Guarantee Confidentiality and Integrity [Part 5: Last Edition] | BAHASA

in project •  7 days ago

Halo sahabat steemian's... Masih dalam pembahasan yang sama yaitu kelanjutan dari artikel sebelumnya "A review of Comparative Study of Rc4a and MD5 Security Algorithm to Guarantee Confidentiality and Integrity [Part 4] | BAHASA" yang telah aku kupas dalam beberapa tahapan sebagai mediasi pembelajaran di bidang Informatika. Mungkin ini sedikit membingungkan, akan tetapi apa yang aku coba terapkan merupakan satu dari sekian banyaknya metode pembelajaran didalam bidang Informatika yang dapat diterapkan oleh teman-teman semua. Untuk lebih jelasnya langsung saja simak berikut ini dimana pembahasannya meliputi pengujian terhadap sistem secara keseluruhan.

Pengujian Hasil Perhitungan MD5 Sistem

Setelah hasil dari proses enkripsi diperoleh yaitu file ciphertext maka selanjutnya adalah melakukan proses perhitungan MD5 dari file tersebut. Hasil dari proses ini dapat dilihat pada Gambar 4.7 sesuai dengan inputan file sebelumnya. Contoh lain dari proses perhitungan MD5 dapat dilihat pada Gambar 4.8 dengan pesan “Hello World!".

Gambar 1. Hasil Proses Perhitungan MD5 File

Setelah diperoleh kode MD5 seperti terlihat pada Gambar 1 maka selanjutnya kode MD5 tersebut disimpan dan dikirimkan kepada si penerima beserta dengan ciphertext yang telah disimpan sebelumnya. Kode MD5 ini nantinya akan digunakan oleh si penerima pesan untuk melakukan proses verifikasi sebelum melakukan dekripsi terhadap pesan yang diterima.

Gambar 2. Hasil Proses Perhitungan MD5

Pengujian Hasil Perhitungan MD5 Manual

Berikut adalah contoh implementasi algoritma MD5 dengan pesan “Hello World!" (Hossam & Moussa, circa 2000).

1. Penambahan bit-bit pengganjal (padding bits)

Pesan “Hello World!" memiliki panjang 12 byte dimana tiap-tiap byte diubah ke dalam bilangan desimal sesuai dengan kode ASCII seperti terlihat pada Gambar 3.

Gambar 3. Pesan Dalam Bentuk Desimal (Hossam & Moussa, circa 2000)

Pesan akan ditambahkan 448 – 12*8 = 352 bit pengganjal sehingga panjang pesan menjadi 96 + 352 = 448 bit. Bit-bit pengganjal terdiri dari sebuah bit 1 dan diikuti dengan bit 0 yang menjadi sisanya.

2. Penambahan nilai panjang pesan semula

Panjang pesan semula adalah 96 bit.

64 bit representasi dari 96 adalah 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100000 (secara low-order) seperti terlihat pada Gambar 4.

Gambar 4. Representasi Panjang Pesan Semula (Hossam & Moussa, circa 2000)

64 bit yang menyatakan panjang pesan semula ditambahkan ke hasil dari langkah sebelumnya. Jika sebelumnya panjang pesan 448 bit, maka hasil dari panjang pesan saat ini setelah ditambah 64 bit menjadi 512 bit seperti terlihat pada Gambar 5.

Gambar 5. Penambahan 64 bit pada Pesan (Hossam & Moussa, circa 2000)

3. Inisialisasi penyangga (buffer) MD

Empat word penyangga (A, B, C, D) digunakan untuk menghitung message digest. Setiap A, B, C, D merupakan register 32 bit. Register-register ini diinisialisasi ke dalam nilai hexadesimal, dengan ketentuan low-order terlebih dahulu.

Tabel 1. Nilai Buffer (A, B, C, D)

4. Pengolahan pesan dalam blok berukuran 512 bit

Pesan yang sebelumnya berukuran 512 bit dikelompokkan dalam word-word berukuran 32 bit sehingga 512 : 32 = 16 word.

Sekarang X menunjukkan 16 word masing-masing 32 bit seperti pada Gambar 6.

Gambar 6. Pesan Dalam Bentuk 16 Word (Hossam & Moussa, circa 2000)

Selanjutnya dilakukan perhitungan seperti berikut ini:

  • Misalkan [abcd k s i] pada operasi pertama [ABCD 0 7 1]
  • F(b, c, d) = F(B, C, D) = (B ∧ C) ∨ (∼B ∧ D) = (4023233417 ∧ 2562383102) ∨ (∼4023233417 ∧ 271733878) = 2562383102
  • (a + F(b,c,d) + X[k] + T[i]) = 1732584193 + 2562383102 + 1819043144 + 3614090360 = 9728100799 (1001000011110101110000100110111111)
  • S^n(X) = (X << n) OR (X >> 32-n)
  • n = 7 X = 9728100799 (1001000011110101110000100110111111)
  • X << 7 = 0111101011100001001101111110000000
  • X >> 25 = 0000000000000000000000000100100001
  • X >> 25 = 0111101011100001001101111110100001 = 8246321057
  • a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s) = (4023233417 + 8246321057) MOD (232) = 3679619882. Sekarang nilai a adalah 3679619882, b, c, dan d tidak mengalami perubahan.
  • Untuk iterasi 2, diperoleh nilai d adalah 2081685101 dan register yang lain tidak berubah.
  • Dari putaran keempat diperoleh nilai terakhir dari keempat register.
  • a = 538764524 ; d = 2077978953 ; c = 4184057696 ; b = 1186497226
  • A = A + a = (1732584193 + 538764524 ) MOD 232 = 2271348717 = 10000111 01100010 00000111 11101101 = 0x876207ED
  • B = B + b = (4023233417 + 1186497226) MOD 232 = 914763347 = 00110110 10000110 00101110 01010011 = 0x36862E53
  • C = C + c = (2562383102 + 4184057696) MOD 232 = 2451473502 = 10010010 00011110 10000100 01011110 = 0x921E845E
  • D = D + d = (271733878 + 2077978953) MOD 232 = 2349712831 = 10001100 00001101 11000101 10111111 = 0x8C0DC5BF

5. Output

Message digest menghasilkan output sebagai A, B, C, D yang dimulai dari A ke D secara low-order.

MD5 dari pesan “Hello World!” = 0xED076287532E86365E841E92BFC50D8C

Pengujian Hasil Dekripsi Sistem

Untuk melakukan proses dekripsi, maka tahap awal yang dilakukan adalah memilih menu dekripsi. Setelah itu lakukan langkah-langkah berikut ini untuk melakukan proses dekripsi.

  1. Tekan tombol Pilih File untuk memilih file teks (*.txt dan *.doc) yang akan didekripsi.
  2. Tekan tombol Cari Kode untuk memilih file kode MD5 yang diterima.
  3. Tekan tombol Verifikasi untuk melakukan verifikasi file.
  4. Lihat Hasil Verifikasi, jika hasilnya “Sesuai” maka file yang diterima masih asli.
  5. Masukkan kunci RC4A pada kolom yang telah disediakan.
  6. Tekan tombol Dekripsi untuk melakukan proses dekripsi.
  7. Tekan tombol Simpan untuk menyimpan hasil dekripsi/plaintext.

Contoh hasil proses dekripsi dapat dilihat pada Gambar 7 dengan masukan file E:\hasiltes.txt dan kode MD5 yang telah diperoleh sebelumnya serta kunci “ilkom12”.

Gambar 7. Hasil Proses Dekripsi

Pengujian Hasil Dekripsi Manual

Ciphertext yang akan didekripsi adalah ciphertext yang telah diperoleh pada enkripsi sebelumnya yaitu “HK”. Proses dekripsi sama seperti proses enkripsi sebelumnya. Jika pada proses enkripsi, plaintext di xor dengan keystream untuk menghasilkan ciphertext sementara pada proses dekripsi, ciphertext di xor dengan keystream untuk menghasilkan plaintext.

Tabel 2. Proses XOR Keystream dengan Ciphertext pada Dekripsi

Sebagaimana terlihat pada Tabel 4.3, ciphertext “HK” di xor dengan keystream 1 kemudian di xor lagi dengan keystream 2 sehingga dihasilkan plaintext semula yaitu “HI”. Keystream 1 dan keystream 2 diperoleh dengan cara yang sama seperti pada proses enkripsi sebelumnya.

KESIMPULAN

Kesimpulan yang dapat di ambil dari perancangan dalam penelitian ini telah mampu melakukan proses pengamanan file teks dengan menggunakan algoritma RC4A. Sehingga aplikasi yang dirancang mampu mengembalikan file teks hasil enkripsi menjadi file teks semula sebelum dienkripsi. Lalu aplikasi yang dirancang dalam penelitian ini juga telah mampu melakukan proses verifikasi keutuhan file dengan menggunakan algoritma MD5. Algoritma MD5 dapat digunakan untuk memverifikasi keutuhan dari suatu file dengan cara menghitung nilai MD5 dari file tersebut dan membandingkannya dengan nilai MD5 yang diperoleh dari si pengirim.

PART 5

Finish...

Wondering How Steemit Works, Read Steemit FAQ?

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!