penerapan algoritma one time pad pada data gaji pegawai...

18
1 1. Pendahuluan Keamanan informasi data adalah proses untuk melindungi data dari perusakan atau penyalahgunaan yang dilakukan oleh orang dalam atau di luar sebuah organisasi. Informasi yang merupakan hasil pengolahan dari data, mempunyai nilai yang berbeda bagi setiap orang. Seringkali sebuah informasi menjadi sangat berharga, dan tidak semua orang diperkenankan untuk mengetahuinya. Untuk itu perlu adanya kerahasiaan tentang informasi tersebut demi mencegah akses terhadap data-data yang dianggap sensitif oleh orang-orang yang tidak berhak di dalam maupun di luar organisasi. Karena alasan tersebut keamanan untuk menjaga kerahasiaan informasi harus diterapkan demi melindungi data organisasi yang telah tersimpan. Teknologi informasi digunakan untuk menjaga keamanan informasi data. salah satunya yaitu penyimpanan data pada basis data menggunakan teknik kriptografi yang diterapkan pada data tersebut. Dengan adanya teknologi informasi, Kantor Pelayanan dan Perbendaharaan Negara (KPPN) Ambon melakukan suatu perubahan sistem dalam pengelolaan data gaji seluruh pegawai dengan mengkonversikan berkas-berkas gaji pegawai ke bentuk digital menggunakan sistem perhitungan gaji berbasis Web Service, dan menyimpan data gaji ke dalam database agar tidak terjadi kehilangan data. Namun, pengelolaan data menggunakan sistem perhitungan gaji masih terdapat permasalahan yang timbul, dimana berkas atau data-data pegawai yang telah dimasukan ke dalam database, sering terjadi perubahan pada nominal gaji pegawai oleh pihak-pihak yang tidak bertanggung jawab, sehingga terjadi ketidaksesuaian perhitungan dengan pengeluaran anggaran untuk pembayaran gaji Pegawai Negeri Sipil di KPPN Ambon. Solusi untuk menangani masalah tersebut adalah dengan merancang sebuah sistem guna mengamankan data gaji pegawai dengan penerapan algoritma kriptografi one time pad untuk meningkatkan keamanan basis data pada data gaji pegawai di KPPN Ambon. Skema enkripsi yang akan dibangun di sini menerapkan teknik pada kriptografi klasik, yang menganut kerahasiaan pada kunci (key). Kunci pada algoritma ini juga menggunakan teknik substitusi kode geser (Shif) demi keamanan yang lebih baik. 2. Tinjauan Pustaka Pada penelitian yang berjudul ”Pemanfaatan Kembali Kriptografi Klasik dengan Melakukan Modifikasi Metode-Metode Kriptografi yang ada” dibahas mengenai memanfaatkan karakter-karater ASCII kriptografi klasik masih dapat digunakan pada jaman sekarang. Hal ini dikarenakan, karakter ASCII memiliki extended character yang berjumlah 128, sehingga jumlah total karakter yang dapat digunakan adalah 256. Dengan kata lain, jumlah kerumitan algoritma akan meningkat karena kemungkinan-kemungkinan yang ada semakin besar daripada hanya menggunakan karakter alfabet yang berjumlah 26 [1]. Pada penelitian yang berjudul ”Algoritma Enkripsi One Time Pad untuk Pengamanan Access Database Server Menggunakan Bahasa Pemrograman Visual Basic” memberikan gambaran tentang kegunaan algoritma yang terkenal

Upload: dinhcong

Post on 28-Apr-2019

247 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

1

1. Pendahuluan

Keamanan informasi data adalah proses untuk melindungi data dari

perusakan atau penyalahgunaan yang dilakukan oleh orang dalam atau di luar

sebuah organisasi. Informasi yang merupakan hasil pengolahan dari data,

mempunyai nilai yang berbeda bagi setiap orang. Seringkali sebuah informasi

menjadi sangat berharga, dan tidak semua orang diperkenankan untuk

mengetahuinya. Untuk itu perlu adanya kerahasiaan tentang informasi tersebut

demi mencegah akses terhadap data-data yang dianggap sensitif oleh orang-orang

yang tidak berhak di dalam maupun di luar organisasi.

Karena alasan tersebut keamanan untuk menjaga kerahasiaan informasi

harus diterapkan demi melindungi data organisasi yang telah tersimpan.

Teknologi informasi digunakan untuk menjaga keamanan informasi data. salah

satunya yaitu penyimpanan data pada basis data menggunakan teknik kriptografi

yang diterapkan pada data tersebut. Dengan adanya teknologi informasi, Kantor

Pelayanan dan Perbendaharaan Negara (KPPN) Ambon melakukan suatu

perubahan sistem dalam pengelolaan data gaji seluruh pegawai dengan

mengkonversikan berkas-berkas gaji pegawai ke bentuk digital menggunakan

sistem perhitungan gaji berbasis Web Service, dan menyimpan data gaji ke dalam

database agar tidak terjadi kehilangan data. Namun, pengelolaan data

menggunakan sistem perhitungan gaji masih terdapat permasalahan yang timbul,

dimana berkas atau data-data pegawai yang telah dimasukan ke dalam database,

sering terjadi perubahan pada nominal gaji pegawai oleh pihak-pihak yang tidak

bertanggung jawab, sehingga terjadi ketidaksesuaian perhitungan dengan

pengeluaran anggaran untuk pembayaran gaji Pegawai Negeri Sipil di KPPN

Ambon.

Solusi untuk menangani masalah tersebut adalah dengan merancang sebuah

sistem guna mengamankan data gaji pegawai dengan penerapan algoritma

kriptografi one time pad untuk meningkatkan keamanan basis data pada data gaji

pegawai di KPPN Ambon. Skema enkripsi yang akan dibangun di sini

menerapkan teknik pada kriptografi klasik, yang menganut kerahasiaan pada

kunci (key). Kunci pada algoritma ini juga menggunakan teknik substitusi kode

geser (Shif) demi keamanan yang lebih baik.

2. Tinjauan Pustaka

Pada penelitian yang berjudul ”Pemanfaatan Kembali Kriptografi Klasik

dengan Melakukan Modifikasi Metode-Metode Kriptografi yang ada” dibahas

mengenai memanfaatkan karakter-karater ASCII kriptografi klasik masih dapat

digunakan pada jaman sekarang. Hal ini dikarenakan, karakter ASCII memiliki

extended character yang berjumlah 128, sehingga jumlah total karakter yang

dapat digunakan adalah 256. Dengan kata lain, jumlah kerumitan algoritma akan

meningkat karena kemungkinan-kemungkinan yang ada semakin besar daripada

hanya menggunakan karakter alfabet yang berjumlah 26 [1].

Pada penelitian yang berjudul ”Algoritma Enkripsi One Time Pad untuk

Pengamanan Access Database Server Menggunakan Bahasa Pemrograman Visual

Basic” memberikan gambaran tentang kegunaan algoritma yang terkenal

Page 2: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

2

sederhana namun unbreakable. Di dalamnya memuat contoh aplikasi serta

pengaplikasiannya sehingga dapat memberikan gambaran tentang kegunaan dari

kriptografi one time pad itu sendiri [2].

Berdasarkan penelitian terdahulu yang membahas tentang penerapan

pemanfaatan kode algoritma klasik dan algoritma One Time Pad maka dilakukan

penelitian yang bertujuan untuk menerapkan Algoritma One Time Pad untuk

Meningkatkan Keamanan Basis Data pada Data Gaji Pegawai, karena karakter

yang digunakan pada kriptografi One Time Pad adalah karakter ASCII (American

Standard Code for Information Interchange) yaitu suatu standar internasional

dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat

universal yang memungkinkan untuk memiliki tingkat kerumitan yang lebih besar

daripada karakter alfabet. Selain itu, penelitian ini juga akan menerapkan teknik

substitusi Kode Geser (Shift) pada kunci yang digunakan untuk kriptografi One

Time Pad. Penggabungan ini dimaksudkan agar kriptografi ini memiliki tingkat

kerumitan algoritma yang lebih daripada hanya menggunakan satu algoritma

kriptografi yang ada. Penggabungan ini akan diterapkan untuk menyimpan data

gaji pegawai pada sistem.

Kriptografi (cryptography) berasal dari Bahasa Yunani yang terdiri dari

dua suku kata yaitu “cryptós” artinya menyembunyikan dan “gráphein” artinya

tulisan. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang

berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas

data, serta otentikasi [3].

Beberapa istilah yang sering digunakan di dalam kriptografi adalah

plaintext, ciphertext, encrypt, decrypt, cipher, kunci, dan sistem kriptografi.

Plaintext adalah informasi yang dapat dibaca dan dimengerti maknanya.

Ciphertext adalah informasi yang telah disandikan ke bentuk yang lain sehingga

maknanya tidak dapat dimengerti. Encrypt adalah proses menyandikan plaintext

menjadi ciphertext. Decrypt adalah proses mengembalikan ciphertext menjadi

plaintext. Cipher adalah algoritma yang digunakan untuk melakukan transformasi

plaintext ke ciphertext. Kunci adalah parameter yang diperlukan cipher untuk

transformasi encrypt dan decrypt. Sistem kriptografi adalah kumpulan yang

terdiri atas algoritma kriptografi, semua plaintext dan ciphertext yang mungkin

serta kunci.

Teknik kriptografi yang dibahas dalam penelitian ini Algoritma One-Time

Pad ditemukan oleh Mayor Joseph Mauborgne dan Gilbert Vernam pada tahun

1917. Algoritma One-Time Pad merupakan algoritma berjenis kunci simetris yang

artinya bahwa kunci yang digunakan untuk melakukan enkripsi dan dekripsi

adalah sama. Dalam proses enkripsi, algoritma ini menggunakan cara stream

cipher dimana cipher berasal dari hasil exlusive-or antara bit plaintext dan bit key

[2].

Metode One-Time Pad juga merupakan perbaikan dari kriptografi Caesar.

One Time Pad menggunakan kunci yang panjangnya sama dengan plaintext-nya.

Suatu cara untuk mendekripsikan pesan yang telah dienkripsi adalah dengan

mengetahui kunci yang digunakan. Enkripsi yang dilakukan oleh One Time Pad

ini sebenarnya sama dengan enkripsi Caesar, namun karena panjang kunci sama

dengan plaintext-nya, maka setiap huruf pada plaintext akan mengalami

Page 3: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

3

pergeseran yang berbeda. Sistem kerja enkripsi One Time Pad adalah setiap kali

melakukan enkripsi, dibangkitkan kunci (pad) yang panjangnya sama dengan teks

yang akan dienkripsikan.

Berikut adalah contoh konsep sederhana yang dibangun oleh One Time

Pad [4] :

Misalkan terdapat kunci k yang terdiri atas string bit k0k1…kN dan

digunakan untuk mengenkripsi plainteks m = m0m1…mN dengan melakukan

operasi XOR (Ekslusif-OR) per bitnya. Jadi, cipherteks c = c0c1..cN didapat dari

Setiap kunci hanya digunakan satu kali dan kemudian dibuang. Karena

setiap kunci hanya digunakan satu kali dengan probabilitas yang sama dan hanya

terdapat tepat satu kunci yang mengenkripsi m ke c, maka one-time pad

memiliki kerahasiaan yang sempurna. Sistem kerja dari metode ini juga

membutuhkan pengetahuan di bidang logika matematika, khususnya meng-XOR-

kan operand satu dengan operand lainnya. Makna dari Ekslusif-OR adalah bahwa

kalau kedua input sama maka nilai keluarannya adalah F (false), tetapi bila kedua

input berbeda akan menghasilkan nilai T (true) [5].

Selain logika XOR juga dibutuhkan pemahaman dalam pengkonversian

ASCII (American Standard Codes for International Interchange) menjadi biner.

Hal ini karena, setiap karakter yang dimasukkan akan dilihat bentuk ASCII nya

kemudian diubah ke biner, hal ini juga berlaku untuk kunci yang digunakan.

Kemudian setelah mendapatkan nilai binernya, data baru akan di-XOR-kan. Tabel

1 adalah contoh biner dan XOR pada karakter.

Tabel 1 Contoh Penggunaan Biner dan XOR pada Karakter.

Hasil XOR dari Tabel 1 adalah 0010 0011 dimana bila diubah ke bentuk

bilangan desimal akan mendapatkan nilai 35, dan bentuk ASCII dari 35 adalah

symbol pagar (#). Hasil dari nilai ini belum tentu selamanya berupa symbol pagar,

karena hal ini dapat berubah-rubah dari hasil XOR yang didapatkan.

Selain dapat digunakan per karakter kata, one time pad juga dapat

digunakan pada kata ataupun kalimat. Berikut ini adalah contoh penggunaan

kriptografi one time pad pada suatu kata. Misalkan kata “NAMA” sebagai

masukan, sedangkan kunci menggunakan kata “bete”. Maka, “NAMA” di sini

akan diubah per karakter katanya menjadi nilai biner, sehingga didapat nilai

sebagai berikut :

Karakter Nilai ASCII Biner

Inputan A 65 0100 0001

Kunci b 98 0110 0010

Hasil XOR 0010 0011

𝑐𝑖 = 𝑘𝑖 ⊕ 𝑚𝑖 , for 𝑖 = 0,1,…,𝑁

Page 4: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

4

Masukan Kunci

Sehingga jika masukan “NAMA” dan kunci “bete” di-XOR-kan, maka akan

didapat hasil XOR seperti pada Tabel 2

Tabel 2 Contoh penggunaan Biner dan XOR pada Kata.

Tabel 2 menjelaskan tentang penggunaan biner pada kata “NAMA” dan

kata kunci “bete”, kemudian hasil biner tersebut di-XOR-kan sehingga dapat

diperoleh hasilnya. Apabila nilai biner dari Hasil XOR pada Tabel 2 dikembalikan

ke bentuk angka desimal, kemudian melihat bentuk ASCII dari angka desimal

tersebut maka diperoleh hasil ,$9$. Dengan kata lain, kata ”NAMA” yang

dienkripsikan akan berubah menjadi “,$9$”.

Kunci pada penelitian ini juga menggunakan algoritma subtitusi kode

geser. Teknik subtitusi kode geser (shift) dengan modulus 26 memberikan angka

ke setiap alfabet seperti A↔0, B↔1....Z↔25 [6].

Contohnya, teks asli ”UNIVERSITAS” maka teks asli akan mendapatkan

angka ”20 13 8 21 4 17 18 8 19 0 18” sesuai dengan penomoran alfabet. Untuk

mendapatkan teks-kode, harus mempunyai kunci. Sebagai contoh, kunci yang

diambil disini adalah 11, maka jumlahkan setiap angka dari teks asli dengan 11.

Jika hasil penjumlahannya lebih dari 26, maka hasilnya dikurangi 26. Misalnya 20

+ 11 = 31 – 26 = 5. Setelah dijumlahkan, maka hasilnya adalah ”5 24 19 6 15 2 3

19 4 11 3”. Setelah dikonversikan maka akan menghasilkan teks-kode ”

FYTGPCDTELD” seperti pada Gambar 1.

A B C D E F G H I J K L M

0 1 2 3 4 5 6 7 8 9 10 11 10

N O P Q R S T U V W X Y Z

13 14 15 16 17 18 19 20 21 22 23 24 25

Gambar 1 Contoh Penomoran Ke Setiap Alfabet.

3. Metode dan Perancangan Sistem

Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang

terbagi dalam lima tahapan, yaitu: (1) Analisis kebutuhan dan pengumpulan data,

Inputan 01001110 01000001 01001101 01000001

Kunci 01100010 01100101 01110100 01100101

Hasil XOR 00101100 00100100 00111001 00100100

N : 0100 1110

A : 0100 0001

M : 0100 1101

A : 0100 0001

b : 0110 0010

e : 0110 0101

t : 0111 0100

e : 0110 0101

Page 5: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

5

(2) Perancangan sistem, (3) Perancangan aplikasi/program, (4) Implementasi dan

pengujian sistem.

Gambar 2 Tahapan Penelitian

Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut.

Tahap pertama: Analisis kebutuhan dan pengumpulan data dengan cara

menganalisa kebutuhan pengguna akan tingkat kebutuhan sistem, kebutuhan

hardware, kebutuhan software. Selain itu pada tahap ini dilakukan proses

wawancara dengan Kepala Seksi Pencarian Dana dan juga staff bagian Informasi

Gaji. Data yang dikumpulkan adalah informasi mengenai penggajian yang

dilakukan, dan keamanan data yang diperlukan; Tahap kedua: Setelah proses

penelitian dan analisa kebutuhan selesai, tahap selanjutnya adalah melakukan

perancangan sistem menggunakan diagram Unified Modeling Language (UML)

untuk mengetahui setiap proses beserta semua aktifitas dari admin yang akan

dibangun pada sistem. Perancangan database untuk merancang tabel-tabel yang

berfungsi untuk menyimpan data yang dibutuhkan dalam aplikasi sistem.

Perancangan antarmuka, yaitu merancang antarmuka yang berfungsi sebagai

penghubung interaksi antara admin dengan sistem; Tahap ketiga, perancangan

sistem yaitu merancang aplikasi/program sesuai kebutuhan sistem berdasarkan

perancangan sistem yang telah dilakukan. Misalnya bagaimana sistem berjalan

saat penyimpanan data dan pengambilan data; Tahap keempat: implementasi dan

pengujian sistem, yaitu mengimplementasikan tahapan penelitian kedua dan

ketiga ke dalam sebuah program, apabila implementasi program sudah selesai,

maka dilakukan pengujian, serta dianalisis untuk melihat apakah aplikasi yang

telah dibuat sudah sesuai dengan yang diharapkan atau tidak ada error, jika belum

sesuai maka akan dilakukan perbaikan.

Perancangan sistem dibuat berdasarkan kebutuhan yang telah dianalisis

sebelumnya, menggunakan Flowchart.

Gambar 3 menjelaskan tentang bagaimana struktur sistem pengenkripsian data

pada sistem keamanan data yang akan dirancang. Sistem akan berjalan ketika start

kemudian akan mengecek data input yang ada. Setelah data input diperoleh, maka

kunci akan di-generate sehingga mempunyai panjang karakter sama dengan input

yang diperoleh. Kemudian data input akan diubah ke dalam bentuk biner, hal ini

Perancangan Aplikasi/Program

Implementasi dan Pengujian Sistem

Analisis Kebutuhan dan Pengumpulan Data

Perancangan Sistem meliputi Perekayasaan Perangkat

Lunak, Perancangan Database dan Perancangan

Antarmuka dan Database

Page 6: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

6

juga terjadi pada kunci yang didapat tadi. Setelah mendapatkan nilai biner dari

input dan kunci, maka input dan kunci akan di-XOR-kan sehingga memperoleh

hasil dari nilai XOR tersebut. Nilai XOR tersebut kemudian diubah ke dalam

bentuk karakter. Setelah itu proses pengenkripsian data selesai.

Gambar 3 Flowchart Proses Pengenkripsian Data

Tidak

Start

Inputan (nip, nama, status, jum anak, golongan, gaji

pokok, tunjangan)

Kunci berupa subtitusi Shif dari kata

Administrator

String input diubah menjadi Biner Contoh : A = 1000001

String Kunci diubah menjadi Biner Contoh : c = 1100011

Proses XOR Input dan Kunci Contoh : 1000001

1100011 Hasil XOR : 0100010

Hasil XOR diubah kenilai Desimal Biner = 0100010

Decimal = 34

Hasil Desimal diubah kenilai ASCII Decimal = 34

ASCII = “

Simpan Hasil

End

Berhasil

disimpan?

Ya

Page 7: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

7

Gambar 4 Flowchart Proses Pendekripsian Data

Gambar 4 menjelaskan tentang bagaimana struktur sistem pendekripsian data

pada sistem keamanan data yang akan dirancang. Sistem akan berjalan ketika start

kemudian akan mengecek hasil enkripsi yang ada. Setelah data enkripsi diperoleh,

maka akan dicari kuncinya. Kemudian data enkripsi akan diubah ke dalam bentuk

biner, hal ini juga terjadi pada kunci yang didapat tadi. Setelah mendapatkan nilai

Start

Inputan ( nama, status, jum anak, golongan, gaji pokok,

tunjangan)

Kunci berupa subtitusi Shif dari kata

Administrator

String Hasil Enkripsi diubah menjadi Biner Contoh : “ = 0100010

String Kunci diubah menjadi Biner Contoh : c = 1100011

Proses XOR Hasil Enkripsi dan Kunci Contoh : 0100010

1100011 Hasil XOR : 1000001

Hasil XOR diubah kenilai Desimal Biner = 1000001

Desimal = 65

Hasil Desimal diubah kenilai ASCII Desimal = 65

ASCII = A

Lihat Hasil

End

Page 8: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

8

biner dari data yang telah dienkripsi dan kunci, maka data tersebut dan kunci akan

di-XOR-kan sehingga memperoleh hasil dari nilai XOR tersebut. Nilai XOR

tersebut kemudian diubah ke dalam bentuk karakter. Setelah itu proses

pendekripsian data selesai.

Contoh enkripsi yang dilakukan dengan menggunakan Algoritma One

Time Pad dan teknik subtitusi kode geser seperti contoh Tabel 3.

Tabel 3 Tabel Penggunaan Kriptografi One Time Pad

Nama Golongan Gaji Pokok

Inputan AMIN III/C 5250000

Kunci yang

digunakan

(hasil subtitusi kode

geser dari “amin”

dengan nilai kunci

23)

xjfk Xjfkx xjfkxjf

Inputan Binary 1000001

1001101

1001001

1001110

1001001

1001001

1001001

0101111

1000011

0110101

0110010

0110101

0110000

0110000

0110000

0110000

Kunci Binary 1111000

1101010

1100110

1101011

1111000

1101010

1100110

1101011

1111000

1111000

1101010

1100110

1101011

1111000

1101010

1100110

Hasil

XOR

Binary

0111001

0100111

0101111

0100101

0110001

0100011

0101111

1000100

0111011

1001101

1011000

1010011

1011011

1001000

1011010

1010110

Hasil enkripsi 9’/% 1#/D; MXS[HZV

Tabel 1 menjelaskan perhitungan tentang penggunaan algoritma

kriptografi one time pad dan substitusi kode geser. Dimana ketiga inputan

Page 9: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

9

disertai kunci diubah menjadi bentuk biner. Kemudian bentuk biner

tersebut di-XOR-kan, sehingga menghasilkan hasil enkripsi data pada

table gaji.

4. Hasil dan Pembahasan

Sistem dalam penelitian ini berbentuk desktop application yang disertai

dengan GUI (Graphical User Interface), bertujuan untuk mempermudah admin

dalam pengoperasian sistem. GUI pada sistem ini terdiri dari beberapa form

antara lain adalah form Login, form Home, form Manage Data Pegawai, form

Manage Data Gaji, form Report Data Pegawai dan form Report Data Gaji. Berikut

adalah pseudo code algoritma One Time Pad.

Kode Program 1 Pseudo Code Algoritma One Time Pad

Kode program 1 menjelaskan enkripsi one time pad dilakukan dengan cara

XOR plaintext dan key. Baris ke empat, merupakan fungsi untuk menghitung

jumlah karakter plaintext, kemudian pada baris ke tujuh, akan membangun kunci

menjadi sama panjang dengan plaintext. Baris ke delapan merupakan fungsi untuk

mengambil karakter kunci, kemudian di-XOR dengan karakter plaintext yang

dipilih pada baris ke sembilan, dan akan ditambahkan ke hasil enkripsi.

Kode Program 2 Pseudo Code Algoritma Kode Geser

1. class OTP { 2. public static string otp(string text, string key){ 3. var result = new StringBuilder(); 4. for (int c = 0; c < text.Length; c++){ 5. char character = text[c]; 6. uint charCode = (uint)character; 7. int keyPosition = c % key.Length; 8. char keyChar = key[keyPosition]; 9. uint keyCode = (uint)keyChar; 10. uint combinedCode = charCode ^ keyCode; 11. char combinedChar = (char)combinedCode; 12. result.Append(combinedChar);} 13. return result.ToString();} 14. }

1. class kodegeser { 2. public static string Encrypt(string plainText, int key) 3. { 4. char[] plainChar = plainText.ToCharArray(); 5. int[] ascii = new int[plainChar.Length]; 6. for (int count=0;count < plainChar.Length; count++){ 7. ascii[count] = Convert.ToInt32(plainChar[count]); 8. if (ascii[count] >= 65 && ascii[count] <= 90){ 9. ascii[count] = ((ascii[count] - 65 + key) % 26) + 65;}

Page 10: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

10

Kode program 2 menjelaskan teknik substitusi kode geser dilakukan

dengan cara mengeser plaintext menggunakan besaran key. Baris ke 4-5

merupakan fungsi untuk mengubah string plaintext ke bentuk char, kemudian

pada baris ke 6-7 akan mengubah bentuk char plaintext ke bentuk ASCII. Baris ke

8-11 akan menyaring karakter ASCII yakni yang dipakai adalah karakter alfabet

A-Z dan a-z saja dimana alfabet A-Z pada tabel ASCII adalah 65-90 dan a-z

adalah 97-122. Baris ke 12 akan mengubah hasil dalam bentuk ASCII ke bentuk

Char, kemudian akan diubah lagi ke bentuk String pada baris 13.

Dalam sistem ini, penggunaan algoritma One Time Pad dan teknik

subtitusi kode geser terdapat pada form Manage Data Gaji, dan juga form Report

Data Gaji. Form Manage Data Gaji terdapat beberapa textbox yang hanya dapat

menampilkan data sesuai label pada textbox tersebut dan button yang harus

dieksekusi oleh Admin sesuai dengan label pada textbox dan button tersebut agar

dapat melakukan perhitungan gaji pegawai, menyimpan data gaji pegawai dan

menghapus data gaji pegawai.

Gambar 9 Form Manage Data Gaji

Pada Gambar 9, data yang tersimpan adalah data yang sudah terenkripsi

pada saat melakukan penyimpanan data. Form Manage Data Gaji juga terdapat

button Dekripsi untuk melihat data gaji asli dan button Enkripsi untuk

mengembalikan data ke dalam bentuk enkripsi. Form Manage Data Gaji Terdapat

juga combobox dengan label NIP yang telah terisi dengan data NIP pegawai

sesuai dengan data nip pada database pegawai, yang berfungsi untuk

menampilkan data pada textbox sesuai dengan data pemanggilan data pada

database. Data gaji pegawai tidak dapat diubah, jadi data yang telah dihitung dan

terjadi kesalahan dalam perhitungan akan dihapus dan data pegawai harus di cek

pada form Manage Data Pegawai. Button Proses untuk menghitung gaji pegawai,

button simpan untuk melakukan penyandian pada data yang dimasukan, kemudian

10. else if (ascii[count] >= 97 && ascii[count] <= 122) { 11. ascii[count] = ((ascii[count] - 97 + key) % 26) + 97;} 12. plainChar[count] = ((char)(ascii[count]));} 13. return new string(plainChar);} 14. }

Page 11: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

11

1. string kunci = tbadmin.Text.Trim(); 2. g.setGaji_Bulan(textBox1.Text = OTP.otp(textBox1.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 3. g.setNip(cbnip.Text); 4. g.setGajiPokok(tbgajipokok_HG.Text = OTP.otp(tbgajipokok_HG.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 5. g.setTun_IS(tunistri.Text = OTP.otp(tunistri.Text,

(kodegeser.Encrypt(kunci,Convert.ToInt32(23))))); 6. g.setTunAnak(tunanak.Text = OTP.otp(tunanak.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 7. g.setTunBeras(tunberas.Text = OTP.otp(tunberas.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 8. g.setTun_Pajak(tunpajak.Text = OTP.otp(tunpajak.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 9. g.setPot_ipn(pot_ipn.Text = OTP.otp(pot_ipn.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 10. g.setPotPajak(potpajak.Text = OTP.otp(potpajak.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 11. g.setPotLain(tbpotlain.Text = OTP.otp(tbpotlain.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 12. g.setGaji_bersih(tbgajibersih.Text = OTP.otp(tbgajibersih.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23)))));

menyimpannya kedalam database. Hasil enkripsi data gaji dapat dilihat pada

Gambar 10.

Gambar 10 Hasil Enkripsi dan penyimpanan data gaji.

Pemanggilan fungsi untuk proses enkripsi dan penyimpanan data gaji

pegawai ke dalam database, ditunjukkan pada Kode Program 1.

Kode Program 1 Proses Enkripsi Data Gaji

Pada Kode Program 1, baris 1-11 yang berfungsi sebagai perintah pada

button simpan pada form Manage Data Gaji data gaji akan mengenkripsikan

Gaji_Bulan, Gaji_Pokok, Tun_Anak, Tun _Beras, Pot_Pajak, Pot_Lain,

Gaji_Bersih dengan menggunakan encode pada class rumus dan kunci pada

textbox yang disubtitusikan pada class kodegeser yang telah disubtitusikan dengan

menggunakan nilai kunci 23 dan kemudian menyimpan data tersebut dalam

database. Proses dekripsi data juga dapat dilakukan pada form Manage Data gaji

pada Gambar 9. Hasil dekripsi data gaji dapat dilihat pada Gambar 11.

Page 12: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

12

Gambar 11 Hasil Dekripsi

Pemanggilan fungsi untuk proses dekripsi data gaji, ditunjukkan pada

Kode Program 2.

Kode Program 2 Fungsi Dekripsi

Kode Program 2 merupakan perintah untuk medekripsikan data yang telah

terenkripsi dengan membuat list database yang sama dengan database dengan

menampilkan data yang telah terdekripsi. Baris 1-14 merupakan perintah untuk

membuat list database. Baris 18-24 merupakan perintah untuk mendekripsikan

row pada database sesuai dengan list database menggunakan decode pada class

1. dgvgaji.DataSource = null; 2. Dao.DAO d = new Dao.DAO(); 3. List<Model.Gaji> ld = new List<Model.Gaji>(); 4. DataGridViewRow rw = new DataGridViewRow(); 5. ld = d.getGajiPegawaiList(); 6. dgvgaji.ColumnCount = 8; 7. dgvgaji.Columns[0].Name = "NIP"; 8. dgvgaji.Columns[1].Name = "Gaji Bulan"; 9. dgvgaji.Columns[2].Name = "Gaji Pokok"; 10. dgvgaji.Columns[3].Name = "Tun Anak"; 11. dgvgaji.Columns[4].Name = "Tun Beras"; 12. dgvgaji.Columns[5].Name = "Pot Pajak"; 13. dgvgaji.Columns[6].Name = "Pot Lain"; 14. dgvgaji.Columns[7].Name = "Gaji Bersih"; 15. for (int i = 0; i < ld.Count; i++) { 16. String no = i + 1 + ""; 17. String nip = ld[i].getNip()+""; 18. string gaji_bulan = OTP.otp(ld[i].getGaji_Bulan() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23))); 19. String gaji_pokok = OTP.otp(ld[i].getGajiPokok() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 20. String tun_anak = OTP.otp(ld[i].getTunAnak() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 21. String tun_beras = OTP.otp(ld[i].getTunBeras() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 22. String pot_pajak = OTP.otp(ld[i].getPotPajak() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 23. String pot_lain = OTP.otp(ld[i].getPotLain() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 24. String gaji_bersih = OTP.otp(ld[i].getGaji_bersih() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 25. string[] row = new string[] { nip, gaji_bulan,

gaji_pokok, tun_anak, tun_beras, pot_pajak, pot_lain, gaji_bersih };

26. dgvgaji.Rows.Add(row);} 27. MessageBox.Show(this, "Data Berhasil Di Dekripsi");}

28.

Page 13: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

13

rumus dan dengan kunci pada textbox yang disubtitusikan pada class kodegeser

yang telah disubtitusikan dengan menggunakan nilai kunci 11 dan menampilkan

data tersebut pada datagridview.

Proses perhitungan waktu enkripsi data juga diterapkan dan ditampilkan ketika

admin melakukan proses menyimpan data gaji ke dalam database. Hal ini berguna

untuk memberikan informasi tentang kecepatan algoritma yang digunakan untuk

enkripsi data. Waktu proses akan keluar jika inisialisasi masukan yang dilakukan

tidak ada kesalahan, artinya data dapat masuk ke dalam database. Proses ini dapat

dilihat pada Gambar 12.

Gambar 12 Informasi Waktu Proses.

Gambar 12 merupakan waktu yang diperoleh hasil dari proses enkripsi dengan

data asli sebagai berikut :

Gaji Bulan = June-2014

Gaji Pokok = 2900000

Tunjangan I/S = 290000

Tunjangan Anak = 58000

Tunjangan Beras = 300000

Tunjangan Pajak = 145000

Potongan IPN = 191400

Potongan Pajak = 145000

Potongan Lain-lain = 87000

Gaji Bersih = 3026000

Hasil dari proses enkripsi data tersebut dapat dilihat pada informasi berikut ini :

Gaji Bulan =

KKPC_IE

Gaji Pokok = jXZV[V@

Tunjangan I/S = jXZV[V

Tunjangan Anak = mYZV[

Tunjangan Beras = kQZV[V

Tunjangan Pajak = iU_V[V

Potongan IPN = iX[R[V

Potongan Pajak = iU_V[V

Potongan Lain-lain = `VZV[

Gaji Bersih = kQXP[V@

Form Report Data Gaji merupakan hasil inputan ke dalam database pada

Form Manage Data Gaji pada Gambar 9 yang nantinya juga akan di printout atau

Page 14: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

14

disimpan dalam bentuk file dalam beberapa format dokumen yakni Excel(*.xls),

Word(*.doc) atau PDF(*.pdf). Data yang tedapat pada Report data gaji adalah

gabungan dari beberapa data pegawai yg ada pada database data pegawai dan data

gaji pegawai yang telah didekripsikan, dapat dilihat pada Gambar 12.

Gambar 12 Form Report Data Gaji

Dari skenario pengujian yang dilakukan dapat diperoleh hasil pengujian

sesuai dengan yang diharapkan. Dari hasil pengujian pada setiap item yang ada

pada aplikasi peminjaman barang ini terangkum pada Tabel Hasil Pengujian

Sistem yang dibangun perlu diuji dan dianalisis untuk melihat apakah sudah

memenuhi kebutuhan dan perancangan sistem. Pengujian sistem menggunakan

pengujian black box yaitu metode pengujian yang berfokus pada persyaratan

fungsional perangkat lunak yang dibuat. Hasil pengujian sistem yang telah

dibuat, ditunjukkan pada Tabel 4.

Tabel 4 Tabel Hasil Pengujian BlackBox

No Item yang

Diuji

Sifat

Pengujian

Cara

Pengujian

Hasil yang Diharapkan Hasil

Uji

1. Login Normal Memasukkan

Username :

Password :

Sistem akan

menampilkan pesan

“Selamat Datang” dan

juga menampilkan

halaman utama Sistem.

Sesuai

Data Salah Memasukkan

Username :

Password :

Sistem tidak akan

menampilkan halaman

utama dan akan muncul

pesan kesalahan

“Periksa Username dan

Password”

Sesuai

2. Manage Normal Menyimpan dan Sistem akan Sesuai

Page 15: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

15

Data

Pegawai

mengubah data

pegawai sesuai

dengan field

yang

disediakan, dan

menghapus data

pegawai.

menampilkan pesan jika

data berhasil disimpan,

diubah, dan dihapus dan

akan menampilkan

semua data pegawai di

tabel pegawai yang telah

dikelolah oleh admin

pada Form Manage

Data Pegawai

Data Salah Memasukkan

NIP pegawai

yang telah

disimpan,

menyimpan

data dengan

field yang

kosong.

Sistem tidak akan

mnyimpan, mengubah

dan menghapus data

pegawai, namun akan

menampilkan pesan

kesalahan.

Sesuai

3.

Manage

Data Gaji

Normal Menghitung,

menyimpan dan

menghapus data

gaji pegawai

sesuai dengan

field yang

disediakan.

Menampilkan Data gaji

yang dikelolah pada

form manage data gaji

yang telah terenkripsi

pada database gaji

pegawai.

Sesuai

Data salah Memasukkan

NIP pegawai

yang telah

dihitung gajinya

dan disimpan,

menyimpan

data tanpa

menghitung gaji

terlebih dahulu

Sistem tidak akan

mnyimpan, mengubah

dan menghapus data

pegawai, namun akang

menampilkan pesan

kesalahan.

Sesuai

4. Report

Data

Pegawai

Normal Melihat data

pegawai,

simpan data

pegawai dalam

bentuk file,

cetak data

pegawai

Report data pegawai

akan menampilkan Data

pegawai yang ada pada

database pegawai untuk

di simpan atau dicetak

sesuai keinginan admin.

Sesuai

5. Report

Data Gaji

Normal Melihat data

pegawai gaji,

simpan data gaji

dalam bentuk

file, cetak data

gaji

Report data gaji akan

menampilkan data gaji

pegawai yang ada pada

database gaji yang telah

didekripsikan oleh

sistem untuk di simpan

atau dicetak sesuai

keinginan admin.

Sesuai

Page 16: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

16

Berdasarkan hasil pengujian blackbox testing dari setiap item, dapat

dijelaskan bahwa setiap menu yang ada sudah dapat berjalan sesuai dengan

fungsinya masing-masing baik dalam kelompok uji secara normal maupun dalam

kelompok uji tidak normal atau pengujian pesan kesalahan semuanya telah

berjalan sesuai dengan rancangan yang telah dibangun.

Performance testing merupakan salah satu model yang dimiliki oleh black box

testing. Performance testing merupakan evaluasi kemampuan program untuk

beroperasi dengan benar dipandang dari sisi acuan kebutuhan seperti kecepatan

eksekusi program. [7].

Dalam analisa ini akan dilakukan beberapa pengujian dengan nominal gaji

yang akan dienkripsikan. Hal ini dilakukan guna mengetahui apakah nominal gaji

yang karakternya panjang akan memakan waktu yang lebih lama dengan nominal

gaji yang lebih pendek. Kunci yang digunakan memliki panjang 13 karakter.

Untuk panjang nominal gaji yang akan digunakan maksimal memiliki panjang

delapan karakter dan terpendek akan digunakan lima karakter, karena sistem yang

dibuat merupakan enkripsi gaji yang terdiri dari lima sampai delapan angka

nominal gaji pegawai.

Tabel 3 Analisa Waktu terhadap Panjang Password

Panjang

Kunci

(karakter)

Panjang

Nominal Gaji

(karakter)

Rata-rata Waktu

Proses

(ms)

13 5 0,005

13 6 0,0010

13 7 0,0011

13 8 0,0011

Hasil percobaan waktu rata-rata tiap baris pada Tabel 3 dilakukan sebanyak 30

kali percobaan, sehingga diperoleh rata-rata waktu prosesnya. Dari hasil rata-rata

waktu proses pada Tabel 3, maka dapat disimpulkan bahwa peningkatan panjang

jumlah karakter nominal gaji yang akan dienkripsi juga mempengaruhi rata-rata

waktu proses, maka dapat diambil kesimpulan bahwa waktu proses dipengaruhi

oleh jumlah data yang digunakan. Dalam hal ini, waktu proses dipengaruhi oleh

panjang karakter nominal gaji yang dimasukan.

Pada pengujian tingkat keamanan ini, akan digunakan metode Kasiski

Examination. Kasiski Examination mengambil keuntungan dari kenyataan bahwa

sejumlah kata umum akan dienkripsi dengan huruf kunci yang sama, menurut

pengumpulan pengulangan huruf pada ciphertext. Tes Kasiski akan efektif, jika

terjadi banyak pengulangan pada ciphertext yang dihasilkan. [8].

Berikut adalah contoh ciphertext yang memiliki perulangan dan mengijinkan

seorang kriptanalis untuk mengetahui panjang kunci yang digunakan.

Plaintext :

12345 5536 2467 12345 2253 234 2467

key :

SEAN

Ciphertext :

Page 17: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

17

bwrzfet{`sa|gsvnbwrzfes|fva|`qa|gsv

Perulangan karakter bwrzf diasumsikan bahwa datanya memiliki plaintext

yang sama. Jarak perulangannya adalah 16 karakter, berarti memiliki

kemungkinan panjang kunci adalah 16, 8, 4, atau 2. Perulangan |gsv juga

diasumsikan bahwa datanya memilik plaintext yang sama, dengan jarak

perulangan sebesar 20 karakter, berarti kemungkinan panjang kunci yang

digunakan adalah 20, 10, 5, 4, atau 2. Dengan mengambil persamaan dari

keduanya, maka disimpulkan bahwa panjang kuncinya adalah 2 atau 4.

Metode Kasiski hanya dapat menyimpulkan panjang kunci yang digunakan

untuk enkripsi data, akan tetapi tidak dapat memprediksi kunci yang digunakan

untuk proses enkripsi data.

5. Simpulan

Berdasarkan hasil penelitian, pembahasan dan pengujian yang telah dilakukan

tentang penerapan algoritma One Time Pad untuk meningkatkan keamanan basis

data pada data gaji pegawai di Kantor Pelayanan Perbendaharaan Negara (KPPN)

Ambon, maka diperoleh beberapa kesimpulan sebagai berikut : (1) Dihasilkan

sebuah sistem informasi data pegawai dan data gaji pegawai beserta implementasi

keamanan data gaji pegawai, dengan menggunakan kriptografi one time pad; (2)

Penyandian kriptografi one time pad dapat diimplementasikan pada sistem yang

dibuat dengan memanfaatkan algoritma kode geser sebagai kunci dari algoritma

kriptografi one time pad; (4) Kecepatan proses enkripsi pada sistem yang

dibangun dengan menggunakan algoritma kriptografi one time pad dan kode geser

dipengaruhi oleh panjang plaintext yang akan dienkripsi; (5) Metode Kasiski

hanya dapat menyimpulkan panjang kunci yang digunakan untuk enkripsi data,

akan tetapi tidak dapat memprediksi kunci yang digunakan untuk proses enkripsi

data.

Saran untuk pengembangan sistem ini adalah sebagai berikut (1) Aplikasi

penyimpanan data dapat dikembangkan menjadi aplikasi untuk enkripsi semua

data yang ada di KPPN ambon; (2) Proses enkripsi dan dekripsi dapat

dikembangkan lagi, sehingga tidak hanya data gaji yang bentuknya integer,

melainkan semua type data yang ada dalam aplikasi dapat dienkripsi dan

didekripsi.

6. Daftar Pustaka

[1] Primanio, 2007. Pemanfaatan Kembali Kriptografi Klasik dengan

melakukan Modifikasi Metode-Metode Kriptografi yang ada. Bandung :

Institut Teknologi Bandung.

[2] Astutik, Duwi. 2007. Algoritma Enkripsi One Time Pad untuk Sistem

Pengamanan Access Database Server Menggunakan Bahasa Pemrograman

Visual Basic. Semerang : Universitas Negeri Semarang.

[3] Munir, Rinaldi, 2006, Kriptografi, Bandung: Penerbit Informatika.

Page 18: Penerapan Algoritma One Time Pad pada Data Gaji Pegawai ...repository.uksw.edu/bitstream/123456789/8674/3/T1_672009112_Full... · kriptografi one time pad untuk meningkatkan keamanan

18

[4] Lubis, Haris, 2010. Studi Analisis Aplikasi Algoritma One-Time Pad dan

AES pada Keamanan Sistem Cloud Computing. Bandung : Institut

Teknologi Bandung.

[5] Manongga, Danny, 2007, Matematika Diskrit, Salatiga: Fakultas Teknologi

Informasi Universitas Kristen Satya Wacana.

[6] Airus, Dony, 2008, Pengantar Ilmu Kriptografi, Teori, Analisis dan

Implementasi, Yogyakarta: penerbit Andy.

[7] Williams, Laurie, 2006, Testing Overview and Black-Box Testing

Techniques, http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf. Diakses

tanggal 11 Mei 2014.

[8] Namiesyva, Twindania, 2007, Kriptografi Sebagai Media Pembelajaran

dalam Studi Matematika Tingkat Sekolah,

http://www.informatika.org/~rinaldi/Matdis/2006-

2007/Makalah/Makalah0607-38.pdf. Diakses tanggal 11 Mei 2014.