• Tidak ada hasil yang ditemukan

Analisis Kombinasi Message-Digest Algorithm 5 (MD5) dan Affine Block Cipherterhadap Serangan Dictionary Attack Untuk Keamanan Router Weblogin Hotspot Chapter III V

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis Kombinasi Message-Digest Algorithm 5 (MD5) dan Affine Block Cipherterhadap Serangan Dictionary Attack Untuk Keamanan Router Weblogin Hotspot Chapter III V"

Copied!
42
0
0

Teks penuh

(1)

BAB III

METODOLOGI PENELITIAN

Dalam penelitian ini penulis membangun algoritma kriptografi baru yaitu merupakan

kombinasi algoritma kriptografi MD5 dan Affine Block Cipher, terkait hal tersebut

maka penulis nantinya akan menganalisa langkah-langkah kerja dari kedua algoritma

kriptografi tersebut, sehingga nantinya algoritma kriptografi yang dibangun akan

memiliki tingkat kesulitan yang tinggi untuk dipecahkan.

3.1. Bahan-bahan

Penelitian ini akan menggunakan bahasa pemrograman Python 2.7 untuk perancangan

program algoritma MD5 dan algoritma affine block cipherserta beberapa

perlengkapan lainnya juga akan digunakan sebagai alat pendukung dalam rancangan

kombinasi algoritma ini

3.2. Analisis Algoritma

Untuk membuat rancangan algoritma MD5 dan algoritma affine block cipher maka

terlebih dahulu menganalisis algoritma MD5, algoritma affine cipher, algoritma affine

block cipher, serta rancangan penelitian terhadap kombinasi algoritma MD5 dan

algoritma affine block cipher.

3.3. Analisis Algoritma MD5

Algoritma MD5 adalah fungsi hash satu-arah yang dibuat oleh Ron Rivest. Algoritma

MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan

message digest yang panjangnya mencapai 128 bit. Langkah pembuatan message

digest secara umum adalah :

1. Penambahan bit-bit pengganjal (padding bits).

2. Penambahan nilai panjang pesan semula.

3. Inisialisasi penyangga (buffer) Message Digest.

(2)

Gambar 3.1. ilustrasi pembuatan message digest algoritma MD5

Pada pengolahan pesan dalam blok berukuran 512 bit pesan dibagi menjadi L buah

blok yang masing-masing panjangnya 512 bit (Y0 sampai YL-1). Setiap blok 512 bit

diproses dengan penyangga MD yang menghasilkan keluaran 128 bit, dan ini disebut

(3)

Dalam proses HMD5 terdiri dari 4 buah putaran dan masing-masing putaran melakukan

operasi dasar MD5 sebanyak 16 kali. Disetiap operasi dasar memakai sebuah elemen

T, sehingga setiap putaran melakukan 16 elemen tabel T. Yq menyatakan blok 512 bit

ke-q dari pesan yang ditambahkan dengan bit-bit pengganjal pada proses pertama dan

tambahan 64 bit nilai panjang pesan semula pada proses kedua. MDqadalah nilai

message digest 128 bit dari proses HMD5ke-q. Pada proses awal MDq berisi inisialisasi

penyangga MD kemudian fungsi fF, fG, fH, fIseperti pada gambar, masing-masing

berisi 16 kali operasi dasar terhadap input, setiap operasi dasar menggunakan elemen

tabel T.

Gambar 3.3. Proses Operasi dasar MD5

Dalam operasi dasar MD5 dapat dituliskan dengan persamaan dibawah ini :

Dimana :

a, b, c, d = empat buah peubah penyangga 32 bit (Nilai penyangga A,B,C,D)

(4)

CLSs = circular left shift sebanyak s bit

X[k] = kelompok 32 bit ke-k dari blok 512 bit message ke-q. Nilai k = 0

sampai 15

T[i] = elemen Tabel T ke-i (32 bit)

+ = operasi penjumlahan modulo 232

Fungsi fF, fG, fH, dan fI adalah fungsi untuk memanipulasi masukan a, b, c, dan d

dengan ukuran 32-bit. Masing-masing fungsi dapat dilihat pada tabel berikut :

Tabel 3.1. Fungsi-fungsi Dasar MD5

Nama Notasi g(b,c,d)

fF F(b,c,d) (b ˄ c) ˅ (~b ˄ d)

fH G(b,c,d) (b ˄ d)˅ (c ˄ ~d)

fG H(b,c,d) b

+ c

+ d

fI I(b,c,d) c

+ (b ˄ ~d)

Dalam fungsi-fungsi MD5 secara logika merupakan lambang operator logika dimana :

AND = ˄

OR = ˅

NOT = ~

XOR =

+

Kemudian nilai T[i] dapat dilihat pada tabel berikut. Tabel ini disusun oleh fungsi 232

(5)

Tabel 3.2. Nilai T[i]

T[1] = D76AA478 T[17] = F61E2562 T[33] = FFFA3942 T[49] = F4292244 T[2] = E8C7B756 T[18] = C040B340 T[34] = 8771F681 T[50] = 432AFF97 T[3] = 242070DB T[19] = 265E5A51 T[35] = 69D96122 T[51] = AB9423A7 T[4] = C1BDCEEE T[20] = E9B6C7AA T[36] = FDE5380C T[52] = FC93A039 T[5] = F57C0FAF T[21] = D62F105D T[37] = A4BEEA44 T[53] = 655B59C3 T[6] = 4787C62A T[22] = 02441453 T[38] = 4BDECFA9 T[54] = 8F0CCC92 T[7] = A8304613 T[23] = D8A1E681 T[39] = F6BB4B60 T[55] = FFEFF47D T[8] = FD469501 T[24] = E7D3FBCB T[40] = BEBFBC70 T[56] = 85845DD1 T[9] = 698098D8 T[25] = 21E1CDE6 T[41] = 289B7EC6 T[57] = 6FA87E4F T[10] = 8B44F7AF T[26] = C33707D6 T[42] = EAA127FA T[58] = FE2CE6E0 T[11] = FFFF5BB1 T[27] = F4D50D87 T[43] = D4EF3085 T[59] = A3014314 T[12] = 895CD7BE T[28] = 455A14ED T[44] = 04881D05 T[60] = 4E0811A1 T[13] = 6B901122 T[29] = A9E3E905 T[45] = D9D4D039 T[61] = F7537E82 T[14] = FD987193 T[30] = FCEFA3F8 T[46] = E6DB99E5 T[62] = BD3AF235 T[15] = A679438E T[31] = 676F02D9 T[47] = 1FA27CF8 T[63] = 2AD7D2BB

T[16] = 49B40821 T[32] = 8D2A4C8A T[48] = C4AC5665 T[64] = EB86D391

Sebagaimana telah dijelaskian sebelumnya bahwa fungsi fF, fG,fH dan fI melakukan 16

kali operasi dasar. Misalnya notasi berikut ini :

[abcd k s i]

Menyatakan operasi

a  b + (( a + g(b,c,d) + X[k] + T[i]) <<<s)

untuk operasi dasar tersebut, <<<s melambangkan operasi circular left shift 32 bit,

maka operasi dasar pada masing-masing putaran dapat ditabulasikan sebagai berikut :

- Putaran 1 : 16 kali operasi dasar dengan g(b,c,d) – F(b,c,d) dapat dilihat pada

(6)

Tabel 3.3. Rincian operasi pada fungsi F(b,c,d)

- Putaran 2 : 16 kali operasi dasar dengan g(b,c,d) – G(b,c,d), dapat dilihat pada

tabel berikut :

Tabel 3.4. Rincian operasi pada fungsi G(b,c,d)

- Putaran 3 : 16 kali operasi dasar dengan g(b,c,d) – H(b,c,d), dapat dilihat pada

(7)

Tabel 3.5. Rincian Operasi pada fungsi H(b,c,d)

- Putaran 4 : 16 kali operasi dasar dengan g(b,c,d) – I(b,c,d), dapat dilihat pada

tabel berikut :

Tabel 3.6. Rincian Operasi pada fungsi I(b,c,d)

Setelah putaran keempat a,b,c dan d ditambahkan ke A, B, C dan D yang selanjutnya

algoritma akan memproses untuk blok data berikutnya (Yq+1). Output akhir dari

algoritma MD5 adalah hasil penyambungan bit-bit A, B, C, dan D. Secara umum dari

(8)

MD0 = IV

MDq+1 = MDq + fI(Yq + fH(Yq + fG(Yq + fF(Yq + MDq))))

MD = MDL-1

Dimana :

IV = initial vector dari penyangga ABCD, yang dilakukan pada proses

inisialisasi penyangga

Yq = blok pesan berukuran 512 bit ke-q

L = jumlah blok pesan

MD = nilai akhir message digest

START

Input Plainteks

Pembagian plaintext ke array. Dengan panjang pesan 512 bit

Menghasilkan pesan dengan panjang 512 bit

Proses pengolahan pesan 512 bit menjadi 128 bit dengan

penyangga A,B,C,D

Nilai inisialisasi penyangga/buffer Proses fungsi basic E,F,G,H MD5 untuk mengubah nilai penyangga

Nilai penyangga/buffer

Gambar 3.4. Proses Hash Algoritma MD5

3.4. Analisis Algoritma Affine Cipher

Algoritma affine cipher merupakan salah satu algoritma kriptografi simetri yang telah

lama digunakan. Kelebihan dari algoritma kriptografi simetri adalah kecepatan dalam

(9)

perhitungan matematika sederhana dalam proses enkripsi maupun dekripsi ( Mokhtari

& Naraghi, 2012). Tahapan enkripsi dalam algoritma affine cipher adalah :

1. Tentukan panjang urutan alphabet yang digunakan

2. Konversi plaintext menjadi bilangan bulat dari 1 sesuai dengan urutan dalam

alphabet

3. Pilih sebuah bilangan bulat yang relatif prima dengan nilai terbesar dari urutan

alphabet.

4. Pilih sebuah bilangan bulat acak sebagai jumlah dari pergeseran ciphertext.

5. Lakukan proses perhitungan untuk mendapatkan ciphertext dengan rumusC ≡ aP + b (mod n)

6. Ciphertext dihasilkan

Sebagai contoh, plaintext yang digunakan adalah KRIPTO, selanjutnya kita akan pilih

dua bilangan yaitu a=7, dan b=13. Panjang urutan alphabet terbesar yang digunakan

adalah 26.

Gambar 3.5. Proses Enkripsi dan Dekripsi pada Algoritma Affine Cipher

START END

Input Plainteks

Plainteks dihasilkan

Cipherteks dihasilkan

Input Kunci Input Bilangan Relatif Prima,

Bilangan Acak

C = aP + b (mod n)

(10)

Tabel 3.7. Proses enkripsi pada algoritma Affine Cipher

Ciphertext yang dihasilkan adalah IFURTK

Pada proses dekripsi ciphertext, rumus yang digunakan adalah P ≡ a-1 (C-b) mod n dimana a-1 adalah invers perkalian a modulus n yang dapat memenuhi persamaan

sebagai berikut : 1 = a-1 mod n

Tabel 3.8. Proses dekripsi pada algoritma Affine Cipher

Ciphertext

(11)

Gambar 3.6. Proses Enkripsi dan Dekripsi pada Algoritma Affine Cipher

3.5. Analisis Algoritma Affine Block Cipher

Algoritma affine cipher mudah untuk dikriptanalis karena kunci yang dimiliki dapat

ditebak dengan metode exhaustive key search. Sebagai contoh, pada proses enkripsi

yang telah dijelaskan diatas, terdapat 25 pilihan kemungkinan kunci untuk alphabet

nilai b dan 12 bilangan untuk nilai relatif prima. Sehingga kriptanalis akan melakukan

percobaan kemungkinan terhadap kunci yang dipilih.Salah satu cara yang dapat

dilakukan adalah memperbesar faktor kerja exhaustive key search. Dalam hal ini,

proses enkripsi tidak dilakukan pada huruf individual namun proses enkripsi

dilakukan terhadap blok huruf. Sebagai contoh, plaintext yang digunakan adalah

KRIPTOGRAFI. Tahapan enkripsi dalam algoritma affine block cipher sebagai

berikut :

1. Pecahkan plaintext menjadi blok huruf, dimana tiap blok terdiri dari 4 huruf.

2. Blok huruf yang digunakan menjadi KRIP TOGR AFI yang ekivalen dengan

10170815, 19140617, 000508 dimana alphabet A = 00, B=01,…Z=25

3. Nilai n = 25252525, karena urutan terbesar yang mungkin muncul adalah

25252525

4. Pilih sebuah bilangan bulat yang relatif prima dengan nilai terbesar dari urutan

alphabet. Input Bilangan Relatif Prima,

Bilangan Acak

C = aP + b (mod n)

(12)

5. Pilih sebuah bilangan bulat acak sebagai jumlah dari pergeseran ciphertext.

6. Lakukan proses perhitungan untuk mendapatkan ciphertext dengan rumus C ≡ aP + b (mod n)

7. Ciphertext yang dihasilkan akan diubah kedalam bentuk hexadesimal

Tabel 3.9. Proses enkripsi pada algoritma Affine Block Cipher

Blok Huruf

P1 = 10170815 21035433 23210025 25252525 22837395 =

15C7893

P2 = 19140617 21035433 23210025 25252525 6849811 =

688513

P3 = 000508 21035433 23210025 25252525 2139389 =

20A4FD

Ciphertext yang dihasilkan adalah 15C789368851320A4FD

Pada proses tahapan deskripsi, nilai a-1 harus ditemukan terlebih dahulu. Pada proses

enkripsi sebelumnya, nilai a = 21035433, sehingga nilai a-1 = 11837547.

Ciphertext

22837395 11837547 23210025 25252525

10170815 =

KRIP

688513 =

6849811 11837547 23210025 25252525

19140617 =

TOGR

20A4FD =

2139389 11837547 23210025 25252525

000508 = AFI

(13)

Gambar 3.7. Proses Enkripsi dan Dekripsi pada Algoritma Affine Block Cipher

3.6. Rancangan Penelitian

Pada penelitian ini, akan dilakukan proses kombinasi antara algoritma MD5 dengan

algoritma affine block cipher dalam menghasilkan sebuah ciphertext. Hasil kombinasi

dari kedua algoritma tersebut, akan dilakukan analisa terhadap tingkat keamanan yang

dihasilkan. Selain keamanan kombinasi algoritma MD5 dengan algoritma affine block

cipher, penelitian ini akan menganalisa waktu yang dibutuhkan oleh masing-masing

algoritma yang digunakan serta waktu yang dibutuhkan untuk dapat menghasilkan

pesan acak dari gabungan kedua algoritma yang digunakan.

START

END

Input Plainteks

Plainteks dihasilkan

Cipherteks dihasilkan

Input Kunci Input Bilangan Relatif Prima,

Bilangan Acak

C = aP + b (mod n)

P = a-1 (C-b) mod n Ubah Plainteks dalam

(14)

START

Input Plainteks

Pembagian plaintext ke array. Dengan panjang pesan 512 bit

Menghasilkan pesan dengan panjang 512 bit

Proses pengolahan pesan 512 bit menjadi 128 bit dengan

penyangga A,B,C,D

Nilai inisialisasi penyangga/buffer Proses fungsi basic E,F,G,H MD5 untuk mengubah nilai penyangga

Nilai penyangga/buffer A,B,C,D 32 bit Penggabungan Bit-Bit

A,B,C,D

Hash MD5 Dihasilkan

Ubah plaintext dalam Blok Huruf

Input Bilangan Relatif Prima, Bilangan Acak

C ≡ aP + b (mod n)

Ciphertext dihasilkan START

Gambar 3.8. Rancangan Penelitian Kombinasi algoritma MD5 dengan

algoritma Affine Block Cipher

(15)

BAB IV

HASIL DAN PEMBAHASAN

Dalam bab ini penulis akan memaparkan hasil dan pembahasan dari penelitian yang

telah dilakukan yaitu melakukan kombinasi terhadap algoritma MD5 dengan

algoritma Affine Block Cipher. Hasil kombinasi dari kedua algoritma tersebut akan

dianalisa dengan membandingkan dari sisi keamanan dan waktu yang diperlukan.

4.1.Hasil dan Implementasi

Pada tahapan ini, penulis akan melakukan penelitian terhadap proses hash

menggunakan algoritma MD5 serta proses enkripsi menggunakan algoritma affine

block cipher. Pada tahap selanjutnya, akan dilakukan proses kombinasi terhadap

algoritma MD5 dengan algoritma Affine Block Cipher. Hasil dari implemeentasi

algoritma ini adalah waktu yang dibutuhkan dari masing-masing algoritma yang

digunakan serta tingkat keamanan dari masing-masing algoritma. Selain itu, akan

dilakukan analisa terhadap waktu yang dibutuhkan serta keamanan yang dapat

diberikan dari kombinasi algoritma MD5 dengan algoritma Affine Block Cipher.

4.2.Fungsi Hash menggunakan Algoritma MD5

Pada tahapan ini, penulis akan melakukan percobaan terhadap algoritma MD5.

Percobaan pada algoritma ini akan dilakukan sebanyak 3 tahap. Hasil percobaan pada

tahap ini akan menjadi bahan proses analisa selanjutnya.

4.2.1. Percobaan Pertama Fungsi Hash Menggunakan Algoritma MD5

Untuk percobaan yang pertama kali pada algoritma MD5 plainteks yang

digunakan adalah “medan”.Plainteks ini akan diubah menjadi bilangan hexadesimal

yang terlebih dahulu di bagi menjadi bentuk blok dimana setiap blok terdiri dari 4

karakter. Untuk blok yang kurang dari 4 karakter maka akan ditambahkan padding

byte. Sehingga byte yang terbentuk pada blok pertama yaitu “meda” menjadi

6164656d dan blok berikutnya setelah ditambahkan padding byte “n” menjadi

(16)

dan kemudian diolah melalui 4 buah putaran yang masing-masing memiliki 16 kali

operasi, dan setiap operasi memakai elemen T sehingga hasil yang didapat :

Tabel 4.1. Hasil Putaran 1 dan 2 Message-Digest dari Plainteks “medan”

(17)

Tabel 4.2. Hasil Putaran 3 dan 4 Message-Digestdari Plainteks “medan”

Kemudian dilakukan operasi penambahan sehingga didapat :

(18)

Tabel 4.3. Operasi hasil Penambahan dan konversi

Nilai 32 bit 8 char hex Hex LSB

a 827787134 3157077e 7e075731

b 1893948365 70e35bcd cd5be37000000000

c 769146623 2dd83eff ff3ed82d00000000

d -2105773196 827c7374 74737c8200000000

Hasil akhir : lsb_hex(a) + lsb_hex(b) + lsb_hex(c) + lsb_hex(d) =

7e075731cd5be370ff3ed82d74737c82

4.2.2. Percobaan Kedua Fungsi Hash Menggunakan Algoritma MD5

Untuk percobaan yang kedua pada algoritma MD5 plainteks yang digunakan

adalah “Universitas”. Plainteks ini akan diubah menjadi bilangan hexadesimal yang

terlebih dahulu di bagi menjadi bentuk blok dimana setiap blok terdiri dari 4 karakter.

Untuk blok yang kurang dari 4 karakter maka akan ditambahkan padding byte.

Sehingga byte yang terbentuk pada blok pertama yaitu “Univ” menjadi 76696e55

kemudian “ersi”menjadi 69737265dan blok berikutnya setelah ditambahkan padding

byte “tas” menjadi 80736174. Setelah itu pesan di masukkan dan di inisalisasi dalam 4

penyangga MD dan kemudian diolah melalui 4 buah putaran yang masing-masing

memiliki 16 kali operasi, dan setiap operasi memakai elemen T sehingga hasil yang

(19)

Tabel 4.4. Operasi Putaran 1 dan 2 Message-Digest dari Plainteks Universitas

Putaran 1 Putaran 2

Operasi Hash Operasi Hash

1 d9d711af 1 53be3553

2 8e97b474 2 9f8694f0

3 248c02cf 3 3cf476cb

4 1b6fdb71 4 18a27d73

5 1313ad1a 5 749a02df

6 037addf4 6 2e04808b

7 b362ad9b 7 c5fb60f6

8 33e9b81a 8 67105245

9 3783b072 9 35f67994

10 50b7949c 10 91ed15c6

11 d37562f7 11 3c0188f3

12 ee81e27f 12 7c47902a

13 941e2839 13 0046e9ad

14 aab10994 14 2daea04c

15 cd618593 15 0b051429

(20)

Kemudian hasil dari putaran 3 dan 4 Message-Digest dengan pesan Universitas

Tabel 4.5. Operasi Putaran 3 dan 4 Message-Digest dari Plainteks Universitas

Putaran 3 Putaran 4

Operasi Hash Operasi Hash

1 881ddb35 1 6bc592bc

2 8f1d13dc 2 282a8a0c

3 53576856 3 32bcb9a2

4 e7eef305 4 f294df15

5 073af9e2 5 9521943a

6 016cae55 6 4ea1b7d6

7 59d4da20 7 b7933e91

8 dfd7f2be 8 a1659fff

9 5437e9f9 9 8f229dc1

10 b468439e 10 f6a5b8ac

11 17e6b1ea 11 ea2f1ec4

12 c054be7f 12 e88e97d2

13 dec52258 13 8287ee74

14 b71fa77d 14 6b162740

15 215c8894 15 d51c70f5

16 260385d6 16 1969c0ed

Kemudian dilakukan operasi penambahan sehingga didapat :

a = (a + AA) & 0x0ffffffff;

b = (b + BB) & 0x0ffffffff;

c = (c + CC) & 0x0ffffffff;

(21)

Tabel 4.6. Operasi hasil Penambahan dan konversi

Nilai 32 bit 8 char hex Hex LSB

a -372436619 e9cd1175 7511cde9

b 154627190 09376c76 766c370900000000

c 1842826739 6dd74df3 f34dd76d00000000

d 2068347830 7b487bb6 b67b487b00000000

Hasil akhir : lsb_hex(a) + lsb_hex(b) + lsb_hex(c) + lsb_hex(d) = 7511cde9766c3709f34dd76db67b487b

4.2.3. Percobaan Ketiga Fungsi Hash Menggunakan Algoritma MD5

Untuk percobaan yang ketiga pada algoritma MD5 plainteks yang digunakan

adalah “Informatika”. Plainteks ini akan diubah menjadi bilangan hexadesimal yang

terlebih dahulu di bagi menjadi bentuk blok dimana setiap blok terdiri dari 4 karakter.

Untuk blok yang kurang dari 4 karakter maka akan ditambahkan padding byte.

Sehingga byte yang terbentuk pada blok pertama yaitu “Info” menjadi

6f666e49kemudian “rmat”menjadi 74616d72dan blok berikutnya setelah ditambahkan

padding byte “ika” menjadi 80616b69. Setelah itu pesan di masukkan dan di

inisalisasi dalam 4 penyangga MD dan kemudian diolah melalui 4 buah putaran yang

masing-masing memiliki 16 kali operasi, dan setiap operasi memakai elemen T

(22)

Tabel 4.7. Operasi Putaran 1 dan 2 Message-Digest dari Plainteks Informatika

Putaran 1 Putaran 2

Operasi Hash Operasi Hash

1 58570bac 1 09067937

2 ede88f10 2 cf7ce0b7

3 b77f9e13 3 5aa8ad35

4 44675b15 4 313720db

5 25c41192 5 4e6e05d9

6 2508ce50 6 4e63d052

7 0f80587d 7 b4a5f0bf

8 899a150b 8 8887c3cd

9 ec5c76e9 9 a37e5952

10 4a7e3aa7 10 25d5fec5

11 222ded5e 11 5c1d7223

12 fe664a27 12 503a9a1f

13 12e692e4 13 ff9629f3

14 749e1a8c 14 bb02f5f1

15 7c74e1a7 15 84be56b5

(23)

Kemudian hasil dari putaran 3 dan 4 Message-Digest dengan pesan Informatika

Tabel 4.8. Operasi Putaran 3 dan 4 Message-Digest dari Plainteks Informatika

Putaran 3 Putaran 4

Operasi Hash Operasi Hash

1 90f7fd00 1 47a8a045

2 a749b885 2 59c8939f

3 9315b8ba 3 79c42993

4 9d043390 4 7722055d

5 d40cb9e5 5 74f1c2eb

6 01e4a84f 6 31c15095

7 28397b0c 7 5cf77405

8 7b6645b9 8 21035cc4

9 71a3400d 9 39b6a62a

10 b78d9404 10 ea617554

11 f4cf4e75 11 ee98d8f6

12 9228b673 12 4fa75179

13 60507af4 13 dbf13ff1

14 65d7581d 14 8f4964e0

15 c5df043e 15 0362641d

16 522acb8d 16 c49eced1

Kemudian dilakukan operasi penambahan sehingga didapat :

a = (a + AA) & 0x0ffffffff;

b = (b + BB) & 0x0ffffffff;

c = (c + CC) & 0x0ffffffff;

(24)

Tabel 4.9. Operasi hasil Penambahan dan konversi

Nilai 32 bit 8 char hex Hex LSB

a 1127637746 433662f2 f2623643

b -1267959206 b46c7a5a 5a7a6cb400000000

c -1675804389 9c1d411b 1b411d9c00000000

d -1619281578 9f7bb956 56b97b9f00000000

Hasil akhir : lsb_hex(a) + lsb_hex(b) + lsb_hex(c) + lsb_hex(d) =

f26236435a7a6cb41b411d9c56b97b9f

4.3.Proses Enkripsi menggunakan Algoritma Affine Block Cipher

Pada tahapan ini, penulis akan melakukan percobaan terhadap algoritma Affine block

cipher. Percobaan pada algoritma ini akan dilakukan sebanyak 3 tahap. Hasil

percobaan pada tahap ini, akan menjadi bahan proses analisa untuk tahap selanjutnya.

4.3.1. Percobaan Pertama Proses Enkripsi Menggunakan Algoritma Affine

Block Cipher

Pada percobaan pertama, plaintext yang digunakan adalah “Binjai.” Plaintext ini akan

diubah kedalam bentuk ASCII. Hasil pengubahan plaintext kedalam bentuk adalah

066, 108, 110, 106, 097, 105. Kemudian plaintext ini akan dibagi dalam bentuk blok

dimana setiap blok terdiri dari 4 karakter. Kemudian akan dibangkitkan bilangan yang

relatif prima dan bilangan bulat acak dengan rentang nilai 0 sampai dengan

255255255255. Bilangan relatif prima yang digunakan adalah 196681070693 dan

bilangan acak yang digunakan adalah 31951760308. Hasil enkripsi akan diubah

kedalam bilangan hexadesimal. Dari hasil percobaan didapatkan hasil :

P[1] = (66105110106)

C[i] = (a * P[i] + b) mod n

C[1] = (196681070693 * 66105110106 + 31951760308) mod 255255255255

(25)

P[2] = (66105110106)

C[i] = (a * P[i] + b) mod n

C[2] = (196681070693 * 97105 + 31951760308) mod 255255255255

C[2] = 38612714463  8fd7f43dfL (Hexadesimal)

Sehingga ciphertext yang didapatkan adalah 54b5c067bL8fd7f43dfL

4.3.2. Percobaan Kedua Proses Enkripsi Menggunakan Algoritma Affine Block

Cipher

Pada percobaan kedua, plaintext yang digunakan adalah “Sumatera.” Plaintext ini

akan diubah kedalam bentuk ASCII. Hasil pengubahan plaintext kedalam bentuk

adalah 083, 117,109, 097, 116,101,114, 097. Kemudian plaintext ini akan dibagi

dalam bentuk blok dimana setiap blok terdiri dari 4 karakter. Kemudian akan

dibangkitkan bilangan yang relatif prima dan bilangan bulat acak dengan rentang nilai

0 sampai dengan 255255255255. Bilangan relatif prima yang digunakan adalah

140798919083 dan bilangan acak yang digunakan adalah 108839730786. Hasil

enkripsi akan diubah kedalam bilangan hexadesimal. Dari hasil percobaan didapatkan

hasil :

P[1] = (083117109097)

C[i] = (a * P[i] + b) mod n

C[1] = (140798919083 * 083117109097 + 108839730786) mod 255255255255

(26)

P[1] = (116101114097)

C[i] = (a * P[i] + b) mod n

C[2] = (140798919083 * 116101114097 + 108839730786) mod 255255255255

C[2] = 215741156107 = 323b2ccb0b  (hexadesimal)

Sehingga ciphertext yang didapatkan adalah 2bf77b1eaeL323b2ccb0b

4.3.3. Percobaan Ketiga Proses Enkripsi Menggunakan Algoritma Affine Block

Cipher

Pada percobaan ketiga, plaintext yang digunakan adalah “Universitas.” Plaintext ini

akan diubah kedalam bentuk ASCII. Hasil pengubahan plaintext kedalam bentuk

adalah 085, 110, 105, 118, 101, 114, 115, 105, 116, 097, 115. Kemudian plaintext ini

akan dibagi dalam bentuk blok dimana setiap blok terdiri dari 4 karakter. Kemudian

akan dibangkitkan bilangan yang relatif prima dan bilangan bulat acak dengan rentang

nilai 0 sampai dengan 255255255255. Bilangan relatif prima yang digunakan adalah

159902972147 dan bilangan acak yang digunakan adalah 229974388011. Hasil

enkripsi akan diubah kedalam bilangan hexadesimal. Dari hasil percobaan didapatkan

hasil :

P[1] = (085110105118)

C[i] = (a * P[i] + b) mod n

C[1] = (159902972147 * 085110105118 + 229974388011) mod 255255255255

C[1] = 82106621852 = 131def9f9c  (hexadesimal)

P[1] = (101114115105)

C[i] = (a * P[i] + b) mod n

C[2] = (159902972147 * 101114115105 + 229974388011) mod 255255255255

(27)

P[1] = (116097115)

C[i] = (a * P[i] + b) mod n

C[2] = (159902972147 * 116097115 + 229974388011) mod 255255255255

C[2] = 87296119301 = 1453411205  Hexadesimal

Sehingga ciphertext yang didapatkan adalah 131def9f9cL2aa433440bL1453411205

4.4.Kombinasi Algoritma MD5 dengan Algoritma Affine Block Cipher

Pada tahapan ini, penulis akan melakukan percobaan terhadap kombinasi algoritma

MD5 dengan algoritma Affine block cipher. Percobaan pada algoritma ini akan

dilakukan sebanyak 3 tahap. Hasil percobaan pada tahap ini, akan menjadi bahan

proses analisa untuk tahap selanjutnya.

4.4.1. Percobaan Pertama Kombinasi Algoritma MD5 dengan Algoritma Affine

Block Cipher

Pada percobaan pertama, plaintext yang digunakan adalah “Medan”. Plaintext tersebut

akan mendapatkan fungsi hash menggunakan algoritma MD5, sehingga fungsi hash

yang didapatkan dari plaintext tersebut adalah 002d58e7320e036561568d54ac4b17ae.

Hasil hash tersebut akan tersebut akan dienkripsi menggunakan algoritma affine block

cipher. Pada tahap awal, hasil hash tersebut diubah kedalam kode ASCII dan

dikelompokkan menjadi 8 bagian dimana tiap bagian terdiri dari 4 karakter

['048048050100', '053056101055', '051050048101', '048051054053',

'054049053054', '056100053052', '097099052098', '049055097101']. Selanjutnya akan

dibangkitkan bilangan bilangan acak b=112812793778 dan bilangan yang relatif

prima dengan 255255255255, a=232323314989. Dari hasil percobaan didapatkan

hasil :

P[1] = (048048050100)

C[i] = (a * P[i] + b) mod n

(28)

C[1] = 110525421953 = 19bbd41981 (hexadesimal)

P[2] = (053056101055)

C[i] = (a * P[i] + b) mod n

C[2] = (232323314989 * 053056101055 + 112812793778) mod 255255255255

C[2] = 1506563838 = 59cc56fe (hexadesimal)

P[3] = (051050048101)

C[i] = (a * P[i] + b) mod n

C[3] = (232323314989 * 051050048101 + 112812793778) mod 255255255255

C[3] = 131732030907 = 1eabd745bb (hexadesimal)

P[4] = (048051054053)

C[i] = (a * P[i] + b) mod n

C[4] = (232323314989 * 048051054053 + 112812793778) mod 255255255255

C[4] = 141268983070 = 20e4499d1e (hexadesimal)

P[5] = (054049053054)

C[i] = (a * P[i] + b) mod n

C[5] = (232323314989 * 054049053054 + 112812793778) mod 255255255255

(29)

P[6] = (056100053052)

C[i] = (a * P[i] + b) mod n

C[6] = (232323314989 *056100053052 + 112812793778) mod 255255255255

C[6] = 159186874436 = 251046f044 (hexadesimal)

P[7] = (097099052098)

C[i] = (a * P[i] + b) mod n

C[7] = (232323314989 *056100053052 + 112812793778) mod 255255255255

C[7] = 201715833735 = 2ef7335b87 (hexadesimal)

P[8] = (049055097101)

C[i] = (a * P[i] + b) mod n

C[8] = (232323314989 *049055097101 + 112812793778) mod 255255255255

C[8] = 210287657917 = 30f61f03bd (hexadesimal)

Sehingga ciphertext yang didapatkan adalah

19bbd41981L59cc56feL1eabd745bbL20e4499d1eL2e754f50caL251046f044L2ef733

5b87L30f61f03bd

4.4.2. Percobaan Kedua Kombinasi Algoritma MD5 dengan Algoritma Affine

Block Cipher

Pada percobaan kedua, plaintext yang digunakan adalah “Sumatera”. Plaintext

tersebut akan mendapatkan fungsi hash menggunakan algoritma MD5, sehingga

fungsi hash yang didapatkan dari plaintext tersebut adalah

22badfe13d4e1b94481accfb9d3a3479. Hasil hash tersebut akan tersebut akan

(30)

tersebut diubah kedalam kode ASCII dan dikelompokkan menjadi 8 bagian dimana

tiap bagian terdiri dari 4 karakter ['050050098097', '100102101049',

'051100052101', '049098057052', '052056049097', '099099102098', '057100051097',

'051052055057']. Selanjutnya akan dibangkitkan bilangan bilangan acak

b=5569374041 dan bilangan yang relatif prima dengan 255255255255,

a=247793084333. Dari hasil percobaan didapatkan hasil :

P[1] = (050050098097)

C[i] = (a * P[i] + b) mod n

C[1] = (247793084333 * 050050098097 + 5569374041) mod 255255255255

C[1] = 99271712977 = 171d0e20d1 (hexadesimal)

P[2] = (100102101049)

C[i] = (a * P[i] + b) mod n

C[2] = (247793084333 * 100102101049 + 5569374041) mod 255255255255

C[2] = 238781810788 = 3798814864 (hexadesimal)

P[3] = (051100052101)

C[i] = (a * P[i] + b) mod n

C[3] = (247793084333 * 051100052101 + 5569374041) mod 255255255255

C[3] = 122438867614 = 1c81ecda9e (hexadesimal)

P[4] = (049098057052)

(31)

C[4] = 248975457907 = 39f817fe73 (hexadesimal)

P[5] = (052056049097)

C[i] = (a * P[i] + b) mod n

C[5] = (247793084333 * 052056049097 + 5569374041) mod 255255255255

C[5] = 5229051357 = 137acfddd (hexadesimal)

P[6] = (099099102098)

C[i] = (a * P[i] + b) mod n

C[6] = (247793084333 * 099099102098 + 5569374041) mod 255255255255

C[6] = 176068328490 = 28fe7d7c2a (hexadesimal)

P[7] = (057100051097)

C[i] = (a * P[i] + b) mod n

C[7] = (247793084333 * 057100051097 + 5569374041) mod 255255255255

C[7] = 10341628212 = 26868b934 (hexadesimal)

P[8] = (051052055057)

C[i] = (a * P[i] + b) mod n

C[8] = (247793084333 * 051052055057 + 5569374041) mod 255255255255

C[8] = 91340803167 = 1544560c5f (hexadesimal)

Sehingga ciphertext yang didapatkan adalah

171d0e20d1L3798814864L1c81ecda9eL39f817fe73L137acfdddL28fe7d7c2aL26868

(32)

4.4.3. Percobaan Ketiga Kombinasi Algoritma MD5 dengan Algoritma Affine

Block Cipher

Pada percobaan kedua, plaintext yang digunakan adalah “Universitas”. Plaintext

tersebut akan mendapatkan fungsi hash menggunakan algoritma MD5, sehingga

fungsi hash yang didapatkan dari plaintext tersebut adalah

7511cde9766c3709f34dd76db67b487b. Hasil hash tersebut akan tersebut akan

dienkripsi menggunakan algoritma affine block cipher. Pada tahap awal, hasil hash

tersebut diubah kedalam kode ASCII dan dikelompokkan menjadi 8 bagian dimana

tiap bagian terdiri dari 4 karakter ['055053049049', '099100101057',

'055054054099', '051055048057', '102051052100', '100055054100', '098054055098',

'052056055098']. Selanjutnya akan dibangkitkan bilangan bilangan acak

b=206728367483 dan bilangan yang relatif prima dengan 255255255255,

a=141409193689. Dari hasil percobaan didapatkan hasil :

P[1] = (055053049049)

C[i] = (a * P[i] + b) mod n

C[1] = (141409193689 * 055053049049 + 206728367483) mod 255255255255

C[1] = 33250305199 = 7bddf64af (hexadesimal)

P[2] = (099100101057)

C[i] = (a * P[i] + b) mod n

C[2] = (141409193689 * 099100101057 + 206728367483) mod 255255255255

(33)

P[3] = (055054054099)

C[i] = (a * P[i] + b) mod n

C[3] = (141409193689 * 055054054099 + 206728367483) mod 255255255255

C[3] = 25049258454 = 5d50d59d6 (hexadesimal)

P[4] = (051055048057)

C[i] = (a * P[i] + b) mod n

C[4] = (141409193689 * 051055048057 + 206728367483) mod 255255255255

C[4] = 52809478281 = c4bb0b089 (hexadesimal)

P[5] = (102051052100)

C[i] = (a * P[i] + b) mod n

C[5] = (141409193689 * 102051052100 + 206728367483) mod 255255255255

C[5] = 213706938793 = 31c1ed19a9 (hexadesimal)

P[6] = (100055054100)

C[i] = (a * P[i] + b) mod n

C[6] = (141409193689 * 100055054100 + 206728367483) mod 255255255255

(34)

P[7] = (098054055098)

C[i] = (a * P[i] + b) mod n

C[7] = (141409193689 * 098054055098 + 206728367483) mod 255255255255

C[7] = 166154589475 = 26af95d523 (hexadesimal)

P[8] = (052056055098)

C[i] = (a * P[i] + b) mod n

C[8] = (141409193689 * 052056055098 + 206728367483) mod 255255255255

C[8] = 234409430765 = 3693e40eed (hexadesimal)

Sehingga ciphertext yang didapatkan adalah

7bddf64afL2522dbfbafL5d50d59d6Lc4bb0b089L31c1ed19a9L220f4fe41bL26af95d5

23L3693e40eed

4.5.Analisa Waktu

Pada penelitian ini, akan dilakukan proses perbandingan waktu yang diperlukan pada

proses fungsi hash menggunakan algoritma MD5, selain itu akan dianalisa waktu yang

diperlukan dalam proses enkripsi menggunakan algoritma affine block cipher. Pada

tahap selanjutnya akan dianalisa pula waktu yang dibutuhkan dalam proses kombinasi

fungsi hash algoritma MD5 dan enkripsi menggunakan algoritma affine block cipher.

4.5.1. Analisa Waktu Algoritma MD5

Pada tahapan ini, akan dilakukan proses analisa waktu terhadap algoritma MD5 dalam

menghasilkan fungsi hash. Hasil dari analisa waktu ini akan menampilkan grafik dari

(35)

Tabel 4.10. Analisa Waktu pada Algoritma MD5

Percobaan

Ke- Plaintext Hash MD5

Waktu

(detik)

1 Medan 002d58e7320e036561568d54ac4b17ae 0.0

2 Sumatera 22badfe13d4e1b94481accfb9d3a3479 0.0

3 Universitas 7511cde9766c3709f34dd76db67b487b 0.0

4 Teknik

Informatika b851b6919be2d1c3fad0994d6c5308f8 0.0

5 Indonesia 4647d00cf81f8fb0ab80f753320d0fc9 0.0

6 Aidil Halim

Lubis b8ea45452bc20aa43dc0a241d08ae204 0.0

7 1234567891011 204b5003e97662ca4258ab593ec0360b 0.0

8 Affine block

cipher eec89e40f0d9099d8b827c53bd7da429 0.0

9 Penelitian Tesis

S2 USU fbfca6900f506dc63d566e94c2e37c81 0.0

10

8bcfc7d4f51a076c6dd99e2f6177e6ca 0.0

Pada percobaan diatas, waktu yang dibutuhkan dalam proses hashing pada algoritma

MD5 cukup cepat dan stabil. Hal ini tentu menjadi kelebihan dari algoritma MD5

dalam proses menghasilkan data hash dalam pengamanan data.

4.5.2. Analisa Waktu Algoritma Affine Block Cipher

Pada tahapan ini, akan dilakukan proses analisa waktu terhadapalgoritma Affine

(36)

diperlukan olehalgoritma affine block cipher. Analisa waktu ini akan dilakukan

sebanyak 10 kali percobaan dengan panjang karakter yang berbeda.

Tabel 4.11. Analisa Waktu pada Algoritma Affine Block Cipher

Percoba

1 Medan 2748336628

19

186243065

930

b682690bL9e96

7d0e3 0.079

2 Sumatera 2221344434

23

128598922

338

198a91afb5L60

49f5dca 0.078

3 Universitas 2225386871 59

5 Indonesia 2558731038

(37)

3L1e44a3454d

(38)

Gambar 4.1. Analisa Waktu Algoritma Affine Block Cipher

4.5.3. Analisa Waktu Kombinasi Algoritma MD5 dan Algoritma Affine Cipher

Pada tahapan ini, akan dilakukan proses analisa waktu terhadap kombinasi algoritma

MD5 dengan algoritma Affine Block Cipher. Plaintext yang diinputkan akan terlebih

dahulu mendapatkan proses hash menggunakan algoritma MD5 setelah itu, hasil hash

dari kata tersebut akan di enkripsi menggunakan algoritma affine block cipher. Hasil

dari analisa waktu ini akan menampilkan grafik dari waktu yang diperlukan oleh

kombinasi algoritma MD5 dengan algoritma affine block cipher. Analisa waktu ini

akan dilakukan sebanyak 10 kali percobaan dengan panjang karakter yang berbeda.

Tabel. 4.12. Analisa Waktu pada Kombinasi Algoritma MD5 dan Algoritma Affine

Block Cipher

Percoba

an ke- Plaintext

Hash Algoritma

MD5

Kombinasi MD5 dan

Affine Block Cipher

Waktu Penelitian Tesis S2 USU

1

ALGORITMA AFFINE BLOCK CIPHER

(39)

94481accfb9d3a

3 Universitas

(40)

51 fL96b92acd5L87c112ece

Dari Tabel Analisa Waktu pada Kombinasi Algoritma MD5 dan Algoritma Affine

Block Cipher didapat hasil analisa yang ditampilkan pada gambar berikut :

0,000

KOMBINASI ALGORITMA MD5 DAN

ALGORTMA AFFINE BLOCK CIPHER

(41)

Gambar 4.2. Analisa Waktu Kombinasi Algoritma MD5 dan Algoritma Affine Block

Cipher

4.6.Analisa Keamanan

Pada tahapan ini, penulis akan menganalisa keamanan dari masing-masing algoritma

yang digunakan serta tingkat keamanan yang didapatkan dari kombinasi kedua buah

algoritma tersebut.

4.6.1. Analisa Keamanan Kombinasi Algoritma MD5 dan Algoritma Affine

Cipher

Pada penjelasan diatas, algoritma MD5 merupakan algoritma yang digunakan dalam

mendapatkan fungsi hash pada plaintext tertentu. Tujuan dari penggunaan fungsi hash

ini adalah untuk menjaga integritas dari sebuah plaintext yang digunakan dan

perubahan sedikit pada plaintext akan mempengaruhi fungsi hash tersebut. Namun,

algoritma MD5 memiliki kelemahan antara lain collision vulnerability dan juga

dictionary attack. Dalam ancaman ini, sebuah plaintext A dengan plaintext B

memiliki kemungkinan untuk mendapatkan hasil fungsi hash yang sama. Untuk

mengatasi hal ini, penulis melakukan kombinasi menggunakan algoritma Affine Block

Cipher yang merupakan pengembangan dari algoritma Affine Cipher. Pada algoritma

Affine Block Cipher, proses enkripsi terhadap plaintext dilakukan pada blok-blok

dimana setiap blok tertentu memiliki 4 karakter. Kelebihan dari algoritma MD5 ini

adalah kecepatan yang diberikan dalam proses menghasilkan fungsi hash terhadap

plaintext tertentu dan pada algoritma Affine Block Cipher, proses enkripsi

menggunakan perhitungan sederhana namun kriptanalis cukup sulit untuk

mendapatkan kemungkinan kunci yang digunakan karena panjang nilai n yang

(42)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dalam penelitian tesis ini menghasilkan beberapa kesimpulan antara lain :

1. Pada penelitian ini, kombinasi algoritma message-digest 5 dan algoritma affine

block cipher memiliki waktu yang berbeda ketika melakukan enkripsi dari

sebelumnya yang hanya menggunakan algoritma message-digest 5 saja. Waktu

yang dibutuhkan oleh kombinasi algoritma MD5 dan algoritma Affine Block

Cipher lebih lama ketika melakukan enkripsi.

2. Pada penelitian ini, kecepatan yang diberikan dalam proses menghasilkan hash

terhadap plaintext dihasilkan oleh algoritma MD5 dan proses ketahanan dalam

kemungkinan serangan oleh kripanalis mengandalkan dari panjang kuncian

yang dihasilkan oleh algoritma affine block cipher yang memiliki panjang nilai

n yang digunakan sebesar 255255255255 dan banyaknya bilangan relatif prima

yang tersedia yaitu 117810117810.

5.2.Saran

Saran penulis terhadap penelitian tesis ini adalah :

1. Untuk menjaga keamanan dari cipher yang dihasilkan oleh kombinasi

algoritma tersebut sebaiknya pada fungsi algoritma MD5 perlu dilakukan

penambahan bit hash yang dihasilkan yang misalsebelumnya 128 bit menjadi

512 bit sehingga akan lebih sulit untuk di pecahkan.

2. Untuk penelitian lebih lanjut diharapkan proses enkripsi dapat mencakup pada

Gambar

Gambar 3.1. ilustrasi pembuatan message digest algoritma MD5
tabel T.
Tabel 3.1. Fungsi-fungsi Dasar MD5
Tabel 3.2. Nilai T[i]
+7

Referensi

Dokumen terkait

Nur dan Widyastuti (2014) dalam penelitian yang dilakukan pada tiga orang subjek dengan anak terlambat bicara menunjukkan bahwa salah satu reaksi negatif yang

Dan material merupakan aspek yang paling terbesar pengaruhnya, kombinasi crushing material 15% dan 25%, diketahui kombinasi crushing material 15% lah yang paling efisien dan

 Jika petugas kesehatan menolong persalinan, ia harus tinggal dengan ibu dn bayi baru lahir untuk 2 jam pertama setelah kelahiran, atau sampai ibu dan bayi dalam keadaan stabil.. 2

Tujuan penelitian ini adalah (1) Menemukan hubungan atau pengaruh dari variabel temperatur lingkungan kerja, berat badan, tingkat beban kerja terhadap denyut

Berdasarkan hasil penelitian yang telah dilakukan oleh penulis, maka dapat disimpulkan bahwa komunikasi antarpribadi orangtua dan anak dalam penggunaan gadget dari segi

hal.. kemanusiaan adalah menghasilkan karya dalam memajukan iptek yang berguna untuk pembangunan dan kemanusiaan, ikut menanggulangi bencana alam, mencegah

Berdasarkan Tabel 4.9 maka dapat diambil kesimpulan bahwa hasil pengamatan terhadap respon siswa dalam proses pembelajaran dengan menggunakan metode penggunaan

Seluruh adik – adik FISIKA USU stambuk 2014, 2015 dan 2016 dan juga Seluruh teman – teman di Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, Medan