• Tidak ada hasil yang ditemukan

Implementasi Algoritma ADFGVX Cipher dan Knapsack Dalam Pengamanan Data Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma ADFGVX Cipher dan Knapsack Dalam Pengamanan Data Teks"

Copied!
93
0
0

Teks penuh

(1)

A-1

void ENKRIPSIToolStripMenuItemClick(object sender, Eve ntArgs e)

void DEKRIPSIToolStripMenuItemClick(object sender, Eve ntArgs e)

(2)

dekrip.n = n; keluar dari Aplikasi?","konfirmasi",

(3)

A-3

2. Enkripsi plainteks menggunakan Algoritma ADFGVX Cipher

string[] arrkunci1

string tekss = richTextBox1.Text.ToUpper().ToString(); char[] teks = tekss.ToCharArray();

string[] cipher = new string[10000]; nteks = tekss.Length;

int l = 0;

Stopwatch timer = new Stopwatch(); timer.Start();

Convert.ToDouble(l)/Convert.ToDouble(textBox3.TextLength);

char[] txtkunci = textBox3.Text.ToUpper().ToCharArray(); barkey = (Convert.ToInt16( Math.Ceiling(n)))+2;

(4)

else{

char[] tempkey = new char[kolkey]; char[] tempkey1 = new char[10000];

(5)

A-5

(6)

char[] txtkunci = textBox5.Text.ToCharArray();

string tempbiner;

char[] biner = new char[nW]; nW = textBox3.TextLength;

Stopwatch timer = new Stopwatch(); timer.Start();

Convert.ToInt16(char.GetNumericValue(biner[j])) * publik[j];

5.

Dekripsi cipherkey menggunakan Algoritma Knapsack

int invmodulo = Convert.ToInt16(textBox4.Text);

string plainkey = "";

Stopwatch timer = new Stopwatch(); timer.Start();

for (int i=0; i<n; i++){

(7)

A-7

6.

Dekripsi Cipherteks Menggunakan Algoritma ADFGVX Cipher

string[] arrkunci1 char[] tempkey = textBox5.Text.ToUpper().ToCharArray(); char[] tempkey1 = new char[1000];

string tempplainteks="";

Stopwatch timer = new Stopwatch(); timer.Start();

char[] tempplainteks1 = tempplainteks.ToCharArray(); int x = 0;

while (x<textBox7.TextLength){

if (char.IsLetter(tempplainteks1[x]) == true && temppl ainteks1[x] != 'x'){

textBox8.Text +=arrkunci2[Array.IndexOf(arrkunci1, (te mpplainteks1[x]).ToString()), Array.IndexOf(arrkunci1, (temppl ainteks1[x+1].ToString()))];

(8)

break; }

else{

textBox8.Text += tempplainteks1[x].ToString(); x+=1;

} }

timer.Stop();

(9)

B-1

Curriculum Vitae

Data Pribadi

Nama : Jul Ilmi Harahap

Alamat : Desa Hutaimbaru, Kec. Halongonan, Kab. Padang Lawas Utara, Prov. Sumatera Utara

Kode Post : 22753

Nomor Telepon : 082370044798

Email : harahapilmi@gmail.com

Jenis Kelamin : Perempuan

Tanggal Kelahiran : 28 Oktober 1993

Tempat Kelahiran : Napa gadung laut

Warga Negara : Indonesia

Agama : Islam

Jenjang Pendidikan

Periode Institusi Pendidikan

2000-2006 Sekolah Dasar Negeri 100670 Hutaimbaru

2006-2009 Madrasah Tsanawiyah Swasta Al-Yunusiah, Hutaimbaru,

2009-2012 Sekolah Menengah Atas Negeri 01 Halongonan

(10)

Kemampuan

Programming HTML, Php

Design Photoshop, CSS

Microsoft Word, Excel, PowerPoint

Pendidikan Non Formal

Periode/Tahun Nama Lembaga/Seminar

2012

Smartfren

“Tren Data Evdo : Kulik Lebih Jauh Lagi Teknologi Rev B”

UKMI Ad-Dakwah Universitas Sumatera Utara “Mentoring Akbar Universitas”

2013

IMILKOM (Ikatan Mahasiswa Ilmu Komputer) “What Will You Be 2013”

UKMI Al-Khuwarizmi Fasilkom-Ti Universitas Sumatera Utara “Peserta Kelas Media interaktif dan Web Development”

2014

Universitas Sumatera Utara

“SENARAI (Seminar Nasional Literasi Informasi) 2014”

IMILKOM (Ikatan Mahasiswa Ilmu Komputer) “Kewirausahaan & Talk Show 2014”

UKM Fotografi Universitas Sumatera Utara “Peserta Workshop Dasar VII UKM Fotografi USU”

2015

(11)

B-3

Pengalaman Organisasi

Pengalaman Kerja

Periode/Tahun Jabatan Nama Organisasi

2012-2013 Anggota

Ukmi Al-Khuwarizmi Fasilkom-Ti Universitas Sumatera Utara

2013-2014 Sekretaris Devisi

Ukmi Al-Khuwarizmi Fasilkom-Ti Universitas Sumatera Utara

2015-2016

Sekretaris Umum Unit Kegiatan Mahasiswa (UKM) Fotografi USU

1. Internship –Divisi Keuangan

(12)

DAFTAR PUSTAKA

Agarwal, Ashish. 2011. Encrypting massage using the merkle-hellmen knapsack

cryptosystem. IJCSNS international jurnal of computer science and network

security 11(5): 12-14.

Cockburn, Alistair. 2001. Writing Effective Use-Cases. Addison-Wesley: Amerika.

Hayanti, Disa. 2013. Implementasi Pengamanan FIle Teks Dengan Algoritma

Kriptografi Knapsack dan Algoritma Steganografi FOF (Fisrt Of Life).

Skripsi. Universitas Sumatera Utara.

Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. SPK IT Consulting. Jakarta.

Manoharan, N., Balasubramanian., Nandhini, Uma. & Sujatha, V. 2015. A study on

cryptography using adfgvx , single or double columnar transposition, playfair,

vigenere algorithms. International jurnal of anvanced research in datamining

and cloud computing 3(1): 21-32.

Mollin, R.A. 2007. An Introduction Of Cryptography. 2nd Edition. Taylor & Francis

Group: LLC. United State Of America.

Prameswara, Gustaf. 2012. Implementasi algoritma one time pad pada data teks dan

knapsack pada kunci. Skripsi. Universitas Sumatera Utara.

(13)

66

Sachdeva, Komal. 2013. Public key cryptography with knapsack systems.

International jurnal of engineering and advanced technology (IJEAT) 3(2):

310-311.

Sihotang, Rajab. 2014. Analisis perbandingan algoritma nihilist dengan adfgvx pada

pengamanan file text. Skripsi. Universitas Sumatera Utara.

Sembiring, Dira Fahrendy. 2013. implementasi keamanan teks pada citra bitmap

dengan kombinasi algoritma knapsack dan algoritma least significant bit (lsb)

terhadap modifikasi nilai brightnes. Skripsi. Universitas Sumatera Utara.

Smart, N.P. 2016. Information security and cryptography: Cryptography made simple.

Springer International Publishing: Switzerland.

Whitten J. L., Bentley, L. D., K. C. 2004. Systems analysis & design methods. 7nd

(14)

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Sebelum melakukan perancangan sistem perlu dilakukan analisis sistem. Analisis

sistem merupakan proses penguraian sistem yang utuh ke dalam bagian-bagian yang

kecil dengan maksud untuk mengidentifikasi dan mengelompokkan permasalahan

yang ada sehingga diperoleh gambaran tentang kebutuhan sistem dan alur kerja dari

sistem. Analisis sistem terbagi menjadi tiga langkah yaitu, analisis permasalahan,

analisis kebutuhan dan analisis proses. Analisis permasalahan digunakan untuk

memahami penyebab masalah serta kelayakan masalah. Analisis kebutuhan bertujuan

untuk mengetahui data apa dan proses apa yang dibutuhkan dalam sistem. Analisis

proses bertujuan untuk menjelaskan bagaimana proses dari sistem.

3.1.1 Analisis Masalah

Anlisis masalah merupakan langkah pertama yang dilakukan dalam analisis sistem.

masalah yang akan diselesaikan dengan menggunakan sistem ini adalah bagaimana

mengamankan sebuah data sehingga hanya pengirim pesan dan penerima pesan saja

yang bisa mengerti pesan tersebut. Sistem ini menggunakan sebuah algoritma

kriptografi simetris ADFGVX Cipher untuk mengamankan data, supaya pesan lebih

aman kunci yang digunakan dalam ADFGVX Cipher diamankan kembali dengan

menggunakan algoritma kriptografi asimetris knapsack. Analisis masalah dapat

diuraikan sebagai berikut:

1. User merupakan orang yang melakukan pembangkitan kunci, proses enkripsi

(15)

18

4. Sistem, menunjukkan pengamanan data yang baik dari kombinasi algoritma

ADFGVX cipher dan algoritma kanpsack

Selanjutnya digunakan diagram ishikawa (fishbone diagram) untuk

mengidentifikasi masalah. Diagram ishikawa merupakan alat visual yang digunakan

untuk mengidentifikasi, mengeksplorasi dan menggambarkan secara detail semua

penyebab yang berhubungan dengan permasalahan. Diagram ishikawa sistem dapat

dilihat pada Gambar 3.1.

Gambar 3.1. Diagram Ishikawa Sistem

3.1.2 Analisis Kebutuhan

Analisis kebutuhan merupakan langkah awal menentukan seperti apa sistem yang

akan dihasilkan. Analisis kebutuhan terbagi menjadi dua, yaitu kebutuhan fungsional

dan kebutuhan nonfungsional. Kebutuhan fungsional mendekskripsikan aktivitas yang

dilakukan oleh suatu sistem, sedangkan kebutuhan nonfungsional mendekskripsikan

fitur, karakteristik dan batasan lainnya.

User Kebutuhan user terhadap

(16)

3.1.2.1 Kebutuhan Fungsional

kebutuhan fungsional yang harus dipenuhi oleh sistem yang dirancang adalah:

1. Sistem mampu membaca String dalam file teks yang diinputkan oleh user

maupun file yang telah ada dalam format *.txt, *.doc/docx.

2. Sistem mampu melakukan enkripsi pesan dengan algoritma ADFGVX Cipher

dengan kunci yang diinputkan dan telah disepakati oleh pengirim dan penerima

pesan, sehingga didapat hasil berupa cipherteks.

3. Sistem mampu melakukan enkripsi terhadap kata kunci dengan menggunakan

algoritma Knapsack, sehingga didapatkan hasil berupa cipherkey.

4. Sistem mampu melakukan dekripsi terhadap cipherkey sehingga menjadi string

yang sama dengan string sebelum di enkripsi.

5. Sistem mampu melakukan dekripsi terhadap cipherteks sehingga menjadi string

yang sama dengan string sebelum di enkripsi.

3.1.2.2 Kebutuhan Nonfungsional

Kebutuhan nonfungsional pada sistem ini meliputi:

1. Performa

Sistem yang dibangun harus dapat melakukan proses kriptografi yang meliputi

pembangkitan kunci, proses enkripsi dan proses dekripsi.

2. Mudah digunakan dan dipelajari

Sistem yang akan dibangun harus memiliki tampilan yang user friendly agar

mudah dipahami oleh user.

3. Ekonomi

Sistem yang akan dibangun harus dapat bekerja dengan baik tanpa perlu

mengeluarkan biaya yang tinggi.

4. Dokumentasi

(17)

20

3.1.3 Analisis Proses

Sistem dibangun menggunakan bahasa pemrograman C#. Algoritma kriptografi yang

digunakan adalah algoritma simetris ADFGVX Cipher dan algoritma asimetris

knapsack.

3.2 Perancangan Sistem

Perancangan aplikasi bertujuan untuk menggambarkan semua kondisi dan

bagian-bagian yang berperan dalam sistem. Perancangan sistem yang akan diaplikasikan ke

dalam penelitian ini adalah perancangan sistem dengan menggunakan UML. UML

merupakan bahasa yang berfungsi untuk menjelaskan masing-masing komponen pada

sistem secara detail, berikut dengan interaksi yang terjadi pada masing-masing

komponen tersebut. Model UML yang digunakan, diantaranya adalah : use case

diagram, activity diagram, serta sequence diagram.

3.2.1 Use-case Diagram

Use case diagram merupakan suatu gambaran atau deskripsi yang menjelaskan

interaksi antara sistem dan actor (user) yang mencakup kebutuhan (requirement) yang

ada pada sistem tersebut. Hubungan antara actor dengan use case dihubungkan

dengan garis lurus. Hubungan use case yang menunjukan penggunaan kembali

tindakan yang dimodelkan oleh use case lain disebut include. Sementara itu,

hubungan use case yang dimaksudkan untuk menambahkan bagian untuk use case

yang ada serta untuk pemodelan komponen layanan opsional disebut extend

(Cockburn, Alistair. 2000).Use-case diagram yang akan digunakan dalam sistem ini

(18)

Gambar 3.2. Use Case Diagram

Pada gambar 3.2 terdapat actor yang berfungsi sebagai user sistem. Actor

melakukan input text terlebih dahulu untuk bisa melakukan enkripsi kemudian

melakukan dekripsi. Untuk input text, user dapat melakukan dengan cara mengetikkan

teks di dalam tekxbox atau memilih file yang telah disediakan. Hasil enkripsi ataupun

hasil dekripsi dapat disimpan oleh user jika menginginkannya. Untuk enkripsi

terdapat dua proses yaitu proses enkripsi kunci dan proses enkripsi plainteks. Proses

dekripsi juga terbagi menjadi dua yaitu proses dekripsi kunci dan proses dekripsi

palinteks. Tabel deskripsi use-case input text dapat dilihat pada Tabel 3.1.

Tabel 3.1 Deskripsi use-case input Text

(19)

22

Pre condition user mempersiapkan file yang akan dienkripsi dengan ekstensi *.txt atau *.Doc.

Post condition Textbox menampilkan plainteks

Success scenario 1. User mengetik secara manual plainteks di dalam textbox. 2. User menekan tombol pilih file.

3. User memilih file.

4. User menekan tombol open. 5. Textbox menampilkan plainteks.

Alternative flow

-Dekripsi dari use-case enkripsi plainteks dapat dilihat pada Gambar 3.2.

Tabel 3.2 Deskripsi use-case enkripsi plainteks

Name Use-Case Enkripsi Plainteks

Actor User

Trigger user memasukkan plainteks yang akan dienkripsi dan memasukkan kunci .

Pre condition user mempersiapkan file yang akan dienkripsi dengan ekstensi *.txt atau *.Doc. User juga mempersiapkan kunci untuk enkripsi.

Post condition User mendapatkan file hasil enkripsi atau Cipherteks

Success scenario 6. user telah memasukkan file yang akan di enkripsi beserta kuncinya

7. user mengakses tombol enkripsi

8. Sistem melakukan proses enkripsi terhadap plainteks yang telah dimasukkan.

9. user mendapatkan cipherteks, yaitu hasil enkripsi dari

plainteks.

Alternative flow Jika plainteks tidak dimasukkan maka sistem akan mengalami error

(20)

Tabel deskripsi use-case enkripsi kuncidapat dilihat pada Tabel 3.3.

Tabel 3.3 Deskripsi use-case enkripsi Kunci

Name Use-Case Enkripsi Kunci

Actor User

Trigger User memasukkan kunci, barisan superincreasing nilai m dan nilai n

Pre condition User mempersiapkan kunci yang akan di enkripsi

Post condition User mendapatkan file hasil enkripsi atau cipherkey dari kunci

Success scenario 1. User telah memasukkan kata kunci yang akan digunakan

2. User mengacak barisan superincreasing dan juga

membagkitkan nilai m dan nilai n

3. Sistem melakukan proses enkripsi terhadap kata kunci yang telah dimasukkan

4. User mendapatkan cipherkey, yaitu hasil enkripsi dari kunci.

Alternative flow Jika kunci tidak dimasukkan maka sistem akan mengalami error

Tabel deskripsi use-case dekripsi kuncidapat dilihat pada Tabel 3.4.

Tabel 3.4 Deskripsi use-case Dekripsi kunci

Name Use-Case Dekripsi Kunci

Actor User

Trigger User memasukkan cipherkey kunci dan membangkitkan barisan superincreasing nilai m dan n

Pre condition User mempersiapkan cipherkey kunci yang akan di enkripsi

(21)

24

Success

scenario

1. User telah memasukkan cipherkey kunci yang akan dienkripsi

2. User membangkitkan barisan superincreasing nilai m dan n

3. Sistem melakukan proses dekripsi terhadap cipherkey kunci yang telah dimasukkan

4. User mendapatkan plainkey kunci, yaitu kata kunci awal

Alternative flow Jika Cipherkey tidak dimasukkan maka sistem akan mengalami error

Tabel deskripsi use-case dekripsi cipherteksdapat dilihat pada Tabel 3.5.

Tabel 3.5 Deskripsi use-case dekripsi cipherteks

Name Use-Case Dekripsi Cipherteks

Actor User

Trigger User memasukkan cipherteks yang akan dienkripsi

Pre condition User mempersiapkan cipherteks hasil enkripsi

Post condition User mendapatkan file asli atau plainteks awal

Success scenario 1. User telah memasukkan cipherteks yang akan dienkripsi

2. User memasukkan kata kunci yang telah di dekripsi

3. Sistem melakukan proses dekripsi terhadap cipherteks yang telah dimasukkan

4. User mendapatkan plainteks, yaitu file asli

Alternative flow Jika cipherteks tidak dimasukkan maka sistem akan mengalami error

3.2.2 Activity Diagram

Activitydiagram berguna untuk menampilkan gambaran langkah-langkah proses atau

alur kegiatan dari sistem (Whitten, J.L. & Bentley, L.D. 2007). Activity diagram juga

bertujuan untuk memberikan bantuan untuk memahami proses dan gambaran setiap

interaksi yang terjadi di dalam suatu sistem. Activity diagram untuk proses enkripsi

(22)

Gambar 3.3. Activity Diagram Enkripsi

Pada Gambar 3.3 dapat dilihat untuk melakukan enkripsi hal pertama yang

dilakukan adalah memilih file yang akan di enkripsi, memasukkan kunci kemudian

mengenkripsi file. Setelah file dienkripsi hal selanjutnya yang dilakukan adalah

mengenkripsi kata kunci. Untuk melakukan enkripsi kunci dibutuhkan barisan

superinceasing nilai m dan nilai n. setelah mendapatkan barisan superincreasing nilai

m dan nilai m, maka dilakukan enkripsi kunci. Activity diagram untuk proses dekripsi

(23)

26

Gambar 3.4. Activity Diagram Dekripsi

Pada Gambar 3.4 dapat dilihat alur sistem dari proses dekripsi. Pertama,

masukkan cipherteks kunci, masukkan barisan superincreasing nilai m dan nilai n,

kemudian dekripsi kunci. Setelah plainteks kunci didapatkan, selanjutnya cari file

cipherteks yang akan didekripsi, kemudian dekripsi file cipherteks dengan

menggunakan kunci yang telah di dekripsi.

3.2.3 Sequence diagram

Sequence diagram adalah diagram yang menunjukan interaksi yang ada pada sistem

dan menjelaskan bagaimana proses operasi yang ada pada masing-masing komponen

pada sistem berdasarkan perintah yang ada pada sistem. Diagram ini membangun

suatu diagram pesan secara berurutan dan menunjukan interaksi yang disusun secara

berurutan. Sequence diagram pada sistem yang dirancang ditunjukkan pada Gambar

(24)

Gambar 3.5. Sequence Diagram

3.2.4 Flowchart

Pada sistem ini terdapat 7 flowchart yang terdiri dari flowchart sistem enkripsi dan

dekripsi, flowchart enkripsi dan dekripsi algoritma ADFGVX Cipher, flowchart

enkripsi dan dekripsi algoritma Knapsack dan flowchart pembangkit kunci algoritma

knapsack.

3.2.4.1 Flowchart enkripsi dan dekripsi sistem

Sistem yang akan dibuat terdiri dari dua proses yaitu proses enkripsi dan proses

dekripsi. Untuk alur dari proses enkripsi dapat dilihat pada Gambar 3.6, sedangkan

(25)

28

Gambar 3.6. Proses Enkripsi Sistem Gambar 3.7. Proses Dekripsi Sistem

3.2.4.2 Flowchart ADFGVX Cipher

Proses yang dilakukan oleh algoritma ADFGVX Cipher adalah mengamankan data.

Algoritma ADFGVX mempunyai dua proses yaitu proses enkripsi dan proses

dekripsi. Untuk alur dari proses enkripsi algoritma ADFGVX dapat dilihat pada

(26)
(27)

30

(28)

3.2.4.3 Flowchart Knapsack

Flowchart alur dari sistem enkripsi knapsack ditujukan pada Gambar 3.10, flowchart

untuk proses dekripsi ditujukan pada Gambar 3.11 dan untuk flowchart pembangkit

kunci dari algoritma knapsack dapat dilihat pada Gambar 3.12.

(29)
(30)

Gambar 3.12. Flowchart Pembangkit Kunci Algoritma Knapsack

3.3 Perancangan Antar Muka

Perancangan antar muka merupakan penghubung antara user dengan sistem. Syarat

utama pembuatan antar muka adalah berorientasi pada user friendly, hal ini

dimaksudkan untuk memudahkan user dalam pengoperasian sistem. Mulai

Panjang Barisan (W)

Acak Barisan (W)

Barisan Kprivat

Acak Nilai M, N

Kpublik= (W.N) Mod

M

KPublik

(31)

34

3.3.1 Rancangan Halaman Awal

Halaman awal sistem merupakan halaman yang pertama kali tampil saat sistem

dijalankan. Halaman awal berisi tentang judul penelitian, nama penulis, dan instansi

pendidikan penulis. Rancangan halaman awal dapat dilihat pada Gambar 3.13.

Gambar 3.13 Rancangan Halaman Awal

Gambar 3.13. Rancangan Halaman Utama

Keterangan gambar pada rancangan halaman Utama dapat dilihat pada Tabel 3.6.

Tabel 3.6 keterangan Rancangan Halaman Utama

No Type Teks Nama Keterangan

1 Button Proses Button1 Terdapat dua proses yaitu enkripsi dan

dekripsi

2 Button Tentang Button2 Menampilkan keterangan sistem

3 Button Bantuan Button3 Menampilkan tata cara Penggunaan

sistem PROSES TENTANG BANTUAN KELUAR

Implementasi Algoritma ADFGVX

Cipher

dan

Knapsack

dalam Pengamanan Data Teks

Jul Ilmi Harahap 121401048

PROGRAM STUDI S-1 ILMU KOMPUTER

(32)

5 Label Judul Skripsi

Label1 Menampilkan judul skripsi

6 PictureBo

3.3.2 Rancangan Halaman proses enkripsi file dan enkripsi kunci

Rancangan halaman proses enkripsi file dan enkripsi kunci dapat dilihat pada Gambar

3.14.

Enkripsi File 1 Enkripsi Kunci

(33)

36

Keterangan rancangan halaman enkripsi dapat dilihat pada Tabel 3.7.

Tabel 3.7 Keterangan Rancangan Halaman Enkripsi

No Tipe Teks Name Keterangan

8 TextBox - TextBox3 Menampilkan Ukuran

File

9 Label Kunci Label4 -

10 TextBox - TextBox4 Inputan kata kunci

11 Label Hasil Enkripsi Pesan Label5 -

12 TextBox - TextBox5 Menampilkan Hasil

Enkripsi

13 Button Enkripsi Button2 Enkripsi file/teks

14 Button Simpan Button3 SImpan hasil enkripsi

15 Label Waktu Eksekusi Label6 -

16 TextBox - TextBox6 Menampilkan waktu

eksekusi

17 Label Ukuran file Label7 -

18 TextBox - TextBox7 Menampilkan ukuran

(34)

23 Label Nilai n Label11 -

32 TextBox - TextBox12 Menampilkan kunci

public

33 Button Acak Kunci Button4 Mengacak kunci

34 TextBox - TextBox13 Menampilkan hasil

enkripsi kunci

35 Button Enkripsi Button5 Melakukan proses

enkripsi kunci

36 Button Simpan Button6 Menyimpan hasil

enkripsi kunci

37 TextBox - TextBox14 Menampilkan lama

proses enkripsi

38 TextBox - TextBox15 Menampilkan ukuran

file

39 Button Reset Button7 Menghapus semua isi

textbox

40 Button Kembali Button8 Kembali ke halaman

depan

(35)

38

Gambar 3.15. Rancangan Halaman Dekripsi

Keterangan rancangan untuk halaman dekripsi kunci dan dekripsi file dapat dilihat

pada Tabel 3.8.

Tabel 3.8 Keterangan Rancangan Halaman Dekripsi

No Type Teks Nama Keterangan

Dekripsi Kunci 1 Dekripsi FIle

(36)

7 Label Waktu Eksekusi Label6 -

8 Label Ukuran File Label7 -

9 TextBox - TextBox1 Menampilkan Cipherteks kunci

10 TextBox - TextBox2 Menampilkan barisan kunci

privat

11 TextBox - TextBox3 Menampilkan nilai m

12 TextBox - TextBox4 Menampilkan Nilai n-1

13 TextBox - TextBox5 Menampilkan hasil dekripsi

kunci

14 TextBox - TextBox6 Menampilkan waktu eksekusi

sistem

15 TextBox - TextBox7 Menampilkan Ukuran File

16 Button Dekripsi Button1 Melakukan proses dekripsi

kunci

17 Button Simpan Button2 Menyimpan hasil dekripsi

kunci

24 TextBox - TextBox8 Menampilkan nama file

25 TextBox - TextBox9 Menampilkan isi file

26 TextBox - TextBox10 Menampilkan hasil dekripsi file

27 TextBox - TextBox11 Menampilkan waktu eksekusi

(37)

40

32 Button Kembali Button6 Menghapus semua field

32 Button Reset Button7 Kembali ke halaman depan

3.3.4 Rancangan Halaman About

Halaman about merupakan halaman yang berisi biodata dari penulis. Rancangan

halaman about dapat dilihat pada Gambar 3.16.

Gambar 3.16. Rancangan Halaman About

Keterangan rancangan halaman About dapat dilihat pada Tabel 3.9

Tabel 3.9 Keterangan Rancangan Halaman About

No Type Teks Nama Keterangan

1 Label Judul skripsi Label1 -

2 Label Created By Label2 -

3 PictureBox - PictoreBox1 Menampilka gambar

penulis

IMPLEMENTASI ADFGVX CIPHER DAN

(38)

penulis

5 Button Kembali Button1 Kembali ke halaman

depan

3.3.5 Rancangan Halaman Help

Halaman help menampilkan tatacara Penggunaan sistem. Halaman ini akan

membantu User dalam menggunakan sistem. Rancangan halaman help ditunjukkan

pada Gambar 3.17.

Gambar 3.10 Rancangan halaman Help

Gambar 3.17. Rancangan Halaman Help

Keterangan rancangan halaman help dapat dilihat pada Tabel 3.10.

Tabel 3.10 Rancangan Halaman Help 1

3 1.

2.

3.

4.

(39)

42

2 Label Keterangan

Penggunaan

Label1 -

(40)

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Setelah tahap analisis dan perancangan sistem selesai seperti yang telah diuraikan

pada Bab III, tahap selanjutnya adalah implementasi sistem. Penulis menggunakan c#

sebagai bahasa pemrogramana dan SharDepelov sebagai editor untuk membangun

sistem. Aplikasi dijalankan pada laptop dengan sistem operasi Windows 7, Ram

berukuran 2.0 GB dan intel® CoreTM i3 sebagai processor. Dalam sistem ini terdapat

empat halaman yaitu: halaman Home, halaman Enkripsi, halaman Dekripsi, Halaman

About, dan halaman Help.

4.1.1 Halaman Home

Halaman Home merupakan halaman yang menampilkan judul skripsi, logo instansi,

nama penulis beserta nomor induk mahasiswa (NIM), nama departemen, universitas

dan tahun. Pada halaman Home juga terdapat menubar yaitu: menu Proses yang berisi

dua Submenu yaitu Enkripsi dan Dekripsi. Submenu Enkripsi untuk memanggil

halaman Enkripsi, Submenu Dekripsi untuk memanggil halaman Dekripsi. Menu

Tentang untuk memanggil halaman About, dan menu Bantuan untuk memanggil

(41)

44

Gambar 4.1. Tampilan Halaman Home

4.1.2 Halaman Enkripsi

Menubar Enkripsi terdapat pada submenu proses. Tampilan dari halaman enkripsi

dapat dilihat pada Gambar 4.2.

(42)

Halaman dekripsi merupakan halaman yang menampilkan proses dekripsi kunci dan

proses dekripsi file. Tampilan halaman proses dekripsi dapat dilihat pada Gambar 4.3.

Gambar 4.3. Halaman Dekripsi

4.1.4 Halaman About

Halaman About menampilkan judul skripsi, gambar penulis dan biodata penulis.

(43)

46

4.1.5 Halaman Help

Halaman Help berfungsi untuk membantu user mengetahui bagaimana cara

menggunakan sistem. Tampilan halaman Help dapat dilihat pada Gambar 4.5.

Gambar 4.5. Halaman Help

4.2 Pengujian

Pada tahap pengujian akan dilakukan pengujian keberhasilan sistem dalam melakukan

enkripsi dan dekripsi file dengan menggunakan algoritma ADFGVX cipher dan

knapsack. File yang akan dienkripsi merupakan file dengan ekstensi *.txt dan *.doc.

4.2.1 Proses Pengujian Enkripsi pesan

Proses enkripsi pesan dilakukan dengan menggunakan algoritma ADFGVX cipher.

algoritma ADFGVX cipher menggunakan tabel 6x6 yang berisi 26 alphabet dan

angka 0-9. Untuk melakukan proses enkripsi user terlebih dahulu menekan tombol

Buka File mencari file yang akan di enkripsi atau user bisa menginputkan langsung ke

(44)

Gambar 4.6. Buka File

Setelah file diinputkan pengguna terlebih dahulu menginputkan kata kunci

sebelum melakukan enkripsi. Proses input plainteks dan kunci dapat dilihat pada

(45)

48

Untuk melakukan enkripsi digunakan algoritma ADFGXV cipher, berikut adalah

langkah-langkah proses enkripsi plainteks.

1. Contoh plainteks yang akan dienkripsi adalah “HARAHAP28” dengan kata kunci

ilkom. Lakukan substitusi plainteks terhadap tabel ADFGVX cipher. setiap huruf

di dalam plainteks di substitusi menjadi dua huruf berdasarkan baris dan kolom.

Tabel ADFGVX cipher dapat dilihat pada Tabel 4.1.

Tabel 4.1. Tabel ADFGVX Cipher

A D F G V X

Dari Tabel 4.1 didapatkan substitusi dari plainteks “HARAHAP28” adalah DD

AX FA AX DD AX FF VD XV.

2. Tentukan kata kunci yang terdiri dari huruf saja. Kunci ini akan digunakan pada

proses tranposisi. Misal kunci yang digunakan adalah ILKOM. Maka buatlah

sebuah tabel baru dan tuliskan kata kunci di baris pertama. Kemudian tulis hasil

substitusi plainteks dibawahnya berurutan dari kanan kemudian kebawah jika ada

sisa maka diisi dengan huruf x , seperti pada Tabel 4.2.

Tabel 4.2. Tabel Kunci Enkripsi ADFGVX Cipher

(46)

3. Selanjutnya urutkan kolom pada kata kunci berdasarkan alphabet. Maka

ILKOM menjadi IKLMO sehingga menjadi seperti pada Tabel 4.3.

Tabel 4.3. Perubahan Posisi Kunci ADFGVX Cipher

I K L M O

1 3 2 5 4

D A D F X

D X D A A

A F X V F

x V X D X

4. Untuk mendapatkan cipherteks lakukan pembacaan dari huruf-huruf yag

berada dibaris pertama dan seterusnya pada Tabel 4.3. Maka untuk

plainteks “HARAHAP28” dengan kata kunci “ilkom” didapatkan

“DDAxAXFVDDXx FAVDXAFX”.

Dengan langkah yang sama proses enkripsi dapat dilakukan untuk

mengenkripsi plainteks “ Ilmi harahap, mahasiswa S1 ilmu komputer stambuk 2012”

(47)

50

Gambar 4.8 menunjukkan hasil enkripsi dan juga waktu eksekusi dalam satuan

second, dimana untuk mengenkripsi plainteks “Ilmi harahap, mahasiswa S1 ilmu

komputer stambuk 2012” didapatkan plainteks “DDDAXDDGVFDFGADX

F20DFXDFAXGXFDXGADAV2FADFXAAADXVFDFAX1FXAA FADGAGF

FGGAGFxXDFX,XGF 1X FF GVDx” dengan lama proses selama 0.1150513 s.

Pada implementasinya algoritma ADFGVX cipher hanya mampu melakukan

enkripsi terhadap alphabet numeric saja, Untuk mengurangi kelemahan tersebut

penulis melakukan penambahan kondisi pada source code di dalam sistem.

Kondisinya adalah ketika sistem menemukan symbol pada plainteks maka letakkan

symbol tersebut pada posisi +1 dibelakang plainteks sesudahnya. Kondisi tersebut

berjalan dengan baik didalam sitem tetapi menyebabkan hasil ciphertekes yang

dikerjakan secara manual berbeda sedikit dengan hasil cipherteks yang didapatkan

dari sistem.

4.2.2 Proses Pengacakan Kunci

User menekan tombol Acak untuk mendapatkan kunci publik dan kunci privat, selain

kunci publik dan kunci privat, di dalam halaman enkripsi kunci terdapat nilai m dan

nilai n. Nilai m dan nilai m digunakan untuk mencari kunci publik.

Barisan superincreasing merupakan kunci privat yang didapatkan dengan cara

melakukan pengacakan terhadap bilangan bulat, dalam pengacakan barisan

superincreasing terdapat kondisi dimana setiap nilai di dalam barisan harus lebih

besar daripada jumlah semua nilai sebelumnya. Nilai m dan n merupakan bilangan

yang relatif prima.Dua bilangan dikatakan relatif prima jika FPB dari kedua bilangan

tersebut adalah sama dengan 1. Dimana nilai m harus lebih besar dari jumlah semua

elemen dalam barisan superincreasing.

Barisan superincrasing : 2 4 8 15 31 61 123

Nilam m : 6493

Nilai n : 103

Untuk mendapatkan kunci publik maka digunakan persamaan:

Kunci publik = (barisan superincrasing x n) mod m………..pers

(48)

Kunci publik = (8x103) mod 6493 = 824

Kunci publik = (15x103) mod 6493 = 1545

Kunci publik = (31x103) mod 6493 = 3193

Kunci publik = (61x103) mod 6493 = 6283

Kunci publik = (123x103) mod 6493 = 6176

Maka didapatkan kunci publik 206 412 824 1545 3193 6283 6176. Proses

pengacakan kunci dengan menggunakan sistem dapat dilihat pada Gambar 4.9.

Gambar 4.9. Proses Pengacakan Kunci

4.2.3 Enkripsi Kunci (plainkey)

Proses enkripsi plainkey dapat dilakukan setelah proses pengacakan kunci selesai.

Untuk melakukan enkripsi plainkey digunakan algoritma knapsack, berikut adalah

langkah-langkah proses enkripsi plainkey dengan menggunakan algoritma knapsack.

1. Kunci yang digunakan adalah “ilkom”, pertama ubah kata ilkom ke dalam biner,

untuk proses pengubahan kata kunci ke dalam biner dapat dilihat pada Tabel 4.4.

(49)

52

K 107 1101011

O 111 1101111

M 109 1101101

Didapatkan plainkey yang akan di enkripsi yaitu : 11010011101

100110101111011111101101.

2. Bagi plainkey menjadi blok dengan panjang 7 (merupakan panjang maksimal biner

untuk alphabet numeric). Kemudian setiap bit di dalam blok dikalikan dengan

elemen yang berkoresponden dengan kunci publik. Sebagai berikut:

Kunci publik : 206 412 824 1545 3193 6283 6176

Blok plainteks 1 : 1101001

Kriptogram : (1x206)+(1x412)+(1x1545)+(1x6176) = 8339

Blok plainteks 2 : 1101100

Kriptogram : (1x206)+(1x412)+(1x1545)+(1x3193) = 5356

Blok plainteks 3: 1101011

Kriptogram : (1x206)+(1x412)+(1x1545)+(1x6283)(+(1x6176) = 14622

Blok plainteks 4: 1101111

Kriptogram: (1x206)+(1x412)+(1x1545)+(1x3193)+(1x6283)+(1x6176) = 17815

Blok plainteks 5 : 1101101

Kriptogram: (1x206)+(1x412)+(1x1545)+(1x3193)+(1x6176) = 11120 = 11532

Maka didapatkanlah cipherkey dari ilkom yaitu : 8339 5356 14622 17815

(50)

Gambar 4.10. Proses Enkripsi Kunci

Gambar 4.10 menunjukkan hasil enkripsi dari plainkey sesuai dengan

perhitungan yang dilakukan secara manual. Waktu yang dibutuhkan untuk

mengenkripsi plainkey “ilkom” adalah 0.0024411 s.

4.2.4 Dekripsi Kunci

Untuk melakukan dekripsi cipherkey menjadi plainkey digunakan kunci privat atau

barisan superincreasing, nilai m dan nilai n yang didapatkan dari proses enkripsi

plainkey, serta mencari nilai n-1 yaitu n modulo m , sedemikian hingga n.n-1 ≡ 1 (mod

m).

Dik:

Cipherkey : 8339 5356 14622 17815 11532

Kunci privat : 2 4 8 15 31 61 123

Nilai m : 6493

Nilai n: 103

(51)

54

Tabel 4.5. Pencarian Nilai n-1

n-1 n.n-1 (mod m)

1 103.1 (mod 6493) = 103

2 103.2(mod 6493) = 206

. ….

4 103.4854(mod 6493) = 1

Maka didapatkan nilai n-1 = 4854. Proses pencarian nilai n-1 menggunakan sistem

dapat dilihat pada Gambar 4.11.

Gambar 4.11. proses pencarian Nilai n-1

Selanjutnya dilakukan proses dekripsi, berikut langkah langkah untuk

melakukan dekripsi cipherkey menggunakan algoritma knapsack.

1. Cari nilai plainkey sementara (Temp) dengan menggunakan persamaan :

(52)

Temp1 = (8339 x 4854) mod 6493 = 144

Temp2 = (5356 x 4854) mod 6493 = 52

Temp3 = (14622 x 4854) mod 6493 = 205

Temp4 = (17815 x 4854) mod 6493 = 236

Temp5 = (11532 x 4854) mod 6493 = 175

2. Cari nilai masing-masing Temp yang berkoresponden dengan nilai kunci privat

dengan menggunakan solusi knapsack superincreasing problem.

Solusi superincreasing knapsack :

a) Bandingkan nilai Temp dengan nilai terbesar di dalam barisan

superincreasing. Jika nilai terbesar di dalam barisan lebih kecil atau sama

dengan nilai Temp, maka nilai dimasukkan ke dalam knapsack, jika tidak

maka nilai tidak dimasukkan.

b) Kurangi nilai terbesar di dalam barisan dengan nilai Temp, kemudian

bandingkan nilai Temp sekarang dengan nilai terbesar selanjutnya. Demikian

seterusnya sampai semua nilai di dalam barisan selesai dibandingkan.

Cari nilai temp yang berkoresponden dengan nilai kunci privat seperti pada Tabel

4.6.

Tabel 4.6. Solusi Superincreasing Knapsack

(53)

56

Temp1 = 144, berkoresponden dengan 1101001

Dengan mengikuti langkah-langkah pada solusi superincreasing knapsack, maka di

dapatkan nilai dari masing-masing Temp sebagai berikut:

Temp2 = 52, berkoresponden dengan 1101100

Temp3 = 205, berkoresponden dengan 1101011

Temp4 = 236, berkoresponden dengan 1101111

Temp5 = 175, berkoresponden dengan 1101101

Kemudian ubah biner kedalam bilangan desimal dan cari char dari

masing-masing nilai desimal tersebut, seperti pada Tabel 4.7

Tabel 4.7 Perubahan Biner ke Char

No Tempi Biner ASCII Char

1 Temp1 1101001 105 i

2 Temp2 1101100 108 l

3 Temp3 1101011 107 k

4 Temp4 1101111 111 o

5 Temp5 1101101 109 m

Maka di dapatkan kembali plainkey, yaitu “ ilkom”. Proses dekripsi cipherkey

(54)

Gambar 4.12. Proses Dekripsi Cipherkey

Gambar 4.12 menunjukkan hasil dari proses dekripsi plainkey. Pada proses

dekripsi didapatkan kembali plainkey “ilkom” dengan waktu eksekusi selama 3.6988

detik.

4.2.5 Proses Dekripsi Chiperteks

Proses dekripsi cipherteks dilakukan dengan menggunakan algoritma ADFGVX

cipher. berikut langkah-langkah yang dilakukan untuk dekripsi cipherteks dengan

menggunakan contoh pada proses enkripsi.

7) Lakukan pemisahan cipherteks dengan cara membagi jumlah elemen yang ada

pada cipherteks dengan jumlah elemen yang ada pada kunci. Kita memiliki pesan

cipherteks DDAxAXFVDDXx FAVDXAFX dan misalkan kita memiliki kunci

ILKOM. Maka kita dapat membagi tiap kelompok terdiri dari 20/5= 4 huruf,

menjadi DDAx AXFV DDXx FAVD XAFX.

8) Selanjutnya, urutkan kunci sesuai alphabet, maka ILKOM menjadi IKLMO,

(55)

58

miliki, seperti pada Tabel 4.9.

Tabel 4.9. Tabel Kunci Dekripsi ADFGVX Cipher sesuai Urutan

I L K O M

menggunakan Tabel 4.9 didapatkan DDAXFAAXDDAXFFVDXVxx.

11)Langkah terakhir adalah mencari padanan karakter dari dua huruf yang kita

dapatkan dengan tabel ADFGVX, seperti pada Tabel 4.10.

Tabel 4.10. Tabel ADFGVX Cipher

A D F G V X

HARAHAP28. Untuk huruf xx tidak dilakukan pembacaan karena huruf tersebut

(56)

Dengan menggunakan langkah yang sama, untuk cipherteks

“DDDAXDDGVFD

FGADXF20DFXDFAXGXFDXGADAV2FADFXAAADXVFDFAX1FXAA

ADGAGF

FGGAGFxXDFX,XGF 1X FF GVDx” di dapatkan kembali plainteks seperti pada

Gambar 4.13.

Gambar 4.13. Proses Dekripsi Cipherteks

Gambar 4.13 menunjukkan hasil dekripsi cipherteks. Dari proses dekripsi di dapatkan

kembali plainteks yaitu” ILMI HARAHAP, MAHASISWA S1 ILMU KOMPUTER STAMBUK 2012” dan lama proses dekripsi yaitu 21.6982 detik. Pada saat di dekripsi plainteks berubah menjadi caps lock karena alphabet yang berada dalam tabel

ADFGVX Cipher merupakan rangkain huruf besar (caps lock).

(57)

60

Tabel 4.11. Waktu Proses Enkripsi Algoritma ADFGVX Cipher

No Plainteks Panjang

plainteks

Waktu proses (sekon) Rata-rata waktu

1 Bertukar informasi merupakan hal

yang biasa kita lakukan. Bertukar

informasi jarak jauh dapat

dilakukan melalui kantor pos, surat

dan surel (surat elektronik).

160

karakter

0.23021 0.264585 0.376359 0.2903846

2 Bertukar informasi merupakan hal yang biasa kita lakukan. Bertukar informasi jarak jauh dapat dilakukan melalui kantor pos, surat dan surel (surat elektronik). Surel (Surat Elektronik) memungkinkan kita untuk bertukar informasi jarak jauh tanpa membutuhkan waktu yang lama, namun keamanan informasi (data) dalam pengiriman informasi melalui surat elektronik (e-mail) dipertaruhkan.

381

karakter

1.691963 1.956994 3.504815

1

2.3845906

3 Bertukar informasi merupakan hal yang biasa kita lakukan. Bertukar informasi jarak jauh dapat dilakukan melalui kantor pos, surat dan surel (surat elektronik). Surel (Surat Elektronik) memungkinkan kita untuk bertukar informasi jarak jauh tanpa membutuhkan waktu yang lama, namun keamanan informasi (data) dalam pengiriman informasi melalui surat elektronik (e-mail) dipertaruhkan. Oleh karena itu dibutuhkan berbagai cara untuk mengamankan informasi tersebut agar sampai ketujuan dengan aman. Ada beberapa metode yang dapat dilakukan untuk mengamankan informasi (data) yaitu kriptografi, steganografi, dan watermarking.

633

karakter

6.243039 5.656928 4.589145 5.4963706

Pada Tabel 4.11 terdapat 7 buah kolom. Kolom pertama adalah no, kolom

kedua adalah plainteks yang akan dienkripsi sebanyak tiga kali, kolom ketiga adalah

ukuran plainteks, kolom ke empat sampai kolom ke enam adalah waktu proses, dan

pada kolom terakhir diperoleh rata-rata waktu eksekusi dari tiga kali percobaan. Untuk

(58)

2.3845906 detik, dan untuk plainteks dengan panjang 633 karakter diperoleh rata-rata

waktu eksekusi 5.4963706 detik.

Pengujian selanjutnya dilakukan terhadap proses dekripsi pada algoritma

ADFGVX cipher. sama seperti pengujian pada proses enkripsi, pengujian ini

dilakukan dengan menggunakan tiga ukuran cipherteks yang berbeda yaitu, cipherteks

dengan panjang 16 karakter, cipherteks dengan panjang 295 karakter, dan cipherteks

dengan panjang 910 karakter. Untuk waktu proses dekripsi dapat dilihat pada Tabel

4.12.

Tabel 4.12. Waktu Proses Dekripsi Algoritma ADFGVX cipher

No Cipherteks Panjang

Cipherte ks

(59)

62 FGF,FGAGA FGDVFF FXGXDDAD FVDVGGD FFFFGAFXDADXAAV GVDFX F FVDAXFFXDFAFAFVFX AAGFXGGAADFV-D FAFDFGDAD

Pada Tabel 4.12 dapat dilihat proses dekripsi dilakukan sebanyak tiga kali dan

dari proses tersebut didapatkan rata-rata dari masing-masing proses yaitu, Untuk

cipherteks dengan panjang 160 karakter diperoleh rata-rata waktu eksekusi 0.1078 s,

(60)

Dari percobaan proses enkripsi dan dekripsi didapatkan bahwa waktu proses

yang dibutuhkan proses dekripsi lebih cepat dibandingkan dengan waktu proses yang

dibutuhkan enkripsi. Hubungan waktu proses enkripsi terhadap ukuran suatu plainteks

dan hubungan waktu dekripsi terhadap ukuran dari suatu cipherteks dapat dilihat pada

Gambar 4.14.

Gambar 4.14. Grafik Hubungan Ukuran Plainteks & Cipherteks dengan Waktu

Gambar 4.14 menunjukkan grafik waktu yang dibutuhkan untuk mengenkripsi

plainteks dengan panjang 160 karakter diperoleh rata-rata waktu eksekusi 0.2903846

s , untuk plainteks dengan panjang 381 karakter diperoleh rata-rata waktu eksekusi

2.3845906 s, dan untuk plainteks dengan panjang 633 karakter diperoleh rata-rata

waktu eksekusi 5.4963706 s. Pada Gambar 4.14 dapat dilihat bahwa hubungan antara

ukuran plainteks berbanding lurus terhadap waktu proses enkripsi, dan ukuran

cipherteks berbanding lurus terhadap waktu proses dekripsi.

Gambar 4.14 juga menunjukkan grafik perbandingan antara waktu dekripsi

dengan ukuran cipherteks. Untuk melakukan dekripsi terhadap cipherteks dengan

(61)

63

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan analisis, perancangan dan pengujian dari penelitian pengamanan data

dengan menggunakan algoritma ADFGVX cipher dan knapsack, maka diperoleh

beberapa kesimpulan:

1. Berdasarkan pengujian yang dilakukan algoritma ADFGVX cipher dan

algoritma knapsack pada proses dekripsi dapat mengembalikan data awal

secara utuh.

2. Berdasarkan grafik hubungan antara waktu proses enkripsi dengan ukuran

plainteks menunjukkan bahwa ukuran plainteks berbanding lurus dengan

waktu. Semakin besar ukuran plainteks tersebut maka semakin besar waktu

proses enkripsinya.

3. Berdasarkan grafik hubungan antara waktu proses enkripsi dan waktu

proses dekripsi menunjukkan bahwa proses dekripsi lebih cepat

dibandingkan proses enkripsi.

4. Berdasarkan perubahan hasil cipherteks pada pengujian, penggunaan

algoritma ADFGVX cipher dan knapsack ini relatif aman dan sederhana

(62)

5.2 Saran

Adapun saran-saran yang dapat dipertimbangkan untuk tahap pengembangan penlitian

ini adalah:

1. Sistem ini hanya dapat mengamankan dokumen-dokumen berbasis *.txt dan

*.doc/docx, sehingga untuk penlitian selanjutnya diharapkan dapat

mengamankan citra.

2. Sistem ini hanya dapat melakukan enkripsi terhadap alphabet numeric, untuk

penulis selanjutnya diharapkan dapat mengamankan seluruh isi dokumen.

3. Untuk pengembangan sistem selanjutnya dapat mengkombinasikan ADFGVX

Cipher dengan algoritma kriptografi lainnya, seperti Rivest-Shamir-Adleman

(63)

BAB 2

LANDASAN TEORI

2.1 Kriptogafi

Kriptografi merupakan bidang ilmu yang mempelajari tentang metode untuk

mengirim pesan secara rahasia (yaitu di enkripsi atau disamarkan) sehingga hanya

penerima pesan yang dituju yang dapat menghapus penyamaran dan membaca pesan

(atau memahaminya). Secara etimologi kriptografi berasal dari bahasa yunani, cryptos

yang berarti tersembunyi, dan graphein yang berarti menulis. Dalam kriptografi pesan

yang akan dirahasiakan disebut plainteks dan pesan yang sudah dirahasiakan disebut

cipherteks. Proses pengubahan plainteks menjadi cipherteks disebut enkripsi,

sebaliknya proses pengubahan cipherteks menjadi plainteks yang dilakukan oleh

penerima pesan disebut dekripsi (Mollin, R.A. 2007). Skema rangkaian proses

enkripsi dan dekripsi secara umum ditunjukkan pada Gambar 2.1.

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi

2.1.1 Tujuan Kriptografi

Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan

informasi yaitu:

1) Privacy/Confidentiality yaitu usaha menjaga informasi dari orang yang tidak

berhak mengakses.

Enkripsi

Plainteks Cipherteks

(64)

2) Integrity yaitu usaha untuk menjaga data atau sistem tidak bisa diubah oleh

pihak yang tidak berhak.

3) Authentication usaha atau metode untuk mengetahui keaslian dari informasi,

misalnya apakah informasi yang dikirim dibuka oleh orang yang benar atau

layanan dari server yang diberikan benar dari server yang dimaksud.

4) Availability yaitu berhubungan dengan ketersediaan sistem dan data ketika

data dibutuhkan.

2.1.2 Jenis-Jenis Algoritma Kriptografi

Ada dua jenis algoritma kriptografi yaitu algoritma simetris dan algoritma asimetris.

Pada kriptografi simetris maupun kriptografi asimetris tidak ada keamanan yang bisa

terjamin tanpa syarat. Suatu metode enkripsi tidak ada yang praktis. Maka, untuk

semua protokol pada kriptografi, keamanan bergantung pada asumsi perhitungan

(Pointcheval. David. 2002).

1) Kriptografi Simetris

Algoritma klasik (sebutan untuk algoritma simetris) merupakan algoritma yang

menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Algoritma

simetris juga sering disebut one key/ private key/ single key karena memiliki

kunci yang sama untuk proses enkripsi dan dekripsi (Sembiring, Dira Fahrendy

2013). Kemanan algoritma simetris berada pada kunci, agar komunikasi tetap

aman maka kunci harus tetap dirahasiakan. Contoh algoritma simetris One Time

Pad, ADFGVX Cipher, Affine Cipher, dan lainnya. Proses enkripsi dan dekripsi

algoritma simetris dapat dilihat pada Gambar 2.2.

Enkripsi Dekripsi

Plainteks Cipherteks Plainteks

(65)

8

Algoritma asimetris (public key) merupakan algoritma kriptografi yang

menggunakan sepasang kunci dalam melakukan enkripsi dan dekripsi, yaitu kunci

publik (public key) dan kunci privat (private key). Dalam algoritma simetris kunci

publik bisa disebar-luaskan sedangkan kunci privat harus tetap dirahasiakan

(Kromodimoeljo, S. 2010). Kunci publik digunakan untuk proses enkripsi

plainteks, dan kunci privat digunakan untuk proses dekripsi. algoritma yang

digunakan untuk kriptografi public key berdasarkan pada relasi matematika

(Sachdeva, Komal. 2013).

Hampir semua skema kunci publik hanya digunakan untuk mengenkripsi

pesan yang singkat, seperti mengenkripsi kunci. Hal tersebut dikarenakan skema

dari kunci publik kurang efisien jika digunakan untuk mengenkripsi data dalam

jumlah yang besar. Kemudian data dalam jumlah besar dienkripsi dengan

menggunakan algoritma simetris. Pendekatan seperti ini disebut dengan skema

enkripsi hybrid (Smart, N.P. 2016). Contoh algoritma asimetris yaitu

Rivest-Shamir-Adlenan (RSA), El-gamal, Knapsack, Rabin dan lainnya. Proses enkripsi

dan dekripsi dari algoritma asimetris dapat dilihat pada Gambar 2.3.

Gambar 2.3. Skema Algorima Asimetris

2.2 ADFGVX Cipher

Algoritma ADFGVX Cipher ini merupakan algoritma yang ditemukan oleh seorang

petugas radio tentara Jerman yang bernama Fritz Nebel (1891-1967) (Sihotang, Rajab.

2014). untuk menggunakan ADFGVX Cipher, dimulai dengan sebuah matriks 6x6.

Matriks tersebut diisi dengan alphabet dan nomor 0-9 yang disusun secara acak.

ADFGVX chiper dipertimbangkan sebagai algoritma yang cukup aman karena

algoritma ini mengkombinasikan dua kelebihan rata-rata algoritma kriptografi, yaitu

Enkripsi Dekripsi

Plainteks Cipherteks Plainteks

(66)

karena refresentatif huruf-huruf tersebut sangatlah berbeda dalam sandi morse

(Mollin, R.A. 2007).

2.2.1 Enkripsi ADFGVX Cipher

Berikut adalah langkah-langkah dalam melakukan enkripsi dengan menggunakan

algoritma ADFGVX Cipher:

1) Tentukan kata yang akan dienkripsi (plainteks) yang terdiri dari angka dan hurup misal “HARAHAP289”

2) Buat sebuah tabel 6x6 yang berisi 26 huruf dan 10 angka, seperti pada Tabel

2.1.

Tabel 2.1. Tabel ADFGVX Cipher

A D F G V X

3) Setiap huruf dalam plainteks disubstitusi menjadi dua huruf berdasarkan baris

dan kolom, misal huruf K menjadi DV. Jika plainteks-nya adalah

“HARAHAP289” maka hasil substitusinya adalah DD AX FA AX DD AX FF VD XV XX.

4) Tentukan kata kunci yang terdiri dari huruf saja. Kunci ini akan digunakan

pada proses tranposisi. Misal kunci yang digunakan adalah ILKOM. Maka

buatlah sebuah tabel baru dan tuliskan kata kunci di baris pertama. Kemudian

tulis hasil substitusi plainteks dibawahnya berurutan dari kanan kemudian

(67)

10

5) Selanjutnya urutkan kolom pada kata kunci berdasarkan alphabet. Maka

ILKOM menjadi IKLMO sehingga menjadi seperti pada Tabel 2.3.

Tabel 2.3. Perubahan Posisi Kunci ADFGVX Cipher

I K L M O

6) Cipherteksnya adalah huruf-huruf yang berada dikolom pertama dan

seterusnya. Maka cipherteks dari HARAHAP289 adalah DDAXAXFVDDXX

FAVDXAFX.

2.2.2 Dekripsi ADFGVX Cipher

1) Lakukan pemisahan cipherteks dengan cara membagi jumlah huruf yang ada

pada cipherteks dengan jumlah huruf yang ada pada kunci. Kita memiliki

pesan cipherteks DDAXAXFVDDXXFAVDXAFX dan misalkan kita

memiliki kunci ILKOM. Maka kita dapat membagi tiap kelompok terdiri dari

20/5= 4 huruf, menjadi DDAX AXFV DDXX FAVD XAFX

2) Selanjutnya, urutkan kunci sesuai alphabet, maka ILKOM menjadi IKLMO,

seperti pada Tabel 2.4.

(68)

1 3 2 5 4

D A D F X

D X D A A

A F X V F

X V X D X

3) Urutkan kolom-kolom yang ada pada tabel 2.4 menjadi kata kunci yang kita

miliki, seperti pada Tabel 2.5.

Tabel 2.5 Tabel Kunci Dekripsi ADFGVX Cipher sesuai Urutan

I L K O M

1 2 3 4 5

D D A X F

D D X A A

A X F F V

X X V X D

4) Lakukan pembacaan secara berurutan kekanan kemudian kebawah

DDAXFAAXDDAXFFVDXVXX.

5) Langkah terakhir adalah mencari padanan karakter dari dua huruf yang kita

dapatkan dengan tabel ADFGVX, seperti pada Tabel 2.6.

Tabel 2.6. Tabel ADFGVX Cipher

A D F G V X

(69)

12

X 4 5 6 7 8 9

6) Dengan mencari padanan karakter pada Tabel 2.6 maka kita dapatkan pesan

HARAHAP289.

2.3 Algoritma Knapsack

Algoritma knapsack merupakan algoritma kunci publik (asimetris) yang keamanannya

terletak pada sulitnya memecahkan persoalan knapsack (knapsack problem).

Knapsack problem merupakan permasalahan bagaimana cara mengisi knapsack

(ransel) yang mempunyai kapasitas tertentu dengan sekumpulan benda yang

berbeda-beda ukurannya sehingga knapsack terisi penuh sesuai dengan kapasitas

(Kromodimoeljo, S. 2010). Masing-masing benda memiliki nilai dan berat yang

sudah diasosiasikan di dalamnya. Jadi, nilai pada seluruh item dapat dimaksimalkan

dan beratnya tidak menambah kapasitas total pada knapsack (Agarwal, Ashish. 2011).

2.3.1 knapsack problem

kedalam knapsack, sebaliknya jika b = 0, maka tidak dimasukkan ke dalam knapsack

(Sembiring, Dira Fahrendy. 2013). Ada dua jenis algoritma knapsack, yaitu:

a) Algoritma knapsack sederhana

Ide dasar dari knapsack ini adalah mengkodekan pesan sebagai rangkaian solusi

dari persoalan knapsack. Setiap bobot W1 dalam persoalan knapsack merupakan

kunci privat sedangkan bit-bit plainteks merupakan b1.

(70)

Algoritma yang digunakan untuk membangkitkan kunci publik dan kunci privat

dalam Superincreasing knapsack:

1) Tentukan barisan superincreasing dimana setiap nilai di dalam barisan lebih

besar daripada jumlah semua nilai sebelumnya.

2) Jumlahkan semua nilai di dalam barisan, kemudian bandingkan total nilai

dengan nilai terbesar di dalam barisan. Jika nilai terbesar lebih kecil atau sama

dengan total nilai maka ia dimasukkan ke dalam knapsack, jika tidak maka ia

tidak dimasukkan.

3) Kurangi total nilai dengan nilai terbesar yang telah dimasukkan. Kemudian

bandingkan total nilai sekarang dengan nilai terbesar selanjutnya, demikian

seterusnya sampai semua nilai dalam barisan selesai dibandingkan.

4) Jika bobot total sama dengan nol maka terdapat solusi persoalan

superincreasing knapsack. sebaliknya jika bobot total tidak sama dengan nol

maka tidak ada solusinya.

2.3.2 Enkripsi superincreasing knapsack

Mula-mula plainteks dipecah menjadi blok bit yang panjangnya sama dengan

kardinalitas barisan kunci publik. Kalikan setiap bit di dalam blok dengan elemen

yang berkoresponden dengan nilai di dalam kunci publik.

Contoh:

Kita gunakan kunci ADFGVX cipher diatas sebagai barisan plainteks yaitu : ILKOM

Misal A = 0, B = 1, …. Z = 25, maka:

Sehingga didapatkan plainteks: 0100001011010100111001100 yang akan di enkripsi

(71)

14

Maka kunci publik yang didapatkan adalah {14, 28, 56, 37, 74}.

Kemudian plainteks dibagi menjadi blok dengan panjang 5 (panjang kunci publik),

kemudian setiap bit di dalam blok dikalikan dengan elemen yang berkoresponden

dengan kunci publik, sebagai berikut:

Blok plainteks 1: 01000

Jadi, cipherteks yang dihasilkan: 28, 139, 65, 121, 84

2.3.3 Dekripsi superincreasing knapsack

Untuk mendekripsikan cipherteks menjadi plainteks maka kita gunakan kunci privat,

yaitu barisan superincreasing knapsack. Mula-mula penerima pesan menghitung n-1,

yaitu inversi n modulo m, sedemikian sehingga: n.n-1 ≡ 1 (mod m) , maka untuk

mendekripsi cipherteks tersebut dengan menggunakan kunci privat {1, 2, 4, 8, 16} di

(72)

Tabel 2.7. Perhitungan Inversi n modulo m

n-1 n.n-1 (mod m)

1 14.1 (mod 75) = 14

2 14.2 (mod 75) =24

3 14.3 (mod 75) = 42

4 14.4 (mod 75) = 56

. .

. .

59 14.59 (mod 75) = 1

Dapatlah n-1 yaitu 59. Maka plainteks yang berkoresponden dengan {1, 2, 4, 8, 16}

diperoleh kembali dengan cara menggunakan algoritma superincreasing sebagai

berikut:

Temp : (cipherteks x n-1) mod m

(28 x 59) mod 75 = 2 = 2, berkoresponden dengan 01000

(139 x 59) mod 75 = 26 = 16 + 8 + 2, berkoresponden dengan 01011

(65 x 59) mod 75 = 10 = 8 + 2, berkoresponden dengan 01010

(121 x 59) mod 75 = 14 = 8 + 4 + 2, berkoresponden dengan 01110

(84 x 59) mod 75 = 6 = 4 + 2, berkoresponden dengan 01100

Sehingga painteks yang dihasilkan adalah 0100001011010100111001100, dimana 01000 = 8, berkoresponden dengan huruf “I”

(73)

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Bertukar informasi merupakan hal yang biasa kita lakukan. Bertukar informasi jarak

jauh dapat dilakukan melalui kantor pos, surat dan surel (surat elektronik). Surel

(Surat Elektronik) memungkinkan kita untuk bertukar informasi jarak jauh tanpa

membutuhkan waktu yang lama, namun keamanan informasi (data) dalam pengiriman

informasi melalui surat elektronik (e-mail) dipertaruhkan. Oleh karena itu dibutuhkan

berbagai cara untuk mengamankan informasi tersebut agar sampai ketujuan dengan

aman. Salah satu metode yang digunakan untuk mengamankan data adalah

kriptografi.

Kriptografi adalah sebuah cabang ilmu dalam ilmu komputer yang berfungsi

untuk mengamankan data. Secara terminologi, kriptografi adalah ilmu dan seni untuk

menjaga kerahasiaan pesan dengan cara menyandikannya kedalam bentuk yang tidak

dapat dipahami maknanya sehingga tidak dapat dibaca oleh orang yang tidak

berkepentingan. Dalam kriptografi dibutuhkan kunci yaitu kode untuk melakukan

Enkripsi dan Dekripsi. Berdasarkan kuncinya kriptografi dibagi menjadi dua tipe yaitu

algoritma simetris dan algoritma asimetris. Algoritma simetris adalah algoritma yang

mempunyai kunci enkripsi dan dekripsi yang sama, sedangkan algoritma asimetris

merupakan algoritma yang terdiri atas dua buah kunci yaitu kunci publik untuk

melakukan enkripsi dan kunci privat untuk melakukan dekripsi. Kedua algoritma

tersebut mempunyai kelebihan dan kekurangan masing-masing. Dalam kriptografi

pesan yang akan dirahasiakan disebut plainteks. Banyak algoritma kriptografi yang

dapat digunakan untuk mengamankan data seperti: One Time Pad, ADFGVX Cipher,

(74)

ADFGVX Cipher merupakan algoritma yang digunakan oleh pihak tentara

Jerman ketika perang dunia I berlangsung. Algoritma ini diciptakan dengan

mengambil sebuah ide yang muncul pada masa lampau yaitu menghubungkan

huruf-huruf alphabet dengan posisi-posisi yang terdapat di dalam sebuah jaringan atau tabel.

Algoritma ADFGVX Cipher merupakan algoritma simetris yang menggunakan tabel

6x6 yang berisi 26 huruf dan 10 angka (0-9). Enkripsinya terdiri dari dua proses yaitu

proses substitusi dan proses transportasi.

Algoritma Knapsack merupakan sebuah algoritma kunci publik (asimetris)

yang keamanannya terletak pada kesulitan memecahkan persoalan Knapsack

(Knapsack problem). Knapsack problem merupakan masalah dimana orang

dihadapkan pada masalah optimasi pada pemilihan benda yang dapat dimasukkan ke

dalam wadah yang mempunyai keterbatasan daya tampung. Ide dasar dari algoritma

yang dikembangkan oleh Ralph Merkle dan Martin Hellman ini adalah mengkodekan

pesan sebagai rangkaian solusi dari persoalan Knapsack (Prameswara, Gustaf. 2012).

Karena keamanan data merupakan hal yang sangat penting maka penulis akan

membuat sebuah penelitian yang bertujuan untuk mengamankan data dengan

menggunakan metode kriptografi yang berjudul “Implementasi Algoritma ADFGVX

Cipher dan Knapsack dalam Pengamanan Data Teks”.

1.2 Rumusan Masalah

Berdasarkan latar belakang diatas, rumusan masalah dalam penelitian ini adalah

bagaimana mengamankan data teks dengan algoritma ADFGVX Cipher, kemudian

kunci yang digunakan untuk mengamankan data diamankan kembali dengan

(75)

3

1.3 Ruang Lingkup Masalah

Adapun ruang lingkup masalah dalam penelitian ini adalah:

1. File yang diamankan berupa file dokumen dengan format *.txt dan *.doc

2. Panjang kunci maksimal 10 karakter

3. Algoritma yang digunakan untuk mengamankan data adalah algoritma ADFGVX

Cipher

4. Algoritma yang digunakan untuk mengamankan kata kunci adalah algoritma

Knapsack

5. Menggunakan bahasa pemrograman C#

1.4 Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah untuk membuat sebuah perangkat lunak yang

berguna untuk mengamankan data dengan menggunakan algoritma ADFGVX Cipher

sebagai pengaman data dan Knapsack untuk mengamankan kunci yang telah dibuat

oleh ADFGVX Cipher.

1.5 Manfaat Penelitian

Penelitian ini diharapkan mampu menciptakan sebuah aplikasi pengamanan data yang

berguna untuk meningkatkan keamanan dokumen rahasia sehingga pihak yang tidak

berkepentingan tidak bisa mengakses dokumen tersebut.

1.6 Metodologi Penelitian

Tahapan yang dilakukan pada penelitian ini adalah:

1) Studi Literatur

Pada tahap ini dilakukan studi literatur dengan mempelajari kriptografi, algoritma

ADFGVX cipher, algoritma knapsack serta bahasa pemrograman C# melalui

peninjauan terhadap buku, artikel, jurnal, maupun hasil penelitian.

2) Analisis dan Perancangan

(76)

terstruktur, jelas, dan berjalan dengan baik. Proses ini meliputi pembuatan

algoritma program, flowchart algoritma, flowchart system, use case scenario,

perancangan aplikasi, dan pembuatan user interface.

3) Implementasi

Algoritma ADFGVX cipher dan Knapsack digunakan untuk membuat sebuah

aplikasi yang berfungsi untuk mengamankan data teks dengan ekstensi *.txt dan

*.doc dengan menggunakan bahasa pemrograman C#.

4) Pengujian

Pengujian terhadap aplikasi yang telah dibuat apakah berjalan dengan baik sesuai

dengan keinginan dan melakukan perbaikan terhadap error yang masih terjadi

dalam aplikasi.

5) Dokumentasi

Membuat laporan dan kesimpulan akhir dari hasil akhir analisa dan pengujian

Gambar

Gambar 3.12. Flowchart Pembangkit Kunci Algoritma Knapsack
Gambar  3.13. Rancangan  Halaman Utama
Gambar 3.14. Rancangan Halaman Enkripsi
Tabel 3.7 Keterangan Rancangan Halaman Enkripsi
+7

Referensi

Dokumen terkait

Proses enkripsi untuk algoritma Rijndael yang beroperasi pada panjang blok 128-bit. dengan kunci 128-bit, total putaran (Nr) yang dilakukan hingga

Ide dasar dari algoritma yang dikembangkan oleh Ralph Merkle dan Martin Hellman ini adalah mengkodekan pesan sebagai rangkaian solusi dari persoalan Knapsack (Prameswara,

Gambar 3.15 Perancangan Interface Halaman Tentang Aplikasi 38 Gambar 3.16 Perancangan Interface Halaman Tentang Algoritma 39 Gambar 3.17 Perancangan Interface Halaman Enkripsi

RC4 + Cipher yang digunakan pada proses enkripsi, kolom C2 adalah hasil enkripsi kedua yang diperoleh dengan menggunakan algoritma RC4 + Cipher. Rata-rata yang diperoleh

Perancangan Aplikasi Pembelajaran Kriptografi Kunci Publik ElGamal Untuk Mahasiswa. Universitas

Untuk mengenkripsi kunci, yang pertama harus dilakukan user adalah menginputkan kunci publik dengan menekan button Buka Kunci Publik maka kunci publik akan tampil pada textfield

Dengan kata lain, kunci untuk enkripsi pada kriptografi asimetri ini tidak.. rahasia (diketahui oleh publik), artinya siapapun bisa menggunakan

Gambar 4.11 menunjukkan grafik dari rata-rata waktu proses enkripsi file pada algoritma Spritz yang memiliki panjang kunci 23 digit dengan panjang karakter yang