• Tidak ada hasil yang ditemukan

Dalam penelitian ini, setelah mengetahui kinerja fungsi hash MD5 dan algoritma RSA dalam membuat sidik dijital dan cara menguji keabsahan data menggunakan sidik dijital, dapat diketahui terdapat dua buah aplikasi yang harus dibuat. Pertama pembuatan sidik dijital oleh pengirim dan kedua verifikasi sidik dijital (untuk menguji keabsahan data) oleh penerima. Pada penelitian ini software tool yang digunakan dalam pembuatan aplikasi adalah Delphi 7.

Kunci Enkripsi Ya

Tidak Pada aplikasi pembuatan sidik dijital, dibuat dengan empat tampilan utama, yaitu petunjuk penggunaan aplikasi, proses pembuatan message digest, proses menghasilkan kunci enkripsi dan dekripsi, dan proses enkripsi (pembuatan sidik dijital). Alur proses yang berlangsung pada aplikasi pembuatan sidik dijital ditunjukkan pada Gambar 4.5.

Gambar 4.5. Alur sistem pembuatan sidik dijital

Berikut diberikan pseudocode (algortima) beserta penjelasan pada masing-masing proses yang berlangsung.

1. Proses pembuatan message digest

//Mendefinisikan variabel var r,k : int64; Mulai Membuat Message Digest Message Digest Enkripsi Bilangan Prima Sidik Dijital

Memasukkan Data Memasukkan dua buah kunci bilangan prima

Kunci Enkripsi dan Dekripsi

var h0,h1,h2,h3 : int; var a,b,c,d: int;

r[ 0..15]:=(7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22); r[16..31]:=(5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20); r[32..47]:=(4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23); r[48..63]:=(6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21); //Menggunakan bagian fraksional biner dari integral sinus sebagai konstanta: for i:=0 to 63 do k[i] := round(abs(sin(i + 1)) × 2^32); //Inisialisasi variabel: h0 := 0x67452301; h1 := 0xEFCDAB89; h2 := 0x98BADCFE; h3 := 0x10325476; //Pemrosesan awal:

append "1" bit to message;

append "0" bits until message length in bits ≡ 448 (mod 512);

append bit length of message as 64-bit little-endian integer to message;

//Pengolahan pesan paada blok 512-bit: for each 512-bit chunk of message

break chunk into sixteen 32-bit little-endian words; w(i), 0 ≤ i ≤ 15

//Inisialisasi nilai hash pada blok ini: a := h0; b := h1; c := h2; d := h3; //Kalang utama: for i:=0 to 63 do if 0 ≤ i ≤ 15 then begin

f := (b and c) or ((not b) and d); g := I;

end

begin

f := (d and b) or ((not d) and c); g := (5×i + 1) mod 16; end else if 32 ≤ i ≤ 47 then begin f := b xor c xor d; g := (3×i + 5) mod 16; end else if 48 ≤ i ≤ 63 begin f := c xor (b or (not d)); g := (7×i) mod 16; end; temp := d; d := c; c := b;

b := ((a + f + k(i) + w(g)) leftrotate r(i)) + b; a := temp;

//Tambahkan hash dari pengolahan blok 512 bit sebagai hasil

h0 := h0 + a; h1 := h1 + b; h2 := h2 + c; h3 := h3 + d;

mesaggedigest := h0 append h1 append h2 append h3

2. Proses menghasilkan kunci enkripsi (d) dan kunci dekripsi (e)

//Mendefinisikan variabel var p,q,e,d,phi:int64;

//Menguji bahwa input p dan q adalah bilangan prima if prime(p)=true and prime(q)=true then

phi:=(p-1)*(q-1);

//Menguji nilai e yang diinput if GCD(e,phi)<>1 then e:=FALSE else

begin m:=1;

while ((1+m*phi) mod e)<>0 do m:=m+1;

end;

//Menentukan nilai kunci enkripsi (d) d:=(1+m*phi) div e;

3. Proses enkripsi (pembuatan sidik dijital)

// Mendefinisikan variabel var n,d: int64;

messagedigest,ascii,semua,sidikdijital:string; // Mencari deret nilai ascii message digest ascii_md:='';

for i:=1 to length(messagedigest) do begin

hargaascii[i]:=ord(messagedigest [i]);

ascii_md:=concat(ascii_md,inttostr(hargaascii[i])); end;

//Menentukan panjang blok dan lebarblok lebarblok:= length(n)-1;

If length(ascii_md) mod lebarblok<>0 then banyakblok:=(length(ascii_md)div lebarblok)+1 else banyakblok:=length(ascii_md)div lebarblok; //Tahap enkripsi

mulai:=1;

sidikdijital:='';

for i:=1 to banyakblok do begin

x[i]:=copy(ascii_md,mulai,lebarblok); s[i]:=enkripsi(strtoint(x1[i]),d,n); chipertext[i]:=chr(strtoint(s[i])); mulai:=mulai+lebarblok;

//Nilai sidik dijital

sidikdijital:=concat(sidikdijital,chipertext[i]); end;

4.4.2. Pengujian Aplikasi Untuk Pengirim

Dalam subbab ini dilakukan pengujian terhadap aplikasi untuk pengirim yang meliputi : proses pembuatan message digest, proses menghasilkan kunci enkripsi dan dekripsi, dan proses enkripsi (pembuatan sidik dijital). Ketika aplikasi dijalankan, terlebih dahulu muncul user guide (petunjuk pemakaian aplikasi) seperti ditunjukkan pada Gambar 4.6.

Gambar 4.6. Form petunjuk pemakaian aplikasi

Berikut ini diberikan contoh pengujian terhadap masing-masing proses yang dijalankan.

1. Proses pembuatan message digest

Apabila tombol ”PROSES” dibawah tulisan message digest ditekan maka muncul tampilan seperti ditunjukkan Gambar 4.8.

Misal dimasukkan file regristrasi.txt, kemudian tombol ”BUAT MESSAGE DIGEST” ditekan maka dihasilkan message digest dari data yang dimasukkan tersebut.

Gambar 4.8. Form pembuatan message digest

2. Proses menghasilkan kunci enkripsi dan dekripsi

Pada proses ini kunci yang dimasukkan kunci dua bilangan prima yang berbeda. Pada aplikasi ini disediakan juga sejumlah bilangan prima yang dapat dibangkitkan secara random berdasarkan ukuran kuncinya. Jika kunci yang dimasukkan bukan bilangan prima maka muncul peringatan agar mengganti bilangan yang tidak prima menjadi bilangan prima. Apabila dua buah kunci yang dimasukkan merupakan bilangan prima, maka proses dilanjutkan.

Setelah itu user diminta memasukkan sembarang bilangan yang prima relatif dengan φ(r). Bilangan ini adalah kunci dekripsi (e). Pada aplikasi ini juga disediakan pembangkit kunci dekripsi dengan menekan tombol ”BANGKITKAN E” sehingga user tidak perlu mencoba-coba memasukkan bilangan e yang akan memakan waktu. Setelah e dimasukkan atau dibangkitkan, didapat nilai d (kunci enkripsi) seperti ditunjukkan Gambar 4.10.

Gambar 4.10. Form pembuatan kunci

Setelah mendapatkan kunci enkripsi dan dekripsi, kunci publik disimpan sebelum dikirimkan kepada penerima.

Gambar 4.11. Kunci publik yang dikirimkan kepada penerima

Dalam proses ini message digest yang diperoleh dari proses pertama dienkripsi menggunakan kunci pribadi (d) yang diperoleh pada proses kedua. User dapat juga memasukkan message digest yang diperoleh dari software lain dengan menekan tombol ”MD LAIN”.

Gambar 4.12. Form enkripsi message digest

Apabila tombol ”LIHAT PROSES” ditekan, seluruh proses yang dijalankan seperti kode ascii message digest, blok enkripsi, banyak blok, lebar blok, dan huruf chipertext ditampilkan. Selanjutnya sidik dijital disimpan sebelum dikirimkan kepada penerima.

Gambar 4.13. Sidik dijital hasil dari enkripsi message digest

Dari proses yang berlangsung dapat diketahui nilai dari message digest, kunci dekripsi dan enkripsi, dan sidik dijital yang diperoleh dari aplikasi sama dengan sidik dijital yang diperoleh secara teori.

Kunci Dekripsi

Ya Tidak

4.4.3. Pembuatan Aplikasi Untuk Penerima

Pada aplikasi verifikasi sidik dijital, terdapat tiga proses yang berlangsung, yaitu proses pembuatan message digest, proses dekripsi sidik dijital, dan proses verifikasi. Alur proses yang berlangsung pada aplikasi verifikasi sidik dijital ditunjukkan pada Gambar 4.14.

Gambar 4.14. Alur sistem verifikasi sidik dijital Mulai Membuat Message Digest Message Digest Dekripsi Data Sah

Memasukkan Data Memasukkan Sidik Dijital Plaintext Selesai Plaintext = Message Digest

Berikut diberikan pseudocode (algoritma) beserta penjelasan pada masing-masing proses yang berlangsung.

1. Proses pembuatan message digest

Pseudocode pembuatan message digest pada aplikasi verifikasi sidik dijital sama dengan pseudocode pembuatan message digest pada aplikasi pembuatan sidik dijital.

2. Proses dekripsi sidik dijital

//Mendefinisikan variabel var

ascii_md,sidikdijital,messagedigest,hasildekrip:string; n,e:int64;

//Mencari deret nilai ascii message digest ascii_md:='';

for i:=1 to length(messagedigest) do begin hargaascii[i]:=ord(messagedigest[i]); ascii_md:=concat(ascii_md,inttostr(hargaascii[i])); end; //Tahap Dekripsi hasildekripsi:=’’;

for i:=1 to length(sidikdijital) do begin

plaintext[i]:=dekripsi(strtoint(sidikdijital[i]),e,n); hasildekrip:=concat(hasildekrip,inttostr(plaintext[i])); end;

3. Proses verifikasi sidik dijital

//Mendefinisikan variabel

var ascii_md,hasildekrip,verifikasi:string; //Tahap verifikasi

if ascii_md = hasildekrip then verifikasi:=TRUE else verifikasi:=FALSE;

4.4.4. Pengujian Aplikasi Untuk Penerima

Dalam subbab ini dilakukan pengujian terhadap aplikasi untuk penerima yang meliputi : proses pembuatan message digest, proses dekripsi sidik dijital, dan proses verifikasi sidik dijital. Ketika aplikasi dijalankan, terlebih dahulu muncul user guide seperti ditunjukkan pada Gambar 4.15.

Gambar 4.15. Form petunjuk pemakaian aplikasi

Berikut ini diberikan contoh pengujian terhadap masing-masing proses. 1. Proses pembuatan message digest

Misal dimasukkan file regristrasi.txt, kemudian tombol ”DIGEST” ditekan dihasilkan message digest dari data yang dimasukkan tersebut. 2. Proses dekripsi sidik dijital

Pada proses ini kunci dekripsi dan sidik dijital yang telah diterima dimasukkan, kemudian tombol ”VERIFIKASI” ditekan untuk mendapatkan plaintext dari sidik dijital.

3. Proses verifikasi sidik dijital

Pada proses ini message digest yang didapat pada proses 1 disamakan dengan hasil dekripsi sidik dijital pada proses 2. Ternyata message digest dari file regristrasi.txt sama dengan hasil dekripsi dari sidik

dijitalnya, muncul tampilan form seperti ditunjukkan pada Gambar 4.16. Tetapi ketika isi dari file regristrasi.txt diubah, muncul tampilan form seperti ditunjukkan pada Gambar 4.17.

Gambar 4.16. Tampilan form verifikasi sidik dijital ketika data sah

Dari proses yang berlangsung dapat diketahui nilai dari message digest, dan hasil dekripsi sidik dijital yang diperoleh dari aplikasi sama dengan yang diperoleh secara teori.

4.5. Analisis Kelebihan dan Kelemahan Pembuatan Sidik Dijital Dengan

Dokumen terkait