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