• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Rc4a Dan Md5 Untuk Menjamin Confidentiality Dan Integrity Pada File Teks"

Copied!
77
0
0

Teks penuh

(1)

LAMPIRAN LISTING PROGRAM

1. Kode Program RC4A using System;

using System.IO;

using System.Collections.Generic; using System.Drawing;

using System.Windows.Forms; using System.Text;

namespace Sistem

{

public class RC4A

{

int[] K = new int[256];

int[] S1 = new int[256];

int[] S2 = new int[256];

public List<int> cip = new List<int>();

public void Kunci(string kuncii)

{

int l = kuncii.Length;

for (int i = 0; i < 256; i++) {

K[i] = (int)kuncii[i%l];

//MessageBox.Show(K[i].ToString()); }

}

public void KSA()

{

for (int i = 0; i < 256; i++) {

S1[i] = i; }

int j = 0;

for (int i = 0; i < 256; i++) {

j = (j + S1[i] + K[i]) % 256; int temp = S1[i];

S1[i] = S1[j]; S1[j] = temp; }

}

public void KSA2()

{

for (int i = 0; i < 256; i++) {

S2[i] = i; }

int j = 0;

(2)

j = (j + S2[i] + K[i]) % 256; int temp = S2[i];

S2[i] = S2[j]; S2[j] = temp; }

}

public string PRGA(string teks)

{

int i = 0;

int j = 0;

StringBuilder cipherst = new StringBuilder();

for (int pl = 0; pl < teks.Length; pl++) {

i = (i+1) % 256; j = (j+S1[i]) % 256; int temp = S1[i];

S1[i] = S1[j]; S1[j] = temp;

int z1 = S1[(S1[i] + S1[j]) % 256];

cipherst.Append(Convert.ToChar(z1));

}

return cipherst.ToString();

}

public string PRGA2(string plteks)

{

int i = 0;

int j1 = 0;

int j2 = 0;

StringBuilder cipherst = new StringBuilder();

for (int pl = 0; pl < plteks.Length; pl++) {

i = (i+1) % 256;

j1 = (j1 + S1[i]) % 256; int temp = S1[i];

S1[i] = S1[j1]; S1[j1] = temp;

int z1 = S2[(S1[i] + S1[j1]) % 256];

int cipher1 = (int)plteks[pl] ^ z1;

j2 = (j2 + S2[i]) % 256; int temp1 = S2[i];

S2[i] = S2[j2]; S2[j2] = temp1;

int z2 = S1[(S2[i] + S2[j2]) % 256];

int cipher2 = cipher1 ^ z2;

cip.Add(cipher2);

cipherst.Append(Convert.ToChar(cipher2));

}

return cipherst.ToString();

(3)

2. Kode Program MD5 using System; using System.Text;

using System.Diagnostics; namespace Sistem

{

public class MD5

{

private static int[] S

= { 7, 12, 17, 22, 5, 9, 14, 20, 4,11, 16, 23, 6, 10, 15, 21}; private static int[] Tabel_T = new int[64];

private static void tabel() {

//pembuatan tabel T[i] unchecked{

for (int i = 0; i < 64; i++){

Tabel_T[i] = (int) (long) ((1L << 32) * Math.Abs(

Math.Sin(i + 1)));

} } }

private static int BUFF_A;

private static int BUFF_B;

private static int BUFF_C;

private static int BUFF_D;

public byte[] GetMd5(byte[] input)

{

unchecked{

tabel();

BUFF_A = 0x67452301;

BUFF_B = (int) 0xEFCDAB89L;

BUFF_C = (int) 0x98BADCFEL;

BUFF_D = 0x10325476;

//perhitungan jumlah blok dan panjang pesan int pesanByte = input.Length;

int block = (int)((uint)(pesanByte + 8) >> 6) + 1;

int jumlah = block << 6;

byte[] padding = new byte[jumlah - pesanByte];

padding[0] = (byte) 0x80;

long pesanBit = (long) pesanByte << 3;

//representasi panjang pesan asli for (int i = 0; i < 8; i++){

padding[padding.Length 8 + i] = (byte) pesanBit;

pesanBit = (int)((uint)pesanBit >> 8);

}

int a = BUFF_A;

int b = BUFF_B;

int c = BUFF_C;

int d = BUFF_D;

(4)

for(int i = 0; i < block; i++){

int index = i << 6;

for(int j = 0; j < 64; j++, index++)

buffer[(int)((uint)j >> 2)] = ((int) ((index

< pesanByte) ? input [index]

: padding[index

pesanByte]) << 24) | (int)((uint)buffer [(int)((uint)j >> 2)]

>> 8);

int A = a;

int B = b;

int C = c;

int D = d;

for (int j = 0; j < 64; j++){

int fungsi = (int)((uint)j >> 4);

int f = 0;

int bufferIndex = j;

switch (fungsi){

case 0 :

f = (b & c) | (~b & d); break;

case 1 :

f = (b & d) | (c & ~d); bufferIndex

= (bufferIndex * 5 + 1) & 0x0F;

break; case 2 :

f = b ^ c ^ d; bufferIndex = (bufferIndex * 3 + 5) & 0x0F;

break; case 3 :

f = c ^ (b | ~d); bufferIndex

= (bufferIndex * 7) & 0x0F;

break; }

int temp

= RotateLeft(a + f + buffer[bufferIndex]

+ Tabel_T[j], S[(fungsi << 2) | (j & 3)] );

a = d; d = c; c = b;

b = b + temp;

}

a += A; b += B; c += C; d += D; }

//proses low-order

byte[] md5 = new byte[16];

(5)

for (int i = 0; i < 4; i++){

int n = (i == 0) ? a : ((i == 1) ? b : ((i

== 2) ? c : d));

for (int j = 0; j < 4; j++){

md5[plus++] = (byte) n;

n = (int)((uint) n >> 8);

} }

return md5; }

}

public String toHexString(byte[] hex){

StringBuilder sb = new StringBuilder();

for(int i = 0; i < hex.Length; i++){

sb.Append((hex[i] & 0xFF).ToString("X2"));

}

return sb.ToString();

}

static int RotateLeft(int value, int shift)

{

unchecked{

uint uvalue = (uint) value;

uint uresult = (uvalue << shift) | (uvalue >> 32

shift);

return (int) uresult;

} } }

(6)

CURRICULUM VITAE

1. Biodata

2. Riwayat Pendidikan

2012 – 2016 : S1 Ilmu Komputer Universitas Sumatera Utara 2009 – 2012 : SMA Negeri 1 Padangsidimpuan

2006 – 2009 : SMP Negeri 1 Padangsidimpuan 2000 – 2006 : SD Negeri 200117 Padangsidimpuan

3. Keahlian

Bahasa : Indonesia, Inggris Pemrograman : C#, Pascal, C++

Database : MySql

Perkantoran : Microsoft Office

4. Kursus yang Diikuti

2016 : Les Bahasa Inggris di Briton

5. Pengalaman Organisasi

[2014 – Sekarang] : Anggota Ilmu Komputer Laboratory Center (IKLC) Nama : Nur Hayati

Alamat Sekarang : Jln. Dr. Mansyur Gg. Sipirok No. 16H Medan Alamat Orang Tua : Jln. ST. Mhd. Arief Gg.Lurah Padangsidimpuan Telp/ Hp : 085658090062

(7)

6. Pengalaman Kerja

[2014 – Sekarang] : Asisten Ilmu Komputer Laboratory Center (IKLC)

7. Seminar

[2014] : Seminar Nasional Literasi Informasi “SENARAI”

(8)

DAFTAR PUSTAKA

Ariyanto, Y. 2009. Algoritma RC4 dalam Proteksi Transmisi dan Hasil Query Untuk ORDBMS POSTGRESQL. Jurnal Informatika. Volume 10, Nomor 1. Hal 53-59

Ariyus, D. 2006. Computer Security. Yogyakarta: Andi

Ariyus, D. 2008. Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi. Yogyakarta: Andi

Buana, R.G. 2012. Pengujian Integritas Data Menggunakan Algoritma MD5. Jurnal Dinamika Dotcom. Volume 3, Nomor 1. Hal 87-97

Chulkamdi, M T., Pramono, S.H. & Yudaningtyas, E. 2015. Kompresi teks menggunakan algoritma huffman dan MD5 pada instant messaging smartphone android. Jurnal EECCIS. Volume 9, Nomor 1. Hal 103-108

Fatta, H.A. 2007. Analisis & Perancangan Sistem Informasi. Yogyakarta: Andi

Fowler, M. 2004. UML Distilled, 3th Ed., A Brief Guide to the Standard Object Modeling Language. Tim Penerjemah Penerbit Andi. Yogyakarta: Andi

Harahap, R. 2010. Sistem pengamanan data teks menggunakan algoritma message digest-5. Skripsi. Universitas Sumatera Utara

Hossam & Moussa, B. MD5 algorithm description with an example. (Online) https://www.scribd.com/doc/35954574/MD5-With-Example (19 Juni 2016) Komputer, W. 2003. Memahami Model Enkripsi dan Security Data. Yogyakarta: Andi Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. SPK IT Consulting

Kurniawan, Y. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi. Bandung: Informatika

McKague, M.E. 2005. Design and analysis of RC4-like stream ciphers. Thesis. University of Waterloo

Menezes, A., Oorschot, P.V. & Vanstone, S. 1996. Handbook of Applied Cryptography. CRC Press

Mollin, R.A. 2007. An Introduction to Cryptography. Second Edition. Taylor & Francis Group

(9)

Nathasia, N.D. & Wicaksono, A.E. 2011. Penerapan teknik kriptografi stream cipher untuk pengaman basis data. Jurnal Basis Data, ICT Research Center UNAS. Volume 6, Nomor 1. Hal 1-22

Fast Software Encryption, FSE 2004. Hal 245-259

Rivest, R.L. 1992. The MD5 message-digest algorithm. (Online)

Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan. Yogyakarta : Andi

Schneier, B. 1996. Applied Cryptography Protocols, Algorithms, and Source Code in C. Second Edition

Sukmawan, B. 1998. RC4 stream cipher. (Online)

Tsunoo, Y., Saito, T., Kubo, H., Shigeri, M., Suzaki, T. & Kawabata, T. 2005. The most efficient distinguishing attack on VMPC and RC4A

(10)

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.

(11)

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.

(12)

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

(13)

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

Nama Enkripsi File

Aktor User

Deskripsi Use case ini mendeskripsikan proses enkripsi file dengan algoritma RC4A

Alur Utama - User memilih file yang akan dienkripsi

- User memasukkan kunci yang telah disepakati

(14)

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

Nama Verifikasi File

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

(15)

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

Nama Dekripsi File

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

(16)

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.

(17)

Gambar 3.4 Flowchart Sistem

3.3.2 Flowchart Algoritma RC4A

(18)
(19)
(20)

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

(21)

3.4.1.1 Menu Enkripsi

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.

Enkripsi Dekripsi Bantuan Tentang

1 2 4

5

6

7

8

9

10

11

12

13 14

3

(22)

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

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.

Enkripsi Dekripsi Bantuan Tentang

1 2 3 4

5

6

7

8

9

10

11

13

14 12

(23)

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.

Gambar 3.10 Menu Bantuan Keterangan :

1. Tab Enkripsi untuk menampilkan menu enkripsi. Enkripsi Dekripsi Bantuan Tentang

1 2 3 4

5

(24)

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

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.

Enkripsi Dekripsi Bantuan Tentang

1 2 3 4

5

6

(25)

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

(26)

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.

(27)

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

(28)

Gambar 4.3 Menu Bantuan

4.1.4 Menu Tentang

(29)

Gambar 4.4 Menu Tentang

4.2 Pengujian Sistem

(30)

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.

(31)

Gambar 4.5 Hasil Proses Enkripsi

(32)
[image:32.595.112.525.93.444.2]

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}

(33)

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)

(34)

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})

(35)

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} )

(36)

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

(37)
[image:37.595.102.532.117.338.2]

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

(38)

Gambar 4.7 Hasil Proses Perhitungan MD5 File

(39)

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)

(40)
[image:40.595.286.348.90.267.2]

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.

[image:40.595.286.349.533.654.2]
(41)
[image:41.595.184.452.154.529.2]

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

(42)
[image:42.595.126.533.115.317.2]

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

Nilai 32 bit register (Hexa)

Setelah diubah ke dalam bentuk low-order (Hexa)

Setelah diubah ke dalam bentuk low-order (Desimal)

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

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

[image:42.595.264.365.458.688.2]
(43)

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 OR

• 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

(44)

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

4.2.3 Pengujian Hasil Dekripsi

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

(45)
[image:45.595.111.526.82.523.2]

Gambar 4.13 Hasil Proses Dekripsi

4.2.3.2 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

(46)
[image:46.595.102.532.117.338.2]

Tabel 4.3 Proses XOR Keystream dengan Ciphertext pada Dekripsi

H K

Ciphertext 01001000 01001011

Keystream 1 00000010 00000010

01001010 01001001

Keystream 2 00000010 00000000

Plaintext 01001000 01001001

H I

(47)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang dapat diambil dari penelitian ini adalah:

1. Aplikasi yang dirancang dalam penelitian ini telah mampu melakukan proses pengamanan file teks dengan menggunakan algoritma RC4A.

2. Aplikasi yang dirancang mampu mengembalikan file teks hasil enkripsi menjadi file teks semula sebelum dienkripsi.

3. Aplikasi yang dirancang dalam penelitian ini telah mampu melakukan proses verifikasi keutuhan file dengan menggunakan algoritma MD5.

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

5.2 Saran

Adapun saran yang dapat diberikan untuk pengembangan penelitian ini adalah sebagai berikut:

1. Untuk pengembangan sistem selanjutnya dapat menggunakan algoritma hash lain seperti SHA-1, SHA-256, dan lain sebagainya.

(48)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi (Kromodimoeljo, 2010). Kriptografi adalah ilmu tentang metode-metode untuk mengirimkan pesan secara rahasia (disebut enkripsi atau bentuk samaran) sehingga hanya penerima yang dimaksud yang dapat memecahkan dan membaca pesan (dekripsi). Kriptografi secara etimologi terdiri dari kata kryptos berasal dari bahasa Yunani yang berarti tersembunyi dan graphein yang berarti tulisan. Pesan asli disebut plaintext dan pesan yang disamarkan disebut ciphertext (Mollin, 2007).

Secara garis besar, proses enkripsi adalah proses pengacakan naskah asli (plaintext) menjadi naskah acak (ciphertext) yang sulit untuk dibaca oleh seseorang yang tidak mempunyai kunci dekripsi. Yang dimaksud dengan sulit untuk dibaca disini adalah probabilitas mendapat kembali naskah asli oleh seseorang yang tidak mempunyai kunci dekripsi dalam waktu yang tidak terlalu lama adalah sangat kecil (Kromodimoeljo, 2010). Dekripsi merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (teks asli), disebut dengan dekripsi pesan (Ariyus, 2008).

Algoritma kriptografi dibagi menjadi dua bagian berdasarkan kunci yang dipakainya:

1. Algoritma simetris (menggunakan satu kunci untuk enkripsi dan dekripsinya). 2. Algoritma asimetris (menggunakan kunci yang berbeda untuk enkripsi dan

(49)

2.2 Algoritma Kriptografi Kunci Simetris

Algoritma kriptografi simetris menggunakan kunci yang sama untuk enkripsi dan dekripsinya. Kunci pada penyandian simetris diasumsikan bersifat rahasia yakni hanya pihak yang melakukan enkripsi dan dekripsi yang mengetahui nilainya. Oleh karena itu, penyandian dengan kunci simetris disebut juga dengan penyandian kunci rahasia (Sadikin, 2012).

Dalam lingkungan komunikasi, algoritma kriptografi kunci simetris dapat digunakan jika kedua belah pihak yang berkomunikasi satu dengan yang lainnya saling membagi kunci enkripsi sebelumnya (Wahana Komputer, 2003).

Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain maka orang tersebut akan dapat melakukan enkripsi dan dekripsi terhadap pesan. Contoh algoritma yang memakai kunci simetris antara lain DES, RC4, IDEA, AES, OTP, A5, dan lain sebagainya (Ariyus, 2008).

Algoritma kriptografi kunci simetris dibagi menjadi dua yaitu : 1. Stream cipher

Stream cipher adalah suatu sistem di mana proses enkripsi dan dekripsinya

dilakukan dengan cara bit per bit. Pada sistem ini aliran bit kuncinya dihasilkan oleh suatu pembangkit bit acak atau disebut juga pembangkit aliran kunci (Zain, 2012).

Stream cipher mengenkripsi satu bit setiap kali. Bit hanya mempunyai dua

(50)

2. Block cipher

Sistem block cipher mengkodekan data dengan cara membagi plaintext menjadi per blok dengan ukuran yang sama dan tetap. Kemudian setiap bloknya dienkripsi atau didekripsi sekaligus (Zain, 2012). Contoh algoritma ini adalah RC5, DES, AES, IDEA, dan Blowfish.

2.3 Algoritma Kriptografi Kunci Asimetris

Penyandian dengan kunci asimetris atau sering juga disebut dengan penyandian kunci publik adalah penyandian dengan kunci enkripsi dan dekripsi yang berbeda nilai. Kunci yang digunakan untuk enkripsi disebut dengan kunci publik (public key) dan kunci yang digunakan untuk dekripsi disebut kunci rahasia (private key) (Sadikin, 2012).

Kunci asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan yang satu lagi untuk proses dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki kunci rahasia yang dapat melakukan pembongkaran terhadap sandi yang dikirim untuknya (Ariyus, 2006).

Contoh, Alice ingin mengirim pesan kepada Bob, maka hal yang harus dilakukan adalah :

1. Bob memberitahukan kunci publiknya ke Alice.

2. Alice mengenkripsi pesan dengan menggunakan kunci publik Bob. 3. Bob mendekripsi pesan dari Alice dengan kunci rahasianya.

4. Begitu juga sebaliknya jika Bob ingin mengirim pesan kepada Alice. Contoh algoritma yang menggunakan kunci asimetris adalah RSA, DSA, Diffie-Hellman (DH), dan lain-lain (Ariyus, 2008).

2.4 Algoritma RC4

(51)

merilis RC4 secara resmi, akibatnya banyak yang menyebutnya sebagai ARC4 (alleged RC4 atau tersangka RC4) untuk menghindari masalah trademark (Kromodimoeljo, 2010).

RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data pada satu saat. Unit atau data pada umumnya merupakan sebuah byte. Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu sejumlah input data tertentu sebelum diproses, atau menambahkan byte tambahan untuk mengenkrip (Sukmawan, 1998).

Algoritma RC4 terdiri atas 2 bagian yaitu Key Scheduling Algorithm (KSA) dan Pseudo-Random Generation Algorithm (PRGA).

1. Key Scheduling Algorithm (KSA)

Dalam proses KSA terdapat 2 state array yang harus diinisialisasi yakni S dan K. Array S sepanjang 256 diinisialisasi dengan bilangan 0 sampai 255, S[0] = 0, S[1] = 1, ... , S[255] = 255. Sedangkan array K dengan panjang 256 diinisialisasi dengan kunci yang diulangi sampai seluruh array K[0], K[1], ... , K[255] terisi penuh (Ariyanto, 2009).

Berikut adalah algoritma KSA, dimana simbol l menyatakan panjang kunci dalam byte.

for i from 0 to 255

S[i] := i endfor

j := 0

for i from 0 to 255

j := (j + S[i] + K[i mod l]) mod 256 swap values of S[i] and S[j]

(52)

2. Pseudo-Random Generation Algorithm (PRGA)

State array S hasil dari proses KSA digunakan lagi dalam proses PRGA

ini untuk menghasilkan keystream yang akan di XOR kan dengan plaintext untuk menghasilkan ciphertext (Mooduto & Albar, 2004).

Berikut adalah algoritma PRGA :

i := 0 j := 0

while GeneratingOutput: i := (i + 1) mod 256 j := (j + S[i]) mod 256 swap values of S[i] and S[j]

output := S[(S[i] + S[j]) mod 256] endwhile

2.5 Algoritma RC4A

Pada FSE 2004, Souradyuti Paul dan Bart Preneel telah mengusulkan sebuah varian baru dari RC4 yang diberi nama RC4A. RC4A merupakan sebuah upaya untuk meningkatkan keamanan dari RC4 tanpa mengurangi efisiensi.

RC4A adalah stream cipher yang berorientasi byte. Tahap pembentukan dari RC4A lebih efisien dibanding RC4, tetapi tahap inisialisasinya memerlukan setidaknya dua kali proses inisialisasi dari RC4.

Berikut adalah algoritma KSA dari RC4A (Tsunoo, et al. circa 2005):

RC4_KSA(K,�1)

for i = 0 ... l-1

WK[i] = RC4_PRGA(�1)

(53)

Berikut adalah algoritma PRGA dari RC4A (Tsunoo, et al. circa 2005):

Initialization: i = 0

�1 = �2 = 0

Generation loop i = i + 1

�1 = �1 + �1[i]

Swap (�1[i], �1[�1])

Output z = �2[�1[i] + �1[�1]]

�2 = �2 + �2[i] Swap (�2[i], �2[�2])

Output z = �1[�2[i] + �2[�2]]

RC4A menggunakan dua state array, S1 dan S2, dan tiga buah indeks i, j1, dan

j2. RC4A menggunakan KSA yang sama dengan RC4 kecuali satu hal dimana KSA

digunakan dua kali, masing-masing sekali untuk S1 dan S2. Semua operasi aritmetika

dihitung dengan modulo 256.

Proses KSA dari RC4A terdiri atas 2 bagian yaitu : 1. KSA dengan masukan K dan S1.

2. KSA dengan masukan WK dan S2.

WK dihasilkan dari PRGA milik RC4. l di sini merupakan panjang kunci dalam byte.

Setelah S1 dan S2 diperoleh dari proses KSA, selanjutnya digunakan kembali dalam

PRGA. Tiap putaran dalam PRGA menghasilkan 2 byte output.

2.6 Fungsi Hash

(54)

Fungsi hash satu arah (one-way hash function) sering disebut juga sebagai message digest, fingerprint, dan fungsi kompresi. Fungsi ini biasanya diperlukan bila

kita menginginkan pengambilan sidik jari suatu pesan. Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik sidik jari, fungsi ini diharapkan pula mempunyai kemampuan yang serupa dengan sidik jari manusia, di mana sidik jari pesan diharapkan menunjuk ke satu pesan dan tidak dapat menunjuk kepada pesan lainnya. Dinamakan sebagai fungsi kompresi karena biasanya, masukan fungsi hash ini selalu lebih besar dari pada keluarannya, sehingga seolah-olah mengalami kompresi. Namun kompresi hasil fungsi ini tidak dapat dikembalikan ke bentuk awalnya sehingga disebut fungsi satu arah. Dinamakan message digest karena seolah-olah merupakan inti sari pesan, meskipun sebenarnya tidak demikian (Kurniawan, 2004).

Fungsi hash dapat digunakan untuk mewujudkan layanan keutuhan data. Misalnya M merupakan pesan dan h adalah fungsi hash, maka �= ℎ(�) disebut dengan message digest. Sebelum pesan M disebarkan/dikirimkan sebuah message digest ����� = ℎ(�) disimpan sebagai acuan. Misalnya didapatkan kembali �′ setelah disebarkan/dikirim apabila ingin menguji apakah � =�′ hitung kembali message digest baru ����= ℎ(�′) disimpulkan pesan tidak berubah bila ����� = ����� (Sadikin, 2012).

Fungsi hash memiliki karakteristik sebagai berikut (Kromodimoeljo, 2010) : 1. Preimage resistance.

Untuk suatu nilai hash yang sembarang (tidak diketahui asal-usulnya), sangat sukar untuk mencari naskah yang mempunyai nilai hash tersebut. 2. Second preimage resistance.

Untuk suatu naskah �1, sangat sukar untuk mencari naskah lain �2 yang mempunyai nilai hash yang sama.

3. Collision resistance.

Sangat sukar untuk mencari dua naskah �1 dan �2 yang berbeda, yang mempunyai nilai hash yang sama.

2.7 Algoritma MD5

(55)

umumnya digunakan sebagai checksum untuk verifikasi integritas file yang didownload dari internet.

MD5 memproses teks masukan ke dalam blok-blok 512 bit, kemudian dibagi menjadi 16 buah sub blok sebesar 32 bit. Keluaran dari algoritma MD5 adalah sebuah set dari 4 buah blok masing-masing 32 bit, yang kemudian menghasilkan nilai hash 128 bit (Schneier, 1996).

Langkah-langkah pembuatan message digest pada MD5 adalah sebagai berikut: 1. Penambahan bit-bit pengganjal (padding bits)

Pesan ditambahkan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam bit) kongruen dengan 448, modulo 512. Hal ini berarti pesan akan mempunyai panjang yang hanya kurang 64 bit dari kelipatan 512. Penambahan bit selalu dilakukan walaupun panjang pesan sudah kongruen dengan 448, modulo 512. Jika panjang pesan jumlahnya 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960 bit, jadi panjang bit-bit pengganjal adalah antara 1 sampai 512 bit-bit. Bit-bit-bit pengganjal terdiri dari sebuah bit 1 dan diikuti dengan bit 0 yang menjadi sisanya (Chulkamdi, dkk. 2015).

2. Penambahan nilai panjang pesan semula

Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Jika panjang pesan semula > 264, maka hanya 64 bit secara low-order yang digunakan. Pada saat ini, pesan yang dihasilkan memiliki panjang yang merupakan kelipatan dari 512.

3. Inisialisasi penyangga (buffer) MD

MD5 membutuhkan 4 buah penyangga atau buffer yang masing-masing panjangnya 4 x 32 bit = 128 bit. Setiap penyangga diinisialisasi dengan nilai hexadesimal sebagai berikut :

(56)

4. Pengolahan pesan dalam blok berukuran 512 bit

Dalam tahap ini terdapat fungsi yang akan menghasilkan output satu buah word 32 bit yang didefinisikan sebagai berikut :

F(b,c,d) = (b∧c) ( b∧d)

G(b,c,d) = (b∧d)∨(c ∧∼d)

H(b,c,d) = b c d

I(b,c,d) = c (b∨ d)

(Operator logika and, or, not, xor masing-masing dilambangkan dengan

, , , ).

[image:56.595.101.530.365.556.2]

Tahap ini menggunakan sebuah tabel 64 elemen T[1 ... 64] yang dibangun dari fungsi sinus. T[i] menunjukkan urutan ke-i elemen dari tabel yang merupakan 232 × abs(sin(i)), di mana i dalam radian. Nilai T[i] dapat dilihat pada Tabel 2.1.

Tabel 2.1 Nilai T[i]

T[1] = D76AA478 T[2] = E8C7B756 T[3] = 242070DB T[4] = C1BDCEEE T[5] = F57C0FAF T[6] = 4787C62A T[7] = A8304613 T[8] = FD469501 T[9] = 698098D8 T[10] = 8B44F7AF T[11] = FFFF5BB1 T[12] = 895CD7BE T[13] = 6B901122 T[14] = FD987193 T[15] = A679438E T[16] = 49B40821

T[17] = F61E2562 T[18] = C040B340 T[19] = 265E5A51 T[20] = E9B6C7AA T[21] = D62F105D T[22] = 02441453 T[23] = D8A1E681 T[24] = E7D3FBCB T[25] = 21E1CDE6 T[26] = C33707D6 T[27] = F4D50D87 T[28] = 455A14ED T[29] = A9E3E905 T[30] = FCEFA3F8 T[31] = 676F02D9 T[32] = 8D2A4C8A

T[33] = FFFA3942 T[34] = 8771F681 T[35] = 69D96122 T[36] = FDE5380C T[37] = A4BEEA44 T[38] = 4BDECFA9 T[39] = F6BB4B60 T[40] = BEBFBC70 T[41] = 289B7EC6 T[42] = EAA127FA T[43] = D4EF3085 T[44] = 04881D05 T[45] = D9D4D039 T[46] = E6DB99E5 T[47] = 1FA27CF8 T[48] = C4AC5665

T[49] = F4292244 T[50] = 432AFF97 T[51] = AB9423A7 T[52] = FC93A039 T[53] = 655B59C3 T[54] = 8F0CCC92 T[55] = FFEFF47D T[56] = 85845DD1 T[57] = 6FA87E4F T[58] = FE2CE6E0 T[59] = A3014314 T[60] = 4E0811A1 T[61] = F7537E82 T[62] = BD3AF235 T[63] = 2AD7D2BB T[64] = EB86D391

Proses pada tahap ini terdiri dari 4 buah putaran dan masing-masing putaran melakukan operasi dasar MD5 sebanyak 16 kali.

Operasi dasar MD5 ditulis dalam persamaan sebagai berikut:

a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s) a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s) a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s) a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s)

(57)

Empat buah putaran ditunjukkan pada Tabel 2.2, Tabel 2.3, Tabel 2.4, dan Tabel 2.5.

Misalkan notasi [abcd k s i], maka

Tabel 2.2 Putaran 1

[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8] [ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]

Tabel 2.3 Putaran 2

[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20] [ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28] [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

Tabel 2.4 Putaran 3

[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36] [ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40] [ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44] [ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

Tabel 2.5 Putaran 4

[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52] [ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56] [ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60] [ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]

5. Output

(58)

2.8 Penelitian yang Relevan

Berikut ini beberapa penelitian yang terkait dengan algoritma RC4A dan MD5 :

1. Rosyanti Harahap (2010) dalam skripsi yang berjudul Sistem Pengamanan Data Teks Menggunakan Algoritma Message Digest-5. Menyimpulkan bahwa MD5

dapat melakukan pengujian terhadap data teks untuk mengetahui apakah data sudah diubah atau belum.

2. M Taofik Chulkamdi, Sholeh Hadi Pramono, dan Erni Yudaningtyas (2015) dalam jurnal yang berjudul Kompresi Teks Menggunakan Algoritma Huffman dan MD5 pada Instant Messaging Smartphone Android. Menyimpulkan bahwa

algoritma MD5 sesuai untuk aplikasi instant message berbasis android untuk menjaga integritas password.

3. Rendi Gayu Buana (2012) dalam jurnal yang berjudul Pengujian Integritas Data Menggunakan Algoritma MD5. Menyimpulkan bahwa algoritma MD5 dapat

(59)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Masalah keamanan merupakan salah satu aspek penting dalam proses pengiriman informasi. Informasi yang dikirimkan harus dapat dijaga kerahasiaan dan keutuhannya agar tidak dapat disalahgunakan oleh pihak-pihak yang tidak berwenang yang menginginkan informasi tersebut.

Kriptografi banyak digunakan untuk menjaga aspek keamanan informasi. Ada empat tujuan mendasar dari ilmu kriptografi yaitu confidentiality (kerahasiaan), integrity (keutuhan), authentication (keaslian pesan), dan non-repudiation (tak

terbantahkan). Menurut Kromodimoeljo (2010) kriptografi adalah “ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi”. Dekripsi menggunakan kunci dekripsi mendapatkan kembali data asli.

Algoritma RC4 adalah algoritma kriptografi simetrik karena menggunakan kunci yang sama untuk mengenkripsi ataupun mendekripsi suatu pesan, data, atau informasi. Algoritma RC4 merupakan salah satu algoritma kunci simetris berbentuk stream cipher yang memproses unit atau input data, pesan atau informasi pada satu

saat. Unit atau data pada umumnya merupakan sebuah byte. Pada FSE 2004, sebuah modifikasi baru dari RC4 telah diusulkan oleh Souradyuti Paul dan Bart Preneel yang diberi nama RC4A. RC4A merupakan sebuah upaya untuk meningkatkan keamanan dari RC4 dengan memperkenalkan sebuah permutasi tambahan di dalam desainnya.

(60)

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas, maka yang menjadi rumusan masalah pada penelitian ini adalah sulit untuk menjaga kerahasiaan dan keutuhan dari suatu file teks. 1.3 Batasan Masalah

Dalam penelitian ini penulis membuat batasan masalah sebagai berikut: 1. Jenis data yang digunakan adalah file teks (*.txt dan *.doc).

2. Algoritma RC4A digunakan untuk proses enkripsi dan dekripsi.

3. Algoritma MD5 digunakan untuk memperoleh message digest dari pesan hasil enkripsi (ciphertext).

4. Bahasa pemrograman yang digunakan adalah C#.

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah sebagai berikut:

1. Mengamankan file teks dengan menggunakan algoritma RC4A.

2. Memverifikasi keutuhan dari suatu file dengan menggunakan algoritma MD5.

1.5 Manfaat penelitian

Manfaat yang diharapkan dari penelitian ini adalah dapat membantu dalam mengatasi masalah kemanan data berupa file teks sehingga file tetap dapat terjaga kerahasiaan dan keutuhannya.

1.6 Metodologi Penelitian

Penelitian ini menerapkan beberapa metode penelitian sebagai berikut: 1. Studi Literatur

(61)

2. Analisis dan Perancangan Sistem

Menganalisis dan merancang sistem yang akan dibuat sesuai dengan kebutuhan sistem dengan menggunakan pemodelan UML (Unified Modeling Language).

3. Implementasi Sistem

Pada tahap ini algoritma RC4A dan MD5 telah diimplementasikan ke dalam sebuah aplikasi program.

4. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah dikembangkan.

5. Dokumentasi Sistem

Melakukan dokumentasi sistem mulai dari tahap awal hingga akhir, untuk selanjutnya dibuat dalam bentuk laporan penelitian (skripsi).

1.7 Sistematika Penulisan

Sistematika dalam penulisan skripsi ini disusun menjadi beberapa bab, diantaranya yaitu:

BAB 1 : PENDAHULUAN

Bab ini berisi mengenai latar belakang masalah, rumusan masalah, batasan masalah, tujuan & manfaat penelitian, metode penelitian dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Bab ini berisi mengenai teori-teori yang digunakan untuk mendukung penulisan penelitian, selain itu dalam bab 2 juga dijelaskan mengenai metode yang digunakan dalam penelitian.

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

(62)

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi mengenai implementasi dan pengujian dari program yang sebelumnya telah dirancang dan dianalisis sistemnya.

BAB 5 : KESIMPULAN DAN SARAN

(63)

ABSTRAK

Perkembangan teknologi informasi yang semakin melesat dewasa ini memberikan kemudahan bagi siapa saja dalam melakukan pertukaran data atau informasi. Di sisi lain, timbul permasalahan akan kemanan data yang dapat terganggu oleh pihak-pihak yang tidak bertanggung jawab seperti adanya penyadapan, perusakan, pencurian data, ataupun tindakan penyalahgunaan lainnya. Penerapan teknik kriptografi merupakan salah satu solusi yang dapat dilakukan untuk mengatasi gangguan keamanan tersebut. Kriptografi merupakan ilmu atau seni untuk menjaga keamanan data dengan cara mengacak data atau pesan. Di dalam kriptografi dikenal istilah fungsi hash satu arah yang banyak digunakan untuk menguji integritas sebuah file. Pada penelitian ini, algoritma kriptografi dan fungsi hash yang digunakan adalah RC4A dan MD5. Pesan atau file teks yang akan dikirimkan terlebih dahulu dienkripsi dengan menggunakan algoritma RC4A. Kemudian algoritma MD5 digunakan untuk mendapatkan nilai hash dari pesan hasil enkripsi. Selanjutnya untuk mendapatkan kembali pesan asli dengan cara dekripsi RC4A maka terlebih dahulu dilakukan proses verifikasi file untuk menjamin bahwa file yang diterima belum mengalami perubahan atau masih asli. Verifikasi file ini dilakukan dengan cara mencocokkan nilai hash MD5 yang diperoleh dari si pengirim dengan nilai hash MD5 yang akan dihasilkan dari sistem. Hasil penelitian menunjukkan bahwa algoritma RC4A dan MD5 dapat diimplementasikan dengan baik sehingga keamanan data dapat bertambah karena sebelum melakukan dekripsi pesan maka terlebih dahulu dilakukan verifikasi pesan.

(64)

IMPLEMENTATION OF RC4A AND MD5 ALGORITHMS TO ENSURE CONFIDENTIALITY AND INTEGRITY

IN TEXT FILE

ABSTRACT

The rapid development of information technology these days provides the convenience for everyone to exchange data or information. On the other hand, problem arises in terms of the security of data that can be interrupted by parties who are not responsible such as tapping, destruction, theft, or other acts of abuse. The application of cryptographic techniques is one of the solutions that can be done to solve the security problems. Cryptography is the science or art to maintain the security of data by scrambling data or messages. In cryptography there is a term one-way hash function that is used to test the integrity of a file. In this study, the cryptographic algorithm and hash function used are RC4A and MD5. Message or a text file that will be transmitted is encrypted first by using RC4A algorithm. Then the MD5 algorithm is used to obtain a hash value of a message from encryption. Furthermore, to get back the original message by decryption of RC4A, do process of file verification first to ensure that the received file has not been corrupted or pristine. File verification is done by matching the MD5 hash value obtained from the sender with an MD5 hash value that will be generated from the system. The results showed that RC4A and MD5 algorithms can be implemented properly so that data security can be increased because prior to decrypt the message then firstly be verified the message.

(65)

IMPLEMENTASI ALGORITMA RC4A DAN MD5 UNTUK MENJAMIN CONFIDENTIALITY DAN INTEGRITY

PADA FILE TEKS

SKRIPSI

NUR HAYATI 121401027

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(66)

IMPLEMENTASI ALGORITMA RC4A DAN MD5 UNTUK MENJAMIN CONFIDENTIALITY DAN INTEGRITY

PADA FILE TEKS

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

NUR HAYATI 121401027

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(67)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA RC4A DAN MD5

UNTUK MENJAMIN CONFIDENTIALITY DAN INTEGRITY PADA FILE TEKS

Kategori : SKRIPSI

Nama : NUR HAYATI

Nomor Induk Mahasiswa : 121401027

Program Studi : S1 ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Desember 2016 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Amer Sharif, S.Si, M.Kom M. Andri Budiman, ST, M.Comp.Sc, M.E.M NIP. - NIP. 197510082008011011

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(68)

PERNYATAAN

IMPLEMENTASI ALGORITMA RC4A DAN MD5 UNTUK MENJAMIN CONFIDENTIALITY DAN INTEGRITY

PADA FILE TEKS

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Desember 2016

(69)

PENGHARGAAN

Puji dan syukur kehadirat Allah SWT, yang dengan rahmat dan karunia-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Pada pengerjaan skripsi dengan judul Implementasi Algoritma RC4A dan MD5 untuk Menjamin Confidentiality dan Integrity pada File Teks, penulis menyadari bahwa banyak pihak yang turut membantu, baik dari pihak keluarga, sahabat dan orang-orang terkasih yang memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Bapak Prof. Dr. Runtung Sitepu, SH, M. Hum selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara sekaligus sebagai Dosen Pembanding I yang telah memberikan kritik dan saran kepada penulis dalam pengerjaan skripsi ini.

4. Bapak M. Andri Budiman, ST, M.Comp.Sc, M.E.M selaku Dosen Pembimbing I yang telah memberikan arahan, kritik, dan saran kepada penulis dalam pengerjaan skripsi ini.

5. Bapak Amer Sharif, S.Si, M.Kom selaku Dosen Pembimbing II yang telah memberikan arahan, kritik, dan saran kepada penulis selama pengerjaan skripsi.

(70)

7. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

8. Ayah dan Ibu tercinta Mhd. Tigor Harahap dan Rabiah Julida Hanum, serta kakak dan adik dr. Siti Rahmah, Laila Yunita, Fadli Al Habib yang selalu memberikan kasih sayang, doa, semangat, serta dukungan kepada penulis. 9. Teman-teman S1 Ilmu Komputer USU, Furqan Alatas, Riodat Permana

Sinulingga, Zulfikri, M. Yudha Syuhada, S. Kom, Nurhaliza Nasution, S. Kom, bang Al Mizfar, S. Kom, Muhammad Miftahul Huda yang telah banyak membantu penulis dalam pengerjaan skripsi ini.

10.Teman-teman kuliah, Desi Purnama Sari Sebayang, Erna Lestari, S. Kom, Nurun Hawa Pasaribu, Rina Iswara yang selama ini telah menemani penulis dalam menjalani seluruh kehidupan di kampus.

11.Seluruh teman-teman stambuk 2012 yang telah berbagi kebersamaan dan memberikan motivasi kepada penulis.

12.Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah banyak membantu dalam penyelesaian skripsi ini.

Semoga Allah SWT melimpahkan berkah dan kasih sayang-Nya kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.

Medan, Desember 2016 Penulis,

(71)

ABSTRAK

Perkembangan teknologi informasi yang semakin melesat dewasa ini memberikan kemudahan bagi siapa saja dalam melakukan pertukaran data atau informasi. Di sisi lain, timbul permasalahan akan kemanan data yang dapat terganggu oleh pihak-pihak yang tidak bertanggung jawab seperti adanya penyadapan, perusakan, pencurian data, ataupun tindakan penyalahgunaan lainnya. Penerapan teknik kriptografi merupakan salah satu solusi yang dapat dilakukan untuk mengatasi gangguan keamanan tersebut. Kriptografi merupakan ilmu atau seni untuk menjaga keamanan data dengan cara mengacak data atau pesan. Di dalam kriptografi dikenal istilah fungsi hash satu arah yang banyak digunakan untuk menguji integritas sebuah file. Pada penelitian ini, algoritma kriptografi dan fungsi hash yang digunakan adalah RC4A dan MD5. Pesan atau file teks yang akan dikirimkan terlebih dahulu dienkripsi dengan menggunakan algoritma RC4A. Kemudian algoritma MD5 digunakan untuk mendapatkan nilai hash dari pesan hasil enkripsi. Selanjutnya untuk mendapatkan kembali pesan asli dengan cara dekripsi RC4A maka terlebih dahulu dilakukan proses verifikasi file untuk menjamin bahwa file yang diterima belum mengalami perubahan atau masih asli. Verifikasi file ini dilakukan dengan cara mencocokkan nilai hash MD5 yang diperoleh dari si pengirim dengan nilai hash MD5 yang akan dihasilkan dari sistem. Hasil penelitian menunjukkan bahwa algoritma RC4A dan MD5 dapat diimplementasikan dengan baik sehingga keamanan data dapat bertambah karena sebelum melakukan dekripsi pesan maka terlebih dahulu dilakukan verifikasi pesan.

(72)

IMPLEMENTATION OF RC4A AND MD5 ALGORITHMS TO ENSURE CONFIDENTIALITY AND INTEGRITY

IN TEXT FILE

ABSTRACT

The rapid development of information technology these days provides the convenience for everyone to exchange data or information. On the other hand, problem arises in terms of the security of data that can be interrupted by parties who are not responsible such as tapping, destruction, theft, or other acts of abuse. The application of cryptographic techniques is one of the solutions that can be done to solve the security problems. Cryptography is the science or art to maintain the security of data by scrambling data or messages. In cryptography there is a term one-way hash function that is used to test the integrity of a file. In this study, the cryptographic algorithm and hash function used are RC4A and MD5. Message or a text file that will be transmitted is encrypted first by using RC4A algorithm. Then the MD5 algorithm is used to obtain a hash value of a message from encryption. Furthermore, to get back the original message by decryption of RC4A, do process of file verification first to ensure that the received file has not been corrupted or pristine. File verification is done by matching the MD5 hash value obtained from the sender with an MD5 hash value that will be generated from the system. The results showed that RC4A and MD5 algorithms can be implemented properly so that data security can be increased because prior to decrypt the message then firstly be verified the message.

(73)

DAFTAR ISI

Hal.

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Daftar Lampiran xii

BAB 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 2

1.6 Metodologi Penelitian 2

1.7 Sistematika Penulisan 3

BAB 2 Landasan Teori

2.1 Kriptografi 5

2.2 Algoritma Kriptografi Kunci Simetris 6

2.3 Algoritma Kriptografi Kunci Asimetris 7

2.4 Algoritma RC4 7

2.5 Algoritma RC4A 9

2.6 Fungsi Hash 10

2.7 Algoritma MD5 11

2.8 Penelitian yang Relevan 15

BAB 3 Analisis dan Perancangan Sistem

3.1 Analisis Sistem 16

3.1.1 Analisis Masalah 16

3.1.2 Analisis Kebutuhan 17

3.1.2.1 Kebutuhan Fungsional 17

3.1.2.2 Kebutuhan Non-Fungsional 18

3.2 Pemodelan Sistem 18

3.2.1 Use Case Diagram 18

(74)

3.3 Flowchart 22

3.3.1 Flowchart Sistem 22

3.3.2 Flowchart Algoritma RC4A 23

3.4 Perancangan Antarmuka Sistem 26

3.4.1 Menu Utama 26

3.4.1.1 Menu Enkripsi 27

3.4.1.2 Menu Dekripsi 28

3.4.1.3 Menu Bantuan 29

3.4.1.4 Menu Tentang 30

BAB 4 Implementasi dan Pengujian Sisten

4.1 Implementasi Sistem 31

4.1.1 Menu Enkripsi 31

4.1.2 Menu Dekripsi 32

4.1.3 Menu Bantuan 33

4.1.4 Menu Tentang 34

4.2 Pengujian Sistem 35

4.2.1 Pengujian Hasil Enkripsi 36

4.2.1.1 Pengujian Hasil Enkripsi Sistem 36 4.2.1.2 Pengujian Hasil Enkripsi Manual 38 4.2.2 Pengujian Hasil Perhitungan MD5 43 4.2.2.1 Pengujian Hasil Perhitungan MD5 Sistem 43 4.2.2.2 Pengujian Hasil Perhitungan MD5 Manual 45

4.2.3 Pengujian Hasil Dekripsi 50

4.2.3.1 Pengujian Hasil Dekripsi Sistem 50 4.2.3.2 Pengujian Hasil Dekripsi Manual 51 BAB 5 Kesimpulan dan Saran

5.1 Kesimpulan 53

5.2 Saran 53

(75)

DAFTAR TABEL

Hal.

Tabel 2.1 Nilai T[i] 13

Tabel 2.2 Putaran 1 14

Tabel 2.3 Putaran 2 14

Tabel 2.4 Putaran 3 14

Tabel 2.5 Putaran 4 14

Tabel 3.1 Use Case Enkripsi File 19

Tabel 3.2 Use Case Membangkitkan Kode MD5 20

Tabel 3.3 Use Case Verifikasi File 20

Tabel 3.4 Use Case Dekripsi File 21

Tabel 4.1 Proses XOR Keystream dengan Pla

Gambar

Gambar 3.1 Diagram Ishikawa
Tabel 3.1 Use Case Enkripsi File
Tabel 3.3 Use Case Verifikasi File
Tabel 3.4 Use Case Dekripsi File
+7

Referensi

Dokumen terkait

Oleh karena itu, dapat disimpulkan bahwa isi file enkripsi cocok atau sesuai dengan file asli, sehingga pada waktu dilakukan proses dekripsi, image bisa kembali

Algoritma kriptografi Rijndael bersifat simetris itu artinya kunci yang digunakan pada saat enkripsi dan dekripsi sama, oleh sebab itu pengguna harus terlebih dahulu menyepakati

Pada algoritma Knapsack akan terjadi penambahan ukuran file teks, hal ini dapat dilihat pada contoh kasus yang mana ukuran plaintext (pesan asli) adalah 12 bytes,

Knapsack akan terjadi penambahan ukuran file teks, hal ini dapat dilihat pada contoh kasus yang mana ukuran plaintext (pesan asli) adalah 12 bytes, kemudian setelah

Oleh karena itu, dapat disimpulkan bahwa isi file enkripsi cocok atau sesuai dengan file asli, sehingga pada waktu dilakukan proses dekripsi, image bisa kembali

Untuk dapat mengamankan file text maka dilakukan proses enkripsi dengan mengubah suatu pesan text asli yang dapat dimengerti (plaintext) menjadi pesan yang tidak

Pengujian dekripsi terhadap sebuah pesan teks ( plaintext ) dimana pesan teks ( plaintext ) yang terdekripsi dengan kunci yang cocok tersebut dapat kembali ke pesan teks

Citra selanjutnya akan dilakukan proses dekripsi menggunakan algoritma Vigenere Cipher terlebih dahulu, kemudian hasil dari perhitungan tersebut dihitung lagi menggunakan