2
1. Pendahuluan
Komunikasi data antar komputer berkembang untuk memenuhi kebutuhan pengguna. Perkembangan ini mengakibatkan semakin besarnya informasi yang
disimpan dalam suatu sistem komputer baik organisasi maupun individu. Setiap informasi yang disimpan harus dilindungi keamanannya dari pihak-pihak yang
tidak memiliki hak akses unauthorized user. Keamaman data menjadi suatu hal yang diprioritaskan dalam penyimpanan informasi. Kebutuhan pengamanan data
mendorong terciptanya algoritma-agoritma tertentu untuk mengamankan suatu data [1].
Kriptografi dapat diartikan sebagai suatu ilmu ataupun seni yang mempelajari bagaimana sebuah data dikonversi ke bentuk tertentu yang sulit
untuk dimengerti [2]. Kriptografi Data Encryption Standard DES menjadi standard algoritma enkripsi kunci simetri, namun saat ini standard ini telah
tergantikan oleh algoritma lain karena DES dianggap tidak aman lagi [3]. Karena DES mempunyai potensi kelemahan pada key, maka dibuat varian dari DES.
Salah satu contoh varian DES adalah Double DES dan Triple DES. Hal ini karena DES memiliki kunci lemah yang mengakibatkan setiap putaran proses
enciphering menghasilkan plaintext semula [4].
Beranjak dari permasalahan di atas, maka dilakukan penelitian yang memodifikasi DES dengan teknik menkombinasi antara Right Row dan Left Row
pada proses pembangkitan kunci internal disertai dengan kombinasi fungsi XOR dan Concatenate. Fokus dalam penelitian ini adalah bagaimana memodifikasi
kriptografi DES dengan menggunakan teknik kombinasi Right Row dan Left Row pada proses pembangkitan kunci internal. Peranan kunci yang penting dalam
proses enciphering menjadi alasan mengapa proses modifikasi DES dengan kombinasi Right Row dan Left Row serta operasi XOR dan Concatenate dilakukan
pada proses ini. Pada pengujian modifikasi DES ini tidak dilakukan kriptanalisis sebab memakan resource dan waktu yang cukup banyak, hal ini dikarenakan
kunci DES memiliki panjang 56 artinya 2
56
= 72.057.594.037.927.936 kemungkinan key yang harus dicoba secara paksa dengan super komputer [3].
2. Tinjauan Pustaka
Pada bagian ini akan membahas beberapa pustaka yang digunakan sebagai landasan teori untuk memodifikasi Kriptografi DES. Berikut ini sebagai pustaka
yang diacu adalah penelitian terdahulu yang telah dilakukan terkait dengan modifikasi kriptografi DES.
Penelitian sebelumnya yang berjudul Enhancing the Security of DES Algorithm Using Transposition Cryptography Techniques menggunakan teknik
transposition untuk meningkatkan keamanan kriptografi DES. Penelitian ini menggunakan plaintext yang akan dienkripsi dengan algoritma DES yang sudah
dimodifikasi dengan tambahan teknik transposition. Teknik transposition yang digunakan dalam penelitian ini adalah Simple Columnar Transposition Technique
SCTTMR. SCTTMR adalah teknik transposition yang menyusun plaintext ke dalam sebuah bujur sangkar atau tabel atau matriks dan membacanya dengan
urutan kolom secara acak. Teknik SCTTMR dilakukan di awal proses enkripsi.
3 Sehingga plaintext yang akan dienkripsi menggunakan algoritma DES sudah
merupakan hasil dari modifikasi SCTTMR. Penelitian ini menghasilkan peningkatan keamanan pada algoritma DES. Jika intruder ingin menyerang
algoritma modifikasi ini, maka diperlukan urutan random kolom yang digunakan pada proses SCTTMR dan memerlukan waktu yang lebih lama [5].
Penelitian lain yang berjudul Modified Key Model of Data Encryption Standard menggunakan 8 bit pertama hasil permutasi kompresi pertama dan 8 bit
terakhir pada permutasi ke dua sebagai 16 bit kombinasi untuk tiap 48 bit key pada saat pengangkatan 16 kunci internal. Sehingga ketika dilakukan proses
enchipering DES kunci yang digunakan 48 bit pada 16 bit pertama selalu statik atau sama. Tujuan dari penelitian ini adalah memperumit kriptografi DES normal
pada saat pengangkatan kunci sehingga lebih sulit untuk dilakukan teknik kriptanalisis DES normal [6].
Kedua penelitian di atas merupakan penelitian yang memodifikasi kriptografi DES dengan menggunakan teknik transposition dan pengangkatan
internal key. Berdasarkan penelitian sebelumnya maka penelitian ini akan melakukan modifikasi algoritma DES dengan menkombinasi Right Row Left
Rows disertai dengan operasi XOR dan Concatenate. Penerapan teknik ini akan dilakukan pada proses pembangkitan kunci internal DES. Dengan adanya teknik
ini yang dilakukan pada pembangkitan kunci diharapkan keamanan DES meningkat.
Penelitian ini akan berfokus pada kriptografi DES maka dipaparkan lebih jelas dan detail tentang DES. Data Encryption Standard DES termasuk ke dalam
sistem kriptografi simetri dan tergolong jenis cipher block. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit
cipherteks dengan menggunakan 56 bit kunci internal internal key atau upa- kunci subkey. Kunci internal dibangkitkan dari kunci eksternal external key
yang panjangnya 64 bit [7].
Proses enkripsi DES dapat dilihat melalui Gambar 1. Saat proses enkripsi berlangsung diperlukan 2 input utama, yaitu : plaintext yang akan dienkripsi dan
key. Panjang plaintext harus 64 bits dan key 56 bits.
Gambar 1
Proses Enkripsi DES [2]
4 Blok plaintext dipermutasi dengan matriks permutasi awal initial
permutation atau IP. Hasil permutasi awal kemudian di-enciphering sebanyak 16 kali 16 putaran. Setiap putaran menggunakan kunci internal yang berbeda. Saat
proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri L dan kanan R, yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16
putaran DES. Setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci
internal Ki. Keluaran dari fungsi f dilakukan XOR dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil
dari blok R sebelumnya. Proses ini adalah satu putaran DES. Secara matematis, satu putaran DES dinyatakan sebagai :
1
i i
R L
1 ,
1 1
i i
i i
K R
f L
R
2 Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan
invers initial permutation atau IP
-1
menjadi blok ciphertext. Secara lebih detail algoritma enkripsi DES dapat dilihat pada Gambar 2.
Plainteks IP
L R
f
,
1 1
K R
f L
R
L
1
= R K
1
f
,
2 1
1 2
K R
f L
R
L
2
= R
1
K
2
,
15 14
14 15
K R
f L
R
L
15
= R
14
K
16
,
16 15
15 16
K R
f L
R
L
16
= R
15
IP
-1
Cipherteks f
Gambar 2 Algoritma Enkripsi DES[2]
5 Proses enciphering terjadi sebanyak 16 putaran, maka dibutuhkan kunci
internal sebanyak 16 buah, yaitu K
1
, K
2
, …, K
16
. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi.
Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter. Misalkan kunci eksternal yang
tersusun dari 64 bit adalah K. Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi kompresi. Dalam permutasi
ini, tiap bit ke delapan parity bit dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci
DES adalah 56 bit. Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing disimpan di dalam
C
dan D . Selanjutnya, kedua bagian digeser ke kiri left shift sepanjang satu
atau dua bit bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift. Setelah pergeseran bit, C
i
, D
i
mengalami permutasi kompresi dengan menggunakan matriks permutasi kompresi. Dengan permutasi ini, kunci
internal K
i
diturunkan dari C
i
, D
i
yang dalam hal ini K
i
merupakan penggabungan bit-bit C
i
dengan bit-bit D
i,
, sehingga setiap kunci internal Ki mempunyai panjang 48 bit. Proses pembangkitan kunci-kunci internal
ditunjukkan pada Gambar 3.
Kunci eksternal Permutasi
PC-1 C
D Left Shift
Left Shift C
1
D
1
Left Shift Left Shift
Permutasi PC-2
K
1
C
j
D
j
Permutasi PC-2
K
j
Left Shift Left Shift
C
16
D
16
Permutasi PC-2
K
16
Gambar 3
Proses Pembangkitan Kunci-Kunci Internal DES [7]
Proses dekripsi terhadap ciphertext merupakan kebalikan dari proses enkripsi. DES menggunakan algoritma yang sama untuk proses enkripsi dan
dekripsi. Jika pada proses enkripsi urutan kunci internal yang digunakan adalah K
1
, K
2
, …, K
16
, maka pada proses dekripsi urutan kunci yang digunakan adalah K
16
, K
15
, …, K
1
. Untuk tiap putaran 16, 15, …, 1, keluaran pada setiap putaran
deciphering adalah
1
i i
R L
1
6 ,
1 1
i i
i i
K R
f L
R
2 yang dalam hal ini, R
16
, L
16
adalah blok masukan awal untuk deciphering. Blok R
16
, L
16
diperoleh dengan mempermutasikan ciphertext dengan matriks permutasi IP
-1
. Pra-keluaran dari deciphering adalah L , R
. Dengan permutasi awal IP akan didapatkan kembali blok plaintext semula.
Selama deciphering, K
16
dihasilkan dari C
16
, D
16
dengan permutasi PC-2. C
16
, D
16
tidak dapat diperoleh langsung pada permulaan deciphering. Tetapi karena C
16
, D
16
= C , D
, maka K
16
dapat dihasilkan dari C , D
tanpa perlu lagi melakukan pergeseran bit. C
, D yang merupakan bit-bit dari kunci
eksternal K yang diberikan pengguna pada waktu dekripsi. Selanjutnya, K
15
dihasilkan dari C
15
, D
15
yang mana C
15
, D
15
diperoleh dengan menggeser C
16
yang sama dengan C dan D
16
yang sama dengan C satu bit ke kanan. Sisanya,
K
14
sampai K
1
dihasilkan dari C
14
, D
14
sampai C
1
, D
1
.
Proses kombinasi Right Row Left Row akan beroperasi pada row saat pembagian C
dan D dari external key ke pembangkitan internal key. Proses ini
akan bekerja dengan cara membagi kembali antara C dan D
ke dalam 2 bagian bit. Kemudian bit pada C
bagian row kanan akan digeser ke kanan pada bit D bagian kanan, begitu pula dengan sebaliknya. Pada bit D
bagian kanan akan digeser ke kiri pada bit C
bagian kanan. Sebagai contoh misal x = 11110101, y = 00001010 jika dilakukan teknik kombinasi Right Row Left Row maka bit x akan
dibagi menjadi 2 yaitu x left = 1111, x right = 0101 sedangkan y menjadi y left = 0000, y right = 1010. Lalu dilakuakn kombinasi dengan menggeser bit x right
0101 geser 4 ke kanan rightrow dgn y right maka skrg menjadi y left x right = 00000101. Lalu untuk y right digeser 4 bit ke kiri menjadi x left y right =
11111010. Kombinasi Right Row Left Row yang dilakukan pada row secara sederhana dapat digambarkan pada Gambar 4.
Gambar 4 Teknik Kombinasi Right Row Left Row
Ada empat operasi logika yang sering dilakukan, yaitu AND, OR, XOR dan NOT, dimana pada masing-masing operasi dilakukan untuk pengaturan bit
pada data biner. Operasi XOR sering digunakan untuk membalikkan kondisi bit tertentu [8]. Proses XOR dapat digambarkan pada Tabel 1.
Tabel 1 Operasi XOR
7 Proses Concatenate adalah suatu proses yang dilakukan untuk
menggabungkan 2 string menjadi satu rangkaian string. Sebagai contoh String x dan y jika dikonkatenasi maka akan menjadi xy. Atau contoh yang lain dalam
biner x = 110110, y = 101010, apabila dilakukan proses konkatenasi ∙ maka
akan menjadi xy = 110110101010 [9].
3. Metode Penelitian