Makalah Pengertian Dan Sejarah Des (Data Encryption Standard)
DES (Data Encryption Standard)
DISUSUN
OLEH
M. DARNI KURNIAWAN IRAWAN
UIN MALANG
TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
2011/2012
DISUSUN
OLEH
M. DARNI KURNIAWAN IRAWAN
UIN MALANG
TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
2011/2012
Sejarah
DES atau Singkatan dari Data Encryption Standard merupakan algoritma penyandian yang diadopsi dan dibakukan oleh NBS (National Bureau Standard) yang sekarang menjadi NIST (National Institute of Standards and Technology) pada tahun 1977 sebagai FIPS 46 (Federal Information Processing Standard).
DES bermula dari hasil riset Tuchman Meyer yang diajukan sebagai kandidat Sandi Standard Nasional yang diusulkan oleh NBS. Konon katanya, algoritma yang dikembangkan oleh Tuchman Meyer ini merupakan algoritma terbaik dari semua kandidat Sandi Standard Nasional. Pada mulanya, algoritma yang sekarang disebut DES, mempunyai panjang kunci sandi 128 bit. Namun selama proses pengadopsian, NBS melibatkan NSA (National Security Agency), dan algoritma sandi ini mengalami pengurangan ukuran kunci sandi dari 128 bit menjadi 56 bit saja. Sebagian orang mungkin menduga bahwa pengurangan panjang kunci sandi ini merupakan ajuan NSA untuk melemahkan algoritma Tuchman Meyer alasannya motif politik tertentu. Entah itu untuk mempermudah penyadapan atau untuk melemahkan pengamanan informasi lawan politik. Mungkin NSA menginginkan algoritma Tuchman Meyer ini “cukup aman” untuk dipakai warga sipil, tetapi gampang dipecahkan oleh organisasi besar semisal NSA dengan peralatan canggihnya. Bila dibandingkan dengan performa komputer personal pada ketika itu, algoritma sandi dengan panjang kunci 56 bit sanggup dikatakan cukup kondusif bila dipakai oleh orang-orang “biasa”, tapi sanggup dengan gampang dipecahkan dengan peralatan canggih dan tentunya kepemilikan alat canggih ini hanya sanggup dijangkau oleh organisasi elit menyerupai NSA. Dengan tunjangan dana yang melimpah, pembuatan alat brute‐force DES bukanlah hal yang tidak mungkin pada ketika itu. Kini algoritma DES sudah lama dan keamanannya pun sudah tidak sanggup dipertanggungjawabkan lagi. Kini komputer personal pun sudah cukup untuk membobol algoritma DES, apalagi dengan adanya teknologi parallel computing dan internet yang berkembang pesat. DES telah secara resmi digantikan fungsinya oleh AES (Advanced Encryption Standard) dengan panjang kunci sandi 128, 192 dan 256 bit.
Kendatipun kita telah mengetahui bahwa algoritma AES sudah kuno dan tidak aman, tidak ada salahnya kalau kita mempelajari algoritma ini untuk tujuan hobi atau pendidikan. Perlahan tapi pasti, berguru dari algoritma yang sederhana dan perlahan‐lahan menuju algoritma lain yang lebih kompleks.
Algoritma
DES merupakan algoritma enkripsi blok simetris. DES dikatakan enkripsi blok alasannya pemrosesan data baik enkripsi maupun dekripsi, diimplementasikan per blok (dalam hal ini 8 byte). DES dikatakan enkripsi simetris alasannya algoritma yang dipakai untuk enkripsi relatif atau bahkan sama persis dengan algoritma yang dipakai dalam proses dekripsi. Proses enkripsi sanggup didefinisikan secara sederhana sebagai proses penterjemahan data “asli” yang “jelas” dan “kasat mata” yang sanggup dipahami maknanya.
DES atau Singkatan dari Data Encryption Standard merupakan algoritma penyandian yang diadopsi dan dibakukan oleh NBS (National Bureau Standard) yang sekarang menjadi NIST (National Institute of Standards and Technology) pada tahun 1977 sebagai FIPS 46 (Federal Information Processing Standard).
DES bermula dari hasil riset Tuchman Meyer yang diajukan sebagai kandidat Sandi Standard Nasional yang diusulkan oleh NBS. Konon katanya, algoritma yang dikembangkan oleh Tuchman Meyer ini merupakan algoritma terbaik dari semua kandidat Sandi Standard Nasional. Pada mulanya, algoritma yang sekarang disebut DES, mempunyai panjang kunci sandi 128 bit. Namun selama proses pengadopsian, NBS melibatkan NSA (National Security Agency), dan algoritma sandi ini mengalami pengurangan ukuran kunci sandi dari 128 bit menjadi 56 bit saja. Sebagian orang mungkin menduga bahwa pengurangan panjang kunci sandi ini merupakan ajuan NSA untuk melemahkan algoritma Tuchman Meyer alasannya motif politik tertentu. Entah itu untuk mempermudah penyadapan atau untuk melemahkan pengamanan informasi lawan politik. Mungkin NSA menginginkan algoritma Tuchman Meyer ini “cukup aman” untuk dipakai warga sipil, tetapi gampang dipecahkan oleh organisasi besar semisal NSA dengan peralatan canggihnya. Bila dibandingkan dengan performa komputer personal pada ketika itu, algoritma sandi dengan panjang kunci 56 bit sanggup dikatakan cukup kondusif bila dipakai oleh orang-orang “biasa”, tapi sanggup dengan gampang dipecahkan dengan peralatan canggih dan tentunya kepemilikan alat canggih ini hanya sanggup dijangkau oleh organisasi elit menyerupai NSA. Dengan tunjangan dana yang melimpah, pembuatan alat brute‐force DES bukanlah hal yang tidak mungkin pada ketika itu. Kini algoritma DES sudah lama dan keamanannya pun sudah tidak sanggup dipertanggungjawabkan lagi. Kini komputer personal pun sudah cukup untuk membobol algoritma DES, apalagi dengan adanya teknologi parallel computing dan internet yang berkembang pesat. DES telah secara resmi digantikan fungsinya oleh AES (Advanced Encryption Standard) dengan panjang kunci sandi 128, 192 dan 256 bit.
Kendatipun kita telah mengetahui bahwa algoritma AES sudah kuno dan tidak aman, tidak ada salahnya kalau kita mempelajari algoritma ini untuk tujuan hobi atau pendidikan. Perlahan tapi pasti, berguru dari algoritma yang sederhana dan perlahan‐lahan menuju algoritma lain yang lebih kompleks.
Algoritma
DES merupakan algoritma enkripsi blok simetris. DES dikatakan enkripsi blok alasannya pemrosesan data baik enkripsi maupun dekripsi, diimplementasikan per blok (dalam hal ini 8 byte). DES dikatakan enkripsi simetris alasannya algoritma yang dipakai untuk enkripsi relatif atau bahkan sama persis dengan algoritma yang dipakai dalam proses dekripsi. Proses enkripsi sanggup didefinisikan secara sederhana sebagai proses penterjemahan data “asli” yang “jelas” dan “kasat mata” yang sanggup dipahami maknanya.
secara pribadi menjadi data lain yang terlihat “buram” atau “acak” sehingga tidak sanggup dipahami secara langsung, sedemikian rupa sehingga makna informasi yang disembunyikan tidak lagi sanggup diketahui secara pribadi kecuali dengan mengembalikan informasi tersebut ke bentuk aslinya. Sedangkan proses dekripsi sanggup didefinisikan secara sederhana sebagai proses pengembalian bentuk data, dari data “buram” atau “acak” menjadi data “asli” yang “jelas” dan “kasat mata” yang sanggup dipahami maknanya. Algoritma enkripsi umumnya dilengkapi semacam kata sandi (password), untuk memvariasikan fungsi enkripsi tersebut. Data yang sama, kunci yang sama dan algoritma yang sama akan menghasilkan data enkripsi yang sama. Dalam algoritma penyandian DES, kunci yang dipakai dalam proses enkripsi dan dekripsi haruslah sama, semoga data sanggup dikembalikan ke bentuk aslinya. Bisa jadi, alasannya “kesamaan” kunci inilah DES juga dinamakan algoritma enkripsi simetris. Inti dari proses enkripsi yaitu penyembunyian data dengan mengaburkan data “asli” dan mengurangi keteraturan informasi, sehingga data tersebut tidak sanggup “dibaca” kecuali oleh pihak yang berhak. Berbagai algoritma enkripsi sengaja dibuat untuk melindungi informasi dari penyadapan, alasannya ada kemungkinan terjadinya penyadapan ketika data melewati media hantar (media hantar sanggup berupa suara, surat, email, kabel, kertas, frekwensi radio atau apapun itu). Seandainya penyadap sanggup menyadap semua informasi yang melalui media hantar, idealnya hasil sadapan tersebut hanya menghasilkan data “sampah” yang tidak berguna. Semua algoritma kriptografi diciptakan untuk mewujudkan kondisi ideal tersebut, tapi sayangya kondisi tersebut sangat sulit dicapai, alasannya selalu ada cara untuk membalikkan informasi sadapan ke bentuk aslinya.
Dalam DES, algoritma dekripsi tepatnya merupakan proses kebalikan (inverse) algoritma enkripsi. Dalam prakteknya proses pembalikan (proses dekripsi) ini diimplementasikan dengan membalikkan urutan sub kunci yang dipakai dalam proses enkripsi, selebihnya algoritma enkripsi dan dekripsi yaitu sama. Algoritma enkripsi DES bekerja dengan mengolah blok data 8 byte (64 bit) dengan blok kunci 8 byte (64 bit). Proses penyandian dalam DES diawali dengan fungsi pengacakan bit yang dinamai IP (Initial Permutation) kemudian fungsi inti DES yang diulang sebanyak 16 kali dan terakhir ditutup dengan fungsi pengacakan bit lain yang dikenal denagn nama IP‐1 (Inverse Initial Permutation). Pada sisi lain algoritma penjadwalan sub kunci akan menghasilkan 16 sub kunci secara berurutan dari parameter kunci yang diberikan untuk dipakai pada setiap putaran fungsi inti DES. Sub kunci pertama untuk putaran pertama, sub kunci kedua untuk putaran kedua dan seterusnya sampai putaran ke 16.
Perlu diingat, kendatipun slot kunci yang disediakan dipakai berukuran 8 byte (64 bit), ternyata pada faktanya ukuran kunci yang dipakai hanya sebanyak 56 bit saja, alasannya bit paling signifikan (MSB) dari setiap bit diabaikan. Kaprikornus bergotong-royong ukuran kunci DES yaitu 56 bit. Adapun Ilustrasi penyandian DES dalam diagram blok sanggup dilihat pada gambar di samping. Algoritma penjadwalan sub kunci dibuat dari pengacakan bit dan pemutaran kiri ruas kanan dan kiri kunci. Pertama kali, bit-bit kunci diacak dengan Permutation Choice 1 dan dibagi dua menjadi ruas kiri dan ruas kanan. Kedua ruas tersebut kemudian diputar kiri dan diacak kembali dengan Permutation Choice 2 untuk menghasilkan sub kunci. Jumlah pemutaran ke kiri ditentukan secara spesifik untuk setiap sub kunci.
Rinciannya yaitu sebagai berikut.
Untuk lebih lanjut, mari terlebih dahulu kita bahas detail algoritma penjadwalan sub kunci kemudian algoritma enkripsi dan terakhir algoritma dekripsi. Inti dari semua proses permutasi dalam DES yaitu pengacakan bit. Sebagai contoh, kalau masukan permutasi sebanyak n bit, maka akan ada sebanyak 2n kemungkinan masukan permutasi dan ada 2n kemungkinan hasil permutasi. Setiap satu kemungkinan masukan akan berpasangan dengan satu kemungkinan keluaran.
Sebelum proses penjadwalan kunci dimulai, kunci terlebih dahulu dipetakan menjadi matriks 8x8 dan diberi indeks. Dalam setiap byte, indeks paling kecil melambangkan LSB dan indeks paling besar melambangkan MSB. Sebagai contoh, indeks ke 1 melambangkan LSB byte pertama, index ke 8 melambangkan MSB byte pertama, indeks ke 9 melambangkan LSB byte kedua, indeks ke 16 melambangkan MSB byte kedua dan seterusnya sampai indeks ke 64 yang melambangkan MSB byte ke 8. Mari kita perhatikan referensi dibawah ini. Kunci = 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef
Setelah pemetaan, kesannya yaitu sebagai berikut.
Matriks Indeks Hasil Pemetaan
Pengacakan bit Permutation Choice‐1 akan mengolah 8 byte blok kunci menjadi 56 bit sub kunci yang siap diproses lebih lanjut. Untuk lebih mudahnya, proses pengacakan bit dilambangkan dengan pengacakan indeks bit yang bersangkutan. Berikut ini yaitu detail Permutation Choice 1.
Karena jumlah keluaran Permutation Choice 48 bit sementara masukannya 56 bit, dengan demikian ada 8 bit yang “dihilangkan”. Bit-bit yang tidak muncul dalam keluaran Permutation Choice 2 diwarnai abuabu. Selanjutnya, mari kita perjelas algoritma enkripsinya. Setelah melihat diagram blok secara keseluruhan proses enkripsi, ada tiga hal yang perlu digarisbawahi dan dibahas lebih lanjut yaitu, pertama IP (Initial Permutation), kedua detail fungsi F dan IP 1 (Inverse Initial Permutation).
Selama proses enkripsi, pertama data dipetakan dan diberi indeks dengan mekanisme sama persis menyerupai pemberian indeks pada penjadwalan kunci yang telah didiskusikan sebelumnya. Selanjutnya hasil pemetaan diacak dengan memakai Initial Permutation dengan rincian sebagai berikut
Masukan IP
Setelah data melewati proses Initial Permutation, data yang akan disandikan kemudian dibagi menjadi dua ruas, yaitu ruas kiri dan ruas kanan yang masIng-masing lebarnya 4 byte (32 bit). Pada setiap putaran, ruas kanan dan sub kunci yang bersangkutan diproses dalam fungsi F dan kesannya di XOR dengan ruas kiri ruas kanan dan kiri dipertukarkan. Proses ini diulang sebanyak 16 kali.
Pada putaran terakhir ruas kiri dan ruas kanan dipertukarkan kembali untuk menghilangkan pengaruh pertukaran pada putaran terakhir. Hasil ini kemudian diacak kembali dengan memakai IP 1 (Inverse Initial Permutation). XOR merupakan fungsi Boolean yang didefinisikan dengan table benaran berikut.
Initial Permutatrion dan Inverse Initial Permutation mempunyai aksara saling menetralkan. Dalam notasi matematika, IP−1(IP(A))= A. Inverse Initial Permutation didefinisikan sebagai berikut.
Fungsi F merupakan fungsi inti kompleks yang terdiri dari beberapa proses. Fungsi F mendapatkan dua parameter, yaitu sub kunci dan ruas kanan data yang akan dienkripsi. Berikut ini yaitu diagram blok detail fungsi F. Pada fungsi F, ruas kanan (32 bit) diacak sekaligus diperluas dengan permutasi E menjadi 48 bit. Hasil pengacakan tersebut kemudian di XOR dengan sub kunci yang telah ditetapkan dengan putaran yang bersangkutan. Hasil XOR kemudian dipecah menjadi 8 unit yang masing‐masing lebarnya 6 bit. Setiap unit tersebut kemudian disubstitusikan dalam SBOX S1 sampai S8. 6 bit paling kiri disubstitusikan ke dalam S1 dan 6 bit paling kanan disubstitusikan ke dalam S8. Hasil setiap substitusi kemudian digabungkan menjadi data selebar 48 bit yang kemudian diacak dan diperpendek dengan permutasi P menjadi 32 bit. Hasil permutasi P kemudian dinyatakan sebagai keluaran fungsi F yang nantinya akan di XOR kan dengan ruas kiri data yang akan dienkripsi.
Dalam DES, algoritma dekripsi tepatnya merupakan proses kebalikan (inverse) algoritma enkripsi. Dalam prakteknya proses pembalikan (proses dekripsi) ini diimplementasikan dengan membalikkan urutan sub kunci yang dipakai dalam proses enkripsi, selebihnya algoritma enkripsi dan dekripsi yaitu sama. Algoritma enkripsi DES bekerja dengan mengolah blok data 8 byte (64 bit) dengan blok kunci 8 byte (64 bit). Proses penyandian dalam DES diawali dengan fungsi pengacakan bit yang dinamai IP (Initial Permutation) kemudian fungsi inti DES yang diulang sebanyak 16 kali dan terakhir ditutup dengan fungsi pengacakan bit lain yang dikenal denagn nama IP‐1 (Inverse Initial Permutation). Pada sisi lain algoritma penjadwalan sub kunci akan menghasilkan 16 sub kunci secara berurutan dari parameter kunci yang diberikan untuk dipakai pada setiap putaran fungsi inti DES. Sub kunci pertama untuk putaran pertama, sub kunci kedua untuk putaran kedua dan seterusnya sampai putaran ke 16.
Perlu diingat, kendatipun slot kunci yang disediakan dipakai berukuran 8 byte (64 bit), ternyata pada faktanya ukuran kunci yang dipakai hanya sebanyak 56 bit saja, alasannya bit paling signifikan (MSB) dari setiap bit diabaikan. Kaprikornus bergotong-royong ukuran kunci DES yaitu 56 bit. Adapun Ilustrasi penyandian DES dalam diagram blok sanggup dilihat pada gambar di samping. Algoritma penjadwalan sub kunci dibuat dari pengacakan bit dan pemutaran kiri ruas kanan dan kiri kunci. Pertama kali, bit-bit kunci diacak dengan Permutation Choice 1 dan dibagi dua menjadi ruas kiri dan ruas kanan. Kedua ruas tersebut kemudian diputar kiri dan diacak kembali dengan Permutation Choice 2 untuk menghasilkan sub kunci. Jumlah pemutaran ke kiri ditentukan secara spesifik untuk setiap sub kunci.
Rinciannya yaitu sebagai berikut.
Untuk lebih lanjut, mari terlebih dahulu kita bahas detail algoritma penjadwalan sub kunci kemudian algoritma enkripsi dan terakhir algoritma dekripsi. Inti dari semua proses permutasi dalam DES yaitu pengacakan bit. Sebagai contoh, kalau masukan permutasi sebanyak n bit, maka akan ada sebanyak 2n kemungkinan masukan permutasi dan ada 2n kemungkinan hasil permutasi. Setiap satu kemungkinan masukan akan berpasangan dengan satu kemungkinan keluaran.
Sebelum proses penjadwalan kunci dimulai, kunci terlebih dahulu dipetakan menjadi matriks 8x8 dan diberi indeks. Dalam setiap byte, indeks paling kecil melambangkan LSB dan indeks paling besar melambangkan MSB. Sebagai contoh, indeks ke 1 melambangkan LSB byte pertama, index ke 8 melambangkan MSB byte pertama, indeks ke 9 melambangkan LSB byte kedua, indeks ke 16 melambangkan MSB byte kedua dan seterusnya sampai indeks ke 64 yang melambangkan MSB byte ke 8. Mari kita perhatikan referensi dibawah ini. Kunci = 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef
Setelah pemetaan, kesannya yaitu sebagai berikut.
Matriks Indeks Hasil Pemetaan
Pengacakan bit Permutation Choice‐1 akan mengolah 8 byte blok kunci menjadi 56 bit sub kunci yang siap diproses lebih lanjut. Untuk lebih mudahnya, proses pengacakan bit dilambangkan dengan pengacakan indeks bit yang bersangkutan. Berikut ini yaitu detail Permutation Choice 1.
Setelah kunci diacak dengan Permutation Choice 1, hasil pengacakan bit tersebut kemudian dibagi 2, yakni ruas kiri dan ruas kanan, masing masing berukuran 28 bit (ditandai dengan garis tebal pada hasil Permutation Choice 1). Selanjutnya kedua ruas tersebut kemudian mengalami pemutaran kiri sebanyak jumlah yang tertera pada tabel penjadwalan jumlah pemutaran yang telah kita bahas sebelumnya. Berikut ini yaitu ilustrasi pemutaran ke kiri sebanyak 1 kali (untuk ruas kiri atau ruas kanan kunci yang panjangnya 28 bit). Untuk pemutaran ke kiri dengan jumlah yang lebih besar, cukup mengulangi proses ini sebanyak yang diinginkan.
Setelah ruas kiri dan ruas kanan diputar kiri dengan jumlah tertentu, selanjutnya hasil pemutaran tersebut digabungkan kembali menjadi 56 bit dan diacak dengan Permutation Choice‐2 untuk menghasilkan sub kunci. Rincian Permutation Choice 2 yaitu sebagai berikut.Karena jumlah keluaran Permutation Choice 48 bit sementara masukannya 56 bit, dengan demikian ada 8 bit yang “dihilangkan”. Bit-bit yang tidak muncul dalam keluaran Permutation Choice 2 diwarnai abuabu. Selanjutnya, mari kita perjelas algoritma enkripsinya. Setelah melihat diagram blok secara keseluruhan proses enkripsi, ada tiga hal yang perlu digarisbawahi dan dibahas lebih lanjut yaitu, pertama IP (Initial Permutation), kedua detail fungsi F dan IP 1 (Inverse Initial Permutation).
Selama proses enkripsi, pertama data dipetakan dan diberi indeks dengan mekanisme sama persis menyerupai pemberian indeks pada penjadwalan kunci yang telah didiskusikan sebelumnya. Selanjutnya hasil pemetaan diacak dengan memakai Initial Permutation dengan rincian sebagai berikut
Masukan IP
Setelah data melewati proses Initial Permutation, data yang akan disandikan kemudian dibagi menjadi dua ruas, yaitu ruas kiri dan ruas kanan yang masIng-masing lebarnya 4 byte (32 bit). Pada setiap putaran, ruas kanan dan sub kunci yang bersangkutan diproses dalam fungsi F dan kesannya di XOR dengan ruas kiri ruas kanan dan kiri dipertukarkan. Proses ini diulang sebanyak 16 kali.
Pada putaran terakhir ruas kiri dan ruas kanan dipertukarkan kembali untuk menghilangkan pengaruh pertukaran pada putaran terakhir. Hasil ini kemudian diacak kembali dengan memakai IP 1 (Inverse Initial Permutation). XOR merupakan fungsi Boolean yang didefinisikan dengan table benaran berikut.
Initial Permutatrion dan Inverse Initial Permutation mempunyai aksara saling menetralkan. Dalam notasi matematika, IP−1(IP(A))= A. Inverse Initial Permutation didefinisikan sebagai berikut.
Fungsi F merupakan fungsi inti kompleks yang terdiri dari beberapa proses. Fungsi F mendapatkan dua parameter, yaitu sub kunci dan ruas kanan data yang akan dienkripsi. Berikut ini yaitu diagram blok detail fungsi F. Pada fungsi F, ruas kanan (32 bit) diacak sekaligus diperluas dengan permutasi E menjadi 48 bit. Hasil pengacakan tersebut kemudian di XOR dengan sub kunci yang telah ditetapkan dengan putaran yang bersangkutan. Hasil XOR kemudian dipecah menjadi 8 unit yang masing‐masing lebarnya 6 bit. Setiap unit tersebut kemudian disubstitusikan dalam SBOX S1 sampai S8. 6 bit paling kiri disubstitusikan ke dalam S1 dan 6 bit paling kanan disubstitusikan ke dalam S8. Hasil setiap substitusi kemudian digabungkan menjadi data selebar 48 bit yang kemudian diacak dan diperpendek dengan permutasi P menjadi 32 bit. Hasil permutasi P kemudian dinyatakan sebagai keluaran fungsi F yang nantinya akan di XOR kan dengan ruas kiri data yang akan dienkripsi.
Sekarang mari kita bahas detail fungsi F satu per satu. Pertama, permutasi E memetakan 32 bit masukan menjadi 48 bit keluaran. Karena lebar keluaran lebih besar dari lebar masukan, maka ada beberapa bit masukan yang digandakan untuk mengisi kekosongan. Permutasi E didefinisikan sebagai berikut
Kedua, DES mempunyai 8 buah SBOX (S1 sampai S8) yang mempunyai masukan selebar 6 bit dan keluaran selebar 4 bit. Karena lebar keluaran SBOX lebih kecil daripada lebar masukannya, maka adakemungkinan beberapa kombinasi masukan yang berbeda akan menghasilkan keluaran yang sama. Seandainya masukan setiap SBOX yaitu 1 2 3 4 5 6 x x x x x x maka S1 sampai hingga S8 didefinisikan sebagai berikut.
Ketiga, hasil substitusi SBOX kemudian digabungkan menjadi 32 bit dan diacak dengan permutasi P dan hasil permutasi P merupakan keluaran fungsi F yang nantinya di XOR dengan ruas kiri. Permutasi P didefinisikan sebagai berikut.
Dalam DES, algoritma yang dipakai dalam proses enkripsi sama persis dengan algoritma yang dipakai dalam proses dekripsi, hanya saja penggunaan sub kuncinya saja yang berbeda. Dalam proses dekripsi, urutan sub kunci yang dipakai merupakan kebalikan urutan sub kunci yang dipakai dalam proses enkripsi.
Implementasi
Operasi yang dipakai dalam algoritma DES merupakan operasi‐operasi sederhana semisal move, bit copy, XOR, lookup, shift dan rotate. Semua operasi tersebut tersedia dalam mikroprosesor/mikrokontroler 8 bit. Dengan demikian sanggup kita simpulkan bahwa DES sanggup diterapkan dalam platform 8 bit.
Semua operasi permutasi dalam DES, baik IP, IP 1, PC 1, PC 2, E dan P, pada pada dasarnya hanyalah operasi penyalinan bit. Jika kode penyalinan bit tidak tersedia, maka permutasi juga sanggup diimplementasikan dengan operasi shift, dengan memanfaatkan carry yang timbul dari setiap kode shift. Selain itu, operasi substitusi dengan SBOX juga sanggup dengan gampang diimplementasikan memakai table lookup dengan ukuran yang masih sanggup dijangkau. Dalam platform 32 atau 64 bit, DES sanggup diimplementasikan lebih effektif lagi, tapi sayangnya operasi bit per bit menyerupai permutasi mungkin sedikit menyita performa prosesor dan memperlambat laju enkripsi per detik.
Implementasi
Operasi yang dipakai dalam algoritma DES merupakan operasi‐operasi sederhana semisal move, bit copy, XOR, lookup, shift dan rotate. Semua operasi tersebut tersedia dalam mikroprosesor/mikrokontroler 8 bit. Dengan demikian sanggup kita simpulkan bahwa DES sanggup diterapkan dalam platform 8 bit.
Semua operasi permutasi dalam DES, baik IP, IP 1, PC 1, PC 2, E dan P, pada pada dasarnya hanyalah operasi penyalinan bit. Jika kode penyalinan bit tidak tersedia, maka permutasi juga sanggup diimplementasikan dengan operasi shift, dengan memanfaatkan carry yang timbul dari setiap kode shift. Selain itu, operasi substitusi dengan SBOX juga sanggup dengan gampang diimplementasikan memakai table lookup dengan ukuran yang masih sanggup dijangkau. Dalam platform 32 atau 64 bit, DES sanggup diimplementasikan lebih effektif lagi, tapi sayangnya operasi bit per bit menyerupai permutasi mungkin sedikit menyita performa prosesor dan memperlambat laju enkripsi per detik.