Selasa, 07 Juni 2016

IMPLEMENTASI ENKRIPSI DATA BERBASIS ALGORITMA DES



ALGORITMA DES
DES (Data Encryption Standard) merupakan nama dari sebuah algoritma untuk mengenkripsi data yang dikeluarkan oleh Federal Information Processing Standard (FIPS) 46 – 1 Amerika Serikat. Algoritma dasarnya dikembangkan oleh IBM, NSA, dan NBS yang berperan penting dalam pengembangan bagian akhir algoritmanya. DEA dan DES telah dipelajari secara ekstensif sejak publikasi pertamanya, dan diketahui sebagai algoritma simetris yang paling baik dan paling banyak digunakan di dunia.
            DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis chiperblock, DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit chiperteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal yang panjanganya 64 bit.
Algoritma DES terbagi menjadi 3 kelompok, antara lain : Pemrosesan kunci, enkripsi data 64 bit, dan dekripsi data 64 bit. Algoritma DES dirancang untuk menulis dan membaca berita blok data yang terdiri dari 64 bit di bawah kontrol kunci 64 bit. Dalam pembacaan berita harus dikerjakan dengan menggunakan kunci yang sama dengan waktu menulis berita, dengan penjadualan alamat kunci bit yang diubah sehingga proses membaca adalah kebalikan dari proses menulis.
Di dalam algoritma DES dijabarkan menjadi 2 bagian, yaitu penulisan pesan dan penguraian pesan. 64 bit dari blok input yang dienkripsi adalah subjek pertama dari permutasi yang disebut permutasi dengan inisial IP. Perhatikan tabel permutasi inisial IP.

Penguraian Pesan
Permutasi IP-1 menerapkan blok preoutput yang merupakan kebalikan dari permutasi dengan inisial IP. Adapun persamaan berikut ini (4) merupakan kelanjutan dari persamaan 1.
R’ = L
L’ = R(+) f(L’, K)

Akibatnya, penguraian pesan ini harus menerapkan algoritma yang sama pada waktu pesan ditulis. Dengan mengambil masing-masing iterasi dari perhitungan blok yang sama dari kunci bit K maka penguraian itu dilakukan. Dengan menggunakan notasi-notasi dari persamaan berikut ini menjelaskan kondisi berikut :
Rn-1 = Ln
Ln-1 = Rn (+) f(Ln, Kn)

Setelah adanya persamaan di atas, sekarang R16L16 adalah blok input dari permutasi dalam perhitungan penguraian dan L0 dan R0 adalah blok preoutput. Untuk penguraian perhitungan dengan R16L16 sebagai input permutasi. K16 digunakan dalam iterasi yang pertama, K15 sebagai yang kedua dan seterusnya sampai dengan K1 digunakan dalam iterasi ke-16.

ENKRIPSI DATA 64 BIT
Adapun algoritmanya adalah sebagai berikut :
·         Ambillah blok data sebanyak 64 bit tersebut. Apabila kita dalam mengambil blok data kurang dari 64 bit, maka perlu adanya penambahan supaya dalam penggunaannya sesuai dengan jumlah datanya.
·         Bentuklah permutasi awal (Initial Permutation, IP) pada blok data 64 bit tadi dengan memperhatikan permutasi berikut ini.
Initial Permutation
58 50 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 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

Blok data tersebut dan dibagi menjadi 2 bagian, yaitu 32 bit pertama disebut L[0] dan 32 bit kedua disebut R[0].
·         Ke 16 sub kunci dioperasikan dengan blok data, dimulai dengan j=1 dan terbagi menjadi cara-cara berikut ini :
·         R[j – 1] dikembangkan menjadi 48 bit menurut fungsi pemilihan ekspansi berikut :
Expansion (E)
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

Kemudian langkah berikutnya adalah : E (R[j – 1]) di XOR dengan
K[j].
-          Hasil E(R[j -1]) XOR K[j] dipecah menjadi delapan blok 6-bit. Kelompok bit 1 – 6 disebut B[1], bit 7 – 12 disebut B[2], dan seterusnya bit 43-48 disebut B[8].
-          Jumlah bit dikurangi dengan penukaran nilai-nilai yang ada dalam table S untuk setiap B[j]. Dimulai dengan j = 1, setiap nilai dalam tabel S memiliki 4 bit.

Adapun langkah-langkah dalam tahap ini adalah sebagai berikut :
-          Ambil bit ke 1 dan ke 6 dari B[j] bersama-sama menjadi nilai 2 bit, misalkan m, yang menunjukkan baris dalam tabel S[j].
-          Ambil bit ke 2 hingga 5 dari B[j] sebagai nilai 4 bit, misalkan n, yang menunjukkan kolom dalam S[j].
-          Hasil proses ini adalah S[j][m][n] untuk setiap B[j] sehingga iterasi yang diperlukan sebanyak 8 kali. Hasil ini sering disebut juga substitution box. Nantinya akan ada substitution box sebanyak 8 buah iterasi.

sumber:



 

Tidak ada komentar:

Posting Komentar