Popular Posts

Tuesday, November 22, 2011

Data Encryption Standard (DES)

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,, :mrgreen:

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:

IP

2

6

3

1

4

8

5

7

In the next steps, we will develop 4 bits with which to replace the
left half of this “blue” result.

Input:

0

1

1

0

1

1

0

1

1

1

1

0

0

1

1

0

To right 4 bits of above result, apply expansion/permutation
E/P (generating 8 bits from 4). The bit numbering is that of the 4-bit
right-nibble, not of the 8-bit byte (e.g., indicated bit 2 refers to
byte’s bit 6).

E/P

4

1

2

3

2

3

4

1

0

0

1

1

1

1

0

0

Upon above result, perform binary XOR operation
with

subkey K1:

K1

1

0

1

0

0

1

0

0

1

0

0

1

1

0

0

0

Determine a row and a column from above
XOR result.
For the row, combine bits 1 and 4 and convert to decimal. For the column,
combine bits 2 and 3 and convert to decimal.

Determine another row and column. For this second row, combine bits 5
and 8; for this second column, bits 6 and 7.

Identify the entry in s-box S0 at the first row/first column you
determined. S0 shows it in decimal; convert it to binary (two bits). Enter
those bits as the first half of the 4-bit number at right. Identify the
entry in s-box S1 at the second row/second column you determined. Convert
it to binary; enter those two bits as the second half of the number at
right.

S0 =

c0

c1

c2

c3

r0

1

0

3

2

r1

3

2

1

0

r2

0

2

1

3

r3

3

1

3

2

S1 =

c0

c1

c2

c3

r0

0

1

2

3

r1

2

0

1

3

r2

3

0

1

0

r3

2

1

0

3

left nibble:
bits 1 & 4 -> 11 -> 3

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

1

1

1

1

To above result, apply permutation P4:

P4

2

4

3

1

1

1

1

1

Upon the above P4 result,
perform binary XOR operation, combining it with the left 4-bits of our
first result (application of IP to original plaintext input, blue cell above).

We are trying to replace the left half of that first result. These XOR
result bits are the replacement bits for it.

0

0

0

1

Rewrite that
“blue” first result with its left half
replaced. (Look it up, keep/copy its right half, use the preceding result
as the new left half.)

0

0

0

1

0

1

1

0

Swap the two 4-bit halves of the above
(previous) result.

In the next steps, we will again develop 4 replacement bits, and with
them replace the
left half of this “green” swap result. The steps will be the same ones used for
that purpose already.

0

1

1

0

0

0

0

1

To right 4 bits of above
swap result, apply expansion/permutation E/P (generating 8 bits from 4):

E/P

4

1

2

3

2

3

4

1

1

0

0

0

0

0

1

0

Upon above result, perform binary XOR operation
with

subkey K2:

K2

0

1

0

0

0

0

1

1

1

1

0

0

0

0

0

1

Determine a row and a column from above result.
For the row, combine bits 1 and 4 and convert to decimal. For the column,
combine bits 2 and 3 and convert to decimal.

Determine another row and column. For this second row, combine bits 5
and 8; for this second column, bits 6 and 7.

Identify the entry in s-box S0 at the first row/first column you
determined. It’s given in decimal; convert it to binary (two bits). Enter
those bits as the first half of the 4-bit number at right. Identify the
entry in s-box S1 at the second row/second column you determined. Convert
it to binary; enter those two bits as the second half of the number at
right.

S0 =

c0

c1

c2

c3

r0

1

0

3

2

r1

3

2

1

0

r2

0

2

1

3

r3

3

1

3

2

S1 =

c0

c1

c2

c3

r0

0

1

2

3

r1

2

0

1

3

r2

3

0

1

0

r3

2

1

0

3

left nibble:

bits 1 & 4 -> 10 -> 2
bits 2 & 3 -> 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

0

1

1

0

To above result, apply permutation P4:

P4

2

4

3

1

1

0

1

0

Upon the above P4 result,
perform binary XOR operation, combining it with the left 4-bits of the
earlier swap result (green cell above).

We are trying to replace the left half of that swap result. These XOR
result bits are the replacement bits for it.

XOR with 0110

1

1

0

0

Rewrite that
“green” swap result with its left half
replaced. (Look it up, keep/copy its right half, use the preceding result
as the new left half.)

1

1

0

0

0

0

0

1

To above result, apply reverse of initial permutation IP,
which is IP-1:

IP-1

4

1

3

5

7

2

8

6

This result is ciphertext. It is the S-DES encryption of the plaintext input.

0

1

0

0

0

1

1

0

No comments:

Post a Comment