• Tidak ada hasil yang ditemukan

BAB 5 : KESIMPULAN DAN SARAN

2.3 Landasan Matematika Algoritma ElGamal

Dalam mempelajari sebuah algoritma kriptografi, sebaiknya kita memahami terlebih dahulu konsep-konsep dasar perhitungan matematis yang akan digunakan dalam suatu algoritma kriptografi tersebut.

2.3.1 Modulo Exponensial

Modulo eksponensial sering digunakan dalam bidang kriptografi untuk menghitung hasil enkripsi maupun hasil dekripsi. Permasalahan pada operasi modulo adalah bagaimana menghitung xy (mod n) dengan n yang sangat besar. Terdapat beberapa cara untuk menghitung modulo eksponensial, antara lain adalah dengan cara iteratif.

Function mod exp (x, y, n){ z =1

for (i=1; i ≤ y; i++){

z = x * z mod n }

return z }

Contoh : Tentukan hasil dari 25 mod 30 dengan cara iterasi! Diketahui nilai x = 2, y = 5 dan n = 30.

z = 1 i = 1 z = 2 * 1 mod 30 = 2 i = 2 z = 2 * 2 mod 30 = 4 i = 3 z = 2 * 4 mod 30 = 8 i = 4 z = 2 * 8 mod 30 = 16 i = 5 z = 2 * 16 mod 30 = 2  berhenti

Maka hasil dari 25 mod 30 adalah 2. 2.3.2 Algoritma Euclidean

Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar (PBB) dari dua bilangan bulat. Algoritma ini didasarkan pada pernyataan bahwa ada dua buah bilangan bulat tak negatif yakni m dan n dimana nilai m ≥ n. Adapun tahap-tahap pada algoritma Euclidean

adalah:

1. Jika n = 0 maka m adalah PBB (m, n); stop.

Kalau tidak (yaitu n ≠ 0) lanjutkan ke langkah nomor β.

2. Bagilah m dengan n dan misalkan sisanya adalah r.

3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah nomor 1.

Algoritma Euclidean dapat digunakan untuk mencari dua buah bilangan bulat yang relatif prima. Contoh : Tentukan gcd (108, 360) 360 mod 108 = 36 108 mod 36 = 0 (STOP) Jadi gcd (108, 360) = 36 Tentukan gcd (45, 13) 45 mod 13 = 6 13 mod 6 = 1 6 mod 1 = 0 (STOP)

Jadi gcd (45, 13) = 1. Apabila GCD dari m & n = 1, maka m&n disebut Relatif prima. 2.3.3 Inversi Modulo

Jika a dan n relatif prima dan n > 1, maka inversi dari a mod n dapat ditemukan. Inversi dari a (mod n), juga disebut inversi perkalian, dimana bilangan bulat a-1 sedemikian sehingga:

Pembuktian dari persamaan diatas dapat dilihat dari definisi relatif prima diketahui bahwa GCD(a, n) = 1.

Contoh: untuk inversi dari 7 (mod 11), penyelesaiannya dapat dilihat pada Tabel 2.1. Tabel 2.1. Penyelesaian contoh soal inversi modulo.

a-1 a-1x 7(mod 11) 1 1 x7 (mod11) = 7 2 2 x7 (mod11) = 3 3 3 x7 (mod11) = 10 4 4 x7 (mod11) = 6 5 5 x7 (mod11) = 2 6 6 x7 (mod11) = 9 7 7 x7 (mod11) = 5 8 8 x7 (mod11) = 1

Pada Tabel 2.1, iterasi berhenti ketika a-1a≡ 1 (mod n) dan diperoleh a-1 = 8.

2.3.4 Bilangan Prima

Bilangan positif p (p>1) disebut bilangan prima jika pembaginya hanya 1 dan p. Sebagai contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan 23. Karena bilangan prima harus lebih besar dari satu, maka barisan bilangan prima dimulai dari 2, yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan ganjil, kecuali dua yang merupakan bilangan genap.

Sebuah bilangan bulat p > 1 disebut bilangan prima, jika bilangan tersebut hanya memiliki pembagi positif 1 dan p. Bilangan bulat yang lebih dari 1 yang bukan bilangan prima disebut bilangan komposit(Putra, E. 2013).

2.3.5 Bilangan Relatif Prima

Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB atau GCD (greatest common divisor) dari a dan b bernilai 1.

Contoh : 20 dan 3 relatif prima sebab PBB (20, 3) = 1. Begitu juga 7 dan 11 relatif

prima karena PBB (7, 11) = 1. Tetapi β0 dan 5 tidak relatif prima sebab PBB (β0, 5) = 5 ≠ 1. 2.3.6 Elemen Primitif

Selain bilangan prima, dalam kriptografi ElGamal juga digunakan elemen primitif yang merupakan elemen pembangun dari grup Z

p. Untuk mencari elemen ini digunakan

p=2q+ 1, dimana q merupakan bilangan prima. Jika elemen α memenuhi α2 mod p ≠ 1 dan

αq mod p ≠ 1, maka α merupakan elemen primitif (Jeffrey dkk, 2008).).

Untuk mengetahui suatu bilangan merupakan elemen primitif atau tidak dapat dilakukan langkah-langkah sebagai berikut :

1. Input bilangan prima aman p ≥ 5.

2. Hitung q= −1 2

3. Hitung α2mod p dan αqmod p.

4. Jika α 2mod p= 1, maka α bukan elemen primitif.

5. Jika αq mod p= 1, maka α bukan elemen primitif.

6. Jika tidak terpenuhi dua persyaratan di atas maka q merupakan elemen primitif. Misalkan p = 2579 yang merupakan bilangan prima aman. Oleh karena itu, dapat ditentukan bilangan prima = 2579−1

2 = 1289. Untuk menunjukkan bahwa suatu bilangan bulat a merupakan elemen primitif Z 2579*, harus ditunjukkan bahwa

α

2 � �

5 ≠ dan

α

1289� � 5 ≠ . Berikut diberikan tabel perhitungan untuk beberapa nilai a yang diberikan.

Tabel 2.2. Perhitungan

α

2 mod 2579 dan

α

mod 2579

a 2 3 4 5 6 7 8

α

2 4 9 16 25 36 49 64

α

� 2578 1 1 1 2578 1 2578

2.3.7 Fermat’s Little Theorem

Fermat’s little theorem adalah suatu metode yang digunakan untuk menguji keprimaan suatu bilangan bulat. Teorema Fermat ditemukan oleh Pierre De Fermat merupakan seorang matematikawan Perancis pada tahun 1640. Meskipun dapat digunakan untuk mempermudah kalkulasi dalam kriptografi, peran terpenting dari Fermat's little theorem

adalah sebagai dasar dari berbagai teknik enkripsi asimetris.

Salah satu perhitungan matematis yang digunakan untuk menghasilkan bilangan prima adalah metode Fermat yang dapat dirumuskan sebagai berikut:

Untuk bilangan prima p dan bilangan bulat a, ap≡ a (mod p) dan jika a tidak dapat dibagi oleh p, maka a p-1≡1 (mod p) (Kromodimoeljo, S. 2010). Di mana p adalah bilangan bulat dan a adalah urutan bilangan yang lebih kecil dari p.

Contoh penerapan metode Fermat adalah sebagai berikut: a. Bila p = 4 Maka 1 ≤a< 4, didapat a = {1, 2, 3} a p-1mod p 1 4-1 mod 4 = 13 mod 4 = 1 24-1 mod 4 = 23 mod 4 = 0 34-1 mod 4 = 33 mod 4 = 3

Jadi, angka 4 bukan merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 4 terdapat nilai yang 0.

b. Bila p = 5

Maka 1 ≤a< 5, jadi didapat a = {1, 2, 3, 4}

a p-1 mod p

1 5-1 mod 5 = 14 mod 5 = 1 25-1 mod 5 = 24 mod 5 = 1 35-1 mod 5 = 34 mod 5 = 1 45-1 mod 5 = 44 mod 5 = 1

Jadi, angka 5 merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 5 adalah 1. Untuk angka yang besar dengan jumlah nilai a yang banyak, hanya diambil beberapa angka sebagai contoh untuk dilakukan pengujian dengan metode Fermat.

2.4 Prinsip Kerja Algoritma ElGamal

2.4.1 Proses Pembangkitan Kunci

Langkah-langkah dalam pembangkitan kunci

1. Pilih sembarang bilangan prima p ( disarankan bilangan prima yang bernilai besar agar aman dan uji bilangan prima tersebut dengan metode Fermat). Misalkan p = 271

2. Ambil bilangan α sebagai akar primitive mod p Misalkan α =107

3. Ambil bilangan acak a dengan syarat a harus berada dalam rentang β≤a<p-1. Misalkan a = 96

4. Hitung berapa x=αa mod p

= 107 96 mod 271 = 39

1. Kunci publik (p,α,x) = (271, 107, 39) 2. Kunci privat (p,a)= (271, 96)

2.4.2 Proses Enkripsi

Langkah-langkah dalam mengenkripsi pesan: 1. Terima kunci publik (p, α, x) = (271, 107, 39)

2. Plainteks m disusun menjadi blok-blok m1, mβ, …, mp-1 sedemikian sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai p – 1.

3. Ubah nilai blok pesan ke dalam nilai ASCII. Ekspresikan pesan m1 = c = 99 (kode ASCII) sebagai bilangan

4. Ambil sebuah bilangan asli b < p-1

b = 50

5. Hitung y = αb mod p

= 10750 mod 271 = 238

Hitung c = (m(xb mod p)) mod p

= (99(3950 mod 271) mod 271 = 99.169 mod 271

= 200

Maka dari perhitungan di atas, kita mendapatkan nilai y dan c sebagai cipherteks nya yaitu (238, 200). Jadi, ukuran cipherteks dua kali ukuran plainteksnya. Proses diatas akan berulang untuk membaca semua blok pesan untuk menghasilkan cipherteks.

6. Kirim y = 238 dan c = 200 ke pemilik kunci publik.

2.4.3 Proses Dekripsi

Langkah-langkah dalam mendekripsi pesan: 1. Terima (y,c) dari sender = ( 238, 200)

2. Hitung Z = yp-1-a mod p = 238 271-1-96 mod 271 = 238 174 mod 271 = 178 Hitung M = c.z mod p = 200. 178 mod 271

= 99. Karakter dalam ASCII adalah c. sesuai dengan plainteks yang dikirim sender, yang berarti bahwa plainteks ditemukan kembali dari pasangan cipherteks y dan c. Kemudian menggabungkan lagi blok m1, m2, ….. menjadi plainteks yang utuh.

2.5 Defenisi Kompresi

Kompresi data adalah ilmu atau seni yang merepresentasikan informasi dalam bentuk yang lebih compact. Istilah kompresi tersebut diterjemahkan dari kata bahasa Inggris

compression” yang berarti pemampatan. Dalam bidang teknik, kompresi berarti proses memampatkan sesuatu yang berukuran besar sehingga menjadi kecil. Dengan demikian, kompresi data berarti proses untuk memampatkan data agar ukurannya menjadi lebih kecil (Komputer, W. 2003).

Definisi kompresi data adalah proses yang mengkonversi sebuah masukan berupa aliran data (the source atau data asli mentah) menjadi suatu aliran data lain (the Output, aliran bit, atau aliran sudah dikompres) yang memiliki ukuran lebih kecil. Aliran data (stream) dapat berupa sebuah file atau buffer pada memori. Data dalam konteks kompresi data melingkupi segala bentuk digital dari informasi, yang dapat diproses oleh sebuah program komputer. Bentuk dari informasi tersebut secara luas dapat diklasifikasikan sebagai teks, suara, gambar dan video (Salomon,D. 2007).

Tujuan kompresi data adalah untuk mempercepat dan menghemat biaya pengiriman data atau informasi tersebut. Disamping itu kompresi data juga memiliki

tujuan untuk dapat mengurangi ukuran data dan dapat disimpan pada media penyimpanan yang memiliki ukuran relatif kecil.

2.5.1 Penggolongan Algoritma Kompresi

Secara garis besar terdapat 2 buah penggolongan algoritma kompresi data yaitu kompresi

lossy, dan kompresi lossless (Merdiyan, M. 2005).

1. Kompresi Lossless merupakan metoda kompresi data yang memungkinkan data asli dapat disusun kembali dari data hasil kompresi maka rasio kompresi pun tidak dapat terlalu besar untuk memastikan semua data dapat dikembalikan ke bentuk semula.

Contoh metode ini adalah Elias Gamma Code, Shannon-Fano Coding, Huffman Coding, Arithmetic Coding, Run Length Encoding, dan lain-lain.

2. Kompresi Lossy adalah suatu metode untuk mengkompresi data dan mendekompresinya. Data yang diperoleh mungkin berbeda dari data aslinya, tetapi perbedaan itu cukup dekat. Metode ini paling sering digunakan untuk kompres data multimedia (Audio file dan gambar). Format kompresi Lossy mengalami generation loss yaitu jika mengalami prose kompresi-dekompresi berulang kali maka akan menyebabkan kehilangan kualitas secara progresif. Contoh metode ini adalah Transform Coding, Wavelet, dan lain-lain.

2.5.2 Algoritma Elias Gamma Code

Elias Gamma Code adalah sebuah algoritma kompresi yang dibuat oleh Peter Elias. Untuk membuat tabel kode Elias Gamma, Elias menambah panjang kode dalam unary

(u). Dalam kode berikutnya, E ditambahkan pada panjang kode (M) dalam biner ( ).

Dengan demikian, Elias Gamma Code, yang juga untuk bilangan bulat positif, sedikit lebih kompleks untuk dibangun (Salomon, D. 2007).

Adapun aturan untuk mengkodekan sebuah bilangan dengan menggunakan Elias Gamma (Sukiman & Chandra, 2013) adalah sebagai berikut:

2. Kurangkan 1 dari jumlah bit yang ditulis pada langkah pertama dan tambahkan sesuai dengan banyaknya bilangan nol (u) diikuti oleh angka 1.

3. Gabungkan bilangan dalam bentuk biner ( ) dengan kode dalam bentuk unar (u)

dengan menghilangkan angka 1 didepan sehingga menghasilkan E (n).

Contoh pada bilangan integer 4 (n=4), maka :

(4) = 100

M = 3 u (4) = 001

E (4) = 100001 = 00001

Elias Gamma hanya dapat digunakan untuk mengkodekan bilangan bulat positif dan mengasumsikan bahwa pengkodeaan Gamma hanya efisien untuk integer kecil tetapi tidak cocok untuk integer yang besar, dimana kode terparameter dari Elias Code

yang lain adalah Delta code lebih cocok digunakan. Tabel Elias Gamma Code dapat dilihat pada Tabel 2.3.

Tabel 2.3. Tabel Elias Gamma Code

n M Unary (u) E (n) hapus angka 1 disebelah

kiri dari hasil E (n)

1 1 1 1 1 1 2 10 2 01 1 0 0 1 001 3 11 2 01 1011 011 4 100 3 001 100001 00001 5 101 3 001 100011 00011 6 110 3 001 101001 01001 7 111 3 001 101011 01011 8 1000 4 0001 10000001 0000001 9 1001 4 0001 10000011 0000011 10 1010 4 0001 10001001 0001001 11 1011 4 0001 10001011 0001011 12 1100 4 0001 10100001 0100001

n M Unary (u) E (n) hapus angka 1 disebelah kiri dari hasil E (n) 13 1101 4 0001 10100011 0100011 14 1110 4 0001 10101001 0101001 15 1111 4 0001 10101011 0101011 16 10000 5 00001 1000000001 000000001 17 10001 5 00001 1000000011 000000011 18 10010 5 00001 1000001001 000001001

2.5.2.1 Konsep Kompresi Data

Untuk proses kompresi menggunakan Elias Gamma Code kita merujuk pada Tabel2.3. Dimana Elias Gamma ini hanya cocok diterapkan untuk bilangan desimal 1 hingga 15 karena pengkodean kelima belas bilangan ini hanya memerlukan jumlah bit 1 hingga 7

bit sehingga efisiensi penyimpanan di dapat. Proses kompresi sendiri didasarkan pada bahwa isi file akan dibaca secara per byte (8 bit) sehingga menghasilkan nilai pembacaan antara 0 hingga 255.

Suatu metode pada kompresi data akan menghasilkan bit-bit (satuan terkecil pembentuk data) data baru yang lebih pendek dibandingkan oleh bit-bit data sebelum dikompresi. Bit-bit data yang lebih pendek tersebut biasanya tidak akan bisa dibaca oleh komputer sebelum dilakukan proses encoding. Pada proses encoding bit-bit data tersebut di-encode setiap delapan bitnya sehingga membentuk satu karakter yang dapat dibaca oleh komputer. Begitu juga sebaliknya, pada saat dekompresi bit-bit data tersebut di-

decode kembali agar membentuk bit-bit data semula yang akan digunakan dalam proses dekompresi. Karena pada saat proses dekompresi dibutuhkan bit-bit data sebelum di-

Encode untuk dapat dibaca kembali dalam proses dekompresi.

Didalam komputer satu karakter direpresentasikan oleh bilangan ASCII (American Standard Code For Information Interchange) sebanyak delapan bit dalam bilangan biner. Jika ternyata jumlah bit-bit data tersebut bukan merupakan kelipatan delapan. Maka dibentuk variabel baru sebagai penambahan ke bit-bit data itu agar bit-bit data tersebut habis dibagi delapan. Variabel ini adalah padding dan flagging.

1. Padding

Padding adalah penambahan bit 0 sebanyak kekurangan jumlah bit-bit data pada hasil proses kompresi sehingga jumlah keseluruhan bit-bit data tersebut merupakan kelipatan delapan (habis dibagi delapan). Contoh misalkan dihasilkan bit-bit data hasil kompresi yaitu 1001011. Terdapat 7 bit data dalam bilangan biner. Maka dilakukan penambahan bit 0 sebanyak 1 kali agar jumlah bit-bit data tersebut habis dibagi delapan. Sehingga bit bit data itu menjadi 10010110 setelah diberikan padding.

2. Flagging

Flagging adalah penambahan bilangan biner sepanjang delapan bit setelah padding

dimana flagging ini adalah sejumlah bilangan yang memberikan sebuah tanda bahwa terdapat n buah padding di dalam bit-bit data hasil dari kompresi. Penambahan flagging

ini dimaksudkan untuk mempermudah dalam membaca bit-bit data hasil kompresi pada saat proses dekompresi. Contoh misalkan bit-bit data yang telah diberikan padding

adalah10010110. Karena terdapat 1 bit penambahan padding maka flag nya adalah bilangan biner dari 1 dengan panjang 8 bit yaitu 00000001. Sehingga bit-bit datanya menjadi 1001011000000001 setelah diberikan flagging.

Contoh :

Berikut ini adalah contoh proses kompresi file teks dengan metode Elias Gamma Code. Terdapat file teks yang berisikan string “KUKU KAKI KAKAK KAKEKKU KAKU”.

Untuk ukuran String dapat dilihat pada Tabel 2.4.

Tabel 2.4. String yang Belum Dikompresi

char ASCII Code ASCII Code (Binary) Bit Frek Bit x Frek

K 75 01001011 8 13 104

A 65 01000001 8 5 40

U 85 01010101 8 4 32

Lanjutan Tabel 2.4. String yang Belum Dikompresi

char ASCII Code ASCII Code (Binary) Bit Frek Bit x Frek

I 73 01001001 8 1 8

E 69 01000101 8 1 8

Total 224

Berdasarkan kode ASCII, satu karakter bernilai delapan bit bilangan biner. Sehingga 35 karakter pada string mempunyai nilai biner sebanyak 224 bit. Sebelum melakukan proses kompresi, karakter tersebut diurutkan terlebih dahulu berdasarkan dari karakter yang memiliki frekuensi terbesar ke terkecil. Proses kompresi untuk Elias Gamma Code

dapat dilihat pada Tabel 2.5

Tabel 2.5. String yang Sudah Dikompresi Dengan Elias Gamma Code char Elias Gamma Code Bit Frek Bit x Frek

K 1 1 13 13 A 001 3 5 15 U 011 3 4 12 Sp 00001 5 4 20 I 00011 5 1 5 E 01001 5 1 5 Total 70

Dapat dibentuk string bit dari string sebelum dikompresi yaitu “ KUKU KAKI KAKAK

KAKEKKU KAKU” menjadi string bit

“1011101100001100110001100001100110011000011001101001110110000110011011”

. Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan bit-bit padding

dan flagging diakhir String bit. Bit-bit itu dihasilkan dari panjang String bit itu sendiri apakah habis dibagi delapan dan berapa sisanya jika dibagi delapan. Karena jumlah

dan flaggingnya adalah “00000010”

menjadi“1011101100001100110001100001100110011000011001101001110110000110

0110110000000010”. Sehingga total bit seluruhnya setelah penambahan padding dan

flagging adalah 80 bit.

2.5.3. Pengukuran Kinerja Kompresi Data

Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapa faktor atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu teknik kompresi data tersebut, yaitu:

1. Ratio of compression (Rc)

Ratio of compression (Rc) adalah perbandingan antara ukuran data sebelum dikompresi dengan ukuran data setelah dikompresi.

Rc = (Salomon dan Motta, 2010)

Misalkan didapat sebuah nilai Ratio of compression sebesar 2.75. Itu berarti besar data sebelum kompresi adalah 2.75 kali lipat dari besar data setelah dikompresi.

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.

Cr = x 100% (Salomon dan Motta, 2010)

Misalkan didapat sebuah nilai Compression ratio sebesar 35%. Itu berarti setelah dikompresi ukuran data adalah 35% dari data sebelum dikompresi.

3. Redundancy (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 dan Motta, 2010)

Misalkan didapat sebuah nilai Redundancy sebesar 14%. Itu berarti besarnya kelebihan data sebelum dikompresi adalah 14%.

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Bab ini akan menganalisis terhadap system yang akan dirancang dengan algoritma kriptografi ElGamal dan algoritma kompresi Elias Gamma Code.

3.1 Analisis

Dalam merancang suatu sistem diperlukan analisis terhadap sistem yang akan dirancang terlebih dahulu. Tujuan dari analisis ini sendiri adalah agar sistem yang dirancang menjadi tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga. Di samping itu dengan dilakukannya analisis kita akan dapat mempermudah kerja kita dalam membuat sistem, dan jika suatu saat nanti ada perbaikan atau penambahan dalam sistem tersebut, maka akan mudah untuk diselesaikan.

Analisis sistem terdiri dari tahapan-tahapan berbeda yang mendekripsikan pengembangan sistem. Dalam tugas akhir ini, ada dua fase analisis yaitu: analisis masalah, dan analisis kebutuhan.

3.1.1 Analisis Masalah

Untuk dapat mengurangi ancaman yang dapat terjadi dalam pertukaran informasi yang bersifat rahasia dalam sebuah proses komunikasi data dapat dilakukan dengan cara melakukan pengkodean terhadap informasi yang akan disimpan atau dikirim.

Gambar 3.1. merupakan diagram Ishikawa yang dapat digunakan untuk menganalisis masalah. Bagian kepala atau segiempat yang berada di sebelah kanan merupakan masalah. Sementara di pada bagian tulang merupakan penyebab.

Gambar 3.1 DiagramIshikawa Masalah Penelitian.

Sistem yang akan dibangun menggunakan Netbens versi 7.0.1 yang memudahkan para pengguna untuk melakukan proses pengamanan dan kompresi file .

3.1.2 Analisis Kebutuhan

Analisis kebutuhan terbagi dua bagian, yaitu kebutuhan fungsional dan kebutuhan nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan suatu sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya.

3.1.2.1 Kebutuhan Fungsional

Kebutuhan fungsional adalah fungsi-fungsi yang harus dipenuhi pada aplikasi yang dirancang. Kebutuhan fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut:

b. Sistem harus mampu melakukan enkripsi dengan menggunakan ElGamal setiap karakter yang berada dalam String yang telah dibaca sehingga menghasilkan ciphertext, serta sistem harus mampu melakukan dekripsi

ciphertext menjadi String yang sama dengan String sebelum dikodekan. c. Sistem Harus mampu melakukan kompresi dengan menggunakan algoritma

Elias Gamma Code setiap karakter yg berada dalam string yang bebentuk

cipherteks sehingga menghasilkan file yg telah dikompresi, serta mampu melakukan dekompresi menjadi string yang sama dengan string berbentuk cipherteks sebelum dikompresi

3.1.2.2 Kebutuhan Non Fungsional

Kebutuhan fungsional mencakup karakteristik berikut: 1. Performa

Perangkat lunak yang akan dibangun dapat menunjukkan hasil dari fungsi kriptografi yang dilakukan oleh sistem.

2. Efisiensi

Sistem atau perangkat lunak yang akan dibangun harus sesederhana mungkin agar mudah digunakan oleh pengguna, responsif.

3. Ekonomi

Sistem atau perangkat lunak yang akan dibangun harus dapat bekerja dengan baik tanpa harus mengeluarkan biaya tambahan dalam penggunaan perangkat keras maupun perangkat lunak.

4. Dokumentasi

Sistem atau perangkat lunak yang akan dibangun dapat menyimpan data hasil proses enkripsi.

5. Manajemen kualitas

Perangkat lunak yang dibangun harus memiliki kualitas yang baik yaitu proses pembangkitan kunci yang cepat dan proses enkripsi dan dekripsi yang akurat.

6. Kontrol

Perangkat lunak yang dibangun akan menampilkan pesan error untuk setiap input yang tidak sesuai.

Dokumen terkait