Data Encryption Standard (DES)
Data Encryption Standard (DES), adalah nama dari Informasi Pengolahan Standar federal, (FIPS) 46-3 yang menggambarkan algoritma enkripsi data (DEA). DEA juga didefinisikan dalam standar ANSI X3.92. DEA merupakan perbaikan dari algoritma Lucifer yang dikembangkan oleh IBM pada awal tahun 1970. IBM, Badan Keamanan Nasional (NSA) dan Badan Standar Nasional (NBS sekarang Institut Nasional Standar dan Teknologi NIST) mengembangkan algoritma. DES telah dipelajari secara ekstensif sejak publikasi dan merupakan algoritma simetris yang paling banyak digunakan di dunia.
DES memiliki ukuran blok 64-bit dan menggunakan kunci 56-bit selama eksekusi (8 bit paritas yang menanggalkan dari kunci 64-bit penuh).DES merupakan sistem kriptografi simetris, khusus 16-round Feistel cipher. Ketika digunakan untuk komunikasi, baik pengirim dan penerima harus mengetahui kunci rahasia yang sama, yang dapat digunakan untuk mengenkripsi dan mendekripsi pesan, atau untuk menghasilkan dan memverifikasi Kode Pesan Authentication (MAC). DES juga dapat digunakan untuk single-user enkripsi, seperti untuk menyimpan file pada hard disk dalam bentuk terenkripsi.
Mode Operasi
ECB (Electronic Book Kode)
Ini adalah algoritma DES biasa.
Data dibagi menjadi 64-bit blok dan setiap blok dienkripsi adalah salah satu pada suatu waktu.
Enkripsi terpisah dengan blok yang berbeda benar-benar independen satu sama lain.
Ini berarti bahwa jika data yang ditransmisikan melalui jaringan atau saluran telepon, kesalahan transmisi hanya akan mempengaruhi blok yang berisi kesalahan.
Hal ini juga berarti, bagaimanapun, bahwa blok dapat diatur kembali, sehingga berebut file luar pengakuan, dan tindakan ini akan tidak terdeteksi.
ECB adalah yang paling lemah dari berbagai mode karena tidak ada langkah-langkah keamanan tambahan yang diimplementasikan selain algoritma DES dasar.
Namun, ECB adalah yang tercepat dan termudah untuk melaksanakan, sehingga modus yang paling umum dari DES.
CBC (Cipher Block Chaining)
Dalam modus operasi, setiap blok ciphertext dienkripsi ECB XOR dengan blok plaintext berikutnya yang akan dienkripsi, sehingga membuat semua blok tergantung pada semua blok sebelumnya.
Ini berarti bahwa untuk menemukan plaintext dari blok tertentu, Anda perlu mengetahui ciphertext, kunci, dan ciphertext untuk blok sebelumnya.
Blok pertama yang akan dienkripsi tidak memiliki ciphertext sebelumnya, sehingga plaintext XOR dengan angka 64-bit yang disebut Initialization Vector, atau IV untuk pendek.
Jadi jika data yang dikirim melalui saluran telepon dan jaringan atau ada kesalahan transmisi, kesalahan akan dilakukan ke depan untuk semua blok berikutnya karena setiap blok tergantung pada yang terakhir.
Mode operasi ini lebih aman daripada ECB karena langkah XOR tambahan menambahkan satu lapisan lagi ke proses enkripsi.
CFB (Cipher Feedback)
Dalam mode ini, blok plaintext yang kurang dari 64 bit panjang bisa dienkripsi.
Biasanya, pengolahan khusus harus digunakan untuk menangani file yang ukurannya bukan kelipatan sempurna dari 8 byte, namun mode ini menghilangkan bahwa kebutuhan (Stealth menangani kasus ini dengan menambahkan beberapa byte boneka akhir file sebelum enkripsi).
Plaintext itu sendiri sebenarnya tidak melewati algoritma DES, tetapi hanya XOR dengan blok output dari itu, dengan cara berikut: Sebuah blok 64-bit yang disebut Shift Register digunakan sebagai masukan untuk DES plaintext. Hal ini awalnya ditetapkan untuk beberapa nilai sewenang-wenang, dan dienkripsi dengan algoritma DES. Ciphertext kemudian dilewatkan melalui komponen tambahan yang disebut M-kotak, yang hanya memilih bit paling kiri M dari ciphertext, dimana M adalah jumlah bit di blok kita ingin untuk mengenkripsi. Nilai ini XOR dengan plaintext yang nyata, dan output dari hal tersebut adalah ciphertext akhir. Akhirnya, ciphertext dimasukkan kembali ke dalam Daftar Shift, dan digunakan sebagai benih plaintext untuk blok berikutnya yang akan dienkripsi.
Seperti dengan mode CBC, kesalahan dalam satu blok akan mempengaruhi semua blok berikutnya selama transmisi data.
Mode operasi ini mirip dengan CBC dan sangat aman, tetapi lebih lambat dari ECB karena kompleksitas ditambahkan.
OFB (Umpan Balik Output)
Hal ini mirip dengan modus CFB, kecuali bahwa output ciphertext DES diumpankan kembali ke dalam Daftar Shift, bukan ciphertext akhir yang sebenarnya.
Shift Register diatur ke nilai awal sewenang-wenang, dan melewati algoritma DES.
Output dari DES melewati kotak-M dan kemudian makan kembali ke Shift Register untuk mempersiapkan blok berikutnya.
Nilai ini kemudian XOR dengan plaintext nyata (yang mungkin kurang dari 64 bit panjang, seperti mode CFB), dan hasilnya adalah ciphertext akhir.
Perhatikan bahwa tidak seperti CFB dan CBC, kesalahan transmisi dalam satu blok tidak akan mempengaruhi blok berikutnya karena sekali penerima memiliki nilai Pergeseran Pendaftaran awal, itu akan terus menghasilkan Pergeseran baru Pendaftaran input plaintext tanpa masukan data lebih lanjut.
Mode operasi ini kurang aman daripada mode CFB karena hanya ciphertext yang nyata dan DES output ciphertext diperlukan untuk menemukan plaintext dari blok paling baru.
Pengetahuan tentang kunci tidak diperlukan.
Perpustakaan tertanam VOCAL perangkat lunak mencakup berbagai lengkap ETSI / ITU / IEEE algoritma sesuai, di samping banyak algoritma standar dan kepemilikan lainnya. Perangkat lunak kami dioptimalkan untuk eksekusi pada ANSI C dan arsitektur terkemuka DSP (TI, ADI, AMD, ARM, MIPS, CEVA, LSI Logic ZSP, dll). Perpustakaan ini adalah modular dan dapat dijalankan sebagai tugas tunggal di bawah berbagai sistem operasi atau mandiri dengan mikrokernel sendiri.
Simplified DES adalah DES yang disederhanakan (udah tau yah? Hehehe..:-) ), kalau ngerti simplified DES, dijamin bakal cepet banget ngerti DESnya..
DES, begitu juga simplified DES (S-DES) termasuk block cipher yang bertipe feistel (ini udah pernah saya singgung blom yah..). Jadi, blok plainteks nantinya dibagi menjadi dua bagian yang sama besar.. (nanti lihat contoh biar lebih jelas..)
S-DES menggunakan:
block dengan panjang 8-bit sebagai input plainteksnya
initial permutation (permutasi inisial)
fungsi untuk membangkitkan subkey berbeda yang digunakan untuk tiap round
fk yang terdiri permutasi expansi, XOR dengan subkey, S-box, dan P-4 (permutasi 4-bit) atau
fK(L, R) = (L XOR F(R, SK), R) dimana L adalah 4-bit kiri, R 4-bit kanan, dan SK subkey (intinya sih fk ini berawal dari 4-bit R yang di expansi, trus di XOR dengan subkey, trus dimasukkkan ke dalam X-box, trus pi permutasi dengan P-4,,, hasilnya di XOR dengan 4-bit L), dan
switch function yang menukar L dengan R
Ini nih skema umumnya:
Fungsi pembangkitan kuncinya sendiri menggunakan:
inputan sebesar 10 bit
P-10 (permutasi 10 bit)
left shift cycle, dan
P-8 (permutasi
Fungsi pembangitan kunci ini nantinya menghasilkan dua subkey berbeda masing-masing 8 bityang akan digunakan untuk dua round pada S-DES. Nih skema pembangkitan kuncinya:
Lebih jelasnya lagi, skema enkripsi S-DES adalah:
Dengan:
P10(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10) = (k3,k5,k2,k7,k4,k10,k1,k9,k8,k6), atau agar lebih singkat ditulis
P-10 = 3 5 2 7 4 10 1 9 8 6
P-8 = 6 3 7 4 8 5 10 9
IP = 2 6 3 1 4 8 5 7
IP inverse = 4 1 3 5 7 2 8 6
E/P (permutasi expansi) = 4 1 2 3 2 3 4 1
P4 = 2 4 3 1
S-box dan contohnya menyusul yah,,
Itu dulu yang bisa saya bagikan,, insaAllah saya lanjutkan lagi.. Mudah2an bermanfaat..
Btw, saya masih lagi seneng loh.. Hehehehehehehehehehehehehehehehe…
Ini nih contoh penyandiannya,,
S-DES ENCRYPTION SAMPLE
To the input (plaintext), apply initial permutation IP:
In the next steps, we will develop 4 bits with which to replace the | Input:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
To right 4 bits of above result, apply expansion/permutation
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Upon above result, perform binary XOR operation subkey K1:
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Determine a row and a column from above Determine another row and column. For this second row, combine bits 5 Identify the entry in s-box S0 at the first row/first column you
| left nibble: bits 2 & 3 -> 00 -> 0 therefore, get from S0 row 3 col 0 result is 3 -> 11 right nibble: bits 1 & 4 -> 10 -> 2 bits 2 & 3 -> 00 -> 0 therefore, get from S1 row 2 col 0 result is 3 -> 11
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
To above result, apply permutation P4:
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Upon the above P4 result, We are trying to replace the left half of that first result. These XOR |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rewrite that |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Swap the two 4-bit halves of the above In the next steps, we will again develop 4 replacement bits, and with |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
To right 4 bits of above
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Upon above result, perform binary XOR operation subkey K2:
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Determine a row and a column from above result. Determine another row and column. For this second row, combine bits 5 Identify the entry in s-box S0 at the first row/first column you
| left nibble: bits 1 & 4 -> 10 -> 2 therefore, get from S0 row 2 col 2 result is 1 -> 01 right nibble: bits 1 & 4 -> 01 -> 1 bits 2 & 3 -> 00 -> 0 therefore, get from S1 row 1 col 0 result is 2 -> 10
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
To above result, apply permutation P4:
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Upon the above P4 result, We are trying to replace the left half of that swap result. These XOR | XOR with 0110
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rewrite that |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
To above result, apply reverse of initial permutation IP,
This result is ciphertext. It is the S-DES encryption of the plaintext input. |
|
No comments:
Post a Comment