jurnal rido

Upload: rido-telah

Post on 08-Jul-2015

345 views

Category:

Documents


0 download

TRANSCRIPT

APLIKASI ENKRIPSI DAN DEKRIPSI FILE DENGAN MENGGUNAKAN ALGORITMA AES (ADVANCED ENCRYPTION STANDARD) Rido Telah [email protected] Dr. Ir. Rinaldi Munir, MT [email protected] Debby Paseru, ST, MMSI, M.Ed [email protected] Program Studi Teknik Informatika Universitas Katolik De La Salle Tanawangko, Desa Tamabala Jaga III, Kec. Tombarir, Kab. Minahasa (SULUT) ABSTRACT Along withthe development of the age,increasinghumanneeds. Including theneedforinformation.To ensure the security and integrity of the data, needed an encryption process. By way of encoding the original data will not be read by unauthorized parties, but only by a recipient whohas the decryptionkey. Encouraged by theusefulness of animportantearlier, techniques (algorithms) encryptionhas evolved sincethedaysofyore.StartingfromtheBCera,untilnowtheencryptionalgorithmsarealwaysevolving.Theconsiderationthatanew standard algorithm that required to maintain the confidentiality of the data Cryptography is thestudy of mathematical techniques related to the security aspects of an information system, among other things such as confidentiality,data integrity, authentication, and lack of denial. The fourth aspect isa fundamental goal of cryptographic system.Currently,AESisusedasthelateststandardcryptographicalgorithms.AESitselfisacryptographicalgorithmusingRijndael algorithm to encrypt and decrypt data blocks with a 128-bit keylength 128bits, 192bits or 256bits. In the process of software development methodologyofthestudyauthorsusingRationalunifiedProcess(RUP)asamethodofwritingandusingtheVisualBasicprogramming language .Net/2008 to do the coding. The results showed that the AES algorithm with 256 bit key length can encrypt any file type with a different extension, so it can securethosefiles.InthesubsequentsystemdevelopmentsystemisexpectedtohavefacilitiesforencryptionanddecryptionAswellasthe directory folders and drives, has the ability to list the files - files that are encrypted. ABSTRAK Seiringdenganperkembanganzaman,kebutuhanmanusiameningkat.Termasukkebutuhanakaninformasi.Untukmenjamin keamanan dan keutuhan dari suatu data, dibutuhkan suatu proses penyandian. Dengan cara penyandiandata asli tidak akan terbaca oleh pihak yang tidak berkepentingan,melainkanhanya oleh penerimayangmemiliki kunci dekripsi. Didorongoleh kegunaanyang pentingtadi, teknik (algoritma) penyandian telah berkembang sejak zaman dahulu kala. Mulai dari era sebelummasehi, hingga sekarang algoritma penyandian ini selalu berkembang. Pertimbangannya bahwa sebuah standard algoritma yang baru sangatlah diperlukan untuk tetap menjaga kerahasiaan suatu data Kriptografimerupakanstudi terhadapteknikmatematisyangterkaitdenganaspekkeamanansuatusisteminformasi,antaralain seperti kerahasiaan, integritas data, otentikasi, dan ketiadaan penyangkalan. Keempat aspek tersebut merupakan tujuan fundamental dari suatu sistem kriptografi. Saatini,AESdigunakansebagaistandaralgoritmakriptografiyangterbaru.AESsendiriadalahalgoritmakriptografidengan menggunakan algoritma Rijndael yang dapat mengenkripsi dan mendekripsi blok data sepanjang 128 bit dengan panjang kunci 128 bit, 192 bit, atau256bit.DalamprosespengembanganperangkatlunakpenulismenggunakanmetodologipenelitianRationalUnifieldProcess(RUP) sebagai metode penulisan laporan dan menggunakan bahasa pemrograman Visual Basic .Net/2008 untuk melakukan pengkodingan.HasilpenelitianmenunjukkanbahwaalgoritmaAESdenganpanjangkunci256bitdapatmenyandikansembarangjenisfile dengan existensiyang berbeda-beda,sehingga dapatmengamankanfile tersebut. Dalampengembangan sistemberikutnya diharapkan sistem dapat mempunyai fasilitas enkripsi dan dekripsiuntuk directory folder dan drive Serta, mempunyai kemampuan list berkas berkas yang akan dienkripsi. 1.PENDAHULUAN 1.1.Latar Belakang Salahsatuhalterpentingdalamkomunikasi menggunakankomputerdanjaringankomputeradalah untukmenjaminkeamananpesan,data,ataupun informasidalamprosespertukarandata,sehingga menjadisalahsatupendorongmunculnyateknologi Kriptografi.Kriptografiberbasispadaalgoritma pengkodeandatayangmendukungkebutuhandaridua aspekkeamananinformasi,yaitusecrecy(perlindungan terhadapkerahasiaandata)danauthenticity (perlindunganterhadappemalsuandanpengubahan informasi yang tidak diinginkan) [1]. Dalam kriptografi terdapat dua konsep utama yaitu enkripsidandekripsi.Enkripsiadalahprosesdimana informasi/datayanghendakdikirimkemudiandiubah menjadibentukyanghampirtidakdikenalisebagai informasiawalnyadenganmenggunakanalgoritma tertentu.Dekripsiadalahkebalikandarienkripsiyaitu mengubahkembalibentuktersamartersebutmenjadi informasi awal.Enkripsidapatdiartikansebagaikodeataucipher. Sebuahsistempengkodeanmenggunakansuatutabel ataukamusyangtelahdidefinisikanuntukkatadari informasiatauyangmerupakanbagiandaripesan,data, atauinformasiyangdikirim.Sebuahcipher menggunakansuatualgoritmayangdapatmengkodekansemuaalirandata(stream)bitdarisuatu pesanasli(plaintext)menjadicryptogramyangtidak dimengerti.Adapunalgoritma-algoritmayang berkembangsaatinisepertiDataEncryptionStandar (DES),InternasionalDataAlgorithm(IDEA),Rivest-ShamirandAdleman(RSA),Blowfish,RC5danlain-lain. Namun, dari berbagai algoritma-algoritma yang ada AdvancedEncryptionStandar(AES),merupakan algoritmakriptografiyangsudahterstandarisasioleh National Institutes of Standards and Technology (NIST). 1.2.Perumusan Masalah Bagaimanamerancangprogramaplikasi kriptosistemmenggunakanalgoritmaenkripsiAES( AdvancedEncryptionStandard)yangdapat mengenkripsidanmendekripsisemuajenisfiledengan ukuran yang berbeda? 1.3.Tujuan Tugas Akhir Perancangankriptosistemdenganmenggunakan algoritma AES ini memiliki tujuan yaitu a.Mempelajari algoritma AES. b.Merancangaplikasienkripsidan dekripsi dengan AES. c.Mengimplementasikanaplikasienkripsi dan dekripsi. d.Melakukanpengujianterhadapaplikasi yang telah dibangun 1.4.Manfaat Tugas Akhir Perancangan kriptosistem menggunakan algoritma AES ini bermanfaat untuk menjaga keamanan dari pihak yangtidakmemilikihakaksesterhadap suatu data, baik data berupa e-mail documentmaupun berkas pribadi. 1.5.Ruang Lingkup dan Batasan Masalah a.Ruang Lingkup Ruang lingkup:1.Mengumpulkandatadanreferensiyang berhubungandenganpenelitiantugasakhiryang akan dibuat.2.Mengidentifikasidanmenganalisis permasalahansertapersyaratanpenggunadan sistem.3.Merancangstoryboard,tampilanantarmuka algoritma, dan menentukan proses-proses yang terjadi dalam aplikasi yang akan dibangun.4.Melakukanpemrogramandanpengujian terhadap aplikasi yang telahdibangun. 5.Fitur-fituryangdikembangkandalamaplikasi ini adalah sebagai berikut: a.Menu Encrypt Untuk masuk ke dalam modul Enkripsi untuk proses menyandikan data. b.Menu Decrypt UntukmasukkedalammodulDekripsi untuk membalikkan prosespenyandian data. c. Menu About UntukmasukkedalammodulAboutyang memilikiinformasitentangprogramdan pembuatnya. d.Menu Help UntukmasukkedalammodulHelpsebagai tempatmencari informasi b.Batasan Masalah 1.Aplikasi yang dibuat tidak menangani proses distribusikunci,diasumsikanpengirimdan penerima sudah memiliki kunci yang sama. 2.Aplikasiyangdibuattidakmenangani enkripsidandekripsiberupalistberkas-berkas yang akan dienkripsi 3.Aplikasiyangdibuathanyauntukpanjang kunci 256 bit dan ukuran block 128 bit. 4.Lamanyawaktuuntukenkripsi/dekripsi tergantungkecepatandarisistemkomputer yang dipakai. 2.LANDASAN TEORI 2.1. Pengertian Kriptografi [3] Keamanantelahmenjadiaspekyangsangat pentingdarisuatusisteminformasi.Sebuahinformasi umumnyahanyaditujukanbagisegolongantertentu. Oleh karena itu sangat penting untuk mencegahnya jatuh kepadapihak-pihaklainyangtidakberkepentingan. Untukmelaksanakantujuantersebutlahdirancangsuatu sistemkeamananyangberfungsimelindungisistem informasi. Salahsatuupayapengamanansistem informasiyangdapatdilakukanadalahkriptografi. Kriptografisesungguhnyamerupakanstuditerhadap teknikmatematisyangterkaitdenganaspekkeamanan suatusisteminformasi,antaralainsepertikerahasiaan, integritasdata,otentikasi,danketiadaanpenyangkalan. Keempataspektersebutmerupakantujuanfundamental dari suatu sistem kriptografi. 1.Kerahasiaan (confidentiality) Kerahasiaanadalahlayananyang digunakanuntuk menjagainformasidarisetiappihakyangtidak berwenanguntukmengaksesnya.Dengandemikian informasihanyaakandapatdiaksesolehpihak-pihak yang berhak saja. 2.Integritas data (data integrity) Integritasdatamerupakanlayananyangbertujuan untukmencegahterjadinyapengubahaninformasioleh pihak-pihakyangtidakberwenang.Untukmeyakinkan integritas data ini harus dipastikan agar sistem informasi mampumendeteksiterjadinyamanipulasidata. Manipulasidatayangdimaksuddisinimeliputi penyisipan, penghapusan, maupun penggantian data. 3.Otentikasi (authentication) Otentikasimerupakanlayananyangterkait dengan identifikasiterhadappihak-pihakyanginginmengakses sistem informasi (entity authentication) maupun keaslian datadarisisteminformasiitusendiri(dataorigin authentication).4.Ketiadaan penyangkalan (non-repudiation) Ketiadaanpenyangkalanadalahlayananyang berfungsiuntukmencegahterjadinyapenyangkalan terhadapsuatuaksiyangdilakukanolehpelakusistem informasi. 2.2. Sejarah Kriptografi [1] Kriptografimemilikisejarahyangpanjang danmengagumkan.Penulisanrahasiainidapatdilacak kembalike3000tahunSMsaatdigunakanolehbangsa Mesir.Sekitar50SM,JuliusCaesar,kaisarRoma, menggunakan cipher substitusi untuk mengirim pesan ke MarcusTulliusCicero.Padacipherini,huruf-huruf alfabetdisubstitusidenganhuruf-hurufyanglainpada alfabetyangsama.Karenahanyasatualfabetyang digunakan,cipherinimerupakansubstitusi monoalfabetik.Ciphersemacaminimencakup penggeseranalfabetdengan3hurufdan mensubstitusikanhuruftersebut.Substitusiinikadang dikenaldenganC3(untukCaesarmenggeser3tempat). Secaraumum sistem cipherCaesardapat ditulissebagai berikut : Zi= Cn(Pi).........................(i) 2.3.Mekanisme Kriptografi [2] Suatusistemkriptografi(kriptosistem) bekerjadengancaramenyandikansuatupesanmenjadi suatukoderahasiayangdimengertiolehpelakusistem informasi saja. Pada dasarnya mekanisme kerja semacam ini telah dikenal sejak jaman dahulu. Bangsa Mesir kuno sekitar4000tahunyanglalubahkantelah mempraktekkannya dengan cara yang sangat primitif.Dalamerateknologiinformasisekarangini, mekanismeyangsamamasihdigunakantetapitentunya implementasisistemnyaberbeda.Sebelummembahas lebihjauhmekanismekriptografimodern,berikutini diberikan beberapa istilahyangumumdigunakandalam pembahasan kriptografi. 1.Plaintext Plaintext(message)merupakanpesanasliyangingin dikirimkan dan dijagakeamanannya.Pesan ini tidak lain dari informasi tersebut. 2.Chipertext Chipertextmerupakanpesanyangtelahdikodekan (disandikan) sehingga siap untuk dikirimkan.3.Chiper Chipermerupakanalgoritmamatematisyang digunakanuntukprosespenyandianplaintext menjadi ciphertext. 4.Enkripsi Enkripsi(encryption)merupakanprosesyang dilakukanuntukmenyandikanplaintextsehingga menjadi chipertext. 5.Dekripsi Dekripsi(decryption)merupakanprosesyang dilakukanuntukmemperolehkembaliplaintext dari chipertext. 6.Kriptosistem Kriptosistemmerupakansistemyangdirancang untukmengamankansuatusisteminformasi dengan memanfaatkan kriptografi. 2.4.Kriptografi Kunci Simetri [5] Secret-keycryptographykadangdisebut sebagaisymmetriccryptographymerupakanbentuk kryptografiyanglebihtradisional,dimanasebuahkunci tunggaldapatdigunakanuntukmengenkripdan mendekrippesan.Secret-keycryptographytidakhanya berkaitandenganenkripsitetapijugaberkaitandengan otentikasi, disebut juga message authentication codes. Gambar 2.1Taksonomi primitif kriptografi 2.5.Algoritma AES-Rijndael [4] PadaalgoritmaAES,jumlahblokinput,blok output,danstateadalah128bit.Denganbesardata 128 bit, berarti Nb =4 yang menunjukkan panjang data tiap baris adalah 4 byte. Dengan panjang kunci 128-bit, maka terdapatsebanyak3,41038=2128kemungkinan kunci. Jikakomputertercepatdapatmencoba1juta kuncisetiapdetik,makaakandibutuhkanwaktu5,4 1024tahununtukmencobaseluruhkunci. Jikatercepat yangdapatmencoba 1juta kuncisetiapmilidetik,maka dibutuhkanwaktu5,41018tahununtukmencoba seluruh kunci InputdanoutputdarialgoritmaAESterdiridariurutan datasebesar128bit.Perbedaanpanjangkunciakan mempengaruhijumlahroundyangakan diimplementasikanpadaalgoritmaAESini.Dibawah ini adalah tabel yang memperlihatkan jumlah round (Nr) yangharusdiimplementasikanpadamasing-masing panjangkunci.TidaksepertiDESyangberorientasibit, Rijndaelberoperasidalamorientasibyte.Setiapputaran mengunakan kunci internal yang berbeda (disebutround key).Encipheringmelibatkanoperasisubstitusidan permutasi. 1.Ekspansi Kunci AlgoritmaAESmengambilkuncicipher,K, danmelakukanrutinekspansikunci(keyexpansion) untukmembentukkeyschedule.Ekspansikunci menghasilkantotalNb(Nr+1)word.Algoritmaini membutuhkansetawalkeyyangterdiridariNbword, dansetiaproundNrmembutuhkandatakuncisebanyak Nbword.Hasilkeyscheduleterdiridariarray4byte wordlinearyangdinotasikandengan[wi].SubWord adalahfungsiyangmengambil4bytewordinputdan mengaplikasikanS-Boxketiap-tiapdata4byteuntuk menghasilkanwordoutput.FungsiRotWordmengambil word[a0,a1,a2,a3]sebagaiinput,melakukanpermutasi siklik,danmengembalikanword[a1,a2,a3,a0].Rcon[i] terdiridarinilai-nilaiyangdiberikanoleh[xi-1,{00}, {00},{00}],denganxi-1sebagaipangkatdarix(x dinotasikansebagai{02}dalamfieldGF(28).Wordke Nkpertamapadaekspansikunciberisikuncicipher. Setiapwordberikutnya,w[i],samadenganXORdari wordsebelumnya,w[i-1]danwordNkyangadapada posisisebelumnya,w[i-Nk].Untukwordpadaposisi yangmerupakankelipatanNk,sebuahtransformasi diaplikasikan pada w[i-1] sebelum XOR, lalu dilanjutkan olehXORdengankonstantaround,Rcon[i]. Transformasiiniterdiridaripergeseransiklikdaribyte data dalam suatu word RotWord, lalu diikuti aplikasi dari lookupTabeluntuksemua4bytedatadariword SubWord. 2.Enkripsi [6] Urutan data yang sudah terbentuk dalam satu kelompok 128 bit tersebut disebut juga sebagai blok data atauplaintextyangnantinyaakandienkripsimenjadi ciphertext. Cipher keydariAES terdiridari key dengan panjang128bit,192bit,atau256bit.Prosesenkripsi padaalgoritmaAESterdiridari4jenistransformasi bytes,yaituSubBytes,ShiftRows,Mixcolumns,dan AddRoundKey.Padaawalprosesenkripsi,inputyang telahdisalinkedalamstateakanmengalami transformasi byte AddRoundKey. Setelah itu,state akan mengalamitransformasiSubBytes,ShiftRows, MixColumns,danAddRoundKeysecaraberulang-ulang sebanyakNr.ProsesinidalamalgoritmaAESdisebut sebagairoundfunction.Roundyangterakhiragak berbedadenganround-roundsebelumnyadimanapada roundterakhir,statetidakmengalamitransformasi MixColumns. AddRoundKeySubBytesShiftRowsMixColumnsAddRoundKeySubBytesShiftRowsAddRoundKeyCipher TextPlain Text Gambar 2.2Diagram Alir Proses Enkripsi SubBytes SubBytesmerupakantransformasibytedimana setiapelemenpadastateakandipetakandengan menggunakansebuahTabelsubstitusi(S-Box).Hasil yang didapat dari pemetaan dengan menggunakan Tabel S-Box. Tabeldiatassebenarnyaadalahhasildaridua proses transformasi bytes, yaitu1.Invers perkalian dalam GF(28) adalah fungsi yang memetakan8 bit ke8 bityangmerupakaninvers darielemenfinitefieldtersebut.Suatubytea merupakan invers perkalian dari byte b bila ab = 1,kecuali{00}dipetakankedirinyasendiri. Setiapelemenpadastateakandipetakanpada tabel invers. Sebagai contoh, elemen 01010011 atau{53}akandipetakanke{CA}atau 11001010. 2.Transformasiaffinepadastateyangtelah dipetakan.Transformasiaffineiniapabila dipetakandalambentukmatriksadalahsebagai berikut : ((((((((((((

+((((((((((((

((((((((((((

=((((((((((((

011000111 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 11 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 176543210'7'6'5'4'3'2'1'0bbbbbbbbbbbbbbbb b7 b6 b5 b4 b3 b2 b1 b0adalah urutan bit dalam elemen state atauarraybytedimanab7adalahmostsignificantbit atau bit dengan posisi paling kiri. Gambar 2.3Subbytes() ShiftRows Transformasi Shiftrows pada dasarnya adalah prosespergeseranbitdimanabitpalingkiriakan dipindahkanmenjadibitpalingkanan(rotasibit). Transformasiiniditerapkanpadabaris2,baris3,dan baris 4. Baris 2 akan mengalami pergeseran bit sebanyak satukali,sedangkanbaris3danbaris4masing-masing mengalamipergeseranbitsebanyakduakalidantiga kali. Gambar 2.4Transformasi shiftRows() MixColumns MixColumnsmengoperasikansetiapelemen yangberadadalamsatukolompadastate.Elemenpada kolomdikalikandengansuatupolinomialtetapa(x)= {03}x3+{01}x2 +{01}x+{02}.Secaralebihjelas, transformasimixcolumnsdapatdilihatpadaperkalian matriks berikut ini : ((((((

(((((

=((((((

ccccccccssssssss, 3, 2, 1, 0', 3', 2', 1', 002 01 01 0303 02 01 0101 03 02 0101 01 03 02 Melakukanprosespenambahanpadaoperasiiniberarti melakukanoperasibitwiseXOR,makahasildari perkalian matriks diatas dapat dianggap seperti perkalian yang ada di bawah ini : ) } 02 ({ ) } 03 ({) } 03 ({ ) } 02 ({) } 03 ({ ) } 02 ({) } 03 ({ ) } 02 ({, 3 , 2 , 1 , 0', 3, 3 , 2 , 1 , 0', 2, 3 , 2 , 1 , 0', 1, 3 , 2 , 1 ,', 0c c c c cc c c c cc c c c cc c c c o cs s s s ss s s s ss s s s ss s s s s- - =- - = - - = - - = Mixcolumnsmembutuhkantabelpenunjangdalam memperoleh hasil tabel tersebut adalah tabel E dan tabel L. Tabel 2.3 Tabel E dan Tabel L AddRoundKey Pada proses AddRoundKey, sebuah roundkeyditambahkanpadastatedenganoperasi bitwiseXOR.SetiaproundkeyterdiridariNbword dimanatiapwordtersebutakandijumlahkandengan word atau kolom yang bersesuaian dari state[wi] adalah worddarikeyyangbersesuaiandimanai= round*Nb+c.TransformasiAddRoundKey diimplementasikan pertama kali pada round = 0, dimana keyyangdigunakanadalahinitialkey(keyyang dimasukkanolehkriptograferdanbelummengalami proses key expansion). -Berikutadalahprosespembangkitan AddRoundKey -Hasil AddRoundKey yang ke-1 Gambar 2.5 Proses Pembangkitan AddRoundKey AddRoundKeyInvShiftRowsInvSubBytesAddRoundKeyInvMixColumnsInvShiftRowsInvSubBytesAddRoundKeyPlain TextCipher TextNr - 1Round3.Dekripsi Transformasicipherdapatdibalikkandan diimplementasikandalamarahyangberlawananuntuk menghasilkaninversecipheryangmudahdipahami untuk algoritma AES. Transformasi byte yang digunakan padainverscipheradalahInvShiftRows,InvSubBytes, InvMixColumns, dan AddRoundKey. Algoritma dekripsi dapat dilihat pada skema berikut ini Gambar 2.6Diagram Alir Proses Dekripsi InvShiftRows InvShiftRowsadalahtransformasibyteyang berkebalikandengantransformasiShiftRows.Pada transformasiInvShiftRows,dilakukanpergeseranbitke kanansedangkanpadaShiftRowsdilakukanpergeseran bitkekiri.Padabariskedua,pergeseranbitdilakukan sebanyak3kali,sedangkanpadabarisketigadanbaris keempat, dilakukan pergeseran bit sebanyak dua kali dan satu kali. Gambar 2.7 TransformasiInvShiftRows() InvSubBytes InvSubBytesjugamerupakantransformasi bytesyangberkebalikandengantransformasiSubBytes. PadaInvSubBytes,tiapelemenpadastatedipetakan denganmenggunakanTabelinverseS-Box.Tabelini berbedadenganTabelS-Boxdimanahasilyangdidapat dari Tabel ini adalah hasil dari dua prosesyang berbeda urutannya yaitu transformasi affine terlebih dahulu, baru kemudian perkalian invers dalam GF(28). ((((((((((((

+((((((((((((

((((((((((((

=((((((((((((

101000000 0 1 0 0 1 0 11 0 0 1 0 0 1 00 1 0 0 1 0 0 11 0 1 0 0 1 0 00 1 0 1 0 0 1 00 0 1 0 1 0 0 11 0 0 1 0 1 0 00 1 0 0 1 0 1 001234567'0'1'2'3'4'5'6'7bbbbbbbbbbbbbbbb Perkalian invers yang dilakukan pada transformasi InvSubBytes ini sama dengan perkalian invers yang dilakukan pada transformasi SubBytes. InvMixColumns PadaInvMixColumns,kolom-kolompada tiapstate(word)akandipandangsebagaipolinomatas GF(28)danmengalikanmodulox4+1denganpolinom tetap a-1(x) yang diperoleh dari : a-1(x)= {0B}x3 + {0D}x2 + {09}x + {0E}. Atau dalam matriks : ) ( ) ( ) ('x s x a x s = ((((((

(((((

=((((((

ccccccccssssE D BB E DD B ED B Essss, 3, 2, 1, 0', 3', 2', 1', 00 09 0 00 0 09 00 0 0 0909 0 0 0 Hasil dari perkalian di atas adalah : ) } 0 ({ ) } 09 ({ ) } 0 ({ ) } 0 ({) } 0 ({ ) } 0 ({ ) } 09 ({ ) } 0 ({) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 09 ({) } 09 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({, 3 , 2 , 1 ,', 3, 3 , 2 , 1 ,', 2, 3 , 2 , 1 ,', 1, 3 , 2 , 1 ,', 0c c c c o cc c c c o cc c c c o cc c c c o cs E s s D s B ss B s E s s D ss D s B s E s ss s D s B s E s- - - - =- - - - =- - - - =- - - - = Inverse AddRoundKey TransformasiInverseAddRoundKeytidak mempunyaiperbedaandengantransformasi AddRoundKeykarenapadatransformasiinihanya dilakukanoperasipenambahansederhanadengan menggunakan operasi bitwise XOR. 3.ANALISIS Dalampengembanganaplikasiini,penelitian yangdilakukanakanmengikutitahapan-tahapanyang terdapatpadametodologiRationalUnifiedProcess (RUP).Tahapan-tahapantersebutadalahInception (permulaan),Elaboration(pemerincian),Construction (konstruksi),danTransition(transisi).Padababini khususakandibahasterlebihdahulutentanganalisis sistemyangterkandungdalamfaseInceptiondan Elaboration 3.1.Inception Tujuan dari fase ini adalah:a.Memahamiapayangakandibangun. Menentukanvisi,ruanglingkupsistemdan batasannya. b.Memahamiapayangmenjadifungsionalitas sistem yang akan dibangun.c.Identifikasisetidaknyasebuahkonfigurasi yang menjadi kandidat arsitektur sistem. 3.1.1.Kebutuhan Pengguna Tabelberikutinimenjelaskanmengenai kebutuhan pengguna Tabel 3.1 Kebutuhan Pengguna NO.Kebutuhan PenggunaPrioritas 1. Sistemdapatmengenkripsifile.Tinggi 2.Sistem dapatmendekripsifile Tinggi 3. Sistemmemilikitingkat keamanan yang tinggi. Tinggi 4. Sistem memiliki tampilan yang mudahdimengerti(user friendly) Sedang 3.1.2.Analisis Kesempatan Pengembangan Aplikasi Pengembanganaplikasikriptografi merupakanilmuyangmempelajaribagaimana mengamankanpesandalamperihalberkomunikasi dengankeberadaanpihaklawanagarsupayapesan rahasiatersebuttidakjatuhkepihakyangtidak berkepentingan.Kriptografibaikdigunakanoleh kalangan diplomat, orang militer, pebisnis, dan mungkin cakupanyanglebihluaslagikarenasekarangsudah banyakberkembangkomunikasidanbahkantransaksi elektronik.Dalamhalinikriptografibergunauntuk menghindariterjadinyahal-halsepertiinterruption, interception(penyadapan),fabrication,modification, danlain-lain.sehinggakriptografidiperlukanpadasaat ini. Denganmelihatmasalahyangada,dapat disimpulkanbahwapermasalahanyangadayaitu bagaimanamembuatsuatuaplikasiyangdapat mengamankandataatauinformasiagartetapmenjadi rahasiasebelumditerimaolehpihakyangditujukan. Untukitu,penulismelihatadanyakesempatanuntuk membuataplikasiKriptografidenganmenggunakan metodeAES128blockdenganpanjangkunci256bit (Advanced Encryption Standar).Terdapatbeberapafituryangdapat disediakan dalam aplikasi ini antara lain fitur Ekripsi dan DekripsifiturBantuandanfituruntukmenyimpanhasil proses Penyandian 3.1.3.Pemeriksaan Persyaratan Proyek Bagianiniberisipersyaratandariaplikasi yangakandibuat,sepertifungsionalrequirementdan nonfungsional requirement. 3.1.3.1.Persyaratan Fungsional Fitur-fitur utama dalam aplikasi ini yaitu: e.Menu Encrypt/Decrypt, untuk masuk ke dalam modulEnkripsidandandekripsi untukprosesmenyandikandatadan membalikkanya f.MenuAbout,untukmasukkedalam modulaboutyangmemilikiinformasi tentang program dan pembuatnya. g.MenuHelp,untukmasukkedalam modulhelpsebagaitempatmencari informasih.Menu Exit, untuk keluar dari aplikasi 3.1.3.2.Persyaratan Nonfungsional Beberapapersyaratannonfungsionaladalah sebagai berikut: 1.Aplikasiyangakandibuatdapat mempermudahuserdalammengamankan data. 2.Fitur-fiturpadaaplikasiyangakandibuat dapat mudah dioperasikan oleh pengguna. 3.Membuat tampilan aplikasi yang menarik. 4.Membuattampilanyanguserfriendly sehingga mudah digunakan oleh user. 5.Aplikasi dapat dijalankan pada sistem operasi WindowsSeven/7. 3.1.3.3.Persyaratan Pengembangan.1.Menggunakanusecasediagramuntuk menggambarkaninteraksiantarasistemdan lingkungannya. 2.Menggunakanactivitydiagramuntuk menggambarkanproseskerjasistem secara berurutan. 3.Menggunakanbahasapemrograman Visual Basic 8. 4.MenggunakanMicrosoftVisio2003 untukmenggambardiagram-diagram UML. 5.Menggunakanmetodologidantools yangtepatdalampengembangan proyek. 3.1.4.PerbandinganAplikasiyangAkan Dibangun Terhadap Aplikasi KriptoSMS AplikasiKriptoSMSmilikBayuKristian NugrohodibangundenganmenggunakanVignere Cipheryangcukuphandaluntukmengacakisidari sebuahSMS.AplikasiKriptoSMSinidibangun menggunakanbahasapemrogramanJ2ME.Aplikasiini memiliki kekurangan dibandingkan dengan aplikasi yang akandibangunyaituaplikasiKriptoSMStidak mengimplementasikanRMS(RecordManagement Store)hanyamemilikimenutulispesandengankata lain tidak memiliki fitur kotak masuk, pesan terkirim dan pesantersimpanselayaknyaaplikasiyangakan dibangun.KriptoSMStidakdapatmengenkripsiangka atausimbolkarenamenggunakanVignereCipher sedangkanaplikasiyangakandibangundapat mengenkripsiangkaataupunsimboldengan menggunakan Caesar Cipher. Namun aplikasi yang akan dibangunmemilikikelemahandibandingkandengan aplikasiKriptoSMS karena dalamKriptoSMS pengguna dapatmenentukansendirikunciyangakandipakai dalamprosesenkripsidengankatalainkuncidapat berbeda-bedauntuksetiapSMSyangdikirimkan sedangkanuntukaplikasiyangakandibangunkunci telahditetapkandaridalamprogramsehinggakunci setiap SMS yang dikirimkan sama. 3.1.5Analisis Manfaat Denganmengimplementasikanteknik kriptografidalamaplikasiyangakandibangundapat membuatpenggunamerasaamandalammengirimkan suatudatayangbersifatpentingataupribadi.Jumlah karakteryangdapatdiprosesbertambahkarenapada CaesarCipherdilakukanbeberapapenyesuaian sehinggabukanhanyahurufalfabetsajayangdapat diprosesmelainkanseluruhkarakterASCII7bityang berjumlah128karakter.PenerapanRMSjuga menambahmanfaatyangdiberikanolehaplikasiyang akan dibangun, penerapan RMS pada fitur kotak masuk, kotakkeluardanpesantersimpanmembuatpengguna dapatmelihatkembalidaftarSMSyangpernahmasuk maupun daftarSMSyangpernahdikirimkanjuga daftar SMS yang pernah disimpan. 3.2.Analisis Kebutuhan Berikutinimerupakananalisisterhadap kebutuhanbaikitukebutuhanpenggunamaupun kebutuhansistemsertaspesifikasisistemyangakan dibangun. 3.2.1.Analisis Kebutuhan Pengguna Tabelberikutinimenjelaskanmengenai kebutuhan pengguna Tabel 3.1 Kebutuhan Pengguna NOKebutuhan PenggunaPrioritas 1 Sistemdapatmengenkripsiisi SMS Tinggi 2 Sistemdapatmelakukandekripsi isi SMS Tinggi 3 Sistemmemilikitampilanyang user friendly Sedang 4 Sistemmemilikimenupetunjuk yangberisipetunjuksingkatcara penggunaan aplikasi Tinggi 5. Sistemmemilikifiturpengaturan bahasa Sedang 3.2.2.AnalisisSpesifikasiSistemdanKebutuhan Sistem Bagianinimenjelaskanmengenaigambaran awal aplikasi yang akan dibangun 3.2.2.1. Persyaratan Fungsional Persyaratanfungsionalaplikasiyangakan dibangun adalah sebagai berikut: 1.Memilikifiturtulispesanyangberfungsi untuk menulis SMS baru. 2.Memilikifiturenkripsiyangberfungsiuntuk mengamankanisidariSMSyangakan dikirim. 3.Memilikifiturdekripsiyangberfungsiuntuk menampilkan isi SMS yang sebenarnya. 4.Memilikifiturpengaturanbahasayang berfungsimengubahnama-namamenudan tombol sesuai bahasa yang dipilih. 5.Memilikifiturtentangyangberisipenjelasan mengenai aplikasi yang dibangun. 6.Memilikifiturpetunjukyangberisipetunjuk pemakaian aplikasi. 7.Aplikasiyangdibangundapatmeningkatkan keamanan isi sms. 8.Aplikasiyangdibangundapatdijalankan padateleponseluleryangmemilikisistem operasi Java. 3.2.2.2. Persyaratan Nonfungsional Persyaratanfungsionalaplikasiyangakan dibangun adalah sebagai berikut: 1. Memiliki tampilan yang userfriendly. 2.Memakaiikonberupagambaruntuk memperjelas maksud dari sebuah fitur. 3.Menggunakanwarnadasarputihdantulisan berwarnahitamdengantujuanuntuk kenyamanan penglihatan pengguna.

3.2.2.3. Persyaratan Pengembangan 6.Menggunakanusecasediagramuntuk menggambarkan interaksi antara sistem dan lingkungannya. 7.Menggunakanactivitydiagramuntuk menggambarkanproseskerjasistem secara berurutan. 8.Menggunakanclassdiagramuntuk menggambarkanhubunganantarkelas yang terdapat dalam aplikasi 9.Menggunakanbahasapemrograman J2ME (Java Mobile Edition). 10.MenggunakanMicrosoftVisio2007 untuk menggambar diagram UML. 11.MenggunakanAdobePhotoshopCS3 untuk meng-edit gambar. 4.Perancangam PadafaseElaborationini,semuakegiatan dalamarsitektursistemakandianalisissecara keseluruhandenganmelibatkanidentifikasidan deskripsiabstraksisistemperangkatlunakyang mendasar beserta hubungan-hubungannya 4.1.Use Case Diagram Bagianiniberfungsiuntukmenjelaskan ruanglingkupdanketergantunganprosesnyadalam bentuk use case diagram. PenggunaMencari FileEnkripsi FileMengkonfirmasiPasswordMemasukan PasswordMenampilkanPreview FileMemilih DirectoryFile

Gambar 4.1Use Case Diagram Enkripsi PenggunaMencari FileDekripsi FileMemasukan PasswordMenampilkanPreview FileMemilih DirectoryFile

Gambar 4.2Use Case Diagram Dekripsi 4.2.Activity Diagram Activitydiagrammenjelaskantentangurutan aktivitasyangdilakukanpadasistem.Berikutini merupakangambaractivitydiagramdariaplikasiyang dibangun. Confirm passwortEncryptBrowse FileTentukan direktori file encryptAbout HelpMasukan passwordMenampilkan menu utama aplikasiDecryptEncrypt fileBrowse FileTentukan direktori file decryptMasukan passwordDecrypt fileMelihat about Pilih kategori helpExit Gambar 4.3 Activity Diagram4.3.Navigation Diagram Pada tahap ini digambarkan peta navigasi dari seluruh fitur yang akan dibuat dalam aplikasi Gambar 4.4 Navigation Diagram 4.4.Class Diagram Classdiagrammenggambarkansturktur kelas dari suatu system, termasuk method dan properties dari tiap-tiap kelas. Class diagram juga menggambarkan hubunganyangdapatmunculantarkelas,seperti hubungan pewarisan (inheritance) Gambar 4.5 Class Diagram 4.5.SequenceDiagram Sequencediagrampadabagianini menjelaskantentanginteraksiantarobjekdidalam sistemdanrangkaianlangkah-langkahyangdilakukan untuk menghasilkan output tertentu Priview FilePilih File SourcePilih File DestinationSend File to EncyptionEnkrispi File File EncryptorTop Package::PengirimType PasswordConfirm PasswordEncrypt ProsesBack To Menu** Gambar 4.6 Sequence Diagram Enkripsi Priview FilePilih File SourcePilih File DestinationSend File to DecryptionDekripsi File File DecryptorTop Package::PenerimaType PasswordDecrypt ProsesBack To Menu** Gambar 4.7 Sequence Diagram Dekripsi . 5.Trasnsition Padatahapinikeseluruhanpembangunan aplikasidiselesaikan.Pemodelansemuakegiatan penggunatelahdiselesaikanpadatahapsebelumnya. Dengan demikian aplikasi ini dapat dikatakan sudah siap untuk diuji oleh user.. 5. Implementasi 5.1.LingkunganImplementasi Lingkunganimplementasiyangdimaksuddi siniadalahuntukmemfasilitasipengembangansistem denganmenggunakanperangkatkerasdanperangkat lunak yang sudah disediakan. 1.Intel Core 2 Duo/2.20Ghz 2.RAM 3 GB 3.Hard Disk 300GB Adapundaftarperangkatlunakyangdigunakandalam proses implementasi ini sebagai berikut: 1.Sistem Operasi Windows 7 2.Microsoft Visual Basic 2008/.net 3.Microsoft Office Word 2007 4.Microsoft Visio 2007 5.Adobe PhotoShop CS 3 5.2.Descriptions Using the Code Berikutiniadalahbentukimplementasi algoritma cipher yang dipakai dalam bentuk pseudocode: *Keterangan: source code diunduh dari:http://www.codeproject.com/KB/security/EncryptFile.aspx 6.PENGUJIAN Bagianiniberisipengujianterhadaphasil implementasiaplikasiyangdibangun.Bagianini berhubungandenganfasetransititiondalammetodologi RUP.6.1.Tujuan Pengujian Pengujianinidilakukanuntukmengetahui tingkat keberhasilan proyek tugas akhir yang telah dibuat sesuaidenganfase-faseperencanaandanpembuatan perangkatlunak.Selainitudenganadanyapengujian dapat diketahui adanya kelemahan atau kekurangan yang terjadisehinggadapatdilakukanperbaikanjikaterjadi kesalahan 6.2.MelakukanPengujianWaktuProses Terhadap Ukuran File Waktuprosesenkripsi/dekripsifile tergantungpadaukuranfileyangakan dienkripsi/dekripsi. Pada uji coba proses enkripsi dengan menggunakan beberapa ekstensi file dengan ukuran yang berbedabedadanbebrapaspesifikasikomputerdengan operating system yang berbeda Rijndael(State, CipherKey) {KeyExpansion(CipherKey, ExpandedKey);AddRoundKey(State, ExpandedKey[0]);for(i = 1; i < Nr; i++)Round(State, ExpandedKey[i]);FinalRound(State, ExpandedKey[Nr]);}Round(State, ExpandedKey[i]) {SubSytes(State);ShiftRows(State);MixColumns(State);AddRoundKey(State, ExpandedKey[i]);}FinalRound(State, ExpandedKey[Nr])) {SubBytes(State);ShiftRows(State);AddRoundKey(State, ExpandedKey[Nr]);} 6.3. Analisa Hasil Pengujian Setelahdilakukanpengujianpadasistem, penulismengamatibahwasistemtelahmampu memberikanreaksiyangbaikterhadapinputdariuser. Sistemjugamenunjukkanbahwasemuafiturtelah berfungsi denganbaikdantidak ditemukanadanyabug. Sementaradaripengujianprosesenkripsidandekripsi diperolehhasilyangberbedaterhadapwaktufileyang dienkripsi dan didekripsi. Dari hasil percobaan diatas dapat di lihat bahwa untukprosesenkripsifiledenganformat:.doc,.docx, .pdfdan.srtmemakanwaktulebihlamauntukproses. dekripsidibandingkandenganformat:.avi,.jpg,.mp3, .mkv,.rar.dan.exeyanglebihcepatuntukproses dekripsi. Hal ini dikarenakan terjadinya proses padding Dapatdisimpulkanbahwaukuranfilepada prosesenkripsi/dekripsimengalamisedikitperubahan, semakinbesarukuranfilemakawaktuproses enkripsi/dekripsifilesemakinlama.Halinidisebabkan oleh efek cache dan efek penanganan file (file handling ) olehsistemoperasidankecepatankomputeryang dipakai. 7. KESIMPULAN dan SARAN 7.1.Kesimpulan Kesimpulanyangdidapatselamapengerjaan proyek tugas akhir ini adalah: 1.Aplikasikriptosistemyangdibangundengan menggunakanalgoritmaenkripsiAES( AdvancedEncryptionStandard)dapat mengenkripsidanmendekripsisemuajenis berkas dengan ukuran yang berbeda beda. 2.Lamaprosesyangdibutuhkanolehproses enkripsi/dekripsisangattergantungdari spesifikasi perangkat komputer yang digunakan. Semakintinggispesifikasikomputeryang digunakan,makaakansemakincepatuntuk proses enkripsi dan dekripsinya. 7.2.Saran Yang menjadi saran dari penulis adalah: 1.Prosesenkripsiyangdilakukandapat dikembangkanterhadapdirektorifolder,dan drive. 2.Aplikasidapatdikembangkanlebihlanjut denganmenambahkankemampuanatrian enkripsiberupalistberkas-berkasyangakan dienkripsi. 3. Aplikasidapatdikembangkandengan menambahkanfiturpengaturanuntukpanjang kunci dan ukuran block dalam proses enkripsi. DAFTAR PUSTAKA 1.[ARI08]AriusDony.2008.Pengantar IlmuKriptografi(Teori AnalisisdanImplementasi), Andi: Yogyakarta. 2. [MAO04]MaoWembo.2004.Modern Criptography(Theory& Practice).PreticeHall:New York 3.[MUN04]MunirRinaldi.2004. PengantarKriptografi. http://www.google.co.id/search?hl=id&q=rinaldi%20munir%20kriptografi&gs_sm=e&gs_upl=18231l21340l0l12l12l0l11l0l0l670l670l5-1l1&um=1&ie=UTF-8&sa=N&tab=pw,akses:7 Juli 2011 pukul 12.00 WITA 4.[RIJ04]Rijmen Vincent Daemen.Joan. 2004.TheRijndael Specification.http://csrc.nist.gov/encryption/AES/Rijndael/Rijndael.pdf, Tanggal akses: 9 Maret2011pukul14:00 WITA 5. [STA06]StalingsWilliam.2006. CriptographyandNetwork Security.PreticeHall:New York 6.[YUN09] VoniYuniati.2009.Enkripsi danDekripsiDengan AlgoritmaAES256Untuk SemuaJenisFile.Jurnal Informatika 5 No 1:23-31