Implementasi Algoritma RC4A dan MD5 untu

Jurnal & Penelitian Teknik Informatika
Volume 1 Nomor 2, April 2017

e-ISSN : 2541-2019
p-ISSN : 2541-044X

Implementasi Algoritma RC4A dan MD5 untuk Menjamin
Confidentiality dan Integrity pada File Teks
Nur Hayati

Mohammad Andri Budiman

Program Studi S1 Ilmu Komputer
Fak. Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara
n3rhayati@students.usu.ac.id

Program Studi S1 Ilmu Komputer
Fak. Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara
mandrib@usu.ac.id


Amer Sharif
Program Studi S1 Ilmu Komputer
Fak. Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara
amersharifdjamin@gmail.com

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 keamanan 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.
Kata Kunci : Kriptografi, RC4A, Fungsi Hash, MD5, File Teks

I. PENDAHULUAN
A. 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).
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 [1].
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.
MD5 merupakan fungsi hash satu arah yang
dirancang oleh Ron Rivest dengan hash value 128 bit.
Dikatakan fungsi hash satu arah karena pesan yang
telah diubah menjadi message digest (pesan ringkas),

ϱϭ

Jurnal & Penelitian Teknik Informatika
Volume 1 Nomor 2, April 2017

e-ISSN : 2541-2019
p-ISSN : 2541-044X


sangat sulit untuk mengembalikannya ke pesan semula
(plaintext). MD5 merupakan salah satu fungsi hash
satu arah yang banyak digunakan untuk menguji
integritas sebuah file.

Algoritma MD5. Menyimpulkan bahwa algoritma
MD5 dapat mendeteksi perubahan yang terjadi
pada suatu file walaupun perubahan tersebut sangat
kecil.

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

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

Pada tahap ini dilakukan pengumpulan referensi yang
diperlukan dalam penelitian. Hal ini dilakukan untuk
memperoleh informasi dan data terkait dengan
penelitian ini. Referensi yang digunakan dapat berupa
buku, jurnal, artikel, situs internet yang berkaitan
dengan algoritma RC4A dan MD5.
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.


C. Batasan Penelitian
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#.
D. 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.
E. 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.
F. Penelitian yang Relevan
a. Rosyanti Harahap (2010) dalam penelitian 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.
b. 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.
c. Rendi Gayu Buana (2012) dalam jurnal yang
berjudul Pengujian Integritas Data Menggunakan


II.

TINJAUAN PUSTAKA

A. 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 [1]. 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 [3].
B. 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 [4].

ϱϮ

Jurnal & Penelitian Teknik Informatika
Volume 1 Nomor 2, April 2017

C. 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) [4].
D. Algoritma RC4
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 [6].
Algoritma RC4 terdiri atas 2 bagian yaitu Key
Scheduling Algorithm (KSA) dan Pseudo-Random
Generation Algorithm (PRGA).
1. Key Scheduling Algorithm (KSA)
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]
endfor
2. Pseudo-Random Generation Algorithm (PRGA)
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
E. 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.

e-ISSN : 2541-2019
p-ISSN : 2541-044X

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 [7]:
RC4_KSA(K,S1)
for i = 0 ... l-1
WK[i] = RC4_PRGA(S1)
RC4_KSA(WK,S2)
Berikut adalah algoritma PRGA dari RC4A [7]:
Initialization:
i=0
j1= j2 = 0
Generation loop
i=i+1
j1= j1 + S1[i]
Swap (S1[i], S1[j1])
Output z = S2[S1[i] + S1[j1]]
j2 = j2 + S2[i]
Swap (S2[i], S2[j2])
Output z = S1[S2[i] + S2[j2]]
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.
F. Fungsi Hash
Salah satu hal primitif mendasar dalam kriptografi
modern adalah fungsi hash kriptografi yang sering
disebut dengan fungsi hash satu arah. Fungsi hash
adalah sebuah fungsi dengan masukan string biner
yang panjangnya sembarang dan menghasilkan string
biner dengan panjang yang tetap. Fungsi hash yang
paling banyak digunakan dalam kriptografi adalah
untuk integritas data dan tanda tangan digital [2].

ϱϯ

Jurnal & Penelitian Teknik Informatika
Volume 1 Nomor 2, April 2017

G. Algoritma MD5
MD5 adalah salah satu fungsi hash yang paling
banyak digunakan. MD5 merupakan versi perbaikan
dari MD4 yang dirancang oleh Ron Rivest pada tahun
1991. MD5 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 [5].

III.

e-ISSN : 2541-2019
p-ISSN : 2541-044X

dari sistem yang dibangun masing-masing ditunjukkan
pada Gambar 2, Gambar 3, dan Gambar 4.
a.

ANALISIS DAN PERANCANGAN
SISTEM

A. Analisis Masalah
Permasalahan yang dibahas dalam penelitian ini
adalah bagaimana cara menjaga kerahasiaan suatu
pesan atau informasi dari pihak-pihak yang tidak
berwenang yang menginginkan informasi tersebut
serta dapat menjamin bahwa informasi yang diperoleh
masih utuh atau tidak mengalami perubahan. Untuk
mengidentifikasi masalah tersebut digunakan diagram
Ishikawa (fishbone diagram). Diagram Ishikawa dari
sistem dapat dilihat pada Gambar 1.

Use Case Diagram

Gambar 2. Use Case Diagram Pada Sistem

b.

Activity Diagram

Gambar 3. Activity Diagram

Gambar 1. Diagram Ishikawa Analisis Masalah

B. Pemodelan
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.
Use case diagram, activity diagram, dan flowchart

ϱϰ

Jurnal & Penelitian Teknik Informatika
Volume 1 Nomor 2, April 2017

c.

e-ISSN : 2541-2019
p-ISSN : 2541-044X

Flowchart

Gambar 6. Flowchart Dekripsi Algoritma RC4A

IV. IMPLEMENTASI DAN PENGUJIAN
Gambar 4. Flowchart Sistem

Algoritma RC4A menggunakan proses KSA dan PRGA
yang sama dengan algoritma RC4. Flowchart dari
algoritma RC4A untuk proses enkripsi dan dekripsinya
masing-masing dapat dilihat pada Gambar 5 dan Gambar
6.

A. Antarmuka 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 seperti diberikan pada Gambar 7,
Gambar 8, Gambar 9, dan Gambar 10.
a. Menu Enkripsi

Gambar 7. Menu Enkripsi
Gambar 5. Flowchart Enkripsi Algoritma RC4A

ϱϱ

Jurnal & Penelitian Teknik Informatika
Volume 1 Nomor 2, April 2017

b. Menu Dekripsi

e-ISSN : 2541-2019
p-ISSN : 2541-044X

d.

Menu Tentang

Gambar 8. Menu Dekripsi

c. Menu Bantuan

Gambar 10. Menu Tentang

B. Pengujian
Pengujian sistem dilakukan untuk memastikan
bahwa sistem yang telah dibangun dapat berjalan
dengan baik sesuai dengan fungsi-fungsi yang
sebelumnya ditentukan pada tahap analisis dan
perancangan sistem. Hasil pengujian dari sistem dapat
dilihat pada Gambar 11, Gambar 12, dan Gambar 13.
a. Pengujian Hasil Enkripsi Sistem

Gambar 9. Menu Bantuan

Gambar 11. Hasil Proses Enkripsi

ϱϲ

Jurnal & Penelitian Teknik Informatika
Volume 1 Nomor 2, April 2017

e-ISSN : 2541-2019
p-ISSN : 2541-044X

V. KESIMPULAN DAN SARAN

b. Pengujian Hasil Perhitungan MD5
A. 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.

Gambar 12. Hasil Proses Perhitungan MD5 File

c. Pengujian Hasil Dekripsi Sistem

B. 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.
2. Sistem ini bekerja pada data teks, sehingga
diharapkan
penelitian
selanjutnya
dapat
diimplementasikan pada data gambar, suara, atau
video.

REFERENSI
[1]
[2]
[3]
[4]
[5]
[6]

[7]

Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi.
SPK IT Consulting
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
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)
http://www.bimacipta.com/rc4-stream-cipher.html
(19
Februari 2016)
Tsunoo, Y., Saito, T., Kubo, H., Shigeri, M., Suzaki, T. &
Kawabata, T. 2005. The most efficient distinguishing attack
on VMPC and RC4A

Gambar 13. Hasil Proses Dekripsi

ϱϳ