Title | ENKRIPSI DAN DESKRIPSI DENGAN METODE DATA ENCRYPTION STANDARD (DES) DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN PHP |
---|---|
Author | SulisTyo SulisTyo |
Pages | 19 |
File Size | 501.2 KB |
File Type | |
Total Downloads | 88 |
Total Views | 820 |
JURNAL-ENCRYPT&DECRYPT – UNIROW – AHMAD SHOFI, WIYANTO , SULISTIYO[PEB-2016] ENKRIPSI DAN DESKRIPSI DENGAN METODE DATA ENCRYPTION STANDARD (DES) DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN PHP 1 Ahmad Shofi (1412120049) 2 Wiyanto (1412120300) 3 Sulistiyo (1412120051) 1 Teknik Informatika, Universitas ...
JURNAL-ENCRYPT&DECRYPT – UNIROW – AHMAD SHOFI, WIYANTO , SULISTIYO[PEB-2016]
ENKRIPSI DAN DESKRIPSI DENGAN METODE DATA ENCRYPTION STANDARD (DES) DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN PHP
1
Ahmad Shofi (1412120049) 2
Wiyanto (1412120300)
3
Sulistiyo (1412120051)
1
2
Teknik Informatika, Universitas PGRI Ronggolawe Tuban, [email protected],
Teknik Informatika, Universitas PGRI Ronggolawe Tuban, [email protected], 3
Teknik Informatika, Universitas PGRI Ronggolawe Tuban, [email protected],
ABSTRAK Kata sandi atau password digunakan untuk mengamankan data privasi yang tidak boleh diketahui sembarang orang. Di zaman teknologi seperti sekarang, terutama sistem informasi, kata sandi menjadi pokok atau menjadi privasi hal yang penting dalam mengakses data. Dengan penggunaan kata sandi data yang tidak boleh dilihat sembarang orang tetap terjaga selama yang mengakses tidak mengetahui kata sandi untuk melihat data tersebut. Namun seiring perkembangan zaman yang semakin canggih dan perkembangan sistem informasi yang begitu pesat. Kebutuhan akan keamanan kata sandi sangat diperlukan. Karena ketergantungan manusia akan sistem informasi membuat pihak-pihak yang tidak bertanggung jawab (baca : Hacker Blackhat) berusaha untuk mencuri data-data tersebut. Baik itu hanya untuk iseng saja, keuntungan pribadi atau keuntungan pada pihakpihak terkait. Maka dari itu berbagai metode encrypt data semakin berkembang, dari kata sandi Caesar sampai sekarang yang banyak variasi metode enkripsi-deskripsi. Salah satu metode enkrips-dekripsi data adalah DES (Data Encryption Standard). Yaitu proses penyandian data dengan menggunakan metode aritmatika kode binner. Dengan adanya jurnal enkripsi-dekripsi DES ini diharapkan dapat menambah pengetahuan dengan berbagai metode peyandian data. Dan diharapkan dapat mengantisipasi celah-celah keamanan kata sandi dari para Hacker.
Kata kunci : DES, Unirow, Enkripsi, Kata Sandi
JURNAL-ENCRYPT&DECRYPT – UNIROW – AHMAD SHOFI, WIYANTO , SULISTIYO[PEB-2016]
ABSTRACT Passwords used to secure the personal data that should not be known to anyone. In an age of technology as it is now, especially information systems, passwords or be the subject of privacy is important in accessing the data. By using your password data may not be visible for everyone to stay awake for access who do not know the password to view the data. But as increasingly sophisticated system development time and information is so rapid. The need for security password needed. Because the human dependence on information systems to make those who are not responsible (read: Blackhat Hacker) attempt to steal data. Is it just for fun, profit or gain privasi related parties. So that various methods of growing encrypt the data, from the cipher said until now that many different methods of encryption and description. One method enkrips decrypt the data DES (Data Encryption Standard). It is the process of encoding data using arithmetic Binner code. With journal DES encryption and decryption is expected to increase the knowledge of various methods of data peyandian. And is expected to anticipate Hacker password security gaps.
Keyword : DES, Unirow, Encrypt, Password
karena dengan kemampuan komputasi komputer
PENDAHULUAN Kriptografi mempelajari
adalah
mengenai
ilmu bagaimana
yang cara
mengamankan suatu informasi. Pengamanan ini dilakukan
dengan
mengenkrip
informasi
tersebut dengan suatu kunci khusus. Informasi ini sebelum dienkrip dinamakan plaintext. Setelah dienkrip dengan suatu kunci dinamakan ciphertext. Keamanan suatu informasi agar tidak jatuh
ke
tangan
orangorang
berkepentingan sangatlah
yang
penting agar tidak
password, nomor kartu kredit, ataupun informasi pribadi lainnya.
diciptakan oleh para ahli kriptografi, namun berbagai usaha dilakukan oleh cracker untuk memecahkannya tidak sedikit yang membawa keberhasilan. Hal ini mendorong para kriptografi untuk menciptakan algoritmaalgoritma yang lebih aman.
ADVANCED ENCRYPTION STANDARD Hingga
tahun
1990-an,
algoritma
kriptografi yang banyak dipakai adalah Data Encryption Standard (DES). Algoritma ini
Usaha untuk menjaga kerahasiaan suatu informasi telah ada sejak jaman dahulu. Julius Caesar, kaisar Romawi, telah menggunakan enkripsi
Berbagai algoritma kriptografi telah
tidak
disalahgunakan. Informasi ini dapat berupa
metoda
sekarang, akan sangat mudah dipecahkan.
sederhana
dengan
dipakai oleh National Institute of Standards and Technology (NIST) sebagai standar enkripsi data Federal Amerika Serikat.
cara
menggeser setiap karakter dalam pesannya
DES termasuk dalam algoritma enkripsi
dengan nilai tertentu. Cara ini cukup aman pada
yang sifatnya cipher block, yang berarti DES
saat itu namun tidaklah mungkin dipakai saat ini
mengubah data masukan menjadi blok-blok 64-
JURNAL-ENCRYPT&DECRYPT – UNIROW – AHMAD SHOFI, WIYANTO , SULISTIYO[PEB-2016] bit dan kemudian menggunakan kunci enkripsi
mudah
sebesar 56-bit. Setelah mengalami proses
berdasar algoritma matematika tertentu.
enkripsi maka akan menghasilkan output blok
b)
64-bit.
Faktor
diterka
biaya,
outputnya,
dimana
dan
tidak
diperhitungkan
kecepatan prosesing pada baik pada hardware dan software, dan besarnya
Seiring dengan perkembangan teknologi,
memory yang dipakai.
kunci DES yang sebesar 56-bit dianggap sudah tidak memadai lagi. Pada tahun 1998, 70 ribu komputer di Internet berhasil membobol satu kunci DES dalam waktu 96 hari. Tahun 1999 kejadian yang sama terjadi lagi dalam waktu lebih cepat yaitu hanya dalam waktu 22 hari.
c)
Faktor karakteristik implementasi, yakni meliputi kesederhanaan algoritma yang digunakan, kemudahan dan keamanan dalam implementasi di hardware dan software.
Pada tanggal 16 Juni 1998, sebuah mesin seharga
DES seharusnya terdiri dari algoritma
250 ribu dolar dapat dengan mudah memecahkan
enkripsi data yang diimplementasikan dalam
25% kunci DES dalam waktu kira-kira 2,3 hari
peralatan elektronik untuk tujuan tertentu.
atau diperkirakan dapat memecahkan kunci DES
Peralatan ini dirancang menurut cara yang
dalam waktu
mereka gunakan dalam sistem atau jaringan
Adanya
4,5 hari. kenyataan
bahwa
algoritma
kriptografi DES tidak lagi aman, maka NIST
komputer
untuk
melengkapi
perlindungan
cryptographic pada data biner.
mulai memikirkan sebuah algoritma kriptografi
Metode implementasi akan tergantung
lain sebagai pengganti DES. Untuk itu diadakan
pada aplikasi dan lingkungan di sekitar sistem
kontes Internasional dimana pesertanya adalah
itu. Peralatan itu diimplementasikan tetapi
ahli kriptografi dari seluruh dunia.Adapun
sebelumnya diuji dan divalidkan secara akurat
diadakan secara terbuka dimaksudkan agar
untuk menampilkan transformasi dalam bentuk
algoritma yang baru bukan dari produk badan
algoritma.
pemerintah
yang
dapat
dengan
sengaja
menanamkan backdoor pada algoritmanya. Backdoor ini dicurigai membuat plaintext dapat langsung dibaca tanpa harus menggunakan
Pada bahasan kali ini, algoritma DES akan digunakan
untuk
diimplementasikan
mengenkripsi dengan
data
dan
menggunakan
bahasa pemrograman PHP.
kunci. Pada tahun 1997 kontes pemilihan suatu standar algoritma kriptografi baru pengganti DES dimulai dan diikuti oleh 21 peserta dari seluruh dunia. Algoritma yang akan dipilih selain harus memenuhi beberapa kriteria, yaitu a)
Faktor keamanan, yang berarti algoritma tersebut harus tidak mudah dipecahkan oleh cracker, bersifat acak atau tidak
DESKRIPSI ALGORITMA DES Secara umum, algoritma DES terbagi menjadi 3 kelompok di mana kelompok yang satu dengan yang lain saling berinteraksi dan terkait antara satu dengan yang lain. Kelompok-kelompok tersebut adalah : Pemrosesan kunci, enkripsi data 64 bit, dan dekripsi data 64 bit.
JURNAL-ENCRYPT&DECRYPT – UNIROW – AHMAD SHOFI, WIYANTO , SULISTIYO[PEB-2016] Algoritma DES dirancang untuk menulis dan membaca berita blok data yang terdiri dari 64 bit di bawah kontrol kunci 64 bit. Dalam pembacaan berita harus dikerjakan dengan menggunakan kunci yang sama dengan waktu menulis berita, dengan penjadualan alamat kunci bit yang diubah sehingga proses membaca adalah kebalikan dari proses menulis. Sebuah blok ditulis dan ditujukan pada permutasi
Input yang mengalami permutasi mempunyai bit 58
dengan inisial IP, kemudian melewati perhitungan
dari input bit pertamanya, bit 50 sebagai bit kedua
dan perhitungan tersebut sangat tergantung pada
dan bit ke 7 sebagai bit terakhir. Blok input yang
kunci kompleks dan pada akhirnya melewati
mengalami permutasi kemudian menjadi input pada
permutasi yang invers dari permutasi dengan inisial
perhitungan dan tergantung pada kunci kompleks.
IP-1. Output perhitungan ini, disebut preoutput dan output Perhitungan yang tergantung pada kunci tersebut
ini akan diteruskan pada permutasi berikutnya yang
dapat didefinisikan sebagai fungsi f, yang disebut
merupakan
fungsi cipher dan fungsi KS, yang disebut Key
Perhatikan tabel kebalikan dari permutasi inisial IP
Schedule.
yaitu IP –1 .
kebalikan
dari
permutasi
inisial.
Sebuah dekripsi perhitungan diberikan pada awal, sepanjang
algoritma
yang
digunakan
dalam
penulisan pesan. Berikutnya, penggunaan algoritma untuk pembacaan pesan didekripsikan. Akhirnya, definisi dari fungsi cipher f menjadi fungsi seleksi Si dan fungsi permutasi adalah P. Perhatikan contoh berikut ini :
Output dari algoritma di atas mempunyai bit 40 dari blok preoutput sebagai bit pertamanya, bit 8 sebagai
Diberikan 2 blok yaitu L dan R dari bit. LR
bit kedua sampai bit 25 sebagai bit terakhir.
merupakan blok yang terdiri dari bit L dan diikuti oleh bit R. Kemudian menyusul urutan bit yang saling berhubungan yaitu : B1, B2, …., B8. Artinya bit yang terdiri dari B1 diikuti B2 dan akhirnya diikuti B8.
Perhitungan
yang
blok
input
dikenakan permutasi sebagai inputnya
untuk
menghasilkan
untuk
blok
menggunakan
preoutput.
Tetapi
pertukaran blok akhir, dari 16 iterasi dari kalkulasi yang dijelaskan di bawah ini merupakan fungsi
Di dalam algoritma DES dijabarkan menjadi 2
cipher f yang mengoperasikan 2 blok, yaitu salah
bagian, yaitu penulisan pesan dan penguraian pesan.
satu dari 32 bit dan salah satu dari 48 bit. Kalkulasi
64 bit dari blok input yang dienkripsi adalah subjek
tersebut akan menghasilkan blok sepanjang 32 bit.
pertama dari permutasi yang disebut permutasi dengan inisial IP. Perhatikan tabel permutasi inisial IP.
64 bit dari blok input terdiri dari 32 bit blok L dan diikuti oleh 32 bit blok R. Input blok ini didefinisikan sebagai LR.
JURNAL-ENCRYPT&DECRYPT – UNIROW – AHMAD SHOFI, WIYANTO , SULISTIYO[PEB-2016] K menjadi input blok dari 48 bit yang dipilih dari 64
Blok preoutput dari persamaan di atas adalah
bit kunci. Kemudian output L’R’ dari iterasi dengan
R16L16.
input LR menghasilkan persamaan berikut ini : (1) L’ = R R’ = L(+)f(R,K)
Untuk algoritma secara rinci dapat dilihat pada bahasan enkripsi 64 bit yang akan dibahas pada bagian bawah bab ini.
Dimana (+) merupakan penambahan bit demi bit kemudian dibagi 2. Input iterasi pertama dari perhitungan tadi adalah blok input yang mengalami permutasi. L’R’ adalah output dari iterasi ke 16, kemudian R’L’
Penguraian Pesan Permutasi IP-1 menerapkan blok preoutput yang merupakan kebalikan dari permutasi dengan inisial
adalah blok preoutput. Pada masing-masing iterasi
IP. Adapun persamaan berikut ini (4) merupakan
sebuah blok yang berbeda, K merupakan kunci bit
kelanjutan dari persamaan 1.
yang dipilih dari 64 kunci yang ditunjukkan oleh
R’ = L
KEY. L’ = R(+) f(L’, K) Dengan notasi di atas, kita bisa menjelaskan iterasi menjadi lebih rinci. KS menjadi sebuah fungsi yang
Akibatnya, penguraian pesan ini harus menerapkan
menggunakan bilangan bulat n dengan jangkauan
algoritma yang sama pada waktu pesan ditulis.
dari bilangan 1 sampai bilangan 16 dan blok 64 bit
Dengan mengambil masing-masing iterasi dari
KEY sebagai input serta hasilnya sebagai output
perhitungan blok yang sama dari kunci bit K maka
blok 48 bit Kn, di mana bisa dilihat pada persamaan
penguraian itu dilakukan. Dengan menggunakan
berikut ini : (2)
notasi-notasi dari persamaan berikut ini menjelaskan kondisi berikut : (5)
Kn = KS (n, KEY) Rn-1 = Ln Dengan Kn ditentukan oleh bit dalam posisi bit yang berbeda dengan KEY. KS disebut kunci schedule karena blok K digunakan dalam iterasi ke-n (persamaan 1) dan blok Kn ditentukan oleh persamaan 2.
Ln-1 = Rn (+) f(Ln, Kn) Setelah adanya persamaan di atas, sekarang R16L16 adalah blok input dari permutasi dalam perhitungan penguraian dan L0 dan R0 adalah blok preoutput.
Karena sebelumnya blok input dipermutasikan
Untuk penguraian perhitungan dengan R16L16
dengan LR, akhirnya L0 dan R0 berubah menjadi L
sebagai input permutasi. K16 digunakan dalam
dan R, sedangkan Ln dan Rn berubah menjadi L’
iterasi yang pertama, K15 sebagai yang kedua dan
dan R’ (persamaan 1). Selanjutnya L dan R berubah
seterusnya sampai dengan K1 digunakan dalam
menjadi Ln-1 dan Rn-1. K adalah Kn, yaitu ketika n
iterasi ke-16.
dalam jangkauan bilangan 1 sampai bilangan 16. Perhatikan persamaan berikut ini : (3) Ln = Rn-1 Rn n = Ln-1 (+) f(Rn-1, Kn)
Untuk algoritma secara rinci dapat dilihat pada bahasan dekripsi 64 bit yang akan dibahas pada bagian bawah bab ini.
JURNAL-ENCRYPT&DECRYPT – UNIROW – AHMAD SHOFI, WIYANTO , SULISTIYO[PEB-2016] FUNGSI CIPHER F Perhitungan dari fungsi f(R,K) dapat dilihat pada gambar berikut ini.
dari B mewakili dalam base-2 sebuah angka dalam jangkauan 0 sampai dengan 3. Angka tersebut didefinisikan sebagai i. 4 bit ditengah dari B mewakili dalam base 2 sebuah angka dalam jangkauan 0 sampai dengan 15. Angka tersebut didefinisikan sebagai j. Lihat tabel di atas, angka dalam baris ke-i dan kolom ke-j. Angka dalam jangkauan 0 sampai dengan 15 dan diwakili oleh 4 bit blok. Blok itu adalah output S1 (B) dari S1 untuk input B. Sebagai contoh, untuk input 011011 baris 01, baris 1 dan kolom ditentukan oleh 1101, kolom 13. Pada barus 1 kolom 13 kelihatan 5 sehingga outputnya
E merupakan fungsi yang mengambil blok 32 bit
adalah 0101.
sebagai input dan hasil blok 48 bit sebagai output. E
Hasil fungsi permutasi P output 32 bit dari input 32
yang 48 bit sebagai output ditulis sebagai 8 blok dari
bit dengan permutasi bit dari input blok dapat dilihat
6 bit yang masing-masing diperoleh dengan cara
pada tabel berikut ini :
menyeleksi bit dalam input. Perhatikan gambar tabel berikut ini.
Output P(L) untuk fungsi P didefinisikan oleh tabel di atas dan diperoleh dari input L dengan mengambil 3 bit pertama dari E adalah bit dalam posisi 32,
bit ke-16 dari L sebagai bit pertama P(L), bit ke-7
kemudian 1 disusul 2 dari R dan 2 bit E yang terakhir
sebagai bit ke-2 dari P(L), dan seterusnya sampai bit
adalah bit dalam posisi 32 dan 1.
ke-25 dari L diambil sebagai bit ke-32 dari P(L).
Masing-masing fungsi seleksi untuk S1, S2, …. S8
S1, S2, ….., S8 menjadi fungsi seleksi yang berbeda
mengambil blok 6 bit sebagai input dan hasil blok 4
dari P menjadi fungsi permutasi sekaligus E menjadi
bit sebagai output dan diilustrasikan dengan
fungsi yang telah didefinisikan di atas.
menggunakan tabel yang berisi S1.
Untuk mendefinisikan f(R,K), langkah pertama adalah mendefinisikan B1,…B8 menjadi blok dari 6 bit masing-masing untuk persamaan di bawah ini : (6) B1, B2, …, B8 = K(+) E (R) Blok f(R,K) kemudian didefinisikan menjadi
Jika S1 adalah fungsi yang didefinisikan dalam tabel
persamaan berikut ini : (7) P(S1(B1)(S2(B2)….
dan B adalah blok dari 6 bit, kemudian S1 (B)
(S8(B8))
ditentukan sebagai berikut : bit pertama dan terakhir
JURNAL-ENCRYPT&DECRYPT – UNIROW – AHMAD SHOFI, WIYANTO , SULISTIYO[PEB-2016] Jadi K (+) E ( R ) adlaha hasil pertama yang dibagi dalam 8 blok input yang dapat dilihat pada persamaan (6). Kemudian masing-masing B1 diambil sebagai input untuk S1 dan 8 blok (S1(B1)(S2(B2)…. (S8(B8)) dari 4 bit masingmasing digabungkan menjadi blok tunggal dari 32
- Dari permutasi ini kemudian output PC-1 dibagi
bit yang membentuk input P. Output pada
menjadi 2 bagian yaitu 28 bit pertama disebut C(0)
persamaan (7) kemudian menjadi input bagi R dan
dan 28 bit terakhir disebut D(0). - Dari C(0) dan
K.
D(0) kemudian dihitung sub-sub kunci untuk setiap
PEMROSESAN KUNCI
iterasi , yang dimulai dengan j = 1.
Sebelum kita membuat diagram blok tentang alur
- Untuk setiap iterasi, yaitu j rotasi ke kiri 1 kali atau
pemrosesan kunci, sebelumnya disusun terlebih
sebanyak 2 kali untuk setiap C(j – 1) dan D(j – 1).
dahulu
adanya
Dari hasil rotasi ini akan didapatkan hasil C(j) dan
pemrosesan kunci. Algoritma ini nantinya akan
D(j). Tabel berikut ini akan menunjukkan langkah
sangat berguna sekali pada waktu implementasi
setiap rotasi yang diterapkan pada setiap iterasinya.
pada program.
Iterasi ke
Adapun algoritmanya adalah sebagai berikut : -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
algoritma
yang
menunjang
Pengguna memasukkan sebuah kunci sebesar 64 bit atau 8 karakter, dimana nantinya setiap bit dalam
Jumlah Step
kunci ini akan digunakan bit paritas - S...