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.
Skema Global DES
Pada sekitar akhir tahun 1960, IBM melakukan riset pada bidang kriptografi yang pada akhirnya disebut Lucifer. Lucifer dijual pada tahun 1971 pada sebuah perusahaan di London. Lucifer merupakan algoritma berjenis Block Cipher yang artinya bahwa input maupun output dari algoritma tersebut merupakan 1 blok yang terdiri dari banyak bit seperti 64 bit atau 128 bit. Lucifer beroperasi pada blok input 64 bit dan menggunakan key sepanjang 128 bit. Lama kelamaan Lucifer semakin dikembangkan agar bisa lebih kebal terhadap serangan analisis cypher tetapi panjang kuncinya dikurangi menjadi 56 bit dengan maksud supaya dapat masuk pada satu chip. Di tempat yang lain, biro standar amerika sedang mencari-cari sebuah algoritma enkripsi untuk dijadikan sebagai standar nasional.IBM mencoba mendaftarkan algoritmanya dan di tahun 1977 algoritma tersebut dijadikan sebagai DES (Data Encryption Standard). Algoritma ini telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat. DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit dan mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau sub-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit. Skema global dari algoritma DES adalah sebagai berikut:- Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP).
- Hasil permutasi awal kemudian di-enciphering- sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda.
- Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks.
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)
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
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.
0 komentar:
Posting Komentar