• Tidak ada hasil yang ditemukan

BAB 5 KESIMPULAN DAN SARAN

3.1 Analisis Sistem

Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi bagian – bagian komponen dengan tujuan mempelajari seberapa bagus bagian –bagian komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka. Analisa sistem ini juga merupakan suatu proses mengumpulkan dan menginterpretasikan kenyataan – kenyataan yang ada, mendiagnosa persoalan dan menggunakan keduanya untuk memperbaiki sistem (Whitten 2004).

Analisa sistem ini meliputi tiga tahapan yaitu : analisis masalah, analisis kebutuhan dan analisis proses. Analisis masalah bertujuan untuk mengidentifikasi penyebab masalah serta memahami kelayakan masalah. Analisis kebutuhan bertujuan untuk mengidentifikasi data apa dan proses apa yang dibutuhkan pada sistem yang akan dibuat. Pada tahapan analisis ini dilakukan juga untuk menjelaskan fungsi – fungsi yang ditawarkan dan mampu dikerjakan oleh sistem baik kebutuhan fungsional dan non-fungsional. Analisis proses bertujuan untuk mengetahui alur suatu sistem dan tools yang digunakan untuk merancang sebuah sistem. Pada analisa sistem juga terdapat pseudocode yang bertujuan mempermudah programmer untuk merancang sebuah sistem.

3.1.1 Analisis Masalah

Pada kriptografi terdapat enam hal pokok layanan yang harus terpenuhi yaitu : otentikasi, kenadali akses, kerahasiaan data, keutuhan data, nonrepudiation, ketersediaan. Mengirim dan menerima pesan rahasia membutuhkan elemen – elemen berikut ini (Sadikin, 2012) :

1. Plaintext

Pesan atau data dalam bentuk aslinya yang dapat dibaca dan masukan bagi algoritma enkripsi.

20

2. Secret Key

Masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.

3. Ciphertext

Hasil dari proses algoritma enkripsi dan teks asli dianggap telah tersembunyi. 4. Algoritma Enkripsi

Algoritma enkripsi memiliki 2 masukan yaitu teks asli dan kunci rahasia, kedua masukan tersebut akan diproses sehingga menghasilkan teks sandi.

5. Algoritma Dekripsi

Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia, keduanya akan diproses sehingga menghasilkan teks asli.

Pada proses mengirim dan menerima pesan rahasia dibutuhkan algoritma enkripsi yang bertujuan untuk menjadikan pesan asli menjadi sandi yang sulit dimengerti. Agar pesan yang dikirim dapat dimengerti oleh pihak penerima maka dibutuhkan algoritma dekripsi yang bertujuan untuk mengembalikan pesan asli. Pada penelitian ini, akan diimplementasikan kombinasi algoritma kriptografi klasik Beaufort Cipher dan Affine Cipher pada Three-pass Protocol.

Diagram Ishikawa merupakan suatu alat visual untuk mengidentifikasi, mengeksplorasi, dan secara diagram menggambarkan semua penyebab yang berhubungan dengan suatu permasalahan. Diagram ini berbentuk tulang ikan yang kepalanya menghadap ke kanan. Diagram ini menunjukkan sebuah dampak atau akibat dari permasalahan dengan berbagai penyebabnya (Whitten, 2004). Masalah penelitian ini secara umum dapat dilihat pada Gambar 3.1 yang dirancang dalam bentuk diagram Ishikawa (fishbone/cause and effect diagram).

Implementasi Kombinasi Kriptografi Klasik Pada

Three-pass Protocol User

Material

Metode

Sistem

Algoritma kriptografi klasik Tidak aman Algoritma Affine Cipher

dapat dipecahkan dengan

Brute Force

Belum adanya aplikasi desktop Yang mengombinasikan algoritmakriptografi Aplikasi kriptografi masih Tergolong tidak sederhana Kunci kriptografi Klasik

Mudah didapat Oleh penyusup Ukuran kunci kriptografi Klasik (Affine Cipher) Pendek

Saluran yang dipercaya Aman dapat disusupi oleh

penyadap User membutuhkan pengamanan

Data yang sederhana dan aman Kebutuhan user untuk Bertransaksi rahasia

Gambar 3.1 Diagram Ishikawa Masalah Penelitian

Berdasarkan Gambar 3.1, masalah utama yang ada pada segi empat paling kanan (kepala ikan), yaitu mengirim dan menerima pesan rahasia. Sedangkan segi empat yang lainnya dihubungkan oleh sebuah garis ke tulang utama (garis horizontal yang terhubung ke kepala ikan) adalah kategori masalah. Garis horizontal selanjutnya yang ditunjukkan oleh tulang – tulang kecil yang diwakili oleh garis panah yang mengarah ke tulang – tulang kategori masalah adalah sebab dari masalah yang berada pada kepala ikan.

22

3.1.2 Analisis Kebutuhan

Analisis kebutuhan terbagi atas 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 (Whitten, 2004).

3.1.2.1 Kebutuhan Fungsional

Untuk menerapkan kombinasi algoritma Beaufort Cipher dan Affine Cipher pada Three-pass Protocol, kebutuhan fungsional yang harus dipenuhi antara lain sebagai berikut :

1. User Pertama

User pertama adalah pihak pengirim yang hanya dapat melakukan fungsi – fungsi berikut ini setelah masuk ke dalam sistem.

a. Mengacak kunci Beaufort Cipher

User melakukan pengacakan kunci algoritma Beaufort Cipher. b. Enkripsi Pesan

User melakukan enkripsi pesan menggunakan algoritma Beaufort Cipher lalu mengirimkan cipherteks pertama kepada pihak penerima.

c. Dekripsi Pesan

User melakukan dekripsi pesan menggunakan algoritma Beaufort Cipher lalu mengirimkan cipherteks ketiga kepada pihak penerima.

2. User Kedua

User kedua adalah pihak penerima yang hanya dapat melakukan fungsi – fungsi berikut ini setelah masuk ke dalam sistem.

a. Mengacak kunci Affine Cipher

b. Enkripsi Pesan

User melakukan enkripsi pesan menggunakan algoritma Affine Cipher lalu mengirimkan cipherteks cipherteks kedua kepada pihak pengirim.

c. Dekripsi Pesan

User melakukan dekripsi pesan menggunakan algoritma Affine Cipher lalu menerima pesan asli dari pihak pengirim.

3.1.2.2 Kebutuhan Nonfungsional

Kebutuhan nonfungsional meliputi karakteristik berikut ini : 1. Performa

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

2. Mudah dipelajari dan digunakan

Perangkat lunak yang akan dibangun memiliki tampilan yang user friendly dan mudah digunakan karena memiliki halaman petunjuk

3. Hemat Biaya

Perangkat lunak yang dibangun akan menngunakan teknologi open source dan bebas digunakan.

4. Dokumentasi

Perangkat lunak yang akan dibangun memiliki panduan penggunaan. 5. Manajemen Kualitas

Perangkat lunak yang akan dibangun akan memiliki kualitas yang baik yaitu proses enkripsi dan dekripsi kata sandi yang relatif cepat.

6. Kontrol

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

24

3.1.3 Analisis Proses

Perangkat lunak yang dibangun akan menggunakan dua bahasa pemrograman, yaitu wing IDE Python 3.1.3 dan SharpDevelop 4.1. Pada analisis proses ini akan menggunakan dua metode enkripsi dan dekripsi yang di kombinasikan dalam bentuk Three-pass Protocol serta Lehmann Primality Test dan bilangan acak dari fungsi Python. Bilangan acak digunakan sebagai pengacak angka yang dijadikan parameter kunci dan dilakukan pengecekan prima dengan Lehmann Primality Test.

Algoritma Beaufort Cipher akan dijadikan algoritma pengirim pesan asli dan algoritma Affine Cipher akan dijadikan algoritma penerima pesan asli. Pengiriman pesan ini dilakukan tanpa melakukan pertukaran data (kunci) dengan metode Three-pass Protocol. SharpDevelop 4.1 adalah Bahasa pemrograman yang dijadikan sebagai sarana interface melakukan kombinasi kedua algoritma dan Python 3.1.3 merupakan Bahasa pemrograman yang melakukan perhitungan enkripsi dan dekripsi.

3.1.4 Pseudocode

Pseudocode merupakan kode yang mirip dengan instruksi kode program yang sebenarnya. Pada penelitian ini terdapat delapan pseudocode yang mewakili fungsi yang ada pada sistem.

3.1.4.1 Pseudocode Mencari File

Pada sistem yang dirancang terdapat fungsi yang berguna untuk melakukan pencarian data file teks (*.doc). Pseudocode ditunjukkan pada Gambar 3.2.

Gambar 3.2 Pseudocode Mencari File *.doc

OpenFileDialog dialog new OpenFileDialog();

dialog.Filter Document (MsWord)|*.doc; dialog.Title "Open file doc : "; dialog.RestoreDirectory true;

if(dialog.ShowDialog() DialogResult.OK){ dirName GetDirectoryName(dialog.FileName); drive dirName.Split(VolumeSeparatorChar)[1];

3.1.4.2 Pseudocode Membaca File

Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan baca data file teks (*.doc). Pseudocode ditunjukkan pada Gambar 3.3.

Gambar 3.3 Pseudocode Membaca File *.doc

3.1.4.2 Pseudocode Kunci Beaufort Cipher

Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan acak bilangan dengan RandomNumber. Pseudocode ditunjukkan pada Gambar 3.4.

Gambar 3.4 Pseudocode Kunci Beaufort Cipher

Microsoft.Office wordApp new Microsoft.Office; filenameO data;

objFalse false; objTrue true;

try{ Microsoft.Office. aDoc

wordApp.Documents.Open(ref filenameO, ref objFalse , ref objTrue, ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing, ref missing,

ref objTrue, ref missing, ref missing, ref missing, r ef missing);

aDoc.ActiveWindow.Selection.WholeStory(); aDoc.ActiveWindow.Selection.Copy(); IDataObject data GetDataObject();

fileText data.GetData

catch(Exception err){ err.Message }

finally{

File berhasil dibaca; }

def key(k): ky ""

for x in range(len(k)):

BilRand_Key random.randint(10, 99) temp (z.index(k[x]) + BilRand_Key) % lz ky ky + z[temp]

26

3.1.4.3 Pseudocode Enkripsi Beaufort Cipher

Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan enkripsi data dengan Beaufort Cipher. Pseudocode ditunjukkan pada Gambar 3.5.

Gambar 3.5 Pseudocode Enkripsi Beaufort Cipher

3.1.4.4 Pseudocode Algoritma Lehmann

Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan acak bilangan prima dengan RandomNumber dan primality test Algoritma Lehmann. Pseudocode ditunjukkan pada Gambar 3.6.

Gambar 3.6 Pseudocode Algoritma Lehmann dan Generator Prima

def EnkBeaufort (Plainteks, kunci): hasil1 ""

for x in range(len(Plainteks)):

temp (z.index(kunci[x]) - z.index(Plainteks[x])) % lz hasil1 hasil1 + z[temp]

return hasil1

def Lehmann(p): trial 10

for i in range (0, trial):

BilRand random.randint(2, p - 1) temp (p - 1)/2 L pow(BilRand, temp, p) if ((L != 1) & (L - p != -1)): return False return True def genPrime(x):

BilRand random.randint(pow(10, x - 1), pow(10, x) - 1) p BilRand / 2 * 2 + 1

while not (Lehmann(p)):

BilRand random.randint(pow(10, x - 1), pow(10, x) - 1) p BilRand / 2 * 2 + 1

3.1.4.3 Pseudocode Enkripsi Affine Cipher

Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan enkripsi data dengan Affine Cipher. Pseudocode ditunjukkan pada Gambar 3.7.

Gambar 3.7 Pseudocode Enkripsi Affine Cipher

3.1.4.3 Pseudocode Dekripsi Beaufort Cipher

Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan dekripsi data dengan Beaufort Cipher. Pseudocode ditunjukkan pada Gambar 3.8.

Gambar 3.8 Pseudocode Dekripsi Beaufort Cipher

3.1.4.3 Pseudocode Dekripsi Affine Cipher

Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan dekripsi data dengan Affine Cipher. Pseudocode ditunjukkan pada Gambar 3.9.

Gambar 3.9 Pseudocode Dekripsi Affine Cipher

def EnkAff(m, b, data): hasil2 ""

for x in range(len(data)):

temp (m * z.index(data[x]) + b) % lz hasil2 hasil2 + z[temp]

return hasil2

def DekBeaufort (data, kunci): hasil3 ""

for x in range(len(data)):

temp (z.index(kunci[x]) - z.index(data[x])) % lz hasil3 hasil3 + z[temp]

return hasil3

def DekBeaufort (data, kunci): hasil3 ""

for x in range(len(data)):

temp (z.index(kunci[x]) - z.index(data[x])) % lz hasil3 hasil3 + z[temp]

28

Dokumen terkait