Anda di halaman 1dari 21

Makalah Final Project Kriptografi Algoritma DES

Nama : Roif Syahnureka NIM : 10.11.4123

STMIK Amikom Yogyakarta

BAB I
Sejarah kriptografi
Kriptografi berasal dari bahasa yunani, menurut bahasa dibagi menjadi dua kripto dan graphia, kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut teminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan di kirim dari suatu tempat ketempat yang lain. Menurut catatan sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000 tahun yang lalu oleh raja-raja Mesir pada saat perang untuk mengirimkan pesan rahasia kepada panglima perangnya melalui kurir-kurinya. Orang yang melakukan penyandian ini disebut kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut kriptanalis. Seiring dengan perkembangan teknologi, algoritma kriptografi pun mulai berubah menuju ke arah algoritma kriptografi yang lebih rumit dan kompleks. Kriptografi mau tidak mau harus diakui mempunyai peranan yang paling penting dalam peperangan sehingga algoritma kriptografi berkembang cukup pesat pada saat Perang Dunia I dan Perang Dunia II. Menurut catatan sejarah, terdapat beberapa algoritma kriptografi yang pernah digunakan dalam peperangan, diantaranya adalah ADFVGX yang dipakai oleh Jerman pada Perang Dunia I, Sigaba/M-134yang digunakan oleh Amerika Serikat pada Perang Dunia II, Typex oleh Inggris, dan Purple oleh Jepang. Selain itu Jerman juga mempunyai mesin legendaris yang dipakai untuk memecahkan sandi yang dikirim oleh pihak musuh dalam peperangan yaitu, Enigma.

Tujuan kriptografi
Algoritma kriptografi yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang akan disampaikan. Ada empat tujuan dari ilmu kriptografi, yaitu : 1. 2. 3. 4. Kerahasiaan. Pesan (plaintext) hanya dapat dibaca oleh pihak yang memliki kewenangan. Autentikasi. Pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain. Integritas. Penerima pesan harus dapat memastikan bahwa pesan yang dia terima tidak dimodifikasi ketika sedang dalam proses transmisi data. Non-Repudiation. Pengirim pesan harus tidak bisa menyangkal pesan yang dia kirimkan.

Terminologi kriptografi

Berikut Elemen-elemen Kriptografi :

1. Pesan, Plainteks dan Cipherteks, Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks. Agar pesan tidak bisa dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yan g tersandi disebut cipherteks 2. Pengirim dan Penerima, Pengirim adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang, mesin (komputer), kartu kredit dan sebagainya. 3. Enkripsi dan dekripsi, Proses menyandikan plainteks menjadi cipherteks disebut enkripsi. Sedangkan proses mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi 4. Cipher, Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yaitu himpunan yang berisi elemen-elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi adalah fungsi yang memetakan elemen-elemen antara kedua himpunan tersebut. 5. Sistem kriptografi merupakan kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin dan kunci. 6. Penyadap adalah orang yang berusaha mencoba menangkap pesan selama ditransmisikan dengan tujuan mendapatkan informasi sebanyak-banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. 7. Kriptanalisis dan kriptologi, Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Kriptologi adalah studi mengenai kriptografi dan kriptanalisis.

Klasifikasi algoritma kriptografi


Algoritma kriptografi adalah algoritma yang berfungsi untuk melakukan tujuan dari ilmu kriptografi itu sendiri. Algoritma kriptografi terdiri dari 2 bagian fungsi, yaitu :

1. ENKRIPSI (encryption), Proses tranformasi dari plaintext menjadi ciphertext disebut prosesEncipherment atau enkripsi (encryption). 2. DEKRIPSI (decryption), Proses mentransformasikan kembali ciphertext menjadi plaintext disebut proses dekripsi (decryption). Sehingga dapat digunakan untuk mengamankan informasi. Pada implementasinya sebuah algoritma sandi harus memperhatikan kualitas layanan dari keseluruhan sistem dimana dia diimplementasikan. Algoritma sandi yang handal adalah algoritma sandi yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma itu sendiri. Teknik dan metode untuk menguji kehandalan algoritma sandi adalah kriptanalisa. Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi : 1. ALGORITMA KUNCI SIMETRIS. Dalam symmetric cryptosystem ini, kunci yang digunakan untuk proses enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat pula diturunkan dari kunci yang lainnya. Kunci-kunci ini harus dirahasiakan. Oleh karena itulah sistem ini sering disebut sebagai secret-key ciphersystem. Jumlah kunci yang dibutuhkan umumnya adalah :
nC2

= n . (n-1) -------2

dengan n menyatakan banyaknya pengguna. Contoh dari sistem ini adalah Data Encryption Standard (DES), Blowfish, IDEA. Kriptografi secret key seringkali disebut sebagai kriptografi konvensional atau kriptografi simetris (Symmetric Cryptography) dimana proses dekripsi adalah kebalikan dari proses enkripsi dan menggunakan kunci yang sama. Kriptografi simetris dapat dibagi menjadi dua, yaitu penyandian blok dan penyandian alir. Penyandian blok bekerja pada suatu data yang terkelompok menjadi blok-blok data atau kelompok data dengan panjang data yang telah ditentukan. Pada penyandian blok, data yang masuk akan dipecah-pecah menjadi blok data yang telah ditentukan ukurannya. Penyandian alir bekerja pada suatu data bit tunggal atau terkadang dalam satu byte. Jadi format data yang mengalami proses enkripsi dan dekripsi adalah berupa aliran bit-bit data.

Algoritma yang ada pada saat ini kebanyakan bekerja untuk penyandian blok karena kebanyakan proses pengiriman data pada saat ini menggunakan blok-blok data yang telah ditentukan ukurannya untuk kemudian dikirim melalui saluran komunikasi. 2. ALGORITMA KUNCI ASIMETRIS.

Algoritma Asimetris atau sering disebut algoritma public key, penggunaan kunci dalam algoritma ini adalah, kunci yang dipakai dalam proses enkripsiberbeda dengan kunci yang dipakai pada proses dekripsi, jadi jumlah kunci enkripsi kunci dekripsi. Ada 2 jenis kunci di algoritma ini, yaitu: 1. KUNCI PUBLIK adalah kunci yang digunakan untuk melakukan proses enkripsi data. Kunci ini disebut publik karena siapapun dapat mengetahuinya. 2. KUNCI PRIVAT adalah kunci yang digunakan untuk melakukan proses dekripsi data. Kunci ini disebut privat karena 1 kunci privat hanya dimiliki oleh 1 orang saja. Kunci privat sering juga disebut kunci rahasia. Istilah kunci rahasia dalam algoritma simetris digunakan untk menyatakan kunci enkripsi dan dekripsi, sementara pada algoritma asimetris digunakan untuk menyatakan kunci privat, karena kunci publik tidak dirahasiakan. Berdasarkan arah implementasi dan pembabakan zamannya dibedakan menjadi : 1. ALGORITMA SANDI KLASIK. Sebelum komputer ada, kriptografi dilakukan dengan menggunakan pensil dan kertas. Algoritma kriptografi (cipher) yang digunakan saat itu, dinamakan juga algoritma klasik, adalah berbasis karakter, yaitu enkripsi dan dekripsi dilakukan pada setiap karakter pesan. Semua algoritma klasik termasuk ke dalam sistrm kriptografi simetris dan digunakan jauh sebelum kriptografi kunci publik ditemukan. Kriptogarfi klasik memiliki beberapa ciri : 1. Berbasis karakter 2. Menggunakan pena dan kertas saja, belum ada computer 3. Termasuk ke dalam kriptografi kunci simetris. Tiga alasan mempelajari algoritma klasik : 1. Memahami konsep dasar kriptografi 2. Dasar algoritma kriptografi modern 3. Memahami kelemahan sistem kode. Pada dasarnya, algoritma kriptografi klasik dapat dikelompokkan ke dalam dua macam cipher, yaitu : 1. Cipher substitusi (substitution cipher) Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Satu unit di isini berarti satu huruf, pasanga huruf, atau dikelompokkan lebih dari dua huruf. Algoritma substitusi tertua

yang diketahui adalah Caesar cipher yang digunakan oleh kaisar Romawi , Julius Caesar (sehingga dinamakan juga casear cipher), untuk mengirimakan pesan yang dikirimkan kepada gubernurnya. 2. Cipher transposisi (transposition cipher) Pada cipher transposisi, huruf-huruf di dalam plainteks tetap saja, hanya saja urutannya diubah. Dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi atau pengacakan (scrambling) karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karkater tersebut. (Munir.2006) Pada metode kriptografi simetris atau konvensional digunakan satu buah kunci. Bila kunci dinotasikan denan K maka proses enkripsi-dekripsi metode kriptografi simeteris dapat dinotasikan dengan : Ek(P) = C dan Dk (C) = P Dan keseluruhan sistem dinyatakan sebagai : Dk(Ek(P))=P 2. ALGORITMA SANDI MODERN Algoritma kriptografi modern tidak lagi mengandalkan keamanannya pada kerahasiaan algoritma tetapi kerahasiaan kunci. Plaintext yang sama bila disandikan dengan kunci yang berbeda akan menghasilkan ciphertext yang berbeda pula. Dengan demikian algoritma kriptografi dapat bersifat umum dan boleh diketahui oleh siapa saja, akan tetapi tanpa pengetahuan tentang kunci, data tersandi tetap saja tidak dapat terpecahkan. Sistem kriptografi atauCryptosystem adalah sebuah algoritma kriptografi ditambah semua kemungkinan plaintext, ciphertext dan kunci Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu : 1. Algoritma block cipher Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64-bit) dimana blok-blok ini dioperasikan dengan fungsi enkripsi yang sama dan akan menghasilkan informasi rahasia dalam blokblok yang berukuran sama. 2. Algoritma stream cipher Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte atau bit), biasanya satu karakter persatuan persatuan waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu.

BAB II
Dasar teori
Konsep dan pembahasan
Pengertian DES
DES merupakan kependekan dari {Data Encryption Standard}, yaitu standar teknik encryption yang diresmikan oleh pemerintah Amerika Serikat (US) di tahun 1977. DES kemudian dijadikan standar ANSI di tahun 1981. Horst Feistel merupakan salah satu periset yang mula-mula mengembangkan DES ketika bekerja di IBM Watson Laboratory di Yorktown Heights, New York. DES merupakan block cipher yang beroperasi dengan blok berukuran 64-bit dan kunci 56-bit. Brute-force attack terhadap DES membutuhkan kombinasi 2 pangkat 56, atau sekitar 7 x 10 pangkat 16, atau 70 juta milyar.

A. Tinjauan Umum 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: 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 permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks. Di dalam 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. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f diXOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES. Secara matematis, satu putaran DES dinyatakan sebagai Li = Ri 1 Ri = Li 1 f(Ri 1, Ki)

Gambar 2 memperlihatkan skema algoritma DES yang lebih rinci.


P laint eks

IP

L0

R0

K1

L1 = R0

R1 L 0 f ( R 0 , K 1 )

K2

L2 = R1

R 2 L1 f ( R1 , K 2 )

L15 = R14

R15 L14 f ( R14 , K 15 )

K16

R16 L15 f ( R15 , K 16 )


L16 = R15

IP-1

Ciphert eks

Gambar 2. Algoritma Enkripsi dengan DS Catatlah bahwa satu putaran DES merupakan model jaringan Feistel (lihat Gambar 3).
Li - 1

Ri 1

Ki

Li

Ri

Gambar 3. Jaringan Feistel untuk satu putaran DES

Perlu dicatat dari Gambar 2 bahwa jika (L16, R16) merupakan keluaran dari putaran ke-16, maka (R16, L16) merupakan pra-cipherteks (pre-ciphertext) dari enciphering ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan, IP -1, terhadap blok pra-cipherteks.

BAB III
Rancangan program
A. Pembangkitan Kunci Internal Karena ada 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 PC-1 sebagai berikut: 57 10 63 14 49 2 55 6 41 59 47 61 33 51 39 53 25 43 31 45 17 35 23 37 9 27 15 29 1 19 7 21 58 11 62 13 50 3 54 5 42 60 46 28 34 52 38 20 26 44 30 12 18 36 22 4

Dalam permutasi ini, tiap bit kedelapan (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: C0: 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

D0: berisi bit-bit dari K pada posisi 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 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 bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift. Jumlah pergeseran pada setiap putaran ditunjukkan pada Tabel 1 sbb: Tabel 1. Jumlah pergeseran bit pada setiap putaran 38, 30, 22

Putaran, i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Jumlah pergeseran bit 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Misalkan (Ci, Di) menyatakan penggabungan Ci dan Di. (Ci+1, Di+1) diperoleh dengan menggeser Ci dan Di satu atau dua bit. Setelah pergeseran bit, (Ci, Di) mengalami permutasi kompresi dengan menggunakan matriks PC-2 berikut:

14 23 41 44

17 19 52 49

11 12 31 39

24 4 37 56

1 26 47 34

5 8 55 53

3 16 30 46

28 7 40 42

15 27 51 50

6 20 45 36

21 13 33 29

10 2 48 32

Dengan permutasi ini, kunci internal Ki diturunkan dari (Ci, Di) yang dalam hal ini Ki merupakan penggabungan bit-bit Ci pada posisi: 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2

dengan bit-bit Di pada posisi: 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 Ki mempunyai panjang 48 bit. Proses pembangkitan kunci-kunci internal ditunjukkan pada Gambar 4. Bila jumlah pergeseran bit-bit pada Tabel 1 dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28, yang sama dengan jumlah bit pada Ci dan Di. Karena itu, setelah putaran ke16 akan didapatkan kembali C16 = C0 dan D16 = D0.
Kunci eksternal Permutasi PC-1

C0 Left Shift C1

D0 Left Shift D1 Permutasi PC-2 K1

Left Shift

Left Shift

Cj

Dj Permutasi PC-2 Kj

Left Shift C16

Left Shift D16 Permutasi PC-2 K16

Gambar 4. Proses pembangkitan kunci-kunci internal DES

Enciphering Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal (lihat Gambar 1). Setiap blok plainteks mengalami 16 kali putaran enciphering (lihat Gambar 2). Setiap putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai

Li = Ri 1 Ri = Li 1 f(Ri 1, Ki) Diagram komputasi fungsi f diperlihatkan pada Gambar 5.

Ri-1 32 bit Ekspansi menjadi 48 bit E(Ri-1) 48 bit

48 bit 48 bit

Ki

E ( Ri 1 ) K i A

S1

...
B

S8

Matriks substitusi

32 bit P(B) 32 bit

Gambar 5. Rincian komputasi fungsi f E adalah fungsi ekspansi yang memperluas blok Ri 1 yang panjangnya 32-bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi sbb:

32 8 16 24

1 9 17 25

2 10 18 26

3 11 19 27

4 12 20 28

5 13 21 29

4 12 20 28

5 13 21 29

6 14 22 30

7 15 23 31

8 16 24 32

9 17 25 1

Selanjutnya, hasil ekpansi, yaitu E(Ri 1), yang panjangnya 48 bit di-XOR-kan dengan Ki yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48-bit: E(Ri 1) Ki = A

Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah kotakS (S-box), S1 sampai S8. Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6-bit pertama menggunakan S1, kelompok 6-bit kedua menggunakan S2, dan seterusnya. (cara pensubstitusian dengan kotak-S sudah dijelaskan pada materi Prinsip-prinsip Perancangan Cipher Blok)

Kedelapan kotak-S tersebut adalah: S1: 14 0 4 15 4 15 1 12 13 7 14 8 1 4 8 2 2 14 13 4 15 2 6 9 11 13 2 1 8 1 11 7 3 10 15 5 10 6 12 11 6 12 9 3 12 11 7 14 5 9 3 10 9 5 10 0 0 3 5 6 7 8 0 13

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

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

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

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

9 4

14 3

15 2

5 12

2 9

8 5

12 15

3 10

7 11

0 14

4 1

10 7

1 6

13 0

11 8

6 13

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

Keluaran proses substitusi adalah vektor B yang panjangnya 48 bit. Vektor B menjadi masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Permutasi dilakukan dengan menggunakan matriks permutasi P (P-box) sbb:

16 2

7 8

20 24

21 14

29 32

12 27

28 3

17 9

1 19

15 13

23 30

26 6

5 22

8 11

31 4

10 25

Bit-bit P(B) merupakan keluaran dari fungsi f. Akhirnya, bit-bit P(B) di-XOR-kan dengan Li 1 untuk mendapatkan Ri (lihat Gambar 6): Ri = Li 1 P(B)

Jadi, keluaran dari putaran ke-i adalah (Li, Ri) = (Ri 1 , Li 1 P(B))

Li-1 32 bit

Ri 32 bit

Gambar 6. Skema perolehan Ri Permutasi Terakhir (Inverse Initial Permutation)

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 ) sbb:

40 38 36 34

8 6 4 2

48 46 44 42

16 14 12 10

56 54 52 50

24 22 20 18

64 62 60 58

32 30 28 26

39 37 35 33

7 5 3 1

47 45 43 41

15 13 11 9

55 53 51 49

23 21 19 17

63 61 59 57

31 29 27 25

BAB IV
Implementasi dan pembahasan
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).

C. Keamanan DES

Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES: 1. Panjang kunci 2. Jumlah putaran 3. Kotak-S

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 diumumkan. Tetapi, dengan panjang kunci 56 bit akan terdapat 256 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 menemukan kunci yang benar. seluruhnya diperlukan 1142 tahun untuk menjadi 56 bit. Alasan pengurangan tidak

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.

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 mangkus daripada dengan brute force attack.

Kotak-S Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstantakonstanta di dalam kotak itu.

Kunci Lemah dan Kunci Setengah Lemah DES mempunyai beberapa kunci lemah (weak key). Kunci lemah menyebabkan kunci-kunci internal pada setiap putaran sama (K1 = K2 = = K16). Akibatnya, enkripsi dua kali berturutturut terhadap plainteks menghasilkan kembali plainteks semula. Kunci lemah terjadi bila bit-bit di dalam Ci dan Di semuanya 0 atau 1, atau setengah dari kunci seluruh bitnya 1 dan setengah lagi seluruhnya 0. Kunci eksternal (dalam notasi HEX) yang menyebabkan terjadinya kunci lemah adalah (ingat bahwa setiap bit kedelapan adalah bit paritas). Kunci lemah (dengan bit paritas) Kunci sebenarnya

0101 0101 0101 0101 1F1F 1F1F 1F1F 1F1F E0E0 E0E0 F1F1 F11F FEFE FEFE FEFE FEFE

0000000 0000000 0000000 FFFFFFF FFFFFFF 0000000 FFFFFFF FFFFFFF

Selain kunci lemah, DES juga mempunyai sejumlah pasangan kunci setengah-lemah (semiweak key). Pasangan kunci setengah- lemah mengenkripsikan plainteks menjadi cipherteks yang sama. Sehingga, satu kunci dalam pasangan itu dapat mendekripsi pesan yang dienkripsi oleh kunci yang lain di dalam pasangan itu.

Kunci setengah-lemah terjadi bila: 1. Register C dan D berisi bit-bit dengan pola 01010101 atau 10101010 2. Register yang lain (C atau D) berisi bit-bit dengan pola 00000000, 11111111, 01010101, atau 10101010

Ada 6 pasang kunci setengah lemah (dalam notasi HEX): a. 01FE 01FE 01FE 01FE dan FE01 FE01 FE01 FE01

b. 1FE0 1FE0 0EF1 0EF1 dan E01F E01F F10E F10E c. 01E0 01E0 01F1 01F1 dan E001 E001 F101 F101 d. 1FFE 1FFE 0EFE 0EFE dan FE1F FE1F FE0E FE0E

e. 011F 011F 010E 010E dan 1F01 1F01 0E01 0E01 f. E0FE E0FE F1FE F1FE dan FEE0 FEE0 FEF1 FEF1

BAB V
Kesimpulan
DES merupakan kependekan dari {Data Encryption Standard}, yaitu standar teknik encryption yang diresmikan oleh pemerintah Amerika Serikat (US) di tahun 1977. DES kemudian dijadikan standar ANSI di tahun 1981. Horst Feistel merupakan salah satu periset yang mula-mula mengembangkan DES ketika bekerja di IBM Watson Laboratory di Yorktown Heights, New York. DES merupakan block cipher yang beroperasi dengan blok berukuran 64-bit dan kunci 56-bit. Brute-force attack terhadap DES membutuhkan kombinasi 2 pangkat 56, atau sekitar 7 x 10 pangkat 16, atau 70 juta milyar. IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang beroperasi pada sebuah blok pesan terbuka dengan lebar 64-bit. Dan menggunakan kunci yang sama , berukuran 128bit, untuk proses enkripsi dan dekripsi. Pesan rahasia yang dihasilan oleh algoritma ini berupa blok pesan rahasia dengan lebar atu ukuran 64-bit Pesan dekripsi menggunakan blok penyandi yang sama dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari dari kunci enkripsi LOKI didesain sebagai hasil dari analisis yang dilakukan secara detail terhadap blok cipher yang standar digunakan pada saat itu, yaitu DES (Data Encryption Standar). Dikarenakan ada versi terbaru dari LOKI ini, maka LOKI yang dibuat pertama kali lebih dikenal dengan nama LOKI89 sesuai dengan tahun pembuatannya, walaupun LOKI pertama kali diperkenalkan pada tahun 1990. Metode LUC merupakan algoritma kriptografi kunci publik yang dikembangkan oleh Peter J. Smith dari New Zealand pada tahun 1993. Metode LUC ini dirancang oleh Peter J. Smith setelah ia berhasil meneliti dan melihat kelemahan dari metode RSA. Metode LUC ini menggunakan fungsi Lucas yang dapat menutupi kelemahan metode RSA yang menggunakan fungsi pangkat. Kemungkinan untuk menjebol RSA menjadi ada karena masalah pangkat tersebut. Fungsi Lucas ini dapat mencegah kemungkinan tersebut.

Daftar Pustaka
http://www.google.com http://tugaskuliah-esti.blogspot.com/2011/10/makalah-kriptografi.html http://heranapit.blogspot.com/2010/11/algoritma-kriptografi-modern.html http://pustaka.unpad.ac.id/wpcontent/uploads/2009/06/enkripsi_dan_dekripsi_data_dengan_algoritma_3_des.pdf http://ghifar.wordpress.com/2008/02/13/makalah-makalah-kriptografi/ http://www.scribd.com/doc/75318591/Makalah1-043