Algoritma Knapsack merupakan algoritma kriptografi yang menggunakan kunci publik dan privat untuk mengenkripsi dan mendekripsi pesan teks menjadi angka biner. Metode ini menjelaskan langkah-langkah pembentukan kunci publik dan privat serta contoh soal enkripsi dan dekripsi pesan '$<.' menggunakan kunci yang dihasilkan.
4. DEFINISI
Algoritma kriptografi Merkle Hellman atau disebut juga dengan Algoritma Knapsack
merupakan salah satu algoritma yang dapat digunakan untuk melindungi / mengamankan
data pesan. Dengan menggunakan diskrit logaritma pada algoritma markle hellmen untuk
proses enkripsi dan dekripsi para hacker tidak akan bisa membaca data pesan tersebut.
Untuk mengetahui / membaca data pesan seorang hacker harus mengetahui private key,
kunci public, urutan super meningkat.
Arti dari knapsnack itu adalah karung atau tas yang bisa difungsikan dalam menyimpan
sesuatu. Namun, tidak semua jenis barang dapat dimasukkan ke dalamnya. Karung ini
hanya bisa menyimpan objek-objek yang ukuran totalnya tidak melebihi kapasitas karung
tersebut. Dari sini akan timbul permasalahan mengenai objek mana yang harus diutamakan
untuk masuk ke dalam knapsack.
5. SISTEM PROSEDUR
ALGORITME KRIPTOGRAFI
MERKLE HELLMAN
• Data Pesan Teks dirubah menjadi angka biner yang setelah itu
dilakukan proses pengalian pada kunci publik. Hasil pengalian ini
kemudian akan ditotalkan lalu dikirim ke orang yang dituju.
• Orang yang dituju memakai secret key untuk melacak terget sum.
Dengan menggunakan metode target sum, orang yang dituju
memperoleh hasil pesan yang sudah berbentuk angka biner {0,1}.
Demi memperoleh pesan awal, dilakuan proses perubahan angka
biner ini ke karakternya.
6. METODE
Algoritma kriptografi Merkle Hellman ini mempunyai metode
penggantian berdasarkan pada algoritma Caesar cipher yaitu dengan
pemindahan karakter – karakter. Kemampuan sepalgoritma terletak di
deretan angka – angka yang bermanfaat menjadi pengali beserta kunci.
Deretan angka – angka tercantum dapat berbentuk angka tertentu
seperti barisan angka ganjil, angka genap, barisan fibonanci, barisan
angka prima, serta barisan angka yang dilakukan sendiri.
7. LANGKAH-LANGKAH
• Menentukan deretan superincreasing dari total angka integral positif. deretan super increasing adalah
salah satu dimana setiap bilangan lebih besar dari total jumlah sebelumnya angka. s = (s1, s2, s3, ….sn)
• Perlu merubah semua huruf dari pesan ke biner. Dereta angka biner pengantar oleh peubah b.
• Untuk menentukan dua angka bulat (a) yang makin besar dari pada total semua angka pada deretan dan
co-prime (r).
• deretan dan angka dan r membuat bersama – sama kunci pribadi kriptografi tersebut.
• Seluruh anggota – s1, s2, s3, … sn, dari deretan s dilakukan proses pengalian dengan jumlah r dan modulus
dari sebagian diperoleh dengan memaruh dengan bilangan. Oleh sebab itu, pi = r si mod a
• Semua anggota p1, p2, p3, …. pn dereta p adalah dilakukan proses pengalian dengan elemen – elemen
yang sesuai dari biner urutan b.
• Kemudian bilangan – bilangan tersebut akan dijumlahkan untuk menghasilkan pesan yang sudah
dienrkipsi. Deretan M = (M1, M2, M3…Mn) membuat kunci-kunci kriptografi.
8. CONTOH SOAL
Dimisalkan kasus teks atau palainteks yaitu "$<." menggunakan
kunci akgoritma knapsack yang mempunyai dua kunci, yaitu
kunci publik dan kunci privat dan bilangan yang digunakan
adalah sembarang bilangan. Misalkan kita mempunyai kunci
privat sebagai berikut
Kunci Privat = {1, 2, 4, 10, 20, 40}
9. CONTOH SOAL
1. Proses Enkripsi
Setelah ditetapkan nilai kunci privat kita akan menentukan nilai
dari kunci publiknya. Menentukan nilai kunci publik algoritma
Knapsack berdasarkan kunci privat yang didapat dari bilangan yang
diambil secara acak. Nilai Private key = { 1, 2, 4, 10, 20, 40}
2. Diketahui nilai n mod m adalah :
m= 110 dan n= 31
FPB (110, 31) = 1
3 .Sehingga bisa dihitung public key adalah sebagai berikut
10. CONTOH SOAL
(1 × 31) mod 110 = 31
(2 × 31) mod 110 = 62
(4 × 31) mod 110 = 14
(10 × 31) mod 110 = 90
(20 × 31) mod 110 = 70
(40 × 31) mod 110 = 30
Hasil perkalian akan menjadi kunci
publik sedangkan barisan
superincreasing semula menjadi
kunci privat sehingga diperoleh:
Kunci publik = {31, 62, 14, 90, 70, 30}
Kunci privat = {1, 2, 4, 10, 20, 40}
11. 4 .Setelah proses pembentukan kunci selesai dilakukan, maka
tahap selanjutnya adalah melakukan proses enkripsi. Adapun data
teks yang akan diubah kedalam proses enkripsi menggunakan
algoritma Knapsack yaitu "$<."
Proses enkripsi dapat melalui beberapa tahap yaitu sebagai
berikut:
2 .Ubah karakter plainteks menjadi bilangan biner
100100 = $
111100 = <
101110 = .
CONTOH SOAL
Setiap bit plainteks dikalikan dengan
elemen yang berkoresponden didalam
kunci publik, dimana kunci publik
didapat dari perhitungan algoritma
Knapsack
12. • 100100 = (31×1) + (0) + (0) + (90×1) + (0) + (0) = 121
• 111100 = (31×1) + (62×1) + (14×1) + (90×1) + (0) + (0) = 197
• 101110 = (31×1) + (0) + (14×1) + (90×1) + (70×1) + (0) = 205
CONTOH SOAL
Dengan demikian, cipherteks
Algoritma Knapsack yang
Dihasilkan dariperhitunga
adalah: 121, 197, 205
5. Deskripsi
Receiver juga harus mengetahui nilai m dan n pada n mod m agar
mendapatkan nilai invers n mod m dimana n= 31 dan m = 110
n (a) = 1 mod m
31 × a = 1 mod 110
31 × (71) = 1 mod 110
maka n⁻¹=71
Sekarang kita harus
mengalihkan 71 dengan setiap
blok chipertext mengambil
modulo m { 121, 197, 205 }
13. Menggunakan private key {1, 2, 4, 10, 20, 40}
(121 × 71) mod 110 = 11 = 1 + 10, berkoresponden dengan 100100
(197 × 71) mod 110 = 17 = 1 + 2 + 4 + 10, berkoresponden dengan 111100
(205 × 71) mod 110 = 35 = 1 + 4 + 10 + 20, berkoresponden dengan 101110
Dengan demikian setelah di
dekripsikan, maka dapat di
terjemahkan sebagai "$<."
CONTOH SOAL
14. KESIMPULAN
Dengan metode kriptografi ini memanfaatkan kunci
public dan kunci privat untuk proses enkripsi dan dekripsi
sehingga data pesan teks yang dilindungi
tidak akan dengan mudah dibaca oleh orang – orang yang
tidak memiliki akses