Pembangkit Kunci Internal Data Encryption Standard DES

2.4.2. Permutasi Awal Initial Permutation

Sebelum putaran pertama, terhadap blok plaintext dilakukan permutasi awal initial permutation atau IP. Tujuan permutasi awal adalah mengacak plaintext sehingga urutan bit-bit didalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi seperti pada Tabel 2.2. Tabel 2.2. Permutasi awal initial pemutation 29 21 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 55 30 24 16 8 57 49 41 33 25 17 9 32 59 51 43 35 27 19 11 3 61 53 45 37 58 50 13 5 63 1 47 39 31 23 15 7 Cara membaca Tabel 2.2. dua entry ujung kiri atas 29 dan 21 berarti: “pindahkan bit ke-29 ke posisi bit 1” “pindahkan bit ke-21 ke posisi bit 2”

2.4.3. Pembangkit Kunci Internal

Kunci internal dibutuhkan sebanyak 16 buah karena ada 16 putaran. Kunci tersebut yaitu K 1 , K 2 , ..., K 16 . Kunci-kunci internal ini dapat dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci ekternal panjangnya 64-bit atau 8 karakter. Misalkan kunci ekternal yang disusun dari 64-bit adalah K. Kunci eksternal ini menjadi masukkan untuk permutasi dengan menggunakan matrik permutasi kompresi PC-1 seperti pada Tabel 2.3. Tabel 2.3. Matrik permutasi kompresi 57 49 41 33 25 17 9 1 58 50 42 33 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 Dalam permutasi ini, tiap bit ke delapan parity bit 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 dua bagian, kiri dan kanan, yang masing-masing disimpan di dalam C dan D : Universitas Sumatera Utara C : berisi bit-bit dari K pada posisi 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36 D : berisi bit-bit dari K pada posisi 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4 Selanjutnya, ke dua bagian digeser ke kiri left shift sepanjang 1 satu atau 2dua bit tergantung pada setiap putaran. Operasi bergeser bersifat wripping atau round shift. Misalkan C i , D i menyatakan penggabungan C i dan D i . C i+1 , D i+1 diperoleh dengan menggeser Ci dan Di satu atau dua bit. Setelah pergeseran bit, C i , D i mengalami permutasi kompresi dengan menggunakan matriks PC-2, seperti pada Tabel 2.4. Tabel 2.4. Permutasi kompresi 2 14 7 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 K i diturunkan dari C i , D i yang dalam hal ini K i merupakan penggabungan bit-bit C i 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 D i 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 Ki tersebut dapat dilihat pada Gambar 2.7. Universitas Sumatera Utara Gambar 2.7. Proses pembangkitan kunci-kunci internal DES 2.4.4. Proses Enkripsi Proses enciphering terhadap blok plaintext dilakukan setelah permutasi awal. Setiap blok plaintext mengalami 16 kali putaran enciphering. Setiap putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan seperti rumus 2.3 dan rumus 2.4. Diagram komputasi fungsi f diperlihatkan pada Gambar 2.8. Universitas Sumatera Utara Gambar 2.8. Rincian komputasi fungsi ? E adalah fungsi ekspansi yang memperluas blok R i-1 yang panjangnya 32 bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi seperti pada Tabel 2.5. Tabel 2.5. Fungsi 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 ER i-1 , yang panjangnya 48 bit di-XOR-kan dengan K i yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48 bit: ER i - 1 XOR K i = A ............................................................................................ 2.5 Vektor A dikelompokan menjadi 8 kelompok, masing-masing 6 bit dan menjadi masukkan bagi proses subtitution. Proses subtitution dilakukan dengan menggunakan 8 delapan buah kotak-S S-box, S1 sampai S8. Setiap S-box menerima masukkan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6 bit pertama Universitas Sumatera Utara menggunakan S 1 , kelompok 6 bit ke dua menggunakan S 2 , dan seterusnya. Keluaran proses subtitution adalah vektor B yang panjangnya 48 bit. Vektor B menjadi masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses subtitution S-box. Permutasi dilakukan dengan menggunakan matriks permutasi P P-box seperti pada Tabel 2.6. Tabel 2.6. Matriks permutasi P 16 7 20 21 29 12 28 17 1 15 23 26 5 8 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 Bit-bit PB merupakan keluaran dari fungsi f. Akhirnya, bit-bit PB di-XOR kan dengan L i – 1 untuk mendapatkan R i . R i = L i – 1 XOR PB ............................................................................................ 2.6 Jadi, keluaran dari putaran ke-i adalah L i , R i =R i – 1 , L i – 1 XOR PB ........................................................................ 2.7 Skema perolehan Ri dapat dilihat pada Gambar 2.9. Gambar 2.9. Skema perolehan Ri 2.4.5. Permutasi Akhir Invers Initial Permutation Permutasi akhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan. Proses permutasi menggunakan matriks permutasi awal balikan invers initial permutation atau IP 1 seperti pada Tabel 2.7. Universitas Sumatera Utara Tabel 2.7. Matrik Permutasi Akhir 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

2.4.6. Proses Dekripsi

Dokumen yang terkait

Implementasi Algoritma Affine Cipher dan Algoritma Advanced Encryption Standard (AES) pada Aplikasi Short Message Service (SMS) Berbasis Android

6 135 102

Implementasi Algoritma Vernam Cipher dan Algoritma DES (Data Encryption Standard) pada Aplikasi Chatting Berbasis Android

2 9 85

Implementasi Kombinasi Algoritma Vigenere dan Algoritma Data Encryption Standard (DES) pada Aplikasi Short Message Service (SMS) Berbasis Windows Phone

0 0 13

Implementasi Kombinasi Algoritma Vigenere dan Algoritma Data Encryption Standard (DES) pada Aplikasi Short Message Service (SMS) Berbasis Windows Phone

0 0 6

Implementasi Kombinasi Algoritma Vigenere dan Algoritma Data Encryption Standard (DES) pada Aplikasi Short Message Service (SMS) Berbasis Windows Phone

0 0 18

Implementasi Kombinasi Algoritma Vigenere dan Algoritma Data Encryption Standard (DES) pada Aplikasi Short Message Service (SMS) Berbasis Windows Phone

0 1 1

Implementasi Kombinasi Algoritma Vigenere dan Algoritma Data Encryption Standard (DES) pada Aplikasi Short Message Service (SMS) Berbasis Windows Phone

0 0 20

Analisis Perbandingan Algoritma Advanced Encryption Standard Untuk Enkripsi Short Message Service (SMS) Pada Android

0 2 9

Implementasi Algoritma Affine Cipher dan Algoritma Advanced Encryption Standard (AES) pada Aplikasi Short Message Service (SMS) Berbasis Android

0 1 22

BAB II TINJAUAN PUSTAKA - Implementasi Algoritma Affine Cipher dan Algoritma Advanced Encryption Standard (AES) pada Aplikasi Short Message Service (SMS) Berbasis Android

0 0 18