Perbandingan Algoritma 3DES dan Rinjdael Dalam Perancangan Aplikasi Keamanan Data

BAB 2
LANDASAN TEORI

2.1. Kriptografi
Kriptografi merupakan langkah- langkah logis bagaimana menyembunyikan pesan
dari orang-orang yang tidak berhak atas pesan tersebut dengan melakukan
pembangkitan kunci, enkripsi dan dekripsi. Kriptografi bertujuan untuk memberi
layanan keamanan atau yang juga dinamakan sebagai aspek-aspek keamanan
(Mustafa, 2010).
Secara bahasa kriptografi berasal dari kata crypto yang berarti rahasia dan
graphy yang berarti tulisan. Jadi kriptografi dapat diartikan sebagai tulisan rahasia.
Secara istilah dapat didefinisikan sebagai studi tentang teknik-teknik matematika yang
berhubungan dengan keamanan informasi. Teknik kriptografi terdiri dari simetri dan
asimetri. Teknik ini digunakan untuk mengamankan aplikasi atau kemanan informasi
sehingga dapat menjaga kerahasiaan, integritas data, autentikasi data dan nonrepudiation kriptografi diperlukan karena pada dasarnya informasi sangat peting bagi
segala aspek, tuntutan kemanan informasi berubah dari waktu ke waktu. Perubahan
tuntutan ini terjadi karena transformasi atau penggunaan perlengkapan kebutuhan
utama untuk pertukaran informasi, dari mulai cara tradisional atau fisik yang
membutuhkan

mekansime


pengarsipan

atau

administrasi

secara

fisik

dan

membutuhkan ruang yang lebih besar, menggunakan otomatisasi komputer personal,
sampai transfer informasi melalui penggunaan jaringan komputer, baik intranet
maupun internet yang sekarang menjadi tren dan kebutuhan.
Kriptografi secara umum merupakan ilmu dan seni untuk menjaga kerahasian
berita (Bruce Scheiner–Applied Cryptography). Kriptografi juga dapat diartikan
sebagai ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan
aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data,

serta otentifikasi data. Namun, pada kriptografi tidak semua aspek keamanan
informasi akan ditangani. Kriptologi merupakan ilmu gabungan antara kriptografi dan
analisis sandi. Kriptografi berusaha mengamankan data agar hanya yang disetujui
yang dapat membaca pesan atau enkripsi. Kriptografi juga dapat memberi keyakinan

Universitas Sumatera Utara

7

bahwa pengirimnya merupakan orang yang sudah kita percaya atau otentifikasi
dan berfungsi juga agar pengirim tidak dapat mengingkari telah mengirim pesan (non
repudiation). Sebaliknya, analisis sandi berusaha memecahkan algoritma kriptografi.
Tanpa analisis sandi, sangat sulit bagi kita untuk mengukur kekuatan algoritma
kriptografi. Kebanyakan peneliti di tanah air hanya menitikberatkan penelitiannya
pada bagaimana membuat algoritma kriptografi yang dianggap aman, tanpa sedikitpun
memberikan bukti bahwa algoritmanya aman, setidaknya terhadap serangan atau
analisis sandi tertentu. Seringkali algoritma dianggap aman hanya berdasar
kompleksitasnya. Oleh karena itu, kami mencoba melakukan penelitian bagaimana
membuktikan keamanan algoritma enkripsi, khususnya terhadap Analisis Sandi
Diferensial (ASD). ASD sendiri dapat diterapkan untuk memeriksa keamanan stream

cipher, block cipher, dan fungsi hash.
AES menggunakan struktur yang berbeda. Penggunaan struktur yang sama ini
dimaksudkan agar lebih efisien jika diimplementasikan pada perangkat keras.
Penggunaan ulang struktur pengacakan untuk ekspansi kunci juga bertujuan agar
setiap bit kunci utama memiliki pengaruh yang sama ke setiap ronde, karena memiliki
difusi yang sangat besar. Sehingga ekspansi kunci pada AE1 memiliki difusi yang jauh
lebih cepat daripada AES. Hal ini bertujuan untuk menggagalkan serangan related key
attack. Akibat lanjutnya adalah, setiap perubahan satu bit kunci utama akan
mengakibatkan perubahan sejumlah besar bit ciphertext. Dalam makalah ini,
penelitian ditekankan pada bagaimana cara mengukur kekuatan AE1 terhadap analisis
sandi diferensial, dan perbandingannya dengan DES serta AES. Kriptografi dapat
memenuhi kebutuhan umum suatu transaksi yaitu, kerahasiaan (confidentiality),
keutuhan (integrity), jaminan atas identitas dan keabsahan (authenticity), tidak bisa
disangkal (non-repudiation). Mekanisme kriptografi dibagi menjadi dua bagian yaitu :
a. Kriptografi Sederhana

plaintext

ciphertext
Enkripsi


plaintext
Dekripsi

Gambar 2.1 Mekanisme kriptografi sederhana

Universitas Sumatera Utara

8

b. Kriptografi Berbasis Kunci

kunci
plaintext

kunci
ciphertext

plaintext


Enkripsi

Dekripsi

Gambar 2.2 Mekanisme kriptografi berbasis kunci
Suatu data yang tidak disandikan disebut plaintext atau cleartext. Sedangkan
data yang telah tersandikan disebut ciphertext. Proses yang dilakukan untuk
mengubah

plaintext

menjadi ciphertext

disebut

enkripsi

(encryption) atau

encipherment. Sedangkan proses untuk mengubah ciphertext kembali ke plaintext

disebut dekripsi (decryption) atau decipherment. Dalam kriptografi diperlukan
parameter yang digunakan untuk proses konversi data yaitu

suatu set kunci.

Berdasarkan jenis kunci yang digunakan dalam proses enkripsi dan dekripsi,
kriptografi dapat dibedakan menjadi dua jenis, yaitu kriptografi simetrik dan
kriptografi asimetrik. Perbedaan utama di antara keduanya terletak pada sama dan
tidaknya kunci yang digunakan dalam proses enkripsi dengan kunci yang digunakan
pada proses dekripsi. Berdasarkan kunci yang dipakai, algoritma kriptografi dapat
dibedakan atas dua jenis yaitu algoritma simetrik (symmetric) dan asimetrik
(asymmetric) :

2.1.1 Proses Enkripsi Menggunakan Algoritma AES
Proses enkripsi pada algoritma. AES terdiri dari 4 jenis transformasi bytes, yaitu
SubBytes, ShiftRows, Mixcolumns dan AddRoundKey. Pada awal proses enkripsi, input
yang telah dikopikan ke dalam state akan mengalami transformasi byte AddRoundKey.
Setelah itu, state akan mengalami transformasi SubBytes, ShiftRows, MixColumns dan
AddRoundKey secara berulang-ulang sebanyak Nr. Proses ini dalam algoritma AES
disebut sebagai round function. Round yang terakhir agak berbeda dengan roundround sebelumnya dimana pada round terakhir, state tidak mengalami transformasi

MixColumns (Sudrajat, 2009).

Universitas Sumatera Utara

9

02
01

01

03

03 01 01

02 03 01
01 02 03

01 01 02


Gambar 2.3 Diagram Alir Proses Enkripsi Metode Rijndael (AES 128)
(sumber : Sudrajat, 2009)
2.1.2 Proses Dekripsi Menggunakan Algoritma AES Atau Rinjdael
Transformasi cipher dapat dibalikkan dan diimplementasikan dalam arah yang
berlawanan untuk menghasilkan inverse cipher yang mudah dipahami untuk algoritma
AES. Transformasi byte yang digunakan pada invers cipher adalah InvShiftRows,
InvSubBytes, InvMixColumns dan AddRoundKey (Sudrajat, 2009).

Universitas Sumatera Utara

10

 0E
 09

0D

 0B

0B 0D 09 

0 E 0B 0D 

09 0 E 0 B 

0D 09 0 E 

Gambar 2.4 Diagram Alir Proses Dekripsi Metode Rijndael (AES 128)
(sumber : Sudrajat, 2009)
2.2

Data

Data merupakan sekumpulan informasi yang diperlukan untuk pengambilan
kesimpulan. Secara umum data dapat diartikan dalam beberapa pengertian
diantaranya, data adalah fakta berupa angka, karakter, simbol, gambar, tanda-tanda,
isyarat, tulisan, suara, bunyi yang merepresentasikan keadaan sebenarnya yang
selanjutnya digunakan sebagai masukan suatu sistem informasi (Saharia, 2013).
Data adalah deskripsi dari sesuatu dan kejadian yang dihadapi (data is the
description of things and events that we face). Data adalah kenyataan yang
menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Data adalah bahan yang

akan diolah atau diproses berupa angka-angka, huruf-huruf, simbol-simbol, kata-kata
yang akan menunjukkan situasi dan lain-lain yang berdiri sendiri. Dalam bahasa
sehari-hari data adalah fakta tersurat atau dalam bentuk catatan atau tulisan tentang
suatu obyek. Dalam dunia komputer data adalah segala sesuatu yang dapat disimpan
dalam memori menurut format tertentu.
Data adalah fakta yang sudah ditulis dalam bentuk catatan atau direkam ke
dalam berbagai bentuk media. Data merupakan komponen dasar dari informasi yang
akan diproses lebih lanjut untuk menghasilkan informasi. Contohnya saja setiap

Universitas Sumatera Utara

11

perusahaan memiliki banyak sekali data untuk diolah menjadi suatu informasi yang
penting untuk kemajuan perusahaan itu, misalnya data dalam format *.doc. Data
tersebut bisa didapatkan dari berbagai sumber, diantaranya adalah data yang diterima
oleh komputer dari suatu jaringan, PDA, sistem komputer standar, alat konsumen
seperti flashdisk, disket dan lain-lain. Tetapi jika distrukturkan maka sumber data
tersebut bisa dibagi dalam empat kategori sumber data utama yaitu file, sistem operasi,
network traffic dan berbagai aplikasi lainnya


2.2.1 File (Berkas)
Berkas adalah kumpulan informasi berkait yang diberi nama dan direkam pada
penyimpanan sekunder. Dari sudut pandang pengguna, berkas merupakan bagian
terkecil dari penyimpanan logis, artinya data tidak dapat ditulis ke penyimpanan
sekunder kecuali jika berada di dalam berkas. Biasanya berkas mempresentasikan
program dan data. Data dari berkas dapat bersifat numerik, alfabetik, alfanumerik
ataupun biner (Dwi, Hartanto, Anggit, 2011).
Format berkas juga biasa bebas, misalnya berkas teks atau dapat juga diformat
pasti. Secara umum berkas adalah urutan bit, byte, baris atau catatan yang
didefinisikan oleh pembuat berkas dan pengguna. Informasi dalam berkas ditentukan
oleh pembuatnya. Ada banyak bergam jenis informasi yang dapat disimpan dalam
berkas. Hal ini disebabkan oleh struktur tertentu yang dimiliki oleh berkas, sesuai
dengan jenisnya masing-masing.

2.2.2 Keamanan Data
Keamanan data merupakan hal yang sangat penting dalam menjaga kerahasiaan
informasi, terutama yang berisi informasi sensitif yang hanya boleh diketahui isinya
oleh pihak tertentu, sehingga perlu dilakukan penyandian data supaya beberapa pihak
yang tidak memiliki kewenangan tidak akan dapat membuka informasi yang dikirim
(Fauziah, 2014).
Salah satu cara yang digunakan untuk pengamanan data adalah menggunakan
sistem kriptografi yaitu dengan menyediakan isi informasi (plaintext) menjadi isi yang
tidak dipahami melalui proses enkripsi (encipher) dan untuk memperoleh kembali

Universitas Sumatera Utara

12

informasi yang asli, dilakukan proses deskripsi (decipher), dengan menggunakan
kunci yang benar.

2.3. PDF (Portable Document Format)
PDF adalah sebuah format dokumen yang memungkinkan memuat di dalamnya text,
gambar, grafik. PDF merupakan singkatan dari Portable Document Format, PDF
pertama kali dibuat oleh perusahaan Adobe System pada tahun 1993 sekaligus pemilik
hak paten PDF tersebut (Abdul, 2013).
PDF pertama kali dibuat dimaksudkan untuk mempermudah pertukaran
dokumen, keunggulan dari dokumen yang dibuat dengan format PDF adalah dia tidak
bisa diubah secara langsung oleh si penerima dokumen tidak seperti file dokumen
dengan format .doc, .txt atau yang lainnya. Namun belakangan file dokumen yang
dibuat dengan format PDF bisa diubah isinya dengan menggunakan bantuan software
PDF editor yang sudah banyak beredar.

2.4. Algoritma Rinjdael
Algoritma Rijndael dibaca Rhinedoll adalah algoritma yang telah dipilih oleh National
Institute of Standards and Technology (NIST) sebagai calon Advanced Encryption
Standard (AES). Algoritma Rijndael dipilih dari daftar lima finalis, yang dipilih lebih
dari 15 pengaju. Algoritma Rijndael akan mulai menggantikan data Encryption
Standard (DES) dan kemudian Triple DES selama beberapa tahun ke depan dalam
banyak aplikasi kriptografi. Algoritma ini dirancang oleh dua ahli kriptologi Belgia
yaitu Vincent Rijmen dan Joan Daemen.
Garis besar algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci
128-bit adalah sebagai berikut atau di luar proses pembangkitan round key:
1.

AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key.
Tahap ini disebut juga initial round.

2.

Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah:
a. SubBytes: substitusi byte dengan menggunakan table substitusi (Sbox).
b. ShiftRows: pergeseran baris-baris array state secara wrapping.
c. MixColumns: mengacak data di masing-masing kolom array state.
d. AddRoundKey: melakukan XOR antara state sekarang dengan round key.

Universitas Sumatera Utara

13

3.

Final round: proses untuk putaran terakhir:
a. SubBytes
b. ShiftRows
c. AddRoundKey Garis besar algoritma enkripsi.

Algoritma Rijndael termasuk dalam jenis algoritma kriptografi yang sifatnya
simetri dan cipher block. Dengan demikian algoritma ini mempergunakan kunci yang
sama saat enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan
jumlah bit tertentu. Rijndael mendukung berbagai variasi ukuran blok dan kunci yang
akan digunakan. Namun Rijndael mempunyai ukuran blok dan kunci yang tetap
sebesar 128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan
jumlah proses yang harus dilalui untuk proses enkripsi dan dekripsi (Surian, 2009).
Algoritma Rinjdael adalah proses mengenkripsi dan mendekripsi blok data
sepanjang 128 bit dengan panjang kunci 128 bit, 192 bit atau 256 bit. Proses enkripsi
pada algoritma Rinjdael terdiri dari 4 jenis transformasi bytes, yaitu SubBytes,
ShiftRows, Mixcolumns dan AddRoundKey. Pada algoritma Rinjdael, jumlah blok
input, blok output, dan stateadalah 128 bit. Dengan besar data 128 bit, berarti Nb= 4
yang menunjukkan panjang data tiap baris adalah 4 byte (Nur, 2012).
Dengan blok input atau blok data sebesar 128 bit, key yang digunakan pada
algoritma Rinjdael tidak harus mempunyai besar yang sama dengan blok input. Cipher
key pada algoritma Rinjdael bisa menggunakan kunci dengan panjang 128 bit, 192 bit,
atau 256 bit. Perbedaan panjang kunci akan mempengaruhi jumlah round yang akan
diimplementasikan pada algoritma Rinjdael ini. Pada tahun 2001, Algoritma Rijndael,
karya peneliti dari universitas di Belgia ditetapkan menjadi AES. Rijndael merupakan
algoritma yang dapat menerima masukan data 128 bit dan menghasilkan data 128 bit
pula. Bila digunakan dengan kunci 128 bit, maka kita menyebutnya sebagai AES-128.
Selain 128 bit, AES juga dapat menerima kunci 192 dan 256 bit. Dalam tulisan ini
akan dibahas AES-128. Plaintext diletakkan pada matrik segiempat yang disebut state
berukuran 4x4 atau setiap sel berisi 1 byte untuk AES-128 (Gambar 1).

Universitas Sumatera Utara

14

Gambar 2.5 Contoh State AES
(sumber : Surian, 2009)
Kemudian dilakukan operasi pada setiap ronde yang dalam notasi pseudo C
sebagai berikut :

AddRoundKey(State);
Ronde(State,KunciRonde)
{
ByteSub(State);
ShiftRow(State);
MixColumn(State);
AddRoundKey(State);
}

Pada bagian akhir terdapat sedikit perbedaan operasi agar struktur dekripsinya
menyerupai struktur enkripsinya. Operasi Mixcolumn ditiadakan pada ronde terakhir.

Ronde(State,KunciRonde)
{
ByteSub(State);
ShiftRow(State);
AddRoundKey(State);
}

Universitas Sumatera Utara

15

Kotak subtitusi atau untuk ByteSub dibentuk dari fungsi inversi perkalian pada
GF(28) dan kemudian ditambahkan operasi XOR terhadap fungsi affine atau semacam
fungsi linear yang didefinisikan sebagai berikut:

Gambar 2.6 Contoh Keluaran Fungsi Inversi
(sumber : Surian, 2009)
Di mana x adalah keluaran fungsi inversi dan y menjadi keluaran kotak
subtitusi. Atau dengan kata lain, bila masukan kotak subtitusi adalah w dan
keluarannya y, maka di dalam kotak subtitusi ini, w ini akan diinversi menjadi w-1 = x
pada GF(28), dan kemudian x ini akan dimasukkan ke dalam persamaan affine di atas
untuk mendapatkan y. Operasi ShiftRow menggeser baris ke-1 ke kiri 1 byte, baris ke2 ke kiri 2 byte, dan baris ke-3 ke kiri 3 byte. Baris ke-0 tidak digeser. Kemudian
operasi Mixcolumn merupakan operasi perkalian satu kolom dengan polinomial c(x)
mod (x4+1) di mana c(x) = '03'x3 + '01'x2 + '01'x + '02'. Persamaan ini dapat
dituliskan juga dalam bentuk matrik sebagai berikut:

Gambar 2.7 Contoh Mixcolumn
(sumber : Surian, 2009)
Di mana a merupakan masukan dan b keluaran Mixcolumn. Sedangkan operasi
AddRoundKey merupakan operasi sederhana berupa pengXORan data dengan key.
Untuk membuktikan apakah AES kebal terhadap ASD, kita harus dapat memastikan
jumlah kotak subtitusi yang aktif setelah beberapa ronde. Telah diketahui bahwa

Universitas Sumatera Utara

16

jumlah minimal kotak subtitusi yang aktif pada jalur diferensial adalah 25 buah untuk
4 ronde. Karena itu peluang diferensial maksimal 4 ronde = (2-6)25 = 2-150. Jadi,
diperlukan 2150 pasang plaintext, sedangkan diketahui bahwa hanya terdapat
maksimal 2128 plaintext yang mungkin, sehingga karakteristik AES 4R dapat
menghalangi serangan terhadap AES 7 ronde (3R attack). Misalkan kita memasukkan
karakteristik plaintext '0,0 a =1 dan 'i, j a lain =0 untuk i,j=0...3 atau perhatikan lagi
gambar 1 dengan asumsi bahwa ai,j menunjukkan posisi pada baris i kolom j dengan
peluang maksimal 2-6. Maka pada keluaran ByteSub (BS) ronde pertama, karekteristik
akan tetap, demikian juga setelah ShiftRow (SR) di ronde pertama. Namun, Mixcolumn
(MC) pada ronde pertama menyebabkan diferensial pada posisi a0,0 menyebar ke ai,0.
Operasi AddRoundKey (AK) tidak mengubah kondisi, karena operasi XOR tidak
mempengaruhi diferensial. Perhatikan bahwa bila kita memiliki 2 masukan x1 dan x2
maka x1 k = y1 dan x2 k = y2. Kemudian ∆x k k = x1 x2, jadi operator XOR tidak
mempengaruhi diferensial. Sementara itu, diferensial pada byte-byte yang lain tetap
nol, karena tidak ada operasi yang mengubahnya Akibatnya, masukan pada ronde
kedua menjadi 'i,0 a = 1 untuk i=0..3 dan 'i, j a = 0 untuk i=0..3 dan j=1..3. Bila kita
telusuri lebih lanjut, maka SB pada ronde ke-2 tidak mempengaruhi diferensial,
sedangkan SR menyebarkan posisi diferensial tidak nol ke seluruh kolom. Akibatnya,
pada keluaran MC, seluruh byte pada state memiliki diferensial = 1. Sehingga dalam 2
ronde, terdapat 5 buah kotak subtitusi yang aktif, dan pada ronde ketiga terdapat 16
buah kotak subtitusi yang aktif. Jalur diferensial ke ronde keempat, maka karena pada
setiap kolom di ronde ketiga terdapat 4 byte aktif, maka pada ronde keempat paling
sedikit akan terdapat 4 kotak subtitusi yang aktif. Akibatnya, dalam 4 ronde, akan
terdapat minimal 25 kotak subtitusi yang aktif, sama seperti penjelasan di atas.
Rijndael termasuk dalam jenis algoritmakriptografi yang sifatnya simetri dan
cipher block. Dengan demikian algoritma ini mempergunakan kunci yang sama saat
enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan jumlah bit
tertentu. Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan
digunakan. Namun Rijndael mempunyai ukuran blok dan kunci yang tetap sebesar
128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah
proses yang harus dilalui untuk proses enkripsi dan dekripsi. Berikut adalah
perbandingan jumlah proses yang harus dilalui untuk masing-masing masukan.

Universitas Sumatera Utara

17

Tabel 2.1 Jumlah Proses Berdasarkan Bit Blok Dan Kunci

(sumber : Surian, 2009)

Blok-blok data masukan dan kunci dioperasikan dalam bentuk array. Setiap
anggota rray sebelum menghasilkan keluaran ciphertext dinamakan dengan state.
Setiap state akan mengalami proses yang secara garis besar terdiri dari empat tahap
yaitu, AddRoundKey, SubBytes, hiftRows dan

MixColumns. Kecuali tahap

MixColumns, ketiga tahap lainnya akan diulang pada setiap proses sedangkan tahap
MixColumns tidak akan dilakukan pada tahap terakhir. Proses dekripsi adalah
kebalikkan dari dekripsi. Karena terjadi beberapa tahap dalam proses enkripsi, maka
diperlukan subkey yang akan dipakai pada tiap tahap. Pengembangan jumlah kunci
yang akan dipakai diperlukan karena kebutuhan subkeysubkeyn yang akan dipakai
dapat mencapai ribuan bit, sedangkan kunci yang disediakan secara default hanya
128-256 bit. Jumla total kunci yang diperlukan sebagai subkey adalah sebanyak
Nb(Nr+1), dimana Nb adalah besarnya blok data dalam satuan word. Sedangkan Nr
adalah jumlah tahapan yang harus dilalui dalam satuan word. Sebagai contoh,
bilamana digunakan 128 bit (4 word) blok data dan 128 bit (4 word) kunci maka akan
dilakukan 10 kali proses. Dengan demikian dari rumus didapatkan 4(10+1)=44
word=1408 bit kunci. Untuk melakukan pengembangan jumlah kunci yang akan
dipakai dari kunci utama maka dilakukan key schedule.

2.5. 3DES (Triple Data Encryption Standard)
3DES

(Triple

pengembangan
algoritma

yang

Data

Encryption Standard) merupakan

suatu

algoritma

dari algoritma DES (Data Encrytion Standard). Pada dasarnya
digunakan sama,

hanya pada

3DES

dikembangkan dengan

melakukan enkripsi dengan implementasi algoritma DES sebanyak tiga kali. 3DES
memiliki tiga buah kunci yang berukuran 168 bit atau tiga kali kunci 56 bit dari
DES. Pada algoritma 3DES dibagi menjadi tiga tahap, setiap tahap merupakan

Universitas Sumatera Utara

18

implementasi dari algorima DES. Tahap pertama, plaintext yang diinputkan
dioperasikan dengan kunci external pertama ( ) dan melakukan proses enkripsi
dengan menggunakan DES. Sehingga menghasilkan pra-ciphertext pertama. Tahap
kedua, pra-ciphertext pertama yang dihasilkan pada tahap pertama, kemudian
dioperasikan dengan kunci external ( ) dan melakukan proses enkripsi atau proses
dekripsi atau tergantung cara pengenkripsian yang digunakan dengan menggunakan
algoritma DES. Sehingga menghasilkan pra-ciphertext kedua. Tahap terakhir, praciphertext kedua yang dihasilkan pada tahap kedua, dioperasikan dengan kunci
external ketiga ( ) dan melakukan proses enkripsi dengan menggunakan algoritma
DES, sehingga menghasilkan ciphertext (C) (Abdul, 2013).
Algoritma Triple DES adalah metode yang digunakan untuk proses enkripsi dan
dekripsi. Proses enkripsi dan dekripsi dengan algoritma tersebut digunakan pada
enkripsi dan dekripsi file teks. Pada dasarnya algoritma ini melakukan keamanan
dengan kesamaan kuncinya. Pada Triple DES setiap proses enkripsi maupun dekripsi
data secara keseluruhan digunakan kunci yang sama.

2.6. Pengertian Perancangan
Perancangan atau desain suatu sistem yang baik, yang isinya adalah langkah-langkah
operasi dalam proses pengoolahan data dan prosedur untuk mendukung operasi sistem
(Sulindawati, 2010).
Perancangan merupakan tahap pembautan tampilan rancangan dari sistem
setelah melakukan analisis sistem dan mendapatkan solusi yang tepat untuk dapat
menbangun sebuah sistem yang akan digunakan oleh banyak pengguna yang
membutuhkan sistem tersebut tergantung kebutuhan yang diperlukan untuk dapat
dikembangkan lebih baik lagi.

2.7. Model Perancangan Unified Modelling Langguage (UML)
Unified Modelling Langguage (UML) adalah himpunan struktur dan teknik untuk
pemodelan dan design program berorientasi objek serta aplikasinya. UML adalah
metodologi untuk mengembangkan sistem program berorientasi objek dan
sekelompok tool untuk mendukung pengembangan sistem tersebut. UML mulai
diperkenalkan oleh object manajemen group, sebuah organisasi yang telah

Universitas Sumatera Utara

19

mengembangkan model, teknologi dan standar pemrograman berorientasi objek.
Sekarang UML sudah mulai banyak digunakan oleh para praktisi pemrograman
berorientasi objek (Kroenke, 2010).
UML menawarkan sebuah standar untuk merancang model sebuah sistem.
UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang
meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang
spesifik, skema database dan komponen-komponen yang diperlukan dalam sistem
software. Notasi standar yang disediakan UML bisa digunakan sebagai alat
komunikasi bagi para pelaku dalam proses analisis yaitu, diagram use case, diagram
sequence dan diagram class.
Dengan menggunakan UML dapat membuat model untuk semua jenis aplikasi
piranti perangkat lunak, dimana aplikasi tersebut dapat berjalan pada piranti perangkat
keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman
apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep
dasarnya, maka UML cocok untuk penulisan piranti lunak

dalam

bahasa

pemrograman yang berorientasi objek.

2.7.1 Use Case Diagram
Use case diagram adalah gambaran graphical dari beberapa atau semua aktor, use
case dan interaksi diantara komponen-komponen tersebut yang memperkenalkan
suatu sistem yang akan dibangun. Secara umum, use case adalah gambaran fungsional
suatu sistem, sehingga dapat mengetahui, paham dan mengerti mengenai sistem yang
akan dibangun. Adapun cara menentukan use case dalam suatu sistem adalah,
gambaran tugas dari sebuah aktor, apa yang dikerjakan perangkat lunak, pola perilaku
perangkat lunak aplikasi, sistem atau benda yang memberikan sesuatu yang bernilai
kepada aktor. Dari alur kerja tersebut diatas maka dapat ditentukan use case diagram
untuk melihat proses apa yang dilakukan aktor-aktor terhadap sistem dalam bentuk
use case (Efendi, 2012). Pada pembahasan ini tidak dilakukan pemaparan yang
menyeluruh dari semua aspek, dalam hal ini untuk lebih jelas simbol-simbol use case
diagram dapat dijelaskan sebagai berikut:

Universitas Sumatera Utara

20

Tabel 2.2 Simbol-Simbol Use Case Diagram
Simbol





Nama Simbol
Association
(gabungan)

Keterangan
Hubungan antara actor dengan
use case dimana terjadi interaksi
diantara mereka.

Extend
relationship

Hubungan antara extendion use
case dan usecase. Extension
usecase adalah use case yang
terdiri dari langkah yang
diekstrasi dari use case yang
lebih
komplek
untuk
menyederhanakan
masalah
original
dan
karena
itu
memperluas fungsinya.
Kelakuan yang harus tepenuhi
agar sebuah event dapat terjadi,
dimana pada kondisi ini sebuah
use case adalah bagian dari use
case lainnya.
1. Yang
berkepentingan
terhadap sistem dimana
adanya arus informasi baik
yang diterimanya maupun
yang ada diinputkan ke
sistem.
2. Orang atau pihak yang akan
mengelola sistem tersebut.
3. External resource yang
digunakan oleh sistem.
4. Sistem
lain
yang
berinteraksi dengan sistem
yang akan dibuat.
1. Menggambarkan software
aplikasi.
2. Urutan transaksi yang
berhubungan atau yang
dilakukan oleh satu aktor
dengan software aplikasi.
3. Sistem atau benda yang
memberikan sesuatu yang
bernilai kepada aktor.

Include
relationship

Aktor

Use case

(Sumber: Kurniawan, 2011)

Diagram use case menjelaskan manfaat sistem jika dilihat menurut pandangan
orang yang berada diluar sistem (actor). Diagram ini menunjukkan fungsionalitas

Universitas Sumatera Utara

21

suatu sistem tahu kelas dan bagaimana sistem berinteraksi dengan dunia luar. Diagram
use case dapat digunakan selama proses analisis untuk menangkap requirements
sistem dan untuk memahami bagaimana sistem seharusnya bekerja. Selama tahap
desain,

use

casediagram

menetapkan

perilaku

(behavior)

sistem

saat

diimplementasikan. Selanjutnya kita akan membahas penerapan use case dalam
metode pengembangan sistem terstruktur.
2.7.2 Activity Diagram
Activity diagram pada dasarnya menggambarkan scenario secara grafis. Kelebihan
dari activity diagram adalah bahwa diagram tersebut lebih mudah dipahami
dibandingkan scenario (Nugroho, 2010).
Activity diagram juga sangat berguna ketika ingin menggambarkan perilaku
paralel atau menjelaskan bagaimana perilaku dalam berbagai use case berinteraksi,
selanjutnya simbol-simbol activity diagram dapat dijelaskan sebagai berikut:
Tabel 2.3 Simbol-Simbol Activity Diagram
Simbol

Nama Simbol

State

Control Flow

Initial State

Final State

Transition
Decision

Keterangan
Kondisi Sesaat
Memperlihatkan bagaimana
masing-masing
kelas
antarmuka
saling
berinteraksi satu sama lain.
Sebagai Control Flow
Kondisi Awal (Bagaimana
objek
dibentuk
atau
diawali).
Kondisi Akhir (Bagaimana
objek
dibentuk
dan
dihancurkan).
Satu aliran yang pada tahap
tertentu berubah menjadi
beberapa aliran.
Sebagai Decision
Sebagai Swimlane

Swimlane
(Sumber: Kurniawan, 2011)

Universitas Sumatera Utara

22

Activity diagram menggambarkan aktifitas-aktifitas, objek, state, transisi state
dan event. Dengan kata lain kegiatan diagram alur kerja menggambarkan perilaku
sistem untuk aktivitas (Haviluddin, 2011).
2.7.3 Sequence Diagram
Sequence diagram menjelaskan interaksi objek yang disusun berdasarkan urutan
waktu. Secara mudahnya sequence diagram adalah gambaran tahap demi tahap,
termasuk kronologi atau urutan perubahan secara logis yang seharusnya dilakukan
untuk menghasilkan sesuatu sesuai dengan use case diagram.

Tabel 2.4 Simbol-Simbol Sequence Diagram
Simbol

Nama Simbol

Keterangan

Object

Sebagai simbol Object

Sebagai simbol Actor
Actor

Lifeline
Message

Message (return)

Objek entity, antarmuka
yang saling berinteraksi.
Spesifikasi dari komunikasi
antar objek yang memuat
informasi-informasi tentang
aktifitas yang terjadi.
Spesifikasi dari komunikasi
antar objek yang memuat
informasi-informasi tentang
aktifitas yang terjadi.

Message (Call)

Sebagai simbol Message
(Call)

Activation

Sebagai simbol Activation

(Sumber: Kurniawan, 2011)

Universitas Sumatera Utara

23

2.7.4 Class Diagram
Class diagram menggambarkan struktur statis dari kelas dalam sistem anda dan
menggambarkan atribut, operasi dan hubungan antara kelas. Class diagram membantu
dalam memvisualisasikan struktur kelas-kelas dari suatu sistem dan merupakan tipe
diagram yang paling banyak dipakai. Selama tahap desain, class diagram berperan
dalam menangkap struktur dari semua kelas yang membentuk arsitektur sistem yang
dibuat. Class memiliki tiga area pokok yaitu, nama (stereotype), atribut, metode.

Tabel 2.5 Simbol Class Diagram
Simbol
class

Nama Simbol
1
2
3

Class

Association

Agregation
(Composite)
Agregation
(shared)

Generalization

Keterangan
1. Class name
2. Atributes
3. Behaviors
Apa yang
menghubungkan
antara objek satu
dengan objek
lainnya.
Sebagai
simbol
Agregation
(Composite).
Sebagai
simbol
Agregation (shared).
Hubungan dimana
objek
anak
(descendent) berbagi
perilaku dan struktur
data dari objek yang
ada di atasnya objek
induk (ancestor).

(Sumber: Kurniawan, 2011)

2.7.5 Component Diagram
Component diagram adalah diagram UML yang menampilkan komponen dalam
system dan hubungan antara mereka. Menggambarkan tampilan fisik dari struktur dan
hubungan

antara

komponen

dalam

sistem

suatu

perangkat

lunak,

serta

menggambarkan ketergantungan diantara komponen-komponen itu (Nugroho, 2010).

Universitas Sumatera Utara

24

Komponen perangkat lunak itu, dapat secara mudah digantikan oleh komponenkomponen yang mendukung antarmuka-antarmuka yang sesuai.

Tabel 2.6 Simbol Component Diagram
Nama

Simbol

Component
Instance

Node
Kebergantungan/
depedency
Asosiasi/
Association

Deskripsi
Suatu
komponen
infrastruktur sistem.

dari

suatu

Menggambarkan workstation, server,
atau hardware lainnya.
Kebergantungan antara node, arah
panah mengarah pada node yang
dipakai.
Mendeskripsikan
hubungan
antar
instance suatu kelas.

(Sumber: Nugroho, 2010)

2.7.6 Depeloyment Diagram
Deployment diagram merupakan gambaran proses-proses berbeda pada suatu sistem
yang berjalan dan bagaimana relasi di dalamnya. Hal inilah yang mempermudah user
dalam pemakaian sistem yang telah dibuat dan diagram tersebut merupakan diagram
yang statis. Model deployment mendefinisikan simpul-simpul komputer secara fisik
dan melakukan pemetaan masing-masing komponen ke setiap simpul komputer yang
ada (Nugroho, 2010).
Node digambarkan sebagai kotak, dan artefak yang dialokasikan ke setiap node
digambarkan sebagai persegi panjang di dalam kotak. Node mungkin memiliki sub
nodes, yang digambarkan sebagai kotak nested. Sebuah node tunggal secara
konseptual dapat mewakili banyak node fisik, seperti sekelompok database server,
saat aplikasi dijalankan yang merepresentasikan sumber daya komputasi. Simbolsimbol yang digunakan dalam deployment diagram adalah sebagai berikut:

Universitas Sumatera Utara

25

Tabel 2.7 Simbol Deployment Diagram
Nama
Package

Simbol

Deskripsi
Package merupakan sebuah bungkusan

Package

dari satu atau lebih node.
Biasanya mengacu pada perangkat keras
(hardware), perangkat lunak (software),
jika didalam node disertakan komponen

Node

untuk mengkonsistensikan rancangan antar
Nama_node

muka komponen yang diikut sertakan
harus sesuai dengan komponen yang telah
didefinisikan sebelumnya pada diagram
komponen.

Kebergantungan/
depedency
Link

Kebergantungan antara node, arah panah
mengarah pada node yang dipakai.
Relasi antar node.

(Sumber: Nugroho, 2010)

2.8. Pengujian Metode Black Box
Pengujian untuk mengetahui apakah semua fungsi perangkat lunak telah berjalan
semestinya sesuai dengan kebutuhan fungsional yang telah didefinsikan (Abdul,
2010). Pengujian Black Box:
a.

Metode Black Box memungkinkan perekayasa perangkat lunak mendapatkan
serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan
fungsional untuk suatu program.

b.

Black Box dapat menemukan kesalahan dalam kategori berikut:
1.

Fungsi-fungsi yang tidak benar atau hilang

2.

Kesalahan interface

3.

Kesalahan dalam strutur data atau akses basis data eksternal

4.

Inisialisasi dan kesalahan terminasi

5.

Validitas fungsional

6.

Kesensitifan sistem terhadap nilai input tertentu

Universitas Sumatera Utara

26

7.

Batasan dari suatu data

c. Tipe dari Black Box Testing:

1.

Equivalence class partitioning

2.

Sample testing

3.

Limit testing

4.

Robustness testing

5.

Behavior testing

6.

Requirement testing

2.9. Berbasis Web
Berbasis

web adalah jenis aplikasi yang paling banyak digunakan yang

memungkinkan akses informasi. Hasil yang didapat dari survei ini berupa pendapat
dari responden atau data-data tertentu yang dapat diolah menjadi sebuah inforrnasi
yang berharga. Sangat pentingnya nilai informasi seringkali menyebabkan informasi
diinginkan hanya boleh diakses oleh orang-orang tertentu yang mempunyai hak.
Untuk itu perlu dibuat suatu sistem keamanan uniuk aplikasi survei berbasis web ini
(Hendry, 2002).
Sistem keamanan ini dirancang agar penyelenggara web mempunyai suatu
aplikasi survei berbasis web yang aman dan untuk menjaga informasi-informasi
penting yang didapat pembuat survei dari para responden serta kerahasiaan data-data
atau identitas responden dari pihak-pihak yang tidak berhak. Penelitian dilakukan
dengan merancang keamanan dengan spesifikasi yang ditentukan berdasarkan
kebutuhan dan proses yang terjadi pada aplikasi survei ini. Kemudian dilakukan
pengujian dan analisis terhadap fungsi-fungsi keamanan yang dibuat dalam sistem
kemanan tersebut. Kesimpulan yang didapat dari basil pengujian adalah fungsi-fungsi
yang terdapat dalam sistem keamanan ini sudah cukup berjalan dengan baik sesuai
dengan spesifikasi rancangan yang dibuat.

2.9.1 Bahasa Pemrograman PHP
PHP (Hypertext Preprocessor), merupakan bahasa pemrograman pada sisi server
yang memperbolehkan programmer menyisipkan perintah–perintah perangkat lunak
web server (Apache, IIS atau apapun) akan dieksekusi sebelum perintah itu dikirim

Universitas Sumatera Utara

27

oleh halaman ke browser yang me-request-nya, contohnya adalah bagaimana
memungkinkannya memasukkan tanggal sekarang pada sebuah halaman web setiap
kali tampilan tanggal dibutuhkan. Sesuai dengan fungsinya yang berjalan di sisi server
maka PHP adalah bahasa pemrograman yang digunakan untuk membangun teknologi
web application (Edhy, 2012).
PHP telah menjadi bahasa scripting untuk keperluan umum yang pada awalnya
hanya digunakan untuk pembangunan web yang menghasilkan halaman web dinamis.
Untuk tujuan ini, kode PHP tertanam ke dalam dokumen sumber HTML dan
diinterpretasikan oleh server web dengan modul PHP prosesor, yang menghasilkan
dokumen halaman web. Sebagai bahasa pemrograman untuk tujuan umum, kode PHP
diproses oleh aplikasi penerjemah dalam modus baris - baris perintah modus dan
melakukan operasi yang diinginkan sesuai sistem operasi untuk menghasilkan
keluaran program di channel output standar. Hal ini juga dapat berfungsi sebagai
aplikasi grafis. PHP tersedia sebagai prosesor untuk server web yang paling modern
dan sebagai penerjemah mandiri pada sebagian besar sistem operasi dan komputer
platform. Pembuatan web ini merupakan kombinasi antara PHP sendiri sebagai
bahasa pemograman dan HTML sebagi pembangun halaman web.
Ketika seorang pengguna internet akan memebuka suatu situs yang
menggunakan fasilitas server side scripting PHP, maka terlebih dahulu server yang
akan bersangkutan akan memproses semua perintah PHP di server lalu mengirimkan
hasilnya dalam format HTML ke web browser pengguna internet tadi, dengan
demikian seorang pengguna internet tidak dapat melihat kode program yang ditulis
dalam PHP sehingga keamanan dari halaman web menjadi terjamin, tetapi tidak
seperti ASP (Active Server Pages) yang juga cukup dikenal sebagai sever-side
scripting, PHP merupakan software yang open source dan mampu lintas platform,
yaitu dapat digunakan dengan sistem operasi dan web server apapun. PHP mampu
berjalan di windows dan beberapa versi linux.
PHP juga dapat dibangun sebagai modul pada web server Apache dan sebagai
binary. PHP dapat mengirim HTTP header, dapat mengeset cookies, mengatur
authentication dan redirect user. PHP menawarkan koneksitas yang baik dengan
beberapa basis data, antara lain Oracle, Sysbase, MySQL, Solid, PostgreSQL, Adabas,
FilePro, Velocis, dBase, Unis dbm dan tak terkecuali semua database ber-interface
ODBC. Juga dapat berinteraksi dengan beberapa libary eksternal yang membuat kita

Universitas Sumatera Utara

28

dapat melakukan segalanya mulai dari membuat dokumen DFD hingga mem-parse
XML. PHP juga mendukung komunikasi dengan layanan lain melalui protokol IMAP,
SMTP, NNTP, POP3 atau bahkan HTTP. Bila PHP berada dalam halaman web kita,
maka tidak lagi dibutuhkan pengembangan lingkungan khusus atau direktori khusus.
Hampir seluruh aplikasi berbasis web dapat dibuat dengan PHP. Kekuatan utamanya
adalah konektivitas basis data dengan web. Dengan kemampuan ini kita akan
mempunyai suatu sistem basis data yang dapat diakses dari web.

2.9.2 Pengertian Xampp
XAMPP adalah sebuah software web server apache yang didalamnya sudah tersedia
database server MySQL dan dapat mendukung pemrograman PHP. XAMPP
merupakan software yang mudah digunakan, gratis dan mendukung instalasi di Linux
dan Windows (Herny, 2014).
Keuntungan lainnya adalah cuma menginstal satu kali sudah tersedia Apache
Web Server, MySQL database Server, PHP Support (PHP 4 dan PHP 5) dan beberapa
module lainnya. Nama XAMPP merupakan singkatan dari X (X = Cross Platform),
Apache, MySQL, PHP dan Perl. Program ini tersedia dalam lisensi GNU (General
Public License) dan gratis. Dengan menginstal XAMPP, kita tidak perlu menginstal
aplikasi server satu persatu karena di dalam XAMPP sudah terdapat:
a.

Apache 2.2.14 ( Ipv6 Enabled) + open SSL 0.9.8l

b.

MySQL 5.1.41 + PBXT engine

c.

PHP 5.3.1

d.

PHPMyAdmin 3.2.4

e.

Perl 5.10.1

f.

Filezilla FTP Server 0.9.33.

g.

Mercury Mail Transport System 4.72

Universitas Sumatera Utara