• Tidak ada hasil yang ditemukan

BAB III ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III ANALISIS DAN PERANCANGAN"

Copied!
32
0
0

Teks penuh

(1)

Pada bab ini akan dijelaskan analisis untuk melakukan implementasi enkripsi file menggunakan algoritma Rijndael secara simetrik berlandaskan landasan teori yang telah dipaparkan pada bab sebelumnya. Kemudian dari hasil analisis tersebut nantinya akan digunakan sebagai dasar perancangan penyelesaian masalah.

3.1 ANALISIS MASALAH

Program aplikasi ini dapat dibuat dengan adanya suatu analisis terlebih dahulu. Analisis sistem dilakukan dengan mendefinisian masalah yang ada, menganalis algoritma yang digunakan dan mengamati secara keseluruhan bagaimana program aplikasi ini dibentuk. Dalam pembuatan program aplikasi ini diperlukan suatu analisis yang benar agar nantinya dihasilkan suatu program aplikasi yang sesuai dengan yang diharapan.

Fungsionalitas utama dari perangkat lunak tugas akhir ini adalah membuat pengamanan file yang dienkripsi dengan kata kunci, memproses file tersebut untuk dienkripsi dengan menyelipkan algoritma Rijndael dan menghapus file aslinya di dalam lokasi semula. Sehingga file tersebut tersimpan aman dan hanya dapat dibuka melalui proses dekripsi menggunakan kata kunci yang telah dipilih/dimasukkan pada saat enkripsi. Untuk menambah keleluasaan pengguna, perangkat lunak ini juga harus dapat memilih file dari folder yang berbeda. Dan juga proses membalikan file-file yang sudah dienkripsi tersebut menjadi file semula yang dapat dibaca oleh program aplikasinya.

Seperti kita ketahui file-file dominan yang sering kita gunakan sehari-hari, seperti file Microsoft Word dan Microsoft Excel sudah mempunyai security buitl-in bawaannya yang dapat kita gunakan pada saat kita akan menyimpan file. Berupa pemasangan password untuk membuka dan atau otorisasi untuk modifikasi seperti pada Gambar 3.1 dibawah ini.

(2)

Gambar 3.1 Fungsi pilihan keamanan pada Microsoft Word.

Jika kita melakukan pencarian di Google untuk membuka file yang sudah dilengkapi password tersebut, maka puluhan bahkan ratusan pilihan software yang dapat digunakan untuk melakukannya seperti yang terlihat pada Gambar 3.3.

(3)

Pada Gambar 3.3 dapat dilihat salah satu aplikasi pembuka password.

Gambar 3.3 Program Password Recovery Word 2007

Sebagai contoh jika kita membuat file Test.docx menggunakan program word 2007 dengan isi file “Test” seperti pada Gambar 3.4.

(4)

Kemudian file tersebut kita buka dengan menggunakan aplikasi Notepad maka hasilnya sebenarnya secara kasat mata tidak bisa dimengerti dan akan tampak seperti Gambar 3.5 berikut:

Gambar 3.5 Dokumen microsoft word dibuka dengan notepad

Walaupun ekstensi file tersebut kita rubah dari “docx” menjadi “agp” misalnya. Orang awam yang tidak tahu akan bertanya file apakah fie tersebut. Tapi dari potongan-potongan file tersebut dapat dilihat seperti pada Gambar 3.6 yang dilingkarkan, mengandung kata word yang berorientasi Microsoft Word, orang dapat mudah menebaknya dan akan membukanya dengan program Microsoft Word.

(5)

Pada Gambar 3.6 diatas, file Test.agp yang merupakan hasil perubahan ekstensi docx dan di simpan menggunakaan fasilitas builtin password untuk membuka dan memodifikasinya pun dapat kita lihat identitas “word Document”.

Belum lagi file-file dari aplikasi pengolahan citra, film, audio yang sangat kurang proteksinya, sehingga pengamanan lanjutan harus digunakan untuk menghindari hal-hal yang tidak diinginkan. Salah satunya adalah dengan cara enkripsi file yang yang dapat dilakukan terhadap satu atau lebih dari satu file yang penulis coba bahas dengan menggunakan algoritama rijndael.

3.1.1 Analisa Struktur File

Pada bagian ini penulis tidak akan membahas satu persatu struktur dari berbagai macam jenis file yang ada. Tapi penulis akan membahas inti dari jenis file yang digunakan dalam pemrosesan saja yaitu struktur plaintext. Dengan kemampuan bahasa pemrogaman C#, segala jenis file baik itu file audio, video, image, word, excel dan lain-lain dapat dikonversikan kedalam bentuk ini dengan sempurna.

Sebelum proses algoritma berjalan, secara garis besar ada dua jenis input yang harus ditangani, yaitu file yang akan dienkripsi/didekripsi dan kata kunci sebagai key. Tiap file yang akan dienkripsi/didekripsi dan kata kunci yang dimasukkan akan dirubah dahulu menjadi plaintext.

Kemudian setelah menjadi data plaintext, proses selanjutnya adalah membaginya masing-masing kedalam blok 1 byte dalam matriks berukuran 4 x 4 dan siap dibentuk

CipherKey.

Analisa Plaintext

Plain text adalah jenis teks murni yang hanya berupa karakter teks saja tanpa ada format apa-apa. Plain text ini biasanya hanya mengandung teks-teks yang diformat dengan menggunakan kode ASCI.

Data plaintext inilah yang nantinya akan dimasukkan kedalam algoritma sebagai input dari proses utama. Format plaintext adalah format yang paling sederhana untuk menyimpan informasi dalam memori komputer. Plaintext dapat dianggap

(6)

sebagai common denominator terendah format penyimpanan yang dapat digunakan untuk proses selanjutnya seperti apa yang kita inginkan.

Struktur dasar dari sebuah plain text adalah bahwa data-data yang ada diatur dalam baris, dengan beberapa nilai yang disimpan pada setiap barisnya.

Dalam prakteknya nanti plain text ini dapat berisi karakter yang berasal code ASCII saja ataupun karakter yang mengandung Unicode, UTF7 ataupun UTF8 sebagai hasil konversi pembacaan file yang akan dienkripsi ataupun konversi kata kunci yang digunakan.

Satu karakter kode ASCII adalah sama dengan 1 byte atau sama dengan 8 bit.

Tabel 3.1 Konversi plain teks dalam bit dan hexadesimal

Gambar 3.xx

*panjang dan ukuran dari text tersebut adalah 12 byte.

Tabel 3.2 File PDF dalam plain text, bit dan hexadesimal

3.1.1. Analisis Algoritma Rijndael

Tentang cara rijndael mengenkripsi suatu file secara teknis dengan menggunakan contoh file yang berisi kata ”akumengkiptrografi file” 3.1.2. Analisis Penerapan Enkripsi Dekripsi File

3.1.3. Analisis Dampak Sistem

Dalam Hexa Dalam Bit Plain Teks

6a 75 73 74 20 74 65 73 74 69 6e 67 01101010 01110101 01110011 01110100 00100000 01110100 01100101 01110011 01110100 01101001 01101110 01100111 just testing

Dalam Hexa Dalam Bit Teks

25 50 44 46 2d 31 2e 34 0a 35 20 30 20 6f 62 6a 0a 3c 3c 20 2f 53 20 2f 00100101 01010000 01000100 01000110 00101101 00110001 00101110 00110100 00001010 00110101 00100000 00110000 00100000 01101111 01100010 01101010 00001010 00111100 00111100 00100000 00101111 01010011 00100000 00101111 %PDF-1.4 5 0 obj << /S /

(7)

3.1.2 Analisis Proses Enkripsi Rijndael

Enkripsi yang digunakan dalam proses enkripsi file ini menggunakan algoritma rijndael 128 bit.

Ada pun prosesedur algoritma Rijndael adalah sebagai berikut :

1. File dan kata kunci yang akan dienkripsi terlebih dahulu diubah kedalam bentuk hexadesimal

2. Proses penyandian melakukan operasi sebanyak sepuluh ronde. Untuk sembilan round (round 1-9) terdiri atas proses add round key, sub-byte, shiftrows, dan mix column. Sedangan pada ronde kesepuluh hanya akan melakukan proses sub-byte, sift rows dan add round key.

Seperti sudah diulas pada bab 2, Algoritma Rijndael menggunakan tahapan transformasi SubBytes, ShiftRows, MixColumns dan AddRoundKey, menghasilkan difusi dan konfusi yang kuat. Substitusi yang dihasilkan dari transformasi SubBytes mengubah nilai byte berdasarkan nilai asli dan nilai yang ada di kotak-S. Proses tersebut dapat dikatakan sebagai transformasi intrabyte. Permutasi yang dihasilkan dari proses ShiftRows mempertukarkan byte tanpa mengubah nilai bit di dalam byte. Transformasi ini dapat dikatakan sebagai transformasi byte-exchange (pertukaran byte) dan pada mixcolumn akan dilakukan transformasi interbyte untuk mengubah nilai bit dalam byte. Tujuannya adalah untuk menghasilkan difusi pada tingkat bit.

(8)

(A) (B)

Gambar 3.7 Alur enkripsi Rijndael (A) dan Alur dekripsi Rijndael (B)

Berikut ini akan penulis jelaskan sedikit alur dari penggunaan algoritma Rijndael dalam mengenkripsi dan mendekripsi file teks sederhana yang yang berisi kalimat “surachman4150512” dan kunci enkripsi yang digunakan adalah : mercubuana123456. Detail dari langkah-langkah yang terjadi akan dijelaskan pada halaman lampiran.

Pertama-tama sekali yang dilakuan adalah merubah kedua jenis input tersebut menjadi bilangan hexadesimal.

Plaintex

surachman4150512

Hexadesimal

73 75 72 61 63 68 6d 61 6e 34 31 35 30 35 31 32 mercubuana123456 6d 65 72 63 75 62 75 61 6e 61 31 32 33 34 35 36

(9)

Dari hexadecimal yang didapat, dibuat matriks berukuran 4 x 4. Input bits 73 75 72 61 63 68 6d 61 6e 34 31 35 30 35 31 32 (matrix A) Key bits 6d 65 72 63 75 62 75 61 6e 61 31 32 33 34 35 36 (matriks B)

Melakukan proses XOR antara inbut byte matriks A dan matriks B sehingga didapat: 1e 16 00 03 10 0a 55 01 00 18 00 04 02 00 07 04 (matriks C)

Matriks ini akan kita gunakan sebagai masukan pada kunci rounde #1

3.1.2.1. Analisa Pembentukan ExpandKey pada Proses Enkripsi

Key bits dalam matriks dibawah ini adalah hasil transformasi byte dari kata kunci untuk enkripsi yang kita masukan.

Proses ini adalah pembuatan ExpandKey atau kunci ekspansi bit yang panjangnya 128bit atau 4 word menjadi kunci sebanyak 44 word. 4 word pertama, yaitu bit-bit kunci asli digunakan pada awal enkripsi. Kemudian 40 word berikutnya dari hasil Expand Key akan digunakan pada setiap Ronde.

Key bits awal: 6d 65 72 63 75 62 75 61 6e 61 31 32 33 34 35 36

Didefinisian secara kolom :

w[0] w[1] w[2] w[3] 6d 65 72 63 75 62 75 61 6e 61 31 32 33 34 35 36

(10)

maka akan didapat: RotWord[1]= 34 35 36 33 SubWord[1]= 18 96 05 c3 Proses untuk nilai W[4] W[0] SubWord[1] Rcon[1] W[4] 6d 18 01 74 65 96 00 f3 72 xor 05 xor 00 = 77 63 c3 00 a0 W[1] W[4] W[5] 75 74 01 62 f3 91 75 xor 77 = 02 61 a0 c1 W[2] W[5] W[6] 6e 01 6f 61 91 f0 31 xor 02 = 33 32 c1 f3 W[3] W[6] W[7] 33 6f 5c 34 f0 c4 35 xor 33 = 06 36 f3 c5 Round Key#1 W[4] W[5] W[6] W[7] 74 01 6f 5c f3 91 f0 c4 77 02 33 06 a0 c1 f3 c5 RotWord[2]= c4 06 c5 5c SubWord[2]= 1c 6f a6 4a

Proses terus berlanjut sehingga didapatkan keseluruhan kunci yang berjumlah 10 kunci yang nantinya akan dipakai pada masing-masing ronde. Kunci tersebut dapat dilihat pada Tabel 3.3 berikut. Rincian pembentukan kunci dapat dilihat pada lembar Lampiran 1.

(11)

Tabel 3.3. Kunci rounde ke-1 sampai ke-10 proses enkripsi

RoundKey#1 RoundKey#2 RoundKey#3

w[4] w[5] w[6] w[7] w[8] w[9] w[10] w[11] w[12] w[13] w[14] w[15] 74 1 6f 5c 6a 6b 04 58 7c 17 13 4b f3 91 f0 c4 9c 0d fd 39 12 1f e2 db 77 2 33 6 d1 d3 e0 e6 75 a6 46 a0 a0 c1 f3 c5 ea 2b d8 1d 80 ab 73 6e

RoundKey#4 RoundKey#5 RoundKey#6

w[16] w[17] w[18] w[19] w[20] w[21] w[22] w[23] w[24] w[25] w[26] w[27] cd da c9 82 95 4f 86 4 f0 bf 39 3d f2 ed 0f d4 5e b3 bc 68 df 6c d0 b8 ea 4c 0a aa 7d 31 3b 91 8b ba 81 10 33 98 eb 85 20 b8 53 d6 d2 6a 39 ef

RoundKey#7 RoundKey#8 RoundKey#9

w[28] w[29] w[30] w[31] w[32] w[33] w[34] w[35] w[36] w[37] w[38] w[39] dc 63 5a 67 de bd e7 80 aa 17 f0 70 15 79 a9 11 c7 be 17 6 46 f8 ef e9 54 ee 6f 7f 6f 81 ee 91 0c 8d 63 f2 f5 9f a6 49 70 ef 49 0 bd 52 1b 1b RoundKey#10 w[40] w[41] w[42] w[43] 82 95 65 15 cf 37 d8 31 a3 2e 4d bf ec be a5 be

3.1.2.2. Analsia SubByte pada Proses Enkripsi

Proses subbytes adalah proses pensubtitusian masukan berdasarkan kotak-S yang berukuran matrix 16 x 16 yang desebut AES S-BOX yang berimisi permutasi semua 256 kemungkinan dari kombinasi 8-bit. Setiap sel matrix beris 1 byte (2digit hexadesimal).

surachman4150512 73 75 72 61 63 68 6d 61 6e 34 31 35 30 35 31 32 mercubuana123456 6d 65 72 63 75 62 75 61 6e 61 31 32 33 34 35 36

(12)

Input bits 73 75 72 61 63 68 6d 61 6e 34 31 35 30 35 31 32 (matrix A) Key bits 6d 65 72 63 75 62 75 61 6e 61 31 32 33 34 35 36 (matriks B)

Melakukan proses XOR antara Inbut byte A dan B sehingga didapat:

1e 16 00 03 10 0a 55 01 00 18 00 04 02 00 07 04 (matriks C) 1e 16 00 03 10 0a 55 01 00 18 00 04 02 00 07 04 (matriks C)

setelah diproses subbyte, matrix C akan menjadi:

72 47 63 7b ca 67 fc 7c 63 ad 63 f2 77 63 c5 f2 (matriks D)

Referensi tabel yang digunakan dalam proses subbyte

(13)

3.1.2.3. Analisa ShiftRows pada Proses Enkripsi

Ini adalah proses yang sederhana. Baris ke-1 sampai baris ke-3 dari matrix D akan digeser ke kiri. Baris pertama tidak mengalami pergeseran posisi

72 47 63 7b ca 67 fc 7c 63 ad 63 f2 77 63 c5 f2 (matriks D) setelah diproses shiftrows, matriks D akan menjadi: 72 47 63 7b 67 fc 7c ca 63 f2 63 ad f2 77 63 c5 (matriks E)

3.1.2.4. Analisa MixColumn pada Proses Enkripsi

Pada tahap ini matrix E akan diperlakukan sebagai suatu polinomial yang berada dalam GF(28) dan akan dikalikan dengan modle X4+1

02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 (matriks F)

Matrix F akan dikalikan dengan matriks E 72 47 63 7b 67 fc 7c ca 63 f2 63 ad f2 77 63 c5 (matriks E) Akan didapat dc 14 42 db eb de 5d dd de dd 7c a4 6d 29 7c 7b (matriks G)

(14)

3.1.2.5 Analisa AddRoundKey pada Proses Enkripsi

Hasil dari matriks G akan di-XOR-an dengan kunci roune #1, yaitu kunci hasil dari proses ExpandKey.

dc 14 42 db eb de 5d dd de dd 7c a4 6d 29 7c 7b (matriks G) xor 74 01 6f 5c f3 91 f0 c4 77 02 33 06 a0 c1 f3 c5 (keyround#1) = a8 15 2d 87 18 4f ad 19 a9 df 4f a2 cd e8 8f be (matriks H)

Matriks H akan digunakan sebagai nilai awal pada ronde ke-2.

Matriks H, diproses SubByte->SiftRow->MixColumn, XOR keyround#3, dan seterusnya, hingga pada putaran ke sepuluh hanya dilakukan proses Subbyte, shiftrow dan AddRoundey saja. Detail proses dapat dilihat pada Lampiran 1.

Sehingga ciphertext yang didapat nantinya adalah :

80 7f 55 95 90 50 73 6b 88 c2 6d a6 fb d0 31 47

Setelah dikonversikan kedalam bentuk text maka cipertext diatas akan menjadi : �U��Psk�Âm¦ûÐ1G

3.1.3. Analisa Proses Dekripsi Rijndael

Berikut akan diulas sedikit proses dekripsi dari data proses hasil enkripsi. Detail lengkapnya dapat dilihat pada Lampiran 2.

Ciphertext : �U��Psk�Âm¦ûÐ1G ; dalam heksadesimal : 80 7f 55 95 90 50 73 6b 88 c2 6d a6 Fb d0 31 47

Kunci enkripsi : mercubuana 123456 ; dalam heksadesimal : 6d 65 72 63 75 62 75 61 6e 61 31 32 33 34 35 36

(15)

Cipher bits 80 7f 55 95 90 50 73 6b 88 c2 6d a6 fb d0 31 47 (matrix A) key bits 6d 65 72 63 75 62 75 61 6e 61 31 32 33 34 35 36 (matriks B)

3.1.3.1 Analisa Pembentukan ExpandKey pada Proses Dekripsi

Sama seperti pada proses enkripsi, tahap awal dalam proses dekripsi adalah pembentukan dan pendefinisian kunci ronde kesatu sampai ronde kesepuluh menggunakan data input dari kata kunci yang digunakan pada proses enkripsi.

Karena kunci dekripsi adalah sama dengan kunci enkripsi, maka kunci ronde kesatu sampai dengan kunci ronde kesepuluh akan sama hasilnya. Hanya urutan penggunaannya pada proses-proses selanjutnya saja yang berbeda, jika pada proses enkripsi dimulai dari kunci kesatu sampai dengan kesepuluh, maka pada proses dekripsi kunci kesepuluh-lah yang pertama kali digunakan pada proses-proses berikutnya.

Tabel 3.5 Kunci rounde ke-1 sampai ke-10 proses Dekripsi

RoundKey#1 RoundKey#2 RoundKey#3

w[4] w[5] w[6] w[7] w[8] w[9] w[10] w[11] w[12] w[13] w[14] w[15] 74 1 6f 5c 6a 6b 04 58 7c 17 13 4b f3 91 f0 c4 9c 0d fd 39 12 1f e2 db 77 2 33 6 d1 d3 e0 e6 75 a6 46 a0 a0 c1 f3 c5 ea 2b d8 1d 80 ab 73 6e

RoundKey#4 RoundKey#5 RoundKey#6

w[16] w[17] w[18] w[19] w[20] w[21] w[22] w[23] w[24] w[25] w[26] w[27] cd Da c9 82 95 4f 86 4 f0 bf 39 3d f2 Ed 0f d4 5e b3 bc 68 df 6c d0 b8 ea 4c 0a aa 7d 31 3b 91 8b ba 81 10 33 98 eb 85 20 b8 53 d6 d2 6a 39 ef

RoundKey#7 RoundKey#8 RoundKey#9

w[28] w[29] w[30] w[31] w[32] w[33] w[34] w[35] w[36] w[37] w[38] w[39]

dc 63 5a 67 de bd e7 80 aa 17 f0 70

15 79 a9 11 c7 be 17 6 46 f8 ef e9

54 ee 6f 7f 6f 81 ee 91 0c 8d 63 f2

(16)

RoundKey#10 w[40] w[41] w[42] w[43] 82 95 65 15 cf 37 d8 31 a3 2e 4d bf ec be a5 be

3.1.3.2 Analisa AddRoundKey pada Proses Dekripsi

Tidak seperti pada proses enkripsi dimana proses setelah pembentukan kunci ekspansi adalah proses Sub-byte, ShiftRow, MixcColumn dan AddRoundKey. Pada proses dekripsi proses setelah pembentukan kunci ekpsansi adalah proses AddRoundKey menggunakan ExpandKey yang terakhir atau yang kesepuluh dengan cipher text, yang prosesnya adalah:

RoundKey #10 82 95 65 15 cf 37 d8 31 a3 2e 4d bf ec be a5 be (matriks A) Cihper Text 80 7f 55 95 90 50 73 6b 88 c2 6d a6 fb d0 31 47 (matriks B)

Dilakukan proses XOR atara matriks A dan matriks B, sehingga didapat

02 ea 30 80 5f 67 ab 5a 2b ec 20 19 17 6e 94 f9

(matriks C)

Matriks C ini selanjutnya kita sebut matriks awal rounde kesatu yang nantinya akan dilakukan proses InvShiftRow, InvSubByte dan AddRoundKey. AddRoundKey pada tahap kesatu ini akan menggunakan RoundKey #9.

3.1.3.3 Analisa Invers ShiftRow pada Proses Dekripsi.

Menggunakan data masukan (matriks C) hasil dari XOR antara cipher text dan RoundKey #10.

(17)

02 ea 30 80 5f 67 ab 5a 2b ec 20 19 17 6e 94 f9 (matriks C) Setelah proses InvShiftRow : 02 ea 30 80 5a 5f 67 ab 20 19 2b ec 6e 94 f9 17 (matriks D)

3.1.3.4 Analisa Invers SubByte pada Proses Dekripsi.

Pada proses invers sub byte ini, table acuan yang digunakan berbeda dengan table enkripsi, tabel tersebut dapat dilihat dibawah ini:

Tabel 3.6. Referensi Tabel Subbyte Proses Dekripsi

Matriks hasil invers ShiftRow (matriks D) kemudian akan di SubByte dengan tabel referensi diatas, sehingga menjadi:

02 ea 30 80 5a 5f 67 ab 20 19 2b ec 6e 94 f9 17 (matriks D) Setelah proses SubByte: 6a bb 08 3a 46 84 0a 0e 54 8e 0b 83 45 e7 69 87 (matriks E)

(18)

3.1.3.5 Analisa Invers AddRoundKey pada Proses Dekripsi

Berikutnya adalah melakukan proses XOR antara matriks hasil proses subbyte (matriks E) dengan RoundKey #9.

6a bb 08 3a 46 84 0a 0e 54 8e 0b 83 45 e7 69 87 (matriks E) XOR aa 17 f0 70 46 f8 ef e9 0c 8d 63 f2 bd 52 1b 1b (RoundKey #9) = C0 ac f8 4a 00 7c e5 e7 58 03 68 71 F8 b5 72 9c (matriks F)

Proses terus dilakukan sampai putaran ke sepuluh sampai akhirnya didapat plain text hasil dekripsi, yaitu :

73 75 72 61 63 68 6d 61 6e 34 31 35 30 35 31 32

Yang dalam bentuk barisnya adalah 73 75 72 61 63 68 6d 61 6e 34 31

35 30 35 31 32, dan jika dikonversi kedalam textnya akan menjadi

surachman4150512.

Penjelasan lebih lanjut dari proses dekripsi ini dapat dilihat pada lampiran 2

3.1.4 Analisis Penerapan Enkripsi dan Dekripsi

Dari uraian bab 2 dan analisa algoritma Rijndael pada awal bab 3 kita dapat melihat bahwa proses-proses yang terjadi adalah proses biasa dan dapat kita terapkan dan tuliskan kedalam bahasa program manapun yang mendukung penangan input-output file dan array seperti bahasa C, visual basic, java dan lain sebagainya. Dibawah ini akan dijelaskan sedikit pseuodecode-pseudecode inti yang menjadi mesin aplikasi dalam menciptakan kode enkripsi Rijndael.

(19)

Funsi Cipher()

Fungsi ini adalah fungsi keseluruhan dari algoritma dalam bahasa pemrogaman yang ditulis.

Cipher(byte in[4*Nc], byte out[4*Nc], word k[Nn+1,Nc], Nc, Nn) Begin

byte state[4,Nc]

state = in

XorRoundKey(state, k[0,-], Nc) // k[0,-] = k[0..Nc-1] for round = 1 step 1 to Nn – 1

SubBytes(state, Nc) ShiftRows(state, Nc) MixColumns(state, Nc) XorRoundKey(state, k[round,-], Nc) end for SubBytes(state, Nc) ShiftRows(state, Nc) XorRoundKey(state, k[Nn,-], Nc) out = state end

1. Pada awal enkripsi, input plaintext 128 bit akan disalinkan ke suatu array yang diberi nama state array. Dengan variable :

- Nc adalah jumlah kolom, nilai 4 adalah standar AES 128-bit - Nn adalah jumlah ronde, nilai 10 adalah standar AES 128-bit

2. Notasi k[Nn+1,Nc] mengidentifkasikan bahwa array k mengandung Nn +1 pada tiap roundenya.

3. Proses enkripsi dimulai dengan suatu proses yang disebut XORAddRoundKey() dengan memproses matrix byte in yang telah berukuran 4 x 4.

4. Melakukan proses iterasi sebanyak 9 rounde untuk proses SubBytes(),ShiftRows(), MixColumns() dan AddRoundKey().

5. Dan melakukan proses SubBytes(),ShiftRows(),dan AddRoundKey() sebanyak 1 ronde

(20)

Fungsi XorRoundKey()

XorRoundKey(byte state[4,Nc], word k[round,*], Nc) Begin

for c = 0 step 1 to Nc – 1 for r = 0 step 1 to 3

state[r,c] = state[r,c] xor xbyte(r, k[round,c])

end for end for

end

- Melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round.

- Plainteks diolah dengan mengimplementasaikan bitwise XOR dengan komponen round key. Pada keadaan awal, cipher key-lah yang menjadi round key. . Fungsi SubByte() SubBytes(byte state[4,Nc], Nc) begin for r = 0 step 1 to 3 for c = 0 step 1 to Nc - 1 state[r,c] = Sbox[state[r,c]] end for end for end

- Tiap nilai dari matrix hasil proses XorRoundKey akan di petakan pada Sbox dan akan menghasilkan matriks baru.

Fungsi ShiftRows() ShiftRows(byte state[4,Nc], Nc) begin byte t[Nc] for r = 1 step 1 to 3 for c = 0 step 1 to Nc - 1 t[c] = state[r, (c + h(r,Nc)) mod Nc] end for for c = 0 step 1 to Nc – 1 state[r,c] = t[c] end for end for end

- Initalisasi baris yang akan digeser (baris 2, baris 3, dan baris 4) - Baris 2 akan mengalami pergeseran bit sebanyak satu step ke kiri

(21)

- Baris 3 akan mengalami pergeseran bit sebanyak dua step ke kiri - Baris 4 akan mengalami pergeseran bit sebanyak tiga step ke kiri. Fungsi MixClumn () MixColumns(byte state[4,Nc], Nc) begin byte t[4] for c = 0 step 1 to Nc – 1 for r = 0 step 1 to 3 t[r] = state[r,c] end for for r = 0 step 1 to 3

state[r,c] = FFmul(0x02, t[r]) xor FFmul(0x03, t[(r + 1) mod 4]) xor t[(r + 2) mod 4] xor t[(r + 3) mod 4] end for

end for end

- Mengambil nilai kolom pertama tiap baris dari hasil matrik siftrow

- Melakukan proses XOR antara kolom pertama tiap baris tersebut dengan galois field yang merupakan konstanta AES-128bit.

3.1.5 Analisis Dampak Sistem

Pada setiap pengimplementasian suatu aplikasi, perlu kita perhatikan dampak-dampak yang ditimbulkannya. Dalam hal ini, kita akan membahas dampak aplikasi yang akan kita bangun terhadap sistem komputer dan dampak keamanan yang diberikan oleh aplikasi tersebut.

1. Dampak Aplikasi terhadap Sistem Komputer

Aplikasi yang akan dibangun merupakan aplikasi yang berdiri sendiri yang didukung .Net Framework sehingga hasil pemrograman berbasis objek menjadi aplikasi yang konsisten terlepas dari apakah obyek itu disimpan dan dieksekusi secara lokal, dan didistribusikan melalui internet, atau dieksekusi secara remote. Lingkungan ini juga mengurangi penggunaan piranti lunak dan konflik terhadap masalah versioning.

2. Dampak Keamanan yang Diberikan Aplikasi

Dengan dienkripsinya file-file yang kita simpan atau akan kita kirimkan, maka informasi yang ada didalamnya akan terlindung dari kebocoran yang tidak kita harapkan.

(22)

Secara matematis berbagai pembuktian telah dilakukan dan ditunjukkan bahwa AES dapat bertahan menghadapi serangan-serangan berikut ini :

Differential Cryptanalisis dan Linear Cryptanalysis,

Truncated Differentials, The Square Attacks, dan Interpolation Attacks Brute force attack

3. Perbandingan dengan Aplikasi Enkripsi standard

Aplikasi yang kita bangun memberikan nilai lebih berupa keamanan dalam menjaga kerahasiaan isi dari file dan dapat melakukan pengenkripsian banyak file secara sekaligus dalam waktu yang cepat.

3.2 ANALISIS KEBUTUHAN PEMBANGUNAN APLIKASI

Dari paparan analisa permasalahan yang telah dijabarkan pada bagian sebelumnya, berikutnya kita akan menganalisa proses dari pembangunan aplikasi ini. Analisa yang dibahas akan meliputi analisa kebutuhan perangkat lunak, perancangan arsitektur aplikasi serta proses yang ada didalamnya.

3.2.1 Deskripsi Umum Sistem

Aplikasi yang akan dibangun merupakan aplikasi yang akan diterapkan pada komputer berbasis Microsoft Windows, yang memiliki fungsi untuk enkripsi dan dekripsi file. Jika file yang kita enkripsi akan dipindahkan atau dikirimkan ke pihak lain, maka program aplikasi yang sama harus ada pada pc pihak lain tersebut.

Data yang akan digunakan dalam sistem yaitu : 1. File data standard

File data ini adalah file yang akan dipilih untu dienkripsi yang dipilih oleh pengguna aplikasiData pesan SMS adalah pesan yang dimasukan oleh pengirim yang ditujukan kepada si penerima. Data pesan SMS ini adalah

(23)

pesan yang belum terenkripsi. Data pesan ini merupakan pesan teks yang kemudian dalam proses enkripsi akan diubah menjadi bentuk binary.

2. File data Terenkripsi

File ini adalah file yang telah melalui proses enkripsi oleh aplikasi yang akan dibangun berdasarkan kunci yang dimasukkan oleh pengguna. File ini sudah dalam bentuk binary sehingga jika kita buka, maka kita tidak akan mengerti isinya.

3. Data Kunci Enkripsi

Data kunci ini berasal dari pengguna yang akan digunakan untuk melakukan proses enkripsi. Data Kunci Enkripsi ini dapat dipakai untuk memperoses file-file lain yang dilakuan secara bersamaan.

Data kunci ini pun diubah menjadi bentuk binary. 4. Data Kunci Dekripsi

Data ini berasal dari pelaku enkripsi. Penggunaan kunci dekripsi ini dapat dilakukan secara bersamaan untuk mendekripsi satu atau lebih file yang telah dienkripsi. Jika kunci yang digunakan sama dengan data kunci enkripsi, maka file yang telah didekripsi akan sesuai dengan apa yang diharapkan.

5. File data keluaran

File ini adalah hasil akhir yang didapat oleh penerima setelah data kunci dekripsi dimasukkan. File asli yang telah didekripsi akan dapat dibuka berdasarkan apliaskasi program bawaannya.

3.2.2 Analisis Spesifikasi dan Kebutuhan Aplikasi

Pada pengembangan aplikasi ini, terdapat dua proses fitur utama yang akan diberikan. Fitur tersebut adalah :

1. Fitur Enkripsi 2. Fitur Dekripsi

Dengan melihat kebutuhan utama yang diutarakan di atas, serta dengan mengingat kebutuhan akan kemudahan dalam pemakaian, maka aplikasi yang akan dibangun memiliki beberapa kebutuhan yang harus tersedia. Kebutuhan fungsional aplikasi tersebut yaitu :

1. Sistem memiliki kemampuan untuk dapat melakukan merubah segala bentu file kedalam bentuk binary.

(24)

2. Sistem dapat melakukan enkripsi file dengan menggunakan algoritma enkripsi Rijndael.

3. Sistem harus dapat melakukan penulisan file output sebagai proses akhir dari enkripsi atau dekripsi.

4. Pesan yang telah dienkripsi harus dapat dibedakan dengan sebelum dienkripsi. Begitupun sebaliknya.

Sedangkan untuk kebutuhan non-fungsional dari apliakasi yang akan dibangun antara lain :

1. Sistem akan memiliki antar muka yang menarik dan juga mudah untuk dimengerti untuk digunkan.

2. Sistem mudah untuk dikembangkan untuk kebutuhan atau perbaikan lebih lanjut. Sistim pemrograman berorientasi objek dengan rancangan kelas dirasakan penulis dapat memenuhi hal ini, sistem sebaiknya dibangun dengan konsep pemrograman berorientasi objek.

3.2.3 Batasan Rancangan Sistem

Batasan rancangan sistem dalam pengembangan perangkat lunak ini adalah sebagai berikut:

1. Perangkat lunak hanya bekerja dilingkungan Microsoft Windows (Windows XP Home/Pro, Windows Server 2003/2008, Windows 7 Pro/Ultimate 32bit/64bit).

2. Perangkat lunak hanya melakukan enkripsi file pada 1 kali iterasi. Jadi file yang sudah dienkripsi tidak dapat dilakukan enkripsi lagi.

3. Ukuran blok untuk algoritma Rijndael adalah 128 bit. 4. Ukuran 1 file yang dapat dienkripsi adalah 2 gigabyte.

3.2.4 Use Case

Pemodelan aplikasi yang akan dibangun dapat digambarkan dalam bentuk diagram use case. Pada pembuatan aplikasi ini use case yang dibuat dapat dilihat pada Gambar 3.8 berikut:

(25)

Melakukan dekripsi Melakukan enkripsi Memilih lokasi file Memilih file Memasukkan katakunci Pengguna Membentuk roundkey <<extend >> << extend >> <<extend >> <<extend >> Plain text ciphertext <<extend >> <<extend>> S I S T E M aplikasi

Gambar 3.8 Use Case Diagram

Penjelasan untuk gambar diatas adalah sebagai berikut Use Case Name Melakukan enkripsi

Tujuan Pengguna ingin melakukan enkripsi file

Aktor Pengguna

Keterangan - Pengguna memasukkan katakunci yang akan digunakan untuk mengenkripsi file

- Pengguna meregister folder tempat lokasi file yang akan dienkripsi berada

- Pengguna memilih file yang akan dienkripsi di folder yang telah teregister (contohnya jika ada 3 file dalam folder tersebut, tetapi hanya 2 file saja yang akan dipilih untuk dienkripsi)

- Roundkey akan dibangun berdasarkan file dan kata kunci yang dimasukkan

- Sistem akan mengenkripsi file dan isi file akan menjadi ciphertext

(26)

berubah menjadi ciphertext akan di simpan pada folder yang sama, ekstensi .aes akan ditambahkan pada file yang telah terenkripsi, dan file asli sebelum enkripsi akan dihapus

Use Case Name Melakukan dekripsi

Tujuan Pengguna ingin melakukan dekripsi file

Aktor Pengguna

Keterangan - Pengguna memasukkan katakunci yang akan digunakan untuk dekripsi file

- Pengguna meregister folder tempat lokasi file yang akan didekripsi berada

- Pengguna memilih file yang akan didekripsi di folder yang telah dipilih

- Roundkey akan dibangun berdasarkan file ciphertext dan kata kunci yang dimasukkan

- Sistem akan mendekripsi file

- File yang telah didekripsi akan di simpan pada folder yang sama, ekstensi .aes akan dihilangkan, dan file asli enkripsi akan dihapus

(27)

3.2.5 Aktivity Diagram

Activity diagram dari program enkripsi file yang dibuat dapat dilihat pada Gambar 3.9 dibawah ini.

Masukan kata kunci

Pilih folder

Pilih file yang akan dienkripsi Tambah

folder lain

ciphertext ya

Hapus file asli Proses enkripsi file

Pengguna Sistem aplikasi

Gambar 3.9. Aktivity Diagram enkripsi

- Aktifitas dimulai setelah user menjalankan aplikasi, user diminta untuk memasukkan kata kunci.

- Selanjutnya user diminta untuk meregistrasi folder yang digunakan sebagai penunjuk tempat file yang akan dienkripsi berada.

- Jika ada file lain di folder yang berbeda, maka user dapat menambahkan folder lain tersebut.

- User dapat memilih file-file yang akan dienkripsi dimasing-masing folder yang berbeda.

- Setelah file enkripsi yang sudah berupa ciphertext terbentuk, maka file original akan dihapus.

(28)

Sedangkan diagram activity untuk dekripsi digambarkan pada Gambar 3.10 dibawah ini :

Masukan kata kunci

Pilih folder

Pilih file yang akan didekripsi Tambah

folder lain

plaintext ya

Hapus file enkripsi Proses dekripsi file

Pengguna Sistem aplikasi

Gambar 3.10 Aktivity Diagram Dekripsi

- Seperti proses enkripsi, pada proses dekripsi pengguna diminta terlebih dahulu untuk memasukkan kata kunci yang digunakan untuk melakukan proses dekripsi file.

- Setelah itu pengguna diminta untuk memilih folder tempat file tersebut berada.

- Kemudian pengguna diminta untuk memilih file-file yang akan didekripsi dimasing-masing folder.

- Jika kata kunci yang dimasukkan benar, maka proses dekripsi dapat dilakukan dan akan menghasilkanvplaintext

- Program akan menghaspus file enkripsi jika proses dekripsi telah berhasil dilakukan.

(29)

3.3 PERANCANGAN KELAS

Dari diagram use case diatas, dapat dirancang menjadi beberapa kelas yang terdapat dalam sistem. Kelas-kelas tersebut dapat digambarkan sebagai berikut:

inisialisasi_file -filename : string -filelenght : int -fileposition : int +get filename () : void +get filelenght () : void +get fielposition () : void

form_password - textbox1 : string + get password () : void

form_proses -btnAdddir : string -btnRemDir :string -cryptoIV : byte -cryptoKey : byte +btnAddDir_click () : void +btnRemDir () : void +listview () : void +proses_enkripsi () : void +proses_dekripsi : void KriptoManager inName : string outName : string Pass : string rijnKey : byte RijnIV : byte +key_encrypt +rijdael_encrypt +rijndael_decrypt

Gambar 3.11. Diagram kelas perancangan

Dari gambar diatas dapat dijelaskan : 1. Kelas FormPassword

Kelas ini berfungsi sebagai jembatan antar muka dalam memasukkan kata kunci yang akan digunakan untuk proses enkripsi atau dekripsi.

2. Kelas FormProses

Kelas ini berfungsi sebagai tempat dimana proses dari aplikasi yang dibuat dipilih untuk dijalankan baik itu proses enkripsi, proses dekripsi, peregistrian folder, dan pemilihan file dilakukan.

3. Kelas KryptoManager

Kelas ini adalah mesin aplikasi program yang dibuat. Input yang diberikan akan diproses menjadi output. Algoritma enkripsi beserta pembentukan kunci internal akan diimplementasikan pada kelas ini.

(30)

Kelas ini digunakan untuk menampilkan isi file dari suatu folder yang dipilih dan memilih file yang akan dienkripsi atau didekripsi.

5. Kelas Insialisasi_file

Pada kelas ini akan diinisialisasi nama dari file yang akan dienkripsi, lokasinya dan panjang dari file tersebut.

3.4 PERANCANGAN ANTARMUKA PERANGKAT LUNAK

Antarmuka aplikasi terdiri dari dua bagian, yaitu bagian input kunci enkripsi/dekripsi dan bagian proses.

Bagian input kunci untuk enkripsi/dekripsi dapat dilihat pada gambar.

Masukan kata kunci untuk enkripsi / dekripsi

ok

Gambar 3.12 Form input kunci enkripsi/dekripsi

Untuk antar muka proses enkripsi / dekripsi dibagi menjadi 2 tabulasi yang nantinya akan digabungkan dalam satu form.

(31)

Gambar 3.14 Rancangan antarmuka Proses Enkripsi/Dekripsi

Keterangan Gambar 3.13:

No# Keterangan

1 Untuk menutup program aplikasi

2 Folder-folder yang telah didaftar kan akan tertera di table ini 3 Folder-folder yang telah didaftar kan akan tertera di table ini

4 Jika ingin menambahkan folder lainya, maka tombol ini harus diklik

Keterangan Gambar 3.14:

No# Keterangan

1 Untuk menutup program aplikasi.

2 Daftar folder yang sudah didaftarkan sebelumnya.

3 File asli yang belum terenkripsi dalam folder yang sudah dipilih Jika folder lain akan diproses, maka kembali ke nomor 2.

4 Proses enkripsi akan dilakukan sesuai dengan file-file yang tertera di nomor 3.

5 Proses dekripsi file-file yang sudah dienkripsi yang berada di tabel nomor 7. Jika folder awal sudah berubah/tidak ditemukan, maka

(32)

folder baru tempat penampungan file yang akan didekripsi harus didaftar kan terlebih dahulu.

6 Untuk menghilangkan memori hasil proses yang mungkin masih tersimpan.

7 Tabel file-file yang telah dienkripsi yang berada di foder yang telah didaftarkan sebelumnya.

8 Indikator yang menunjukkan file yang sedang diproses, ukuran file dan waktu proses.

Gambar

Gambar 3.2 Pencarian Google untuk meretas password dokumen word
Gambar 3.3 Program Password Recovery Word 2007
Gambar 3.6  Dokument word yang diberi password dan dibuka dengan notepad
Tabel 3.1  Konversi plain teks dalam bit dan hexadesimal
+7

Referensi

Dokumen terkait

- Hubungkan dua titik tersebut, sehingga membentuk garis lurus yang merupakan grafik persamaan yang di cari.. Menyatakan Persamaan Garis Jika

[r]

terbatas (PT), lain halnya dengan izin usaha sebagai lembaga Keuangan Mikro Syariah. Dalam menjalankan kegiatan usahanya, setiap Bank pasti berorientasi pada

Untuk divider, digunakan illustrasi sederhana yang menggambarkan icon dikombinasikan dengan foto yang mewakili perjalanan yang dimuat pada bab tersebut. M isalnya untuk hari

Salah satu alat pengeringan yaitu rotary dryer (pengering putar) yang terdiri dari sebuah selongsong berbentuk silinder yang berputar, horisontal, atau agak miring ke bawah ke

Penelitian ini bertujuan mengetahui kelengkapan dokumen Andalalin dibandingkan ketentuan yuridis dan teknis; mengetahui kinerja lalu lintas di ruas jalan dan simpang di

Tanggung jawab sosial dalam perusahaan atau corporate social responsibility (CSR) adalah mekanisme bagi suatu organisasi untuk secara sukarela mengintegrasikan perhatian terhadap

Penyampaian SPT Tahunan dapat dilakukan secara langsung di Kantor Pelayanan Pajak tempat Wajib Pajak terdaftar atau dikukuhkan atau tempat lain yang ditetapkan