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
<<extend>>
<>
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