Data Encryption Standard (DES)
Dalam bidang kriptografi, Data Encryption Standard (DES) adalah sebuah algoritma enkripsi sandi blok kunci simetri dengan ukuran blok 64-bit dan ukuran kunci 56-bit.
DES untuk saat ini sudah dianggap tidak aman lagi. Penyebab utamanya
adalah ukuran kuncinya yang sangat pendek (56-bit). Sejak beberapa tahun
yang lalu DES telah digantikan oleh Advanced Encryption Standard (AES).
DES, atau juga dikenal sebagai Data Encryption Algorithm (DEA) oleh
ANSI dan DEA-1 oleh ISO, merupakan algoritma kriptografi simetris yang
paling umum digunakan saat ini. Sejarahnya DES dimulai dari permintaan
pemerintah Amerika Serikat untuk memasukkan proposal enskripsi. DES
memiliki sejarah dari Lucifer1, enkripsi yang dikembangan di IBM kala
itu. Horst Feistel merupakan salah satu periset yang mula-mula
mengembangkan DES ketika bekerja di IBM Watson Laboratory di Yorktown
Heights, New York. DES baru secara resmi digunakan oleh pemerintah
Amerika Serikat (diadopsi oleh National Bureau of Standards) di tahun
1977. Ia dikenal sebagai Federal Information Processing Standard 46
(FIPS PUB46).
Aplikasi yang menggunakan DES antara lain :
- enkripsi dari password di sistem UNIX
- berbagai aplikasi di bidang perbankan
Memecahkan DES
DES merupakan block chiper yang beroperasi dengan menggunakan blok
berukuran 64-bit dan kunci berukuran 56-bit. Brute force attack dengan
mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi.
DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci
56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil
dipecahkan dengan metoda coba-coba (brute force attack).
Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara.
Salah satu group yang bernama distributed.net menggunakan teknologi
Internet untuk memecahkan problem ini menjadi sub-problem yang kecil
(dalam ukuran blok). Pengguna dapat menjalankan sebuah program yang
khusus dikembangkan oleh tim ini untuk mengambil beberapa blok, via
Internet, kemudian memecahkannya di komputer pribadinya. Program yang
disediakan meliputi berbagai operating system seperti Windows, DOS,
berbagai variasi Unix, Macintosh. Blok yang sudah diproses dikembalikan
ke distributed.net via Internet. Dengan cara ini puluhan ribu orang,
termasuk penulis, membantu memecahkan DES. Mekanisme ini dapat
memecahkan DES dalam waktu 30 hari.
Sebuah group lain yang disebut Electronic Frontier Foundation (EFF)
membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip
DES cracker. Dengan mesin seharga US$50.000 ini mereka dapat memecahkan
DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari. DES
cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan
dari 56-bit keyspace dalam waktu sembilan (9) hari. Dikarenakan 56-bit
memiliki 216 (atau 65536) keyspace dibandingkan DES dengan
40-bit, maka untuk memecahkan DES 40-bit hanya dibutuhkan waktu sekitar
12 detik. Dikarenakan hukum average, waktu rata-rata untuk memecahkan
DES 40-bit adalah 6 detik.
Contoh peragaan client distributed.net untuk Windows 95 :
Perlu diingat bahwa group seperti EFF merupakan group kecil
dengan budget yang terbatas. Dapat dibayangkan sistem yang dimiliki oleh
National Security Agency (NSA) dari pemerintah Amerika Serikat.
Tentunya mereka dapat memecahkan DES dengan lebih cepat.
Hash function – integrity checking
Salah satu cara untuk menguji integritas sebuah data adalah dengan
memberikan “checksum” atau tanda bahwa data tersebut tidak berubah. Cara
yang paling mudah dilakukan adalah dengan menjumlahkan
karakter-karakter atau data-data yang ada sehingga apabila terjadi
perubahan, hasil penjumlahan menjadi berbeda. Cara ini tentunya mudah
dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi
menghasilkan hasil penjumlahan yang sama.
Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain :
- parity checking
- checksum
- hash function
Fungsi Hash (hash function) merupakan
fungsi yang bersifat satu arah dimana jika kita masukkan data, maka dia
akan menghasilkan sebuah “checksum” atau “fingerprint” dari data
tersebut. Sebuah pesan yang dilewatkan ke fungsi hash akan menghasilkan
keluaran yang disebut Message Authenticated Code (MAC). Dilihat dari
sisi matematik, hash function memetakan satu set data ke dalam sebuah
set yang lebih kecil dan terbatas ukurannya. Mari kita ambil sebuah
contoh sederhana, yaitu fungsi matematik modulus (atau dalam pemrograman
menggunakan mod). Hasil dari operasi mod adalah sisa pembagian bilangan
bulat (integer). Sebagai contoh, “11 mod 7” menghasilkan nilai 4,
karena 11 dibagi 7 menghasilkan nilai 1 dan sisanya adalah 4. Contoh
lain “17 mod 7” menghasilkan bilangan 3, karena 17 dibagi 7 menghasilkan
2 dan sisanya adalah 3. Demikian pula “18 mod 7” akan menghasilkan 4.
Dalam sehari-hari, operasi modulus kita gunakan dalam penunjukkan jam,
yaitu modulus 12. Kalau kita perhatikan contoh di atas. Hasil dari
opreasi mod tidak akan lebih besar dari angka pembaginya. Dalam contoh
di atas, hasil “mod 7” berkisar dari 0 ke 6. Bilangan berapapun yang
akan di-mod-kan akan menghasilkan bilangan dalam rentang itu. Tentu saja
angka 7 bisa kita ganti dengan angka lain, misalnya sebuah bilangan
prima yang cukup besar sehingga rentang bilangan yang dihasilkan bisa
lebih besar. Hal kedua yang perlu mendapat perhatian adalah bahwa
diketahui hasil operasi modulus, kita tidak tahu bilangan asalnya. Jadi
kalau diberitahu bahwa hasil operasi modulus adalah 4, bilangan awalnya
bisa 11, 18, 25, dan seterusnya. Ada banyak sekali. Jadi, dalam
aplikasinya nanti agak sukar mengkonstruksi sebuah pesan asli jika kita
hanya tahu hasil dari fungsi hashnya saja. Tentu saja operator mod
sendirian tidak dapat digunakan sebagai fungsi hash yang baik. Ada
beberapa persyaratan agar fungsi hasil baru dapat digunakan secara
praktis. Misalnya, rentang dari hasil fungsi hash harus cukup sehingga
probabilitas dua pesan yang berbeda akan menghasilkan keluaran fungsi
hash yang sama. Perlu ditekankan kata “probabilitas”, karena secara
teori pasti akan ada dua buah data yang dapat menghasilkan keluaran
fungsi hash yang sama1. Hal ini disebabkan rentang fungsi hash yang
sangat jauh lebih kecil dibandingkan space dari inputnya. Tapi hal ini
masih tidak terlalu masalah karena untuk membuat dua pesan yang samasama
terbaca (intelligible) dan memiliki keluaran fungsi hash yang sama
tidaklah mudah. Hal yang terjadi adalah pesan (data) yang sama itu dalam
bentuk sampah (garbage). Syarat lain dari bagusnya sebuah fungsi hash
adalah perubahan satu karakter (dalam berkas teks) atau satu bit saja
dalam data lainnya harus menghasilkan keluaran yang jauh berbeda, tidak
hanya berbeda satu bit saja. Sifat ini disebut avalanche effect. Ada
beberapa fungsi hash yang umum digunakan saat ini, antara lain:
• MD5
• SHA (Secure Hash Algorithm)
Useful information about data encryption standard is posted above. After searching this detail for hours finally I found this article. Can you please share more about the hashing algorithms ?
BalasHapuselectronic signature