DES (Data Encryption
Standard) merupakan nama dari sebuah algoritma untuk mengenkripsi data yang dikeluarkan
oleh Federal Information Processing Standard (FIPS) 46 – 1
Amerika Serikat. Algoritma dasarnya dikembangkan oleh IBM, NSA, dan NBS yang
berperan penting dalam pengembangan bagian akhir algoritmanya. DEA dan DES
telah dipelajari secara ekstensif sejak publikasi pertamanya, dan diketahui
sebagai algoritma simetris yang paling baik dan paling banyak digunakan di
dunia.
ØAlgoritma DES
Untuk mengenkrip atau
mendekripsi lebih dari 64 bit ada 4 model resmi yang telah ditetapkan oleh FIPS
PUB 81. Salah satu model yang digunakan adalah untuk memeriksa proses deakripsi
di atas untuk masing-masing blok secara berurutan. Model ini disebut model Electronic
Code Book (ECB). Kelebihan dari metode ini adalah melakukan XOR masing-masing
blok plaintext dengan blok ciphertext sebelumnya untuk proses enkripsi. Model
ini dinamakan Cipher Block Initial Permutation, IP
For 1 <=j<=16
Begin
End
XOR
Final Permutation, FP
Function, f(R,K)
Blok Enkrip : 64
IP Blok Enkrip : 64
L[0]: 32 R[0]: 32
R[j-1]: 32
f(R[j-1], K[j]): 32
L[j]: 32 R[j]: 32
L[j-1]: 32
Blok Enkrip=FP(Blok Enkrip)
: 64 Diagram Blok Dekripsi Data 64 bit
Chaining (CBC). Dua model
yang lain adalah Output Feedback (OFB) dan Cipher Feedback (CFB). Algoritma DES
juga dapat digunakan untuk menghitung checksum sampai panjang 64 bit. Jika
jumlah data dalam bit dikenai checksum bukan perkalian 64 bit, maka blok data
yang terakhir diberi angka 0. Jika data itu berupa data ASCII, maka bit pertama
dari beberapa bit yang lain diberi nilai 0. Data tersebut kemudian dienkripsi
dalam model CBC, dengan rentang n adalah 16 sampai 64 bit dan n merupakan
perkalian dari 8 bit.
Pemrosesan Kunci
Seperti yang telah
diuraikan di atas, pemrosesan kunci dilakukan dengan beberapa blok fungsi utama
, yaitu Permuted Choice 1 (PC1), Permuted Choice 2 (PC2), dan Shift Kiri atau
geser kiri. Fungsi ini menggunakan 64-bit (8 byte) kunci input untuk dikonversi
menjadi 16 set kunci yang akan dipergunakan dalam masing-masing enkripsi maupun
dekripsi.
Pemrosesan Data
Setelah kunci berhasil
diproses, maka langkah selanjutnya adalah memproses blok data, tentunya dengan
menyertakan kunci tersebut. Dalam fungsi ini, masukkan dan keluarkan data
berupa blok data masing-masing 8 byte yang disertai oleh KunciSet yang memuat
keseluruhan set kunci yang siap digunakan dalam setiap iterasi DES. Parameter
mode digunakan untuk menentukan jenis proses baik enkripsi maupun dekripsi. IP
dan FP Initial Permutation dan Final Permutation merupakan suatu proses pengacakan
blok data yang saling invers. IP dan FP diimplementasikan dengan menggunakan
macro PERM_OP yang berfungsi untuk menukar posisi (swapping) blok-blok bit
dalam satu blok data. Dalam beberapa percobaan, akhirnya didapat bahwa lima
buah PERM_OP pada desblok memungkinkan terjadinya IP dan FP.
Fungsi
Fungsi ini menggabungkan
beberapa blok menjadi satu, yaitu Expansion, Substitution, dan Permutation.
SpBox merupakan sebuah lookup tabel dari Substitution dan Permutation dengan
variable lookup 6 bit kunci yang di-XOR dengan 6 bit hasil ekspansi.
Compile dan Pengujian
Program
Program DES dibuat oleh
compiler 16 bit Borland C++ versi 3.1 untuk DOS. Karena sifat enkripsi dan
dekripsi tidak menghilangkan satu informasi pun, maka program ini dapat dan
telah diuji pada file-file terkompres seperti rar.arj maupun .zip. Hasilnya,
file-file tersebut dapat dibuka kembali dengan baik oleh program dekompresi
masing-masing.
Ø Algoritma RSA
Untuk menyandi informasi
dan untuk menerjemahkan pesan tersandi sebuah algoritma penyandian memerlukan sebuah data biner yang disebut kunci. Tanpa kunci yang
cocok orang tidak bisa mendapatkan kembali pesan asli dari pesan tersandi. Pada DES digunakan kunci yang
sama untuk menyandi (enkripsi) maupun untuk menterjemahan (dekripsi), sedangkan
RSA menggunakan dua kunci yang berbeda.
Isitilahnya, DES disebut sistem sandi simetris sementara RSA disebut sistem
sandi asimetris. Kedua sistem ini memiliki keuntungan dan kerugiannya sendiri.
Sistem sandi simetris cenderung jauh lebih cepat sehingga lebih disukai oleh
sementara kalangan industri. Kejelekannya, pihak-pihak yang ingin berkomunikasi
secara privat harus punya akses ke sebuah kunci DES bersama. Walaupun
biasanya pihak-pihak yang terkait sudah
saling percaya, skema ini memungkinkan
satu pihak untuk memalsukan pernyataan
dari pihak lainnya. RSA yang menggunakan algoritma asimetrik mempunyai dua
kunci yang berbeda, disebut pasangan
kunci (key pair) untuk proses enkripsi
dan dekripsi. Kunci-kunci yang ada pada pasangan kunci mempunyai hubungan
secara matematis, tetapi tidak dapat dilihat secara komputasi untuk mendeduksi
kunci yang satu ke pasangannya. Algoritma ini disebut kunci publik, karena kunci
enkripsi dapat disebarkan. Orang-orang dapat menggunakan kunci publik ini, tapi
hanya orang yang mempunyai kunci privat
sajalah yang bisa mendekripsi data tersebut. Keamanan algoritma RSA terletak
pada sulitnya memfaktorkan bilangan yang
besar menjadi faktor-faktor prima.Pemfaktoran dilakukan untuk memperoleh kunci
privat. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum
ditemukan algoritma yang efisien, maka selama itu pula keamanan algoritma RSA
tetap terjamin. Besaran-besaran yang digunakan pada Algoritma RSA:
- p dan q bilangan prima (rahasia)
- n = p . q (tidak rahasia)
- ᶲ(n) = (p– 1) (q-1) (rahasia)
- e (kunci enkripsi) (tidak rahasia)
- d (kunci dekripsi) ( rahasia)
- m (plainteks) (rahasia)
- c (cipherteks) (tidak rahasia)
Ø Algoritma PGP (Pretty
Good Privacy)
Pretty good
privacy (PGP) adalah fenomena yang luar biasa. Program ini di temukan oleh
Philip Zimmermann. PGP menyediakan fasilitas pengecekan dan autentifikasi yang
dapat digunakan dalam surat elektronik dan aplikasi penyimpanan file. Hal-hal
yang dilakukan oleh Zimmermann adalah sebagai berikut:
- Memilih algoritma-algoritma encripsi terbaik
- Menggabungkan algoritma-algoritma tersebut menjadi suatu aplikasi yang independen dari sistem operasi dan prosesor.
- Membuat package dan dokumentasinya, termasuk source code, tersedia via internet.
- Membuat perjanjian dengam perussahaan (Viacrypt) untuk mendukung versi comersial yang murah dan fully compatible.
Digital
signature dalam PGP menggunakan DSS atau RSA untuk mengenkripsi pesan dengan
private key pengirim dan hash code pesan dibuat dengan SHA-1. Untuk enkripsi
pesan menggunakann CAST-123 atau IDEA atau Three-key Triple DES ataupun dengan
menggunakan RSA juga. Pesan dapat terlebih dahulu dikompresi untuk penimpann
atau peniriman dengan menggunakan ZIP. Hasil enkripsi ditampilkan dalam string
ASCII dengan menggunakan pengkonversian radix 64. Untuk mengakomodasikan batas
ukuran maksimum pesan, PGP melakukan segmentasi dan penyusunan ulang. Seperti
yang disebutkan di atas. PGP menggunakan sistem managemen kunci. Dalam
dokumentasi, PGP sering menggunakan kunci rahasia, yaitu pasangan kunci
public-key dan private-key dalam enkripsinya. PGP dalam operasinya menyangkut
lima proses: autentifikasi, pengerahasiaan, kompresi, e-mail compatibility, dan
segmentasi.
Referensi
:
- IMPLEMENTASI-ENKRIPSI-DATA-BERBASIS-ALGORITMA-DES.pdf
- http://www.academia.edu/21870196/IMPLEMENTASI_ALGORITMA_RSA_UNTUK_ENKRIPSI_DAN_DEKRIPSI_MENGGUNAKAN_BAHASA_PEMROGRAMAN_JAVA_DI_NETBEANS
- http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2006-2007/Makalah/Makalah0607-92.pdf