BAB III ANALISIS DAN DESAIN SISTEM
Pada bab ini akan dibahas mengenai Aplikasi Pengamanan Gambar Dengan Format JPG dan GIF Menggunakan RC6 yang meliputi analisa sistem dan desain sistem. III.1. Analisis Masalah Adapun analisa masalah pada Aplikasi Pengamanan Gambar Dengan Format JPG dan GIF Menggunakan RC6 yaitu : 1.
Banyaknya pihak-pihak yang melakukan modifikasi gambar yang bertujuan negatif sehingga merugikan pihak-pihak tertentu.
2.
Terjadinya
interupsi yang dapat mengganggu ketersediaan gambar yaitu
gambar yang ada dapat dihapus sehingga pihak yang membutuhkan gambar tersebut tidak dapat menemukan gambar tersebut. 3.
Seringnya terjadi ancaman intersepsi yaitu merupakan ancaman terhadap kerahasiaan gambar. Berdasarkan
analisa diatas maka penulis telah melakukan evaluasi dari
sistem yang sedang berjalan dan penulis menemukan kelemahan sistem yang ada. Dengan demikian penulis memberikan suatu solusi pemecahan masalah yang diharapkan dapat mengatasi kelemahan sistem yang ada. Adapun solusi yang ditawarkan adalah membangun Aplikasi Pengamanan Type File Gambar
28
29
Menggunakan RC6. Aplikasi ini adalah salah satu alat yang diyakini mampu memberikan konstribusi positif dalam menjamin keamanan type file gambar.
III.2. Algoritma RC6 Algoritma RC6 merupakan algoritma yang menggunakan kunci simetris (kunci enkripsi sarna dengan kunci dekripsi) didesain oleb Ronald Linn Rivest, Matt J.B Robshaw, Ray Sydney, dan Yuqin Lisa Yin dan Laboratoriurn RSA. RC adalah singkatan dan Rivest Code sedangkan 6 berarti algoritma ini merupakan pengembangan dan algoritma sebelumnya. Letak perbedaan RC6 dan varian-varian sebelumnya adalah adanya langkah transformasi dan perbedaan banyak register. Register diperlukan untuk penempatan blok data yang diolah pada algoritma sehingga algoritma mengolah data pada tiap register yang ada. Algonitma RC5 mnembagi plaintext ke dalam 2 register, lain halnya dengan RC6 yang membagi plaintext ke dalam 4 register. Sedangkan algoritma RC4 bukanlah algoritma block cipher (algoritma penyandian yang mengolah data per blok) seperti RC5 dan RC6 melainkan algoritma stream cipher
(algoritma
penyandian
yang
mengolah
data
per
bit).
RC6 mempunyai tiga parameter, sehingga dituliskan sebagai RC6-w/r/b. Ketiga paramater tersebut berarti ukuran register w (32, 64 atau 128 bit). banyak iterasi r yang tidak boleh bernilai negatif dan panjang kunci b. Saat algoritma ini masuk kandidat AES, ditetapkan nilai w = 32 bit, r = 20, dan b bervariasi antara 16, 24, dan 32 bit. Pemilihan w = 32 bit mengindikasikan bahwa operasi-operasi yang ada
30
pada algoritma RC6 seperti penjumlahan. pengurangan. perkalian, XOR, dan shift dilakukan pada operand berupa tepat 32 bit bilangan biner. III.2.1 Key Scheduling Sebelum melakukan proses enkripsi dan dekripsi, dibutuhkan suatu key scheduling untuk mendapatkan kunci-kunci yang akan digunakan dalarn proses enkripsi dan dekripsi tersebut. Algoritma key scheduling RC6 terdiri dan 3 tahap utama, yaitu: a) Penempatan kunci yang di-input pengguna kedalam array L b) Inisialisasi kunci yang ditempatkan dalam arroy S c) Kombinasi L dan S
Kunci yang di-input pengguna K[0. . b - 1] memiliki panjang sebesar b byte. Besar b bervariasi yaitu 16. 24, atau 32 byte. Kemudian kunci dimasukkan kedalam array berukuran c word L[0,1, ... , c -1] dengan nilai c = [b/4]. Misal b= 16 byte, maka algoritma RC6 menyiapkan array L[0,1,2,3] karena panjang kunci sebesar 16 byte terdiri dan 4 word(1 word = 32 bit = 4 byte) untuk penempatan kunci yang dimasukkan oleh pengguna. Proses tersebut dapat dilakukan dengan menggunakan algoritma dibawah ini: {penempatan kunci pengguna) for i = b-1 downto 0 L[i/u]=L[i/u<<<8]+K[i] end
31
Kemudian inisialisasi kunci S rnenggunakan magic constant Pw dan Qw sesuai Algoritma dibawah. Proses untuk membangun kunci inisialisasi tersebut didapat dari dua buah magic constant Pw dan Qw. Beberapa nilai magic constant dalam heksadesimal pada beberapa ukuran register (w) { Inisialisasi kunci S[i] } S [0] =Pw for i =1 to 2r+3 S[i]=S[i = 1]+ Q w end Selanjutnya adalah proses kombinasi kunci yang di-input pengguna L dengan kunci inisialisasi S dilakukan berdasarkan algoritma key scheduling RC6 rnenghasilkan 44 kunci ronde yang ditempatkan pada array S[O,1, ... ,43]. (Key Scheduling RC6) Input : array L[0,l,2,...,c=l] Output : array S[0,1,2,...,2r+4] Prosedur : S[0]=P w for i= 1 to 2r+3 S[i] = S[i=1]+ Q w end A=B=i=j =0 ;V=3*max (c, 2r+4) for s=1 to v
32
S[i]=(S[i]+A+B)<<<3 A=S [i] L[j]=(L[j]+A+B)<<<(A+B) B=L [j] i=i+l mod 2r+4; j=j+l mod c end
Proses kombinasi kunci pengguna L dengan hasil kunci inisialisasi S menjadi kunci-kunci ronde ditampung dalam array S[0,1,2, ... ,2r + 3] dengan panjang masing-masing kunci ronde 32 bit. Kunci insialisasi S[i] ditambahkan dengan nilai A dan B. Pada langkah awal, nilai A dan B adalah nol, lalu hasilnya digeser sebesar 3 bit ke kiri. kemudian nilai S[i] yang baru disimpan di A. L[j] ditarnbahkan dengan nilai A dan B. lalu hasilnya digeser ke kiri sebesar 5 bit dan nilai penjumlahan A dan B. Langkah ini mcmperlihatkan kunci pengguna telah dikombinasikan dengan kunci inisialisasi. Iterasi dilakukan scbanyak tiga kali nilai maksimum (c, 2r + 4). III.2.2 Enkripsi Algoritma RC6 merupakan algoritma block cpher. Blok data yang diolah sebesar 128 bit dikelornpokkan menjadi 4 buah blok. Masing-masing blok data berukuran 32 bit tersebut kemudian disimpan dalam register A, B, C, dan D lalu dioperasikan dengan kunci-kunci berukuran 32 bit pula yang telah diperoleh dan algoritma keiy scheduling RC6. Penempatan plaintext tiap blok data 16 byte ke dalam 4 register yaitu
33
A,B,C, dan D serupa dengan penempatan kunci pengguna yang dimasukkan ke dalam arra)’ L [0,1,2,3]. Aturan penempatannya adalah dengan cara meletakkan byte pertama dan blok data ke byte paling kanan (least significant) dari register A, lalu byte berikutnya ditempaikan di sisi kiri byte sebelumnya pada register A sarnpai dengan register A terisi sebanyak 4 byte. Begitupula dengan penempatan byte pada register B, C dan D sehingga byte terakhir blok data terdapat pada byte paling kiri(most significant) register D. Secara umum enkripsi dengan menggunakan algoritma RC6 memiliki langkah-langkah terurut sebagai berikut: • Whitening awal • Transformasi • Mixing • Swap register •. Whitening akhir
III.2.3 Dekripsi Setelah melakukan penyandian rnenggunakan algoritma enkripsi RC6, pengguna butuh mengembalikan ciphertext menjadi plaintext. Untuk itu, dilakukan proses dekripsi menggunakan algoritma dekripsi RC6. Algoritma dekripsi adalah invers atau kebalikan dan algoritma enkripsi. Operator yang ada dalam algoritma dekripsi adalah kebalikan dan operator dalam algoritma enkripsi. Blok data yang diolah sama dengan blok data pada proses enkripsi, yaitu sebesar 128 bit yang dibagi ke dalam 4 register. Bedanya, input dan
34
algoritma dekripsi adalah ciphertext yang akan mengeluarkan output plaintext. Masing-masing blok data ciphertext berukuran 32 bit kernudian juga disimpan dalam register A. B. C. dan D lalu dioperasikan dengan kunci-kunci berukuran 32 bit
pula
yang
telah
dibangun
pada
algoritma
key
scheduling
RC6.
Kunci dan banyaknya iterasi yang digunakan pada proses dekripsi sama dengan yang digunakan pada proses enkripsi. Langkah-langkah yang dilakukan pada proses dekripsi sama dengan proses enkripsi, hanya saja urutannya dibalik bagaikan mereka ulang kejadian yang dialami oleh blok data plaintext yang telah menjadi ciphertext. Jadi, langkah pertama pada proses dekripsi adalah langkah terakhir pada proses enkripsi. Berikut ini contoh kriptografi RC6: Kunci
Bilangan
Bilangan
Ascci
Biner
F
70
01000110
E
69
01000101
R
82
01010010
D
68
01000100
Y
89
01011001
Spasi
32
00100000
Array L
01000100010100100100010101000110 L[0] D
R
E
F
01000001010000100010000001011001 L[1]
B
66
01000010
A
65
01000001
Y
R
E
F
35
G
71
01000111
U
85
01010101
00000000010100110101010101000111 L[2]
S
83
01010011
0
00
00000000
0
00
00000000
0
00
00000000
0
S
U
G
00000000000000000000000000000000 L[3] 0
00
00000000
00
00000000
0
0
0
0
0
Kemudian inisialisasi kunci S rnenggunakan magic constant Pw dan Qw sesuai Algoritma dibawah. Proses untuk membangun kunci inisialisasi tersebut didapat dari dua buah magic constant Pw dan Qw. Beberapa nilai magic constati dalam heksadesimal pada beberapa ukuran register (w) W
Pw
Qw
16
b7e1
9e37
32
b7e15163
9e3779b9
64
b7e151628aed2a6b
9e3779b97f4a7c15
36
III.3. Desain Sistem Baru Desain Sistem Baru menggunakan bahasa pemodelan UML yang terdiri dari UsecaseDiagram, ActivityDiagram dan SequenceDiagram.
III.3.1. Usecase Diagram Secara garis besar, proses sistem yang akan dirancang digambarkan dengan usecase diagram yang terdapat pada Gambar III.1 :
Aplikasi Pengamanan Gambar Berformat JPG dan GIF Menggunakan RC6
Beranda
Enkripsi Gambar
Deskripsi Gambar
user
Tentang program
Gambar III.1.Use Case Diagram Aplikasi Pengamanan Gambar Berformat JPG dan GIF Menggunakan RC6
37
III.3.2. Activity Diagram Diagram aktivitas menggambarkan suatu urutan proses yang terjadi pada sistem dari dimulainya aktivitas hingga aktivitas berhenti. Diagram aktivitas hampir mirip dengan diagram flowchart. Diagram aktivitas merupakan salah satu cara untuk memodelkan event-event yang terjadi dalam suatu use-case. Berikut activity diagramyang ditunjukkan pada gambar dibawah ini:
1. Activity Diagram Enkripsi Gambar Pada activity diagram Enkripsi Gambar menjelaskan bahwa informasi atau data Enkripsi Gambar. Adapun Activity Diagram Enkripsi Gambar dapat dilihat pada gambar III.2.
Pilih Gambar
Masukkan kode enkripsi
Klik tombol enkripsi
Gambar III.2.Activity Diagram Enkripsi Gambar
38
2. Activity Diagram Dekripsi Gambar Pada activity diagram Dekripsi Gambar menjelaskan bahwa informasi atau data Dekripsi gambar. Adapun Activity Diagram Dekripsi Gambar dapat dilihat pada gambar III.3.
Pilih Gambar
Masukkan kode sesuai kode enkripsi sebelumnya
Klik tombol deskripsi
Gambar III.3.Activity Diagram Dekripsi Gambar 3. Activity Diagram Melihat Tentang Program Pada activity diagram About menjelaskan bahwa informasi atau datadiri pembuat program. Adapun Activity Diagram Tentang Program dapat dilihat pada gambar III.4.
Masuk Menu Utama
Pilih Tentang Program
Lihat Informasi Tentang Program
Gambar III.4.Activity Diagram Melihat Tentang Program
39
III.3.3. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Serangkaian kegiatan saat terjadi event pada aplikasi ini dapat dilihat pada gambar III.5:
Top Package::user beranda
gambar
enkripsi
gambar
Decrypt
gambar
1. Jalankanaplikasi 2.pilih Gambar
3. Masukkan kode dan klik tombol enkripsi
4. pilih gambar yg sama 5. mai enkripsi dan klik tombol deskripsiasukkan kode sesu 6. berhasil
Gambar III.5.Sequence Diagram Aplikasi Pengamanan Gambar Berformat JPG dan GIF Menggunakan RC6
40
III.3.4. Class Diagram Rancangan kelas-kelas yang akan digunakan pada sistem yang akan dirancang dapat dilihat pada gambar dibawah ini :
IMAGE
KeywordDialog
private void actionConnect() private void actionCancel() public String getKeywords()
private imgTableModel tableModel; private JTable table; private JTextArea imgTextArea; private JSplitPane splitPane; private JButton replyButton, forwardButton, deleteButton, Decrypt; private img selectedMessage; private boolean deleting; private Session session; private img newimg; private ConnectDialog kon = new ConnectDialog(this); private void actionExit() private void actionNew() private void actionDecrypt() private void tableSelectionChanged() private void actionReply() private void actionForward() private void actionDelete() private void img(int type, img)
KeywordDialog
private void actionConnect() private void actionCancel() public String getKeywords()
Deskripsi
Enkripsi public class AddRoundKey public class img public class shiftrows public class public AddRoundKey() mixcolumns public img() public shiftrows() public mixcolumns()class ConnectDialog extends JDialog
public class AddRoundKey public class invimg public class invshiftrows public class public AddRoundKey() invmixcolumns public invgbr() public invshiftrows() public invmixcolumns()
Gambar III.6.Class Diagram Diagram Aplikasi Pengamanan Gambar Berformat JPG dan GIF Menggunakan RC6
41
III.4. DesainUser Interface 1. Rancangan FormBeranda Form ini berfungsi untuk menampilkan beranda Aplikasi Pengamanan Gambar Dengan Format JPG dan GIF Menggunakan RC6, rancangan dapat dilihat pada gambar berikut :
Beranda
Enkripsi
Dekripsi
Cara Menggunakan
HillTentang Park Sibolangit Program
Wisata idaman keluarga anda Informasi Dan Penjelasan RC6 Enkripsi Cari berdasarkan
wahana
cari
Peta letak wahana permainan
Gambar III.7. Desain Tampilan Beranda
42
2. Rancangan Form Enkripsi Form Enkripsi berfungsi untuk menampilkan form Enkripsi Aplikasi Pengamanan Gambar Dengan format JPG dan GIF Menggunakan RC6, rancangan dapat dilihat pada gambar berikut :
Beranda
Enkripsi
Dekripsi
Cara Menggunakan
HillTentang Park Sibolangit Program
Wisata idaman keluarga anda Enkripsi Gambar Silahkan Pilih Gambar Cari berdasarkan
wahana
Masukkan Kunci
cari
Peta letak wahana permainan
Gambar Enkripsi
Gambar III.8. Desain Tampilan Form Enkripsi
43
3. Rancangan Form Dekripsi Form Dekripsi berfungsi untuk menampilkan form Dekripsi Aplikasi Pengamanan Gambar Dengan format JPG dan GIF Menggunakan RC6, rancangan dapat dilihat pada gambar berikut :
Beranda
Enkripsi
Dekripsi
Cara Menggunakan
HillTentang Park Sibolangit Program
Wisata idaman keluarga anda Dekripsi Gambar Silahkan Pilih Gambar Cari berdasarkan
wahana
Masukkan Kunci
cari
Peta letak wahana permainan Dekripsi
Tutup
Gambar III.9. Desain Tampilan Form Dekripsi
44
4. Rancangan Form Cara Menggunakan Form ini menjelaskan informasi cara menggunakan Aplikasi Pengamanan Gambar Dengan format JPG dan GIF Menggunakan RC6, rancangan dapat dilihat pada gambar berikut :
Beranda
Enkripsi
Dekripsi
Cara Menggunakan
HillTentang Park Sibolangit Program
Wisata idaman keluarga anda Cara Menggunakan Cari berdasarkan
wahana
cari
Peta letak wahana permainan Penjelasan Tentang Cara menggunakan
Gambar III.10. Desain Tampilan Cara Menggunakan
45
5. Rancangan Form Tentang Program Form ini menjelaskan informasi pembuat
Aplikasi Pengamanan Gambar
Dengan format JPG dan GIF Menggunakan RC6, rancangan dapat dilihat pada gambar berikut :
Beranda
Enkripsi
Dekripsi
Cara Menggunakan
HillTentang Park Sibolangit Program
Wisata idaman keluarga anda Tentang Program Cari berdasarkan
wahana
cari
Peta letak wahana permainan Penjelasan Tentang Progam
Gambar III.11. Desain Tampilan Tentang Program