• Tidak ada hasil yang ditemukan

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

Dokumen terkait