Upload
vuongkiet
View
227
Download
0
Embed Size (px)
Citation preview
29
BAB IV
HASIL DAN PEMBAHASAN
4.1 Hasil Penelitian
4.1.1 Analisis Sistem
Tahapan analisis sistem ini merupakan tahapan untuk menganalisa masalah
yang akan dipecahkan, kebutuhan yang diinginkan user, dan cara kerja dari
algoritma. Analisis sistem ini meliputi analisis permasalahan, analisis kebutuhan
sistem, dan analisis dari algoritma kriptografi.
a. Analisis Permasalahan
Alat komunikasi merupakan alat yang sangat penting karena memiliki
banyak fitur-fitur yang dapat membantu orang-orang untuk lebih dekat lagi
walaupun dengan jarak yang cukup jauh. Hal tersebut terlihat dari banyaknya
masyarakat dunia yang memiliki alat komunikasi yaitu telepon seluler, namun
dengan banyaknya pertukaran informasi yang terjadi, maka banyak pula orang-
orang yang menginginkan informasi-informasi tersebut untuk kepentingan pribadi
maupun kepentingan kelompok. Hal tersebut dapat terjadi apabila tidak adanya
tingkat keamanan yang tinggi dari pertukaran informasi-informasi yang penting.
Berdasarkan masalah tersebut, maka sistem yang akan dibangun adalah
sistem keamanan data yang berfungsi untuk mengamankan konten SMS dari para
penyadap yang tidak bertanggung jawab. Sistem ini menggunakan kombinasi dari
2 (dua) algoritma yaitu AES 128 bit dan Vigenere Cipher, yang diharapkan bisa
memberikan tingkat keamanan yang tinggi dari pesan yang ingin dirahasiakan.
30
b. Analisis Kebutuhan Sistem
Analisis kebutuhan sistem membahas secara garis besar kebutuhan sistem
yang diperlukan. Sistem ini melibatkan satu aktor yaitu user dimana user tersebut
bisa menjadi pengirim maupun penerima SMS. Beberapa fitur yang dibutuhkan
dalam sistem ini sebagai berikut :
1) Menampilkan pesan masuk dari pengirim
2) Mengirim pesan terenkripsi ke penerima
3) Mendekripsikan Ciphertext menjadi Plaintext
4.1.2 Perancangan Sistem
a. Arsitektur Sistem
Arsitektur sistem aplikasi enkripsi pesan singkat berbasis Android dapat
dilihat pada gambar 4.1.
Gambar 4.1 Arsitektur Sistem
31
Aplikasi ini nantinya akan diimplementasikan pada mobile device Android,
dimana pada saat proses pengiriman pesan, aplikasi ini akan mengirimkan teks yang
sudah dienkripsi terlebih dahulu, sehingga dapat membantu pengguna untuk
mengamankan pesan yang dikirimkan.
b. UML (Unified Modeling Language)
1) Use Case Diagram
Aplikasi Enkripsi pesan singkat ini hanya melibatkan satu aktor yaitu
pengguna, yang dimaksud dengan pengguna adalah pengirim atau penerima,
dimana pengirim dapat menjadi penerima dan penerima dapat menjadi pengirim.
Gambar 4.2 Use Case Diagram
32
2) Flow of Events
Flow of Eents bertujuan untuk mendeskripsikan atau menjelaskan diagram
use case. Berikut adalah flow of events dari diagram use case pada gambar 4.2.
Tabel 4.1 Flow of Events Mengirim pesan terenkripsi
Nama Use Case Mengirim pesan terenkripsi
Tujuan Mengirim pesan dalam bentuk Ciphertext
Prasyarat Layanan SMS aktif
Kondisi Akhir
Sukses Pesan terkirim dalam bentuk Ciphertext
Kondisi Gagal Pesan tidak terkirim
Aktor Utama Pengguna
Aktor Sekunder Tidak Ada
Pemicu Actor Pengguna menekan tab Message, dan menginputkan
nomor tujuan, kunci serta isi dari pesan yang ingin dikirim
Alur Utama Langkah Aktor Sistem
1 Input nomor
tujuan
Ubah pesan dan kunci menjadi
bilangan Hexadesimal
2 Input kunci Enkripsi pesan
3 Input pesan Mengirimkan pesan
Alur Perluasan Langkah Aksi Percabangan
3.1 Tidak dapat mengirimkan pesan
33
Tabel 4.2 Flow of Events Mendeskripsikan pesan yang diterima
Nama Use Case Mendeskripsikan pesan yang diterima
Tujuan Mendeskripsikan pesan yang masih dalam bentuk
Ciphertext ke bentuk Plaintext
Prasyarat Menerima pesan dan layanan SMS aktif
Kondisi Akhir
Sukses Pesan terkirim dalam bentuk Ciphertext
Kondisi Gagal Pesan tidak dapat didekripsi
Aktor Utama Pengguna
Aktor Sekunder Tidak Ada
Pemicu Aktor Pengguna menekan list pesan, dan memasukkan key
yang sama dengan pengirim untuk menampilkan pesan asli
Alur Utama Langkah Aktor Sistem
1 Menjalankan
aplikasi Dekripsi pesan
2 Buka pesan Menampilkan isi pesan
3 Input kunci
Alur Perluasan Langkah Aksi Percabangan
1.1 Dekripsi pesan gagal
2.1 Isi pesan tidak tampil
3) Diagram Activity
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang
sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin
terjadi, dan bagaimana mereka berakhir.
34
a) Diagram Activity Mengirim pesan terenkripsi
Gambar 4.3 Diagram Activity Mengirim pesan terenkripsi
35
b) Diagram Activity Mendeskripsikan pesan yang diterima
Gambar 4.4 Diagram Activity Mendeskripsikan pesan yang diterima
36
4) Class Diagram
Gambar 4.5 Class Diagram
37
5) Component Diagram
Pada dasarnya component diagram adalah diagram yang menggambarkan
tampilan fisik dari struktur dan hubungan antara komponen dalam sistem suatu
perangkat lunak, serta menggambarkan ketergantungan diantara komponen-
komponen tersebut. Diantara modul berisi kode, baik berisi source code, binary,
library, executable. Pada gambar 4.6 menunjukkan component diagram aplikasi
enkripsi.
Gambar 4.6 Component Diagram Aplikasi Enkripsi
c. Desain Antar Muka (Interface)
Antar muka di Android dibuat dengan menggunakan bahasa pemrograman
XML dan Java. Berikut adalah rancangan antar muka (interface) dari aplikasi yang
akan dibuat.
38
1) Rancangan Tampilan Inbox
Gambar 4.7 Rancangan Tampilan Inbox
2) Rancangan Tampilan Create Message
Gambar 4.8 Rancangan Tampilan Create Message
SMSCrypto
Message Sent About
List 1
List 2
List 3
List 4
Create Message
Inbox Sent About
To
Key
Send
Button
39
3) Rancangan Tampilan Sent Item
Gambar 4.9 Rancangan Tampilan Sent Item
4) Rancangan Tampilan Message
Gambar 4.10 Rancangan Tamplan Message
Sent Item
Message Inbox About
List 1
List 2
List 3
List 4
Message
From : Sender
Date Time
Content Message
Reply
Button
40
5) Rancangan Tampilan Sent Message
Gambar 4.11 Rancangan Tampilan Sent Message
6) Rancangan Tampilan About
Gambar 4.12 Rancangan Tampilan About
Sent Message
To : Receiver
Date Time
Content Message
About
Version : SMSCrypto V 1.0
Close
41
4.1.3 Implementasi
Dalam Eclipse versi Kepler, implementasi antarmuka dilakukan dengan
sebuah layout yang berekstensi XML. Setiap file xml dalam layout dibuat class java
dan ditulis dengan berekstensi.java. Adapun tampilan dari aplikasi enkripsi pesan
singkat adalah sebagai beritkut :
a. Tampilan Inbox
Halaman Inbox adalah tampilan pertama kali ketika aplikasi ini dibuka,
halaman ini menampilkan list pesan masuk dari pengirim dan juga terdapat menu
layout untuk memudahkan user memilih activity yang telah disediakan. Untuk
halaman inbox dapat dilihat pada gambar 4.13.
Gambar 4.13 Tampilan Inbox
42
b. Tampilan Create Message
Halaman Create Message menampilkan text field untuk nomor tujuan,
kunci, dan juga isi pesan yang ingin dikirimkam. Ada beberapa menu layout yang
akan muncul ketika menekan tombol menu pada Device yang digunakan. Pada saat
pengguna menekan tombol Send maka sistem akan otomatis mengirim teks ke class
Vigenere.java, hasil dari proses vigenere akan di kirimkan lagi ke class
generateAES.java yang akan memproses algoritma AES.
Class Vigenere.java
… static String encrypt(String text, String key) { String res = ""; int lengthPlainText = text.length(); int lengthKey = key.length(); int j = 0; for (int i = 0; i < lengthPlainText; i++) { if (j >= lengthKey) { key = text; lengthKey = lengthPlainText; j = 0; } res += (char) (((int) text.charAt(i) + key.charAt(j)) % 128); j = ++j % key.length(); } return res; } static String decrypt(String text, final String key) { String res = ""; int lengthCipherText = text.length(); int lengthKey = key.length(); int j = 0; int temp1; int a = 0; for (int i = 0; i < lengthCipherText; i++) { if (j >= lengthKey) { temp1 = (int) text.charAt(i) - (int) res.charAt(a); if (temp1 < 0) { temp1 += 128; ...
43
Class generateAES.java
} res += (char) (temp1 % 128); a++; } else { temp1 = (int) text.charAt(i) - (int) key.charAt(j); if (temp1 < 0) { temp1 += 128; } res += (char) (temp1 % 128); } j = ++j % key.length(); } return res; } }
... public static String encrypt(String seed, String cleartext) throws Exception { byte[] rawKey = getRawKey(seed.getBytes()); byte[] result = encrypt(rawKey, cleartext.getBytes()); return toHex(result); } public static String decrypt(String seed, String encrypted) throws Exception { byte[] rawKey = getRawKey(seed.getBytes()); byte[] enc = toByte(encrypted); byte[] result = decrypt(rawKey, enc); return new String(result); } private static byte[] getRawKey(byte[] seed) throws Exception { KeyGenerator kgen = KeyGenerator.getInstance("AES"); SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); sr.setSeed(seed); kgen.init(128, sr); // 192 and 256 bits may not be available SecretKey skey = kgen.generateKey(); byte[] raw = skey.getEncoded(); return raw; } ...
44
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] encrypted = cipher.doFinal(clear); return encrypted; } private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, skeySpec); byte[] decrypted = cipher.doFinal(encrypted); return decrypted; } public static String toHex(String txt) { return toHex(txt.getBytes()); } public static byte[] toByte(String hexString) { int len = hexString.length()/2; byte[] result = new byte[len]; for (int i = 0; i < len; i++) result[i] = Integer.valueOf(hexString.substring(2*i, 2*i+2), 16).byteValue(); return result; } public static String toHex(byte[] buf) { if (buf == null) return ""; StringBuffer result = new StringBuffer(2*buf.length); for (int i = 0; i < buf.length; i++) { appendHex(result, buf[i]); } return result.toString(); } private final static String HEX = "0123456789ABCDEF"; private static void appendHex(StringBuffer sb, byte b) { sb.append(HEX.charAt((b>>4)&0x0f)).append(HEX.charAt(b&0x0f)); } }
45
Proses kalkulasi algoritma tidak akan bekerja sebelum pengguna menginput
semua text field yang telah ada pada aplikasi. Hal tersebut karena proses
pemanggilan class algoritma ada pada proses pengiriman SMS. Tampilan Halaman
create message dapat dilihat pada gambar 4.14.
Gambar 4.14 Tampilan Create Message
46
c. Tampilan Sent Item
Halaman ini menampilkan list pesan terkirim dan juga terdapat menu layout
untuk memudahkan user memilih activity yang telah disediakan. Yang dapat dilihat
pada gambar 4.15.
Gambar 4.15 Tampilan Sent Item
d. Tampilan Message
Halaman ini akan muncul pada saat user menekan list SMS pada Inbox,
terdapat text field kunci untuk menginputkan kunci yang sama dengan pengirim,
hal tersebut bertujuan untuk mendekripsikan ciphertext menjadi plaintext. Dapat
dilihat pada gambar 4.16.
47
Gambar 4.16 Tampilan View Message
e. Tampilan Sent Message
Sama halnya dengan halaman message, halaman ini akan muncul ketika user
menekan list sent item. Halaman ini dapat dilihat pada gambar 4.17.
Gambar 4.17 Tampilan Sent Message
48
f. Tampilan About
Halaman ini hanya menampilkan versi dari aplikasi SMSCrypto. Yang
dapat dilihat pada gambar 4.18.
Gambar 4.18 Tampilan About
4.1.4 Pengujian Sistem
Pengujian sistem merupakan hal terpenting yang bertujuan untuk
menemukan kesalahan–kesalahan atau kekurangan–kekurangan pada perangkat
lunak yang diuji. Pengujian bermaksud untuk mengetahui perangkat lunak yang
dibuat sudah memenuhi kriteria yang sesuai dengan tujuan perancangan perangkat
lunak tersebut.
49
a. Perancanaan Pengujian
Table 4.3 Rencana Pengujian
Kelas Uji Butir Uji Jenis
Pengujian
Inbox
Menampilkan list pesan masuk Black box
Menampilkan isi SMS ketika menekan
list pesan Black box
Menampilkan Reply SMS ketika
menekan tombol reply pada isi SMS Black Box
Kategori
Manampilkan fitur create message
ketika menekan tab Black box
Manampilkan fitur sent message
ketika menekan tab Black box
Menampilkan versi aplikasi ketika
menekan tab Black box
Fitur Create Message
Menampilkan input untuk mengirim
SMS Black box
Menampilkan Kontak dari Device Black box
Fitur Sent Message
Menampilkan list pesan terkirim Black box
Menampilkan isi pesan terkirim ketika
menekan list Black box
50
b. Kasus dan Hasil Pengujian Black Box
1) Pengujian Alpha
Pengujian fungsional yang digunakan untuk menguji sistem yang baru
adalah metode pengujian alpha. Pengujian alpha berfokus pada persyaratan
fungsional perangkat lunak.
a) Pengujian Inbox
Tabel 4.4 Pengujian Inbox
Kasus dan Hasil Uji
Data Masukan Reaksi yang
diharapkan Pengamatan Kesimpulan
Membuka
aplikasi
Muncul halaman
inbox
List pesan masuk
tampil Diterima
Menekan list
pesan
Muncul isi dari
SMS Isi SMS tampil Diterima
Menekan tombol
Reply
Muncul halaman
Reply message
Inputan mengirim
SMS tampil Diterima
b) Pengujian Fitur Create Message
Tabel 4.5 Pengujian Fitur Create Message
Kasus dan Hasil Uji
Data Masukan Reaksi yang
diharapkan Pengamatan Kesimpulan
Menekan tab
Message
Muncul halaman
input untuk
mengirim SMS
Halaman input untuk
mengirim SMS
tampil
Diterima
Menekan tombol
Kontak
Muncul Kontak
dari Device
Isi Kontak dari
Device tampil Diterima
51
c) Pengujian Fitur Sent Message
Tabel 4.6 Pengujian Fitur Sent Message
Kasus dan Hasil Uji
Data Masukan Reaksi yang
diharapkan Pengamatan Kesimpulan
Menekan tab
Sent
Muncul halaman
Sent Message
List pesan terkirim
tampil Diterima
Menekan List
pesan terkirim
Muncul isi dari
pesan terkirim
Isi pesan terkirim
tampil Diterima
2) Kesimpulan Pengujian Alpha
Berdasarkan hasil pengujian alpha yang dilakukan, maka dapat disimpulkan
bahwa secara fungsional semua proses pada aplikasi enkripsi pesan singkat berbasis
Android dapat berjalan sesuai yang diharapkan.
3) Pengujian Beta
Pengujian beta dilakukan untuk menguji aplikasi pada smartphone android
yang sesungguhnya, hal ini bertujuan agar peneliti dapat mengetahui kinerja dari
aplikasi pada tiap-tiap smartphone yang akan dilakukan pengujian. Pengujian ini
menggunakan berbagai macam tipe smartphone dan versi operating system (OS)
android.
Tabel 4.7 Jenis Smartphone Android
Smartphone Type Android Version
Samsung Galaxy S Advance GT-I9070 2.3.6 (Gingerbread)
Samsung Galaxy Tab 2 10.1 GT-P5100 4.0.3 (Ice Cream Sandwich)
Samsung Galaxy Core GT-I8260 4.1.2 (Jelly Bean)
52
a) Tampilan aplikasi di Samsung Galaxy S Advance
Aplikasi di uji coba langsung pada device dengan OS 2.3.6 (Gingerbread),
dan sukses berjalan tanpa ada masalah atau error. Tampilan aplikasi pada
Handphone Samsung Galaxy S Advance dapat dilihat pada gambar 4.19.
Gambar 4.19 Tampilan aplikasi di Samsung Galaxy S Advance
53
b) Tampilan aplikasi di Samsung Galaxy Tab 2 10.1
Jenis Tab merupakan device yang memiliki resolusi gambar cukup besar
dibandingkan dengan device yang lain, Samsung Galaxy Tab 2 menggunakan OS
4.0.3 (Ice Cream Sandwich) dan compatible dengan aplikasi yang telah dibuat.
Tampilan aplikasi pada Samsung Galaxy Tab 2dapat dilihat pada gambar 4.20.
54
Gambar 4.20 Tampilan aplikasi di Samsung Galaxy Tab 2 10.1
55
c) Tampilan aplikasi di Samsung Galaxy Core
Dengan menggunakan OS 4.1.2 (Jelly Bean) Samsung Galaxy Core
memiliki kecepatan dan interface yang menarik dibandingkan dengan OS
sebelumnya. Pada device ini aplikasi berjalan dengan baik tanpa ada kendala yang
ditemukan. Tampilan aplikasi dapat dilihat pada gambar 4.21.
Gambar 4.21 Tampilan aplikasi di Samsung Galaxy Core
56
4) Kesimpulan Pengujian Beta
Tabel 4.8 Pengujian pada Smartphone
Smartphone Inbox Fitur Create Message
Fitur SentMessage
Samsung Galaxy S Advance Sukses Sukses Sukses
Samsung Galaxy Tab 2 10.1 Sukses Sukses Sukses
Samsung Galaxy Core Sukses Sukses Sukses
Hasil dari pengujian beta yang telah dilakukan pada semua tipe smartphone
Android dan versi OS menunjukan bahwa semua fitur yang ada dalam aplikasi
enkripsi pesan singkat ini dapat berjalan dengan baik sesuai fungsinya.
c. Running Emulator
Emulator merupakan Virtual Device yang dapat menampilkan aplikasi
sesuai dengan tampilan yang ada pada smartphone sesungguhnya, Tampilan pada
emulator dapat dilihat pada gambar 4.22.
57
Gambar 4.22 Tampilan aplikasi pada Emulator
d. Review Google Play
Statistik dari jumlah instalasi aplikasi di tiap-tiap device berjuamlah 24
downloader, jumlah ini didapatkan pada tanggal 17 Desember 2013, hal tersebut
membuktikan bahwa aplikasi ini dapat berjalan dengan baik di tiap-tiap device yang
diinstal. Tampilan statistik dapat dilihat pada gambar 4.23.
Gambar 4.23 Tampilan Statistik Instal by Device
58
Aplikasi SMSCrypto tidak hanya diinstal oleh pengguna Android di
Indonesia saja, hal tersebut dapat dilihat dari statistik instalasi aplikasi di tiap-tiap
Negara. Indonesia, Nigeria, Romania, Saudi Arabia, dan United States (US)
merupakan Negara-negara yang telah menginstal aplikasi tersebut. Tampilan
statistic dapat dilihat pada gambar 4.24.
Gambar 4.24 Tampilan Statistik Instal by Country
Pada Google Developer dapat dilihat Crashes & Anrs dari aplikasi, form
ini dapat menampilkan laporan kerusakan dari tiap user yang menggunakan aplikasi
SMSCrypto. Tampilan Crashes & Anrs dapat dilihat pada gambar 4.25.
Gambar 4.25 Tampilan Crashes & Anrs
59
4.2 Pembahasan
Telepon seluler merupakan salah satu alat komunikasi yang paling banyak
digunakan karena dapat mempermudah orang untuk saling berkomunikasi antara
satu dengan yang lainnya. Namun dengan banyaknya pengguna telepon seluler,
maka semakin banyak pula penyadapan yang terjadi, hal tersebut diakibatkan
kurangnya keamanan yang diberikan oleh pihak pengembang telepon seluler dan
juga pihak provider yang menyediakan layanan untuk saling berkomunikasi.
Berdasarkan hasil penelitian yang telah dicapai, aplikasi enkripsi pesan
singkat ini dapat menjadi solusi dari permasalahan yang ada sebelumnya.
Dibandingkan dengan penelitian sebelumnya yang hanya menggunakan 1 (satu)
algoritma dan masih menggunakan platform berbasis J2ME, aplikasi enkripsi pesan
singkat berbasis Android ini dapat mengamankan isi SMS dengan melakukan 2
(dua) kali proses enkripsi menggunakan 2 (dua) algoritma yang berbeda yaitu AES
128 bit dan Vigenere Cipher. Pada aplikasi ini terdapat fitur-fitur layanan yang
sama dengan aplikasi SMS yang sudah tertanam pada sistem operasi Android,
seperti melihat pesan masuk, mengirimkan pesan, dan juga melihat kontak dari
nomor tujuan, namun yang membedakaannya ialah pada aplikasi enkripsi pesan
singkat memiliki proses enkripsi dan dekripsi yang bertujuan untuk mengamankan
isi dari pesan yang ingin dikirimkan. Adapun cara kerja dari algoritma Vigenere
dan AES 128 adalah sebagai berikut :
60
4.2.1 Algoritma Vigenere Cipher
Dalam penelitian ini penulis mengambil contoh kata ‘gorontalo’ sebagai
plaintext, dan ‘arif’ sebagai key yang digunakan untuk melakukan enkripsi plaintext
menjadi ciphertext.
Plaintext :
Kunci :
Chipertext :
Ket : Nilai desimal yang digunakan di ambil dari table ASCII
Pada contoh diatas kata kunci ‘arif’ diulang sedemikian rupa hingga panjang
kunci sama dengan panjang plaintext. Jika dihitung dengan rumus enkripsi vigenere
cipher extended, plainteks huruf pertama ‘g’ (yang memiliki nilai Pi = 103) akan
dilakukan pergeseran dengan huruf ‘a’ (yang memiliki Ki = 97) maka prosesnya
sebagai berikut:
Ci = ( Pi + Ki ) mod 128
= (103 + 97) mod 128
= 200 mod 128
= 72
Ci = 72 maka karakter ciphertext dengan nilai 72 adalah ‘H’. Begitu
seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap karakter hingga
g o r o n t a l o
103 111 114 111 110 116 97 108 111
a r i f a r i f a
97 114 105 102 97 114 105 102 97
H a [ U O f J R P
72 97 91 85 79 102 74 82 80
61
semua plaintext telah terenkripsi menjadi ciphertext. Setelah semua huruf
terenkripsi maka proses dekripsinya dapat dihitung sebagai berikut:
Pi = ( Ci – Ki ) + 128
= ( 72 – 93 ) +128
= –25 + 128
= 103
Pi = 103 maka karakter plaintext dengan nilai 103 adalah ‘g’. Begitu
seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap karakter hingga
semua ciphertext telah terdekripsi menjadi plaintext.
4.2.2 Algoritma AES (Advance Encryption Standard) 128
1) AddRoundKey
Pada proses ini subkey digabungkan dengan plaintext. Proses penggabungan
ini menggunakan operasi XOR untuk setiap byte dari subkey dengan byte yang
bersangkutan dari plaintext. Untuk setiap tahap, subkey dibangkitkan dari kunci
utama dengan menggunakan proses key schedule. Setiap subkey berukuran sama
dengan plaintext yang bersangkutan. Proses AddRoundKey diperlihatkan pada
Gambar 4.26.
62
Plaintext Cipher Key
Gambar 4.26 proses AddRoundKey
Hasil dari proses XOR pada byte pertama yaitu 19, bilangan ini didapatkan
dari proses XOR antara bilangan 32 dan 2b, sebelum melakukan XOR bilangan 32
dan 2b diubah dalam bentuk biner, proses perhitungan sebagai berikut:
32 : 00110010
2b : 00101011
XOR : 00011001
Angka biner 00011001 jika diubah kedalam bentuk hexadecimal menjadi
bilangan 19. Begitu seterusnya dilakukan proses XOR antara byte plaintext dan key
untuk menghasilkan penggabungan XOR antara kedua state.
2b 28 ab 09
7e ae f7 cf
15 d2 15 4f
16 a6 88 3c
32 88 31 e0
43 5a 31 37
f6 30 98 07
a8 8d a2 34
19 a0 9a e9
3d f4 c6 f8
e3 e2 8d 48
be 2b 2a 08
XOR
63
2) SubBytes
Proses SubBytes adalah operasi yang akan melakukan substitusi tidak linear
dengan cara mengganti setiap byte state dengan byte pada sebuah tabel yang
dinamakan tabel SBox. Sebuah tabel S-Box terdiri dari 16x16 baris dan kolom
dengan masing-masing berukuran 1 byte.
State
Hasil SubByte
Gambar 4.27 proses SubByte
Dari gambar diatas dapat dilihat bahwa byte pertama dengan bilangan 19
pada state dimasukkan pada table S-Box dan menghasilkan bilangan d4, proses
tersebut dilakukan pada semua byte yang terdapat pada state untuk menghasilkan
state baru sesuai dengan algoritma AES.
19 a0 9a e9
3d f4 c6 f8
e3 e2 8d 48
be 2b 2a 08
d4 e0 b8 le
27 bf b4 41
11 98 5d 52
ae f1 e5 30
64
3) ShiftRows
Proses ShiftRows akan beroperasi pada tiap baris dari tabel state. Proses ini
akan bekerja dengan cara memutar bytes-bytes pada 3 baris terakhir ( baris 1, 2, dan
3 ) dengan jumlah perputaran yang berbeda-beda. Baris 1 akan diputar sebanyak 1
kali, baris 2 akan diputar sebanyak 2 kali, dan baris 3 akan diputar sebanyak 3 kali.
Sedangkan baris 0 tidak akan diputar. Proses ShiftRows dapat dilihat pada Gambar
4.28 dibawah ini :
State Hasil
Digeser 1 byte
Digeser 2 byte
Digeser 3 byte
Gambar 4.28 proses ShiftRows
4) MixColums
Dalam proses perkalian antara bilangan hexadesimal dan desimal, maka
sebelum proses perkalian dilakukan, bilangan hexadesimal diubah kedalam bentuk
biner, proses perkalian tidak berhenti pada proses perubahan bilangan hexadesimal
saja, untuk menjadikan hasil perkalian menjadi bentuk biner 8 bit, maka bilangan
02 di ubah menjadi 1 bit dan dilakukan pergeseran kekiri sebanyak 1 bit pada
bilangan hexadesimal yang telah diubah kedalam biner. Jika bit paling kiri dari nilai
asli (sebelum pergeseran) adalah 1, maka nilai tersebut akan di XOR dengan
(00011011)
d4 e0 b8 le
27 bf b4 41
11 98 5d 52
ae f1 e5 30
d4 e0 b8 le
bf b4 41 27
5d 52 11 98
30 ae f1 e5
65
Dari state awal dapat dihitung mixcolums pada baris pertama yaitu:
s0 = {d4 . 02} + {bf . 03} + {5d . 01} + {30 . 01}
1. {d4 . 02}
d4 = 1101 0100
{d4 . 02} = 1101 0100 << 1
= 1010 1000 XOR 0001 1011
= 1011 0011 (jawaban)
Sebelum melakukan perkalian, bilangan d4 diubah kedalam bentuk biner,
setelah itu bilangan 02 di ubah menjadi 1bit dan dilakukan pergeseran 1bit kekiri
pada bilangan biner, karena nilai asli bit pertama adalah 1 sebelum pergeseran maka
bilangan tersubut di XOR dengan 0001 1011.
2. {bf . 03}
bf = 1011 1111
03 = 11
= 10 XOR 01
Bit 10 = 02
{03} . {bf} = {10 XOR 01} . {1011 1111}
= {1011 1111 . 10} XOR {1011 1111 . 01}
= {1011 1111 . 10} XOR {1011 1111}
(karena {1011 1111} x 1[desimal] = 1011 1111)
= 0111 1110 XOR 0001 1011 XOR 1011 1111
= 1101 1010 (jawaban)
66
3. {5d . 01}
{5d . 01} = 0101 1101 . 1
= 0101 1101 (jawaban)
Karena bilangan biner dikalikan 1 dalam decimal akan menjadi bilangan
biner itu sendiri.
4. {30 . 01}
{30 . 01} = 0011 0000 . 1
= 0011 0000 (jawaban)
Bilangan-bilangan biner tadi dimasukkan dalam rumus dan dihitung kembali sesuai
banyaknya bit pada matriks.
s0 = {d4 . 02} + {bf . 03} + {5d . 01} + {30 . 01}
= 1011 0011 XOR 1101 1010 XOR 0101 1101 XOR 0011 0000
= 0000 0100
= 04 (dalam Hex)
State
020101
030201
03 01
010302
010103
01 02
Hasil MixColums
Gambar 4.29 Proses MixColums
d4 e0 b8 le
bf b4 41 27
5d 52 11 98
30 ae f1 e5
d4
bf
5d
30
04 e0 48 28
66 cb f8 06
81 19 d3 26
e5 9a 7a 4c
=