perancangan dan implementasi aplikasi keamanan pengiriman...
TRANSCRIPT
Perancangan dan Implementasi Aplikasi Keamanan
Pengiriman Data File pada Client – server Berbasis
Algoritma Block Cipher menggunakan Teknik
Transposisi dengan Prinsip One Time Pad (OTP)
Artikel Ilmiah
Dwi Agung Saktiyono (672010176)
Dian W. Chandra, S.Kom., M.Cs.
Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
April 2015
Perancangan dan Implementasi Aplikasi Keamanan
Pengiriman Data File pada Client-server Berbasis
Algoritma Chiper Block dengan Prinsip One Time Pad
(OTP)
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer
Peneliti :
Dwi Agung Saktiyono (672010176)
Dian W. Chandra, S.Kom., M.Cs.
Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
April 2015
Lembar Persetujuan
Perancangan dan Implementasi Aplikasi Keamanan Pengiriman Data File
pada Client –server Berbasis Algoritma chiper block dengan Prinsip One Time
Pad (OTP)
1)Dwi Agung Saktiyono,
2) Dian W. Chandra,
3)Alz Danny Wowor
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: 1)
Abstract
Cryptography is one of the security of data or information that can be
implemented on a computer network. Computer networks are quite spacious allowing the
vulnerability of crime in cyberspace, and cryptography is one of solution that can be
used. This study designed a cryptographic cipher block using the technique of
transposition and prisnsip One Time Pad algorithm for data security that is applied in
data transmission applications on the client - server, and also designed padding key to be
better facilitate the process of equating long with the plaintext characters. Result of the
study, which is designed to run cryptography and applied to the network client - server
accordance with a five-tuple (five-tuple).
Keywords: Block Cipher, Cryptography, Transposition, Client – Server, Padding.
Abstrak
Kriptografi merupakan salah satu keamanan data atau informasi yang dapat
diimplementasi pada sebuah jaringan komputer. Jaringan komputer yang cukup luas
memungkinkan rentannya kejahatan di dunia maya, dan kriptografi merupakan salah satu
solusi yang bisa digunakan. Penelitian ini merancang kriptografi cipher blok dengan
menggunakan teknik transposisi acak serta prisnsip algoritma One Time Pad untuk
keamanan data yang diterapkan di aplikasi pengiriman data pada klien – server, dan juga
merancang padding kunci untuk lebih memudahkan proses menyamakan panjang dengan
karakter plainteks. Hasil dari penelitian ini, yaitu kriptografi yang dirancang dapat
berjalan dan diterapkan pada jaringan klien – server sesuai dengan lima-tuple (five-tuple).
Kata Kunci: Cipher Blok, Kriptografi, Transposisi, Klien – Server, Padding.
1) Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi,
Universitas Kristen Satya Wacana.
2) Staf Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana
Salatiga.
1
1. Pendahuluan
One time pad (OTP) adalah salah satu algoritma kriptografi yang memiliki
tingkat keamanan paling baik [1]. Algoritma OTP memiliki keunggulan dalam
melakukan proses enkripsi dan dekripsi yaitu setiap karakter plainteks mempunyai
kunci masing-masing yang digunakan untuk mengenkripsi dan mendekripsi [4].
Sehingga membuat kriptanalis kesulitan dalam menemukan plainteks asli jika
kunci yang digunakan adalah kunci yang acak. Sisi yang lain, OTP memiliki
kelemahan dalam penggunaannya untuk melakukan enkripsi dan dekripsi yaitu
OTP hanya cocok digunakan untuk melakukan enkripsi dan dekripsi pesan yang
berukuran kecil atau pesan singkat saja [1]. Hal ini dikarenakan panjang kunci
yang digunakan harus sama dengan panjang pesan, sehingga semakin besar
panjang pesan akan berakibat semakin besar pula panjang kunci, jadi file yang
berukuran besar akan lebih sulit untuk dilakukan proses enkripsi dekripsi.
Adapun algoritma kriptografi lainnya yang memiliki keunikan dengan
karakter dan spesifikasi yang berbeda-beda. Salah satunya adalah block cipher,
algoritma ini melakukan enkripsi dan dekripsi berdasarkan ukuran blok, yang
biasanya ditentukan berdasarkan banyak karakter atau banyak bit dari blok
tersebut. Block cipher merupakan kriptografi yang banyak digunakan sebagai
teknik pengamanan di internet, transaksi keuangan, dan juga dalam
berkomunikasi. Selain itu juga teknik ini digunakan karena secara matematis tidak
memerlukan operasi yang kompleks. Dimana algoritma block chiper pada
prosesnya memerlukan waktu dan memori yang sedikit dibandingkan dengan
kriptografi jenis yang lainnya [2].
Sistem jaringan client – server menjadi salah satu media untuk mengirimkan
informasi, tidak hanya informasi umum tetapi untuk informasi yang bersifat
rahasia. Agar informasi tersebut tidak jatuh ke pihak yang salah, kriptografi
berperan dalam memgamankan informasi-informasi tersebut pada saat pesan
ditransmisikan ke dalam jaringan.
Berdasarkan pemahaman yang sudah dijelaskan penelitian ini merancang
algoritma baru yang mengacu pada algoritma cipher block dengan menggunakan
teknik transposisi dan prinsip OTP, untuk mengatasi prinsip OTP yaitu panjang
karakter plainteks harus sama kunci maka diperlukan proses padding pada kunci
agar panjangnya memenuhi panjang plainteks yang ada. Algoritma cipher block
yang juga memiliki fungsi kerja yang sama dengan OTP yaitu menjumlah (xor)
setiap karakter plainteks dengan kunci sehingga prinsip OTP dapat digunakan
dalam penelitian ini, sehingga nantinya penelitian diharapkan dapat menjadi
alternatif pengamanan data file yang kemudian diterapkan pada sebuah aplikasi
pengiriman client – server melalui jaringan untuk memenuhi keamanan sistem.
2. Kajian Pustaka
Pada penelitian sebelumnya yang berjudul “Sistem Pengamanan Data
Menggunakan Metode MD5 dan Private Key pada Aplikasi berbasis Client
Server”, penelitian ini membuat aplikasi pengamanan data menggunakan metode
MD5 dan algoritma private key untuk sistem informasi simpan pinjam pada
koperasi Buah Hati Bawen. Keamanan yang diterapkan terletak pada database
2
data nasabah dan form login nasabah (client) dengan menggunakan portal enkripsi
yang diaktifkan atau di non-aktifkan [3], dengan begitu data nasabah yang
tersimpan pada database akan aman karena data yang tersimpan dalam keadaan
cipherteks. Pada penelitian tersebut hanya melakukan enkripsi ketika file sampai
di server, dan memakai algoritma standar MD5. Penenlitian ini dijadikan acuan
membuat kripotgrafi simetris yang baru, yang nantinya dapat digunakan pada
pengamanan Client – server.
Penelitian lain yang pernah dilakukan mengenai algoritma one time pad
yaitu berjudul “Modifikasi Kriptografi One Time Pad (OTP) Menggunakan
Padding Dinamis dalam Pengamanan Data File” yang dimana penelitian ini
membuat aplikasi pengamanan data file dengan menerapkan teknik kriptografi
One Time Pad (OTP) modifikasi, sehingga algoritma One Time Pad (OTP) yang
diterapkan lebih praktis dan dapat diimplementasi ke semua aplikasi-aplikasi yang
digunakan dalam mengamankan data file. Algoritma One Time Pad (OTP) yang
dimodifikasi dengan melakukan tiga kali proses dan menggunakan bit shifting
pada kunci dan plainteks. Kunci pada proses kedua dan ketiga digenerate agar
bertambah sebanyak karakter dalam plainteks, untuk proses padding f+(ASCII-f)
semisal proses dilakukan pada karakter “f” maka karakter berikutnya yang
dihasilkan “fghijklm” berurut hingga memutari ASCII dan berhenti di “e”. Hasil
dari penelitian ini adalah teknik kriptografi yang dapat diaplikasikan pada
pengamanan file berbasis teks [4]. Proses padding yang dilakukan secara dinamis
menggunakan ASCII 256 membuat padding pada kunci tidak bervariasi, sehingga
mudah bagi kriptanalis untuk memecahkannya. Penenlitian ini dijadikan dasar
untuk membuat padding baru berdasarkan total ASCII, walaupun berbeda proses
dalam meregenerasi kunci.
Berdasarkan penelitian yang pernah dilakukan tentang aplikasi keamanan
dengan teknik kriptografi, maka dalam penelitian ini, akan dilakukan penelitian
perancangan dan implementasi aplikasi keamanan pengiriman data file pada client
server dengan menerapkan algoritma block cipher dalam blok 64 bit yang
dirancang untuk proses enkripsi dan deskripsi file. Enkripsi (E) diakukan terhadap
blok bit menggunakan bit-bit kunci (K) yang ukurannya sama dengan ukuran blok
plainteks (P). Algoritma enkripsi menghasilkan blok cipherteks (C) yang
berukuran sama dengan blok plainteks. Dekripsi (D) dilakukan dengan cara serupa
seperti pada enkripsi [1]. Enkripsi pada plainteks dapat dinyatakan dengan
persamaan (1).
(1)
Sedangkan dekripsi dinyatakan dengan Persamaan (2).
(2) Pada proses enkripsi plainteks dimasukkan terlebih dahulu, kemudian di
tahapan enkripsi plainteks diproses dengan kunci sesuai ketentuan setiap putaran
yang dibuat, proses plainteks dilakukan hingga menghasilkan cipherteks di
putaran proses akhir. Proses dekripsi dapat dilakukan dengan mengembalikan
CPEk )(
PCDk )(
3
nilai dari enkripsi, dimana cipherteks diproses dengan kunci hingga menghasilkan
plainteks.
Dalam perancangan sebuah kriptografi harus juga memenuhi sebuah sistem
kriptografi. Oleh karena itu, berikut ini merupakan aturan yang harus dipenuhi
oleh sebuah kriptosistem dengan definisi lima tuple [1].
1. P adalah himpunan plainteks,
2. C adalah himpunan cipherteks,
3. K adalah ruang kunci (keyspace),
4. E adalah himpunan fungsi enkripsi ,
5. D adalah himpunan fungsi dekripsi .
Teknik transposisi pada dasarnya membuat cipherteks dengan
menggantikan posisi objek-objek plainteks tanpa menggantikan objek plainteks
tersebut, jadi pada proses transposisi tidak diperlukan karakter lain. Pada metode
transposisi ini pembacaan matrik dilakukan dengan cara pembacaan kolom
perkolom sesuai dengan kunci yang digunakan [7]. Sehingga dapat dijelaskan
transposisi itu sendiri merubah urutan plainteks sesuai dengan ketentuan yang
dibuat tanpa merubah atau menambah karakter yang ada [9]. Contoh teknik
transposisi :
1. Plainteks : AYAH PERGI KE KANTOR
2. Cipherteks : HAYA IGREP EK ROTNAK
Proses transposisi sederhana dimana plainteks disusun ke arah kanan yang
kemudian dilakukan perubahan urutan setiap karakternya, hasil transposisi terlihat
pada susunan cipherteks. Nama lain teknik ini adalah permutasi, karena transpose
setiap huruf didalam teks sama dengan mempermutasikan karakter-karakter
tersebut [10]
Padding dapat diartikan sebagai bantalan atau lapisan, berfungsi sebagai
sisipan atau mengisi ruang kosong. Dalam penyimpanan, pengiriman atau
pemrosesan file disisipkan beberapa blok data untuk memenuhi ukuran minimum,
untuk memaksa bidang-bidang tertentu dari data kontrol atau data pengguna ke
posisi ukuran tertentu, atau untuk mencegah dari penduplikasian pola bit yang
memiliki arti kontrol tertentu [6].
Topologi merupakan konsep untuk menghubungkan beberapa atau banyak
komputer sekaligus menjadi suatu jaringan yang saling terhubung [3]. Topologi
jaringan pada perancangan yang akan dibangun dapat dilihat pada Gambar 2.
Gambar 1 Topologi jaringan[3]
Gambar 1 adalah topologi jaringan dimana semua komputer saling
terhubung melalui jaringan dan terdapat switch sebagai media penghubung [3].
4
Arsitektur jaringan Client – server merupakan model konektivitas pada
jaringan yang membedakan fungsi komputer sebagai client dan server. Arsitektur
ini menempatkan sebuah komputer sebagai server. Pada dasarnya, client adalah
konsumen layanan dan server penyedia layanan.
3. Metode Penelitian
Metode yang digunakan dalam pembuatan aplikasi terdapat lima tahap
yang akan dilakukan yaitu, (1) Pengumpulan Data, (2) Analisa Kebutuhan, (3)
Perancangan Modifikasi dan Pembuatan Program, (4) Evaluasi, (5) Penulisan
Laporan Hasil Penelitian.
Gambar 2 Tahap Penelitian
Tahapan penelitian pada Gambar 2 dapat dijelaskan sebagai berikut :
Tahap pertama : Pada tahap ini dilakukan pengumpulan data berupa literatur
terkait dengan proses enkripsi dan dekripsi data file menggunakan algoritma block
cipher yang dirancang dalam blok 64 bit dengan teknik transposisi. Tahap kedua :
tahap analisa kebutuhan yaitu, melakukan analisa mengenai kebutuhan apa saja
yang dibutuhkan dalam perancangan algoritma block cipher, dan analisis
bagaimana algoritma cipher blok diterapkan pada jaringan client – server. Tahap
ketiga : Pada tahap ini melakukan perancangan algoritma yang akan
diimplementasi dan membuat program berdasarkan kebutuhan sistem yang
dibangun agar sistem dapat terpenuhi sesuai kriteria. Tahap keempat : Evaluasi;
Tahap selanjutnya evaluasi yaitu menjalankan program serta analisis hasil
pengujian, apakah aplikasi dapat bekerja sesuai kriteria sistem yang dibangun
terkait proses enkripsi dan dekripsi data file. Tahap kelima : Penulisan Laporan;
Tahap akhir ini memaparkan seluruh proses program yang telah dijalankan, dan
akan ditulis pada laporan penelitian.
Adapun kriteria dalam penelitian yang dilakukan, meliputi : (1)
Implementasi aplikasi pengiriman data file berbasis client server, (2) Proses
enkripsi dekripsi data menggunakan rancangan algoritma block cipher, (3)
Inputan data file berupa, *.doc, *.docx, *.pdf, (4) Enkripsi dan dekripsi hanya
dilakukan pada karakter (teks), (5) Server hanya sebagai media penyimapan file
dan mengelola client (registrasi dan meneruskan pesan file).
5
Perancangan client – server yang dibangun juga memiliki desain dimana
melibatkan setiap proses yang dilakukan server terhadap client ataupun
sebaliknya. Desain perancangan sistem dapat dilihat pada Gambar 3.
Gambar 3 Desain Perancangan Sistem
Gambar 3 menunjukkan desain perancangan sistem, dimana client
(pengirim) memilih file lalu input melalui aplikasi client, kemudian file dikirim ke
server. Saat diserver file akan disimpan sementara, server akan mengirimkan atau
meneruskan pesan file ke client (penerima) yang sedang online. Apabila client
offline maka file akan disimpan diserver untuk sementara waktu hingga client
tujuan online dan merequest file.
Pada perancangan algoritma ini dilakukan dalam dua proses, yaitu proses
enkripsi dan dekripsi. Enkripsi merupakan proses dimana isi file asli diubah ke
bentuk karakter yang tidak beraturan atau simbol tetapi masih menggunakan
ASCII sebagai dasar karakter. Proses enkripsi dekripsi algoritma block cipher.
. Berdasarkan dari teknik transposisi umum diatas, perancangan yang akan
dilakukan menggunakan transposisi acak pada tiap bit perkarakternya, hal ini
bertujuan agar dapat memaksimalkan keacakkan bit.
Gambar 4 Proses Enkripsi algoritma block cipher Secara umum
Gambar 4 merupakan bagan umum proses enkripsi yang terdapat pada
aplikasi pengiriman data file. Tahapan proses enkripsi perancangan algoritma
block cipher secara umum dijelaskan, (1) Menyiapkan plainteks yang akan
dienkripsi, (2) Setiap putaran enkripsi plainteks terdapat urutan proses,
6
pengacakkan dengan transposisi, menghasilkan plainteks baru, XOR dengan key),
(3) Setiap putaran enkripsi pada key terdapat urutan proses masing-masing.
Proses plainteks dengan key dilakukan sebanyak 3 putaran untuk dapat
menghasilkan cipherteks. Sedangkan untuk dekripsi dapat dilakukan dengan
mengembalikan proses dari enkripsi.
Use case adalah rangkaian sekelompok yang saling terkait dan membentuk
sistem secara teratur yang dilakukan atau diawasi oleh sebuah actor. Lebih
jelasnya dapat dilihat di Gambar 4 [5].
Gambar 4 Use Case Diagram sistem Pengiriman File dan Enkripsi – Dekripsi pada client-server
Gambar 4 merupakan use case diagram sistem pengiriman file dan proses
enkripsi dekripsi. Dari sisi client jika mengirim file, langkah awal client login
terlebih dahulu, dengan begitu client telah menyatakan ke server bahwa sedang
online. Client menginput file setelah itu input key yang akan digunakan untuk
mengenkripsi file tersebut, kemudian menentukan client tujuan. Proses enkripsi
terjadi ketika client mengirim file.
Dari sisi client penerima. Client login, setelah login kemudian masuk
pemberitahuan pada pesan kotak masuk, client dapat memilih file yang kemudian
didekripsi menggunakan key yang sesuai dengan key dari pengirim.
Registrasi, pendaftaran client dilakukan pada form registrasi dengan
mengisikan nama pada User ID dan password. setelah selesai registrasi data akan
di kirim dan diproses ke server untuk di autentikasi perihal menejemen user. Jika
nama User ID yang dibuat sama dengan pendaftar lain yang sudah terdaftar maka
server akan melakukan penolakan secara otomatis, dengan begitu pendaftar baru
harus mengganti dengan nama yang berbeda.
Sequence diagram merupakan suatu diagram yang memperlihatkan atau
menampilkan interaksi-interaksi antar objek di dalam sistem yang disusun pada
sebuah urutan atau rangkaian waktu [5].
7
Gambar 5 Sequance Diagram sistem Client Pengirim
Gambar 5 menunjukkan diagram sequence sistem. Proses dimulai dari
client yang melakukan pengiriman. Client login, setelah masuk client melakukan
proses pengiriman dengan memilih file terlebih dahulu, kemudian masukkan
kunci dan tentukan client tujuan. Setelah itu file dienkripsi dan dikirim, hasil
enkripsi berupa cipherteks yang kemudian disimpan sementara di server.
Sedangkan dari sisi diagram sequence penerima. Client penerima login
terlebih dahulu yang kemudian server memberikan akses untuk online lalu client
mendapatkan pemberitahuan pesan dari server, pesan yang diterima dalam bentuk
cipherteks, untuk membukanya client harus memasukkan kunci yang sesuai dari
pengirim agar file dapat didekripsi, jika kunci dinyatakan valid file dapat
didekripsi dan kembali menjadi plainteks. Alur sequence diagram client penerima
dapat dilihat pada Gambar 6.
Gambar 6 Sequance Diagram sistem Client Penerima
8
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem
yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat
menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi [5].
Alur activity diagram dapat dilihat pada Gambar 7.
Gambar 7 Activity Diagram sistem
Gambar 7 menunjukkan activity diagram Sistem. Cara kerja sistem
dimulai dari client yang melakukan pengiriman file yang telah terenkripsi dan
menjadi cipherteks. Kemudian server menampung file yang dikirim dan
mengecek client tujuan. Saat client tujuan online dapat langsung menyimpan file
yang mana file tersebut direquest dari server. Ketika file telah dikirimkan oleh
server, selanjutnya proses dekripsi dilakukan untuk merubah cipherteks menjadi
file semula oleh client penerima. Tetapi apabila client penerima offline maka file
akan tetap tersimpan di server dalam bentuk cipherteks.
4. Hasil dan Pembahasan
Pada tahap ini membahas perancangan algoritma block cipher secara
keseluruhan meliputi putaran dan proses pada plainteks. Key juga dilakukan
tahapan proses setiap putarannya, sama hal dengan proses plainteks kunci yang
digunakan mengikuti ketetapan yang dibuat untuk di XOR dengan plainteks.
Proses dan putaran algoritma dapat dilihat pada bagan Gambar 8.
9
Gambar 8 Bagan Alur Enkripsi
Berdasarkan Gambar 11 plainteks diubah ke bentuk bit dan digeser kekiri
3 kali, lalu masukkan kedalam kolom atau blok 1 dilakukan teknik transposisi,
yang kemudian menghasilkan P1. Pada key juga dilakukan proses rubah ke bit,
lalu masukkan kedalam matriks 8x8 dan diacak dengan pergeseran rotasi, hasil
dari acak tersebut menghasilkan K1. Setelah mendapatkan P1 dengan K1 kemudian
di XOR, hasil XOR menghasilkan P2. P2 kemudian digeser kekiri 6 kali, lalu
masukkan ke kolom atau blok 2 dan dilakukan proses trasnposisi. Begitu juga K1
dimasukkan ke dalam matriks 8x8 lalu diacak dengan pergeseran rotasi dan
menghasilkan K2. Kemudian XOR P2 dengan K2, dari XOR tersebut menghasilkan
P3, selanjutnya P3 digeser kekiri 2 kali, dan masukkan ke kolom 3 lalu diacak. K2
dimasukkan ke bentuk matriks lagi, lalu acak menghasilkan K3. Setelah itu XOR
P3 dan K3, hasil XOR inilah yang menjadi cipherteks, untuk setiap putaran
memiliki aturan transposisi yang berbeda-beda. Proses alur dekripsi merupakan
kebalikan dari alur enkripsi yaitu dari cipherteks diproses hingga menghasilkan
plainteks.
Proses pertama dilakukan pergeseran dan transposisi terhadap plainteks.
Karakter plainteks berupa “JARINGAN”, lalu ubah setiap karakter ke bentuk bit.
Semisal P adalah plainteks sedangkan d adalah bit tiap karakter kunci, sehingga
dapat dituliskan :
nPPPPP ...,, 321 (3)
83211 ...,, bbbbP
16111092 ...,, bbbbP
10
241918173 ...,, bbbbP
.
.
.
nnnnn bbbbP 8586878 ...,,
Plainteks “JARINGAN” dikonversi ke dalam bentuk biner :
J = 01001010, 876543211 ,,,,,,, bbbbbbbbP
A = 01000001, 1615141312111092 ,,,,,,, bbbbbbbbP
R = 01010010, 24232221201918173 ,,,,,,, bbbbbbbbP
I = 01001001, 32313029282726254 ,,,,,,, bbbbbbbbP
N = 01001101, 40393837363534335 ,,,,,,, bbbbbbbbP
G = 01000111, 48474645444342416 ,,,,,,, bbbbbbbbP
A = 01000001, 56555453525150497 ,,,,,,, bbbbbbbbP
N = 01001101, 64636261605958578 ,,,,,,, bbbbbbbbP
Setelah merubah karakter “JARINGAN” ke dalam bentuk bit, dilakukan
proses pergeseran bit ke kiri 3 kali.
J = 01010010, ,,,,,,,, 321876541 bbbbbbbbP
A = 00001010, 1110916151413122 ,,,,,,, bbbbbbbbP
R = 10010010, 19181724232221203 ,,,,,,, bbbbbbbbP
I = 01001001, 27262532313029284 ,,,,,,, bbbbbbbbP
N = 01110010, 35343340393837365 ,,,,,,, bbbbbbbbP
G = 00111010, 43424148474645446 ,,,,,,, bbbbbbbbP
A = 00001010, 51504956555453527 ,,,,,,, bbbbbbbbP
N = 01110010, 59585764636261608 ,,,,,,, bbbbbbbbP
Hasil pergeseran kemudian masukkan ke kolom atau blok, dan dilakukan
proses transposisi.
Gambar 9 Ketentuan Transposisi Blok 3
b1 ~ b9, b2 ~ b13, b3 ~ b1, b4 ~ b16, b5 ~ b8, b6 ~ b18, b7 ~ b11, b8 ~ b24, b9 ~ b4,
b10 ~ b14, b11 ~ b2, b12 ~ b7, b13 ~ b19, b14 ~ b15, b15 ~ b3, b16 ~ b12, b17 ~ b5,
b18 ~ b20, b19 ~ b6, b20 ~ b10, b21 ~ b17, b22 ~ b29, b23 ~ b26, b24 ~ b21, b25 ~ b23,
b26 ~ b39, b27 ~ b34, b28 ~ b41, b29 ~ b27, b30 ~ b28, b31 ~ b22, b32 ~ b31, b33 ~ b33,
b34 ~ b43, b35 ~ b38, b36 ~ b25, b37 ~ b47, b38 ~ b50, b39 ~ b30, b40 ~ b32, b41 ~ b44,
b42 ~ b37, b43 ~ b53, b44 ~ b48, b45 ~ b36, b46 ~ b40, b47 ~ b42, b48 ~ b35, b49 ~ b46,
b50 ~ b57, b51 ~ b45, b52 ~ b49, b53 ~ b61, b54 ~ b55, b55 ~ b54, b56 ~ b59, b57 ~ b63,
b58 ~ b62, b59 ~ b52, b60 ~ b58, b61 ~ b64, b62 ~ b60, b63 ~ b51, b64 ~ b56.
11
Gambar 10 memperlihatkan tetapan transposisi plainteks untuk pola acak
dari kolom 3 ke acak 3 yang diproses dalam blok 64 bit. Untuk setiap putaran pola
pengacakkan transposisi dan pergeseran dilakukan secara berbeda.
Sedangkan proses kunci yang pertama dilakukan sama halnya dengan
plainteks, merubah karakter kunci ke dalam bentuk bit. Kemudian dilakukan
proses pemasukkan dan pengambilan bit key ke kolom matriks dari kiri ke kanan,
dari baris pertama sampai baris terakhir yang ditunjukkan pada arah panah. Alur
masuk dan ambil bit key pada matriks dapat dilihat pada Gambar 10.
Gambar 10 Alur Masuk dan Ambil Bit Key
Penerapan masuk bit kolom dimulai dari d1 sampai pada kolom d8 dan
dilanjutkan berikutnya yang dimulai dari baris kedua d9 sampai d16, hal yang
sama dilakukan sampai kolom d64. Penerapan masuk dapat dilihat pada gambar
11.
Gambar 11 Penerapan Masuk dan Ambil Bit Key
Berikutnya pergeseran rotasi bit pada key dari kiri ke kanan dimulai dari
simbol M ditunjukkan pada arah panah baris pertama, kemudian pergeseran rotasi
dari kanan ke kiri ditunjukkan arah panah baris kedua, rotasi tersebut dilakukan
hingga baris ke 8 dan berakhir di simbol A, dapat dilihat pada Gambar 12. Setelah
itu dilakukan pergeseran rotasi dari atas kebawah yang dimulai dari simbol M
arah panah kolom pertama, dan pergeseran rotasi dari bawah ke atas ditunjukkan
pada arah panah kolom kedua, rotasi dilakukan hingga kolom ke 8 dan berakhir di
simbol A, untuk lebih jelas dapat dilihat pada Gambar 13.
12
Gambar 12 Pergeseran Rotasi Kanan Kiri Gambar 13 Pergeseran Rotasi Atas Bawah
Banyaknya pergeseran rotasi Gambar 12 dan Gambar 13 disesuaikan pada
tiap putarannya sehingga menghasilkan key baru, yang nantinya akan di XOR
dengan plainteks dan menghasilkan cipherteks. Maka hasil pergeseran rotasi
tersebut dapat dilihat pada Gambar 14.
Gambar 14 Hasil Pergeseran Rotasi key
Pada perancangan algoritma cipher block juga dibutuhkan padding key,
untuk padding sendiri memerlukan beberapa tahap yang harus dilakukan agar
dapat dilaksanakan. Tahapan dan penjelasan dapat dilihat pada Gambar 15.
Gambar 15 Skema Proses padding pada Key
Pada Gambar 15 menunjukkan proses penambahan karakter pada key
(padding). Proses padding dapat dilakukan apabila panjang karakter key yang
diinput tidak sama panjang dengan jumlah karakter plainteks yang ada. Proses ini
13
bertujuan agar key bisa sama panjang dengan plainteks. Berikut penjelasan alur
kerja padding :
1. Plainteks (P) yang telah disiapkan kemudian dibaca panjang karakternya.
nPPPPP ...,, 321 (4)
2. Karakter key (K) yang diinput kemudian dilihat nilai decimal dalam ASCII dan
disesuaikan dengan masing-masing inputan karakternya.
decASCIIKK n (5)
3. Proses penambahan karakter ASCII pada key dilakukan bertahap, memenuhi
setengah dari total ASCII terlebih dahulu, kemudian memenuhi setengah
berikutnya secara bergilir pada karakter berikutnya sesuai urutan inputan.
Untuk tahap penambahan dibuat berurutan dengan melewati 2 lompatan.
Banyak karakter kunci yang diinput, tiap karakter dilihat nilai desimalnya
dalam ASCII, kemudian masing2 karakter ditambah dengan panjang kunci
yang diinput.
KdecASCIIKG n
}255,...2,1,0|)n×2(;{)n×2(...,),2×2(),1×2(, GGGGGpadd jika
nPK ' maka dilanjutkan dengan 1nK dimana )(' KpaddK (6)
Tahap berikut merupakan desain tampilan login, dimana login merupakan
proses pintu masuk bagi pengguna atau client untuk dapat mengakses suatu
layanan ke server. Desain login dapat dilihat pada Gambar 16.
Gambar 16 Tampilan Login Client
Pada login Gambar 16, terdapat textboxusername dan textboxpassword
untuk memasukkan nama pengguna dan kata sandi yang telah didaftarkan.
Kemudian terdapat buttonmasuk untuk masuk ke aplikasi client dan buttonbatal
jika ingin keluar dari form login, dan textlinkdaftarbaru untuk membuat akun baru.
Tampilan daftar pengguna baru dapat dilihat pada Gambar 17.
Gambar 17 Tampilan Daftar PenggunaBaru
14
Gambar 17 merupakan tampilan daftar penguna baru dimana terdapat
textboxUserId untuk memasukan nama yang ingin didaftar, textboxPassword
untuk mengisi kata sandi, textboxRe-Password untuk mengisikan kembali kata
sandi sebelumnya, buttonDaftar untuk mendaftarkan Id baru ke server dan
buttonBatal a tidak jadi medaftar.
Berikutnya tampilan aplikasi client, setelah pengguna berhasil login maka
akan masuk ke aplikasi client. Lebih jelasnya dapat dilihat pada Gambar 18.
Gambar 18 Tampilan Aplikasi Client Kotak Masuk
Tampilan aplikasi client pada Gambar 19 terdapat textboxServer sebagai
alamat ip server dan textboxUser sebagai penanda Id pengguna, juga terdapat tab
kotak masuk untuk menampung pesan yang masuk ke client, dimana tabel
memiliki atribut (pengirim, nama file, tipe, ukuran, waktu dikirim), di list kotak
masuk terdapat buttonhapus dan buttondownload dan juga dilengkapi
buttonPerbaharui untuk menampilkan pesan yang akan masuk.
Sedangkan tampilan untuk tab kirim file lebih jelasnya dapat dilihat pada
Gambar 19.
Gambar 19 Tampilan Aplikasi Client Kirim File
Gambar 19 memperlihatkan tampilan aplikasi client kirim, terdapat lokasi
file untuk mengambil atau memilih file dari drive penyimpanan. Kemudian
textboxUkuranFile untuk menampilkan ukuran file yang telah dipilih,
15
textboxKunci untuk mengisi kunci yang akan digunakan untuk enkripsi file,
buttonPenerima untuk memilih client atau pengguna tujuan, dalam kotak
penerima terdapat listtabel penerima dan status client, button simbol “+” untuk
menambahkan penerima ke textboxPenerima dan buttonKirim untuk mengirimkan
sekaligus mengenkripsi file.
Database yang ada pada server berfungsi sebagai tempat penyimpanan file
dari client pengirim untuk diteruskan ke client penerima, data file yang tersimpan
dalam database dapat dilihat pada Gambar 20.
Gambar 20 Tampilan Database Server
File yang diujikan berupa file abstrak bertipe .*txt dengan ukuran sebelum
dienkripsi sebesar 2.05 KB. Isi file abstrak dapat dilihat pada Gambar 21.
Gambar 21 Pengujian File.txt
Pada Gambar 22 dapat dilihat hasil enkripsinya tidak dapat terbaca seperti
pada pesan semula namun tetap terlihat karakter ASCII. Kemudian dekripsi
terhadap file *.txt adalah kebalikan dari proses enkripsi yaitu merubah dari
cipherteks ke bentuk plainteks.
Gambar 22 Hasil Enkripsi.File .txt
Kriptografi dapat dibuktikan sebagai sebuah sistem dengan memenuhi 5
tuple P, C, K, E, D. Ditunjukkan bahwa perancangan ini memenuhi kelima
kondisi tersebut. P adalah himpunan berhingga dari plainteks. C adalah himpunan
berhingga dari cipherteks yang dihasilkan berupa karakter. K adalah himpunan
16
berhingga dari kunci yang menggunakan total 256 karakter pada ASCII. Enkripsi
E dan D Dekripsi dimana setiap ek : P→C dan dk : C → P adalah fungsi
sedemikian hingga dk(ek(x)) = x, untuk setiap plainteks x∊P. Pembahasan
sebelumnya telah membahas proses enkripsi dan dekripsi, sehingga telah
memenuhi tuple E dan D. Karena telah memenuhi kelima kondisi maka algoritma
block cipher mengunakan teknik transposisi merupakan sebuah sistem kriptografi.
Pada tahap berikutnya akan membahas grafik pengujian terhadap memory
dan waktu untuk proses enkripsi pengujian dilakukan pada aplikasi client – server.
pengujian dilakukan dengan isi konten file yang sama tetapi format berbeda yaitu,
*.doc, *.docx, *.txt, *.pdf, dan untuk setiap file dienkripsi dengan kunci yang
sama “FAKULTAS”
Pada Grafik 1 dapat dilihat bahwa untuk sumbu Y merupakan satuan
waktu dalam millisecond (ms) dan sumbu X ukuran tiap file dalam satuan KB.
Abstrak.txt dengan ukuran 2.05 KB memiliki waktu proses sebesar 35388.2920
(ms), Abstrak.docx dengan ukuran 13.5 KB memiliki waktu proses sebesar
202885.7270 (ms), Abstrak.doc dengan ukuran 31.0 KB memiliki waktu proses
sebesar 328529.8380 (ms) dan Abstrak.pdf dengan ukuran 86.4 KB memiliki
waktu proses sebesar 857058.0480 (ms),dari hasil tersebut dapat disimpulkan
yakni proses operasi untuk setiap file selalu berbeda tergantung besaran ukuran
dari file yang diujikan, semakin besar ukuran yang dimiliki maka semakin lama
proses yang dibutuhkan terhadap waktu, tetapi untuk proses operasi dalam byte
semakin besar ukuran file maka semakin kecil waktu yang dihasilkan.
Grafik 1 Pengujian Terhadap Waktu
Pada Grafik 2 dapat dijelaskan bahwa warna biru menunjukkan besaran
memori untuk file asli, sedangkan untuk warna merah merupakan besaran memori
untuk file hasil enkripsi, sumbu Y merupakan besaran memori dalam bit dan
sumbu X merupakan ukuran file yang diujikan dengan format yang berbeda,
sehingga Grafik 2 dapat diambil kesimpulan yaitu rata – rata dari selisih file
sebelum dan sesudah diujikan karena proses padding berdasarkan file yang
diujikan yaitu sebesar 0.037325%, maka selisih antara file sebelum dan sesudah
tidak signifikan terhadap ukuran file yang semakin besar.
0.0000
100000.0000
200000.0000
300000.0000
400000.0000
500000.0000
600000.0000
700000.0000
800000.0000
900000.0000
2.05 KB 13.5 KB 31.0 KB 86.4 KB
Milliseco
nd
(ms)
Abstrak.doc
Abstrak.docx
Abstrak.txt
Abstrak.pdf
35388.2920
202885.7270
328529.8380
857058.0480
17
Grafik 2 Pengujian Terhadap Memori
Beta testing dilakukan dengan membagi daftar pertanyaan kepada 30
responden dan daftar pertanyaan yang ada kemudian diisi bersamaan dengan
pengujian aplikasi secara langsung. Hasil pengujian dapat dilihat pada Tabel 1.
Tabel 1 Hasil Data Daftar Pertanyaan
No. Pertanyaan
Jawaban
Tidak
Setuju Setuju
Sangat
Setuju
1 Aplikasi dapat berjalan pada sistem operasi
windows - 17 13
2 Aplikasi dapat terkoneksi dengan baik - 17 13
3 Aplikasi dapat mengirim pesan ke client
tujuan - 17 13
4 Aplikasi dapat menerima pesan dari client
pengirim - 17 13
5 Aplikasi dapat melakukan proses enkripsi dan
dekripsi - 16 14
6 Aplikasi dapat menambah pengguna atau
client baru - 16 14
7
Aplikasi mudah digunakan dan memiliki
tampilan yang menarik
5
18
7
8 Aplikasi membantu dalam mengamankan isi
file 1 11 18
Berdasarkan hasil dari daftar pertanyaan untuk pengujian kepada
pelanggan pada Tabel 1, dapat disimpulkan bahwa: aplikasi sudah berjalan pada
sistem operasi windows karena 56% responden setuju dan 43% lainnya sangat
setuju, aplikasi terkoneksi dengan baik karena 56% responden setuju dan 43%
lainnya sangat setuju, aplikasi dapat mengirim pesan ke client tujuan karena 56%
2103
13914
31744
88521
2104
13928
31744
88522
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000
2.05 KB 13.5 KB 31.0 KB 86.4 KB
Sebelum
Sesudah
0.047551 %
0.100618 %
0.000000%
0.001130%
18
responden setuju kemudian 43% lainnya sangat setuju, aplikasi dapat menerima
pesan dari client pengirim karena 56% responden setuju dan 43% lainnya sangat
setuju, aplikasi dapat melakukan proses enkripsi dan dekripsi karena 53%
responden setuju dan 46% lainnya sangat setuju, aplikasi dapat menambah
pengguna atau client baru karena 53% responden setuju dan 46% lainnya sangat
setuju, aplikasi mudah digunakan dan memiliki tampilan yang menarik karena
60% responden setuju, aplikasi membantu dalam mengamankan isi file karena
60% responden sangat setuju.
5. Kesimpulan
Rancangan algoritma dengan menggunakan teknik transposisi dapat
diimplementasikan pada jaringan client – server dengan memenuhi 5 tuple.
Modifikasi padding yang diterapkan pada algoritma block cipher dengan
menggunakan total ASCII sebagai sisipan pada kunci untuk menyamakan panjang
kunci dengan cipherteks telah mampu menghasilkan varian kunci yang maksimal
digunakan dalam proses enkripsi-dekripsi file berukuran besar.
Saran pengembangan yang dapat diberikan untuk penelitian lebih lanjut
sebagai berikut. Aplikasi dapat dikembangkan tidak hanya mengenkripsi-dekripsi
file bertipe *.txt, *.doc, *.docx, *.pdf tetapi juga tipe file dokumen yang lainnya.
Rancangan algoritma yang menerapkan prinsip OTP menjadi kekurangan
tersendiri, sehingga untuk penelitian selanjutnya dapat diharapkan prisnsip yang
digunakan berbeda agar efisiensi waktu dapat lebih baik.
6. Daftar Pustaka
[1] Munir, R. 2006. Kriptografi,Bandung: Informatika.
[2] Sabriyanto, & Virgono, A, 2008. Analisis Perbandingan Performansi
Algoritma Camellia dan AES (Advanced Encryption Standard) pada Block
Cipher. Bandung : Institut Teknologi Bandung.
[3] Andreanus, Dody. 2011. Sistem Pengamanan Data Menggunakan Metode
MD5 dan Private Key pada Aplikasi berbasis Client-server (studi kasus :
KSP Buah Hati Bawen). Salatiga : Universitas Kristen Satya Wacana.
[4] Arie Eko T. 2014. Modifikasi Kriptografi One Time Pad (OTP)
Menggunakan Padding Dinamis dalam Pengamanan Data File. Salatiga :
Universitas Kristen Satya Wacana.
[5] Nugroho Adi. 2005. Rational Rose untuk Pemodelan Berorientasi Objek,
Bandung : Informatika.
[6] Bernadette S. 2006. Webster's New World Hacker Dictionary. Santa
Barbara, California:ABC-CLIO.
[7] Danang Indra S. 2009. Implementasi Teknik Kriptografi simetrik dengan
Metode Permutasi Transposisi pada Data Citra Digital. Salatiga :
Universitas Kristen Satya Wacana.
19
[8] N. Nagaraj, “One Time Pad as a nonlinear dynamical system,”
Communications in Nonlinear Science and Numerical Simulation, vol. 17,
no. 11, pp. 4029-4036, Nov. 2012.
[9] Ir.Yusuf Kurniawan, MT. 2004, Kriptografi Keamanan Internet dan
Jaringan Komunikasi,Bandung: Informatika.
[10] Maureen L:inda. 2010. Metode Enkripsi baru Triple Transposition
Vigènere Cipher. Bandung : Institut Teknologi Bandung.