Bentuk Knapsack Algoritma Knapsack

2.4.2 Teknik Enkripsi Hill Cipher

Proses enkripsi pada Hill Cipher dilakukan per blok plaintext. Ukuran blok tersebut sama dengan ukuran matriks kunci. Sebelum membagi teks menjadi deretan blok-blok, plaintext terlebih dahulu dikonversi menjadi angka Sansani, 2008. Secara matematis, proses enkripsi pada Hill Cipher adalah: ............................................. 14 Keterangan: C = Ciphertext K = Kunci P = Plaintext

2.4.3 Teknik Dekripsi Hill Cipher

Proses dekripsi pada Hill Cipher pada dasarnya sama dengan proses enkripsinya. Namun matriks kunci harus dibalik invers terlebih dahulu. Secara matematis, proses dekripsi pada Hill Cipher adalah : ................................................ 15

2.5 Algoritma Knapsack

Algoritma Knapsack juga disebut algoritma kriptografi kunci publik. Keamanan algoritma ini terletak pada sulitnya memecahkan persoalan Knapsack Knapsack Problem . Knapsack artinya karungkantung. Karung mempunyai kapasitas muat terbatas. Barang-barang dimasukkan ke dalam karung hanya sampai batas kapasitas maksimum karung saja Marta, 2006.

2.5.1 Bentuk Knapsack

Ada dua macam bentuk atau tipe Knapsack yaitu: Universitas Sumatera Utara 1. General Knapsack Normal Knapsack diberikan bobot Knapsack adalah M. Diketahui n buah objek yang masing-masing bobotnya adalah w 1 , w 2 , ... , w 3 . Tentukan nilai bi sedemikian sehingga ........................................ 16 Yang dalam hal ini, bernilai 0 atau 1. Jika =1, berarti objek i dimasukkan ke dalam knapsack, sebaliknya jika =0, objek i tidak dimasukkan. Dalam teori algoritma, persoalan knapsack termasuk ke dalam tidak dapat dipecahkan dalam orde waktu polinomial. Sehingga algoritma ini hanya dapat digunakan untuk enkripsi tetapi tidak dirancang untuk dekripsi Marta, 2006. 2. Superincreasing Knapsack Superincreasing Knapsack adalah persoalan Knapsack yang dapat dipecahkan dalam orde polinimial. Ini adalah persoalan Knapsack yang mudah sehingga tidak disukai untuk dijadikan sebagai algoritma kriptografi yang kuat. Jika senarai bobot disebut barisan superincreasing, maka kita dapat membentuk Superincreasing Knapsack. Barisan Superincreasing adalah suatu barisan di mana setiap nilai di dalam barisan lebih besar daripada jumlah semua nilai sebelumnya. Solusi dari Superincreasing Knapsack yaitu mudah dicari sebagai berikut : 1. Jumlahkan semua bobot di dalam barisan. 2. Bandingkan bobot total dengan bobot terbesar di dalam barisan. Jika bobot terbesar lebih kecil atau sama dengan bobot total, maka bobot dapat dimasukkan ke dalam knapsack, jika tidak, maka bobot tidak dimasukkan. 3. Kurangi bobot total dengan bobot yang telah dimasukkan, kemudian bandingkan bobot total sekarang dengan bobot terbesar selanjutnya. Demikian seterusnya sampai seluruh bobot di dalam barisan selesai dibandingkan. 4. Jika bobot total menjadi nol, maka terdapat solusi persoalan Superincreasing Knapsack , tetapi jika tidak nol, maka tidak ada solusinya Marta, 2006. Universitas Sumatera Utara Algoritma Superincreasing Knapsack adalah algoritma yang lemah, karena ciphertext dapat didekripsi menjadi plaintext secara mudah dalam waktu polinomial. Algoritma non-superincreasing knapsack atau normal knapsack adalah kelompok algoritma yang sulit dari segi komputasi karena membutuhkan waktu dalam orde eksponensial untuk memecahkannya. Namun, Superincreasing Knapsack dapat dimodifikasi menjadi non- Superincreasing Knapsack dengan menggunakan kunci publik untuk enkripsi dan kunci privat untuk dekripsi. Kunci publik merupakan barisan non- Superincreasing sedangkan kunci privat tetap merupakan barisan superincreasing. Hasil modifikasi tersebut dinamakan algoritma Merkle-Helman karena modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle. Modifikasi dilakukan dengan perhitungan aritmatika modulo Munir, 2006.

2.5.2 Penggunaan Teori Bilangan Bulat Pada Sistem Kriptografi Merkle- Hellman