Anda di halaman 1dari 10

REKAYASA SISTEM ENKRIPSI DAN DEKRIPSI FILE DENGAN METODE

DATA ENCRYPTION STANDARD (DES) BERBASIS PHP

Budi Pengestu (1911600789)1, Farhan Azis (1911600300)2, Muhlisin (1911600805)3

1,2,3
Magister Ilmu Komputer, Universitas Budi Luhur
Jl.Raya Ciledug, Petukangan Utara, Jakarta Selatan 12260
E-mail: 1pangesturj45@gmail.com, 2rangerzfarhan@gmail.com, 3daemicin@gmail.com

Abstrak
Kerahasiaan suatu data merupakan hal yang sangat penting untuk dijaga. Namun
masalah yang terkadang muncul adalah adanya dicurinya data oleh pihak-pihak yang
tidak berwenang. Kriptografi dapat menjadi salah satu cara untuk mengamankan suatu
data. Cara kerjanya adalah dengan dengan mengubah data asli yang dapat
dimengerti/dibaca (plainteks) menjadi bentuk lain yang tidak dapat dimengerti/dibaca
oleh manusia (chiperteks). Ada banyak algoritma kriptografi untuk melakukan enkripsi,
dalam hal ini kami menerapkan algoritma simetri DES (Data Encryption Standard)
dengan bahasa pemrograman PHP. DES menggunakan sandi blok kunci simetrik
dengan ukuran blok 64-bit dan ukuran kunci 56-bit.

Kata Kunci: Plainteks, Chiperteks, Kriptografi, Enkripsi, Dekripsi

1. PENDAHULUAN
Menjaga kerahasiaan sebuah data, agar tidak mudah jatuh kepada pihak yang
tidak berwenang merupakan hal yang sangat penting. Bayangkan saja suatu data rahasia
yang bahkan dapat bersifat pribadi dengan mudah bocor bahkan diketahui oleh pihak-
pihak yang tidak berkepentingan, tentu saja menimbulkan dampak yang sangat
merugikan bagi pihak-pihak yang memiliki data tersebut. Masalah keamanan data pada
komputer khususnya, menjadi isu yang sangat penting pada era digital saat ini. Para
pelaku kejahatan cyber biasanya memanfaatkan celah-celah keamanan agar dapat
memasuki, mengambil bahkan memanipulasi / mengubah data.
Selain itu, perkembangan yang pesat dalam proses pendistribusian data juga
membawa dampak yang besar yaitu masalah keamanan dari suatu data. Hal tersebut
dapat membuat para pemilik data menginginkan sesuatu yang lebih aman yang dapat
melindungi suatu data yang bersifat rahasia tersebut. Untuk itu diperlukan suatu teknik
dalam menjaga kerahasiaan dari sebuah data. Teknik yang dimaksud adalah Ilmu
Kriptografi. Dengan menggunakan kriptografi maka suatu data dapat diamankan dengan
mengaburkan / mengubah / mengacak isi dari suatu data melalui proses enkripsi. Data
tersebut tentu saja dapat dikembalikan ke bentuk semula melalui proses dekripsi.
Keuntungan dalam menggunakan kriptografi adalah hanya pihak berwenang terhadap
data saja yang dapat melakukan tahap enkripsi maupun dekripsi. Sehingga pihak-pihak
yang tidak berwenang sulit untuk mengetahui isi dari data yang telah diacak / dienkripsi.
Awalnya, kriptografi hanya dipahami sebagai ilmu yang digunakan untuk
menyembunyikan pesan. Namun, kini telah bergeser seiring dengan perkembangan
jaman menjadi ilmu yang terkait dengan teknik matematika yang digunakan dalam
keamanan informasi seperti keutuhan dan kerahasiaan data, serta pengesahan entitas
(Sadikin, 2012).
Banyak sekali jenis algoritma kriptografi, diantaranya adalah algoritma Data
Encryption Standard (DES). Algoritma ini termasuk jenis simetri yang disebut juga
sebagai algoritma konvensional, yaitu algoritma yang menggunakan kunci enkripsi dan
kunci dekripsi yang sama.
M. Yuli Andri meneliti tentang implementasi algoritma kriptografi DES pada
berkas digital (M. Yuli Andri, 2009). Irjatul Wardah meneliti tentang kriptografi
algoritma DES untuk image yang dikirim menggunakan telephone seluler (Irjatul dan
Wardah, 2010). Indra Syahputra meneliti tentang simulasi keamanan informasi
menggunakan kriptografi algoritma DES (Indra Syahputra, 2009). William Mehuron
meneliti tentang penggunaan algoritma DES dan Triple Data Encryption Algorithm
(TDEA) untuk melindungi data rahasia (Federal Information Processing Standars
Publication, U.S. Department of Commerce/National Institute of Standars and
Technology, DES, 1999).
Pada penelitian-penelitian sebelumnya, penerapan algoritma DES baru
menggunakan bahasa pemrograman C dan Pascal (Delphi). Adapun tujuan dari
penelitian ini adalah mendesain dan membuat suatu aplikasi yang dapat melakukan
penyandian (enkrip dan dekrip) menggunakan bahasa pemrograman PHP. Harapannya,
software tersebut dapat bermanfaat dalam mengamankan suatu informasi.

2. LANDASAN TEORI
2.1 Keamanan Data
Masalah yang sangat penting pada era digital dan komputerisasi pada saat
ini adalah masalah keamanan dan kerahasiaan data. Keamanan sebuah data sangat
perlu untuk diperhatikan, mengingat semakin banyaknya pelaku-pelaku kejahatan
cyber. Sebuah data yang dianggap rahasia kebanyakan berupa data-data yang
dianggap penting dan terbatas hanya boleh diketahui oleh orang-orang tertentu.
Banyaknya keuntungan atau dampak positif dari kemajuan teknologi, juga
diikuti oleh banyaknya dampak negatif yang ditimbulkan, seperti computer crime
yang terdiri atas pemerasan, pencurian dan penipuan, serta kompetisi. Jatuhnya data
kepihak lain tentu saja dapat menimbulkan kerugian bagi pemilik data / informasi.
(Ariyus, 2008).
Keamanan jaringan menjadi lebih penting karena jumlah data yang
dipertukarkan di Internet meningkat dengan drastis. Oleh karena itu, kerahasiaan
dan integritas data diperlukan untuk melindungi dari akses yang tidak sah / pihak-
pihak yang tidak berwenang (Moon & Kawitkar, 2007). Keamanan dan kerahasiaan
data pada jaringan komputer saat ini menjadi isu yang sangat penting dan terus
berkembang. Komputer sebagai sarana untuk menyimpan dan mentransmisikan
data, informasi, dan dokumen rahasia, seringkali mudah diakses oleh orang yang
tidak bertanggung jawab (Babu, 2017).
Oleh karena itu, pengamanan sebuah data kiranya sangat penting dan
dibutuhkan, agar data / informasi yang dimiliki khususnya informasi yang bersifat
rahasia dapat tetap terjaga kerahasiaannya, walaupun data tersebut telah jatuh
kepihak yang tidak berhak / berkepentingan.
2.2 Kriptografi
Salah satu solusi yang dapat digunakan untuk menjamin kerahasiaan
maupun keamanan dari suatu informasi adalah dengan kriptografi. Dengan
kriptografi sebuah informasi dapat diacak atau disandikan menjadi informasi yang
sulit atau bahkan tidak dipahami melalui sebuah proses yang dinamakan dengan
enkripsi (Murdani, 2017). Pada kriptografi juga akan dipelajari teknik-teknik
matematika yang terkait dengan aspek keamanan informasi (Munir, 2006).
Sebenarnya, teknik menjaga kerahasiaan pesan tidak hanya dengan menggunakan
kriptografi. Ada juga teknik lain yang dapat digunakan yaitu steganografi.
Steganografi sangat kontras dengan kriptografi (Fadlan & Deby, 2014).
Kriptografi memegang peranan penting dalam memberikan keamanan
terhadap data yang dikirimkan melalui internet (Ali, 2014). Dengan kriptografi,
maka pengamanan sebuah data dapat dilakukan. Suatu data yang tadinya bisa
dibaca / dikenali dengan mudah, maka dengan kriptografi akan menjadi sulit
dikenali karena telah melalui proses pengacakan pada tahap enkripsi. Pada
kriptografi terdapat 2 tahap yang paling utama, yaitu enkripsi dan dekripsi. Pada
tahap enkripsi, akan dilakukan pengacakan sebuah data / teks ke dalam format atau
bentuk yang susah untuk dikenali (cipherteks). Sedangkan tahap dekripsi adalah
tahapan untuk mengubah data yang telah diacak ke dalam bentuk aslinya
(plainteks).
Akhir-akhir ini, persaingan dalam menggunakan kriptografi semakin
berkembang, banyak individu maupun organisasi yang telah menggunakan
kriptografi untuk mengamankan data atau pesan yang mereka punya, sehingga data
tersebut tidak dapat diketahui oleh pihak yang tidak berwenang (Handayani,
Pratitis, Nur, Mashuri, & Nugroho, 2017).
2.3 Algoritma DES
Algoritma DES merupakan algoritma enkripsi yang paling banyak
digunakan di dunia yang diadopsi oleh NIST (National Institue of Standards and
Technology) sebagai standar pengolah informasi Federal AS. Data plaintext
dienkrip dalam blok-blok 64 bit menjadi 64 bit data ciphertext menggunakan kunci
56 bit kunci internal (internal key). DES mentransformasikan input 64 bit dalam
beberapa tahap enkripsi ke dalam output 64 bit. Dengan demikian, DES termasuk
block cipher. Dengan tahapan dan kunci yang sama, DES digunakan untuk
membalik enkripsi. Kunci internal pada algoritma DES dibangkitkan dari kunci
eksternal (external key) 64 bit.

3. PEMBAHASAN
Dalam algoritma DES, terdapat kunci eksternal dan kunci internal. Kunci
internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci internal
dapat dibangkitkan sebelum proses enkripsi ataupun bersamaan dengan proses enkripsi.
Kunci eksternal panjangnya 64 bit atau 8 karakter. Karena ada 16 putaran, maka kunci
internal yang dibutuhkan sebanyak 16 buah, yaitu K1, K2, ..., K16. Untuk mengaitkan
kunci internal diperlukan beberapa langkah.
Kunci eksternal 64 bit, dikompresi terlebih dahulu menjadi 54 bit menggunakan
matriks permutasi kompresi PC-1. Dalam permutasi tiap bit ke-8 dari 8 byte kunci akan
diabaikan. Sehingga akan ada penggunaan 8 bit dari 64 bit awal kunci eksternal.
Setelah didapatkan 56 bit hasil permutasi, selanjutnya 56 bit ini akan dibagi
menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit. Lalu ke-2
bagian tersebut akan disimpan ke dalam C0 dan D0.
C0 : berisi bit-bit dari K pada posisi :
57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18
10, 2, 59, 51, 43, 35, 27, 19,11, 3, 60, 52, 44, 36
D0 : berisi bit-bit dari K pada posisi :
63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22
14, 6, 61, 53, 45, 37, 29, 21, 21, 13, 5, 28, 20, 12
Proses selanjutnya adalah ke-2 bagian (C0 dan D0) digeser ke kiri (left shift)
sepanjang 1 atau 2 bit, tergantung pada tiap putaran. Perputaran ini bersifat wrapping
atau round-shift.
Hasil dari pergeseran C0 dan D0 akan didapatkan nilai dari C1 dan C2. Begitu
seterusnya, hingga proses tersebut menghasilkan C16 dan D16. Untuk mendapatkan
kunci internal pertama (K1), maka bit dari C0 dan D0 tadi dilakukan permutasi
kompresi dengan menggunakan matriks PC-2.
Jadi setiap kunci Ki, mempunyai panjang 48 bit. Apabila proses pergeseran bit-
bit dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28 putaran. Jumlah
ini sama dengan jumlah bit pada Ci dan Di. Oleh karena itu, setelah putaran ke-16 akan
didapatkan kembali C16 = C0 dan D16 = D0.

Gambar 1. Proses Pembentukan Kunci Internal Pada Algoritma DES

Proses enciphering terhadap blok plaintext dilakukan setelah permutasi awal.


Setiap blok plaintext mengalami 16 kali putaran enciphering. Setiap putaran
enciphering secara matematis dinyatakan sebagai:
Li = Ri-1
Ri = Li-1 f(Ri-1, Ki)

Gambar 2. Rincian Komputasi Fungsi f


E merupakan fungsi ekspansi yang memperluas blok Ri-1 yang mempunyai
panjang 32 bit menjadi blok 48 bit.
Hasil ekspansi E(Ri-1), yang panjangnya 48 bit di-XOR-kan dengan Ki yang
panjangnya 48 bit menghasilkan vektor A yang panjangnya juga 48 bit. Kemudian
vektor A dikelompokkan menjadi 8 bagian, yang masing-masing bagian berisi 6 bit, dan
merupakan masukkan dari proses substitusi.
Proses substitusi menggunakan 8 buah kotak-S (S-box). Kotak-S adalah matriks
yang berisi substitusi sederhana yang memetakan satu atau lebih bit dengan satu atau
lebih bit lainnya.
Dalam algoritma DES kotak-S yang digunakan adalah 6x4 S-box yang berarti
menerima masukkan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6 bit pertama
menggunakan S1, kelompok 6 bit berikutnya menambahkan S2 dan seterusnya sampai
menggunakan S8, sehingga secara keseluruhan akan menghasilkan 32 bit keluaran yang
dinamakan dengan vektor B.
Setelah didapat vektor B, maka selanjutnya pada vektor B dilakukan proses
permutasi, yang bertujuan untuk mengacak hasil proses substitusi kotak-S. Permutasi
dilakukan dengan menggunakan matriks permutasi P (P-box). Keluarannya
menghasilkan P(B) yang juga merupakan keluaran dari fungsi f. Proses selanjutnya
yaitu bit-bit P(B) di- XOR-kan dengan Li-1 untuk mendapatkan Ri.
Proses selanjutnya yaitu permutasi terakhir yang dilakukan setalah 16 kali
putaran terhadap gabungan dari blok kiri (L) dan blok kanan (R). Proses permutasi
dilakukan dengan menggunakan matriks permutasi balikan (invers initial permutation)
atau IP-1.

4. PERANCANGAN PERANGKAT LUNAK


Pada perancangan ini, kami menggunakan bahasa pemrograman PHP untuk
merepresentasikan sistem enkripsi dengan algoritma DES. Pemilihan bahasa
pemrograman PHP adalah untuk mempermudah dalam pengembangan ketahap
selanjutnya.
Dalam hal ini, user atau pengguna dapat langsung membuka program atau
palikasi. Selanjutnya user dapat memilih file yang akan di enkrip maupun di dekrip. Jika
user ingin melakukan enkrip dapat memilih button “Enkrip”, sedangkan untuk
melakukan dekrip user dapat memilih button “Dekrip”.
Setelah dilakukan enkrip maupun dekrip, akan muncul tampilan berupa binary.
User dapat menyalin secara langsung maupun dapat menyimpannya kedalam format
*txt.
Gambar 3. Tampilan Aplikasi

5. KESIMPULAN
Dari pembuatan rancangan sistem kriptografi ini dapat diberikan kesimpulan,
antara lain:
a. Dengan adanya aplikasi kriptografi yang dikembangkan berdasarkan
algoritma DES, maka data-data penting dapat diamankan (dienkripsi) ketika
hendak dikirim melalui media internet.
b. Proses enkripsi dan dekripsi file maupun teks, pada prinsipnya memiliki
mekanisme proses yang sama.
c. Waktu yang dibutuhkan untuk melakukan enkripsi maupun dekripsi file/teks
sederhana adalah relatif sama.
6. REFERENSI
Fadlan, Muhammad dan Hardiansa. 2017. “Rekayasa Aplikasi Kriptografi Dengan
Penerapan Kombinasi Algoritma Knapsack Merkle Hellman dan Affine
Cipher”. Tarakan, Indonesia.
Natsir, Mohamad. 2017. “Pengembangan Prototype Sistem Kriptografi untuk Enkripsi
dan Dekripsi Data Office Menggunakan Metode Blowfish dengan Bahasa
Pemrograman Java”, Jakarta, Indonesia.
Shofi, Ahmad. Wiyanto., dan Sulistyo. 2016. “Enkripsi dan Dekripsi dengan Metode
Data Encryption Standard dengan Menggunakan Bahasa Pemrograman PHP”.
Tuban, Indonesia
Simargolang, Muhammad Yasir. 2017. “Implementasi Kriptografi RSA Dengan PHP”.
Sumatera Utara, Indonesia.

Anda mungkin juga menyukai