View
3
Download
0
Category
Preview:
Citation preview
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 256 = 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 ii RL (1)
),( 11 iiii KRfLR (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
L0
R0
f
),( 1001 KRfLR L1
= R0
K1
f
),( 2112 KRfLR L2
= R1
K2
),( 15141415 KRfLR L15
= R14
K16
),( 16151516 KRfLR L16
= R15
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 K1, K2, …, K16. 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
C0 dan D0. 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, (Ci, Di) mengalami permutasi kompresi
dengan menggunakan matriks permutasi kompresi. Dengan permutasi ini, kunci
internal Ki diturunkan dari (Ci, Di) yang dalam hal ini Ki merupakan
penggabungan bit-bit Ci dengan bit-bit Di, , sehingga setiap kunci internal Ki
mempunyai panjang 48 bit. Proses pembangkitan kunci-kunci internal
ditunjukkan pada Gambar 3.
Kunci eksternal
Permutasi
PC-1
C0
D0
Left Shift Left Shift
C1
D1
Left Shift Left Shift
Permutasi
PC-2 K1
Cj
Dj
Permutasi
PC-2 Kj
Left Shift Left Shift
C16
D16
Permutasi
PC-2 K16
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
K1, K2, …, K16, maka pada proses dekripsi urutan kunci yang digunakan adalah
K16, K15, …, K1. Untuk tiap putaran 16, 15, …, 1, keluaran pada setiap putaran
deciphering adalah
1 ii RL (1)
6
),( 11 iiii KRfLR (2)
yang dalam hal ini, (R16, L16) adalah blok masukan awal untuk
deciphering. Blok (R16, L16) diperoleh dengan mempermutasikan ciphertext
dengan matriks permutasi IP-1. Pra-keluaran dari deciphering adalah (L0, R0).
Dengan permutasi awal IP akan didapatkan kembali blok plaintext semula.
Selama deciphering, K16 dihasilkan dari (C16, D16) dengan permutasi PC-2.
(C16, D16) tidak dapat diperoleh langsung pada permulaan deciphering. Tetapi
karena (C16, D16) = (C0, D0), maka K16 dapat dihasilkan dari (C0, D0) tanpa perlu
lagi melakukan pergeseran bit. (C0, D0) yang merupakan bit-bit dari kunci
eksternal K yang diberikan pengguna pada waktu dekripsi. Selanjutnya, K15
dihasilkan dari (C15, D15) yang mana (C15, D15) diperoleh dengan menggeser C16
(yang sama dengan C0) dan D16 (yang sama dengan C0) satu bit ke kanan. Sisanya,
K14 sampai K1 dihasilkan dari (C14, D14) sampai (C1, D1).
Proses kombinasi Right Row Left Row akan beroperasi pada row saat
pembagian C0 dan D0 dari external key ke pembangkitan internal key. Proses ini
akan bekerja dengan cara membagi kembali antara C0 dan D0 ke dalam 2 bagian
bit. Kemudian bit pada C0 bagian row kanan akan digeser ke kanan pada bit D0
bagian kanan, begitu pula dengan sebaliknya. Pada bit D0 bagian kanan akan
digeser ke kiri pada bit C0 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
Penelitian ini dilakukan melalui tahapan penelitian yang terbagi dalam enam
tahapan, yaitu (1) Pengumpulan bahan, (2) Analisis Kebutuhan, (3) Perancangan
modifikasi, (4) Modifikasi DES dengan Right Row Left Row, (5) Uji hasil
modifikasi, (6) Penulisan laporan.
Gambar 5 Tahapan Penelitian
Tahapan penelitian berdasarkan Gambar 5. Tahap pertama: pengumpulan
bahan yaitu, melakukan pengumpulan terhadap data-data dari jurnal-jurnal, buku,
serta sumber yang terkait dengan modifikasi pada DES. Tahap kedua: analisis
kebutuhan yaitu, melakukan analisis mengenai kebutuhan apa saja yang
dibutuhkan dalam perancangan modifikasi DES dengan kombinasi Right Row Left
Row. Tahap ketiga: perancangan modifikasi yang meliputi pembuatan bagan
proses enkripsi dan dekripsi dalam modifikasi DES, serta gambaran-gambaran
umum mengenai modifikasi yang akan dilakukan; Tahap keempat: melakukan
modifikasi berdasarkan tahap ketiga kemudian melakukan analisis hasil dari
modifikasi kritografi DES yang dilakukan. Tahap kelima: melakukan uji hasil
modifikasi terhadap keseluruhan perancangan dan modifikasi yang telah dibuat.
Tahap keenam: penulisan laporan hasil penelitian, yaitu mendokumentasikan
proses penelitian yang sudah dilakukan dari tahap awal hingga akhir ke dalam
tulisan, yang akan menjadi laporan hasil penelitian.
Penulisan Laporan
Uji Hasil Modifikasi
Modifikasi DES dengan Kombinasi RightRow LeftRow
Perancangan Modifikasi
Analisis Kebutuhan
Pengumpulan Bahan
8
Metode perancangan aplikasi yang digunakan adalah metode waterfall.
Waterfall adalah metode yang melakukan pendekatan secara sistematis dan urut
mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding,
testing/verification dan maintenance. Secara umum tahapan pada model waterfall
dapat dilihat pada Gambar 6.
Gambar 6 Tahapan Metode Waterfall [9]
Analisa Kebutuhan ini merupakan analisa terhadap kebutuhan sistem.
Pengumpulan data dalam tahap ini bisa melakukan sebuah penelitian, studi
literatur. Sistem analis akan menggali informasi sebanyak-banyaknya tentang
DES dan modifikasi yang telah dilakukan sebelumnya. Kebutuhan yang
diperlukan salah satunya adalah software dan bahasa pemrograman C# yang akan
digunakan untuk coding.
Desain Sistem merupakan tahapan dimana dilakukan penuangan pikiran
dan perancangan sistem terhadap solusi dari permasalahan yang ada dengan
menggunakan perangkat pemodelan sistem seperti diagram alir data (data flow
diagram).
Penulisan kode program atau coding merupakan penerjemahan design
dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang
akan memodifikasi DES. Tahapan ini lah yang merupakan tahapan secara nyata
dalam mengerjakan suatu aplikasi. Setelah pengkodean selesai maka akan
dilakukan testing terhadap aplikasi yang telah dibuat tadi. Tujuan testing adalah
menemukan kesalahan-kesalahan terhadap aplikasi tersebut dan kemudian bisa
diperbaiki.
Pengujian Program Tahapan akhir dimana aplikasi yang baru diuji
kemampuan dan keefektifannya sehingga didapatkan kekurangan dan kelemahan
aplikasi yang kemudian dilakukan pengkajian ulang dan perbaikan terhadap
aplikasi menjadi lebih baik dan sempurna.
Penerapan Program dan pemeliharaan perangkat lunak yang sudah dibuat
pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami
kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan
9
(periperal atau sistem operasi baru) baru, atau karena membutuhkan
perkembangan fungsional.
Proses enkripsi dan dekripsi modifikasi DES dengan Right Row Left Row
dapat digambarkan dengan diagram pada Gambar 7.
Gambar 7 Proses Enkripsi Modifikasi DES
Modifikasi DES dengan kombinasi Right Row Left Row dilakukan pada saat
pembangkitan kunci internal. Baik proses enkripsi maupun dekripsi DES akan
melalui proses pembangkitan kunci internal, dimana kunci internal akan
dipermutasi dengan PC-2 [8] untuk menghasilkan 16 kunci yang digunakan setiap
putaran enciphering. Peranan kunci yang penting dalam proses enciphering
menjadi alasan mengapa proses modifikasi DES dilakukan pada proses ini.
Modifikasi DES dengan kombinasi Right Row Left Row ini dilakukan setelah
proses permutasi kunci dengan PC-1 [8] dengan menghasilkan panjang kunci 56
bit. Berikut ini adalah tahapan-tahapan modifikasi DES pada pembangkitan kunci
internal dari Gambar 7.
Kunci Eksternal dengan panjang 8 karakter akan diubah ke biner
kemudian dilakukan permutasi dengan PC-1 [8] sehingga panjang kunci menjadi
56 bit. Setelah itu dibagi menjadi 2 bagian, yaitu C0 dan D0. C0 dan D0 memiliki
10
panjang masing-masing 28 bit. Perbedaan dengan proses DES biasa adalah C0 dan
D0 akan disimpan langsung sebagai kunci ke 0.
Pada modifikasi DES ini C0 dan D0 akan dibagi menjadi 2 bagian lagi,
sehingga masing-masing bagian memiliki panjang 14 bit. Bagian C0 diberi nama
C0 left dan C0 right, sedangkan D0 diberi nama D0 left dan D0 right.
Proses kombinasi Right Row Left Row dilakukan pada bagian ini yaitu
menggeser 14 bit C0 Right ke 14 bit bagian kanan D0 yaitu D0 Right. Dan
menggeser ke kiri 14 bit D0 right ke bagian kanan C0 yaitu C0 right. Kemudian
melakukan XOR antara C0 left dengan D0 right dan C0 right dengan D0 left. Proses
ini akan menghasilkan kunci dengan panjang 14 bit.
Penambahan bit kunci dilakukan agar panjang kunci kembali menjadi 28
bit, dengan cara konkatenasi bit yang dihasilkan pada proses sebelumnya (14 bit).
Hasil dari proses tersebut disimpan kembali sebagai C0 dan D0. Proses DES
kemudian berlangsung dengan melakukan left shift dan permutasi kompresi kunci
2 untuk menghasilkan 16 kunci.
Berikut akan dijelaskan pemaparan coding untuk melakukan modifikasi
DES dengan kombinasi Right Row Left Row pada pembangkitan kunci internal.
Berikut adalah penjelasan untuk masing-masing bagian pada modifikasi DES.
Pertama adalah coding untuk membagi menjadi 2 bagian lagi yaitu C0 left
dan C0 right dengan D0 left dan D0 right. Kode Program dapat dilihat pada Kode
Program 1
Kode Program 1 Penggalan Perintah Pembagian Setengah Kunci
Berikut adalah coding untuk proses XOR yang akan dilakukan pada
modifikasi DES. Sedangkan utuk operasi konkatenasi terletak di line 10 pada
Kode Program 2.
1. public string SetHalvesKey(bool IsLeft, string text){
2. if ((text.Length % 8) != 0){
3. return null;
4. }
5. int midindex = (text.Length / 2) - 1;
6. string result = "";
7. if (IsLeft){
8. result = text.Substring(0, midindex + 1);
9. }
10. else{ 11. result = text.Substring(midindex + 1); 12. } 13. return result;}
11
Kode Program 2 Penggalan Perintah Operasi XOR Antara C0 left dengan D0 right dan C0 right
dengan D0 left
Modifikasi DES dengan kombinasi Right Row Left Row yang terjadi pada
proses pembangkitan kunci ini memiliki alur yang sama baik proses enkripsi
maupun dekripsi. Ketika proses dekripsi berlangsung diperlukan terlebih dahulu
16 kunci internal untuk proses deciphering.
4. Implementasi dan Pembahasan
Penelitian ini melakukan modifikasi kriptografi DES dengan Right Row Left
Row. Penerapan modifikasi kriptografi DES terjadi pada pembangkitan kunci
internal. Peranan kunci internal penting dalam proses enciphering, karena dengan
kunci ini dilakukan 16 kali putaran enciphering yang akan menghasilkan
ciphertext. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit
plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal
(internal key). Alur kerja proses enkripsi kriptografi DES dijelaskan melalui
skema pada Gambar 7 yang dimodifikasi dengan teknik kombinasi Right Row Left
Row dapat dijelaskan sebagai berikut.
Kunci eksternal dengan panjang 8 karakter diproses dengan mengubah
kunci eksternal ke bilangan hexadesimal, kemudian dari hexadesimal menjadi
biner dengan panjang kunci 64 bit (8 bit per karakter).
Hasil dari 64 bit biner tersebut dilanjutkan dengan permutasi kunci eksternal
dengan PC-1 [8]. Hasil dari permutasi ini menjadikan panjang kunci eksternal dari
64 bit menjadi 56 bit.
Kunci eksternal 56 bit yang telah mengalami permutasi dibagi menjadi 2
bagian C0 dan D0 dengan panjang masing-masing 28 bit. Jika pada proses DES
biasa C0 dan D0 akan disimpan langsung sebagai kunci ke 0.
Penambahan proses kombinasi Right Row Left Row dilakukan pada proses
pembangkitan kunci internal ini. Proses kombinasi Right Row Left Row dilakukan
dengan cara membagi 2 bagian kembali C0 dan D0, sehingga masing-masing
bagian memiliki panjang 14 bit. Bagian C0 diberi nama C0 left dan C0 right,
sedangkan D0 diberi nama D0 left dan D0 right. Kemudian proses kombinasi Right
Row Left Row dilakukan pada bagian ini yaitu menggeser 14 bit C0 Right ke 14 bit
1. public override string EncryptionStart(string text, string
key, bool IsHalf1){
2. string result = "";
3. int l = key.Length;
4. if (IsHalf1){
5. for (int j = 0; j < key.Length / 2; j++){
6. result += Convert.ToString(Convert.ToByte(text[j]) ^
Convert.ToByte(key[(key.Length / 2) + j])) + "";}}
7. else{
8. for (int j = 0; j < key.Length / 2; j++){
9. result += Convert.ToString(Convert.ToByte(text[(key.Length /
2) + j]) ^ Convert.ToByte(key[j])) + "";}}
10. result += result; 11. return result;}
12
bagian kanan D0 yaitu D0 Right. Dan menggeser ke kiri 14 bit D0 Right ke bagian
kanan C0 yaitu C0 Right.
Setelah proses kombinasi Right Row Left Row dilakukan operasi XOR antara
C0 left dengan D0 right dan C0 right dengan D0 left. Proses ini akan menghasilkan
kunci dengan panjang 14 bit.
Untuk proses pembangkitan kunci internal dan proses enciphering diperlukan
kunci dengan panjang 28 bit. Oleh karena itu penambahan bit kunci dilakukan
agar panjang kunci kembali menjadi 28 bit, dengan cara konkatenasi bit yang
dihasilkan pada proses sebelumnya (14 bit) menjadi 28 bit.
Hasil dari proses tersebut disimpan kembali sebagai C0 dan D0. Proses DES
kemudian berlangsung dengan melakukan left shift dan permutasi kunci dengan
PC-2 untuk menghasilkan 16 kunci dengan panjang masing-masing 48 bit.
Kemudian proses dilanjutkan dengan melakukan proses enchipering DES
yang dilakukan 16 kali dengan kunci internal yang telah dimodifikasi. File atau
teks yang akan dienkripsi diubah menjadi biner dengan kelipatan 64 bit. Jika hasil
belum kelipatan 64 bit maka dilakukan padding bit 0 sampai panjang menjadi
kelipatan 64 (plainteks).
Setiap kelompok 64 bit plainteks melalui proses permutasi dengan matriks ip
(64 bit). Dari hasil tersebut akan dibagi menjadi 2 bagian L0 dan R0 dengan
masing-masing panjang 32 bit. R0 akan menjadi Ln, sedangkan L0 akan di XOR
dengan hasil fungsi transformasi yang disebut f yang nantinya disimpan sebagai
Rn.
1 ii RL (1)
),( 11 iiii KRfLR (2)
Fungsi f terdiri dari 4 tahapan. Tahap pertama (E) : Rn_1 (R0) 32 bit akan
dipermutasi dengan matriks pc_e menghasilkan 48 bit yang disebut fungsi
ekspansi. Matriks pc_e dapat dilihat pada Tabel 2. Tabel 2 Matriks pc_e Fungsi Ekspansi [8]
32 1 2 3 4 5 4 5 6 7 8 9
8 9 10 11 12 13 12 13 14 15 16 17
16 17 18 19 20 21 20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 1
Tahap ke dua (XOR) : hasil dari tahap pertama di XOR kan dengan kunci
internal hasil enciphering (Kn) menghasilkan vektor A dengan panjang 48 bit.
AKRE ii )( 1 (5)
Tahap ke tiga (sBox_Transform) : vektor A akan dibagi menjadi 8 bagian,
masing-masing 6 bit untuk dilakukan proses substitusi S-box. Proses substitusi
dilakukan dengan menggunakan delapan buah kotak-S (S-box), S1 sampai S8.
Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Output
proses ini menghasilkan vektor B yang memiliki panjang 32 bit. Tahap ke empat
(Permutation P): vektor B akan dipermutasi dengan matriks permutasi P. Tujuan
permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Permutasi
dilakukan dengan menggunakan matriks permutasi P (P-box) menghasilkan
panjang 32 bit (P(B)). Permutation Box dapat dilihat pada Tabel 3.
13
Tabel 3 P-Box [8]
16 7 20 21 29 12 28 17 1 15 23 26 5 8 31 10
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
Hasil dari fungsi f akan akan mengalami proses XOR dengan Li – 1 untuk
mendapatkan Ri
)(1 BPLR ii (6)
Sehingga output dari setiap putaran ke i sama dengan
))(,(),( 11 BPLRRL iiii (7)
Proses ini akan dilakukan sebanyak 16 kali dengan menggunakan kunci
internal (jaringan Feistel). Permutasi terakhir dilakukan setelah 16 kali putaran
terhadap gabungan blok kiri dan blok kanan. Proses permutasi menggunakan
matriks permutasi awal balikan (inverse initial permutation atau IP-1 ). Matrik
inverse initial permutation dapat dilihat pada Tabel 4.
Tabel 4 Matriks IP-1 [8]
40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
Alur proses dekripsi merupakan kebalikan dari alur proses enkripsi. Dimana
setiap blok cipherteks akan diubah kembali menjadi plainteks. Modifikasi DES
dengan menggunakan kombinasi Right Row Left Row juga terletak pada proses
pembangkitan kunci internal proses dekripsi.
Untuk proses deciphering memiliki alur yang sama seperti proses
enchiphering sebab DES bekerja dalam Block Chiper. Yang membedakan adalah
ketika di awal 64 bit plainteks dipermutasikan terlebih dahulu dengan IP-1 [8].
Kemudian untuk kunci internal mengalami pembalikan pada fungsi f dengan
urutan (K16….K1).
Sebagai contoh terdapat file teks yang berisi tulisan “KRIPTOGRAFI
RAHASIA DATA”. File tersebut akan menjadi masukkan proses enkripsi
maupun dekripsi. Kunci eksternal yang diinputkan adalah “A4B234FF”. Berikut
ini adalah penjabaran dari tiap tahapan dalam proses enkripsi.
Kunci eksternal = A4B234FF
Kunci eksternal 8 karakter= A4B234FF
Kunci eskternal biner (64 bit) =
0100000100110100010000100011001000110011001101000100011001000110
Permutasi kunci eksternal dengan PC-1. Kunci eksternal menjadi (56 bit)=
00000000110001010011101000111101110011100010000000001010
Bagi kunci eksternal 56 bit menjadi 2 bagian C0 dan D0 dengan panjang masing-
masing 28 bit. C0 = 0000000011000101001110100011 dan D0 =
1101110011100010000000001010.
14
Lakukan kombinasi Right Row Left Row dengan membagi 2 bagian kembali
C0 dan D0, sehingga masing-masing bagian memiliki panjang 14 bit. Bagian C0
diberi nama C0 left = 00000000110001 dan C0 right = 01001110100011,
sedangkan D0 diberi nama D0 left = 11011100111000 dan D0 right =
10000000001010. Right Row dilakukan dengan menggeser 14 bit C0 right ke
bagian kanan 14 bit D0 yaitu D0 right. Sehingga bit C0 right bertukar dengan bit D0
right dan dikombinasikan menjadi 0100111010001111011100111000. Left Row
dilakukan dengan menggeser ke kiri 14 bit D0 right ke bagian kanan C0 yaitu
C0Right dan dikombinasikan menjadi C0 left D0 right 00000000110001
10000000001010
Kemudian melakukan operasi XOR antara C0 left dengan D0 right dan C0 right
dengan D0 left.
C0 = C0 left D0 right
= 00000000110001 ^ 10000000001010
= 10000000111011
D0 = C0 right D0 left
= 01001110100011 ^ 11011100111000
= 10010010011011
Konkatenasi bit yang dihasilkan pada proses sebelumnya (14 bit).
C0 = 1000000011101110000000111011
D0 = 1001001001101110010010011011
1. Hasil kunci yang sudah dimodifikasi melalui proses kombinasi Right Row Left
Row tersebut disimpan kembali sebagai C0 dan D0. Proses DES kemudian
berlangsung dengan melakukan left shift dan permutasi kunci dengan PC-2
untuk menghasilkan 16 kunci (Kn) dengan panjang masing-masing 48 bit.
C0 = 1000000011101110000000111011
C1 = 0000000111011100000001110111
C2 = 0000001110111000000011101110
C3 = 0000111011100000001110111000
… C16
D0 = 1001001001101110010010011011
D1 = 0010010011011100100100110111
D2 = 0100100110111001001001101110
D3 = 0010011011100100100110111001
… D16
K1 = 100100010001101011001010111101011101000110010000
K2 = 001000000010101011011010100111111010101001001100
K3 = 001101000111110000010100011100001101011111010000
K4 = 010001100010110101010000000110011010010000101111
…K16
2. Binarytext =
010010110101001001001001010100000101010001001111010001110101001
001000001010001100100100100100000010100100100000101001000010000
010101001101001001010000010010000001000100010000010101010001000
001
15
3. Setiap kelompok 64 bit plainteks melalui proses berikut :
a. plainteks (64 bit)=
111111111001101001110000011001010000000000000000001001011110
0011.
b. L0 = 11111111100110100111000001100101
R0 = 00000000000000000010010111100011
c. Ln = 00000000000000000010010111100011
Fungsi f terdiri dari 4 tahapan.
Tahap pertama (E) – hasil 48 bit:
E(Ri – 1) =
100000000000000000000000000100001011111100000110
Tahap ke dua (XOR) – hasil 48 bit :
A = E(Ri – 1) Ki
= 100000000000000000000000000100001011111100000110 ^
100100010001101011001010111101011101000110010000
= 000100010001101011001010111001010110111010010110
Tahap ke tiga (sBox_Transform) – hasil 32 bit :
B = 11011100100101101010010001011110
Tahap ke empat (Permutation P) – hasil 32 bit :
P(B) = 00010000000010100111000001110000
Hasil dari fungsi f akan di XOR kan dengan Li – 1 untuk mendapatkan Ri
Ri = Li – 1 P(B)
Ri = 11111111100110100111000001100101 ^
00001111110110101001000110111010
Ri = 11101111100100000000000000010101
d. Dari hasil di atas maka didapatkan :
L1 = 00000000000000000010010111100011
R1 = 11101111100100000000000000010101
Lakukan langkah di atas sampai 15 kali (L1..16, R1…16) berikutnya untuk
mendapatkan hasil akhir 64 bit pertama pada (L16,R16). Demikian pula
untuk proses dekripsi sama dengan proses manual untuk enkripsi hanya
saja kunci yang digunakan pada tahap c. sesuai dengan urutan (K16…K1)
Selanjutnya, menunjukkan modifikasi DES dengan teknik kombinasi Right
Row Left Row sebagai sebuah teknik kriptografi berdasarkan stinson, dengan
memenuhi syarat five-tuple [11] yaitu, syarat pertama: P adalah himpunan
berhingga dari plainteks. Rancangan kriptografi ini menggunakan plainteks
berupa 64 bit pada setiap pembagian bit cipher block DES. Ini menunjukkan
jumlah bit yang semuanya terbatas dalam sebuah himpunan yang berhingga, maka
himpunan plainteks pada modifikasi DES adalah himpunan berhingga; Syarat
kedua: C adalah himpunan berhingga dari cipherteks. Cipherteks dihasilkan dalam
elemen 64 bit, dimana karakter cipherteks, maka himpunan cipherteks yang
dihasilkan pada modifikasi DES dengan kombinasi Right Row Left Row
merupakan elemen terbatas karena hanya menghasilkan elemen bit; Syarat ketiga:
K merupakan ruang kunci (keyspace) yang merupakan himpunan berhingga dari
kunci. Penggunaan kombinasi Right Row Left Row pada awal pembangkitan
16
kunci internal DES yang digunakan dalam proses modifikasi yaitu melakukan
penggeseran bit antara C0 right dengan D0 right. Proses ini akan menghasilkan
kunci dengan panjang 14 bit. Syarat keempat: Untuk setiap 𝑘 ∈ 𝑲, terdapat aturan
enkripsi 𝑒𝑘 ∈ 𝑬 dan berkorespodensi dengan aturan dekripsi 𝑑𝑘 ∈ 𝑫. Setiap
𝑒𝑘: 𝑷 ⟶ 𝑪 dan 𝑑𝑘: 𝐶 ⟶ 𝑃 adalah fungsi sedemikian hingga 𝑑𝑘(𝑒𝑘(𝑥)) = 𝑥
untuk setiap plainteks 𝑥 ∈ 𝑷. Syarat keempat secara menyeluruh terdapat kunci yang dapat melakukan
proses enkripsi sehingga merubah plainteks menjadi cipherteks dan dapat
melakukan proses dekripsi yang merubah cipherteks ke plainteks. Sebelumnya
telah dibuktikan dengan kelipatan 64 bit pertama dapat melakukan proses enkripsi
dan dekripsi. Perancangan modifikasi modifikasi DES dengan teknik kombinasi
Right Row Left Row telah memenuhi five-tuple, maka terbukti menjadi sebuah
sistem kriptografi.
Aplikasi yang dibangun pada penelitian ini menerapkan modifikasi
kriptografi DES dengan menggunakan kombinasi Right Row Left Row. Aplikasi
ini menyediakan fungsi enkripsi dan dekripsi. Proses kriptografi aplikasi dapat
dilakukan pada file. Gambar 8 merupakan tampilan dari menu enkripsi.
Gambar 8 Tampilan Menu Enkripsi
Fungsi enkripsi mengharuskan pengguna untuk memilih file yang akan
dienkripsi. Setelah memilih file yang akan dienkripsi maka pengguna harus
memasukkan kunci yang akan digunakan untuk proses enkripsi. Kunci ekternal ini
akan digunakan untuk membangkitan kunci internal dalam proses enciphering
modifikasi DES. Setelah proses enkripsi berhasil dilakukan maka akan muncul
notifikasi proses selesai. Lama proses enkripsi dapat dilihat pada tombol “Waktu
Proses Enkripsi”. Perhitungan lama proses enkripsi dihitung berdasarkan selisih
waktu ketika proses mulai dilakukan sampai selesai. Gambar 9 merupakan
tampilan dari menu dekripsi. Seluruh element interface menu dekripsi sama
dengan menu enkripsi berserta fungsinya.
Gambar 9 Tampilan Menu Dekripsi
Hasil pengujian sistem dilakukan dengan membandingkan lamanya proses
enkripsi maupun dekripsi antara kriptografi DES dengan kriptografi modifikasi
DES. Perbandingan dilakukan dengan melakukan proses enkripsi dan dekripsi
17
terhadap file teks maupun gambar. Hal ini dilakukan untuk mengetahui kecepatan
kinerja modifikasi DES. Didapatkan hasil bahwa waktu proses enkripsi dan
dekripsi untuk kriptografi DES dan kriptografi DES yang dimodifikasi tidak jauh
berbeda atau dapat dikatakan sama. Perbandingan waktu antar proses enkripsi dan
dekripsi juga memiliki selisih waktu yang tidak banyak, baik dalam bentuk file
teks maupun file gambar. Hasil dari pengujian perbandingan kriptografi tersebut
yang dilakukan pada file teks dapat dilihat pada Gambar 10.
Gambar 10 Grafik Perbandingan Waktu Proses Enkripsi-Dekripsi File Teks antara Modifikasi
DES dengan DES.
Hasil dari pengujian perbandingan waktu kriptografi yang dimodifikasi
untuk file gambar dapat dilihat pada Gambar 11.
Gambar 11 Grafik Perbandingan Waktu Proses Enkripsi-Dekripsi File Gambar antara Modifikasi
DES dengan DES.
Selain hal tersebut dilakukan pula perbandingan penggunaan memori yang
diperlukan untuk menjalankan setiap proses kriptografi DES dan modifikasi DES.
Perbandingan dilakukan dengan melakukan proses enkripsi dan dekripsi terhadap
file teks maupun gambar. Hasil pengujian memori pada file teks dapat dilihat pada
Gambar 12.
1 kb 94 kb 213 kb 411 kb 768 kb 1028 kb
Enkripsi DES (s) 0.04 2.95 6.67 12.9 23.95 32.37
Enkripsi Modifikasi DES(s)
0.06 3.03 7.14 13.14 24.97 33.97
Dekripsi DES (s) 0.03 2.96 6.75 12.92 24.18 32.06
Dekripsi Modifikasi DES(s)
0.04 2.99 6.81 13.15 24.39 31.92
05
10152025303540
13 Kb 97 Kb 226 Kb 506 Kb 777 Kb 1039 Kb
Enkripsi DES (s) 0.39 3.06 7.14 15.92 24.51 32.72
Dekripsi DES (s) 0.4 3.04 6.98 15.79 24.2 32.54
Enkripsi Modifikasi DES(s)
0.39 2.93 6.95 15.73 24.5 31.75
Dekripsi Modifikasi DES(s)
0.4 3 7 14.5 22.7 30.51
05
101520253035
18
Gambar 12 Grafik Perbandingan Penggunaan Memory Proses Enrkipsi-Dekripsi File Teks antara
Modifikasi DES dengan DES.
Sedangkan untuk hasil dari pengujian perbandingan memori kriptografi
yang dimodifikasi untuk file gambar dapat dilihat pada Gambar 13.
Gambar 13 Grafik Perbandingan Penggunaan Memory Proses Enrkipsi-Dekripsi File Gambar
antara Modifikasi DES dengan DES.
Berdasarkan penelitian dengan keterbatasan spesifikasi yang digunakan
(stress point). Maka data tabel pada Gambar 10 dan Gambar 11 akan dimodelkan
pada grafik dengan bentuk fungsi yang dicocokkan dengan data tersebut (fitting).
Pemodelan ini dipergunakan untuk mengukur data yang lebih dari hasil pengujian
dan penelitian. Tabel pada Gambar 10 untuk waktu Proses Enkripsi modifikasi
DES pada file teks menunjukkan fitting terbaik pada fungsi polynomial derajat 2
yaitu 𝑦 = 𝑓(𝑥) dengan 𝑓(𝑥) = 1,0898x2 – 0,7325x – 0,247 dengan koefisien
determinasinya (R2) = 0,9949. Sedangkan untuk tabel pada Gambar 11
pengukuran waktu file gambar menunjukkan fitting terbaik pada fungsi
polynomial derajat 2 yaitu 𝑦 = 0,7598x2 + 1,261x – 2,229. Dengan koefisien
determinasinya (R2) = 0,9922. Grafik fitting dapat dilihat pada Gambar 14 dan
Gambar 15.
1 kb 94 kb 213 kb 411 kb 768 kb 1028 kb
Enkripsi DES (Mb) 10.5 15 24.2 47 58 78.5
Enkripsi Modifikasi DES(Mb)
11 17 25 48 60 79.5
Dekripsi DES (Mb) 11 16 24 38 52 77
Dekripsi Modifikasi DES(Mb)
11 17.5 25.2 38.5 52.6 77.8
0102030405060708090
13 kb 97 kb 226 kb 506 kb 777 kb 1039 kb
Enkripsi DES (Mb) 11 16 24 46 60 79
Enkripsi Modifikasi DES(Mb)
11 18 29.5 48 61 81
Dekripsi DES (Mb) 12 17.5 24.4 36 49.6 77
Dekripsi Modifikasi DES(Mb)
12 18 25.2 36.3 50 78
0102030405060708090
19
Gambar 14 Grafik fitting Pengukuran Waktu Proses
Modifikasi DES file teks
Gambar 15 Grafik fitting Pengukuran Waktu Proses
Modifikasi DES file gambar
Kemudian untuk pengukuran Memory pada tabel Gambar 12 modifikasi
DES menunjukkan fitting terbaik pada fungsi polynomial derajat 2 yaitu 𝑦 = 𝑓(𝑥)
dengan 𝑓(𝑥) = 1,4911x2 + 3,6911x + 4,55 dengan koefisien determinasinya (R2)
= 0,9881. Sedangkan untuk tabel pada Gambar 13 pengukuran waktu
menunjukkan fitting terbaik pada fungsi polynomial derajat 2 yaitu 𝑦 = 1,2679x2
+ 5,3393x + 3,5. Dengan koefisien determinasinya (R2) = 0,9963. Grafik fitting
dapat dilihat pada Gambar 16 dan Gambar 17.
Gambar 16 Grafik fitting Pengukuran Memory Proses
Modifikasi DES file teks
Gambar 17 Grafik fitting Pengukuran Memory Proses
Modifikasi DES file gambar
5. Simpulan
Berdasarkan penelitian yang telah dilakukan maka terdapat beberapa
kesimpulan sebagai berikut: Modifikasi DES dilakukan pada pembangkitan kunci
internal yang akan digunakan dalam proses enciphering. Peranan kunci yang
penting dalam proses enciphering menjadi alasan mengapa proses modifikasi
DES dengan teknik kombinasi Right Row Left Row dilakukan pada proses ini.
Modifikasi kriptografi DES dilakukan dengan cara membagi 2 bagian kunci
internal dan melakukan kombinasi Right Row Left Row pada C0 Right dan D0
y = 1.0898x2 - 0.7325x - 0.247R² = 0.9949
0
10
20
30
40
1 kb 94 kb 213 kb 411 kb 768 kb 1028 kb
Enkripsi Modifikasi DES
Dekripsi Modifikasi DES (s)
Poly. (Enkripsi Modifikasi DES)
y = 0.7598x2 + 1.261x - 2.229R² = 0.9922
-10
0
10
20
30
40
13 Kb 97 Kb 226 Kb 506 Kb 777 Kb 1039Kb
Enkripsi Modifikasi DES (s)
Dekripsi Modifikasi DES (s)
y = 1.4911x2 + 3.6911x + 4.55R² = 0.9881
0
50
100
1 kb 94 kb 213 kb 411 kb 768 kb 1028 kbEnkripsi Modifikasi DES (Mb)
Dekripsi Modifikasi DES (Mb)
y = 1.2679x2 + 5.3393x + 3.5R² = 0.9963
0
50
100
13 kb 97 kb 226 kb 506 kb 777 kb 1039kb
Enkripsi Modifikasi DES (Mb)
Dekripsi Modifikasi DES (Mb)
20
Right. Kemudian melakukan XOR untuk setiap bagiannya. Hasil dari proses ini
akan menghasilkan bit baru untuk dilakukan konkatenasi dengan bit sebelumnya
yang akan digunakan untuk proses enciphering. Perbandingan waktu eksekusi
enkripsi dan dekripsi untuk kriptografi DES dan Modifikasi DES tidak jauh
berbeda atau dapat dikatakan sama. Begitu juga penggunaan memori dalam proses
enkripsi dan dekripsi kriptografi DES dan modifikasi DES hampir sama. Analisa
pengukuran data untuk waktu enkripsi modifikasi DES pada file teks 𝑓(𝑥) = 1,0898x2 – 0,7325x – 0,247. Sedangkan untuk file gambar 𝑓(𝑥) = 0,7598x2 +
1,261x – 2,229. Dan pada pengukuran data untuk memory pada enkripsi
modifikasi DES pada file teks 𝑓(𝑥) = 1,4911x2 + 3,6911x + 4,55. Sedangkan
untuk file gambar 𝑓(𝑥) = 1,2679x2 + 5,3393x + 3,5.
6. Daftar Pustaka
[1] Stallings, William. 2011. Cryptography and Network Security: Principles
and Practice, Fifth edition. Prentice Hall : United States.
[2] Bruce Schneier. 1996. Applied Cryptograp by: Protocols, Algorithms, and
Source Code in C. USA : John Wiley & Sons, Inc.
[3] Electronic Frontier Foundation. Cracking DES: Secrets of Encryption
Research, Wiretap Politics & Chip Design. O’Reilly & Associates Inc.,
July 1998.
[4] Wagner, Neal.R. 2003. The Laws of Cryptography with Java Code.
University of Texas : San Antonio.
http://www.cs.utsa.edu/~wagner/lawsbookcolor/laws.pdf (diakses tanggal
28 Mei 2014).
[5] Sombir, Sunil K.Maakar, Dr.Sudesh Kumar. 2013. Enhancing the Security
of DES Algorithm Using Transposition Cryptography Techniques.
ISSN:2277128X. International Journal of Advanced Research in Computer
Science and Software Engineering: India.
http://www.ijarcsse.com/docs/papers/Volume_3/6_June2013/V3I6-
0267.pdf (diakses tanggal 31 Mei 2014).
[6] Mohammed, Salih. 2010. Modified Key Model of Data Encryption
Standard. IEEE Member, Electrical Department. College of Engineering,
University of Anbar : Iraq.
http://www.iasj.net/iasj?func=fulltext&aID=14266.pdf (diakses tanggal 31
Mei 2014).
[7] Munir, Rinaldi. 2006. Kriptografi. Bandung: Penerbit Informatika.
[8] Forouzan, Behrouz A. 2008. Cryptography and Network Security. New
York : McGraw-Hill.
[9] Nugroho, Adi Sulistyo. 2013. Teori Bahasa & Otomata. Yogyakarta :
Penerbit Graha Ilmu.
[10] Pressman, Roger S. 2001. Software Engineering A Practitioner Aproach.
New York : McGraw-Hill.
[11] Stinson, D.R. 1995. Cryptography Theory and Practice. Florida: CRC
Press, Inc.
Recommended