5
BAB 2 LANDASAN TEORI
2.1 Kriptografi 2.1.1 Pengertian Kriptografi Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana menyembunyikan pesan. Pada kriptografi klasik umumnya merupakan teknik penyandian dengan kunci simetrik dan menyembunyikan pesan yang memiliki arti ke sebuah pesan yang nampaknya tidak memiliki arti dengan metode subsitusi (pergantian huruf) dan/atau transposisi (pertukaran tempat). (Sadikin, 2012). Namun pada pengertian modern kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasian, keutuhan data dan otentikasi entitas. Jadi pengertian kriptografi modern adalah tidak saja berurusan hanya dengan penyembunyian pesan namun lebih pada sekumpulan teknik yang menyediakan keamanan informasi (Sadikin, 2012).
2.1.2 Sistem Kriptografi Sistem kriptografi terdiri dari 5 bagian yaitu, (Stinson, 2002) : 1. Plaintext Plaintext yaitu pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi. Untuk selanjutnya digunakan istilah teks asli sebagai pedanan kata plaintext. 2. Secret Key Secret key yang juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. Untuk selanjutnya digunakan istilah kunci rahasia sebagai padanan kata secret key.
Universitas Sumatera Utara
6
3. Ciphertext Ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. 4. Algoritma Enkripsi Algoritma enkripsi memiliki 2 masukan teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi. 5. Algoritma Dekripsi Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan rahasia yang dipakai algoritma enkripsi. Contoh sistem kriptografi konvensional dapat dilihat pada gambar 2.1. Eve Alice M
Algoritma Enkripsi
Bob Algoritma
C Saluran publik
M
Dekripsi
K
Sumber kunci
Saluran Aman (Sumber: Sadikin, Rifki. 2012)
Gambar 2.1 Sistem Kriptografi Konvensional
Sistem enkripsi harus memenuhi kaidah correctness yaitu untuk memenuhi setiap K β ΞΊ adalah himpunan kunci dan terdapat teks sandi hasil enkripsi teks asli m, c = ππ (m) maka harus berlaku ππ (c) = m untuk semua kemungkinan teks asli. Pada gambar 1 kunci rahasia dibangkitkan oleh pembangkit kunci dan dikirim melalui saluran aman ke pihak penyandian (encryptor) maupun penyulih sandi (decryptor). Teks sandi dikirim melalui saluran umum sehingga ada pihak ketiga yang dapat membaca teks sandi itu (Sadikin, 2012).
Universitas Sumatera Utara
7
2.1.3 Jenis Kriptografi Berdasarkan jenis kuncinya algoritma kriptografi terdiri dari dua jenis yaitu: 1. Algoritma Simetris (Konvensional) Algoritma simetris (symmetric cryptography) adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya, sehingga algoritma ini disebut juga sebagai single key algorithm. Algoritma ini disebut juga konvensional karena algoritma jenis ini biasa digunakan sejak berabad-abad yang lalu. Sebelum melakukan komunikasi, pengirim dan penerima pesan harus menyetujui suatu kunci tertentu yang sama untuk dipakai secara bersama. Keamanan sistem kriptografi simetri tergantung pada kerahasiaan kunci karena membocorkan kunci berarti orang lain bisa mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, maka keberadaan kunci harus tetap dirahasiakan dari pihak yang tidak berkepentingan dengan cara pengirim harus memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan bahwa pihak yang ditunjuk membawa kunci untuk pertukaran data adalah pihak yang dapat dipercaya. Algoritma-algoritma yang termasuk dalam kriptografi simetris adalah semua algoritma kriptografi klasik seperti hill cipher, vigenere cipher, playfair cipher, dll. Beberapa algoritma kriptografi modern juga termasuk kriptografi simetris, diantaranya adalah IDEA, DES (Data Encryption Standard), Blowfish, Twofish, Tripel DES, Serpent, AES (Advanced Encryption Standard), RC2, RC4, RC5, RC6, dll (Namira, 2013). Proses enkripsi-dekripsi algoritma kunci simetris dapat dilihat pada gambar 2.2.
Kunci Private, K
Plaintext (P)
Enkripsi πΈπ (P) = C
Kunci Private, K
Ciphertext (C) Dekripsi
Plaintext (P)
π·π (C) = P
Gambar 2.2 Skema Kriptografi Simetris
Universitas Sumatera Utara
8
2. Algoritma Asimetris (Kunci Publik) Kriptografi
asimetris
(asymmetric
cryptography)
adalah
algoritma
yang
menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Kunci enkripsi dapat disebarkan kepada umum yang dinamakan sebagai kunci publik (public key), sedangkan kunci dekripsi disimpan untuk digunakan sendiri dan dinamakan sebagai kunci pribadi (private key). Oleh karena itulah, kriptografi ini dikenal pula dengan nama kriptografi kunci publik (public key cryptography). Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci private dan kunci publik. Prosesnya, pengirim (sender) mengenkripsi pesan dengan menggunakan kunci publik sipenerima pesan (receiver) dan hanya si penerima pesanlah yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci private itu sendiri. Contoh algoritma yang termasuk algoritma kriptografi kunci publik diantaranya adalah RSA, Elgamal, DSA, Knapsack, dll (Namira, 2013). Proses enkripsi dan dekripsi algoritma kunci asimetris dapat dilihat pada gambar 2.3 dibawah ini :
Kunci Private,K1
Plaintext (P)
Enkripsi
Ciphertext (C)
πΈπ2 (P) = C
Kunci Private,K2
Dekripsi
Plaintext (P)
π·π2 (C) = P
Gambar 2.3 Skema Kriptografi Asimetris
2.2 Algoritma Knapsack Knapsack merupakan optimasi pengangkutan barang atau disebut juga optimasi kombinatoriol. Knapsack problem adalah salah satu masalah bagaimana cara menentukan pemilihan barang dari sekumpulan barang di mana setiap barang tersebut menmpunyai berat dan profit masing-masing, sehingga dari pemilihan barang tersebut didapatkan profit yang maksimum. (Timothy, 2014) Tujuan Knapsack problem adalah agar dapat mendapatkan keuntungan yang maksimum dari pemilihan barang tanpa melebihi kapasitas daya tampung media
Universitas Sumatera Utara
9
transportasi tersebut. Dalam teori algoritma, persoalan Knapsack termasuk kedalam kelompok NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polynomial. (Timothy, 2014)
Jenis-jenis Knapsack adalah: 1. 0/1 Knapsack Problem Setiap barang hanya terdiri satu unit dan boleh diambil atau tidak sama sekali. 2. 0/n Knapsack Problem Setiap barang terdiri dari n buat unit dan boleh diambil atau tidak sama sekali 3. Bounded Knapsack Problem Setiap barang tersedia n buah unit dan jumlahnya terbatas 4. Unbounded Knapsack Problem Setiap barang tersedia lebih dari satu unit dan jumlahnya tidak terbatas 5. Fractional Knapsack Problem Barang boleh diambil dalam bentuk pecahan atau sebahagian. Contohnya gula, garam, tepung dan lain-lain. (Namira, 2013)
Knapsack Problem: Diberikan bobot knapsack adalah M. Diketahui n buah objek yang masing-masing bobotnya adalah w1, w2, β¦, wn. Tentukan nilai bi sedemikian sehingga M = b1w1 + b2w2 + β¦ + bnwn yang dalam hal ini, bi bernilai 0 atau 1. Jika bi = 1, berarti objek i dimasukkan kedalam knapsack, sebaliknya jika bi = 0, objek i tidak dimasukkan. Dalam teori algoritma, persoalan knapsack termasuk ke dalam kelompok NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polynomial.
Algoritma Knapsack Sederhana Ide dasar dari algoritma kriptografi knapsack adalah mengkodekan pesan sebagai rangkaian solusi dari dari persoalan knapsack. Setiap bobot wi di dalam persoalan knapsack merupakan kunci private, sedangkan bit-bit plaintext menyatakan bi. Sayangnya, algoritma knapsack sederhana ini hanya dapat digunakan untuk enkripsi, tetapi tidak dirancang untuk dekripsi. Algoritma superincreasing
Universitas Sumatera Utara
10
Knapsack adalah algoritma yang lemah, karena ciphertext dapat didekripsi menjadi plainteksnya secara mudah dalam waktu lancar.
Algoritma non-superincreasing Knapsack atau normal Knapsack adalah kelompok algoritma Knapsack 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 rahasia (untuk dekripsi). Kunci publik merupakan barisan non-superincreasing sedangkan kunci rahasia tetap merupakan barisan superincreasing. Modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle.
a. Cara membuat kunci publik dan kunci rahasia: 1. Tentukan barisan superincreasing. 2. Kalikan setiap elemen di dalam barisan tersebut dengan n modulo m. Modulus m seharusnya angka yang lebih besar daripada jumlah semua elemen di dalam barisan, sedangkan pengali n seharusnya tidak mempunyai faktor persekutuan dengan m. 3. Hasil
perkalian
akan
menjadi
kunci
publik
sedangkan
barisan
superincreasing semula menjadi kunci rahasia (Namira, 2013).
b. Enkripsi Algoritma Knapsack 1. Menggunakan kunci publik untuk melakukan enkripsi. 2. Plaintext dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. 3. Kalikan setiap bit didalam blok dengan elemen yang berkoresponden di dalam kunci publik.
c. Dekripsi Algoritma Knapsack 1. Menggunakan kunci rahasia untuk melakukan dekripsi. 2. Menghitung nilai n-1, yaitu kebalikan n modulo m, sedemikian sehingga n * n-1 β‘ 1 (mod m).
Universitas Sumatera Utara
11
3. Mengalikan setiap kriptogram dengan n-1 mod m, lalu nyatakan hasil kalinya
sebagai
penjumlahan
elemen-elemen
kunci
rahasia
untuk
memperoleh plaintext dengan menggunakan algoritma pencarian solusi superincreasing (Timothy, 2014).
Contoh : Misalkan barisan superincreasing adalah {2, 5, 9, 17, 25, 50}, m = 103, dan n = 31. Barisan non-superincreasing (atau normal) Knapsack dihitung sbb: 2 . 31 mod 103 = 62 5 . 31 mod 103 = 52 9 . 31 mod 103 = 73 17 . 31 mod 103 = 12 25 . 31 mod 103 = 54 50 . 31 mod 103 = 5 Jadi, kunci publik adalah {62, 52, 73, 12, 54, 5}, sedangkan kunci rahasia adalah {2,5, 9, 17, 25, 50}.
Enkripsi dilakukan dengan cara yang sama seperti algoritma Knapsack sebelumnya. Mula-mula plaintext dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. Kemudian kalikan setiap bit di dalam blok dengan elemen yang berkoresponden di dalam kunci publik.
Contoh : Misalkan Plaintext: 011001100000110110 dan kunci publik yang digunakan seperti pada Contoh sebelumnya. Plaintext dibagi menjadi blok yang panjangnya 6, kemudian setiap bit di dalam blok dikalikan dengan elemen yang berkorepsonden di dalam kunci publik: Blok plaintext ke-1
: 011001
Kunci publik
: 62, 52, 73, 12, 54, 5
Kriptogram
: (1 Γ 52) + (1 Γ 73)+ (1 Γ 5) = 130
Blok plaintext ke-2
: 100000
Kunci publik
: 62, 52, 73, 12, 54, 5
Kriptogram
: (1 Γ 62) = 62
Universitas Sumatera Utara
12
Blok plaintext ke-3
: 110110
Kunci publik
: 62, 52, 73, 12, 54, 5
Kriptogram
: (1 Γ 62) + (1 Γ 52) + (1 Γ 54) + (1 Γ 5) = 173
Jadi, ciphertext yang dihasilkan : 130, 62, 173
Dekripsi dilakukan dengan menggunakan kunci rahasia. Mula-mula penerima pesan menghitung nβ1 , yaitu balikan n modulo m, sedemikian sehingga n . nβ1β‘ 1 (mod m). Kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut (disamping dengan cara yang sudah pernah diberikan pada Teori Bilangan Bulat): n . nβ1 β‘ 1 (mod m) n . nβ1 = 1 + km nβ1 = (1 + km)/n , k sembarang bilangan bulat Kalikan setiap kriptogram dengan nβ1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci rahasia untuk memperoleh plaintext dengan menggunakan algoritma pencarian solusi superincreasing Knapsack.
Contoh : Ciphertext dari 130, 62, 173 akan dideskripsikan dengan menggunakan kunci rahasia {2, 5, 9, 17, 25, 50}. Di sini, n = 31 dan m = 103. Nilai nβ1 diperoleh sbb: nβ1 = (1 + 103k)/31 Dengan mencoba k = 0, 1, 2, β¦, maka untuk k = 3 diperoleh nβ1 bilangan bulat, yaitu: nβ1 = (1 + 103 . 3)/31 = 10
Ciphertext dari Contoh sebelumnya adalah 130, 62, 173 . Plaintext yang berkoresponden diperoleh kembali sebagai berikut: 130. 10 mod 103 = 64 = 5+ 9 + 50 , berkoresponden dengan 011001 62 . 10 mod 103 = 2 = 2 berkoresponden dengan 100000 173 . 10 mod 103 = 82 = 2 + 5 + 25 + 50 , berkoresponden dengan 110110 Jadi, plaintext yang dihasilkan kembali adalah: 011001 100000 110110
Universitas Sumatera Utara
13
2.3. Kompresi Data Kompresi data merupakan suatu upaya untuk mengurangi jumlah bit yang digunakan untuk menyimpan atau mentransmisikan data. kompresi data meliputi berbagai teknik kompresi yang diterapkan dalam bentuk perangkat lunak (Software) maupun perangkat keras (Hardware). Bila ditinjau dari penggunaannya, kompresi data dapat bersifat umum untuk segala keperluan atau bersifat khusus untuk keperluan tertentu. Keuntungan data yang terkompresi antara lain: penyimpanan data lebih hemat ruang, mempersulit pembacaan data oleh pihak yang tidak berkepentingan dan memudahkan distribusi data dengan media removable seperti flashdisk, CD, DVD, dll (Tjatur, 2011). Saat ini terdapat berbagai tipe algoritma kompresi, antara lain: Huffman, IFO, LZHUF, LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block-Sorting Lossless, Run-Length, Shannon-Fano, Arithmetic, PPM (Prediction by Partial Matching), Burrows-Wheeler Block Sorting, dan Half Byte. (Namira, 2013).
2.3.1. Klasifikasi tipe kompresi data Secara umum, kompresi data dapat diklasifikasikan ke dalam 2 macam, yaitu (Arief, 2006):
1. Kompresi Lossy Teknik kompresi dimana data yang sudah dikompresi tidak dapat dikembalikan seperti data semula, dinamakan lossy atau distortive atau noise-incurring. Kompresi seperti ini digunakan untuk gambar dan suara dimana kehilangan (loss) data dapat diijinkan dalam kasus tertentu. Contoh data adalah adalah JPEG dan GIF untuk gambar, MPEG untuk video dan MP3 (MPEG Layer-3) untuk format suara. Contoh: metode kompresi lossy adalah Transform Coding, Wavelet, dan lain-lain.
2. Kompresi Lossless Kompresi lossless adalah teknik kompresi untuk data seperti file program, file dokumen dan record basis data dimana sama sekali tidak diijinkan perbedaan
Universitas Sumatera Utara
14
antara data awal (sebelum kompresi) dan data setelah dilakukan dekompresi. Contoh program kompresi lossless seperti winzip, winrar, dan pkzip. Contoh metode lossless adalah Boldi-Vigna, Shannon-Fano Coding, Huffman Coding, Arithmetic Coding, Run Length Encoding dan lain sebagainya (Rachmat, 2015).
2.3.2
Dekompresi Data
Dekompresi adalah kebalikan dari proses kompresi. Setiap proses kompresi data tentu saja membutuhkan proses dekompresi kembali untuk mendapatkan data yang sesungguhnya. Pada praktek kasusnya, dekompresi yang baik atau dapat dikatakan efisien jika algoritma dekompresinya sesuai dengan algoritma kompresi pada kasus itu sendiri. Audio, Video, dan Foto adalah contoh data yang sangat sering dilakukan proses kompresi dan dekompresi tentu saja menggunakan dengan algoritma yang sama. Adapun hubungan antara kompresi dan dekompresi dapat dilihat pada gambar dibawah ini (Namira, 2013) :
Output
Compression Input Source File
Compression
Algorithm
File
Decompression
Input
Output
Algorithm
Compression File
decompresion File
Gambar 2.4 Compression Dan Decompression Aplikasi
dekompresi
data
sering
juga
disebut
dengan
dekompresor
(decompresor). Bagaimanapun dekompresi adalah salah satu solusi terbaik untuk mengembalikan data yang telah mengalami proses kompresi (compressed Files). Kompresor dan dekompresor dapat dikatakan sebagai dua proses yang saling berkaitan baik pada sumber dan tujuan masing-masing proses. Pada kasusnya, source disebut dengan coder dan destinasi pesan disebut dengan decoder.
Universitas Sumatera Utara
15
2.4 Algoritma Boldi-Vigna (ΞΆ4) Zeta (ΞΆ) kode juga dikenal sebagai Boldi-Vigna code, diperkenalkan oleh Paolo Boldi dan Sebastiano Vigna sebagai keluarga Variable-Length Code yang merupakan pilihan terbaik untuk kompresi. Dimulai dengan hukum Zipf, seorang kuasa hukum empiris [Zipf 07] diperkenalkan oleh Linguis George K. Zipf. Menyatakan bahwa frekuensi setiap kata dalam bahasa alami kira-kira berbanding terbalik dengan posisinya dalam tabel frekuensi. Boldi-Vigna kode zeta dimulai dengan bilangan bulat k positif yang menjadi menyusut oleh Faktor kode. Himpunan semua bilangan bulat positif dibagi menjadi [20, 2k - 1], [2k, 22k - 1], [22k, 23k - 1], dan secara umum [2hk, 2
(h + 1) k
- 1]. Panjang
setiap interval adalah 2 (h + 1) k - 2hk (Salomon, 2007). Diberikan interval [0, z-1] dan sebuah integer x di interval ini, pertama kita hitung s =[ log2 z]. Jika x <2s - z, dikodekan sebagai unsur xth elemen pada interval ini, pada s - 1 bit. Jika tidak, maka dikodekan sebagai (x - z - 2s) th elemen pada interval di s bit. Dengan latar belakang ini, di sini dibahas bagaimana kode zeta dibangun. Mengingat bilangan bulat n akan dikodekan, kami mempekerjakan k untuk menentukan interval di mana n berada. Salah satu yang diketahui, nilai-nilai h dan k yang digunakan dengan cara yang sederhana untuk membangun kode zeta n dalam dua bagian, nilai h + 1 di unary (sebagai nol h diikuti dengan 1), diikuti oleh minimal kode biner dari n - 2hk dalam interval [0, 2 (h + 1) k - 2hk - 1] (Salomon, 2007).
Contoh: Diberikan k = 3 dan n = 16, kita tentukan dulu n yang terletak di interval [23, 26 -1], yang sesuai dengan h = 1. Dengan demikian, h + 1 = 2 dan kode unary dari 2 adalah 01. Kode biner minimal 16 - 23 = 8 dibangun dalam langkah-langkah berikut. Panjang z dari interval [23, 26 -1] adalah 56. Ini berarti bahwa s =[ log2 56] = 6. Nilai 8 akan dikodekan 8 = 26 - 56, sehingga dikodekan sebagai x - z - 2s = 8- 56-26 = 16 dalam enam bit, sehingga 010000. Dengan demikian, kode ΞΆ3 dari n = 16 adalah 010000111 (Salomon, 2007). Contoh daftar kode Boldi-Vigna (ΞΆ4) dapat dilihat pada tabel 2.1 dibawah ini :
Universitas Sumatera Utara
16
Tabel 2.1 Kode Daftar Boldi-Vigna ΞΆ4
ΞΆ4
n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1000 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 010000111
Contoh : Diberikan string = βERNA LESTARIβ Ξ£ = { E, R, N, A, sp, L, S, T, I } , dengan sp = spasi Maka dibuat sebuah tabel untuk menghitung bit setelah di kompresi. Tabel bisa dilihat pada tabel 2.2 dibawah ini : Tabel 2.2 Kompresi Dengan Boldi-Vigna (ΞΆ4) Ξ£
Freq
Boldi-Vigna (ΞΆ4)
Bit
Freq*Bit
E
2
1000
4
8
R
2
10010
5
10
A
2
10011
5
10
N
1
10100
5
5
Sp
1
10101
5
5
L
1
10110
5
5
S
1
10111
5
5
T
1
11000
5
5
I
1
11001
5
5
Jumlah Bit
58 Bit
Universitas Sumatera Utara
17
2.5 Parameter pembanding Ada 3 parameter pembanding yang digunakan dalam peneltiaan ini, yaitu Ratio of Compression (RC), Compression Ratio (CR), dan Redudancy (Rd).
1. Ratio of Compression (Rc) Ratio of Compression (Rc) adalah perbandingan antara ukuran data sebelum dikompresi dengan ukuran data setelah dikompresi (Salomon, 2007).
πΉπ =
ππππππ π
πππ πππππππ π
πππππππππ ππππππ π
πππ πππππππ π
πππππππππ
β¦β¦β¦β¦...β¦β¦β¦β¦β¦(1)
2. Compression Ratio (Cr) Compression Ratio (Cr) adalah persentasi besar data yang telah dikompresi yang didapat dari hasil perbandingan antara ukuran data setelah dikompresi dengan ukuran data sebelum dikompresi (Salomon, 2007). ππππππ π
πππ πππππππ π
πππππππππ
πͺπ = ππππππ π
πππ πππππππ π
πππππππππ π πππ%...β¦β¦β¦β¦β¦.. (2)
3.
Redudancy (Rd) Redundancy (Rd) adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi setelah data dikompresi dapat dihitung Redundancy data yaitu persentasi dari hasil selisih antara ukuran data sebelum dikompresi dengan data setelah dikompresi (Salomon, 2007). πΉπ
= πππ% β πͺπβ¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦..β¦...... (3)
2.6 Penelitian Yang Relevan Berikut ini beberapa penelitian tentang kriptografi dan kompresi data yang berkaitan dengan algoritma knapsack dan Boldi-Vigna (ΞΆ4): 1.
Pada penelitian Namira (2013), Implementasi Algoritma Kriptografi Knapsack Dan Algoritma Kompresi Data Run Length Encoding Untuk Mengamankan Dan Kompresi File Teks. Kesimpulan dari penelitian ini yaitu Enkripsi teks
Universitas Sumatera Utara
18
dengan menggunakan algoritma Knapsack dapat mengamankan pesan dengan baik. 2.
Berdasarkan penelitian oleh Disa (2013), Implementasi Pengamanan File Text Dengan Algoritma Kriptografi Knapsack Dan Algoritma Steganografi FOF (First Of File). Kesimpulan dari penelitian ini yaitu Waktu proses dekripsi jauh lebih lama jika dibandingkan dengan waktu proses enkripsi. Hal ini disebabkan karena penambahan permutasi pada algoritma kriptografi Knapsack.
3.
Menurut Markle dan Hellman Knapsack problem akan semakin bagus jika jumlah plaintext n lebih besar dari 100 bit, karena akan menghasilkan ciphertext dua kali lebih banyak dari plaintext awal sehingga sulit bagi kriptanalis untuk menentukan satu dari mereka.
4.
Berdasarkan kutipan dari buku David Salomon (2007), algoritma Boldi-Vigna sebagai keluarga Variable-Length Code yang merupakan pilihan terbaik untuk kompresi.
Universitas Sumatera Utara