Kriptografi Week10 Algoritma Simetri DES

  Data Encryption Standard - DES

  Outline 

  Sejarah DES 

  Enkripsi DES 

  Implementasi Hardware dan Software DES 

  Keamanan DES

Sejarah DES

  

Algoritma DES dikembangkan di IBM dibawah kepemimpinan

W.L. Tuchman pada tahun 1972. Algoritma ini didasarkan pada algoritma LUCIFER yang dibuat oleh Horst Feistel.

  

Algoritma ini telah disetujui oleh National Bureau of Standard

(NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat.

Tinjauan Umum DES

  

  DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok.

  

  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.

  

Skema global dari algoritma DES adalah sebagai berikut : Skema global dari algoritma DES adalah sebagai berikut :

  1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP).

  

2. Hasil permutasi awal kemudian di-enciphering- sebanyak 16 kali

  (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda.

  3. Hasil enciphering kemudian dipermutasi dengan matriks -1

  permutasi balikan (invers initial permutation atau IP ) menjadi blok cipherteks

  Skema

DES yang

lebih rinci

  

Enkripsi

DES P = 0123456789ABCDEF

  K = 133457799BBCDFF1

P = 0123456789ABCDEF

Dalam binary menjadi:

  

P = 0000 0001 0010 0011 0100 0101 0110 0111

1000 1001 1010 1011 1100 1101 1110 1111

  Langkah 1 : Encoding setiap 64 bit data pada

Plaintext dengan IP (Initial Permutation)

  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

  Urutan bit pada plaintext urutan ke 50 ditaruh di posisi 2, dst

  7 Urutan bit pada plaintext urutan ke 58 ditaruh 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 IP

  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

  IP = 1

  

Langkah 1 (Cont’d) : Encoding setiap 64 bit

data pada Plaintext dengan IP (Initial Permutation)

  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

  IP = 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 IP

  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 IP = 11

  

Langkah 1 (Cont’d) : Encoding setiap 64 bit

data pada Plaintext dengan IP (Initial Permutation)

  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

  

IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000

  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 IP

  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 Pecah menjadi L dan R 0...!!! Pecah IP menjadi bagian kiri sebanyak 32 bit (L ) dan kanan sebanyak 32 bit (R )

  

IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010

L

  R

  Jadi

  L = 1100 1100 0000 0000 1100 1100 1111 1111 R = 1111 0000 1010 1010 1111 0000 1010 1010

  K = 133457799BBCDFF1 K dalam binary:

  1 = 0001 3 = 0011 Ditulis berkelompok setiap 8 bit menjadi

  00010011 Sehingga K menjadi

  Membangkitkan kunci eksternal

  

  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

  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 permutasi 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

  Maka:

  

  30

  63

  55

  47

  39

  31

  23

  15

  7

  62

  54

  46

  38

  22

  44

  14

  16

  61

  53

  45

  37

  29

  21

  13

  5

  28

  20

  12

  36

  52

  Gunakan permutasi PC-1

  50

  K+ =1 K+ =11

  K= 00010011 00110100 01010111 01111001 10011011 10111100

  11011111 11110001

  57

  49

  41

  33

  25

  17

  9

  1

  58

  42

  60

  34

  26

  18

  10

  2

  59

  51

  43

  35

  27

  19

  11

  3

  4 Maka:

  

  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 dipermutasi menggunakan tabel PC-1 di atas sehingga 64 bit key

menjadi 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 permutasi

  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

  K+ =1111000 0110011 0010101 0101111 0101010 1011001

  

Selanjutnya bagi Key menjadi 2 bagian kanan dan kiri,C

dan D yang setiap bagian 28 bit panjangnya Dari K+ =1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111

  C D

  Kita mendapatkan

  C = 1111000 0110011 0010101 0101111 D = 0101010 1011001 1001111 0001111

  Setelah mendapatkan C0 dan D0, sekarang kita membuat 6 blok Cn dan Dn yang setiap blok berasal dari Cn-1 dan Dn-1.

  Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit bergantung pada tiap putaran.

  Operasi pergeseran bersifat wrapping atau round-shift.

  Pergeseran tiap putaran berdasarkan tabel di bawah ini Putaran Jumlah 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 Dari C dan D awal kita mendapatkan : C = 1111000011001100101010101111 D = 0101010101100110011110001111

  Dari keterangan tabel sebelumnya maka kita geser C dan D ke kiri sebanyak 1 kali (berdasarkan slide di halaman sebelumnya)

  

C C = 1110000110011001010101011111 = 1111000011001100101010101111

  1 D D = 0101010101100110011110001111 = 1010101011001100111100011110

  1 Dan lakukan seterusnya sampai C16 dan D16

C = 1100001100110010101010111111 C C C C C C C C C C C C C C C = 0011001100101010101111111100 = 1110000110011001010101011111 = 0000110011001010101011111111 = 1100101010101111111100001100 = 1100110010101010111111110000 = 0011001010101011111111000011 = 0101010101111111100001100110 = 0010101010111111110000110011 = 1111100001100110010101010111 = 0101010111111110000110011001 = 111100001100110010101010111 = 0101011111111000011001100101 = 0101111111100001100110010101 = 1111111000011001100101010101 = 0111111110000110011001010101

  2

  16

  7

  3

  1

  6

  10

  8

  14

  9

  5

  15

  11

  13

  4

  

D D D D D D D D D D D D D D D = 1001100111100011110101010101 = 1001111000111101010101011001 = 0110011001111000111101010101 = 0101011001100111100011110101 = 0011110001111010101010110011 = 1010101011001100111100011110 = 0101100110011110001111010101 = 0110011110001111010101010110 = 1100011110101010101100110011 = 0111101010101011001100111100 = 0001111010101010110011001111 = 1111000111101010101011001100 = 1010101010110011001111000111 = 1110101010101100110011110001 = 010101010110011001111000111

  2

Gunakan permutasi PC-2

  56

  55

  30

  40

  51

  45

  33

  48

  44

  49

  39

  34

  37

  53

  46

  42

  50

  36

  29

  32 Untuk C 1 D 1 kita mendapatkan

  C 1 D 1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110

  Dipermutasi menjadi

  K 1 = 000110 110000 001011 101111 111111 000111 000001 110010

  47

  14

  17

  23

  11

  24

  1

  5

  3

  28

  15

  6

  21

  10

  19

  52

  12

  4

  26

  8

  16

  7

  27

  20

  13

  2

  41

  31 Untuk subkey yang lain kita mendapatkan

  K 2

  K 10

  K 16

  = 101111 111001 000110 001101 001111 010011 111100 001010

  K 15

  = 010111 110100 001110 110111 111100 101110 011100 111010

  K 14

  = 100101 111100 010111 010001 111110 101011 101001 000001

  K 13

  = 011101 010111 000111 110101 100101 000110 011111 101001

  K 12

  = 001000 010101 111111 010011 110111 101101 001110 000110

  K 11

  = 101100 011111 001101 000111 101110 100100 011001 001111

  = 111000 001101 101111 101011 111011 011110 011110 000001

  = 011110 011010 111011 011001 110110 111100 100111 100101

  K 9

  = 111101 111000 101000 111010 110000 010011 101111 111011

  K 8

  = 111011 001000 010010 110111 111101 100001 100010 111100

  K 7

  = 011000 111010 010100 111110 010100 000111 101100 101111

  K 6

  = 011111 001110 110000 000111 111010 110101 001110 101000

  K 5

  = 011100 101010 110111 010110 110110 110011 010100 011101

  K 4

  = 010101 011111 110010 001010 010000 101100 111110 011001

  K 3

  = 110010 110011 110110 001011 000011 100001 011111 110101

  Enchipering

Setiap blok plainteks mengalami 16 kali putaran

enciphering .

  Setiap putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai L i

   = R i – 1

  R i

   = L i – 1

   f(R i – 1

  , K i

  )

  Untuk menghitung fungsi f , pertama kita perluas setiap blok dari Ri-1 dari 32 bit menjadi 48 bit dengan menggunakan tabel yang mengulang beberapa bit daridi Rn-1. Tabel ini dikenal dengan fungsi E.

E-Bit Selection 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 menjadi

  E(R ) = 011110 100001 010101 010101 011110 100001 010101

  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

  

Selanjutnya untuk menghitung f XOR hasil dari

n-1

  n

  E(R ) dengan Key K K = 000110 110000 001011 101111 111111 000111 000001 110010 1 E(R ) = 011110 100001 010101 010101 011110 100001 010101 010101 KE(R ) = 011000 010001 011110 111010 100001 100110 010100 100111 1 Langkah 12

  Selanjutnya gunakan setiap 6 bit hasil dari KE(R ) untuk menjadi 1 alamat tabel yang dinamakan S-Box. Setiap kelompok 6 bit akan memberikan alamat pada masing-masing S-box yang berbeda.

  Jika ditulis dengan matematis

  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

  1 7 5 11 3 14 10 0 6 13

  S2

  9 3 2 15

13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

  9 7 2 13 12 0 5 10

3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

0 14 7 11 10 4 13 1 5 8 12 6

  4

  15 1 8 14 6 11 3

  S1

  14 4 13 1 2 15 11 8 3 10 6 12 5

  9

  4

  2

  8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 15 12 8

  3

  5

  7 0 15 7 4 14 2 13 1 10 6 12 11 9

  9

  10 0 9 14 6 3 15 5 1 13 12 7 11 4

  9

  9 4 5 11 12 7 2 14

  8

  4 3 15 6 10 1 13

  8

  2

  5

  6 9 0 12 11 7 13 15 1 3 14

  10

  4 7 2 12 1 10 14

  2

  3

  2 8 5 11 12 4 15 13 8 11 5 6 15

  1

  8 7 4 15 14 3 11 5 2 12 7 13 14 3 6 9 10

  9

  6

  3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0

  9

  8 13 7

  S3 S4

  2 12 4 1 7 10 11 6

  5 6 1 13 14 0 11

  7 6 8 13

  1

  4 3 2 12 9 5 15 10 11 14

  6

  3 7 4 10 1 13 11

  8 9 14 15 5 2 8 12

  3

  9

  8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 16

  6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12

  2

  9

  3 12 1 10 15

  5

  6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4

  4 2 1 11 10 13 7 8 15 9 12 5

  S5 S6

  4

  3

  14

  11

  6

  5

  12

  4

  7

  10

  2

  8

  7 1 15 13

  12

  5

  14

  3

  9

  10

  9

  7

  4 6 15 11

  7

  11 S7

  6

  5

  3

  9

  10

8 13 15 12

  4

  14

  11

  1

  2

  8

  5

  3

  2 6 10 13 15

  1 9 12 14

  4

  1

  8

  11 2 14 15

  1

  5

  3

  9 1 10 14

  4

  7

  11

  13

  6

  2

  10

  5

  7

  9

  12

  3

  13

  8

  12

  15

  2

  1

  13

  12

  3

  2

  9 5 15 14

  7

  10

  4

  8

  8

  2 6 11 13

  9

  5

  8

  6

  3

7 14 10 15

  1 4 11 13 12

  6

  S8 Cara Menggunakan S-Box

  Misal kita menghitung S

  9

  9

  1 7 5 11 3 14 10 0 6 13 14 4 13 1 2 15 11 8 3 10 6 12 5

  9

  7 0 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

  1 7 5 11 3 14 10 0 6 13

  2

  3. Gunakan perpotongan baris dan kolom sebagai

  14 4 13 1 2 15 11 8 3 10 6 12 5

  9

  7 0 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

  4

  8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 15 12 8

  1

  8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 15 12 8

  (B) dengan B = 011011 dan menggunakan tabel S

  1

  1. Gunakan bit awal dan akhir sebagai penanda baris. Dalam hal ini dengan 01 dimana desimalnya adalah 1 jadi ambil baris 1

  2. Gunakan bit pertengahan antara bit awal dan akhir sebagai penanda kolom. Dalam hal ini 1101 dimana desimalnya adalah 13 jadi ambil kolom ke 13

  14 4 13 1 2 15 11 8 3 10 6 12 5

  9

  7 0 15 7 4 14 2 13 1 10 6 12 11 9

  5

  3

  2

  3

  4

  9

  1 7 5 11 3 14 10 0 6 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

  1

  2

  3

  14 4 13 1 2 15 11 8 3 10 6 12 5

  9

  7 0 15 7 4 14 2 13 1 10 6 12 11 9

  5

  1 7 5 11 3 14 10 0 6 13

  K 1

  3

  2

  8

  24

  14

  32

  27

  9

  31

  19

  13

  30

  6

  22

  11

  4

  10

  18

   E(R ) = 011000 010001 011110 111010 100001 100110 010100 100111. Sehingga kita mendapatkan

  21

  S 1 (B 1 )S 2 (B 2 )S 3 (B 3 )S 4 (B 4 )S

5

(B 5 )S 6 (B 6 )S 7 (B 7 )S 8 (B 8 ) =

  0101 1100 1000 0010 1011 0101 1001 0111

  Langkah akhir perhitungan f adalah dengan melakukan permutasi pada output dari S-Box dengan tabel P

  16

  7

  20

  29

  5

  12

  28

  17

  1

  15

  23

  26

  25 Langkah 14 Jadi R

  1 = L + f(R , K

  1 )

= 1100 1100 0000 0000 1100 1100 1111 1111

  

 0010 0011 0100 1010 1010 1001 1011 1011

= 1110 1111 0100 1010 0110 0101 0100 0100

L =

  1100 1100 0000 0000 1100 1100 1111 1111 f(R , K

  1 ) =

  0010 0011 0100 1010 1010 1001 1011 1011

  Kita mendapatkan Dalam putaran selanjutnya kita mendapatkan L

  2 =R

  1 Dan menghitung R

  • f(R

  2 = L

  1

  

1

, K

  2 ) dan seterusnya selama

  16 putaran Langkah 15

  Setelah 16 putaran kita akan mendapatkan L 16 dan R 16 , kemudian lakukan reverse menjadi R 16 L 16 dan lakukan permutasi terakhir yaitu IP -1

  2

  12

  52

  20

  60

  28

  35

  3

  43

  11

  51

  19

  59

  27

  34

  42

  4

  10

  50

  18

  58

  26

  33

  1

  41

  9

  49

  17

  57

  25 Jika kita telah menyelesaikan 16 putaran maka akan mendapatkan

  L 16 = 0100 0011 0100 0010 0011 0010 0011 0100 R 16 = 0000 1010 0100 1100 1101 1001 1001 0101 Kita reverse menjadi : R 16 L 16 = 00001010 01001100 11011001 10010101 01000011 01000010

  44

  38

  40

  31

  8

  48

  16

  56

  24

  64

  32

  39

  7

  47

  15

  55

  23

  63

  38

  29

  6

  46

  14

  54

  22

  62

  30

  37

  5

  45

  13

  53

  21

  61

  00110010 00110100 Langkah 16

  Hasil Akhir

  • -1

IP = 10000101 11101000 00010011 01010100

  00001111 00001010 10110100 00000101 Jika dalam format hexadecimal menjadi

  85E813540F0AB405.

  Jadi enkripsi dari P = 0123456789ABCDEF Menjadi C = 85E813540F0AB405.

Implementasi Hardware dan

  Software DES

  DES sudah diimplementasikan dalam bentuk perangkat keras.

  

  Dalam bentuk perangkat keras, DES diimplementasikan di dalam chip. Setiap detik chip ini dapat mengenkripsikan 16,8 juta blok (atau 1 gigabit per detik).

  

  Implementasi DES ke dalam perangkat lunak dapat melakukan enkripsi 32.000 blok per detik (pada komputer mainframe IBM 3090).

Keamanan DES

  

  Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES:

  1. Panjang kunci

  2. Jumlah putaran

  3. Kotak-S

Keamanan DES

  # Panjang kunci

  Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang dipakai hanya 56 bit. Pada rancangan awal, panjang kunci yang diusulkan IBM adalah 128 bit, tetapi atas permintaan NSA, panjang kunci diperkecil menjadi 56 bit. Alasan pengurangan tidak diumumkan. 56

   Tetapi, dengan panjang kunci 56 bit akan terdapat 2 atau 72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor paralel mencoba

setengah dari jumlah kemungkinan kunci itu, maka dalam satu detik

dapat dikerjakan satu juta serangan. Jadi seluruhnya diperlukan 1142

tahun untuk menemukan kunci yang benar.

   Tahun 1998, Electronic Frontier Foundation (EFE) merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara

exhaustive search key dengan biaya $250.000 dan diharapkan dapat

menemukan kunci selama 5 hari. Tahun 1999, kombinasi perangkat

keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari.

Keamanan DES

  #Jumlah putaran

  Sebenarnya, delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi acak dari setiap bit plainteks dan setiap bit cipherteks. Jadi, mengapa harus 16 kali putaran?

  

  Dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata dapat dipecahkan dengan

  known-plaintext attack lebih cepat daripada dengan brute force attack.

Keamanan DES

  #Kotak-S

  Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu. Referensi : 

  Miles E Smid & Dennis K Brandstad (1988).The Data

  Encryption Standart Past and Future. National Institute

  of Standards and Technology

  

  Coppersmith,D (1994). The Data Encryption Standart

  (DES) and Its Strength Against Attack .IBM 

  Seung-Jo Han (1996).The improved Data Encryption

  Standard (DES) Algorithm. Heang-Soo Oh, Jongan Park