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