Implementasi Algoritma Rc4a Dan Md5 Untuk Menjamin Confidentiality Dan Integrity Pada File Teks Chapter III V

BAB 3
ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem
Analisis sistem adalah teknik pemecahan masalah yang menguraikan bagian-bagian
komponen dengan mempelajari seberapa baik bagian-bagian komponen tersebut
bekerja dan berinteraksi dalam mencapai tujuan (Fatta, 2007). Analisis sistem
dilakukan untuk mengidentifikasi permasalahan-permasalahan yang ada sehingga
sistem dapat berjalan sebagaimana mestinya. Pada penelitian ini terdapat dua analisis
sistem yang dilakukan yaitu analisis masalah dan analisis kebutuhan.
3.1.1 Analisis Masalah
Permasalahan yang dibahas dalam penelitian ini adalah bagaimana cara menjaga
kerahasiaan suatu pesan atau informasi dari pihak-pihak yang tidak berwenang yang
menginginkan informasi tersebut serta dapat menjamin bahwa informasi yang
diperoleh masih utuh atau tidak mengalami perubahan.
Untuk mengidentifikasi masalah tersebut digunakan diagram Ishikawa
(fishbone diagram). Diagram Ishikawa berbentuk seperti ikan yang terdiri dari kepala
ikan (fish’s head) dan tulang-tulang ikan (fish’s bones). Masalah yang diidentifikasi
terletak pada bagian kepala ikan. Sementara pada bagian tulangnya menggambarkan
penyebab-penyebab dari masalah tersebut. Diagram Ishikawa pada sistem ini
ditunjukkan pada Gambar 3.1.


Universitas Sumatera Utara

17

Gambar 3.1 Diagram Ishikawa
3.1.2 Analisis Kebutuhan
Dalam membangun sebuah sistem, perlu dilakukan tahap analisis kebutuhan sistem
untuk mengetahui kebutuhan yang diperlukan oleh sistem secara menyeluruh. Analisis
kebutuhan sistem dapat dikelompokkan menjadi 2 bagian yaitu kebutuhan fungsional
dan kebutuhan non-fungsional.
3.1.2.1 Kebutuhan Fungsional
Kebutuhan fungsional yang harus dipenuhi dari sistem yang dirancang adalah sebagai
berikut:
1. Sistem dapat melakukan enkripsi data terhadap file teks dengan menggunakan
algoritma RC4A.
2. Sistem menghitung nilai hash dari hasil enkripsi (ciphertext) dengan
menggunakan algoritma MD5.
3. Sistem dapat memverifikasi keutuhan file yang diterima dengan mencocokkan
nilai hash yang ada.

4. Sistem dapat mengembalikan pesan atau file ke bentuk semula, yaitu dengan
mendekripsi kembali ciphertext sesuai dengan kunci yang digunakan pada
proses enkripsi.

Universitas Sumatera Utara

18

3.1.2.2 Kebutuhan Non-Fungsional
Kebutuhan non-fungsional adalah kebutuhan yang berisi properti perilaku yang
dimiliki oleh sistem (Fatta, 2007). Kebutuhan non-fungsional dari sistem yang
dirancang adalah sebagai berikut:
1. Kinerja
Sistem yang dibangun dapat menampilkan hasil dari fungsi kriptografi yang
dilakukan yaitu enkripsi dan dekripsi.
2. Informasi
Sistem yang dibangun mampu menampilkan pesan ketika nilai hash file yang
dihitung dari sistem tidak sama dengan nilai hash yang diterima.
3. Mudah dipelajari dan digunakan
Sistem yang dibangun bersifat user friendly sehingga sistem dapat dengan

mudah dipelajari dan digunakan oleh pengguna.
4. Hemat biaya
Sistem yang dibangun tidak memerlukan perangkat tambahan maupun sistem
pendukung dalam penggunaannya.

3.2 Pemodelan Sistem
Pemodelan sistem dilakukan untuk menunjukkan gambaran dari sistem yang akan
dibangun, bagaimana interaksi antar objek yang ada pada sistem, serta hubungan yang
terjadi di dalamnya. Pada penelitian ini digunakan pemodelan UML (Unified
Modeling Language) untuk mendesain serta merancang sistem. Model UML yang
digunakan yaitu use case diagram dan activity diagram.
3.2.1 Use Case Diagram
Use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem. Use
case mendeskripsikan interaksi antara para pengguna sistem dengan sistem itu sendiri,
dengan menunjukkan gambaran bagaimana sistem tersebut digunakan. Dalam use
case, para pengguna disebut sebagai aktor. Aktor merupakan sebuah peran yang
dimainkan seorang pengguna dalam kaitannya dengan sistem. Use case diagram

Universitas Sumatera Utara


19

menampilkan aktor, use case, dan hubungan antar keduanya (Fowler, 2004). Use case
diagram dari sistem ditunjukkan pada Gambar 3.2.

Gambar 3.2 Use Case Diagram Sistem

Narasi use case Enkripsi File dapat dilihat pada Tabel 3.1.
Tabel 3.1 Use Case Enkripsi File
Enkripsi File

Nama
Aktor

User

Deskripsi

Use case ini mendeskripsikan proses enkripsi file dengan
algoritma RC4A


Alur Utama

Alur Alternatif

-

User memilih file yang akan dienkripsi

-

User memasukkan kunci yang telah disepakati

User dapat memasukkan plaintext secara langsung

Universitas Sumatera Utara

20

Prakondisi


-

Pasca Kondisi

User mendapatkan hasil enkripsi plaintext

Narasi use case Membangkitkan Kode MD5 dapat dilihat pada Tabel 3.2.
Tabel 3.2 Use Case Membangkitkan Kode MD5
Nama

Membangkitkan Kode MD5

Aktor

User

Deskripsi

Use case ini mendeskripsikan proses untuk mendapatkan kode

hash MD5

Alur Utama

User menekan tombol Proses MD5

Alur Alternatif

User dapat memasukkan secara langsung kata yang ingin
dihitung kode hash MD5 nya

Prakondisi

User sudah mendapatkan hasil enkripsi file berupa ciphertext

Pasca Kondisi

User mendapatkan hasil perhitungan kode MD5

Narasi use case Verifikasi File dapat dilihat pada Tabel 3.3.

Tabel 3.3 Use Case Verifikasi File
Verifikasi File

Nama
Aktor

User

Deskripsi

Use case ini mendeskripsikan proses untuk memverifikasi file
dengan cara membandingkan kode MD5 yang diterima dari si
pengirim dengan kode MD5 yang dihasilkan sistem

Alur Utama

User memilih file yang akan diverifikasi

Universitas Sumatera Utara


21

Alur Alternatif

-

Prakondisi

-

Pasca Kondisi

User mendapatkan hasil proses verifikasi

Narasi use case Dekripsi File dapat dilihat pada Tabel 3.4.
Tabel 3.4 Use Case Dekripsi File
Dekripsi File

Nama
Aktor


User

Deskripsi

Use case ini mendeskripsikan proses dekripsi file dengan
algoritma RC4A

Alur Utama

-

User memilih file yang akan didekripsi

-

User memasukkan kunci yang telah disepakati

Alur Alternatif


-

Prakondisi

User sudah mendapatkan hasil verifikasi file

Pasca Kondisi

User mendapatkan hasil proses dekripsi (plaintext)

3.2.2 Activity Diagram
Activity diagram adalah teknik yang digunakan untuk menggambarkan logika prosedural,
proses bisnis, dan jalur kerja (Fowler, 2004). Activity diagram pada sistem ini ditunjukkan
pada Gambar 3.3.

Universitas Sumatera Utara

22

Gambar 3.3 Activity Diagram

3.3 Flowchart
Flowchart merupakan gambaran atau bagan yang memperlihatkan urutan dan
hubungan antar proses. Berikut adalah flowchart dari sistem yang akan dibangun:
3.3.1 Flowchart Sistem
Flowchart dari sistem dapat dilihat pada Gambar 3.4.

Universitas Sumatera Utara

23

Gambar 3.4 Flowchart Sistem

3.3.2 Flowchart Algoritma RC4A
Algoritma RC4A menggunakan proses KSA dan PRGA yang sama dengan
algoritma RC4. Flowchart dari algoritma RC4 dapat dilihat pada Gambar 3.5.
Sementara flowchart dari algoritma RC4A untuk proses enkripsi dan dekripsinya
masing-masing dapat dilihat pada Gambar 3.6 dan Gambar 3.7.

Universitas Sumatera Utara

24

Gambar 3.5 Flowchart Algoritma RC4

Universitas Sumatera Utara

25

Gambar 3.6 Flowchart Enkripsi Algoritma RC4A

Universitas Sumatera Utara

26

Gambar 3.7 Flowchart Dekripsi Algoritma RC4A

3.4 Perancangan Antarmuka Sistem
Perancangan antarmuka merupakan desain awal dari tampilan sistem yang akan
dibangun. Perancangan antarmuka digunakan untuk memberikan kemudahan kepada
pengguna sistem.
3.4.1 Menu Utama
Menu utama pada sistem terdiri dari satu form utama dengan beberapa menu tab yaitu
menu enkripsi, dekripsi, bantuan, dan tentang. Menu tersebut memiliki fungsinya
masing-masing dan dapat diakses secara langsung oleh pengguna.

Universitas Sumatera Utara

27

3.4.1.1 Menu Enkripsi
Enkripsi

Dekripsi
1

Bantuan
2

3

Tentang

5

4
9

14

15

6

10

7

11

8

13

12

Gambar 3.8 Menu Enkripsi
Keterangan :
1.

Tab Enkripsi untuk menampilkan menu enkripsi.

2.

Tab Dekripsi untuk menampilkan menu dekripsi.

3.

Tab Bantuan untuk menampilkan menu bantuan.

4.

Tab Tentang untuk menampilkan menu tentang.

5.

TextBox untuk menampilkan nama file plaintext.

6.

TextBox untuk memasukkan kunci.

7.

RichTextBox untuk menampilkan ciphertext.

8.

TextBox untuk menampilkan hash MD5.

9.

Button untuk memilih file yang akan dienkripsi.

10. Button untuk melakukan proses enkripsi.

Universitas Sumatera Utara

28

11. Button untuk menyimpan ciphertext yang dihasilkan.
12. Button untuk melakukan proses perhitungan nilai MD5.
13. Button untuk menyimpan kode MD5.
14. RichTextBox untuk menampilkan plaintext.
15. Button untuk menghapus data yang digunakan sebelumnya.

3.4.1.2 Menu Dekripsi
Enkripsi

Dekripsi
1

Bantuan
2

Tentang
3

4

5

9

15

16

6

11

10

12

7

8

13

14

Gambar 3.9 Menu Dekripsi
Keterangan :
1.

Tab Enkripsi untuk menampilkan menu enkripsi.

2.

Tab Dekripsi untuk menampilkan menu dekripsi.

3.

Tab Bantuan untuk menampilkan menu bantuan.

4.

Tab Tentang untuk menampilkan menu tentang.

5.

TextBox untuk menampilkan nama file ciphertext.

Universitas Sumatera Utara

29

6.

TextBox untuk memasukkan kode MD5.

7.

TextBox untuk memasukkan kunci.

8.

RichTextBox untuk menampilkan plaintext.

9.

Button untuk memilih file yang akan didekripsi.

10. Button untuk memilih file yang berisi kode MD5.
11. Button untuk melakukan proses verifikasi.
12. Label untuk menampilkan hasil proses verifikasi.
13. Button untuk melakukan proses dekripsi.
14. Button untuk menyimpan plaintext.
15. RichTextBox untuk menampilkan ciphertext.
16. Button untuk menghapus data yang digunakan sebelumnya.

3.4.1.3 Menu Bantuan
Menu bantuan berisi informasi mengenai cara penggunaan sistem.
Enkripsi

Dekripsi
1

Bantuan
2

Tentang
3

4
5

6

Gambar 3.10 Menu Bantuan
Keterangan :
1.

Tab Enkripsi untuk menampilkan menu enkripsi.

Universitas Sumatera Utara

30

2.

Tab Dekripsi untuk menampilkan menu dekripsi.

3.

Tab Bantuan untuk menampilkan menu bantuan.

4.

Tab Tentang untuk menampilkan menu tentang.

5.

Label untuk menampilkan informasi mengenai cara untuk mengenkripsi file.

6.

Label untuk menampilkan informasi mengenai cara untuk mendekripsi file.

3.4.1.4 Menu Tentang
Enkripsi

Dekripsi
1

Bantuan
2

Tentang
3

4

5

6

7

Gambar 3.11 Menu Tentang
Keterangan :
1.

Tab Enkripsi untuk menampilkan menu enkripsi.

2.

Tab Dekripsi untuk menampilkan menu dekripsi.

3.

Tab Bantuan untuk menampilkan menu bantuan.

4.

Tab Tentang untuk menampilkan menu tentang.

5.

Label untuk menampilkan informasi mengenai aplikasi.

6.

PictureBox untuk menampilkan gambar.

7.

Label untuk menampilkan informasi mengenai aplikasi.

Universitas Sumatera Utara

BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem
Setelah melakukan tahap analisis dan perancangan sistem maka tahapan yang
dilakukan selanjutnya adalah implementasi sistem. Sistem ini dibangun dengan
menggunakan bahasa pemrograman C#. Perangkat lunak yang digunakan sebagai
Integrated Development Environment (IDE) adalah SharpDevelop versi 4, 3.
Pada sistem ini terdapat satu form utama dengan beberapa menu tab yaitu
menu enkripsi, dekripsi, bantuan, dan tentang.
4.1.1 Menu Enkripsi
Menu enkripsi merupakan menu yang pertama kali muncul pada saat aplikasi
dijalankan. Pada menu ini tersedia dua RichTextBox yang masing-masing berfungsi
untuk menampilkan isi dari file teks asli dan hasil ciphertext yang diperoleh.
Menu enkripsi berisi tentang proses enkripsi dengan menggunakan algoritma
RC4A dan juga proses untuk menghasilkan nilai hash MD5. Sehingga terdapat dua
output yang akan diperoleh dari menu ini, yakni file berupa ciphertext dan kode MD5
dari ciphertext tersebut. Selanjutnya keduanya akan dikirimkan oleh si pengirim
kepada si penerima pesan. Menu enkripsi dapat dilihat pada Gambar 4.1.

Universitas Sumatera Utara

32

Gambar 4.1 Menu Enkripsi

4.1.2 Menu Dekripsi
Menu dekripsi merupakan menu yang digunakan untuk melakukan proses dekripsi.
Menu ini digunakan oleh si penerima pesan untuk mendapatkan kembali pesan asli
yang dikirimkan kepadanya.
Sebelum melakukan proses dekripsi, maka terlebih dahulu dilakukan proses
verifikasi file untuk membuktikan apakah file yang diterima masih asli atau sudah
mengalami perubahan. Proses verifikasi ini dilakukan dengan cara mencocokkan kode

Universitas Sumatera Utara

33

MD5 yang diterima dari si pengirim dengan kode MD5 yang akan dihasilkan dari
sistem. Jika hasil verifikasi “Sesuai” maka file yang diterima masih asli dan
selanjutnya dapat dilakukan dekripsi pesan. Tampilan untuk menu dekripsi dapat
dilihat pada Gambar 4.2.

Gambar 4.2 Menu Dekripsi

4.1.3 Menu Bantuan
Menu bantuan merupakan menu yang digunakan untuk menampilkan informasi
tentang cara mengoperasikan sistem atau aplikasi yang dibuat. Tampilan untuk menu
bantuan dapat dilihat pada Gambar 4.3.

Universitas Sumatera Utara

34

Gambar 4.3 Menu Bantuan

4.1.4 Menu Tentang
Menu tentang merupakan menu yang berfungsi untuk menampilkan informasi
mengenai sistem atau aplikasi yang dibuat dan informasi mengenai penulis. Menu
tentang dapat dilihat pada Gambar 4.4.

Universitas Sumatera Utara

35

Gambar 4.4 Menu Tentang

4.2 Pengujian Sistem
Pengujian sistem dilakukan untuk memastikan bahwa sistem yang telah dibangun
dapat berjalan dengan baik sesuai dengan fungsi-fungsi yang sebelumnya ditentukan
pada tahap analisis dan perancangan sistem.

Universitas Sumatera Utara

36

4.2.1 Pengujian Hasil Enkripsi
4.2.1.1 Pengujian Hasil Enkripsi Sistem
Untuk melakukan proses enkripsi, maka tahap awal yang dilakukan adalah memilih
menu enkripsi. Setelah itu lakukan langkah-langkah berikut ini untuk melakukan
proses enkripsi.
1. Tekan tombol Pilih File untuk memilih file teks (*.txt dan *.doc) yang akan
dienkripsi.
2. Masukkan kunci RC4A pada kolom yang telah disediakan.
3. Tekan tombol Enkripsi untuk melakukan proses enkripsi.
4. Tekan tombol Simpan untuk menyimpan hasil enkripsi / ciphertext.
5. Tekan tombol Proses MD5 untuk mendapatkan kode MD5 dari ciphertext.
6. Kemudian simpan kode MD5 yang diperoleh dengan menekan tombol Simpan.
Contoh hasil proses enkripsi dapat dilihat pada Gambar 4.5 dengan masukan file
E:\tes.txt dan kunci “ilkom12”.

Universitas Sumatera Utara

37

Gambar 4.5 Hasil Proses Enkripsi

Kemudian hasil proses enkripsi tersebut disimpan dalam file E:\hasiltes.txt seperti
ditunjukkan pada Gambar 4.6. Hasil proses enkripsi disimpan dalam bentuk nilai
desimal.

Universitas Sumatera Utara

38

Gambar 4.6 File Hasil Enkripsi

4.2.1.2 Pengujian Hasil Enkripsi Manual
Berikut adalah contoh hasil enkripsi manual algoritma RC4A dengan mode 4 byte
(untuk lebih menyederhanakan). Plaintext yang digunakan adalah “HI”.
Proses KSA dengan masukan K dan S1 adalah sebagai berikut :
1.

Inisialisasi array S1, S1 = {0, 1, 2, 3}

2.

Kunci yang digunakan adalah 1 dan 7, l = 2 byte. Ulangi kunci hingga memenuhi
array K, K = {1, 7, 1, 7}

Universitas Sumatera Utara

39

3.

j=0
Iterasi 1 ( i = 0, j = 0, S1 = {0, 1, 2, 3})
j = (j + S1[i] + K[i mod l]) mod 4
j = (0 + S1[0] + K[0 mod 2]) mod 4
j = (0 + 0 + 1) mod 4 = 1
swap S1[i] dengan S1[j]
swap S1[0] dengan S1[1], S1 = {1, 0, 2, 3}

4.

Iterasi 2 ( i = 1, j = 1, S1 = {1, 0, 2, 3})
j= 0
swap S1[1] dengan S1[0], S1 = {0, 1, 2, 3}

5.

Iterasi 3 ( i = 2, j = 0, S1 = {0, 1, 2, 3})
j= 3
swap S1[2] dengan S1[3], S1 = {0, 1, 3, 2}

6.

Iterasi 4 ( i = 3, j = 3, S1 = {0, 1, 3, 2})
j= 0
swap S1[3] dengan S1[0], S1 = {2, 1, 3, 0}

Proses PRGA untuk mendapatkan nilai WK adalah sebagai berikut:
1.

For WK = 0 to l – 1, dimana l = 2
( i = j = 0, S1 = {2, 1, 3, 0} )
Iterasi 1 ( WK = 0)
i = (i + 1) mod 4
i = (0+1) mod 4 = 1
j = (j + S1[i]) mod 4

Universitas Sumatera Utara

40

j = (0 + S1[1]) mod 4
j = (0 + 1) mod 4 = 1
swap S1[i] dengan S1[j]
swap S1[1] dengan S1[1], S1 = {2, 1, 3, 0}
output = S[(S1[i] + S1[j]) mod 4]
output = S[(1 + 1) mod 4]
output = S[2] = 3
WK[0] = 3
2.

Iterasi 2 ( WK = 1)
( i = 1, j = 1, S1 = {2, 1, 3, 0} )
i = (i + 1) mod 4
i = (1+1) mod 4 = 2
j = (j + S1[i]) mod 4
j = (1 + S1[2]) mod 4
j = (1 + 3) mod 4 = 0
swap S1[i] dengan S1[j]
swap S1[2] dengan S1[0], S1 = {3, 1, 2, 0}
output = S[(S1[i] + S1[j]) mod 4]
output = S[(2 + 3) mod 4]
output = S[1] = 1
WK[1] = 1
Maka WK = {3, 1}

Proses KSA dengan masukan WK dan S2. Proses ini sama halnya dengan proses
sebelumnya, hanya saja jika sebelumnya menggunakan K dan S1 maka kali ini yang
digunakan adalah WK dan S2. Pada akhir dari proses ini diperoleh S2 = {3, 1, 2, 0}.
Setelah S1 dan S2 diperoleh dari proses KSA, selanjutnya masuk ke tahap PRGA.
Proses PRGA dengan masukan S1 dan S2 adalah sebagai berikut :
1.

Iterasi 1 (i = j1 = j2 = 0, S1 = {3, 1, 2, 0}, S2 = {3, 1, 2, 0})
i = (i + 1) mod 4
i = (0+1) mod 4 = 1

Universitas Sumatera Utara

41

j1 = (j1 + S1[i]) mod 4
j1 = (0 + S1[1]) mod 4
j1 = (0 + 1) mod 4 = 1
swap S1[i] dengan S1[j1]
swap S1[1] dengan S1[1], S1 = {3, 1, 2, 0}
output = S2[(S1[i] + S1[j1]) mod 4]
output = S2[(1 + 1) mod 4]
output = S2[2] = 2
j2 = (j2 + S2[i]) mod 4
j2 = (0 + S2[1]) mod 4
j2 = (0 + 1) mod 4 = 1
swap S2[i] dengan S2[j2]
swap S2[1] dengan S2[1], S2 = {3, 1, 2, 0}
output = S1[(S2[i] + S2[j2]) mod 4]
output = S1[(1 + 1) mod 4]
output = S1[2] = 2
Selanjutnya plaintext H di XOR dengan 2 kemudian di XOR lagi dengan 2, maka :
H XOR 2 = 01001000 XOR 00000010 = 01001010 XOR 00000010 = 01001000
2.

Iterasi 2 ( i = 1, j1 = 1, j2 = 1, S1 = {3, 1, 2, 0}, S2 = {3, 1, 2, 0} )
i = (i + 1) mod 4
i = (1+1) mod 4 = 2
j1 = (j1 + S1[i]) mod 4

Universitas Sumatera Utara

42

j1 = (1 + S1[2]) mod 4
j1 = (1 + 2) mod 4 = 3
swap S1[i] dengan S1[j1]
swap S1[2] dengan S1[3], S1 = {3, 1, 0, 2}
output = S2[(S1[i] + S1[j1]) mod 4]
output = S2[(0 + 2) mod 4]
output = S2[2] = 2
j2 = (j2 + S2[i]) mod 4
j2 = (1 + S2[2]) mod 4
j2 = (1 + 2) mod 4 = 3
swap S2[i] dengan S2[j2]
swap S2[2] dengan S2[3], S2 = {3, 1, 0, 2}
output = S1[(S2[i] + S2[j2]) mod 4]
output = S1[(0 + 2) mod 4]
output = S1[2] = 0
Selanjutnya plaintext I di XOR dengan 2 kemudian di XOR lagi dengan 0, maka :
I XOR 2 = 01001001 XOR 00000010 = 01001011 XOR 00000000 = 01001011

Universitas Sumatera Utara

43

Tabel 4.1 Proses XOR Keystream dengan Plaintext pada Enkripsi
H

I

Plaintext

01001000

01001001

Keystream 1

00000010

00000010

01001010

01001011

Keystream 2

00000010

00000000

Ciphertext

01001000

01001011

H

K

Sebagaimana terlihat pada Tabel 4.1, plaintext “HI” di xor dengan keystream 1 dan
keystream 2 yang telah dihasilkan pada akhir proses PRGA sehingga didapatkan
ciphertext pesan berupa “HK”.

4.2.2 Pengujian Hasil Perhitungan MD5
4.2.2.1 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!".

Universitas Sumatera Utara

44

Gambar 4.7 Hasil Proses Perhitungan MD5 File

Setelah diperoleh kode MD5 seperti terlihat pada Gambar 4.7 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.

Universitas Sumatera Utara

45

Gambar 4.8 Hasil Proses Perhitungan MD5

4.2.2.2 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 4.9.

Universitas Sumatera Utara

46

Gambar 4.9 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.10.

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

Universitas Sumatera Utara

47

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 4.11.

Gambar 4.11 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 meupakan register 32 bit. Register-register ini diinisialisasi ke
dalam nilai hexadesimal, dengan ketentuan low-order terlebih dahulu.

Universitas Sumatera Utara

48

Tabel 4.2 Nilai Buffer (A, B, C, D)

Nilai 32 bit register Setelah diubah ke dalam

4.

Setelah diubah ke dalam
bentuk low-order

(Hexa)

bentuk low-order (Hexa)

word A : 01 23 45 67

0x67452301

a : 1732584193

word B : 89 ab cd ef

0xefcdab89

b : 4023233417

word C : fe dc ba 98

0x98badcfe

c : 2562383102

word D : 76 54 32 10

0x10325476

d : 271733878

(Desimal)

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 4.12.

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

Universitas Sumatera Utara

49

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 > 32-n)
n=7
X = 9728100799 (1001000011110101110000100110111111)
X > 25 = 0000000000000000000000000100100001 OR
X >> 25 = 0111101011100001001101111110100001 = 8246321057



a = b + ((a + F(b,c,d) + X[k] + T[i])