Minggu, 15 Januari 2017

PERMUTASI DES

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

       Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972.  Algoritma ini didasarkan pada algoritma LUCIFER yang dibuat oleh Horst Feistel dan telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat.

Pertama yang harus kita ketahui dari algoritma ini adalah Skema global yang ada pada algoritma DES, diuraikan sebagai berikut.



a. Blok plainteks dipermutasi dengan permutasi awal (IP, Initial Permutation).

b. Hasil permutasi awal kemudian dienciphering sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda dengan perhitungan Li  dan  Ri dengan 1 ≤ i ≤ 16.

c. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1) menjadi blok cipherteks.

Permutasi Awal (Initial Permutation)

Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (Initial Permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan-bit-bit di dalamnya berubah. Lihat pada gambar dibawah, Matriks pada Tabel (a) sebagai plainteks masukan, kemudian dilakukan pengacakan dengan menggunakan matriks permutasi awal Tabel (b):




Cara membaca tabel/matriks: dua entry ujung kiri atas (58 dan 50) artinya:
"letakkan  bit ke-58 ke posisi bit 1"
"letakkan bit ke-50 ke posisi bit 2", dst

Kemudian plainteks yang akan disandikan kemudian dibagi menjadi dua blok (ditunjukkan dengan warna yang berbeda pada Tabel (b)), yaitu blok atas menghasilkan  L0  dan blok bawah menghasilkan  R0  yang masingmasing lebarnya 4 byte (32-bit).

Pembangkitan Kunci Internal DES

Pada langkah ini 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 pada DES panjangnya 64-bit atau 8 karakter seperti dibawah.
                      

Dalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, lalu 56 bit ini dibagi menjadi 2 bagian, masing-masing nanjangnya 28 bit, yang disimpan di dalam  C0 ( dari tabel bagian gelap ) dan D0 ( dari tabel bagian putih ) .

Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua-bit bergantung pada tiap putaran. Jumlah pergeseran pada tiap putaran ditunjukkan pada tabel dibawah. Misalkan (Ci, Di) menyatakan penggabungan Ci dan Di. (Ci-1, Di-1) diperoleh dengan menggeser Ci dan Di satu atau dua-bit.

Putaran ke - iJumlah Pergeseran(Left Shift)             
11
21
32
42
52
62
72
82
91
102
112
122
132
142
152
161


Dengan permutasi ini, kunci internal Ki diturunkan dari (Ci, Di) yang dalam hal ini Ki merupakan panggabungan-bit-bit Ci pada sisi gelap tabel (f), dengan-bit-bit Di pada sisi putih tabel (f). Setiap kunci internal Ki mempunyai panjang 48-bit. Proses Pembangkitan kunci-kunci internal dapat dilakukan dengan mengikuti tabel berikut ini. Sesuai dengan C1-C16 dan D1-D16 maka K juga akan dihasilkan sampai K16.



Proses Enkripsi DES

Setiap putaran enkripsi DES secara matematis dinyatakan sebagai :

Untuk menemukan R1 sampai R16 kita harus melakukan langkah-langkah sebagai berikut.


Langkah pertama yaitu kita akan melakukan ekspansi terhadap Ri sesuai dengan tabel dibawah ini.
Fungsi ekspansi yang memperluas blok Ri 32-bit menjadi blok 48-bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi disamping.



Hasil ekpansi E(Ri) kemudian di-XOR-kan dengan Ki menghasilkan vektor A 48-bit.
Matriks A dikelompokkan menjadi 8 kelompok, masing-masing 6-bit, dan menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah 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 ditunjukkan pada tabel sebagai berikut.




 

Setelah itu hasil dari substitusi yang dibagi menjadi 8 kelompok tadi digabungkan kembali menjadi vektor B yang panjangnya 32-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) sesuai tabel berikut.

 
Bit-bit P(B) merupakan keluaran dari fungsi f.



                      Akhirnya, bit-bit P(B) di-XOR-kan dengan Li–1 untuk  
mendapatkan Ri

Permutasi Akhir (Invers Inisial Permutasi)

Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan. Setelah dilakukan proses dengan langkah-langkah diatas dan dihasilkan R16 dan L16. Selanjutnya bit-bit dari R16 dan L16 tersebut digabungkan sehingga memiliki panjang 64 bit. Permutasi menggunakan matriks permutasi awal balikan (IP-1 ) sebagai berikut.

Kemudian  bit-bit tersebut dibagi menjadi 2 dan dikelompokkan per 8 bit. Dari kelompok bit tersebut akan menghasilkan 8 urutan (berisi 8bit tadi) yang akan menjadi huruf maupun angka dari hasil enkripsi  setelah diterjemahkan dalam tabel ASCII.
 




LATIHAN 








 
SEMOGA BERMANFAAT :):):)
Categories:

2 komentar:

  1. Tolong bantu saya naikin penjualan otomatis robot mencari pembeli otomatis memasarkan produk Saya laris manis di pasaran di dunia internet media sosial otomatis

    BalasHapus