BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM
III.1 Analisis Permasalahan Tahapan analisis terhadap suatu sistem dilakukan sebelum tahapan perancangan dilakukan. Adapun tujuan yang dilakukannmya analisis terhadap suatu sistem adalah untuk mengetahui alasan mengapa sistem tersebut diperlukan, yaitu dengan merumuskan kebutuhan-kebutuhan dari sistem tersebut untuk meminimalisir sumber daya yang berlebihan serta membantu merencanakan penjadwalan pembentuk sistem, meminimalkan distorsi-distorsi yang mungkin terdapat didalam suatu sistem tersebut sehingga dapat bekerja secara optimal. Salah satu unsur yang harus dipertimbangkan dalam tahapan analisa sistem ini yaitu masalah perangkat lunak, karena nantinya perangkat lunak yang digunakan harus sesuai dengan masalah yang akan diselesaikan. Untuk itu, analisa yang dilakukan terhadap perangkat lunak algoritma TEA ini akan dibagi menjadi beberapa aspek, yaitu analisis kebutuhan perangkat lunak algoritma TEA, analisis proses enkripsi dan deskripsi algoritma TEA, serta analisis fungsi perangkat lunak algoritma TEA.
24
25
III.1.1 Analisis Agoritma Simetri TEA Tiny Encription Algorithm (TEA) merupakan suatu algoritma sandi yang diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994. Algoritma ini merupakan algoritma penyandian block cipher yang dirancang untuk penggunaan memory yang seminimal mungkin dengan kecepatan proses yang maksimal.(siapa) Sistem penyandian TEA menggunakan proses feistel network dengan menambahkan fungsi matematik berupa penambahan dan pengurangan sebagai operator pembalik selain XOR. Hal ini dimaksudkan untuk menciptakan sifat non-linearitas. Pergeseran dua arah (ke kiri dan ke kanan) menyebabkan semua bit kunci dan data bercampur secara berulang ulang. TEA memproses 64-bit input sekali waktu dan menghasilkan 64-bit output. TEA menyimpan 64-bit input kedalam L0 dan R0 masing masing 32-bit, sedangkan 128-bit kunci disimpan kedalam k[0], k[1], k[2], dan k[3] yang masing masing berisi 32-bit. Diharapkan teknik ini cukup dapat mencegah penggunaan teknik exshautive search secara efektif. Hasil outputnya akan disimpan dalam L16 dan R16. Bilangan delta berasal dari golden number, digunakan delta=(√5 -1)231. Suatu bilangan delta ganda yang berbeda digunakan dalam setiap roundnya sehingga tidak ada bit dari perkalian yang tidak berubah secara teratur. Berbeda dengan struktur feistel yang semula hanya mengoperasikan satu sisi yaitu sisi sebelah kanan dengan
26
sebuah fungsi F, pada algoritma TEA kedua sisi dioperasikan dengan sebuah fungsi yang sama. Struktur penyandian TEA terlihat pada gambar III.1 sebagai berikut:
Gambar III.1 Algoritma TEA
27
Proses diawali dengan input-bit teks sebanyak 64-bit, kemudian 64-bit teks tersebut dibagi menjadi dua bagian, yaitu sisi kiri (L0) sebanyak 32-bit dan sisi kanan (R0) sebanyak 32-bit. Setiap bagian teks akan dioperasikan sendiri-sendiri. R0 (Z) akan digeser kekiri sebanyak empat (4) kali dan ditambahkan dengan kunci k[0], sementara itu Z ditambah dengan sum (delta) yang merupakan konstanta. Hasil penambahan ini di-XOR-kan dengan penambahan sebelumnya. Langkah selanjutnya di-XOR-kan dengan hasil penambahan antara Z yang digeser kekanan sebanyak lima (5) kali dengan kunci k[1]. Hasil tersebut kemudian ditambahkan dengan L 0 (Y) yang akan menjadi R1. Sisi sebelah kiri akan mengalami proses yang sama dengan sisi sebelah kanan. L0 (Y) akan digeser kekiri sebanyak empat (4) kali lalu ditambahkan dengan kunci k[2], sementara itu, Y ditambah dengan sum (delta). Hasil penambahan ini di-XOR-kan dengan penambahan sebelumnya. Langkah selanjutnya di-XOR-kan dengan hasil penambahan antara Y yang digeser ke kanan sebanyak lima (5) kali dengan unci k[3]. Hasil tersebut kemudian ditambahkan dengan R0 (Z) yang akan menjadi L1. Struktur dari penyandian dengan algoritma untuk satu cycle (dua round) dapat dilihat pada gambar III.2 berikut:
28
Gambar III.2 Satu Cycle TEA (dua round)
29
Langkah-langkah penyandian dengan algoritma TEA dalam satu cycle (dua round) : 1. Pergeseran (shift) Blok teks terang pada kedua sisi yang masing masing sebanyak 32-bit akan digeser kekiri sebanyak empat (4) kali dan digeser ke kanan sebanyak lima (5) kali. 2. Penambahan Langkah selanjutnya setelah digeser kekiri dan kekanan, maka Y dan Z yang telah digeser akan ditambahkan dengan kunci k[0]-k[3]. Sedangkan Y dan Z awal akan ditambahkan dengan sum (delta). 3. Peng-XOR-an Proses selanjutnya setelah dioperasikan dengan penambahan pada masing-masing register maka akan dilakukan peng-XOR-an dengan rumus untuk satu round adalah sebagai berikut: y = y + (((z<<4)+k[0])^z+sum^((z>>5)+k[1])) z = z + (((y<<4)+k[2]^y+sum^((y>>5)+k[3])) dalam hal ini sum=sum+delta. Hasil penyandian dalam satu cycle satu blok teks terang 64-bit menjadi 64-bit teks sandi adalah dengan menggabungkan Y dan Z. Untuk penyandian pada cycle berikutnya Y dan Z ditukar posisinya, sehingga Y1 menjadi Z1 dan Z1 menjadi Y1 lalu dilanjutkan proses seperti langkah-langkah diatas sampai dengan 16 cycle (32 round).
30
4. Key Schedule Algoritma TEA menggunakan key schedule-nya sangat sederhana. Yaitu kunci k[0] dan k[1] konstan digunakan untuk round ganjil sedangkan kunci k[2] dan k[3] konstan digunakan untuk round genap. 5. Dekripsi Proses dekripsi sama halnya seperti pada proses penyandian yang berbasis feistel cipher lainnya. Yaitu pada prinsipnya adalah sama pada saat proses enkripsi. Hal yang berbeda adalah penggunaan teks sandi sebagai input dan kunci yang digunakan urutannya dibalik. Proses dekripsi semua round ganjil menggunakan k[1] terlebih dahulu kemudian k[0], demikian juga dengan semua round genap digunakan k[3] terlebih dahulu kemudian k[2]. Rumus enkripsi diketahui : L0 = L0 + f ( R0 , k[0], k[1], sum ) R0 = R0 + f ( L0, k[2], k[3], sum ) Proses dekripsi digunakan rumus : L0 = L0 + f ( R0 , k[1], k[0], sum ) R0 = R0 + f ( L0, k[3], k[2], sum )
31
III.2. Strategi Pemecahan Masalah Adapun langkah-langkah yang penulis lakukan dalam menyelesaikan perancangan aplikasi ini adalah : 1. Mengumpulkan Teori Dalam tahapan ini, penulis mengumpulkan teori – teori yang berhubungan dengan masalah perancangan aplikasi ini. Teori-teori ini penulis lakukan adalah dari buku-buku, artikel yang didapat dari internet. 2. Merancang program Langkah pertama dalam merancang program ini adalah merancang proses kerja data flow diagram (DFD) yang menjelaskan secara rinci proses-proses yang akan dilakukan program. Langkah berikutnya merancang tampilan program. 3. Mengimplementasikan Rancangan Program Bahasa pemrograman yang penulis pilih dalam implementasi rancangan program adalah bahasa Microsoft Visual Basic.Net. Bahasa pemograman ini penulis pilih karena lebih mudah dimengerti oleh penulis untuk merancang sebuah aplikasi keamanan data.
III.3. Unified Modeling Language (UML) UML (Unified Modeling Language) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML menggunakan notasi grafis untuk menyatakan suatu desain. Pemodelan dengan UML berarti menggambarkan yang ada dalam dunia nyata ke dalam bentuk yang
32
dapat dipahami dengan menggunakan notasi standart UML. UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses dalam memodelkan sistem yang besar dan kompleks. UML tidak hanya digunakan dalam proses pemodelan perangkat lunak, namun hampir dalam semua bidang yang membutuhkan pemodelan. Alasan mengapa UML digunakan adalah, pertama, scalability dimana objek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua, dynamic modeling, dapat dipakai untuk pemodelan sistem dinamis dan real time. Pemodelan dengan UML terdiri dari 8 tipe diagram yang berbeda untuk memodelkan sistem perangkat lunak. Masing-masing diagram UML didesain untuk menunjukkan satu sisi dari bermacam-macam sudut pandang (perspektif) dan terdiri dari tingkat abstraksi yang berbeda. Namun yang akan digunakan penulis hanya tiga tipe diagram yaitu Use Case Diagram, Sequence Diagram dan Activity Diagram.
III.3.1. Use Case Diagram Use case diagram menggambarkan suatu urutan interaksi antara satu atau lebih actor dan sistem. Yang ditekankan adalah apa yang dilakukan oleh sistem/apa yang terjadi pada sistem bukan bagaimana sistem melakukan. Use case mempresentasikan sebuah interaksi antar user sebagai actor dengan sistem. Seseorang atau sebuah actor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan
33
dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Berikut adalah use case diagram untuk proses enkripsi pada Gambar III.3 sebagai berikut :
Gambar III.3. Use Case Diagram Enkripsi
Berikut adalah use case diagram untuk proses dekripsi pada Gambar III.4 sebagai berikut :
34
Gambar III.4. Use Case Diagram Dekripsi
III.3.2. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek didalam dan disekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertical (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan scenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang
35
dihasilkan. Masing-masing objek, termasuk actor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Berikut adalah gambar untuk sequence diagram enkripsi pada Gambar III.5 sebagai berikut :
Gambar III.5. Sequence Diagram Enkripsi
Berikut adalah gambar untuk sequence diagram dekripsi pada Gambar III.6 sebagai berikut :
36
Gambar III.6. Sequence Diagram Dekripsi
III.3.3. Activity Diagram Activity diagram menggambar aliran fungsionalitas dalam suatu sistem. Dapat digunakan dalam analisa kebutuhan untuk menggambarkan aliran kejadian melalui suatu use case atau menggambarkan berbagai alir aktivitas dalam sistem yang dirancang , bagaimana masing-masing alir berawal, keputusan yang mungkin terjadi dan bagaimana seluruh alir berakhir. Berikut adalah activity diagram enkripsi pada Gambar III.7 sebagai berikut :
37
Gambar III.7. Activity Diagram Enkripsi
Berikut adalah gambar untuk activity diagram dekripsi pada Gambar III.8 sebagai berikut :
38
Gambar III.8. Activity Diagram Dekripsi
Berikut adalah gambar untuk activity diagram about pada Gambar III.9 sebagai berikut :
39
Gambar III.9. Activity Diagram About
III.3. Perancangan Perancangan merupakan tahap kedua dari siklus hidup pengembangan sistem perangkat lunak. Perancangan memiliki tujuan untuk menentukan kondisi akhir yang diharapkan dari perangkat lunak yang akan dibangun dan merumuskan cara yang harus dilakukan untuk memperoleh hasil tersebut. Pada perangkat lunak dengan algoritma TEA, tahap perancangan yang dilakukan mencakup perancangan struktur program, perancangan layar, perancangan algoritma dan flowchart.
40
III.3.1. Perancangan Struktur Program Struktur program disebut juga dengan hirarki kontrol, merepresentasikan organisasi komponen program (modul) serta mengimplikasikan suatu hirarki kontrol. Suatu hirarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadian / urutan keputusan, atau pengulangan operasi. Banyak notasi berbeda yang digunakan untuk merepresentasikan hirarki kontrol, yang paling umum adalah diagram pohon. Adapun struktur program dari perangkat lunak KripTEA dapat dilihat pada Gambar III.10 berikut :
41
Main Menu
Enkripsi
Dekripsi
Baca Plaintext
Baca Kunci Enkripsi
Baca Ciphertext
Baca Kunci Dekripsi
Potong Plaintext
Potong Kunci Enkripsi
Potong Ciphertext
Potong Kunci Dekripsi
Konversi Pesan Ke Kode ASCII
Konversi Kunci Ke Kode ASCII
Konversi Dari Biner Ke Kode ASCII
Konversi Kunci Ke Kode ASCII
Konversi Kode ASCII Ke Biner
Konversi Dari Kode ASCII
Gabung Ciphertext
Gabung Plaintext
Gambar III.10. Struktur Program
III.3.2. Perancangan Layar III.3.2.1 Tampilan Form Utama Tampilan ini merupakan tampilan utama dari perangkat lunak KripTEA yang dibuat sesederhana mungkin untuk memudahkan para pengguna perangkat lunak.
42
Pada tampilan utama terdapat judul program dan fasilitas yang ada pada KripTEA yaitu Encryption, Decryption, About, serta tombol Exit. Jika dipilih menu Encryption maka selanjutnya akan tampil form enkripsi pesan dan jika dipilih menu Decryption maka akan tampil form deskripsi pesan. Sedangkan jika yang dipilih menu About maka akan tampil penjelasan tentang sistem. Untuk keluar dari menu utama maka dipilih tambol Exit yang merupakan pelihan untuk keluar secara keseluruhan dari software. Adapun tampilan utama dari program KripTEA adalah pada Gambar III.11 sebagai berikut :
SISTEM KEAMANAN DATA MENGGUNAKAN ALGOTIMA TEA Menu Utama Proses Encrypt / Decrypt About Me Exit
Gambar III.11. Form Utama
III.3.2.2. Tampilan Form Encryption Pada Encrypt/Decrypt, plaintext yang akan di enkripsi di browse dari komputer melalui File Browser, kemudian pilih format file yang akan digunakan pada proses enkripsi melalui Filter data, selanjutnya pilih file yang akan dienkripsi
43
yang terdapat pada file list. Untuk melakukan proses enkripsi klik tombol Encryption. Setelah melakukan pemilihan file, input password untuk melakukan proses enkripsi. Untuk membatalkan proses atau kembali ke menu utama klik tombol back. Tampilan layar menu encryption adalah pada Gambar III.12 sebagai berikut :
Gambar III.12. Tampilan Layar Enkripsi
III.3.2.3. Tampilan Form Decryption Tampilan ini akan ditampilkan ketika pengguna sistem hendak melakukan proses dekripsi terhadap suatu file yang telah terenkrip. Proses dekripsi hanya dapat
44
dilakukan dengan benar jika kunci rahasia yang diinput user bernilai benar. Tampilan form Decryption dapat dilihat pada Gambar III.13 berikut :
Gambar III.13. Tampilan Layar Dekripsi
File yang akan didekripsi di-browse di komputer, dimana file haruslah format *.tea. Jika user ingin mengganti file yang ingin didekripsi atau membatalkan proses maka user dapat mengklik tombol back . Untuk melakukan proses deskripsi haruslah menginputkan password yang sama seperti pada proses enkripsi.
45
III.3.2.4. Tampilan Form About Tampilan ini digunakan untuk memberikan penjelasan tentang perangkat lunak. Tampilan form about digambarkan pada Gambar III.14 sebagai berikut :
Berisikian tentang penjelasan perangkat lunak
OK
Gambar III.14. Tampilan Form About
III.3.3. Algoritma dan Flowchart Algoritma yang digunakan penulis dalam perancangan sistem ini adalah flowchart. Flowchart atau diagram alir adalah sekumpulan simbol-simbol atau skema yang menunjukkan atau menggambarkan rangkaian kegiatan-kegiatan program dari mulai awal hingga akhir. Inti pembuatan dari flowchart atau diagram alir ini adalah penggambaran urutan langkah-langkah pekerjaan dari algoritma. Terdapat dua algoritma dan flowchart dari perancangan sistem ini yaitu Algoritma dan Flowchart Enkripsi serta Algoritma dan Flowchart dekripsi.
46
III.3.3.1. Algoritma Dan Flowchart Untuk Proses Enkripsi Gambaran aliran proses dari algoritma enkripsi dapat dilihat sebagai berikut dalam bentuk flowchart pada Gambar III.15.
Gambar III.15. Flowchart Proses Enkripsi
47
Algoritma ini digunakan untuk melakukan proses enkripsi. Rincian prosesnya dapat dilihat sebagai berikut : 1. Start. 2. Input blok plainteks 64-bit. 3. Partisi blok plainteks menjadi 2 sub blok 32-bit. 4. Input blok kunci enkripsi 128-bit. 5. Partisi blok kunci enkripsi menjadi 4 sub blok kunci. 6. i = 1. 7. Proses Enkripsi tahap I. 8. Proses Enkripsi tahap II. 9. i = i – 1. 10. Periksa apakah i <=32. 11. Jika tidak kembali ke langkah (7). 12. Jika ya, gabung cipherteks. 13. Stop.
III.3.3.2. Algoritma Dan Flowchart Untuk Proses Dekripsi Gambaran aliran proses dari algoritma dekripsi diatas dilihat sebagai berikut dalam bentuk flowchart pada Gambar III.16.
48
Gambar III.16. Flowchart Proses Dekripsi
49
Algoritma ini digunakan untuk melakukan proses dekripsi. Rincian prosesnya dapat dilihat sebagai berikut : 1. Start. 2. Input blok cipherteks 64-bit. 3. Partisi blok cipherteks menjadi 2 sub blok 32-bit. 4. Input blok kunci deskripsi 128-bit. 5. Partisi blok kunci dekripsi menjadi 4 sub blok kunci. 6. i = 1. 7. Proses dekripsi tahap I. 8. Proses dekripsi tahap II. 9. i = i – 1. 10. Periksa apakah i <=32. 11. Jika tidak kembali ke langkah ( 7). 12. Jika ya, diperoleh pesan asli (Cipherteks). 13. Stop.