Kriptografi Week10 Algoritma Simetri DES
Aisyat ul Karim a, 2012
Out line
Sejar ah DES
Enkr ipsi DES
Implement asi Har dwar e dan Soft war e DES
Keamanan DES
Se j a r a h D ES
Algorit m a DES dikem bangkan di I BM dibawah kepem im pinan
W.L. Tuchm an pada t ahun 1972. Algorit m a ini didasarkan pada algorit m a LUCI FER yang dibuat oleh Horst Feist el.
Algorit m a ini t elah diset uj ui oleh Nat ional Bureau of St andard
( NBS) set elah penilaian kekuat annya oleh Nat ional Securit y Agency ( NSA) Am erika Serikat .Tin j a u a n Um u m D ES
DES t erm asuk ke dalam sist em kript ografi sim et ri dan
t ergolong j enis cipher blok.
DES beroperasi pada ukuran blok 64 bit . DES m engenkripsikan 64 bit plaint eks m enj adi 64 bit ciphert eks dengan m enggunakan 56 bit kunci int ernal ( int ernal key) at au upa- kunci ( subkey) .
Kunci int ernal dibangkit kan dari kunci ekst ernal ( ext ernal key) yang panj angnya 64 bit .
Skem a global dari algorit m a DES adalah sebagai berikut : Skem a global dari algorit m a DES adalah sebagai berikut :
1. Blok plaint eks diperm ut asi dengan m at riks perm ut asi awal ( init ial perm ut at ion at au I P) .
2. Hasil perm ut asi awal kem udian di- enciphering- sebanyak 16 kali
( 16 put aran) . Set iap put aran m enggunakan kunci int ernal yang berbeda.
3. Hasil enciphering kem udian diperm ut asi dengan m at riks
- 1
perm ut asi balikan ( invers init ial perm ut at ion at au I P ) m enj adi blok ciphert eks
Sk e m a D ES ya n g le bih r in ci
R L f R K 1 ( , ) 1 R L f ( R , K ) 2 1 1 2 R L f ( R , K ) 15 14 14 15 R L f ( R , K ) 16 15 15 16
En k r ipsi D ES
P = 0123456789ABCDEF K = 133457799BBCDFF1
P = 0123456789ABCDEF
D a la m bin a r y m e n j a di:
P = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
La n gk a h 1 : Encoding set iap 64 bit dat a pada
Plaint ext dengan I P ( I nit ial Perm ut at ion)
50
46
8
16
24
32
40
48
56
64
6
14
22
30
38
54
49
62
4
12
20
28
36
44
52
60
2
10
18
26
34
57
41
50
37
Urut an bit pada plaint ext urut an ke 50 dit aruh di posisi 2, dst
7 Urut an bit pada plaint ext urut an ke 58 dit aruh diposisi 1,
15
23
31
39
47
55
63
5
13
21
29
45
33
53
61
3
11
19
27
35
43
51
59
1
9
17
25
42
58
42
46
8
16
24
32
40
48
56
64
6
14
22
30
38
54
49
62
4
12
20
28
36
44
52
60
2
10
18
26
34
57
41
58
37
1010 1011 1100 1101 1110 1111
P = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
7 I P
15
23
31
39
47
55
63
5
13
21
29
45
33
53
61
3
11
19
27
35
43
51
59
1
9
17
25
I P = 1
La n gk a h 1 ( Con t ’d) : Encoding set iap 64 bit
dat a pada Plaint ext dengan I P ( I nit ial Perm ut at ion)62
24
32
40
48
56
64
6
14
22
30
38
46
54
4
8
12
20
28
36
44
52
60
2
10
18
26
34
42
50
16
57
I P = 1
53
15
23
31
39
47
55
63
5
13
21
29
37
45
61
49
3
11
19
27
35
43
51
59
1
9
17
25
33
41
58
1010 1011 1100 1101 1110 1111
58
62
24
32
40
48
56
64
6
14
22
30
38
46
54
4
8
12
20
28
36
44
52
60
2
10
18
26
34
42
50
16
57
P = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
53
7 I P
15
23
31
39
47
55
63
5
13
21
29
37
45
61
49
3
11
19
27
35
43
51
59
1
9
17
25
33
41
7 I P = 11
La n gk a h 1 ( Con t ’d) : Encoding set iap 64 bit
dat a pada Plaint ext dengan I P ( I nit ial Perm ut at ion)62
24
32
40
48
56
64
6
14
22
30
38
46
54
4
8
12
20
28
36
44
52
60
2
10
18
26
34
42
50
16
57
I P = 1
53
15
23
31
39
47
55
63
5
13
21
29
37
45
61
49
3
11
19
27
35
43
51
59
1
9
17
25
33
41
58
1010 1011 1100 1101 1110 1111
58
62
24
32
40
48
56
64
6
14
22
30
38
46
54
4
8
12
20
28
36
44
52
60
2
10
18
26
34
42
50
16
57
P = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
53
7 I P
15
23
31
39
47
55
63
5
13
21
29
37
45
61
49
3
11
19
27
35
43
51
59
1
9
17
25
33
41
7 I P = 110
La n gk a h 1 ( Con t ’d) : Encoding set iap 64 bit
dat a pada Plaint ext dengan I P ( I nit ial Perm ut at ion)62
24
32
40
48
56
64
6
14
22
30
38
46
54
4
8
12
20
28
36
44
52
60
2
10
18
26
34
42
50
16
57
I P = 1
53
15
23
31
39
47
55
63
5
13
21
29
37
45
61
49
3
11
19
27
35
43
51
59
1
9
17
25
33
41
58
1010 1011 1100 1101 1110 1111
58
62
24
32
40
48
56
64
6
14
22
30
38
46
54
4
8
12
20
28
36
44
52
60
2
10
18
26
34
42
50
16
57
P = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
53
7 I P
15
23
31
39
47
55
63
5
13
21
29
37
45
61
49
3
11
19
27
35
43
51
59
1
9
17
25
33
41
7 I P = 1100
La n gk a h 1 ( Con t ’d) : Encoding set iap 64 bit
dat a pada Plaint ext dengan I P ( I nit ial Perm ut at ion)4
32
40
48
56
64
6
14
22
30
38
46
54
62
12
16
20
28
36
44
52
60
2
10
18
26
34
42
50
58
24
8
I P = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000
61
15
23
31
39
47
55
63
5
13
21
29
37
45
53
3
57
11
19
27
35
43
51
59
1
9
17
25
33
41
49
1010 1010 1111 0000 1010 1010
1010 1011 1100 1101 1110 1111
58
62
24
32
40
48
56
64
6
14
22
30
38
46
54
4
8
12
20
28
36
44
52
60
2
10
18
26
34
42
50
16
57
P = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
53
7 I P
15
23
31
39
47
55
63
5
13
21
29
37
45
61
49
3
11
19
27
35
43
51
59
1
9
17
25
33
41
7
La n gk a h 2
0...! ! ! Pecah m enj adi L dan R
Pecah I P m enj adi bagian kiri sebanyak 32 bit ( L ) dan kanan sebanyak 32 bit ( R )
I P = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010
R LJadi
L = 1100 1100 0000 0000 1100 1100 1111 1111 R
= 1111 0000 1010 1010 1111 0000 1010 1010
K = 133457799BBCDFF1 K dalam binary:
00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
1 = 0001
3 = 0011
Dit ulis berkelom pok set iap 8 bit
m enj adi00010011 Sehingga K m enj adi
Mem bangkit kan kunci ekst ernal La n gk a h 3
2
44
52
60
3
11
19
27
35
43
51
59
10
63
18
26
34
42
50
58
1
9
17
25
33
41
36
55
57
61
4 K= 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 K+ = 1
12
20
28
5
13
21
29
37
45
53
16
47
14
22
30
38
46
54
62
7
15
23
31
39
49
4
Gunakan perm ut asi PC- 1
18
60
3
11
19
27
35
43
51
59
2
10
26
44
34
42
50
58
1
9
17
25
33
41
49
57
52
36
12
14
20
28
5
13
21
29
37
45
53
61
16
22
63
30
38
46
54
62
7
15
23
31
39
47
55
M a k a : La n gk a h 4
22
55
47
39
31
23
15
7
62
54
46
38
30
14
36
16
61
53
45
37
29
21
13
5
28
20
12
4 La n gk a h 4 ( Con t ’d)
63
44
Gunakan perm ut asi PC- 1
42
K+ = 1 K+ = 11
K= 00010011 00110100 01010111 01111001 10011011 10111100
11011111 11110001
57
49
41
33
25
17
9
1
58
50
34
52
26
18
10
2
59
51
43
35
27
19
11
3
60
M a k a :
59
36
44
52
60
3
11
19
27
35
43
51
2
55
10
18
26
34
42
50
58
1
9
17
25
33
63
47
49
53
K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
K diperm ut asi m enggunakan t abel PC- 1 di at as sehingga 64 bit key m enj adi hanya 56 bit key
4 K= 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
12
20
28
5
13
21
29
37
45
61
39
16
14
22
30
38
46
54
62
7
15
23
31
41
57
Gunakan perm ut asi
18
60
3
11
19
27
35
43
51
59
2
10
26
44
34
42
50
58
1
9
17
25
33
41
49
57
52
36
4 PC- 1
14
12
20
28
5
13
21
29
37
45
53
61
16
22
63
30
38
46
54
62
7
15
23
31
39
47
55
La n gk a h 4 ( Con t ’d)
La n gk a h 5
Selanj ut nya bagi Key m enj adi 2 bagian kanan dan kiri,C dan D yang set iap bagian 28 bit panj angnya
Dari K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
C D
Kit a m endapat kan
C
= 1111000 0110011 0010101 0101111
D = 0101010 1011001 1001111 0001111
La n gk a h 6
Set elah m endapat kan C0 dan D0, sekarang kit a m em buat 6 blok Cn dan Dn yang set iap blok berasal dari Cn- 1 dan Dn- 1.
Selanj ut nya, kedua bagian digeser ke kiri
( left shift ) sepanj ang sat u at au dua bit bergant ung pada t iap put aran.Operasi pergeseran bersifat wrapping at au round- shift .
Pergeseran t iap put aran berdasarkan t abel di bawah ini Put aran Jum lah pergeseran ke bit
1
1
2
1
3
2
4
2
5
2
6
2
7
2
9
1
10
2
11
2
12
2
14
2
14
2
15
2
La n gk a h 7
Dari C dan D awal kit a m endapat kan : C = 1111000011001100101010101111 D = 0101010101100110011110001111
Dari ket erangan t abel sebelum nya m aka kit a geser C dan D ke kiri sebanyak 1 kali ( berdasarkan slide di halam an sebelum nya)
C C = 1110000110011001010101011111 = 1111000011001100101010101111
1 D D = 0101010101100110011110001111 = 1010101011001100111100011110
1 Dan lakukan set erusnya sam pai C16 dan D16 C C C C C C C C C C C C C C C C = 1100001100110010101010111111
= 0011001100101010101111111100 = 1110000110011001010101011111 = 0000110011001010101011111111 = 1100101010101111111100001100 = 1100110010101010111111110000 = 0011001010101011111111000011 = 0101010101111111100001100110 = 0010101010111111110000110011 = 1111100001100110010101010111 = 0101010111111110000110011001 = 111100001100110010101010111 = 0101011111111000011001100101 = 0101111111100001100110010101 = 1111111000011001100101010101 = 0111111110000110011001010101
2 1 6 1 3 1 5 1 1 1 2 1 0
4 8 1 3
6
5
7 9 1 4 D D D D D D D D D D D D D D D D = 0101010110011001111000111101
= 1001100111100011110101010101 = 1001111000111101010101011001 = 0110011001111000111101010101 = 0101011001100111100011110101 = 0011110001111010101010110011 = 1010101011001100111100011110 = 0101100110011110001111010101 = 0110011110001111010101010110 = 1100011110101010101100110011 = 0111101010101011001100111100 = 0001111010101010110011001111 = 1111000111101010101011001100 = 1010101010110011001111000111 = 1110101010101100110011110001 = 010101010110011001111000111
2
1
4
8
5 9 1 6
3 7 1 5 1 3 1 0 1 4 1 1 1 2
6
Gunakan perm ut asi PC- 2
46
40
51
45
33
48
44
49
39
56
34
53
42
55
50
36
29
32 Unt uk C
1 D
1
kit a m endapat kan
C 1 D 1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110
Diperm ut asi m enj adi
K 1 = 000110 110000 001011 101111 111111 000111 000001 110010
La n gk a h 8
30
14
17
19
11
24
1
5
3
28
15
6
21
10
23
12
37
4
26
8
16
7
27
20
13
2
41
52
31
47 Unt uk subkey yang lain kit a m endapat kan
K
= 011101 010111 000111 110101 100101 000110 011111 101001
9
= 111000 001101 101111 101011 111011 011110 011110 000001
K 1 0
= 101100 011111 001101 000111 101110 100100 011001 001111
K 1 1
= 001000 010101 111111 010011 110111 101101 001110 000110
K 1 2
K 1 3
= 111101 111000 101000 111010 110000 010011 101111 111011
= 100101 111100 010111 010001 111110 101011 101001 000001
K 1 4
= 010111 110100 001110 110111 111100 101110 011100 111010
K 1 5
= 101111 111001 000110 001101 001111 010011 111100 001010
K 1 6
= 110010 110011 110110 001011 000011 100001 011111 110101
K
8
2
K
= 011110 011010 111011 011001 110110 111100 100111 100101
K
3
= 010101 011111 110010 001010 010000 101100 111110 011001
K
4
= 011100 101010 110111 010110 110110 110011 010100 011101
5
K
= 011111 001110 110000 000111 111010 110101 001110 101000
K
6
= 011000 111010 010100 111110 010100 000111 101100 101111
K
7
= 111011 001000 010010 110111 111101 100001 100010 111100
La n gk a h 8 ( Con t ’d)
Enchipering Set iap blok plaint eks m engalam i 16 kali put aran enciphering .
Set iap put aran enciphering m erupakan j aringan Feist el yang secara m at em at is dinyat akan sebagai L i
= R i – 1
R i
= L i – 1
f(R i – 1
, K i
)
Unt uk m enghit ung fungsi f , pert am a kit a perluas set iap blok dari Ri- 1 dari 32 bit m enj adi 48 bit dengan m enggunakan t abel yang m engulang beberapa bit daridi Rn- 1. Tabel ini dikenal dengan fungsi E.
La n gk a h 9
E- Bit Select ion Table
25
20
21
20
21
22
23
24
25
24
26
18
27
28
29
28
29
30
31
32
1 R = 1111 0000 1010 1010 1111 0000 1010 1010 m enj adi
E( R ) = 011110 100001 010101 010101 011110 100001 010101 010101 La n gk a h 1 0
19
32
1
8
2
3
4
5
4
5
6
7
8
9
9
16
10
11
12
13
12
13
14
15
16
17
17
La n gk a h 1 1
Selanj ut nya unt uk m enghit ung f XOR hasil dari n- 1
n
E( R ) dengan Key K K 1 = 000110 110000 001011 101111 111111 000111 000001 110010
E( R ) = 011110 100001 010101 010101 011110 100001 010101 010101
K E(R 1 ) = 011000 010001 011110 111010 100001 100110 010100 100111
La n gk a h 1 2
Selanj ut nya gunakan set iap 6 bit hasil dari K E(R ) unt uk m enj adi
1
alam at t abel yang dinam akan S- Box. Set iap kelom pok 6 bit akan m em berikan alam at pada m asing- m asing S- box yang berbeda.
Jika dit ulis dengan m at em at is
S ( B ) S ( B ) S ( B ) S ( B ) S ( B ) S ( B ) S ( B ) S ( B )
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8 Kedelapan S- box
S1
14
4
13
1 2 15 11
8
3
10
6
12
5
9
7
15
7
4
14
2
13
1
10 6 12 11
9
5
3
8
4
1
14
8
13
6 2 11 15 12
9
7
3
10
5 15 12
8
2
4
9
1
7
5
11 3 14 10
6
13 S2
15
1
8
14
6
11
3
4
9
7 2 13 12
5
10
3
13
4
7
15
2 8 14 12
1
10
6
9
11
5
14 7 11 10
4
13
1
5
8
12
6
9
3
2
15
13
8
10
1
3
15
4
2
11
6
7
12
5
14
9
10
12 7 13 14 3 6 9 10
2
12 5 10 14
7 1 10 13
6
9
8
7 4 15 14
3
11
5
2
1
11
2 8 5 11 12 4 15 13 8 11 5 6 15
3
4 7 2 12 1 10 14
9
10
6 9 0 12 11 7 13 15 1 3 14
5
2
8
4 3 15 6 10 1 13
8
9 4 5 11 12 7 2 14
1
3
9
7
14
6
3
15
5 1 13 12
7
11
4
2
8
13
9
15
3
4
6
10
2
8 5 14 12 11 15
1
13
6
4
9
8
S3 S4
2
5
15
14
9
8
3
11
14
13
1
6
9
2
12
7
2
4
15
10
11
5
7
14
5
8
3
9
13 S5
8
6
7
1
14
11
10
15
5
12
12
2
3
4
6
11
13
1
10
4
7
3
4
13
12
1 5 15 10
9
15
8
7
2 1 11 10 13
4
16
8
9
3
13
5
7
4
12
2
9 14 11
14
5 3 15 13
8
6
1 7 10 11
4
12
6
8
10
6
2
9
15
10
1
12
3
5
4
9
3
15
6
13
2
14
1
7
12
8
11
14
S6
4
15
9
14
11
6
5
12
4
7
3
10
8
13
1
7
7
12
5
14
3
9
10
1
11
15
6
4
2
11
2
14
11 S7
6
5
3
9
12
15
13
8
10
4
7
1
4
2
8
5
3
15
13
10
6
2
14
12
9
1
8
13
11
13
15
2
12
5
3
14
10
1
9
4
7
11
1
6
6
10
5
7
9
12
3
13
8
15
14
2
8
1
12
11
3
2
14
15
5
9
7
10
4
1
8
13
6
4
2
9
5
8
6
15
10
14
7
3
12
13
11
S8 Cara Menggunakan S- Box
1
m enggunakan t abel S
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
14
14
14
14
4
4
4
4
13
13
13
13
1
1
1
1
2 2 15 11 15 11 15 11 15 11
2
2
8
8
8
8
3
3
3
3
10
10
10
10
6
6
6
6
12
12
12
12
5
5
5
5
9
9
9
9
7
7
7
7
1
15
15
15
15
7
7
7
7
4
4
4
4
14
14
14
14
2
2
2
2
13
13
13
13
1
1
1
1
10
10
10
10
6 6 12 11 12 11 12 11 12 11
6
6
9
9
9
9
5
5
5
5
3
3
3
3
8
8
8
8
2
4
4
4
4
1
1
1
1
14
14
14
14
8
8
8
8
13
13
13
13
6
6
6
6
2
2 11 15 12 11 15 12 11 15 12 11 15 12
2
2
9
9
9
9
7
7
7
7
3
3
3
3
10
10
10
10
5
5
5
5
3
15 12 15 12 15 12 15 12
8
8
8
8
2
2
2
2
4
4
4
4
9
9
9
9
1
1
1
1
7
7
7
7
5
5
5
5
11
11
11
11
3 3 14 10 14 10 14 10 14 10
3
3
6
6
6
6
13
13
13
13