Enkripsi adalah proses mengamankan suatu informasi dengan
membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan
khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan
komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan
individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan
yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat
18
Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem
secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM
pada bank.
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain
masih diperlukan untuk membuat komunikasi yang aman, terutama untuk
memastikan integritas dan autentikasi dari sebuah pesan. Contohnya,
Message Authentication Code (MAC) atau digital signature.
2.3.Dekripsi
Deskripsi dalam dunia keamanan komputer merupakan proses
untuk mengubah chyperteks menjadi plainteks atau pesan asli. Jadi deskripsi
merupakan kebalikan dari Enkripsi upaya pengolahan data menjadi sesuatu
yang dapat diutarakan secara jelas dan tepat dengan tujuan agar dapat
dimengerti oleh orang yang tidak langsung mengalaminya sendiri.
2.4.Algoritma Kriptografi 2.4.1. Algoritma DES
Algoritma DES dikembangkan di IBM dibawah
kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma ini
didasarkan pada algoritma LUCIFER yang dibuat oleh Horst Feistel.
Algoritma ini telah disetujui oleh (NBS) setelah penilaian kekuatannya
oleh (NSA) Amerika Serikat. DES termasuk ke dalam sistem
kriptografi simetris dan tergolong jenis cipher blok. DES beroperasi
pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plaintext menjadi
19 key) atau (subkey).
Kunci internal dibangkitkan dari kunci eksternal (external
key) yang panjangnya 64 bit.
Skema global dari algoritma DES adalah sebagai berikut :
1. Blok plainteks dipermutasi dengan matriks permutasi awal.
2. Hasil permutasi awal kemudian mengalami 16 putaran. Setiap
putaran menggunakan kunci internal yang berbeda.
3. Hasil nya kemudian dipermutasi dengan matriks permutasi (invers
initial permutation atau IP-1 ) menjadi blok cipherteks.
4. Di dalam proses tersebut, blok plainteks terbagi menjadi dua bagian,
kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit.
20
5. 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 dari 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 matematis, satu putaran DES dinyatakan sebagai
Li = Ri – 1
Ri = Li – 1 f(Ri – 1, Ki)
Pembangkitan Kunci Internal
Kunci internal = kunci setiap putaran, Ada 16 putaran, jadi ada 16 kunci
internal: K1, K2, …, K16. Dibangkitkan dari kunci eksternal (64 bit)
yang diberikan oleh pengguna.
Kunci eksternal
Permutasi PC-1
C0 D0
Left Shift Left Shift
C1 D1
Left Shift Left Shift
Permutasi PC-2 K1 Cj Dj Permutasi PC-2 Kj
Left Shift Left Shift
C16 D16
Permutasi PC-2 K16
21
Gambar 7 Proses pembangkitan kunci-kunci internal DES
2.4.2. Algoritma 3DES
3DES merupakan salah satu algoritma simetris pada
kriptografi yang digunakan untk mengamankan data dengan cara
menyandikan data. Proses yang dilakukan dalam pengamanan data nya
yaitu proses enkripsi dan proses dekripsi. Algoritma 3DES adalah
suatu algoritma pengembangan dari algoritma. Perbedaan DES dengan
3DES terletak pada panjangnya kunci yang digunakan . pada DES
menggunakan satu kunci yang panjang nya 56 bit, sedangkan 3DES
menggunakan 3 kunci yang panjang nya 168 bit (masing-masing kunci
panjang nya 56 bit). Pada 3DES, 3 kunci yang digunakan bersifat
saling bebas (K1 ≠ K2 ≠ K3). Karena tingkat kerahasiaan algoritma 3DES terletak pada panjangnya kunci yang digunakan, maka
penggunaan algoritma 3DES dianggap lebih aman dibandingkan
algoritma DES. Pada algoritma 3DES digami menjadi 3 tahap, setiap
tahap nya merupakan implementasi dari algoritma DES. Tahap
pertama plainteks (file) yang diinputkan dioperasikan dengan kunci
eksternal pertama (K1) dan melakukan proses enkripsi dengan
menggunakan algoritma DES, sehingga menghasilkan pra-chiperteks
pertama. Kemudian setelah itu tahap kedua pra-chiperteks pertama
yang dihasilkan pada tahap pertama kemudian dioperasikan dengan
22
proses dekripsi dengan menggunakan algoritma DES, sehingga
menghasilkan pra-chiperteks (chipper tekx awal). Kedua. tahap
terakhir pra-chiperteks kedua yang dihasilkan pada tahap kedua
dioperasikan dengan kunci eksternal ketiga (K3) dan melakukan proses
enkripsi dengan menggunakan algoritma DES, sehingga akan
menghasilkan chiperteks.
Gambar 8. Proses enkripsi algoritma 3DES
2.4.3. Algoritma AES
Algoritma kriptografi bernama Rijndael yang di desain oleh
Vincent Rijmen dan John Daemen asal Belgia keluar sebagai
pemenang kontes algoritma kriptografi pengganti DES yang diadakan
oleh NIST milik pemerinah Amerika Serikat pada 26 November 2001.
Algoritma Rijndael ini yang kemudian dikenal dengan AES. Setelah
mengalami beberapa proses standarisasi oleh NIST, Rijndael kemudian
23
Pada 2006 AES merupakan salah satu algoritma terpopuler yang di
gunakan dalam kriptografi asimetrik.
AES merupakan algoritma block chipper dengan menggunakan
system permutasi dan substitusi (P-box dan S-box) bukan dengan
jaringan Feistel sebagaimana block chipper pada umumnya. AES
memiliki ukuran block yang tetap panjang selama 128 bit dan ukuran
kunci 128, 192, 256. Tidak seperti Rijndael yang blok kunci nya dapat
berukuran kelipatan 32 bit dengan ukuran minimum 128 bit dan
maksimal 256 bit.
24
2.4.4. Algoritma Blowfish
Blowfish adalah suatu algoritma kriptografi yang beroperasi
pada mode blok. Algoritma Blowfish ditujukan untuk
diimplementasikan pada sebuah mikroprosesor berskala besar.
Algoritma Blowfish sendiri tidak dipatenkan sehingga dapat digunakan
oleh banyak orang .Blowfish menggunakan jaringan Feistel yang terdiri
dari 16 buah putaran. Masukan terhadap jaringan Feistel ini adalah x
yang merupakan elemen data ukuran 64 bit. Blowfish dirancang untuk
memenuhi kriteria-kriteria sebagai berikut :
1. Cepat. Blowfish dirancang agar dapat mengenkripsikan data pada
mikroprosesor 32 bit dengan kecepatan 26 clock cycles per byte.
2. Kompak. Blowfish dirancang agar dapat berjalan dengan
menggunakan memori kurang dari 5kb
3. Sederhana. Blowfish dirancang hanya menggunakan operasi-
operasi sederhana. Operasi yang digunakan dalam Blowfish dalah
penambahan XOR dan tabel lookup dalam 32 bit. Rancangan yang
sederhana ini mempermudah proses analisa yang mebuat Blowfih
terhindar dari kesalahan implementasi.
4. Keamanan yang beragam. Panjang kunci yang digunakan dalam
algoritma Blowfish bervariasi dengan panjang kunci maksimal 448
25
Proses enkripsi dilakukan dengan langkah-langkah sebagai berikut :
1. Bagi x menjadi setengah bagian, yaitu dengan ukuran 32 bit. Hasil
pembagian ini adalah : xL dan xR.
2. Lakukan langkah-langkah berikut dalam 16 putaran:
xL = xL ⊕ Pi
xR = F(xL) ⊕ xR
Tukar xL dan xR
Keterangan:
i = 1, 2, ..., 16 (menunjukkan nomor putaran)
3. Tukar xL dan xR (membatalkan pertukaran terakhir).
4. xR = xR ⊕ P17 5. xL = xL ⊕ P18
6. Gabungkan kembali xL dan xR
Fungi F yang terdapat pada jaringan Feistel didefinisikan sebagai berikut
:
1. Bagi xL menjadi empat bagian yang berukuran 8 bit. Keempat
bagian yang dihasilkan adalah a, b, c, dan d.
2. Fungsi F(xL) didefinisikan sebagai berikut:
26
Gambar 10. Skema jaringan Feistel pada algoritma Blowfish
27
Proses dekripsi dilakukan dengan langkah yang sama dengan
proses enkripsi, kecuali P1, P2, ..., P18 digunakan dengan urutan terbalik dari
proses enkripsi.
2.5.JCE
JCE merupakan framework sekuriti ekstensi dari Java. Ia
menyediakan ekstensi untuk kriptografi yang kuat, diperbolehkan untuk di-
ekspor oleh pemerintah Amerika setelah kebijakan mengenai ekspor tahun
2000. JCE mulai diperbolehkan sebagai opsi paket tambahan pada JDK v
1.2.x dan 1.3.x, sedangkan pada JDK v 1.7.x telah diintegrasikan. API JCE
diimplementasi oleh Cryptographic Service Providers. Pada JDK v 1.7.x
secara default API service-provider nya adalah SunJCE.
JCE menyediakan kelas interface untuk operasi kriptografi,
mulai dari proses enkripsi, generalisasi kunci, dan dekripsi. Banyak fitur yang
disediakan oleh JCE. Mulai dari Chiper, KeyGenerator, SekcretKeyFactory
28
BAB III
ANALISIS MASALAH DAN PERANCANGAN SISTEM