DES ( Data Encryption Standard ) termasuk kedalam sistem kriptografi simetris dan tergolong jenis cipher blok , DES beroperasi pada ukuran blok 64-bit mengenkripsi 64-bit plaintext menjadi 64-bit ciphertext, dengan kunci internal 56-bit. kunci internal dibangkitkan dari kunci eksternal yang panjangnya 64-bit.
Skema Algoritme DES
- Blok plaintext dipermutasi dengan matriks permutasi awal (initial permutation atau IP)
- Hasil permutasi dienkrip sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda
- Hasil enkripsi dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1) menjadi blok ciphertext
Permutasi Awal
- Sebelum dienkrip, blok plaintext dipermutasi dengan matriks permutasi awal
- Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-bit di dalamnya berubah
- Matriks permutasi awal (IP) :
Pembangkit Kunci Internal
- Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, K1, K2, K3, .., K16.
- Kunci internal dibangkitkan dari kunci eksternal yang diberikan dari pengguna dan panjangnya 64-bit atau 8 karakter (8 byte).
- Gambar di bawah memperlihatkan proses pembangkitan kunci internal
- Kunci eksternal dipermutasi dengan matrik permutasi kompresi PC-1
- Matrik permutasi kompresi PC-1:
- Dalam permutasi ini, setiap bit ke-8 dari 8-byte diabaikan, sehingga hasil pemutasinya menjadi 56-bit (panjang kunci DES).
- 56-bit ini dibagi dua bagian kiri dan kanan, masing-masing panjangnya 28-bit
- Yang kiri diberi nama C0, kanan D0
- Kedua bagian C0 dan D0, dirotasi ke kiri sebanyak satu atau dua bit tergantung pada tiap putaran, sehingga diperoleh C1 dan D1
Putaran | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Rotasi | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
- Setelah dirotasi, C1 dan D1 digabung lalu dipermutasi dengan matrik permutasi kompresi PC-2.
- Setelah dipermutasi, diperoleh kunci internal K1 (48-bit)
- Lakukan berulang hingga memperoleh K2 hingga K16
- Bila jumlah pergeseran bit-bit dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28, yang sama dengan jumlah bit pada Ci dan Di. Karena itu, setelah putaran ke-16 akan didapatkan kembali C16= C0 dan D16= D0
Proses Enkripsi
- Plaintext yang sudah dilakukan dipermutasi awal, dibagi menjadi dua bagian, Kiri (L) dan Kanan (R) yang masing-masing panjangnya 32-bit. Kedua bagian ini masuk ke dalam 16 putaran DES.
- Secara matematis, satu putaran DES dinyatakan sebagai
Matriks Ekspansi
- Ri-1 (32-bit) diekspansi menjadi 48-bit
- Hasil ekspansi di–XOR dengan Ki dan menghasilkan vektor A (48-bit)
- Vektor A dikelompok menjadi 8 masing-masing berisi 6-bit
Diagram komputasi fungsi f
- Vektor A yang dibagi menjadi 8 bagian, merupakan masukan bagi proses substitusi.
- Proses substitusi dilakukan dengan menggunakan delapan buah kotak-S (S-box).
- Setiap kotak-S menerima masukan 6-bit (kelompok dari Vektor A) dan menghasilkan keluaran 4-bit. S1 menerima masukan dari A1, S2 menerima masukan dari A2, dst.
- Hasil keluaran 4-bit digabungkan menghasilkan B
- Keluaran proses substitusi (B) memiliki panjang 32-bit.
- Vektor B dipermutasi menggunakan matrik permutasi P(P-box)
- Bit P(B) merupakan keluaran dari fungsi f
- Bit P(B) di-XOR dengan Li-1 untuk mendapatkan Ri
- Pada langkah terakhir menggabungkan R16 dengan L16
- Hasil penggabungkan R16 dengan L16 dipermutasi dengan matriks Invers Initial Permutation(IP-1)
Sumber :
https://www.budiluhur.ac.id/