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
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.
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 iR
L
(1)
)
,
(
11 i i
i
i
L
f
R
K
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
L0 R0
f
) , (0 1 0 1 L f R K
R L1 = R0
K1
f
) , ( 1 2 1 2 L f R K
R L2 = R1
K2
) , ( 14 15 14 15 L f R K
R L15 = R14
K16
) , (15 16 15 16 L fR K
R L16 = R15
IP-1
Cipherteks
f
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, (
C
i,
D
i) mengalami permutasi kompresi
dengan menggunakan matriks permutasi kompresi. Dengan permutasi ini, kunci
internal
K
iditurunkan dari (
C
i,
D
i) yang dalam hal ini
K
imerupakan
penggabungan bit-bit
C
idengan 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
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
R
6
)
,
(
11 i i
i
i
L
f
R
K
R
(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
C
0dan
D
0dari
external key
ke pembangkitan
internal key
. Proses ini
akan bekerja dengan cara membagi kembali antara
C
0dan
D
0ke dalam 2 bagian
bit. Kemudian bit pada
C
0bagian row kanan akan digeser ke kanan pada bit
D
0bagian kanan, begitu pula dengan sebaliknya. Pada bit
D
0bagian kanan akan
digeser ke kiri pada bit
C
0bagian 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.
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 RightRowLeftRow Perancangan Modifikasi
Analisis Kebutuhan
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.
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.
10
panjang masing-masing 28 bit. Perbedaan dengan proses DES biasa adalah
C
0dan
D
0akan disimpan langsung sebagai kunci ke 0.
Pada modifikasi DES ini
C
0dan
D
0akan dibagi menjadi 2 bagian lagi,
sehingga masing-masing bagian memiliki panjang 14 bit. Bagian
C
0diberi nama
C
0left
dan
C
0right,
sedangkan
D
0diberi nama
D
0left
dan
D
0right.
Proses kombinasi
Right Row Left Row
dilakukan pada bagian ini yaitu
menggeser 14 bit
C
0Right
ke 14 bit bagian kanan
D
0yaitu
D
0Right.
Dan
menggeser ke kiri 14 bit
D
0right ke bagian kanan
C
0yaitu
C
0right.
Kemudian
melakukan XOR antara
C
0left
dengan
D
0right
dan
C
0right
dengan
D
0left.
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
C
0dan
D
0.
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
C
0left
dan
C
0right
dengan
D
0left
dan
D
0right
. 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.}
11
Kode Program 2 Penggalan Perintah Operasi XOR Antara C0left dengan D0 right dan C0right
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 C
0dan D
0dengan panjang masing-masing 28 bit. Jika pada proses DES
biasa
C
0dan
D
0akan 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
C
0dan
D
0, sehingga masing-masing
bagian memiliki panjang 14 bit. Bagian
C
0diberi nama
C
0left
dan
C
0right,
sedangkan
D
0diberi nama
D
0left
dan
D
0right.
Kemudian proses kombinasi
Right
Row Left Row
dilakukan pada bagian ini yaitu menggeser 14 bit
C
0Right
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])) + "";}}
12
bagian kanan
D
0yaitu
D
0Right
. Dan menggeser ke kiri 14 bit
D
0Right
ke bagian
kanan
C
0yaitu
C
0Right
.
Setelah proses kombinasi
Right Row Left Row
dilakukan operasi XOR antara
C
0left
dengan
D
0right
dan
C
0right
dengan
D
0left.
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
C
0dan
D
0.
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 L
0dan R
0dengan
masing-masing panjang 32 bit. R
0akan menjadi L
n, sedangkan L
0akan di XOR
dengan hasil fungsi transformasi yang disebut
f
yang nantinya disimpan sebagai
R
n.1
ii
R
L
(1)
)
,
(
11 i i
i
i
L
f
R
K
R
(2)
Fungsi
f
terdiri dari 4 tahapan. Tahap pertama (
E
) : R
n_1(R
0) 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.
A
K
R
E
(
i1)
i
(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
13
Tabel 3P-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
L
i – 1untuk
mendapatkan
R
i)
(
1
P
B
L
R
i
i
(6)
Sehingga
output
dari setiap putaran ke
i
sama dengan
))
(
,
(
)
,
(
L
iR
i
R
i1L
i1
P
B
(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 MatriksIP-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 (K
16….K
1).
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 C
0dan D
0dengan panjang
masing-masing 28 bit.
C
0= 0000000011000101001110100011 dan
D
0=
14
Lakukan kombinasi
Right Row Left Row
dengan membagi 2 bagian kembali
C
0dan D
0, sehingga masing-masing bagian memiliki panjang 14 bit. Bagian
C
0diberi nama
C
0left
= 00000000110001 dan
C
0right
= 01001110100011
,
sedangkan
D
0diberi nama
D
0left
= 11011100111000 dan
D
0right
=
10000000001010
. Right Row
dilakukan dengan menggeser 14 bit
C
0right
ke
bagian kanan 14 bit
D
0yaitu
D
0right.
Sehingga bit
C
0right
bertukar dengan bit
D
0right
dan dikombinasikan menjadi 0100111010001111011100111000.
Left Row
dilakukan dengan menggeser ke kiri 14 bit
D
0right
ke bagian kanan
C
0yaitu
C
0Right
dan dikombinasikan menjadi
C
0left D
0right
00000000110001
10000000001010
Kemudian melakukan operasi XOR antara
C
0left
dengan
D
0right
dan
C
0right
dengan
D
0left.
C
0=
C
0left
D
0right
= 00000000110001 ^ 10000000001010
= 10000000111011
D
0=
C
0right
D
0left
= 01001110100011 ^ 11011100111000
= 10010010011011
Konkatenasi bit yang dihasilkan pada proses sebelumnya (14 bit).
C
0= 1000000011101110000000111011
D
0= 1001001001101110010010011011
1.
Hasil kunci yang sudah dimodifikasi melalui proses kombinasi
Right Row Left
Row
tersebut disimpan kembali sebagai
C
0dan
D
0.
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.
C
0= 1000000011101110000000111011
C
1= 0000000111011100000001110111
C
2= 0000001110111000000011101110
C
3= 0000111011100000001110111000
…
C
16D
0= 1001001001101110010010011011
D
1= 0010010011011100100100110111
D
2= 0100100110111001001001101110
D
3= 0010011011100100100110111001
…
D
16K
1= 100100010001101011001010111101011101000110010000
K
2= 001000000010101011011010100111111010101001001100
K
3= 001101000111110000010100011100001101011111010000
K
4= 010001100010110101010000000110011010010000101111
…
K
162.
Binarytext
=
15
3.
Setiap kelompok 64 bit plainteks melalui proses berikut :
a.
plainteks
(64 bit)=
111111111001101001110000011001010000000000000000001001011110
0011.
b.
L
0= 11111111100110100111000001100101
R
0= 00000000000000000010010111100011
c.
L
n= 00000000000000000010010111100011
Fungsi f terdiri dari 4 tahapan.
Tahap pertama (
E
)
–
hasil 48 bit:
E
(
R
i – 1)
=
100000000000000000000000000100001011111100000110
Tahap ke dua (
XOR
)
–
hasil 48 bit :
A = E
(
R
i – 1)
K
i= 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
L
i –1untuk mendapatkan
R
iR
i=
L
i – 1
P
(
B
)
R
i= 11111111100110100111000001100101 ^
00001111110110101001000110111010
R
i=
11101111100100000000000000010101
d.
Dari hasil di atas maka didapatkan :
L
1= 00000000000000000010010111100011
R
1= 11101111100100000000000000010101
Lakukan langkah di atas sampai 15 kali (L
1..16, R
1…16) berikutnya untuk
mendapatkan hasil akhir 64 bit pertama pada (L
16,R
16). Demikian pula
untuk proses dekripsi sama dengan proses manual untuk enkripsi hanya
saja kunci yang digunakan pada tahap c. sesuai dengan urutan (K
16…K
1)
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
16
kunci internal DES yang digunakan dalam proses modifikasi yaitu melakukan
penggeseran bit antara
C
0right
dengan
D
0right.
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 “W
aktu
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
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 0
5 10 15 20 25 30 35 40
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 0
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,0898x
2–
0,7325x
–
0,247 dengan koefisien
determinasinya (R
2) = 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 (R
2) = 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 0
10 20 30 40 50 60 70 80 90
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
19
Gambar 14 Grafik fitting Pengukuran Waktu Proses Modifikasi DES file teksGambar 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,4911x
2+ 3,6911x + 4,55 dengan koefisien determinasinya (R
2)
= 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 (R
2) = 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
C
0Right
dan
D
0y = 1.0898x2- 0.7325x - 0.247
R² = 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.229
R² = 0.9922
-10 0 10 20 30 40
13 Kb 97 Kb 226 Kb 506 Kb 777 Kb 1039 Kb Enkripsi Modifikasi DES (s)
Dekripsi Modifikasi DES (s)
y = 1.4911x2+ 3.6911x + 4.55
R² = 0.9881
0 50 100
1 kb 94 kb 213 kb 411 kb 768 kb 1028 kb Enkripsi Modifikasi DES (Mb)
Dekripsi Modifikasi DES (Mb)
y = 1.2679x2+ 5.3393x + 3.5
R² = 0.9963
0 50 100
13 kb 97 kb 226 kb 506 kb 777 kb 1039 kb Enkripsi 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,0898x
2–
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,4911x
2+ 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.