assalamualaikum wr.wb.....
watzappppp di postingan ke 7 aku ini kita akan bahas DES nihhh, sebelumnya ada yang tau nggak apa itu DES ?......, kalau pada belum tau naahhhhh langsung aja nih , nggak usah panjang lebar lagi nih langsung aja check this out...
DES (Data Encryption Standard)
Kriptografi merupakan ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya kebentuk yang tidak dapat dimengerti lagi maknanya. DES (Data Encryption Standard) merupakan salah satu algoritma standar yang ada. DES merupakan block cipher 16 ronde yang memiliki struktur Feistel dan memiliki masukan/keluaran 64 bit, serta memiliki kunci sepanjang 56 bit. Dengan struktur Feistel, algoritma enkripsi memiliki struktur yang sama dengan yang untuk dekripsi. Perbedaannya hanya terletak pada urutan subkey yang dimasukkan.
Apa itu DES?
DES merupakan salah satu algoritma kriptografi cipher block dengan ukuran blok 64 bit dan ukuran kuncinya 56 bit. Algoritma DES dibuat di IBM, dan merupakan modifikasi daripada algoritma terdahulu yang bernama Lucifer. Lucifer merupakan algoritma cipher block yang beroperasi pada blok masukan 64 bit dan kuncinya berukuran 28 bit. Pengurangan jumlah bit kunci pada DES dilakukan dengan alasan agar mekanisme algoritma ini bisa diimplementasikan dalam satu chip.
DES pertama kali dipublikasikan di Federal Register pada 17 Maret 1975. Setelah melalui banyak diskusi, akhirnya algortima DES diadopsi sebagai algoritma standar yang digunakan oleh NBS (National Bureau of Standards) pada 15 Januari 1977. Sejak saat itu, DES banyak digunakan pada dunia penyebaran informasi untuk melindungi data agar tidak bisa dibaca oleh orang lain. Namun demikian, DES juga mengundang banyak kontroversi dari para ahli di seluruh dunia. Salah satu kontroversi tersebut adalah S-Box yang digunakan pada DES. S-Box merupakan bagian vital dari DES karena merupakan bagian yang paling sulit dipecahkan. Hal ini disebabkan karena S-Box merupakan satu – satunya bagian dari DES yang komputasinya tidak linear. Sementara itu, rancangan dari S-Box sendiri tidak diberitahukan kepada publik. Karena itulah, banyak yang curiga bahwa S-Box dirancang sedemikian rupa sehingga memberikan trapdoor kepada NSA agar NSA bisa membongkar semua ciphertext yang dienkripsi dengan DES kapan saja.
Kontroversi yang kedua adalah jumlah bit pada kunci DES yang dianggap terlalu kecil, hanya 56 bit. Akibatnya DES rawan terhadap serangan brute force. Walaupun terdapat kerawanan tersebut, DES tetap digunakan pada banyak aplikasi seperti pada enkripsi PIN (Personal Identification Numbers) pada mesin ATM (Automatic Teller Machine) dan transaksi perbankan lewat internet. Bahkan, organisasi – organisasi pemerintahan di Amerika seperti Department of Energy, Justice Department, dan Federal Reserve System menggunakan DES untuk melindungi penyebaran data mereka.
Enkripsi DES
Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES. Secara lengkap proses Enkripsi dengan menggunakan DES ditunjukan pada skema berikut :
Algoritma DES memerlukan sebuah kunci yang panjang bloknya 64 bit di setiap blok DES digunakan untuk mengamankan data pada perangkat lunak dan keras negara tersebut. Berikut desain input-output algoritma DES
Dapat dilihat bahwa ada dua input untuk fungsi enkripsi, yaitu plaintext dengan panjang 64-bit dan kunci dengan panjang 56-bit. Untuk mengenkripsi data dengan menggunakan algoritma DES, dimulai dengan membagi bit dari teks tersebut kedalam blok-blok dengan ukuran blok sebesar 64-bit, yang kemudian disebut blok plaintext. Adapun penjelasan langkah-langkah enkripsi DES dijelaskan sebagai berikut :
A. Permutasi Awal
Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-biit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi awal berikut ini:
B. Pembangkitan Kunci Internal
Pada proses enchipering akan dilakukan proses pemutaran sebanyak 16 kali, oleh karena itu dibutuhkan 16 buah kunci. 16 buah kunci tersebut dibangkitkan dari kunci eksternal. Masukan kunci (input key) K dispesifikasikan sebagai 64-bit kunci (key), kunci eksternal ini akan menjadi masukan untuk permutasi dengan menggunakan matriks permutasi choice one (PC-1) berikut ini:
8 buah bit yaitu bit 8, 16, 24, 32, 40, 48, 56, dan 64 digunakan sebagai parity bit. Parity bit tersebut akan mereduksi ukuran efektif key dari 64-bit menjadi 56-bit. Selanjutnya, 56 bit yang tersisa ini dibagi menjadi dua bagian, yaitu bagian kiri (C0) dan bagian kanan (D0). Selanjutnya kedua bagian digeser ke kiri (left shifting) sepanjang satu atau dua bit sesuai tabel pergeseran berikut ini :
Setelah pergeseran bit, maka masing-masing Ci dan Di akan dipermutasi kembali dengan menggunakan matriks PC-2 berikut :
Berikut ini merupakan skema yang menjelaskan proses pembangkitan kunci-kunci internal DES :
C. Enciphering
Seperti sudah dijelaskan sebelumnya, setiap blok plaintext mengalami 16 kali putaran enchipering. Secara matematis, satu putaran DES dinyatakan sebagai berikut :
Adapun langkah-langkah enchipering dapat dilihat pada skema berikut :
Adapun penjelasan dari skema diatas adalah :
- E merupakan fungsi ekspansi yang memperluas blok Ri-1 yang panjangnya 32-bit menjadi 48-bit. Fungsi ekspansi ini direalisasikan melalui tabel berikut :
- Selanjutnya hasil ekspansi yaitu E(Ri-1), yang panjangnya 48-bit di XOR kan dengan Ki yang panjangnya juga 48-bit dan menghasilkan vektor A yang panjangnya 48-bit.
- Vektor A kemudia dikelompokkan menjadi 8 kelompok yang masing-masing panjangnya 6 bit dan menjadi masukkan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan 8 buah kotak-s (s-box). Setiap kotak-s menerima 6 bit masukkan dan menghasilkan keluaran 4 bit. Kelompok 6 bit pertama akan menggunakan s1, 6 bit selanjutnya akan menggunakan s2, dan seterusnya. Bit awal dan akhir menentukan baris dan 4 bit ditengah akan menentukan kolom yang akan dipilih.
Kedelapan kotak S (s-box) adalah :
Contoh pencarian output dari kotak s adalah :
Bit 100110 = keluaran dari kotak-s adalah kotak-s pertama, baris ke 2 dan kolom ke3 yaitu 8 (1000).
Keluaran proses substitusi adalah vector B yang panjangnya 48 bit. Vector B menjadi masukan untuk proses permutasi. Adapun tujuan dari proses permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Hasil permutasi dinyatakan dalam fungsi f(Ri-1,Ki). Permutasi ini dilakukan dengan menggunakan matriks permutasi sebagai berikut :
Dekripsi DES
DES memiliki proses yang sama untuk algoritma enkripsi dan dekripisinya. Proses pendekripsian juga dilakukan dengan menggunakan cipher Feistel sebanyak 16 round, dengan pada masing-masing round mengerjakan proses yang sama. Yang membedakan hanya urutan kunci dan juga input masukannya yang berupa ciphertext.
Pada round pertama, yang digunakan adalah K16, round kedua menggunakan K15, dan seterusnya hingga round terakhir akan menggunakan K1. Ciphertext yang digunakan yaitu berupa L16R16 yang diperoleh dari hasil permutasi invers IP-1 terhadap ciphertext sebenarnya (y) kemudian menukar 32 bit pertama dengan 32 bit terakhir dari hasil tersebut.
Proses dekripsi dilakukan dengan cara berkebalikan dari proses enkripsi, yaitu dengan menggunakan L16 R16 untuk menemukan L0 R0 atau plaintext.
Atau dapat ditunjukkan dengan gambar berikut untuk proses setiap round-nya.
Maka dari itu, untuk mendapatkan L0 R0 bisa digunakan langkah berikut :
Cara untuk mendapatkan plainteks kembali yaitu:
x = IP-1 (RD0 LD0)
Differential Cryptanalysis
Salah satu serangan yang paling terkenal pada DES adalah metode “Differential Cryptanalysis” yang dikenalkan oleh Edi Biham dan Adi Shamir. Serangan ini adalah serangan chosen plaintext, yaitu penyerang memiliki kemampuan untuk memilih plaintext tertentu dan mendapatkan ciphertext yang berkesusaian. Serangan ini mungkin tidak efektif untuk memecahkan DES 16 ronde seperti pada umumnya, tetapi serangan ini dapat memecahkan DES dengan iterasi lebih rendah. Sebagai contoh, DES 8 ronde dapat dipecahkan hanya dalam beberapa menit dengan menggunakan sebuah PC sederhana. Pada DES, umumnya kerahasiaannya terletak pada kunci yang digunakan, sementara tabel permutasi dan tabel substitusi yang digunakan tidak berubah. Karena tulah kita mengasumsikan kriptanalis sudah mengetahui tabel permutasi dan tabel substitusi yang digunakan.
Differential Cryptanalysis adalah suatu teknik di mana kita membuat perubahan tertentu padalaintext sehingga dari ciphertext yang dihasilkan, kita bisa mencari kunci yang digunakan. Konsep perbedaan dalam differential cryptanalysis dirumuskan dengan operasi exclusive or. Jadi perbedaan antara dua naskah asli P1 dan P2 adalah P1 ⊕ P2 dimana operasi XOR dilakukan secara bitwise. Jika C1 dan C2 adalah pasangan ciphertext untuk P1 dan P2 , maka efek P1 ⊕P2 terhadap - C1⊕ C2 dapat mem berikan informasi mengenai kunci enkripsi. Analisa mencoba mengeksploitasi kecenderungan fungsi cipher dan didasarkan pada sifat aljabar operasi exclusive or. Efek dari permutasi seperti initial permutation (IP ) adalah linear dengan
IP (P1 ) ⊕ IP (P2 ) = IP (P1 ⊕ P2 )
Jadi efek permutasi terhadap perbedaan tidak terlalu rumit. Permutasi yang dilakukan diluar
putaran seperti IP dan IP−1 sama sekali tidak mempersulit analisa. Mari kita lihat efek dari fungsi cipher
f yang beroperasi terhadap setengah dari naskah sebesar 32 bit. Efek dari ekspansi E juga linear
E(P1 ) ⊕ E(P2 ) = E(P1 ⊕ P2 )
Jadi ekspansi juga tidak membuat rumit perbedaan, jadi tidak mempengaruhi analisa satu putaran. Akan tetapi, ekspansi, yang selain mengekspansi juga melakukan permutasi, mempengaruhi tingkat kesulitan analisa lebih dari dua putaran karena efek avalanche yang ditimbulkannya. Efek avalanche terjadi karena perbedaan 1 bit dalam input setelah melewati S-box menjadi perbedaan sedikitnya 2 bit. Karena efek ekspansi, perbedaan 2 bit akan menjadi input 3 S-boxes dua putaran kemudian yang oleh 3 Sboxes dijadikan perbedaan 6 bit, dan seterusnya. Jadi dengan setiap putaran, efek perbedaan semakin besar bagaikan avalanche.
Efek dari operasi exclusive or dengan kunci putaran adalah :
(P1 ⊕ K) ⊕ (P2 ⊕ K) = P1 ⊕ P2
Ini berarti tidak ada efek terhadap perbedaan. Efek dari permutasi P juga linear, jadi yang sangat menentukan dalam differential cryptanalysis adalah efek dari substitusi S-box yang diketahui sebagai tidak linear.
Analisis Satu Putaran
Untuk dapat memberikan gambaran mengenai mekanisme menemukan kunci dalam putaran mari kita lihat ilustrasi berikut. Contoh kita umpamakan bahwa XOR pasangan input adalah 0x34 (hexadecimal 34) dan XOR pasangan output adalah 0xd (hexadecimal d) dan S-box adalah S1. (Kita gunakan notasi 0x34 → 0xd untuk menandakan bahwa XOR input 0x34 dapat menghasilkan XOR output 0xD.) Kita umpamakan juga bahwa bits pasangan hasil ekspansi E adalah 0x35 dan 0x01. Bits input untuk S1 didapat dari XOR bits hasil ekspansi E dengan bits kunci k1 . Jadi pasangan input S1, sebut saja x dan y mempunyai rumus:
x = 0x35 ⊕ k1
y = 0x01 ⊕ k1
Sehingga :
k1 = 0x35 ⊕ x = 0x01 ⊕ y
Jadi bits kunci putaran didapat dari XOR pasangan hasil ekspansi dengan pasangan input S1. Namun tidak semua pasangan input S1 dapat menghasilkan 0xd sebagai XOR output S1. Hanya ada 8 pasangan input x dan y dengan XOR 0x34 yang menghasilkan XOR output 0xd, oleh karena itu hanya ada 8 kandidat nilai bits kunci yang dimungkinkan seperti terlihat dalam tabel berikut:
Jadi dengan menganalisa hasil transformasi S1 terhadap pasangan ekspansi 0x35 dan 0x01, ruang pencarian bits kunci putaran diperkecil dari 64 kandidat menjadi 8 kandidat. Jika kita mempunyai pasangan ekspansi lain (mungkin dengan hasil XOR yang berbeda) yang menghasilkan tabel lain, kita dapat memperoleh informasi tambahan mengenai bits kunci putaran. Bits kunci putaran harus berada dalam semua tabel yang dihasilkan, jadi setelah mendapatkan tabel 8.2, kandidat untuk bits kunci putaran tinggal dua yaitu 0x23 dan 0x17.
Analisis dapat dilanjutkan menggunakan pasangan ekspansi lainnya sampai kandidat bits kunci putaran tinggal satu sehingga bits kunci putaran dapat ditentukan. Jika proses pencarian bits kunci putaran menggunakan analisa efek S-box tidak selesai, hasil analisa dapat digunakan untuk menentukan probabilitas berbagai kandidat bits kunci putaran. Pendekatan probabilistik inilah sebenarnya yang digunakan dalam differential cryptanalysis.
Secara garis besar, metode yang digunakan differential cryptanalysis untuk mencari kunci putaran adalah sebagai berikut:
- Kita pilih XOR untuk naskah asli.
- Kita buat beberapa pasangan naskah asli dengan XOR yang dipilih, kita lakukan enkripsi terhadap pasangan, dan simpan pasangan terenkripsi.
- Untuk setiap pasangan, cari XOR output yang diharapkan untuk sebanyak mungkin Sboxes untuk putaran terahir dari XOR naskah asli dan pasangan terenkripsi (XOR input fungsi cipher f untuk putaran terahir diketahui karena merupakan XOR bagian dari pasangan terenkripsi).
- Untuk setiap kandidat kunci putaran, hitung pasangan yang menghasilkan XOR yang diharapkan jika menggunakan kandidat kunci putaran.
- Kunci putaran yang terpilih adalah kandidat kunci putaran yang mempunyai hitungan terbesar.
Hasil analisa dari Edi Biham dan Adi Shamir tentang kompleksitas pemecahan kunci pada DES ditunjukkan dalam tabel berikut :
Tabel diatas menunjukkan bahwa untuk DES dengan putaran penuh (16 putaran), differential crypatanalisis jauh lebih sukar daripada exhaustive search atau brute force.
Linear Cryptanalysis
Linear Cryptanalysis pertama kali diterbitkan secara terbuka sebagai sarana untuk menyerang DES oleh Mitsuru Masui di EUROCRYPT’93. Metodenya adalah mencoba untuk menemukan hubungan linear antara plaintext, ciphertext dan keys ketika mereka melalui S-BOX. Dengan mengetahui sepasang plaintext-ciphertext sebagai data, hubungan dengan kemungkinan yang cukup tinggi dapat digunakan untuk menemukan kuncinya.
Matsui menunjukkan bahwa DES dapat dipecahkan dengan bantuan 247 pasang dari plaintextciphertext yang sudah diketahui dan lebih cepat dari metode exhaustivesearch. [1] Namun Matsui memperbarui metodenya yaitu untuk mencapai tingkat keberhasilan sebesar 85% dengan metode ini, diperlukan 243 pasang plaintext-ciphertext. Prinsip dari linear cryptanalysis sangatlah sederhana, yaitu satu mendekati (non-linear) blok cipher menggunakan ekspresi linear :
Dimana P, C dan K menunjukkan plaintext-ciphertext, masing-masing kunci bit dan operator bolean XOR. Index i, j dan k menunjukkan lokasi bit tetap. Matsui menghasilkan tabel pendekatan linear untuk 8 S-BOX DES dan menemukan linearitas terkuat di S5 (S-BOX kelima). Tabelnya dihasilkan dengan menganalisa semua kombinasi dari bit input dan output dari S-BOX. Dimana terdapat 6 bit input dan 4 bit output, maka ada 1024 entri (26 x 24) pada tabel untuk setiap S-BOX. Sebuah pendekatan linear dinyatakan kuat apabila memiliki kemungkinan yang signifikan lebih besar atau lebih kecil dari 50%. Pada entri tertentu di S5 yang memiliki nilai 20, mewakili kemungkinan 12/64 (1/2 – 20/64). Nilai ini dianggap cukup kuat dan memungkinkan untuk melakukan pembacaan sandi menggunakan linear cryptanalysis pada DES.
Eli Biham mengambil satu langkah lebih maju untuk membantu menentukan pembatasan S-BOX untuk membuat mereka lebih tahan terhadap linear cryptanalysis. Ia menemukan bahwa peningkatan jumlah bit output dari sebuah S-BOX dapat membahayakan S-BOX secara signifikan terhadap linear cryptanalysis. Lebih tepatnya, ia menemukan bahwa dalam m x n S-BOX, dimana m adalah jumlah bit input dan n adalah jumlah bit output, jika n x 2m – m maka S-BOX harus memiliki linear property dari bit input maupun dari bit ouput.
Brute Force Attack
Tipe serangan ini adalah tipe serangan yang dilakukan secara praktikal. Seperti diketahui, panjang kunci pada DES adalah 56-bit, sehingga banyak kombinasi kunci yang mungkin adalah 256 kemungkinan. Dengan mengacu pada fakta tersebut kita dapat mendisain sebuah program dengan mengacu pada algoritma enkripsi DES untuk kemudian dilakukan pengujian terhadap semua kemugkinan kunci. Namun demikian, penggunaan komputer personal hanya untuk melakukan operasi percobaan kemungkinan kunci dinilai tidak efektif dari segi biaya serta juga tidak praktis, banyak fitur dari sebuah CPU yang tidak termanfaatkan dengan baik.
Alternatif lain adalah dengan membangun sebuah perangkat keras khusus yang diperuntukkan khusus untuk melakukan operasi ini. Telah banyak dikembangkan model perangkat keras dengan tujuan khusus seperti ini, salah satu contohnya adalah Cost-Optimized Parallel Code Breaker (COPACOBANA).
COPACOBANA terdiri dari serangkaian chip FPGA, dimana pada setiap chip terdapat empat buah engine DES yang bertugas untuk melakukan pengujian terhadap sebuah kunci.
Kelemahan DES
Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES:
- Panjang kunci
- Jumlah putaran
- S-Box
A. Panjang Kunci
Panjang kunci eksternal DES hanya 64 bit, itupun yang dipakai Cuma 56 bit. Awalnya diusulkan oleh IBM adalah 128 bit, namun atas permintaan NSA, panjang kunci dikurangi 72 bit sehinggal menjadi 56 bit, alasan pengurangannya tidak diumumkan. Serangan yang bisa dilakukan dengan memanfaatkan kelemahan panjang kunci ini dengan menggunakan exhaustive key search. Exhaustive search adalah pencarian terhadap semua kemungkinan solusi. Dengan panjang kunci 56 bit akan terdapat 256 atau 72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor parallel mencoba setengah dari jumlah kemungkinan kunci itu maka diperlukan 1142 tahun untuk menemukan kunci yang benar. Namun pada tahun 1998 Electronic Frontier Foundation merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive search key dengan biaya $250.000 dan diharapkan menemukan kunci selama 5 hari. Pada tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari. Kriptoanalisis yang menggunakan exhaustive search key ini adalah kriptoanalisis differential.
B. Jumlah Putaran
Dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata dapat dipecahkan dengan knownplaintext attack yang lebih efektif daripada dengan brute force attack. Kriptoanalisis yang menggunakan seragan knownplaintext ini adalah kriptoanalisis linier.
C. S-Box
Pada desain struktur internal DES, bagian substitusinya (S-box), masih dirahasiakan. S-box ini diubah mengikuti saran NSA. Akibatnya, kita tidak bisa yakin bahwa struktur internal DES bebas dari titik-titik lemah yang sengaja disembunyikan, yang membuat NSA dapat membuka cipher tanpa harus mengetahui kuncinya. Menurut penelitian para ahli kriptografi, DES didesain dengan sangat cermat, sehingga bila kotak-S ini diubah secara acak, sangat mungkin sekali DES yang dihasilkan justru menjadi lebih mudah dibobol. Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu.
Kesimpulan
nahhh kesimpulannya kali ini yaituuuuuuu...............................
DES meiliki cara yang sama dalam melakukan enkripsi maupun dekripsi. Hanya saja pproses dekripsi dilakukan secara terbalik dibandingkan dengan proses enkripsi. DES diaplikasikan dengan melakukan pengolahan pengolahan angka, oleh karena itu konsep dasar yang digunakan DES adalah teori bilangan. Pada awalnya DES digunakan sebagai salah pengaman yang paling aman, tetapi seiring berjalannya waktu banyak kekurangan sistem ini yang menjadi kontroversi karena menyangkut kemanannya.
gimana udah pada paham tentang DES belum hmmmm ,insyaallah paham yaaa........ nahhhh segitu aja postingan kali ini supaya bermanfaat GANBATEEEE... assalamualaikum wr.wb.
Tidak ada komentar:
Posting Komentar