perancangan dan implementasi aplikasi kriptosistem data ... · jenis algoritma yang dapat digunakan...
TRANSCRIPT
2
1. Latar Belakang masalah
Pemakaian teknologi komputer sebagai salah satu aplikasi dari teknologi
informasi sudah menjadi suatu kebutuhan, karena banyak pekerjaan yang dapat
diselesaikan dengan cepat, akurat, dan efisien. Kemajuan teknologi memicu
kebutuhan informasi yang semakin besar. Sayangnya kebutuhan informasi yang
besar ini berdampak pada kebutuhan storage (media penyimpanan) yang semakin
besar pula. Storage yang besar tentu saja membutuhkan cost (harga) yang besar
dan kecepatan akses data yang semakin lambat. Untuk mengatasi masalah storage
dan kecepatan akses, salah satunya dengan mengkompresi informasi yang
disimpan. Kompresi file adalah sebuah cara yang bertujuan untuk menulis ulang
suatu file supaya menjadi lebih ringkas namun informasi yang terdapat di dalam
file aslinya tidak mengalami kerusakan atau pengurangan. Salah satu algoritma
yang dapat digunakan untuk mengkompresi suatu file adalah algoritma Huffman
Tree Perkembangan teknik telekomunikasi dan sistem pengolahan data berkaitan
erat dengan komunikasi antar pengguna komputer yang satu dengan komputer
yang lain yang berfungsi untuk menyalurkan data sehingga masalah keamanan
merupakan salah satu aspek penting dari suatu informasi. Dalam komunikasi data
terdapat sebuah metode pengamanan data yang dikenal dengan nama kriptografi.
Kriptografi merupakan salah satu metode pengamanan data yang dapat digunakan
untuk menjaga kerahasiaan data, keaslian data, serta keaslian pengirim. Salah satu
jenis algoritma yang dapat digunakan untuk menyandikan pesan teks adalah
algoritma GOST. GOST merupakan singkatan dari “Gosudarstvennyi Standard”
atau “Government Standard”. Algoritma GOST memiliki jumlah proses sebanyak
32 round dan menggunakan 64 bit block cipher dengan panjang kunci 256 bit.
Metoda GOST juga menggunakan 8 buah S-Box yang permanen dan operasi XOR
serta Rotate Left Shift. Berdasarkan uraian tersebut, akan dibuat suatu aplikasi
dengan Algoritma GOST untuk melakukan proses enkripsi dan dekripsi data.
Penelitian mengambil topik “Perancangan dan Implementasi Aplikasi
Kriptosistem Data File Terkompresi Menggunakan Algoritma GOST”.
2. Tinjauan Pustaka
Penelitian sebelumnya yang terkait dalam penelitian ini, dengan judul
“Perancangan Program Aplikasi Pengamanan Data Menggunakan Algoritma
GOST 34.11, GOST 28147, dan Steganografi GLM”, menyatakan bahwa
algoritma GOST 34.11 yang dapat menghasilkan message digest sebagai sidik jari
pesan, akan menyediakan otentikasi, untuk mengetahui apakah pesan yang
diterima adalah pesan yang asli, dan belum diubah selama proses pengiriman,
Algoritma GOST 28147 dimana kunci yang digunakan pada proses enkripsi sama
dengan kunci dekripsi. Sedangkan, steganografi GLM digunakan untuk
melakukan proses embedd dan extract kunci simetris [1].
Penelitian lainnya membahas “Perancangan Perangkat Lunak
Pembelajaran Kriptografi Untuk Pengamanan Record dengan Metode GOST”.
Aplikasi yang dibuat adalah dengan merancang aplikasi pengamanan record
dengan metode GOST, merancang aplikasi pembelajaran dengan metode CAI
(Computer Assisted Instucion). Pengujian pada penelitian ini adalah dengan data
text dan record [2].
3
Berdasarkan penelitian yang pernah dilakukan tentang penerapan
algoritma GOST, maka dilakukan penelitian yang membahas perancangan dan
implementasi algoritma GOST. Dalam penelitian ini, sebelum penerapan
algoritma GOST, yaitu proses enkripsi data teks dan data image, terlebih dahulu
data dikompresi dengan algoritma Huffman. Penelitian ini akan menganalisis
ukuran file setelah mengalami proses kompresi dan dekompresi, serta proses
enkripsi dan dekripsi.
Algoritma GOST
GOST merupakan singkatan dari “Gosudarstvennyi Standard” atau
“Government Standard”. Metoda GOST merupakan suatu algoritma block cipher
yang dikembangkan oleh seorang berkebangsaan Uni Soviet. Metoda ini
dikembangkan oleh pemerintah Uni Soviet pada masa perang dingin untuk
menyembunyikan data atau informasi yang bersifat rahasia pada saat komunikasi.
Algoritma GOST merupakan suatu algoritma enkripsi sederhana yang memiliki
jumlah proses sebanyak 32 round (putaran) dan menggunakan 64 bit block cipher
dengan 256 bit key. Metoda GOST juga menggunakan 8 buah S-Box yang
berbeda-beda dan operasi XOR serta Left Circular Shift [3].
Proses Pembentukan Kunci
Proses pembentukan kunci dapat dilihat pada penjabaran berikut ini :
Input key berupa 256 bit key dengan perincian k1, k2, k3, k4, …, k256.
Input key tersebut dikelompokkan dan dimasukkan ke dalam 8 buah KSU
dengan aturan seperti berikut,
K1 = (k32, …, k1)
K2 = (k64, …, k33)
K3 = (k96, …, k65)
K4 = (k128, …, k97)
K5 = (k160, …, k129)
K6 = (k192, …, k161)
K7 = (k224, …, k193)
K8 = (k256, …, k225)
Proses Enkripsi
Proses enkripsi dengan metoda GOST untuk satu putaran (iterasi), dapat
dilihat pada penjabaran berikut ini,
1. 64 bit plaintext dibagi menjadi 2 buah bagian 32 bit, yaitu Li dan Ri.
Caranya : Input a1(0), a2(0), …, a32(0), b1(0), …, b32(0)
R0 = a32(0), a31(0), …, a1(0)
L0 = b32(0), b31(0), …, b1(0)
2. (Ri + Ki) mod 232
. Hasil dari penjumlahan modulo 232
berupa 32 bit.
3. Hasil dari penjumlahan modulo 232
dibagi menjadi 8 bagian, dimana masing-
masing bagian terdiri dari 4 bit. Setiap bagian dimasukkan ke dalam tabel S-
Box yang berbeda, 4 bit pertama menjadi input dari S-Box pertama, 4 bit
kedua menjadi S-Box kedua, dan seterusnya.
S-Box yang digunakan pada metoda GOST terlihat pada Tabel 1.
4
Tabel 1 S-Box dari Metoda GOST [3]
Tabel
S-Box 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
S-Box 0 4 10 9 2 13 8 0 14 6 11 1 12 7 15 5 3
S-Box 1 14 11 4 12 6 13 15 10 2 3 8 1 0 7 5 9
S-Box 2 5 8 1 13 10 3 4 2 14 15 12 7 6 0 9 11
S-Box 3 7 13 10 1 0 8 9 15 14 4 6 12 11 2 5 3
S-Box 4 6 12 7 1 5 15 13 8 4 10 9 14 0 3 11 2
S-Box 5 4 11 10 0 7 2 1 13 3 6 8 5 9 12 15 14
S-Box 6 13 11 4 1 3 15 5 9 0 10 14 7 6 8 2 12
S-Box 7 1 15 13 0 5 7 10 4 9 2 3 14 6 11 8 12
Cara melihat dari S-Box yaitu input biner diubah menjadi bilangan desimal
dan hasilnya menjadi urutan bilangan dalam S-Box.
Tabel 2 Penjelasan Cara Kerja S-Box dari Metoda GOST [3]
Posisi 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
S-Box 1 4 10 9 2 13 8 0 14 6 11 1 12 7 15 5 3
Contoh, jika data input ke S-Box adalah 5 maka dicari data pada posisi ke-
5. Output yang dihasilkan adalah 8.
4. Hasil yang didapat dari substitusi ke S-Box dan digabungkan kembali menjadi
32 bit dan kemudian dilakukan rotasi left shift sebanyak 11 bit.
5. Ri+1 = Ri (hasil dari rotate left shift) XOR Li.
6. Li+1 = Ri sebelum dilakukan proses.
Proses Dekripsi
Proses dekripsi merupakan proses kebalikan dari proses enkripsi.
Penggunaan kunci pada masing-masing putaran pada proses dekripsi adalah
sebagai berikut,
Putaran 1 – 8 : K1, K2, K3, …, K8
Putaran 9 – 16 : K8, K7, K6, …, K1
Putaran 17 – 24 : K8, K7, K6, …, K1
Putaran 25 – 32 : K8, K7, K6, …, K1
Algoritma yang digunakan untuk proses dekripsi sama dengan proses
enkripsi dengan aturan untuk langkah 5 dan 6 pada putaran ke-31 adalah sebagai
berikut,
R32 = R31 sebelum dilakukan proses.
L32 = R31 XOR L31.
Plaintext yang dihasilkan pada proses dekripsi adalah,
L32 = b(32), b(31), …, b(1)
R32 = a(32), a(31), …, a(1)
P = a(1), …, a(32), b(1), …, b(32)
Kompresi Data
Kompresi data (pemampatan data) merupakan pengurangan ukuran suatu
data menjadi ukuran yang lebih kecil dari aslinya. Kompresi data ini sangat
menguntungkan manakala terdapat suatu data yang berukuran besar dan di
dalamnya mengandung banyak pengulangan karakter. Adapun teknik dari
kompresi ini adalah dengan mengganti karakter yang berulang-ulang tersebut
5
dengan suatu pola tertentu sehingga berkas tersebut dapat meminimalisasi
ukurannya. Kompresi data umumnya diterapkan pada mesin komputer, hal ini
dilakukan karena setiap simbol yang dimunculkan pada komputer memiliki nilai
bit-bit yang berbeda. Kompresi data digunakan untuk mengurangkan jumlah bit-
bit yang dihasilkan dari setiap simbol yang muncul. Dengan kompresi ini
diharapkan dapat mengurangi (memperkecil ukuran data) dalam ruang
penyimpanan [4].
Algoritma Huffman
Algoritma Huffman termasuk ke dalam kelas yang menggunakan metode
statik. Metode statik adalah metode yang selalu menggunakan peta kode yang
sama, metode ini membutuhkan dua fase (two-pass): fase pertama untuk
menghitung probabilitas kemunculan tiap simbol/karakter dan menentukan peta
kodenya, fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan
ditransmisikan. Sedangkan berdasarkan teknik pengkodean simbol yang
digunakan, algoritma Huffman menggunakan metode symbolwise. Metoda
symbolwise adalah metode yang menghitung peluang kemunculan dari setiap
simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode
lebih pendek dibandingkan simbol yang jarang muncul [5].
Pembentukan Pohon Huffman
Kode Huffman pada dasarnya merupakan kode prefiks (prefix code). Kode
prefiks adalah himpunan yang berisi sekumpulan kode biner, dimana pada kode
prefiks ini tidak ada kode biner yang menjadi awal bagi kode biner yang lain.
Kode prefiks biasanya direpresentasikan sebagai pohon biner yang diberikan nilai
atau label. Untuk cabang kiri pada pohon biner diberi label 0, sedangkan cabang
kanan pada pohon biner diberi label 1. Rangkaian bit yang terbentuk pada setiap
lintasan dari akar ke daun merupakan kode prefiks untuk karakter yang
berpadanan. Pohon biner ini biasa disebut pohon Huffman [6].
3. Metode dan Perancangan Sistem
Prototype Model adalah metode pengembangan perangkat lunak yang
banyak digunakan. Metode ini memungkinkan adanya interaksi antara
pengembang sistem dengan pengguna sistem nantinya, sehingga dapat mengatasi
ketidakserasian antara pengembang dan pengguna. Bagan mengenai prototype
model dapat dilihat pada Gambar 4.
Gambar 4 Bagan Prototype Model [7]
6
Tahap-tahap dalam Prototype Model adalah sebagai berikut:
1. Listen to Costumer ; Pada tahap ini dilakukan analisis terhadap permasalahan
yang ada, yaitu mendapatkan data dan literatur yang terkait dengan proses
kompresi, enkripsi, dekripsi dan dekompresi terhadap data teks dan gambar,
menggunakan algoritma GOST; melalui dokumen dan referensi yang ada.
2. Build ; Selanjutnya setelah memperoleh data dan mengetahui proses kompresi
dan dekompresi dengan metode Huffman serta proses enkripsi dan dekripsi
dengan GOST, langkah berikutnya adalah membuat perancangan dengan
menggunakan Data Flow Diagram (DFD) mengenai sistem yang akan
dibangun nantinya, perancangan algoritma Huffman dan algoritma GOST.
Selain itu dilakukan pula perancangan pada user interface berupa prototype
sistem.
3. Costumer Test ; Pada Tahap ini dilakukan pengujian sistem, yaitu
menjalankan proses implementasi sistem, dengan menguji data teks dan data
gambar, serta melihat hasil yang diberikan apakah sudah sesuai dengan
konsep Kompresi, Kriptosistem dan algoritma GOST.
Proses Kompresi dengan Algoritma Huffman
Algoritma Huffman yang diterapkan dalam program aplikasi ini adalah
tipe statik, dimana dilakukan dua kali pembacaan (two-pass) terhadap file yang
akan dikompresi. Proses kompresi dengan algoritma huffman, dapat dijelaskan
sebagai berikut : Algoritma kompresi huffman dimulai dengan input file.
Selanjutnya file tersebut diproses dengan perhitungan karakter yang muncul.
Kemudian dilanjutkan dengan pembentukan huffman tree. Pembentukan Huffman
tree ini membaca karakter di dalam teks untuk menghitung frekuensi kemunculan
setiap karakter. Setiap karakter penyusun teks dinyatakan sebagai pohon
bersimpul tunggal. Setelah pembentukan huffman tree selesai, maka akan
dilakukan pengolahan pengkodean data. Berdasarkan setiap proses yang terjadi,
maka proses atau output yang keluar berbeda dengan file aslinya sebelum
dikompresi. Proses kompresi dengan algoritma huffman, dalam bentuk flowchart,
ditunjukkan pada Gambar 7.
Gambar 7 Flowchart Proses Kompresi dengan Algoritma Huffman
Proses Dekompresi dengan Algoritma Huffman
Proses dekompresi dengan algoritma huffman, dapat dijelaskan sebagai
berikut : Algoritma dekompresi huffman dimulai dengan input file. Selanjutnya
file tersebut diproses dengan membaca karakter yang muncul. Seperti halnya
proses kompresi, dekompresi juga membentuk huffman tree. Pembentukan
Huffman tree ini membaca karakter di dalam teks untuk menghitung frekuensi
kemunculan setiap karakter. Kemudian membaca kode dari hasil dari kompresi.
7
Setelah membaca kode dari hasil kompresi, proses decoding berjalan untuk
mengembalikan ukuran file asli. Berdasarkan setiap proses yang terjadi, maka
output dari sistem adalah data asli. Proses kompresi dengan algoritma huffman,
dalam bentuk flowchart, ditunjukkan pada Gambar 8.
Gambar 8 Flowchart Proses Dekompresi dengan Algoritma Huffman
Proses Enkripsi dengan Algoritma GOST
Proses enkripsi dengan algoritma GOST, dapat dijelaskan sebagai berikut :
Proses enkripsi file dimulai dengan input file (plaintext). Selanjutnya input key
sebagai perhitungan manual S-box dalam proses enkripsi. Setelah proses input
selesai, maka selanjutnya proses enkripsi dijalankan. Proses enkripsi melakukan
langkah-langkah proses enkripsi, perhitungan manual S-box, dan lain-lain. Setelah
proses selesai dijalankan, user mendapatkan hasil output (ciphertext). Proses
enkripsi dengan algoritma GOST, dalam bentuk flowchart, ditunjukkan pada
Gambar 9.
Gambar 9 Flowchart Proses Enkripsi dengan Algoritma GOST
Proses Dekripsi dengan Algoritma GOST
Proses dekripsi dengan algoritma GOST, dapat dijelaskan sebagai berikut :
Proses dekripsi file dimulai dengan input file (ciphertext). Selanjutnya input key
sebagai perhitungan manual S-box dalam proses enkripsi. Setelah proses input
selesai, maka selanjutnya proses dekripsi dijalankan. Proses dekripsi melakukan
langkah-langkah proses dekripsi, perhitungan manual S-box, kunci yang
diterapkan dan lain-lain. Setelah proses selesai dijalankan, user mendapatkan hasil
output yaitu file asli (plaintext). Proses dekripsi dengan algoritma GOST, dalam
bentuk flowchart, ditunjukkan pada Gambar 10.
8
Gambar 10 Flowchart Proses Dekripsi dengan Algoritma GOST
4. Implementasi dan Pembahasan
Antarmuka untuk Proses Enkripsi
File yang akan dienkripsi dalam kriptosistem yang dibangun adalah file
hasil kompresi.
Gambar 11 Antarmuka Proses Enkripsi
Gambar 11 menunjukkan antarmuka dari proses enkripsi. Untuk
menjalankan proses enkripsi, user membuka file yang akan dienkripsi, berupa teks
dan gambar (plaintext/plain image), dengan memilih tombol Select File. File yang
akan dienkripsi merupakan file hasil kompresi. Selanjutnya user melakukan
beberapa proses berikut, memilih tombol Save Compressed File As, untuk
menentukan tempat penyimpanan file hasil kompresi; memasukkan kunci untuk
enkripsi pada textbox Encryption 32 Bytes Key; memilih tombol Save Encrypted
File As, untuk menentukan tempat penyimpanan file hasil enkripsi
(ciphertext/cipher image). Untuk menjalankan proses enkripsi, user memilih
tombol Compress & Encrypt. File yang akan dienkripsi, terlebih dahulu akan
dikompresi, dimana proses kompresi dilakukan secara bersamaan dengan proses
enkripsi, juga ditampilkan waktu yang dibutuhkan untuk proses kompresi dan
proses enkripsi. Proses enkripsi yang dilakukan menghasilkan file hasil kompresi
dan file hasil enkripsi. Proses dan perintah yang digunakan dalam proses Enkripsi
akan dijelaskan sebagai berikut. Proses enkripsi yang dilakukan, diawali dengan
proses kompresi menggunakan metode Huffman. Plaintext (bisa berupa .doc, .txt,
atau .jpg) dikompresi menjadi plaintext (ekstensi file (.huff)). Selanjutnya proses
enkripsi dengan metode GOST, dilakukan dengan cara berikut, plaintext (berupa
file hasil kompresi) diubah dalam bentuk biner (ciphertext), lalu plaintext di-XOR
dengan nilai pembentukan kunci, dan didapat hasil akhir berupa ciphertext dalam
bentuk biner, yaitu file GOST (.gst). Jadi setelah memilih tombol ’Compress &
Encrypt’, maka kompresi dengan enkripsi berjalan secara bersamaan, memberikan
hasil 2 (dua) file, yaitu file hasil kompresi dan file hasil enkripsi.
9
Implementasi Proses Enkripsi
Kode Program 1 merupakan perintah untuk melakukan proses kompresi
data, yang dipanggil dan dijalankan pada saat tombol Compress & Encrypt
dipilih. Kode Program 1 Perintah untuk Proses Kompresi
Kode Program 2 merupakan perintah untuk melakukan proses enkripsi,
yang dipanggil dan dijalankan pada saat tombol Compress & Encrypt dipilih.
Kode Program 2 Perintah untuk Proses Enkripsi
Kode Program 3 Perintah Tombol Compress dan Enkripsi
Pada Kode Program 3, perintah pada baris ke-1 digunakan untuk memulai
proses encrypt yang diawali dengan pemberitahuan kepada user yang menandakan
private void encryptButton_Click(object sender, EventArgs e) {
AddLog("Process Started.");
Mulai = DateTime.Now;
Thread tr = new Thread(new ThreadStart(ProcessEncrypt));
tr.Start();} [1]
private void ProcessEncrypt() {
byte[] data = File.ReadAllBytes(this.plainFileTextBox.Text); [2]
AddLog("Compress File " + this.plainFileTextBox.Text); [3]
AddLog("Result " + this.compressResultTextBox.Text);
byte[] compressed = Compression.Compress(data); [4]
File.WriteAllBytes(this.compressResultTextBox.Text, [5]
compressed);
GostKey key = new GostKey(this.encryptKeyTextBox.Text); [6]
AddLog("Encrypt File " + this.compressResultTextBox.Text);
gost.Encrypt(key, compressed); } [7]
class Compression {
public static byte[] Compress(byte[] data) {
HuffmanTree huff = new HuffmanTree();
String base64String = Convert.ToBase64String(data);
//huff.Build(base64String);
//String s = Encoding.Default.GetString(data);
huff.Build(base64String);
BitArray encoded = huff.Encode(base64String);
int tambahan = 8 - (encoded.Count % 8);
byte[] bytesData = ConvertToByte(encoded, tambahan);
byte[] tree =
Encoding.Default.GetBytes(huff.PrintFrequencies());
byte[] panjangTree = BitConverter.GetBytes((short)tree.Length);
byte panjangPad = (byte)tambahan;
//byte[] hasilAkhir = new byte[panjangTree.Length + 1 +
tree.Length + bytesData.Length];
List<byte> list = new List<byte>();
list.AddRange(panjangTree);
list.Add(panjangPad);
list.AddRange(tree);
list.AddRange(bytesData);
return list.ToArray(); }
public void Encrypt(GostKey key, byte[] data) {
DateTime startTime = DateTime.Now;
byte[] sourceData = Utility.PadFiles(data);
byte[] info = CreateInfo(sourceData.Length - data.Length);
List<byte> list = new List<byte>();
list.AddRange(info);
list.AddRange(sourceData);
Started(this, new GostArgs() { Total = list.Count });
byte[] result = Cipher(key, list.ToArray(), Mode.Encryption);
Finished(this, new GostArgs() {
Mode = Mode.Encryption,
Carrier = result,
ElapsedTime = (DateTime.Now - startTime) }); }
10
proses akan dilakukan. Setelah itu ditandai dengan urutan waktu terhadap proses
yang akan dijalankan berikutnya. Perintah pada baris ke-2 digunakan untuk
membaca ukuran file plaintext yang dimasukkan. Selanjutnya perintah pada baris
ke-3, digunakan untuk menampilkan data plaintext yang telah terkompresi.
Perintah pada baris ke-4 digunakan untuk melakukan proses pemanggilan fungsi
kompresi, sehingga data yang dimasukkan akan melakukan proses kompresi
(terlihat pada Kode Program 1). Perintah pada baris ke-5 digunakan untuk
melakukan proses kompresi dan membaca ukuran file yang dimasukkan.
Selanjutnya perintah pada baris ke-6, digunakan untuk menginisialisasi ukuran
kunci berdasarkan karakter yang dimasukkan. Selanjutnya perintah pada baris ke-
7 digunakan untuk melakukan proses pemanggilan fungsi encrypt GOST (terlihat
pada Kode Program 2). Gambar 12 merupakan hasil kompresi dari plaintext (.txt)
menjadi plaintext (.huff), selanjutnya hasil enkrispi dari plaintext (.huff)
dienkripsi menjadi ciphertext (.gst), terlihat pada Gambar 13.
Gambar 12 Form Hasil Kompresi Gambar 13 Form Hasil Enkripsi
Metode Huffman Metode GOST
Antarmuka untuk Proses Dekripsi
File yang akan didekripsi dalam kriptosistem yang dibangun adalah file
hasil enkripsi (.gst).
Gambar 14 Antarmuka Proses Dekripsi
Gambar 14 menunjukkan antarmuka dari proses dekripsi. Untuk
menjalankan proses dekripsi, user membuka file yang akan didekripsi, berupa file
hasil enkripsi (ciphertext/cipher image), dengan memilih tombol Select File.
Selanjutnya user melakukan beberapa proses berikut, memilih tombol Save
Decrypted File As, untuk menentukan tempat penyimpanan file hasil dekripsi;
memasukkan kunci untuk dekripsi pada textbox Decryption 32 Bytes Key;
memilih tombol Save Decompressed File, untuk menentukan tempat
penyimpanan file hasil dekompresi (plaintext/plain image). Untuk menjalankan
proses dekripsi, user memilih tombol Decrypt & Decompressed. File yang akan
didekripsi, terlebih dahulu akan didekompresi, dimana proses dekompresi
dilakukan secara bersamaan dengan proses dekripsi, juga ditampilkan waktu yang
dibutuhkan untuk proses dekompresi dan proses dekripsi. Proses dekripsi yang
11
dilakukan menghasilkan file hasil dekompresi dan file hasil dekripsi. Proses dan
perintah yang digunakan dalam proses dekripsi dengan algoritma GOST akan
dijelaskan sebagai berikut. Proses dekripsi yang dilakukan, diawali dengan proses
mengembalikan ciphertext (.gst) ke data asli dalam bentuk plaintext (ekstensi file
(.huff)), lalu ciphertext di-XOR dengan nilai pembentukan kunci, akan diperoleh
hasil akhir berupa plaintext dalam bentuk file (.huff). Selanjutnya proses
dekompresi, mengembalikan data file plaintext (ekstensi file (.huff)) menjadi data
plaintext asli (bisa berupa .doc, .txt, atau .jpg), dengan ukuran file yang sama
sebelum terjadi proses kompresi. Jadi setelah memilih tombol ’Decrypt &
Decompress’, maka proses dekripsi dan proses dekompresi akan dijalankan secara
bersamaan, dimana proses ini akan memberikan output, berupa file hasil dekripsi
dan file hasil dekompresi.
Implementasi Proses Dekripsi
Kode Program 4 merupakan perintah untuk melakukan proses dekripsi,
yang dipanggil dan dijalankan pada saat tombol Decrypt & Deompress dipilih. Kode Program 4 Perintah Proses Dekripsi
Kode Program 5 merupakan perintah untuk melakukan proses dekompresi,
yang dipanggil dan dijalankan pada saat tombol Decrypt & Deompress dipilih. Kode Program 5 Perintah Proses Dekompresi
public void Decrypt(GostKey key, byte[] data) {
DateTime startTime = DateTime.Now;
Started(this, new GostArgs() { Total = data.Length });
byte[] result = Cipher(key, data, Mode.Decryption);
byte[] info = GetInfo(result);
byte[] original = new byte[result.Length - info.Length - (int)info[0]];
Array.Copy(result, info.Length, original, 0, original.Length);
Finished(this, new GostArgs() {
Mode = Mode.Decryption,
Carrier = original,
ElapsedTime = (DateTime.Now - startTime) }); }
public static byte[] Extract(byte[] data) {
byte[] panjangTree = new byte[] {data[0], data[1] };
byte panjangPad = data[2];
byte[] tree = new byte[BitConverter.ToInt16(panjangTree, 0)];
Array.Copy(data, 3, tree, 0, tree.Length);
byte[] bytesData = new byte[data.Length - tree.Length - 1 -
panjangTree.Length];
int panjangHeader = panjangTree.Length+1+tree.Length;
Array.Copy(data, panjangHeader, bytesData, 0, bytesData.Length);
BitArray bits = ConvertToBitArray(bytesData, panjangPad);
string treeString = Encoding.Default.GetString(tree);
HuffmanTree huff = new HuffmanTree();
huff.LoadTree(treeString);
string base64 = huff.Decode(bits);
//string s = huff.Decode(bits);
//byte[] hasil = Encoding.Default.GetBytes(s);
byte[] hasil = Convert.FromBase64String(base64);
return hasil; }
12
Kode Program 6 Perintah Proses Dekripsi dan Dekompresi
Pada Kode Program 6, perintah pada baris ke-1 digunakan untuk memulai
proses decrypt yang diawali dengan pemberitahuan kepada user yang menandakan
proses akan dilakukan. Setelah itu ditandai dengan urutan waktu terhadap proses
yang akan dijalankan berikutnya. Perintah pada baris ke-2 digunakan untuk
membaca ukuran file yang dimasukkan. Selanjutnya perintah pada baris ke-3
digunakan untuk menginisialisasi ukuran kunci berdasarkan karakter yang
dimasukkan. Perintah pada baris ke-4 digunakan untuk melakukan proses
pemanggilan fungsi decrypt untuk melakukan proses dekripsi (terlihat pada Kode
Program 4). Selanjutnya perintah pada baris ke-5, digunakan untuk membaca
ukuran file hasil dekripsi. Selanjutnya perintah pada baris ke-6 digunakan untuk
melakukan proses dekompresi. Perintah pada baris ke-7 digunakan untuk
melakukan proses pemanggilan fungsi decompress yang akan melakukan proses
extract file dekompresi menjadi data asli kompresi (terlihat pada Kode Program
5). Perintah pada baris ke-8 digunakan untuk menampilkan hasil decrypt yang
telah dilakukan.
Gambar 15 merupakan hasil dekripsi dari ciphertext (.gst) menjadi
Plaintext (.huff), selanjutnya data plaintext (.huff) dikompresi menjadi plaintext
(data asli), terlihat seperti pada Gambar 16
Gambar 15 Hasil Dekripsi dengan Gambar 16 Hasil Dekompresi dengan Metode GOST Algoritma Huffman
Evaluasi Prototype Sistem
Evaluasi prototype sistem merupakan tahap terakhir pada metode
pengembangan sistem yang digunakan, yaitu mengevaluasi apakah prototype
sistem yang telah dibangun sesuai dengan kebutuhan. Pada prototype pertama,
dirancang aplikasi hanya menggunakan algoritma GOST dalam kriptosistem yang
dibangun. Kemudian prototype tersebut dievaluasi oleh customer, dalam hal ini
adalah pembimbing. Customer memberikan masukan atau saran untuk
private void encryptButton_Click(object sender, EventArgs e) {
AddLog("Process Started.");
Mulai = DateTime.Now;
Thread tr = new Thread(new ThreadStart(ProcessEncrypt));
tr.Start();} [1]
private void ProcessDecrypt() {
byte[] data = File.ReadAllBytes(this.cipherFileTextBox.Text); [2]
GostKey key = new GostKey(this.decryptKeyTextBox.Text); [3]
AddLog("Decrypt File " + this.cipherFileTextBox.Text);
gost.Decrypt(key, data); } [4]
else //decrypt {
File.WriteAllBytes(this.decryptResultFileTextBox.Text, data); [5]
AddLog("Decompress File " + this.decryptResultFileTextBox.Text); [6]
AddLog("Result " + this.decompressResultFileTextBox.Text);
byte[] original = Compression.Extract(data); [7]
File.WriteAllBytes(this.decompressResultFileTextBox.Text, original);
AddLog("Result " + this.decryptResultFileTextBox.Text); } [8]
13
menambahkan algoritma kompresi pada aplikasi tersebut. Berdasarkan hasil
evaluasi pada prototype pertama, maka dirancang prototype kedua. Pada prototype
kedua, rancangan aplikasi kriptosistem yang dibangun ditambahkan penerapan
metode kompresi yaitu metode huffman. Proses kompresi dikerjakan terlebih
dahulu, dengan memilih tombol kompresi; selanjutnya hasil kompresi tersebut
diterapkan proses enkripsi, dengan memilih tombol enkripsi. Kemudian prototype
kedua dievaluasi kembali oleh customer. Customer memberikan masukan atau
saran untuk menyatukan proses kompresi dan enkripsi dalam satu proses enkripsi.
Berdasarkan hasil evaluasi pada prototype kedua, maka dirancang prototype
ketiga. Pada prototype ketiga, rancangan aplikasi kriptosistem yang dibangun
diubah bahwa dalam proses enkripsi terdapat proses kompresi, dan proses
kompresi dijalankan terlebih dahulu, hasil kompresi yang akan dienkripsi, dalam
satu tombol proses enkripsi. Kemudian prototype ketiga dievaluasi kembali oleh
customer, dan dinyatakan bahwa prototype ketiga telah sesuai dengan kebutuhan
customer. Kemudian dilanjutkan dengan melengkapi dan membenahi aplikasi
yang dibuat.
Pengujian Aplikasi
Setelah aplikasi selesai dibuat, dilakukan pengujian terhadap 3 (tiga) jenis
file berbeda; yaitu file data text, data document, dan data gambar (image).
1. Pengujian pada file text (.txt).
Hasil Pengujian pada file text (.txt), terlihat pada Tabel 3.
Tabel 3 Hasil Pengujian Kriptosistem Pada Data Text
Berdasarkan hasil pengujian Kriptosistem pada data text pada Tabel 3,
dapat disimpulkan bahwa kriptosistem dengan menggunakan algoritma kompresi
Huffman dan algoritma Gost, dapat memperkecil dan mengembalikan ukuran file
data text, serta dapat mengenkripsi dan mendekripsi data text dengan baik.
Plaintext (.txt) dikompresi menjadi plaintext terkompresi (.huff), dengan ukuran
file yang lebih kecil; serta plaintext terkompresi(.huff), dienkripsi menjadi
ciphertext (.gst), dimana secara visual terlihat bahwa ciphertext yang dihasilkan
tidak sama dengan plaintext, dan tidak merepresentasikan suatu tulisan yang bisa
dibaca. Demikian juga sebaliknya, kriptosistem dapat mendekripsikan file
ciphertext (.gst) menjadi file plaintext terkompresi (.huff), dilanjutkan dengan
dekompresi file plaintext terkompresi (.huff), menjadi file plaintext asli (.txt),
dimana hasil akhir sama dengan plaintext asli baik isi maupun ukuran file.
No. Nama File
(.txt)
Ukuran
File Kunci
Ukuran
File Hasil
Kompresi (.huff)
Ukuran
File Hasil
Enkripsi (.gst)
Ukuran
File Hasil
Dekripsi (.huff)
Ukuran File
Hasil
Dekompresi (.txt)
1. Laporan_tes 4.96 KB 1 4.78 KB 4.79 KB 4.78 KB 4.96 KB
2. metode 7.86 KB 12 6.95 KB 7.04 KB 6.95 KB 7.86 KB
3. Permodelan 2.37 KB 123 1.82 KB 1.84 KB 1.82 KB 2.37 KB
4. Kriptografi 5.37 KB 1234 3.84 KB 3.85 KB 3.84 KB 5.37 KB
5. GOST 3.98 KB 12345 2.94 KB 2.95 KB 2.94 KB 3.98 KB
6. Kompresi 3.49 KB 123456 2.59 KB 2.60 KB 2.59 KB 3.49 KB
7. Huffman 7.71 KB 1234567 5.46 KB 5.48 KB 5.46 KB 7.71 KB
8. Pendahuluan 6.96 KB 12345678 4.96 KB 4.98 KB 4.96 KB 6.96 KB
14
Hasil Pengujian pada Tabel 3, digambarkan dalam bentuk grafik, seperti
terlihat pada Gambar 17.
Gambar 17 Grafik Hasil Kriptosistem Berdasarkan Ukuran File
Tabel 4 Hasil Pengujian Kriptosistem Pada Data Text dengan Ukuran File Berbeda dan Panjang Kunci Sama
Berdasarkan hasil Pengujian Kriptosistem Pada Data Text dengan Ukuran
File Berbeda dan Panjang Kunci Sama pada Tabel 4, menunjukkan bahwa ukuran
file (.txt), tidak begitu mempengaruhi waktu proses kriptosistem. Hasil pengujian
ini juga menunjukkan bahwa waktu proses dekripsi lebih cepat dari waktu proses
enkripsi untuk data text (.txt).
Gambar 18 Grafik Perbandingan Ukuran File dan Waktu Proses Kriptosistem
0
0.5
1
1.5
2.37 3.49 3.98 4.96 5.37 6.96 7.71 7.86
Wak
tu P
rose
s
Ukuran File
Grafik Perbandingan Ukuran File dan Waktu Proses Kriptosistem
Waktu ProsesDekripsi
Waktu ProsesEnkripsi
No. Nama File
(.txt) Ukuran File Kunci
Waktu Proses
Enkripsi
(second)
Waktu Proses
Dekripsi
(second)
1. Permodelan 2.37KB 12345678 0.749 0.500
2. Kompresi 3.49 KB 12345678 0.175 0.093
3. GOST 3.98 KB 12345678 0.367 0.154
4. Laporan_tes 4.96 KB 12345678 0.692 0.301
5. Kriptografi 5.37 KB 12345678 0.608 0.223
6. Pendahuluan 6.96 KB 12345678 0.496 0.221
7. Huffman 7.71 KB 12345678 0.948 0.47
8. metode 7.86 KB 12345678 0.904 0.407
02468
10
Uku
ran
File
(K
B)
Nama File (.txt)
Grafik Hasil Kriptosistem Berdasarkan Ukuran File
File Asli
Kompresi
enkripsi
dekripsi
dekompresi
15
Tabel 5 Hasil Pengujian Kriptosistem Pada Data Text dengan Ukuran File Sama dan Panjang Kunci Berbeda
Berdasarkan hasil Pengujian Kriptosistem Pada Data Text dengan Ukuran
File sama dan Panjang Kunci berbeda pada Tabel 5, menunjukkan bahwa panjang
kunci, tidak begitu mempengaruhi waktu proses kriptosistem.
Gambar 19 Grafik Perbandingan Panjang Kunci dan Waktu Proses Kriptosistem
2. Pengujian pada file document (.doc).
Hasil Pengujian file document, terlihat pada Tabel 6.
Tabel 6 Hasil Pengujian Kriptosistem Pada Data Document
Berdasarkan hasil pengujian Kriptosistem pada data document (.doc), pada
Tabel 6, dapat disimpulkan bahwa kriptosistem dengan menggunakan algoritma
kompresi Huffman dan algoritma Gost, dapat memperkecil dan mengembalikan
ukuran file data document, serta dapat mengenkripsi dan mendekripsi data
document dengan baik. Plaintext (.doc) dikompresi menjadi plaintext terkompresi
(.huff), dengan ukuran file yang lebih kecil; serta plaintext terkompresi (.huff)
dienkripsi menjadi ciphertext (.gst), dimana secara visual terlihat bahwa ciphertext
00.5
11.5
1
12
12
3
12
34
12
34
5
12
34
56
12345…
12345…
Wak
tu P
rose
s
Panjang Kunci
Grafik Perbandingan Panjang Kunci dan Waktu Proses Kriptosistem
Waktu ProsesDekripsi
Waktu ProsesEnkripsi
No. Nama File
(.txt) Ukuran File Kunci
Waktu Proses Enkripsi
(second)
Waktu Proses Dekripsi
(second)
1. Laporan_tes 4.96 KB 1 0.723 0.374
2. Laporan_tes 4.96 KB 12 0.708 0.406
3. Laporan_tes 4.96 KB 123 0.722 0.343
4. Laporan_tes 4.96 KB 1234 0.726 0.353
5. Laporan_tes 4.96 KB 12345 0.717 0.355
6. Laporan_tes 4.96 KB 123456 0.725 0.354
7. Laporan_tes 4.96 KB 1234567 0.735 0.369
8. Laporan_tes 4.96 KB 12345678 0.719 0.371
No. Nama
File
(.doc)
Ukuran
File
Kunci Ukuran File
Hasil
Kompresi (.huff)
Ukuran File
Hasil
Enkripsi (.gst)
Ukuran File
Hasil
Dekripsi (.huff)
Ukuran File
Hasil
Dekompresi (.doc)
1. Chaleb C 38.8 KB 1 38.6 KB 38.6 KB 38.6 KB 38.8 KB
2. Chaleb H 967 KB 12 800 KB 800 KB 800 KB 967 KB
3. Chaleb F 346 KB 123 299 KB 299 KB 299 KB 346 KB
4. Chaleb G 428 KB 1234 422 KB 422 KB 422 KB 428 KB
5. Chaleb E 129 KB 12345 126 KB 126 KB 126 KB 129 KB
6. Chaleb D 186 KB 123456 119 KB 119 KB 119 KB 186 KB
7. Chaleb A 14.2 KB 1234567 13.7 KB 13.7 KB 13.7 KB 14.2 KB
8. Chaleb B 38.3 KB 12345678 38.1 KB 38.1 KB 38.1 KB 38.3 KB
16
yang dihasilkan tidak sama dengan plaintext, dan tidak merepresentasikan suatu
tulisan yang bisa dibaca. Demikian juga sebaliknya, kriptosistem dapat
mendekripsikan file ciphertext (.gst) menjadi file plaintext terkompresi (.huff),
dilanjutkan dengan dekompresi file plaintext terkompresi (.huff), menjadi file
plaintext asli (.doc), dimana hasil akhir sama dengan plaintext asli baik isi
maupun ukuran file. Hasil Pengujian pada Tabel 6, digambarkan dalam bentuk
grafik, seperti terlihat pada Gambar 20.
Gambar 20 Grafik Hasil Kriptosistem Berdasarkan Ukuran File
Tabel 7 Hasil Pengujian Kriptosistem Pada Data Document dengan Ukuran File Berbeda dan Panjang Kunci Sama
Berdasarkan hasil Pengujian Kriptosistem Pada Data Document dengan
Ukuran File Berbeda dan Panjang Kunci Sama pada Tabel 7, menunjukkan bahwa
panjang kunci, tidak begitu mempengaruhi waktu proses kriptosistem.
Gambar 21 Grafik Perbandingan Ukuran File dan Waktu Proses Kriptosistem
0
200
400
600
800
14.2 38.3 38.8 186 129 346 428 967
Wak
tu P
rose
s
Ukuran File
Grafik Perbandingan Ukuran File dan Waktu Proses Kriptosistem
Waktu Proses Dekripsi
Waktu Proses Enkripsi
No.
Nama File
(.doc)
Ukuran File
Kunci
Waktu Proses Enkripsi
(second)
Waktu Proses Dekripsi
(second)
1. Chaleb C 38.8 KB 12345 6.35 5.124
2. Chaleb H 967 KB 12345 130.5 122.7
3. Chaleb F 346 KB 12345 51.75 372.80
4. Chaleb G 428 KB 12345 65.35 555.07
5. Chaleb E 129 KB 12345 21.36 44.87
6. Chaleb D 186 KB 12345 22.23 87.47
7. Chaleb A 14.2 KB 12345 2.008 1.21
8. Chaleb B 38.3 KB 12345 5.21 5.91
0
500
1000
1500
A B C D E F G H
Uku
ran
File
(K
B)
Nama File (.doc)
Grafik Hasil Kriptosistem Berdasarkan Ukuran File
File Asli
kompresi
enkripsi
dekripsi
dekompresi
17
Tabel 8 Hasil Pengujian Kriptosistem Pada Data Document dengan Ukuran File Sama dan Panjang Kunci Berbeda
Berdasarkan hasil Pengujian Kriptosistem Pada Data Document dengan
Ukuran File Sama dan Panjang Kunci Berbeda pada Tabel 8, menunjukkan bahwa
panjang kunci, tidak begitu mempengaruhi waktu proses kriptosistem.
Gambar 22 Grafik Perbandingan Panjang Kunci dan Waktu Proses Kriptosistem
3. Pengujian pada file Image (.jpg).
Hasil pengujian file image, terlihat pada Tabel 9.
Tabel 9 Hasil Pengujian Kriptosistem Pada Data Image
Berdasarkan hasil pengujian Kriptosistem pada data image (.jpg) pada
Tabel 9, dapat disimpulkan bahwa kriptosistem dengan menggunakan algoritma
kompresi Huffman dan algoritma Gost, dapat memperkecil dan mengembalikan
ukuran file data image, serta dapat mengenkripsi dan mendekripsi data image
dengan baik. Plain image (.jpg) dikompresi menjadi plain image terkompresi
(.huff), dengan ukuran file yang lebih kecil; serta plain image terkompresi (.huff)
dienkripsi menjadi cipher image (.gst), dimana secara visual terlihat bahwa cipher
image (.gst), yang dihasilkan tidak sama dengan plain image (.jpg), dan tidak
0
2
Wak
tu P
rose
s
Panjang Kunci
Grafik Perbandingan Panjang Kunci dan Waktu Proses Kriptosistem
Waktu ProsesDekripsi
Waktu ProsesEnkripsi
No. Nama File (.doc)
Ukuran File Kunci Waktu Proses Enkripsi (second)
Waktu Proses Dekripsi (second)
1. Chaleb C 38.8 KB 1 0.717 0.534
2. Chaleb C 38.8 KB 12 0.708 0.539
3. Chaleb C 38.8 KB 123 0.708 0.487
4. Chaleb C 38.8 KB 1234 0.725 0.596
5. Chaleb C 38.8 KB 12345 0.739 0.543
6. Chaleb C 38.8 KB 123456 0.721 0.527
7. Chaleb C 38.8 KB 1234567 0.723 0.523
8. Chaleb C 38.8 KB 12345678 0.731 0.508
No. Nama File
(.jpg)
Ukuran
File
Kunci Ukuran
File Hasil Kompresi
(.huff)
Ukuran
File Hasil Enkripsi
(.gst)
Ukuran File
Hasil Dekripsi
(.huff)
Ukuran File
Hasil Dekompresi
(.jpg)
1. IMG_6096 341 KB 6096 339 KB 339 KB 339 KB 341 KB
2. IMG_6097 321 KB 6097 320 KB 320 KB 320 KB 321 KB
3. IMG_6099 331 KB 6099 329 KB 329 KB 329 KB 331 KB
4. IMG_6100 358 KB 6100 357 KB 357 KB 357 KB 358 KB
5. IMG_6101 368 KB 6101 367 KB 367 KB 367 KB 368 KB
6. IMG_6102 372 KB 6102 371 KB 371 KB 371 KB 372 KB
7. IMG_6103 342 KB 6103 341 KB 341 KB 341 KB 342 KB
8. IMG_6104 346 KB 6104 345 KB 345 KB 345 KB 346 KB
18
merepresentasikan suatu image yang bisa dikenali. Demikian juga sebaliknya,
kriptosistem dapat mendekripsikan file cipher image (.gst), menjadi file plain
image terkompresi (.huff), dilanjutkan dengan dekompresi file plain image
terkompresi (.huff),, menjadi file plain image (.jpg), dimana hasil akhir sama
dengan plain image asli baik isi maupun ukuran file.
Hasil Pengujian pada Tabel 9, digambarkan dalam bentuk grafik, seperti
terlihat pada Gambar 25.
Gambar 23 Grafik Hasil Kriptosistem BerdasarkanUkuran File
Tabel 10 Hasil Pengujian Kriptosistem Pada Data Image dengan Ukuran File Berbeda dan Panjang Kunci Sama
Berdasarkan hasil Pengujian Kriptosistem Pada Data Image dengan
Ukuran File Berbeda dan Panjang Kunci Sama pada Tabel 10, menunjukkan
bahwa ukuran file, tidak begitu mempengaruhi waktu proses kriptosistem.
0
200
400
600
321 331 341 342 346 358 368 372Wak
tu P
rose
s
Ukuran File
Grafik Perbandingan Ukuran File dan Waktu Proses Kriptosistem
Waktu Proses Enkripsi
Waktu Proses Dekripsi
No. Nama File
(.jpg) Ukuran File Kunci
Waktu Proses Enkripsi
(second)
Waktu Proses Dekripsi
(second)
1. IMG_6097 321 KB 123 45.93 301.22
2. IMG_6099 331 KB 123 44.44 320.32
3. IMG_6096 341 KB 123 41.47 443.50
4. IMG_6103 342 KB 123 41.53 460.34
5. IMG_6104 346 KB 123 48.50 489.56
6. IMG_6100 358 KB 123 52.34 400.00
7. IMG_6101 368 KB 123 50.58 447.43
8. IMG_6102 372 KB 123 54.80 564.10
280
300
320
340
360
380
Uku
ran
File
(%
)
Nama File (.jpg)
Grafik Hasil Kriptosistem Berdasarkan Ukuran File
File Asli
kompresi
enkripsi
dekripsi
dekompresi
19
Gambar 24 Grafik Perbandingan Ukuran File dan Waktu Proses Kriptosistem
Tabel 11 Hasil Pengujian Kriptosistem Pada Data Image dengan Ukuran File Sama dan Panjang Kunci Berbeda
Berdasarkan hasil Pengujian Kriptosistem Pada Data Image dengan
Ukuran File Sama dan Panjang Kunci berbeda pada Tabel 11, menunjukkan
bahwa panjang kunci, tidak begitu mempengaruhi waktu proses kriptosistem.
Gambar 25 Grafik Perbandingan Panjang Kunci dan Waktu Proses Kriptosistem
5. Simpulan
Dalam penggunaan aplikasi ini dapat diambil beberapa kesimpulan, yaitu :
Sistem yang dibuat merupakan kriptosistem yang mengenkripsi data berupa text,
document, dan gambar, dimana data yang dimasukkan tersebut terlebih dahulu
dilakukan proses kompresi, dan selanjutnya dienkripsi menjadi data yang tidak
dikenali. Data hasil enkripsi dapat didekripsikan kembali menjadi plaintext dan
didekompresi kembali menjadi file plaintext. Perbandingan ukuran file enkripsi
lebih besar dari file asli apabila tidak melalui proses kompresi, sedangkan file
enkripsi akan lebih kecil dari ukuran file asli apabila dilakukan proses kompresi.
Ukuran panjang kunci yang dimasukkan tidak mempengaruhi ukuran file hasil
enkripsi. Adapun saran yang dapat diberikan untuk pengembangan aplikasi ini
lebih lanjut adalah penerapan algoritma GOST pada aplikasi Chatting berbasis
Android.
0
200
400
600
Wak
tu P
rose
s
Panjang Kunci
Grafik Perbandingan Panjang Kunci dan Waktu Proses Kriptosistem
Waktu ProsesHasil Enkripsi
Waktu ProsesHasil Dekripsi
No. Nama File
(.jpg) Ukuran File Kunci
Waktu Proses Enkripsi (second)
Waktu Proses Dekripsi (second)
1. IMG_6096 341 KB 6096 40.37 453.65
2. IMG_6096 341 KB 6097 43.50 450.50
3. IMG_6096 341 KB 6099 46.87 451.55
4. IMG_6096 341 KB 6100 51.00 454.47
5. IMG_6096 341 KB 6101 52.56 463.33
6. IMG_6096 341 KB 6102 52.67 455.44
7. IMG_6096 341 KB 6103 43.59 444.98
8. IMG_6096 341 KB 6104 45.12 449.81
20
6. Daftar Pustaka [1] Tiurma Airin Listya, 2005. Perancangan Program Aplikasi Pengamanan
Data Menggunakan Algoritma GOST 34.11, GOST 28147, Dan Steganografi
GLM, Teknik Informatika, 2005
[2] Batubara Muhammad Iqbal, 2006. Perancangan Perangkat Lunak
Pembelajaran Kriptografi Untuk Pengamanan Record dengan Metode GOST
[3] Munir Rinaldi, 2006. Kriptografi, Informatika, Bandung
[4] Yusioktria, 2005. Simulasi Algoritma Huffman Guna Mengompresi Data
Pada Ponsel yang Berbasis Sistem Operasi Symbian.
garuda.dikti.go.id/jurnal/detil/id/23:1824
[5] Batubara, 2009. Implementasi Algoritma Huffman dan algoritma Cipher
Substitusi Alfabet Tunggal pada Teks SMS. Ilmu computer, Medan, 2009.
repository.usu.ac.id/bitstream/123456789/25384/7/Cover.pdf
[6] Liliana, 2005. Pembuatan Perangkat Lunak Untuk Kompresi File Text
Dengan Menggunakan Huffman Tree. Teknik Informatika, Surabaya, 2005.
[7] Pressman, Roger S., 2001, Software Engineering a Practitioner’s Approach,
New York ; McGraw-Hill Higher Education.