2.4. Sistem Kriptografi Data Encryption Standard DES
Pada tahun 1972 sebuah perusahaan National Bureau Standard NBS di Amerika Serikat, yang sekarang dikenal sebagai National Institute of Standard and Technology
NIST, memulai sebua projek untuk mengamankan data dan komunikasi komputer. Mereka ingin mengembangkan algoritma kriptografi tunggal. Setelah dua tahun, NBS
menyadari bahwa IBM’s Lucifer dapat menjadi kandidat yang bagus, dari pada mengembangkan algoritma baru dari awal. Setelah beberapa diskusi, pada tahun 1975
NBS mengumumkan detail dari algoritma tersebut. Pada akhir tahun 1976, pemerintah federal Amerika Serikat mengadopsi algoritma ini dan kemudian mengganti namanya
menjadi Data Encryption Standard DES. Atul Kahate, 2013 DESmerupakan blockcipher simetris yang beroperasi pada blok 64 bit yang
menggunakan sebuah kunci 56 bit. DES mengenkripsi data dalam blok 64 bit. Input dari dari algoritma ini adalah blok plaintext sepanjang 64 bit dan menghasilkan output
blok ciphertext sepanjang 64 bit pula, yang didapat setelah dilakukan 16 kali putaran dari operasi pengulangan yang sama. Man Young Rhee, 2003
Seperti algoritma lainya, algoritma ini mempunyai dua input pada fungsi enkripsinya: sebuah plaintext 64 bit yang akan di enkrispi dan sebuah kunci 56 bit.
Hal yang paling utama yang diperlukan untuk membangun blok-blok dari plaintext adalah kombinasi dari permutasi dan subtitusi pada blok plaintext. Subtitusi
didapatkan dari pencarian pada TabelS-boxes. Pada algoritma DES Enkripsi dan dekripsi menggunakan algoritma yang sama namun dalam urutan yang terbalik. Man
Young Rhee, 2003
2.4.1. Algoritma Data Encryption Standard
DES terdiri dari 16 tahapan, setiap tahapan disebut sebagai putaran. Setiap putaran dilakukan sebuah langkah subtitusi dan transposisi. Berikut Algoritma langkah-
langkah enkripsi menggunakan Algoritma DES :
Universitas Sumatera Utara
Gambar 2.3. Skema Algoritma DES Atul Kahate, 2013
1. Pada tahap pertama, permutasikan sebuah blok 64 bit plaintext dengan
TabelInitial Permutation IP. 2.
Setelah itu akan didapatkan plaintext hasil initial permutation IP. 3.
Selanjutnya bagi hasil dari initial permutation tadi menjadi dua bagian, yaitu bagian kiri L dan bagian kanan R.
4. Kemudian lakukan proses enkripsi sebanyak 16 kali putaran pada tiap bagian kiri
L dan kanan R dengan kunci masing-masing. 5.
Terakhir gabungkan bagian kiri L dan kanan R dan lakukan permutasi terakhir menggunakan TabelFinal Permutation FP Invers Initial Permutation IP-1.
6. Proses ini akan menghasilkan ciphertext. Atul Kahate, 2013.
2.4.2. Pembangkitan kunci Internal
Karena ada 16 putaran maka dibutuhkan kunci internal sebanyak 16 pula, yaitu K
1
, K
2
, K
3
, ..., K
16
. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi. Kunci internal dibangkitkan dari kunci
eksternal yang diinputkan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter sedangkan kunci internal panjangnya 56 bit. Rifkie Primartha, 2011
Universitas Sumatera Utara
Misalnya Kunci Eksternal KE yang tersusun dari 64 bit. Kunci eksternal ini menjadi masukan untuk proses permutasi dengan menggunakan matriks permutasi
kompresi PC-1.
�� =
⎝ ⎜
⎜ ⎜
⎜ ⎛
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
25 26
27 28
29 30
31 32
33 34
35 36
37 38
39 40
41 42
43 44
45 46
47 48
49 50
51 52
53 54
55 56
57 58
59 60
61 62
63 64
⎠ ⎟
⎟ ⎟
⎟ ⎞
Proses selanjutnya lakukan permutasi dari matriks kunci eksternal 64 bit terhadap Permutation Choice PC-1. Nimmi Gupta, 2012
�� − 1 = � 57
49 41
33 25
17 9
1 58
50 42
34 26
18 10
2 59
51 43
35 27
19 11
3 60
52 44
36 63
55 47
39 31
23 15
7 62
54 46
38 30
22 14
6 61
53 45
37 29
21 13
5 28
20 12
4 �
Dalam permutasi ini, tiap bit ke delapan parity bit diabaikan. Hasil permutasinya adalah sepanjang 56 bit dibagi menjadi 2 bagian kiri dan kanan yang masing masing
panjangnya 28 bit, yang masing-masing disimpan dalam C dan D
: Rifkie Primartha, 2011 C
berisi bit-bit dari K pada posisi :
� =
� 57
49 41
33 25
17 9
1 58
50 42
34 26
18 10
2 59
51 43
35 27
19 11
3 60
52 44
36�
D berisi bit-bit dari K pada posisi :
� =
� 63
55 47
39 31
23 15
7 62
54 46
38 30
22 14
6 61
53 45
37 29
21 13
5 28
20 12
4 �
Selanjutnya, kedua bagian digeser ke kiri left shift sepanjang satu atau dua bit tergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round shift. Rifkie
Primartha, 2011. Setiap pasang blok C
n
dan D
n
, dibentuk dari pasang blok sebelumnya C
n-1
dan D
n-1
masing-masing, untuk n = 1, 2, .., 4 menggunakan pergeseran left shift. Untuk melakukan left shift , geser setiap satu bit ke kiri, kecuali untuk bit yang pertama, dimana bit
tersebut akan di pindahkan ke bagian akhir dari blok. Artinya C
3
dan D
3
, diperoleh dari pergeseran left shift C
2
dan D
2
, C
4
dan D
4
diperoleh dari C
3
dan D
3
, begitu seterusnya. Nimmi Gupta, 2012
Universitas Sumatera Utara
Tabel 2.1. Jumlah pergeseran biat tiap putaran Man Young Rhee, 2003
Round number
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 16
Number of left shift
1 1
2 2
2 2
2 2
1 2
2 2
2 2
2 1
Setelah proses pergeseran bit C
n
, D
n
lakukan permutasi kompresi 56 bit menjadi 48 bit dengan menggunakan matriks permutation choice 2 PC-2. Nimmi Gupta, 2010
�� − 2 = � 14
17 11
24 1
5 3
28 15
6 21
10 23
19 12
4 26
8 16
7 27
20 13
2 41
52 31
37 47
55 30
40 51
45 33
48 44
49 39
56 34
53 46
42 50
36 29
32 �
Jadi setiap kunci internal K
n
mempunyai panjang 48 bit. Proses pembangkitan kunci- kunci internal ditujukkan pada Gambar2.4. Bila jumlah pergeseran bit-bit pada Tabel 2.1
dijumlahkan maka akan menghasilkan jumlah 28, yang sama dengan jumlah bit pada C
n
dan D
n
. Karena itu, setelah putaran ke-16 akan didapatkan kembali C
16
= C dan D
16
= D . Rifkie
Primartha, 2011
Gambar 2.4. Proses pembangkitan kunci internal Rifkie Primartha, 2011
Universitas Sumatera Utara
2.4.3. Enkripsi DES
Proses awal yang dilakukan dalam enkripsi adalah Permutasi Awal Initial Permutation, IP. Pengacakan dilakukan dengan menggunakan Matriks Initial Permutation.
�
�
= �
58 50
42 34
26 18
10 2
60 52
44 36
28 20
12 4
62 54
46 38
30 22
14 6
64 56
48 40
32 24
16 8
�
�
�
= �
57 49
41 33
25 17
9 1
59 51
43 35
27 19
11 3
61 53
45 37
29 21
13 5
63 55
47 39
31 23
15 7
�
Proses enciphering terhadap blok plaintext dilakukan setelah permutasi awal. Setiap blok plaintext mengalami 16 kali putaran enciphering Rifkie Primartha,
2010. Secara matematis, satu putaran DES dinyatakan sebagai Nimmi Gupta, 2012: L
n
= R
n-1
…………………..…………....…………….. 2.4 R
n
= L
n-1
⊕ fR
n-1
, K
n
….……………………………...... 2.5 Keterangan :
R
n
= Right permutation ke – n L
n
= Left permutation ke – n K
n
= Key permutation ke – n f
= Fungsi permutasi f
Kemudian setiap blok R
n-1
di ekspansi dari 32 bit menjadi 48 bit. Jin-Woo Park, 2007 Berikut matriks permutasi Ekspansi E Man Young Rhee, 2003:
� =
⎝ ⎜
⎜ ⎜
⎜ ⎛
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
⎠ ⎟
⎟ ⎟
⎟ ⎞
Selanjutnya hasil ekspansi, yaitu ER
n-1
yang panjangnya 48 bit di XOR-kan dengan K
n
yang panjangnya 48 bit dan menghasilkan vektor A yang panjangnya 48 bit pula. Rifkie Primartha, 2011
Universitas Sumatera Utara
ER
n-1
⊕ K
n
= A ……….……………..………………..... 2.6 A
= B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
.……….... 2.7 Keterangan :
E =Fungsi ekspansi
R
n
= Right permutation ke – n K
n
= Key permutation A
= Vektor hasil XOR yang panjangnya 48 bit B
1
,…,B
1 6
= Bit hasil XOR yang dikelompokan masing-masing 6 bit
Fungsi f di dapat dari mengimplementasikan permutasi pada bit-bit vektor A sebagai berikut Jin-Woo Park, 2007:
f = PS
1
B
1
S
2
B
2
,…,S
8
B
8
………………… 2.8 Keterangan :
f = Fungsi permutasi f
P = Permutasi kotak – P
S
1
,…,S
8
= Subtitusi kotak – S B
1
,…,B
16
= Bit hasil XOR yang dikelompokan menjadi 6 bit
Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses subtitusi. Proses subtitusi dilakukan dengan
menggunakan delapan kotak-S S-boxes, S
1
sampai S
8
. Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6 bit pertama
menggunakan S
1
, kelompok 6 bit kedua menggunakan S
2
, dan seterusnya. Rifkie Primartha, 2011 Kotak-S dapat dilihat pada Tabel 2.
Tabel 2.2. Matriks Kotak-S Man Young Rhee, 2003
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
S
1
14 4
13 1
2 15
11 8
3 10
6 12
5 9
7
1 15
7 4
14 2
13 1
10 6
12 11
9 5
3 8
2 4
1 14
8 13
6 2
11 15
12 9
7 3
10 5
3 15
12 8
2 4
9 1
7 5
11 3
14 10
6 13
Universitas Sumatera Utara
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
S
2
15 1
8 14
6 11
3 4
9 7
2 13
12 5
10
1 3
13 4
7 15
2 8
14 12
1 10
6 9
11 5
2 14
7 11
10 4
13 1
5 8
12 6
9 3
2 15
3 13
8 10
1 3
15 4
2 11
6 7
12 5
14 9
S
3
10 9
14 6
3 15
5 1
13 12
7 11
4 2
8
1 13
7 9
3 4
6 10
2 8
5 14
12 11
15 1
2 13
6 4
9 8
15 3
11 1
2 12
5 10
14 7
3 1
10 13
6 9
8 7
4 15
14 3
11 5
2 12
S
4
7 13
14 3
6 9
10 1
2 8
5 11
12 4
15
1 13
8 11
5 6
15 3
4 7
2 12
1 10
14 9
2 10
6 9
12 11
7 13
15 1
3 14
5 2
8 4
3 3
15 6
10 1
13 8
9 4
5 11
12 7
2 14
S
5
2 12
4 1
7 10
11 6
8 5
3 15
13 14
9
1 14
11 2
12 4
7 13
1 5
15 10
3 9
8 6
2 4
2 1
11 10
13 7
8 15
9 12
5 6
3 14
3 11
8 12
7 1
14 2
13 6
15 9
10 4
5 3
S
6
12 1
10 15
9 2
6 8
13 3
4 14
7 5
11
1 10
15 4
2 7
12 9
5 6
1 13
14 11
3 8
2 9
14 15
5 2
8 12
3 7
4 10
1 13
11 6
3 4
3 2
12 9
5 15
10 11
14 1
7 6
8 13
S
7
4 11
2 14
15 8
13 3
12 9
7 5
10 6
1
1 13
11 7
4 9
1 10
14 3
5 12
2 15
8 6
2 1
4 11
13 12
3 7
14 10
15 6
8 5
9 2
3 6
11 13
8 1
4 10
7 9
5 15
14 2
3 12
S
8
13 2
8 4
6 15
11 1
10 9
3 14
5 12
7
1 1
15 13
8 10
3 7
4 12
5 6
11 14
9 2
2 7
11 4
1 9
12 14
2 6
10 13
15 3
5 8
3 2
1 14
7 4
10 8
13 15
12 9
3 5
6 11
Universitas Sumatera Utara
Hal pertama yang harus dilakukan adalah menuliskan kembali bit-bit vektor A dan kemudian kelompokkan bit-bit tersebut menjadi 8 kelompok yang masing-masing
kelompok terdiri dari 6 bit. Kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit, bit pertama
dan terakhir dari masukan menggambarkan sebuah angka desimal dari range 0 sampai 3 00 sampai 11 misalkan i. 4 bit pertengahan menggambarkan sebuah angka desimal
dari range 0 sampai 15 0000 sampai 1111 misalkan j. Kemudian lihat Tabel kotak-S, carilah angka yang didapat dari kolom i dan baris j. Kemudian ubah angka desimal
yang didapat ke dalam binary. Nimmi Gupta, 2012 Setelah didapat hasil dari kotak-S, maka selanjutnya dilakukan proses permutasi
yang bertujuan untuk mengacak hasil proses subtitusi kotak-S. Permutasi dilakukan dengan matriks permutasi kotak-P P-box. Rifkie Primartha, 2011
� =
⎝ ⎜
⎜ ⎜
⎜ ⎛
16 7
20 21
29 12
28 17
1 15
23 26
5 18
31 10
2 8
24 14
32 27
3 9
19 13
30 6
22 11
4 25
⎠ ⎟
⎟ ⎟
⎟ ⎞
Selanjutnya setelah didapatkan f lakukan proses XOR antara fR
n-1
, K
n
dengan L
n-1
untuk mendapatkan R
n
menggunakan rumus 8.5 Rifkie Primartha, 2011 Langkah terakhir setelah dilakukan 16 kali putaran, gabungkan blok kiri L
16
dan blok kanan R
16
, kemudian lakukan proses permutasi menggunakan Matriks Permutasi Awal Balikan Invers Initial Permutation, IP
-1
. Nimmi Gupta, 2010
��
−1
=
⎝ ⎜
⎜ ⎜
⎜ ⎛
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
⎠ ⎟
⎟ ⎟
⎟ ⎞
Universitas Sumatera Utara
2.4.4. Dekripsi DES
Proses dekripsi DES menggunakan proses yang sama dengan enkripsi. Proses dekripsi DES menggunakan ciphertext sebagai inputan, tetapi gunakan kunci K
n
dalam urutan yang terbalik. Misalnya gunakan kunci K
16
untuk iterasi yang pertama, K
15
untuk iterasi kedua, sampai K
1
untuk iterasi yang terakhir. Naveen Kumar, 2012 Secara matematis dapat dituliskan sebagai berikut Nimmi Gupta, 2012 :
L
n
= R
n-1
………………………..………..…….…….… 2.8 R
n
= L
n-1
⊕ fR
n-1
, K
n
……………….……………..….. 2.9 Keterangan :
L
n
= Left permutation Ke – n R
n
= Right permutation Ke – n K
n
= Key permutation Ke – n f
= Fungsi permutasi f
Jika pada proses enkripsi urutan kunci yang digunakan adalah K
1
, K
2
, …, K
16
, maka untuk proses dekripsi urutan kunci yang digunakan adalah K
16
, K
15
, …, K
1
. Masukan awalnya adalah R
16
dan L
16
untuk deciphering. Blok R
16
dan L
16
diperoleh dengan melakukan permutasi ciphertextdengan matriks permutasi IP-1. Rifkie
Primartha, 2011
2.5. Sistem Operasi Android