• Tidak ada hasil yang ditemukan

Simulasi Kerahasiaan / Keamanan Informasi Dengan Menggunakan Algoritma Des (Data Encryption Standard)

N/A
N/A
Protected

Academic year: 2016

Membagikan "Simulasi Kerahasiaan / Keamanan Informasi Dengan Menggunakan Algoritma Des (Data Encryption Standard)"

Copied!
106
0
0

Teks penuh

(1)

SIMULASI KERAHASIAAN / KEAMANAN INFORMASI DENGAN MENGGUNAKAN ALGORITMA DES (DATA ENCRYPTION STANDARD)

SKRIPSI

INDRA SYAHPUTRA 051411011

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(2)

PERSETUJUAN

Judul : SIMULASI KERAHASIAAN DATA/INFORMASI

DENGAN MENGGUUNAKAN METODE DES

Kategori : SKRIPSI

Nama : INDRA SYAHPUTRA

Nomor Induk Mahasiswaa : 051411011

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 6 Desember 2009 Komisi Pembimbing :

Pembimbing 1, Pembimbing 2,

Drs. Marihat Situmorang, M.Kom Syahriol Sitorus, S.Si, M.IT

NIP. 131859487 NIP. 132174687

Diketahui/Disetujui oleh

Departemen Matematika FMIPA USU Ketua,

(3)

PERNYATAAN

SIMULASI KERAHASIAAN / KEAMANAN INFORMASI DENGAN MENGGUNAKAN ALGORITMA DES (DATA ENCRYPTION STANDARD)

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Desember 2009

(4)

PENGHARGAAN

Puji dan Syukur penulis panjatkan kepada Allah SWT Yang Maha Pemurah Dan Maha Penyayang, dengan limpah karunia-Nya Skripsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan.

(5)

ABSTRAK

Data atau informasi merupakan salah satu elemen yang memegang peranan yang sangat besar dalam berbagai bidang kehidupan. Dengan semakin berkembangnya teknologi komputer, semakin banyak orang yang sanggup mengutak-atik data walaupun telah disimpan dengan rapi.

Untuk mencegah terjadinya pencurian data oleh pihak-pihak yang tidak berhak atas data tersebut, maka dikembangkanlah berbagai teknik pengamanan data. Kriptografi adalah salah satu teknik yang digunakan untuk meningkatkan aspek keamanan suatu data atau informasi. Kriptografi merupakan ilmu dan seni untuk menjaga kerahasiaan suatu pesan atau data. Dalam hal ini pesan akan dienkripsi sehingga pesan tersebut tidak dapat dipahami lagi maknanya. Pesan yang sudah dienkripsi harus didekripsikan supaya pesan tersebut kembali seperti semula. Kriptografi mendukung kebutuhan dari dua aspek keamanan informasi, yaitu secrecy (perlindungan terhadap kerahasiaan informasi) dan authenticity (perlindungan terhadap pemalsuan dan pengubahan informasi yang tidak diinginkan). Salah satu metode kripstografi adalah Data encryption standard (DES) yang paling banyak di gunakan di dunia. Secara manual metode DES sangat kompleks, untuk lebih mempermudah mempelajari DES dapat di buat suatu perangkat lunak yang dapat melakukan simulasi DES dengan benar.

Contoh simulasi kita berikan pesan KOMPUTER dan kunci eksternal PROGRAMA

(6)

DAFTAR ISI

LEMBARAN PENGESAHAN ... i

ABSTRAK ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... ix

BAB I PENDAHULUAN 1.1. Latar Belakang Masalah ... 1

1.2. Identifikasi Masalah ... 2

1.3. Tujuan Penulisan ... 3

1.4. Batasan Masalah ... 3

1.5. Metode Penelitian ... 3

1.6. Sistematika Penulisan ... 4

BAB II TINJAUAN TEORITIS 2.1. Definisi dan Terminologi ... 5

2.1.1. Kriptografi ... 5

2.1.2. Plainteks dan Cipherteks ... 6

2.1.3. Pengirim dan Penerima ... 6

2.1.4. Enkripsi dan Dekripsi... 7

2.1.5. Cipher dan Kunci ... 7

(7)

2.1.7. Penyadap ... 10

2.1.8. Kriptanalisis dan Kriptologi ... 10

2.2. Tujuan Kriptografi ... 11

2.3. Jenis-Jenis Kriptografi ... 12

2.3.1. Kriptografi Kunci Simetri ... 12

2.3.1.1. Block Cipher ... 14

2.3.1.2. Stream Cipher... 15

2.3.2. Kriptografi Kunci Asimetri ... 17

2.3.2.1. Konsep Kriptografi Kunci Asimetri ... 18

2.3.3. Perbandingan Kriptografi Kunci Simetri dan Kriptogrfi Kunci Asimetri ... 19

2.4. Serangan Terhadap Kriptografi ... 21

2.4.1. Keamanan Algoritma Kriptografi ... 23

2.4.2. Jenis-Jenis Serangan Kriptografi ... 24

2.5. Data Encryption Standard (DES) ... 27

2.5.1. Sejarah DES... 27

BAB III PERANCANGAN 3.1. Pembahasan ... 29

3.1.1. Algoritma DES ... 29

3.1.2. Pembangkitan Kunci Internal ... 32

3.1.3. Proses Enkripsi Data ... 36

3.1.4. Proses Dekripsi Data ... 42

(8)

3.1.5.1. Proses Pembangkitan Kunci Internal... 44

3.1.5.2. Proses Enkripsi Data ... 47

3.1.5.3. Proses Dekripsi Data ... 55

3.2. Perancangan ... 63

BAB IV IMPLEMENTASI 4.1. Perangkat Keras (Hardware) ... 67

4.2. Perangkat Lunak (Software) ... 67

4.3. Implementasi ... 67

BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 72

5.2. Saran ... 72

(9)

DAFTAR GAMBAR

Gambar 2.1.a. Skema enkripsi dan dekripsi ... 9

Gambar 2.1.b. Contoh ilustrasi enkripsi dan dekripsi pesan ... 9

Gambar 2.2. Skema kriptografi kunci simetri. ... 14

Gambar 2.3. Skema kriptografi kunci asimetri ... 18

Gambar 3.1. Skema global kriptografi DES ... 29

Gambar 3.2. Proses enkripsi dengan kriptografi DES ... 31

Gambar 3.3. Proses pembangkitan kunci-kunci internal ... 36

Gambar 3.4. Diagram komputasi fungsi f... 38

Gambar 3.5. Sketsa tampilan penginputan ... 64

Gambar 3.6. Sketsa tampilan proses perhitungan kunci ... 64

Gambar 3.7. Sketsa tampilan proses enkripsi data ... 65

Gambar 3.8. Sketsa tampilan cipherteks ... 65

Gambar 3.9. Sketsa tampilan proses dekripsi data ... 66

Gambar 3.10. Sketsa tampilan plainteks ... 66

Gambar 4.1. Tampilan aplikasi DES untuk menginput plainteks dan kunci . 68 Gambar 4.2. Tampilan proses pembentukan kunci internal ... 69

Gambar 4.3. Tampilan kumpulan kunci internal ... 69

Gambar 4.4. Tampilan proses enkripsi ... 70

Gambar 4.5. Tampilan hasil enkripsi terhadap plainteks ... 70

Gambar 4.6. Tampilan proses dekripsi terhadap cipherteks ... 71

(10)

DAFTAR TABEL

Tabel 3.1. Matriks kunci eksternal 64 bit ... 32

Tabel 3.2. Matriks permutasi Choice One (PC-1) ... 33

Tabel 3.3. Jumlah pergeseran bit pada setiap putaran ... 34

Tabel 3.4. Matriks permutasi Choice Two (PC-2) ... 34

Tabel 3.5. Matriks plainteks 64 bit ... 37

Tabel 3.6. Matriks initial permutation (IP) ... 37

Tabel 3.7. Matriks permutasi ekspansi ... 39

Tabel 3.8. Tabel S-box 1 (S1) ... 39

Tabel 3.9. Tabel S-box 2 (S2) ... 40

Tabel 3.10. Tabel S-box 3 (S3) ... 40

Tabel 3.11. Tabel S-box 4 (S4) ... 40

Tabel 3.12. Tabel S-box 5 (S5) ... 40

Tabel 3.13. Tabel S-box 6 (S6) ... 40

Tabel 3.14. Tabel S-box 7 (S7) ... 41

Tabel 3.15. Tabel S-box 8 (S8) ... 41

Tabel 3.16. Matriks Permutasi (P) ... 41

Tabel 3.17. Matriks initial permutation (IP-1) ... 42

Tabel 3.18. Tabel contoh plainteks ... 44

Tabel 3.19. Tabel contoh kunci internal ... 44

Tabel 3.20. Hasil proses pembangkitan kunci internal... 45

(11)

Tabel 3.22. Hasil enkripsi putaran ke-2 ... 48

Tabel 3.23. Hasil enkripsi putaran ke-3 ... 49

Tabel 3.24. Hasil enkripsi putaran ke-4 ... 49

Tabel 3.25. Hasil enkripsi putaran ke-5 ... 49

Tabel 3.26. Hasil enkripsi putaran ke-6 ... 50

Tabel 3.27. Hasil enkripsi putaran ke-7 ... 50

Tabel 3.28. Hasil enkripsi putaran ke-8 ... 50

Tabel 3.29. Hasil enkripsi putaran ke-9 ... 51

Tabel 2.30. Hasil enkripsi putaran ke-10 ... 51

Tabel 2.31. Hasil enkripsi putaran ke-11 ... 51

Tabel 3.32. Hasil enkripsi putaran ke-12 ... 52

Tabel 3.33. Hasil enkripsi putaran ke-13 ... 52

Tabel 3.34. Hasil enkripsi putaran ke-14 ... 52

Tabel 3.35. Hasil enkripsi putaran ke-15 ... 53

Tabel 3.36. Hasil enkripsi putaran ke-16 ... 53

Tabel 3.37. Tabel blok Li dan Ri dari 16 putaran enkripsi... 54

Tabel 3.38. Hasil dekripsi putaran ke-1 ... 56

Tabel 3.39. Hasil dekripsi putaran ke-2 ... 57

Tabel 3.40. Hasil dekripsi putaran ke-3 ... 57

Tabel 3.41. Hasil dekripsi putaran ke-4 ... 57

Tabel 3.42. Hasil dekripsi putaran ke-5 ... 58

Tabel 3.43. Hasil dekripsi putaran ke-6 ... 58

(12)

Tabel 3.45. Hasil dekripsi putaran ke-8 ... 59

Tabel 3.46. Hasil dekripsi putaran ke-9 ... 59

Tabel 3.47. Hasil dekripsi putaran ke-10 ... 59

Tabel 3.48. Hasil dekripsi putaran ke-11 ... 60

Tabel 3.49. Hasil dekripsi putaran ke-12 ... 60

Tabel 3.50. Hasil dekripsi putaran ke-13 ... 60

Tabel 3.51. Hasil dekripsi putaran ke-14 ... 61

Tabel 3.52. Hasil dekripsi putaran ke-15 ... 61

Tabel 3.53. Hasil dekripsi putaran ke-16 ... 61

(13)

ABSTRAK

Data atau informasi merupakan salah satu elemen yang memegang peranan yang sangat besar dalam berbagai bidang kehidupan. Dengan semakin berkembangnya teknologi komputer, semakin banyak orang yang sanggup mengutak-atik data walaupun telah disimpan dengan rapi.

Untuk mencegah terjadinya pencurian data oleh pihak-pihak yang tidak berhak atas data tersebut, maka dikembangkanlah berbagai teknik pengamanan data. Kriptografi adalah salah satu teknik yang digunakan untuk meningkatkan aspek keamanan suatu data atau informasi. Kriptografi merupakan ilmu dan seni untuk menjaga kerahasiaan suatu pesan atau data. Dalam hal ini pesan akan dienkripsi sehingga pesan tersebut tidak dapat dipahami lagi maknanya. Pesan yang sudah dienkripsi harus didekripsikan supaya pesan tersebut kembali seperti semula. Kriptografi mendukung kebutuhan dari dua aspek keamanan informasi, yaitu secrecy (perlindungan terhadap kerahasiaan informasi) dan authenticity (perlindungan terhadap pemalsuan dan pengubahan informasi yang tidak diinginkan). Salah satu metode kripstografi adalah Data encryption standard (DES) yang paling banyak di gunakan di dunia. Secara manual metode DES sangat kompleks, untuk lebih mempermudah mempelajari DES dapat di buat suatu perangkat lunak yang dapat melakukan simulasi DES dengan benar.

Contoh simulasi kita berikan pesan KOMPUTER dan kunci eksternal PROGRAMA

(14)

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Perkembangan teknologi komputer dan teknologi telekomunikasi pada saat ini telah mengubah cara masyarakat dalam berkomunikasi. Dulu, komunikasi jarak jauh masih dilakukan dengan cara konvensional, yaitu dengan cara saling mengirim surat. Sekarang, dengan adanya internet, komunikasi jarak jauh bisa dilakukan dengan cara saling mengirim email atau sms (short message service). Internet juga telah membuat komunikasi semakin terbuka dan pertukaran informasi juga semakin cepat melewati batas-batas negara dan budaya. Namun tidak semua perkembangan teknologi komunikasi ini memberikan dampak yang menguntungkan bagi dunia komunikasi. Penyadapan data merupakan hal yang paling ditakuti oleh pengguna jaringan komunikasi pada saat ini.

(15)

Kriptografi adalah salah satu teknik yang digunakan untuk meningkatkan aspek keamanan suatu informasi. Kriptografi merupakan kajian ilmu dan seni untuk menjaga suatu pesan atau data informasi agar data tersebut aman. Kriptografi mendukung kebutuhan dua aspek keamanan informasi yaitu secrecy (perlindungan terhadap kerahasiaan data informasi) dan authentication (perlindungan terhadap pemalsuan dan pengubahan informasi yang tidak diinginkan).

Algoritma kriptografi yang baik akan memerlukan waktu yang lama untuk memecahkan data yang telah disandikan. Seiring dengan perkembangan teknologi komputer maka dunia teknologi informasi membutuhkan algoritma kripografi yang lebih kuat dan aman.

Salah satu metode dalam kriptografi yang dapat digunakan untuk menjamin keamanan data adalah dengan metode DES (Data Encryption Standard). DES diadopsi oleh NIST (National Institute of Standards and Technology) sebagai standar pengolah informasi Federal AS.

Berdasarkan uraian diatas maka penulis tertarik untuk melakukan penulisan tugas akhir dengan judul “ Simulasi Metode DES (Data Encryption Standard)”.

1.2. Identifikasi Masalah

(16)

Setiap kegiatan yang dilakukan tentunya memiliki tujuan. Tujuan dari penulisan tugas akhir ini adalah untuk menghasilkan suatu perangkat lunak yang dapat mensimulasikan metoda DES.

1.4. Batasan Masalah

Agar pembahasan tidak menyimpang dari tujuan maka diberikan batasan masalah sebagai berikut:

1. Perangkat lunak dibuat dengan bahasa pemrograman Turbo Pascal 7.

2. Hanya dapat melakukan proses enkripsi dan dekripsi karakter ASCII sebanyak delapan karakter.

3. Kunci eksternal yang digunakan berupa delapan buah karakter ASCII.

1.5. Metode Penelitian

Adapun metode penelitian yang digunakan adalah:

1. Penelitian laboratorium (laboratory research), yaitu penelitian dengan mendefinisikan masalah, menyusun logika program, membuat algoritma, membuat program, menguji program dan mengimplementasikan program sehingga menghasilkan output yang diinginkan.

2. Penelitian kepustakaan (library research), yaitu penelitian dengan pengambilan data dari perpustakaan dengan cara membaca buku dan majalah dan pencarian data yang berhubungan dengan masalah yang diteliti melalui media internet.

(17)

Sistem penulisan tugas akhir ini terdiri dari lima bab, dimana setiap bab terdiri dari beberapa sub bab. Secara sistematis penulisan tugas akhir ini dapat diuraikan sebagai berikut :

Bab I Pendahuluan

Berisi latar belakang masalah , identifikasi masalah, tujuan penulisan, batasan masalah, metode penelitian, dan sistematika penulisan.

Bab II Tinjauan Teoritis

Pada bab ini diuraikan secara teoritis hal-hal yang berhubungan dengan penyelesaian masalah pada tugas akhir ini.

Bab III Perancangan

Pada bab ini akan dibahas proses enkripsi dan dekripsi data dengan menggunakan metode DES dan memberikan sebuah contoh.

Bab IV Implementasi

Dalam implementasi akan diberikan keterangan hardware dan software yang digunakan dan cara penggunakan perangkat lunak simulasi DES yang dibuat. Bab V Kesimpulan Dan Saran

(18)

BAB II

TINJAUAN TEORITIS

2.1. Definisi dan Terminologi 2.1.1. Kriptografi

Kriptografi (cryptographi) berasal dari Bahasa Yunani: “cryptos” artinya “secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Sehingga kriptografi berarti “secret writing” (tulisan rahasia). Jadi kriptografi didefinisikan sebagai ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya kebentuk yang tidak dapat dimengerti lagi maknanya.

Kata “seni” dalam definisi tersebut berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kroptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia, pesan tersebut mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan.

Definisi di atas mungkin cocok pada masa lalu dimana kriptografi digunakan untuk keamanan komunikasi penting seperti komunikasi di kalangan militer, diplomat dan mata-mata. Namun saat ini kriptografi lebih dari sekedar privacy, tapi juga untuk tujuan data integrasi, authentication, dan non-repudiation.

(19)

pembanding antara kriptografi pada masa lalu dan kriptografi masa sekarang. Dewasa ini kriptografi berkembang menjadi sebuah disiplin ilmu sendiri karena teknik-teknik kriptografi dapat diformulasikan secara matematika sehingga menjadi sebuah metode yang formal.

2.1.2. Plainteks dan Cipherteks

Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain dari pesan adalah plainteks (plaintext) atau teks jelas (cleartext). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran telekomunikasi, dll) atau yang disimpan di dalam media perekam (kertas, storage, dll). Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra (image), suara, bunyi (audio), video atau berkas biner lainnya.

Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan dapat disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks harus dapat ditransformasikan kembali menjadi plainteks semula agar pesan yang diterima bisa dibaca.

2.1.3. Pengirim dan Penerima

(20)

Alice berkomunikasi dengan di Budi), sedangkan di dalam jaringan komputer, mesin (komputer) berkomunikasi dengan mesin (contoh: mesin ATM berkomunikasi dengan komputer server di Bank).

Pengirim tentu menginginkan pesannya dapat dikirim dengan aman yaitu dia yakin bahwa pihak lain tidak dapat membaca isi pesan yang dia kirim. Solusinya adalah dengan cara menyandikan pesan menjadi cipherteks.

2.1.4. Enkripsi dan Dekripsi

Proses penyandian plainteks menjadi cipherteks disebut enkripsi (encryption) atau

enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks semula

dinamakan dekripsi (decryption) atau deciphering. Enkripsi dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun pada pesan yang tersimpan.

2.1.5. Cipher dan Kunci

Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan

deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi.

Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering. Konsep matematika yang mendasari algoritma kriptografi adalah relasi antar dua buah himpunan yaitu himpunan yang berisi elemen-element plainteks dan himpunan yang berisikan cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara dua himpunan tersebut. Misalnya P mewakili plaintels dan C menyatakan cipherteks maka fungsi enkripsi E memetakan P ke C,

(21)

Dan fungsi dekripsi D memetakan C ke P,

D(C) = P

Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan awal, maka persamaan berikut harus benar,

D(E(P)) = P

Keamanan algoritma kriptografi sering diukur dari banyaknya kerja (word) yang dibutuhkan untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Kerja ini dapat diekivalenkan dengan waktu, memori, uang dan lain-lain. Semakin banyak kerja yang diperlukan berarti juga semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma kriptografi tersebut, yang berarti semakin aman digunakan untuk menyandikan pesan.

Jika keamanan kriptografi ditentukan dengan menjaga kerahasiaan algoritmanya, maka algoritma kriptografinya dinamakan algoritma restricted, dimana algoritma

restricted ini mempunyai sejarah tersendiri di dalam kriptografi. Algoritma restricted

biasanya digunakan oleh sekelompok orang untuk bertukar pesan satu sama yang lain. Mereka membuat suatu algoritma enkripsi dan algoritma enkripsi tersebut hanya diketahui oleh anggota kelompok itu saja. Tetapi algoritma restricted tidak cocok lagi saat ini, sebab setiap kali ada anggota kelompok keluar, maka algoritma kriptografi harus diganti lagi.

(22)

deciphering. Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan

kunci K maka fungsi enkripsi dapat ditulis sebagai: EK(P) = C dan fungsi dekripsi dapat ditulis sebagai:

DK(C) = P Dan kedua fungsi ini memenuhi:

DK(EK(P)) = P

(23)

Gambar 2.1.(a) Skema enkripsi dan dekripsi, (b) Contoh ilustrasi enkripsi dan deskripsi pesan

2.1.6. Sistem Kriptografi

Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen saja.

2.1.7. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak-banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks.

2.1.8. Kriptanalisis dan Kriptologi

(24)

2.2. Tujuan Kriptograpi

Kriptografi bertujuan untuk memberikan layanan keamanan sebagai berikut: 1. Kerahasiaan (confidentiality), adalah layanan yang bertujuan untuk menjaga agar

pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Didalam kriptografi, layanan ini direalisasikan dengan menyandikan pesan menjadi cipherteks.

2. Integritas data (data integrity), adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda tangan digital (digital

signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim

adalah asli.

(25)

4. Nirpenyangkalan (non-repudiation), adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Sebagai contoh misalnya pengirim pesan memberi otoritas kepada penerima pesan untuk melakukan pembelian, namun ia menyangkal telah memberikan otoritas tersebut.

2.3. Jenis-Jenis Kriptografi

Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi dua, yaitu:

1. Kriptografi kunci simetri (symmantric key cryptography) 2. Kriptografi kunci asimetri (asymmetric key cryptography)

2.3.1. Kriptografi Kunci Simetri

Pada sistem kriptografi kunci simetri, kunci untuk enkripsi sama dengan kunci untuk dekripsi, oleh karena itu dinamakan kriptografi kunci simetri atau kriptografi simetri. Istilah lain untuk kriptografi simetri adalah kriptografi kunci privat (private key

cryptographi), kriptografi kunci rahasia (secret key cryptographi), atau kriptografi

(26)

simetri. Di sisi lain, ada puluhan algoritma kriptografi modern yang termasuk ke dalam sistem kriptografi simetri, diantaranya adalah DES (Data Encryption Standard), Blowfish, Twifish, Triple-DES, IDEA, Serpent dan yang terbaru adalah AES (Advanced

Encryption Standard).

Secara umum, cipher yang termasuk ke dalam kriptografi simetri beroperasi dalam mode bit dan dapat dikelompokkan dalam dua kategori, yaitu:

1. Cipher blok (block cipher)

Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blik bit yang panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memperlakukan 8 karakter setiap kali enkripsi (1 karakter sama dengan 8 bit dalam pengkodean ASCII). Contoh criptografi yang menggunakan metode ini adalah DES, TripleDES, IDEA, AES, dan lain-lain. 2. Cipher aliran (stream cipher)

Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan bit per bit atau byte per byte. Contoh kriptografi yang menggunakan metode stream cipher adalah RC4 (Ron’s Code 4), A5 dan lain-lain.

(27)

penerima pesan harus memiliki kunci yang sama, sehingga pengirim pesan harus mencari cara yang aman untuk memberitahukan kunci kepada penerima pesan.

2.3.1.1. Block Cipher

Pada block cipher, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang yang sama. Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci (yang ukurannya sama dengan ukuran plainteks). Algoritma enkripsi menghasilkan blok cipher yang berukuran sama dengan blok plainteks. Dekripsi dilakukan dengan cara yang sama seperti enkripsi. Misalnya blok plainteks (P) yang ukurannya n bit dinyatakan sebagai vektor

P = (p1,p2,,…,pn)

yang dalam hal ini pi adalah 0 atau 1 untuk i = 1,2,3,…n, dan blok cipherteks ( C ) adalah C = (c1,c2,,…cn)

yang dalam hal ini ci adalah 0 atau 1 untuk i = 1,2,…,n. Bila plainteks dibagi menjadi m buah blok, barisan blok-blok plainteks dinyatakan sebagai (P1,P2,…,Pm). Untuk setiap blok plainteks Pi, bit-bit penyusunnya dapat dinyatakan sebagai vektor

Enkripsi EK(P) = C

Dekripsi DK (C) = P Kunci privat, K Kunci privat, K

Plainteks, P Plainteks, P

Gambar 2.2. Skema kriptografi kunci simetri. Kunci enkripsi sama dengan kunci dekripsi yaitu K

(28)

Pi = (pi1,pi2,…pin) Enkripsi dengan kunci K dinyatakan dengan persamaan

Ek(P) = C

dan dekripsi dengan kunci K dinyatakan dengan persamaan Dk( C ) = P

Fungsi E haruslah fungsi yang berkoresponden satu ke satu, sehingga E-1 = D

2.3.1.2. Stream Cipher

Stream cipher membangkitkan plainteks menjadi cipherteks bit per bit (satu bit setiap kali transformasi) atau byte per byte (1 karakter = 1 byte), stream cipher yang memproses data byte per byte adalah vegenere cipher atau one time pad chiper. Nama lain untuk stream cipher adalah cipher status sebab enkripsi setiap bit bergantung pada saat ini(current state).

Stream cipher pertama kali diperkenalkan oleh Vernam melalui algoritmanya yang dikenal dengan nama Vernam cipher. Vernam cipher diadopsi dari one time pad cipher, yang dalam hal ini karakter diganti dengan bit (0 atau 1). Cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci,

Ci = (pi + ki) mod 2 yang dalam hal ini,

(29)

Plainteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit cipherteks dengan satu bit kunci:

Pi = (ci + ki) mod 2

Oleh karena itu kita dapat menyatakan bahwa stream cipher merupakan aproksimasi dari

unbreakable cipher, yaitu one time pad cipher.

Mengingat operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator XOR, maka persamaan diatas dapat ditulis sebagai

Ci = pi ⊕ ki Dan proses deskripsi menggunakan persamaan

Pi = ci ⊕ ki

Keamanan sistem stream cipher bergantung seluruhnya pada pembangkit aliran kunci. Jika pembangkit mengeluarkan aliran kunci yang seluruhnya nol maka cipheteks sama dengan plainteks, dan proses enkripsi menjadi tidak berarti. Jika pembangkit mengeluarkan aliran kunci dengan pola 16 bit yang berulang, maka algoritma enkripsinya menjadi sama seperti enkripsi dengan XOR sederhana yang memiliki tingkat keamanan yang tidak berarti. Jika pembangkit mengeluarkan aliran kunci yang benar-benar acak (truly random), maka algoritma enkripsinya sama dengan one time pad cipher dengan tingkat keamanan sempurna. Pada kasus ini, aliran kunci sama panjangnya dengan panjang plainteks, dan mendapatkan stream cipher sebagai unbreakable cipher. Jadi, tingkat keamanan cipher aliran terletak antara algoritma XOR sederhana dengan one time

pad. Semakin acak keluaran yang dihasilkan oleh pembangkit aliran kunci, semakin sulit

(30)

2.3.2. Kriptografi Kunci Asimetri

Jika kunci untuk enkripsi tidak sama dengan kunci untuk dekripsi, maka kriptografinya dinamakan kriptografi kunci asimetri atau kriptografi asimetri. Nama lainnya adalah kriptografi kunci publik (public key cryptographi), sebab kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan. Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan kunci publik. Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan yang dapat mendekripsikan pesan karena hanya dia yang mengetahui kunci privatnya sendiri.

Keuntungan kriptografi kunci publik ada dua. Pertama tidak ada kebutuhan untuk mendistribusikan kunci privat sebagaimana pada kriptografi simetri. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirimkan pesan. Perhatikan bahwa saluran untuk mengirim pesan umumnya tidak aman. Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi secara rahasia dengan banyak orang, tidak perlu kunci rahasia sebayak jumlah orang tersebut, cukup membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk mengenkripsikan pesan dan kunci privat bagi penerima pesan untuk mendeskripsikan pesan. Berbeda dengan kriptografi kunci simetri dimana jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak untuk berkorespondensi Contoh algoritma kriptografi kunci publik diantaranya RSA, Elgamal, DSA, dan lain sebagainya.

(31)

Konsep kriptografi kunci asimetri sederhana dan elegan, tetapi mempunyai konsekuensi penggunaan yang hebat. Seperti yang telah dijelaskan pada bagian awal, pada kriptografi kunci publik, setiap pengguna memiliki sepasang kunci, satu kunci untuk enkripsi dan satu kunci untuk dekripsi. Kunci untuk enkripsi diumumkan kepada publik sehingga dinamakan dengan kunci publik dan disimbolkan dengan e. Kunci untuk dekripsi bersifat rahasia sehingga dinamakan dengan kunci privat dan disimbolkan dengan d.

Misalnya E adalah fungsi enkripsi dan D adalah fungsi dekripsi dan e dan d adalah pasangan kunci untuk enkripsi dan dekripsi, sehingga

Ee(m) = c dan Dd(c) = m

untuk suatu plainteks m dan cipherteks c. Kedua persamaan ini menyiratkan bahwa dengan mengetahui e dan c, maka secara komputasi hampir tidak mungkin menemukan m. Asumsi lainnya, dengan mengetahui e secara komputasi hampir tidak mungkin menurunkan d.

Enkripsi Ee(m) = c

Dekripsi Dd (c) = m Kunci publik, e Kunci privat, d

Plainteks, m Plainteks, m

Gambar 2.3. Skema kriptografi kunci asimetri. Kunci enkripsi (e) tidak sama dengan kunci dekripsi (d).

(32)

Konsep di atas menjadi penting bila kriptografi kunci publik digunakan untuk mengamankan pertukaran pesan dari dua entitas yang berkomunikasi. Misalkan Mery berkomunikasi dengan Toni. Toni memilih pasangan kunci (e,d). Toni mengirimkan kunci enkripsi e (kunci publik) kepada Mery melalui sembarang saluran komunikasi tetapi tetap menjaga kerahasiaan kunci dekripsi d (kunci privat). Kemudian Mery ingin mengirim pesan m kepada Toni. Mery mengenkripsi pesan m dengan menggunakan kunci publik Toni, untuk mendapatkan c = Ee(m), lalu mengirimkan c melalui saluran komunikasi. Toni mendekripsikan cipherteks c dengan menggunakan kunci privatnya untuk memperoleh m = Dd( c).

2.3.3. Perbandingan Kriptografi Kunci Simetri dan Kriptografi Kunci Asimetri Baik kriptografi kunci simetri maupun kunci asimetri, keduanya mempunyai kelebihan dan kelemahan masing-masing

Kelebihan kriptografi kunci simetri

1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat.

2. Ukuran kunci simetri relatif pendek. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak.

3. Algoritma kunci simetri dapat disusun untuk menghasilakan cipher yang lebih kuat.

4. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.

(33)

1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini.

2. Kunci harus sering diubah, mungkin setiap sesi komunikasi. Kelebihan kriptografi kunci asimetri

1. Hanya kunci privat yang perlu dijaga kerahasiaanya oleh setiap entitas yang berkomunikasi (tetapi otentikasi kunci public harus tetap terjamin). Tidak ada kebutuhan untuk mengirim kunci privat sebagaimana kriptografi kunci simetri. 2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode

waktun yang panjang.

3. Dapat digunakan untuk mengamankan pengiriman kunci simetri

4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tandatangan digital pada pesan.

Kelemahan kriptografi kunci asimetri

1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem kriptografi simetri, karena enkripsi dan dekripsi menggunakan bilangna yang besar dan melibatkan operasi perpangkatan yang besar.

2. Ukuran cipherteks lebih besar daripada plainteks.

3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.

4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim.

(34)

Karena kriptografi kunci publik mempunyai kelemahan dari segi waktu komputasi dan ukuran cipherteks dibandingkan dengan kriptografi kunci simetri, maka hal ini mempunyai implikasi dalam praktek dan penggunaan.

Kebanyakan sistem keamanan menggunakan gabungan kriptografi kunci simetri dan kriptografi kunci publik (hybrid cryptosystem). Pada sistem hibrid ini enkripsi/dekripsi pesan menggunakan kriptografi kunci simetri, sedangkan kunci simetri dienkripsi/dekripsi dengan menggunakan kunci publik. Kunci simetri (yang disebut juga kunci sesi) dibangkitkan oleh salah satu pihak dan mengenkripsi pesan dengan kunci tersebut. Selanjutnya kunci sesi dienkripsikan dengan kunci publik penerima lalu dikirim bersama-sama dengan pesan yang sudah dienkripsi. Penerima mula-mula mendekripsikan kunci sesi dengan kunci privatnya, lalu mendekripsikan pasan dengan kunci sesi tersebut.

2.4. Serangan Terhadap Kriptografi

Tugas utama dari kriptografi adalah menjaga kerahasiaan plainteks maupun kunci ataupun keduanya dari penyadap. Penyadap berusaha mendapatkan data yang digunakan untuk kegiatan kriptanalisis. Penyadap bisa juga disebut sebagai seorang kriptanalis. Istilah lain untuk pihak lawan adalah penyusup pesan (intruder), penyerang (attacker), musuh (enemy, adversaries), atau pencegat (interceptor).

Ada beberapa jenis serangan yang ditujukan terhadap sistem kriptografi. Yang dimaksud dengan serangan (attack) adalah setiap usaha (attempt) atau percobaan yang dilakukan oleh kriptanalis untuk menemukan kunci atau plainteks dari cipherteksnya.

(35)

akan digunakan. Kriptanalis berusaha menemukan kelemahan kunci dan mengungkapkan plainteks.

Dalam membahas serangan terhadap kriptografi, selalu mengasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan, sehingga satu-satunya keamanan sistem kriptografi terletak sepenuhnya pada kunci. Hal ini didasarkan pada prinsip Kerckhoff (1883) yang berbunyi “Semua algoritma kriptografi harus publik;

hanya kunci yang rahasia”.

Dengan kata lain, kriptanalis mengetahui algoritma enkripsi dan dekripsi secara detil. Merahasiakan algoritma kriptografi bukan solusi yang praktis, sebab setiap kali algoritma berhasil diketahui lawan, maka kriptografer harus membuat algoritma baru. Dengan membuat algoritma menjadi publik, maka cukup kunci saja yang dirahasiakan. Jika kunci berhasil dicuri, maka kunci baru dibangkitkan tanpa harus mengganti algoritmanya. Jadi tidak mengherankan kalau semua algoritma kriptografi telah dipublikasikan sehingga siapapun dapat mempelajarinya.

(36)

Karena keamanan sistem secara eksklusif ditentukan oleh kunci, maka panjang kunci menentukan keamanan sistem. Semakin panjang kunci, maka jumlah kemungkinan diterka semakin besar. Kunci sepanjang 32 bit berarti memiliki kemungkinan diterka sebanyak 232 = 4,3 x 109 buah terkaan. Semakin panjang kunci, maka factor kerja (work

factor) untuk menemukan kunci semakin besar.

2.4.1. Keamanan Algoritma Kriptografi

Lars Knudsen mengelompokkan hasil kriptanalisis ke dalam beberapa kategori berdasarkan jumlah dan kualitas informasi yang berhasil ditemukan, yaitu:

1. Pemecahan total (total breack), kriptanalis menemukan kunci K, sehingga dekripsi Dk(C) = P.

2. Deduks i global (global deduction), kriptanalis menemukan algoritma alternatif, A, yang ekivalen dengan Dk(C) tetapi tidak mengetahui kunci K.

3. Deduksi Lokal (instance/local deduction), kriptanalis menemukan plainteks dan cipherteks yang disadap.

4. Deduksi informasi (information deduction), kriptanalis menemukan beberapa informasi prihal kunci atau plainterks. Misalnya kriptanalis mengetahui beberapa bit kunci, kriptanalis mengetahui bahasa yang digunakan untuk menulis plainteks, kriptanalis mengetahui format plainteks, dan sebagainya.

(37)

sebanyak berapapun yang dimiliki kriptanalis tidak memberikan informasi yang cukup untuk dideduksi plainteks yang berkirespondensi dengan cipherteks tersebut.

Sebaliknya, sebuah algoritma kriptografi dikatakan aman secara komputasi (computationally secure) bila memenuhi kriteria berikut:

1. Biaya untuk memecahkan cipherteks melampaui nilai informasi yang terkandung di dalam cipherteks tersebut.

2. Waktu yang diperlukan untuk memecahkan cipherteks melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya.

2.4.2. Jenis-jenis Serangan Kriptografi

Ada beberapa jenis serangan yang mungkin dilakukan oleh pemecah code (criptanalis), dengan asumsi algoritma enkripsi telah dikenal, yaitu

1. Ciphertext only attack,

Ini adalah serangan yang paling umum namun paling sulit karena informasi yang tersedia hanyalah cipherteks saja. Kripatanalis memiliki beberapa cipherteks dari beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Tugas kriptanalis adalah menemukan plainteks sebanyak mungkin dari cipherteks tersebut atau menemukan kunci yang digunakan untuk mendekripsikan cipherteks tersebut. Secara formal hal ini diformulasikan sebagai berikut:

Diberikan: C1 = Ek(P1), C2 = Ek(P2),…,Ci = Ek(Pi)

Deduksi: P1, P2,…,Pi atau k untuk mendapatkan Pi+1 dari Ci+1 = Ek(Pi+1)

(38)

menggunakan teknik analisis frekuensi, membuat terkaan berdasarkan informasi yang diketahui (misalnya bahasa yang digunakan untuk menulis plainteks), dan sebagainya.

2. Known plaintext attack

Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden. Secara formal hal ini diformulasikan sebagai berikut:

Diberikan: P1,C1 = Ek(P1); P2,C2 = Ek(P2); …; Pi,Ci = Ek(Pi) Deduksi: k untuk mendapatkan Pi+1 dari Ci+1 = Ek(Pi+1)

Plainteks mungkin diperoleh dengan mempelajari karakteristik pesan. Beberapa pesan yang formatnya terstruktur membuka peluang kepada kriptanalis untuk menerka plainteks dari cipherteks yang bersesuaian. Misalnya surat-surat resmi (seperti surat diplomatik) selalu dimulai dengan kata “Dengan Hormat” , “Dear Sir”, dan sebagainya. Jika kriptanalis memperoleh cipherteks dari surat resmi, ia dapat menerka bahwa bahwa potongan cipherteks pada bagian awal surat berkoresponden dengan plainteks “Dengan hormat”. Contoh lain terdapat pada e-mail yang selalu dimulai dengan kata “From” dan “To”. Berkas-berkas yang dikodekan dengan format postscript juga selalu diawali dengan format yang sama sehingga peluang menerka plainteks lebih besar. Begitu juga pesan pengiriman uang secara elektronik yang mempunya format standard.

3. Chosen plainteks attack

(39)

plainteks-plainteks yang lebih mengarahkan penemuan kunci. Secara formal hal ini diformulasikan sebagau berikut:

Diberikan: P1, C1 = Ek(P1); P2, C2 = Ek(P2);…; Pi, Ci = Ek(Pi) dimana kriptanalis dapat memilih diantara P1,P2,…,Pi

Deduksi: k untuk mendapatkan Pi+1 dari Ci+1 = Ek(Pi+1)

Kasus khusus dari chosen plainteks attack adalah adaptive chosen plainteks attack. Misalnya kriptanalis memilih blok plainteks yang besar, lalu dienkripsikan, kemudian memilih blok lainnya yang lebih kecil berdasarkan hasil enkripsi sebelumnya, begitu seterusnya.

4. Chosen ciphertext attack

Ini adalah jenis serangan dimana criptanalis memilih cipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi. Jenis serangan ini biasanya dipakai pada sistem kriptografi. Secara formal hal ini diformulasikan sebagai berikut:

Diberikan: C1, P1 = Dk(C 1); C2, P2 = Dk(C2);…;Ci, Pi = Dk(Ci)

Deduksi: k yang mungkin diperlukan untuk mendekripsikan pesan pada waktu yang akan datang.

Kasus khusus dari serangan ini adalah adaptive chosen ciphertext attack. Misalnya kriptanalis memilih sejumlah cipherteks untuk didekripsikan, lalu berdasarkan hasil dekripsi ini kriptanalis memilh cipherteks berikutnya.

5. Chosen text attack

(40)

2.5. Data Encryption Standard (DES)

Data Encryption Standard (DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia. DES diadopsi oleh NIST (National Institue of Standard and Technology) sebagai standar pengolahan informasi Federal AS. Secara umum DES terbagi menjadi tiga kelompok, yaitu pemrosesan kunci, enkripsi data 64 bit, dan dekripsi data 64 bit yang mana satu kelompok saling berinteraksi satu dengan yang lainnya.

2.5.1. Sejarah DES

Pada akhir tahun 1960, IBM memulai suatu riset Lucifer proyek yang dipimpin oleh Horst Feistel untuk komputer kriptografi. Proyek ini berakhir pada tahun 1971 dan Lucifer yang pertama kali dikenal sebagai blok cipher pada pengoperasian pada blok 64 bit dan menggunakan ukuran kunci 128 bit. Setelah IBM mengembangkan suatu sistem enkripsi yang dikomersilkan, maka Lucifer disebut dengan DES (Data Encryption Standard), proyek ini dipimpin oleh Walter Tuchman, hasil dari riset ini merupakan versi dari Lucifer yang bersifat menentang pemecahan algoritma kriptografi.

Pada tahun 1973, National Burean of Standard (NBS), sekarang menjadi National Institute of Standard and Technology (NIST), mengeluarkan proposal cipher standar untuk nasional. IBM menyampaikan hasil risetnya tentang proyek DES dan mengajukan sebagai kandidat untuk cipher standar nasional. NBS meminta agar National Security Agency (NSA) untuk melakukan evaluasi keamanan algoritma dan menentukan apakah pantas menjadi standar pemerintahan. Pada bulan November 1976, DES dipilih sebagai standar yang dipakai pada pemerintahan dan authorize untuk menggunakan atas nama US Government Communication. Undang-undang atas penggunaan DES yaitu PUB 46 diterbitkan pada 15 Januari 1977.

(41)

pendek dan pada tahun 1998, 70 ribu PC di internet berhasil membobol satu kunci DES dalam tempo waktu 96 hari, tahun 1999 dalam tempo 22 hari. Dengan alasan tersebut, maka pada tahun 2001 NIST mengganti DES menjadi AES (Advanced Encryption Standard) sebagai standar nasional.

(42)

BAB III

PERANCANGAN

3.1. Pembahasan 3.1.1. Algoritma DES

DES termasuk ke dalam sistem kriptografi kunci simetri dan tergolong ke dalam cipher blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsi 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit.

Gambar 3.1. Skema global kriptografi DES IP

Enciphering

IP-1 16 kali

Blok plainteks

(43)

Keterangan skema global kriptografi DES di atas sebagai berikut:

1. Blok plainteks dipermutasikan dengan matriks permutasi awal (Initial

Permutation, IP).

2. Hasil permutasi awal kemudian dienchipering sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda.

3. Hasil enciphering kemudian dipermutasikan dengan matriks permutasi balikan (invers initial permutation, IP-1) menjadi blok cipherteks.

Di dalam proses enchipering, blok plainteks dibagi 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 dari fungsi f di-XOR-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)

(44)

IP

L0

L15 =R14

R1=L0⊕f(R0,K1)

R15=L14⊕ f(R14,K15) R0

R2=L1⊕ f(R1,K2)

R16=L15⊕ f(R15,K16) L16 =R15 L1 =R0

L2 =R1

Cipherteks

f

f

K16 K1

f K2

(45)

Gambar 3.2. Proses enkripsi kriptografi DES 3.1.2. 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.

Misalnya kunci eksternal (K) yang tersusun dari 64 bit seperti pada tabel 3.1. Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi kompresi (PC-1) pada tabel 3.2.

Tabel 3.1. Matriks kunci eksternal 64 bit

Bit ke:

B

yt

e k

e:

1 2 3 4 5 6 7 8

1 1 2 3 4 5 6 7 8

2 9 10 11 12 13 14 15 16

3 17 18 18 20 21 22 23 24 4 25 26 27 28 29 30 31 32 5 33 34 35 36 37 38 39 40 6 41 42 43 44 45 46 47 48 7 49 50 51 52 53 54 55 56 8 57 58 59 60 61 62 63 64

(46)

Tabel 3.2. Matriks Permutation Choice One (PC-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 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 dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing disimpan di dalam C0 dan D0:

Co: berisi bit-bit dari K pada posisi: 57, 47, 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:

(47)

Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit tergantung pada tiap putaran. Operasi pergeseran bersifat round shift. Jumlah pergeseran pada setiap putaran ditunjukkan pada tabel 3.3 sebagai berikut:

Tabel 3.3. Jumlah pergeseran bit pada setiap putaran

Iterasi Ke 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Pergeseran bit 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Misalnya (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 seperti pada tabel 3.4.

Tabel 3.4. Matriks Permutation Choice Two (PC-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

Dengan permutasi ini, kunci internal K1 diturunkan dari (Ci, Di) yang dalam hal ini merupakan penggabungan bit-bit Ci pada posisi:

(48)

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

(49)

Gambar 3.3. Proses pembangkitan kunci-kunci internal

3.1.3. Proses Enkripsi Data

Sebelum putaran pertama, terhadap blok plainteks pada tabel 3.5, dilakukan permutasi awal (initial permutation, IP). Tujuannya adalah mengacak plainteks sehingga

C16

D2

C0 D0

D1 C1

C2

D16

K1

K2

K16 Kunci eksternal

Left Shift Left Shift

Left Shift Left Shift

Left Shift Left Shift

Permutasi PC-2

Permutasi PC-2

(50)

urutan bit-bit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks initial permutation awal seperti pada tabel 3.6.

Tabel 3.5. Matriks Plainteks 64 bit

Bit ke:

B

yt

e k

e:

1 2 3 4 5 6 7 8

1 1 2 3 4 5 6 7 8

2 9 10 11 12 13 14 15 16

3 17 18 18 20 21 22 23 24 4 25 26 27 28 29 30 31 32 5 33 34 35 36 37 38 39 40 6 41 42 43 44 45 46 47 48 7 49 50 51 52 53 54 55 56 8 57 58 59 60 61 62 63 64

Tabel 3.6. Matriks initial permutation, IP

1 2 3 4 5 6 7 8

1 58 50 42 34 26 18 10 2

2 60 52 44 36 28 20 12 4

3 62 54 46 38 30 22 14 6

4 64 56 48 40 32 24 16 8

5 57 49 41 33 25 17 9 1

6 59 51 43 35 27 19 11 3

7 61 53 45 37 29 21 13 5

(51)

Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal. Setiap blok plainteks mengalami 16 kali perputaran enchipering. Secara matematis, satu putaran DES dinyatakan sebagai:

Li = Ri-1

Ri = Li-1 ⊕ f(Ri-1, Ki)

Diagram komputasi fungsi f diperlihatkan pada gambar 3.4.

Gambar 3.4. Diagram komputasi fungsi f Ri-1

E(Ri-1)

S8

K1

S1 Matriks Substitusi

E(Ri-1) K1 = A

B

Ekspansi menjadi 48 bit

48 bit

P(B) 32 bit

32 bit

32 bit

48 bit 48 bit

(52)

E adalah ekspansi yang memperluas blok Ri-1 yang panjangnya 32 bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi sebagai berikut:

Tabel 3.7. Matriks permutasi ekspansi

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 E(Ri-1) yang panjangnya 48 bit di-XOR-kan dengan K1 yang panjangnya 48 bit dan menghasilkan vektor A yang panjangnya 48 bit:

E(Ri-1) ⊕ K1 = A

Vektor A dikelompakkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan kotak-S (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. Kedelapan kotak-S tersebut adalah

(53)
(54)

Tabel 3.13. Tabel S6

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

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

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

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

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

Tabel 3.14. Tabel S7

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

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

1 13 0 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 0 5 9 2

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

Tabel 3.15. Tabel S8

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

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

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

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

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

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) sebagai berikut:

Tabel 3.16. Matriks permutasi, P

16 17 20 21

29 12 28 17

(55)

5 18 31 10

2 8 24 14

32 27 3 9

19 13 30 6

22 11 4 25

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

Ri = Li-1 ⊕ P(B)

Jadi, (Li, Ri ) = (Ri-1,Li-1 ⊕ P(B))

Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan, Proses permutasi menggunakan matriks permutasi awal balikan (inverse initial permutation, IP-1) sebagai berikut:

Tabel 3.17. Matriks invers initial permutation, IP-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

(56)

Proses dekripsi terhadap blok cipherteks 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

Li = Ri-1

Ri = Li-1 ⊕ f(Ri-1, K1)

Yang dalam hal ini (R16, L16) adalah blok masukan awal untuk deciphering. Blok (R16, L16) diperoleh dengan mempermutasikan cipherteks dengan matriks permutasi IP-1. Pra keluaran dari deciphering adalah (L0,R0). Dengan permutasi awal IP akan didapatkan kembali blok plainteks semula.

(57)

3.1.5. Contoh Enkripsi dan Dekripsi DES

Contoh algoritma DES adalah sebagai berikut: Diberikan plainteks 64 bit ( 8 karakter) : KOMPUTER dan kunci eksternal 64 bit (8 karakter) : PROGRAMA

Tabel 3.18. Tabel contoh plainteks

PLAINTEKS HEKSADESIMAL BINER

K 4B 01001011

O 4F 01001111

M 4D 01001101

P 50 01010000

U 55 01010101

T 54 01010100

E 45 01000101

R 52 01010010

Tabel 3.19. Tabel contoh kunci eksternal

KUNCI HEKSADESIMAL BINER

P 50 01010000

R 52 01010010

O 4F 01001111

G 47 01000111

R 52 01010010

(58)

3.1.5.1. Proses Pembangkitan Kunci Internal Kunci eksternal: PROGRAMA

 Ubah kunci eksternal menjadi bilangan biner:

01010000 01010010 01001111 01000111 01010010 01000001 01001101 01000001  Lakukan kompresi menggunakan matriks permutasi kompresi PC-1 :

10101100 00011001 00011010 10111010 01000101 00001000 10100101  Hasil permutasi kompresi PC-1 dibagi menjadi dua blok, yaitu C0 dan D0.

C0 = 10101100 00011001 00011010 1011 D0 = 10100100 01010000 10001010 0101

 Kedua blok digeser ke kiri sepanjang satu bit, dan menghasilkan C1 dan D1.

C1 = 01011000 00110010 00110101 0111 D1 = 01001000 10100001 00010100 1011

 Setelah melakukan pergeseran, C1 dan D1 digabungkan, dan menghasilkan (C1, D1).

01011000 00110010 00110101 01110100 10001010 00010001 01001011

M 4D 01001101

(59)

 Lakukan kompresi terhadap (C1, D1) dengan matriks permutasi kompresi PC-2 dan

menghasilkan K1.

K1 = 00110101 10000111 10001101 00010110 00111011 01001000

Dengan cara yang sama, pembentukan kunci internal lainnya dapat dilakukan, hanya jumlah pergeseran pada setiap putarannya yang berbeda, tergantung pada tabel 3.3, dan tabel 3.20 adalah hasil proses pembangkitan kunci internal secara lengkap.

Tabel 3.20. Hasil proses pembangkitan kunci internal

I Ci Di

0 10101100 00011001 00011010 1011 10100100 01010000 10001010 0101 1 01011000 00110010 00110101 0111 01001000 10100001 00010100 1011

K1 : 00110101 10000111 10001101 00010110 00111011 01001000

2 10110000 01100100 01101010 1110 10010001 01000010 00101001 0110

K2 : 10101010 00111101 10001000 01001100 00000100 00000111

3 11000001 10010001 10101011 1010 01000101 00001000 10100101 1010

K3 : 01011000 00101110 01101001 11001110 01000000 11001100

4 00000110 01000110 10101110 1011 00010100 00100010 10010110 1001

K4 : 11000001 11111100 00011000 00000000 11010011 11001001

5 00011001 00011010 10111010 1100 01010000 10001010 01011010 0100

K5 : 01000100 10101111 11000110 10010010 10010100 00100001

6 01100100 01101010 11101011 0000 01000010 00101001 01101001 0001

K6 : 01110010 11111100 00000011 11001010 00001111 00100000

7 10010001 10101011 10101100 0001 00001000 10100101 10100100 0101

K7 : 01101001 10100101 01100010 00011000 01101011 00011000

8 01000110 10101110 10110000 0110 00100010 10010110 10010001 0100

K8 : 11100000 11000100 10011111 01110001 01010000 00010000

(60)

K9 : 10001100 01010110 11100010 10001010 10001010 11010100

10 00110101 01110101 10000011 0010 00010100 10110100 10001010 0001

K10: 11110010 01011011 01101000 00010001 11000111 10010001

11 11010101 11010110 00001100 1000 01010010 11010010 00101000 0100

K11 : 10001000 11110011 01000001 00011011 00000100 00000001

12 01010111 01011000 00110010 0011 01001011 01001000 10100001 0001

K12 : 00000001 01011111 01011111 11001010 01100001 00000100

13 01011101 01100000 11001000 1101 00101101 00100010 10000100 0101

K13 : 01100101 01110001 11000001 00100000 01100011 10001100

14 01110101 10000011 00100011 0101 10110100 10001010 00010001 0100

K14 : 00010011 11001101 11100001 11110000 00010000 10000011

15 11010110 00001100 10001101 0101 11010110 00001100 10001101 0101

K15: 11011001 01100001 10010011 11000110 00000010 00101011

16 10101100 00011001 00011010 1011 10100100 01010000 10001010 0101

K16 : 00001111 01101010 00101110 00100001 11000101 10000010

3.1.5.2. Proses Enkripsi Data Plainteks: KOMPUTER

 Ubah plainteks ke dalam bilangan biner.

01001011 01001111 01001101 01010000 01010101 01010100 01000101 01010010  Lakukan pengacakan plainteks dengan matriks initial permutation (IP).

11111111 10111000 01110110 01010111 00000000 00000000 00000111 10000011

 Untuk putaran pertama, hasil initial permutasi (IP) dibagi menjadi dua blok, yaitu R0

(61)

R0 = 00000000 00000000 00000111 10000011 L0 = 11111111 10111000 01110110 01010111

 Ekspansi R0 dengan matriks ekspansi sehingga menghasilkan blok 48 bit.

E(R0) = 10000000 00000000 00000000 00000000 11111100 00000110

 XOR-kan E(R0) dengan K1.

E(R0 ) ⊕ K1 = 10110101 10000111 10001101 00010110 11000111 01001110

 Substitusikan (E(R0)⊕K1) ke dalam S-box sehingga menghasilkan blok 32 bit. S-box (E(R0)⊕K1) = 00011100 10000000 00101100 10000001

 S-box (E(R0)⊕K1) dipermutasikan dengan matrik permutasi (P). P(S-box (E(R0)⊕K1)) = 00010000 00001000 00001001 10011011

f(R0, K1) = P(S-box (E(R0)⊕K1))

 XOR-kan L0 dengan F(R0, K1) untuk mendapatkan R1.

L0 ⊕ f(R0, K1) = R1 = 11101111 10110000 01111111 11001100 L1 = Ri-1 = R0 = 00000000 00000000 00000111 10000011

Proses enkripsi putaran ke-2 sampai putaran ke-16 dapat dilakukan dengan cara yang sama seperti putaran pertama, sehingga menghasilkan Li dan Ri. dimana i = 2, 3,...,16. Hasil enkripsi 16 putaran dapat dilihat pada tabel 3.21 sampai tabel 3.36

Tabel 3.21. Hasil enkripsi putaran ke-1

Putaran ke-1

R0 00000000 00000000 00000111 10000011

(62)

E(R0 ) ⊕ K1 10110101 10000111 10001101 00010110 11000111 01001110 S-box (E(R0 ) ⊕ K1) 00011100 10000000 00101100 10000001

f(R0, K1) 00010000 00001000 00001001 10011011 L0 11111111 10111000 01110110 01010111 L0 ⊕ f(R0, K1) = R1 11101111 10110000 01111111 11001100

Tabel 3.22. Hasil enkripsi putaran ke-2

Putaran ke-2

R1 11101111 10110000 01111111 11001100

E(R1) 01110101 11111101 10100000 00111111 11111110 01011001 K2 10101010 00111101 10001000 01001100 00000100 00000111 E(R1 ) ⊕ K2 11011111 11000000 00101000 01110011 11111010 01011110 S-box (E(R1) ⊕ K2) 11100010 10101100 11101101 00010111

f(R1, K2) 01010011 10000110 10111011 11101100 L1 00000000 00000000 00000111 10000011 L1 ⊕ f(R1, K2) = R2 01010011 10000110 10111100 01101111

Tabel 3.23. Hasil enkripsi putaran ke-3

Putaran ke-3

R2 01010011 10000110 10111100 01101111

E(R2) 10101010 01111100 00001101 01011111 10000011 01011110 K3 01011000 00101110 01101001 11001110 01000000 11001100 E(R2 ) ⊕ K3 11110010 01010010 01100100 10010001 11000011 10010010 S-box (E(R2) ⊕ K3) 01011010 00111001 00010101 11011001

(63)

L2 ⊕ f(R2, K3) = R3 00000001 10101000 11010111 10000011 Tabel 3.24. Hasil enkripsi putaran ke-4

Putaran ke-4

R3 00000001 10101000 11010111 10000011

E(R3) 10000000 00111101 01010001 01101010 11111100 00000110 K4 11000001 11111100 00011000 00000000 11010011 11001001 E(R3 ) ⊕ K4 01000001 11000001 01001001 01101010 00101111 11001111 S-box (E(R3) ⊕ K4) 00110101 00000110 00001110 11000100

f(R3, K4) 00010000 01110000 01010010 00111011 L3 01010011 10000110 10111100 01101111 L3 ⊕ f(R3, K4) = R4 01000011 11110110 11101110 01010100 Tabel 3.25. Hasil enkripsi putaran ke-5

Putaran ke-5

R4 01000011 11110110 11101110 01010100

E(R4) 00100000 01111111 10101101 01110101 11000010 10101000 K5 01000100 10101111 11000110 10010010 10010100 00100001 E(R4 ) ⊕ K5 01100100 11010000 01101011 11100111 01010110 10001001 S-box (E(R4) ⊕ K5) 10011000 11010001 10100001 10101010

f(R4, K5) 10001101 10001011 00100101 10000011 L4 00000001 10101000 11010111 10000011 L4 ⊕ f(R4, K5) = R5 10001100 00100011 11110010 00000000 Tabel 3.26. Hasil enkripsi putaran ke-6

Putaran ke-6

R5 10001100 00100011 11110010 00000000

(64)

f(R5, K6) 00110011 11101010 10010000 11010111 L5 01000011 11110110 11101110 01010100 L5 ⊕ f(R5, K6) = R6 01110000 00011100 01111110 10000011 Tabel 3.27. Hasil enkripsi putaran ke-7

Putaran ke-7

R6 01110000 00011100 01111110 10000011

E(R6) 10111010 00000000 11111000 00111111 11010100 00000110 K7 01101001 10100101 01100010 00011000 01101011 00011000 E(R6 ) ⊕ K7 11010011 10100101 10011010 00100111 10111111 00011110 S-box (E(R6) ⊕ K7) 10010011 01111100 01000000 10010111

f(R6, K7) 01000110 10000111 01011000 01100111 L6 10001100 00100011 11110010 00000000 L6 ⊕ f(R6, K7) = R7 11001010 10100100 10101010 01100111

Tabel 3.28. Hasil enkripsi putaran ke-8

Putaran ke-8

R7 11001010 10100100 10101010 01100111

E(R7) 11100101 01010101 00001001 01010101 01000011 00001111 K8 11100000 11000100 10011111 01110001 01010000 00010000 E(R7 ) ⊕ K8 00000101 10010001 10010110 00100100 00010011 00011111 S-box (E(R7) ⊕ K8) 00000110 11100101 01001010 10000010

f(R7, K8) 11010000 00100111 00010001 00010101 L7 01110000 00011100 01111110 10000011 L7 ⊕ f(R7, K8) = R8 10100000 00111011 01101111 10010110 Tabel 3.29. Hasil enkripsi putaran ke-9

Putaran ke-9

R8 10100000 00111011 01101111 10010110

(65)

E(R8 ) ⊕ K9 11011100 01010111 00010100 00111111 01110110 01111001 S-box (E(R8) ⊕ K9) 11100100 00101000 00010111 00100011

f(R8, K9) 00100000 10100010 10101110 01011100 L8 11001010 10100100 10101010 01100111 L8 ⊕ f(R8, K9) = R9 11101010 00000110 00000100 00111011 Tabel 3.30. Hasil enkripsi putaran ke-10

Putaran ke-10

R9 11101010 00000110 00000100 00111011

E(R9) 11110101 01000000 00001100 00000000 10000001 11110111 K10 11110010 01011011 01101000 00010001 11000111 10010001 E(R9 ) ⊕ K10 11110010 01011011 01101000 00010001 11000111 10010001 S-box (E(R9) ⊕ K10) 00001011 10001001 01000011 00100001

f(R9, K10) 11000000 00101100 01101101 01000000 L9 10100000 00111011 01101111 10010110 L9 ⊕f(R9, K10) = R10 01100000 00010111 00000010 11010110 Tabel 3.31. Hasil enkripsi putaran ke-11

Putaran ke-11

R10 01100000 00010111 00000010 11010110

E(R10) 00110000 00000000 10101110 10000000 01010110 10101100 K11 10001000 11110011 01000001 00011011 00000100 00000001 E(R10 ) ⊕ K11 10111000 11110011 11101111 10011011 01010010 10101101 S-box (E(R10)⊕ K11) 10111110 10101000 10110001 00001000

f(R10, K11) 01101001 10001000 00100011 11010110 L10 11101010 00000110 00000100 00111011 L10⊕ f(R10, K11) = R11 10000011 10001110 00100111 11101101 Tabel 3.32. Hasil enkripsi putaran ke-12

Putaran ke-12

(66)

E(R11) 11000000 01111100 01011100 00010000 11111111 01011011 K12 00000001 01011111 01011111 11001010 01100001 00000100 E(R11 ) ⊕ K12 11000001 00100011 00000011 11011010 10011110 01011111 S-box (E(R11)⊕ K12) 11110111 11111000 01011001 11100010

f(R11, K12) 01110100 10010111 11100111 01010111 L11 01100000 00010111 00000010 11010110 L11⊕ f(R11, K12) = R12 00010100 10000000 11100101 10000001 Tabel 3.33. Hasil enkripsi putaran ke-13

Putaran ke-13

R12 00010100 10000000 11100101 10000001

E(R12) 10001010 10010100 00000001 01110000 10111100 00000010 K13 01100101 01110001 11000001 00100000 01100011 10001100 E(R12 ) ⊕ K13 11101111 11100101 11000000 01010000 11011111 10001110 S-box (E(R12)⊕ K13) 00001111 11100111 00111001 00100001

f(R12, K13) 11110000 01001001 01111101 10010100 L12 10000011 10001110 00100111 11101101 L12⊕ f(R12, K13) = R13 01110011 11000111 01011010 01111001 Tabel 3.34. Hasil enkripsi putaran ke-14

Putaran ke-14

R13 01110011 11000111 01011010 01111001

E(R13) 10111010 01111110 00001110 10101111 01000011 11110010 K14 00010011 11001101 11100001 11110000 00010000 10000011 E(R13 ) ⊕ K14 10101001 10110011 11101111 01011111 01010011 01110001 S-box (E(R13)⊕ K14) 01101001 10101000 10100001 00011111

(67)

Putaran ke-15

R14 00011111 10001010 00001110 01100101

E(R14) 10001111 11111100 01010100 00000101 11000011 00001010 K15 11011001 01100001 10010011 11000110 00000010 00101011 E(R14 ) ⊕ K15 01010110 10011101 11000111 11000011 11000001 00100001 S-box (E(R14)⊕ K15) 11000011 00110101 11111011 00100010

f(R14, K15) 11110101 10100110 11110100 10000100 L14 01110011 11000111 01011010 01111001 L14⊕ f(R14, K15) = R15 10000110 01100001 10101110 11111101 Tabel 3.36. Hasil enkripsi putaran ke-16

Putaran ke-16

R15 10000110 01100001 10101110 11111101

E(R15) 11000000 11000011 00000011 11010101 11010111 11111011 K16 00001111 01101010 00101110 00100001 11000101 10000010 E(R15 ) ⊕ K16 11001111 10101001 00101101 11110100 00010010 01111001 S-box (E(R15)⊕ K16) 10110011 01001101 01011010 01000011

f(R15, K16) 10110011 01001101 01011010 01000011 L15 00011111 10001010 00001110 01100101 L15⊕ f(R15, K16) = L16 11101111 00111101 01010100 00100111

Dari ke-16 putaran enkripsi diatas, dapat dibuat tabel blok Li dan Ri secara lengkap seperti pada tabel 3.37. Khusus untuk putaran ke-16

Gambar

Gambar 2.3. Skema kriptografi kunci asimetri. Kunci enkripsi  (e) tidak sama dengan kunci dekripsi (d)
Gambar 3.1. Skema global kriptografi  DES
Gambar 3.3. Proses pembangkitan kunci-kunci internal
Tabel 3.6. Matriks initial permutation, IP
+7

Referensi

Dokumen terkait

Dari hasil observasi dan evaluasi bahwa pelaksaaan model pembelajaran kooperatif type jigsaw sudah baik dan membuat siswa aktif namun pada proses

By reading this You Are A Spiritual Being Having A Human Experience By Bob Frissell, you could more than exactly what you receive from various other book You Are A Spiritual

Memberikan informasi tentang variabel-variabel apa saja yang dapat mempengaruhi niat pembelian ulang, sehingga perusahaan dapat menata ulang strategi untuk

Yang dimaksud dengan kegiatan kunjungan rumah adalah semua kegiatan yang dilakukan untuk tindakan lanjut kegiatan jenis pelayanan : penyakit dalam, kesehatan anak (Termasuk.

8 Posttest Lisan Menjelaskan bentuk badan hukum, ketetapan, prosedur, fungsi, Badan Hukum dalam pendirian Bisnis Home Care dengan benar Menjelaskan bentuk badan hukum,

Hasil penelitian menunjukkan bimbingan sosial efektif untuk mengembangkan perilaku asertif remaja, dibuktikan pada peningkatan skor 10 indikator yaitu: hormat

setelah mendapat penjelasan dari peneliti dan setelah saya memahami maksud serta tujuan penelitian, dengan ini menyatakan bersedia ikut berpartisipasi menjadi salah satu

Lagu yang diuji adalah Symphony No 9 dengan target batas nilai sebesar 2800, dan N Populasi , N Persilangan dan N Mutasi menggunakan nilai optimal dari hasil pengujian..