RANCANG BANGUN SECURE CHATTING PADA PLATFORM ANDROID DENGAN ALGORITMA TWOFISH Ainatul Radhiah 10951006693
Tanggal Sidang: Periode Wisuda:
Jurusan Teknik Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri Sultan Syarif Kasim Riau
ABSTRAK Aplikasi chatting menjadi populer dikalangan pengguna smart phone karena digunakan setiap hari oleh pengguna. Saat ini banyak pengguna smartphone yang lebih memilih menggunakan aplikasi chatting dibandingkan sms , ini dikarenakan murahnya tarif internet yang ditawarkan berbagai operator , kecepatan menerima pesan pada aplikasi chatting dibandingkan sms. Disamping berbagai kemudahan yang diberikan aplikasi chatting, masih terdapat permasalahan diantaranya mengenai keamanan. Aplikasi Secure Chatting ini merupakan aplikasi chatting pada platform Android yang dirangcang dengan teknologi kriptografi menggunakan algoritma Twofish 128 bit dengan mode operasi Chiper Block Chaining (CBC), sehingga dapat menjamin keamanan pesan yang dikirim. Pesan yang dikirim dalam bentuk plainteks akan sampai ke database dalam bentuk chiperteks, lalu dikirim kepenerima dalam bentuk plainteks. Pengujian dilakukan terhadap dua perangkat smart phone dalam satu jaringan wifi, hasil pengujian system yang dibangun menunjukkan aplikasi chatting dapat melakukan pengamanan pesan.
Kata kunci: Android, Secure, Chatting , Kriptografi, smartphone.
vii
DAFTAR ISI
HALAMAN JUDUL LAPORAN .............................................................. i KATA PENGANTAR ................................................................................. ii DAFTAR ISI ................................................................................................ iii DAFTAR GAMBAR ................................................................................... iv DAFTAR PERSAMAAN............................................................................ v DAFTAR LAMPIRAN ............................................................................... vi DAFTAR TABEL ....................................................................................... vii DAFTAR SIMBOL ..................................................................................... viii DAFTAR ISTILAH .................................................................................... ix BAB I PENDAHULUAN ............................................................................ I-1 1.1. Latar Belakang .......................................................................... I-1 1.2. Rumusan Masalah ...................................................................... I-2 1.3. Batasan Masalah......................................................................... I-2 1.4. Tujuan Penelitian ....................................................................... I-3 1.5. Manfaat Penelitian ..................................................................... I-3 BAB II LANDASAN TEORI ..................................................................... II-1 2.1. Pengertian Komunikasi .............................................................. II-1 2.1.1. Pengertian komunikasi menurut para ahli ........................ II-1 2.1.2. Unsur-unsur penting dalam komunikasi .......................... II-2 2.2. Chat Messanger .......................................................................... II-3 2.3. Android....................................................................................... II-3 2.3.1. Sejarah Android .......................................................... II-4 2.3.2. Arsitektur Android ...................................................... II-4 2.3.3. Komponen Aplikasi................................................................. II-6 2.3.4. Kelebihan platform Android ................................................... II-7 xi
2.4. Kriptografi .................................................................................. II-8 2.4.1. Mekanisme penyandian kriptografi modern ............... II-10 2.4.1.1. Penyandian dengan kunci simetris ............... II-10 2.4.1.2. Penyandian dengan kunci asimetris ............. II-10 2.4.2. Jenis pemrosesan data pada kriptografi....................... II-11 2.4.3. Mode operasi pada block chipper ............................... II-12 2.5. Algoritma Twofish ..................................................................... II-14 2.5.1 Twofish building blocks............................................... II-15 2.5.2.Tahap implementasi Twofish ....................................... II-17 2.5.3. Fungsi F ...................................................................... II-19 2.5.4. Fungsi g ....................................................................... II-20 2.5.5. Penjadwalan kunci ...................................................... II-21 2.5.5.1. Penambahan panjang kunci .......................... II-23 2.5.5.2. Fungsi h ........................................................ II-23 2.5.5.3. Key dependent S-Boxes ............................... II-25 2.5.5.4. Ekspansi kunci ............................................. II-26 2.5.5.5. Permutasi qo dan q1 ..................................... II-26 2.6. Konversi little endian ................................................................. II-28 2.7. Galois Field (28) ......................................................................... II-30 2.7.1. Penjumlahan Galois Field (28) ............................... II-30 2.7.2. Perkalian Galois Field (28) ..................................... II-31 2.8. Unified Modelling Language (UML) ......................................... II-33 2.8.1. Usecase Diagram ............................................................. II-34 2.8.2. Sequance Diagram ........................................................... II-35 2.8.3. Class Diagram ................................................................. II-36 2.8.4. Activity Diagram .............................................................. II-38 BAB III METODOLOGI PENELITIAN ................................................. III-1 3.1. Tahapan penelitian ..................................................................... III-1 3.1.1. Alur Tahapan Rational Unified Process ......................... III-1 xii
3.2.2. Tahapan Rational Unified Process (RUP) ....................... III-2 3.2.1. Fase Inception ................................................. III-2 3.2.2.Fase Elaboration ............................................... III-3 3.2.3.Fase Construction ............................................. III-4 3.2.4.Fase Transition ................................................. III-4 BAB IV ANALISA DAN PERANCANGAN ............................................ IV-1 4.1. Fase Inception ............................................................................ IV-1 4.1.1. Deskripsi Umum Sistem................................................... IV-1 4.2. Fase Elaboration. ........................................................................ IV-2 4.2.1. Perancangan Sistem ......................................................... IV-2 4.2.1.1. Usecase Diagram ................................................. IV-3 4.2.1.2. Class Diagram ..................................................... IV-5 4.2.1.3. Activity Diagram .................................................. IV-12 4.2.1.4. Sequence Diagram ............................................... IV-13 4.3. Analisis enkripsi dan dekripsi .................................................... IV-13 4.4. Perancangan Antarmuka Pengguna Sistem ................................ IV-19 BAB V IMPLEMENTASI DAN PENGUJIAN ........................................ V-1 5.1. Fase Construction ...................................................................... V-1 5.1.1. Implementasi perangkat lunak ......................................... V-1 5.1.2. BatasanImplementasi ....................................................... V-1 5.1.3. Lingkungan implementasi ................................................ V-2 5.1.3. Implementasi antar muka ................................................. V-2 5.2. Fase Transition ........................................................................... V-7 5.2.1. Pengujian Whitebox........................................................... V-7 5.2.2.1. Pengujian Whitebox Penjadwalan kunci .................. V-7 5.2.2.2. Pengujian Whitebox Enkripsi .................................. V-12 5.2.2.3. Pengujian Whitebox Dekripsi ................................... V-16 5.2.2. Pengujian Blackbox ................................................................... V-20
xiii
5.2.2.1 Pengujian Blackbox komponen aplikasi ................... V-20 5.2.2.1 Pengujian Blacbox hasil enkripsi dan dekripsi ......... V-22 5.2.3. Kesimpulan Pengujian ...................................................... V-23 BAB VI PENUTUP ..................................................................................... VI-1 6.1. Kesimpulan................................................................................. VI-1 6.2. Saran ........................................................................................... VI-1 DAFTAR PUSTAKA LAMPIRAN
xiv
DAFTAR GAMBAR
Gambar
Halaman
2.1. Anatomi Android ................................................................................... II-5 2.2. Diagram proses enkripsi dan dekripsi .................................................... II-9 2.3. Skema penyandian dengan kunci simetris ................................................... II-10 2.4. Skema penyandian dengan kunci asimetris ................................................. II-11 2.5. Skema enkripsi dekripsi dengan mode ECB .......................................... II-12 2.6. Skema enkripsi dekripsi dengan mode CBC .......................................... II-13 2.7. Struktur algoritma Twofish..................................................................... II-17 2.8. Satu putaran fungsi f............................................................................... II-19 2.9. Fungsi h .................................................................................................. II-25 2.10. Contoh konversi little endian dan big endian ...................................... II-22 2.11. Use case diagram ................................................................................. II-35 2.12. Sequence diagram ................................................................................ II-36 2.13. Class diagram ...................................................................................... II-37 2.14. Activity diagram ................................................................................... II-38 3.1. Tahapan penelitian dengan metode RUP .............................................. III-1 4.1. Arsitektur global aplikasi Secure Chatting ............................................ IV-1 4.2. Use case diagram aplikasi Secure Chatting .......................................... IV-3 4.3. Class diagram aplikasi Secure Chatting ................................................ IV-5 4.4. Activity diagram pengiriman dan penerimaan pesan chatting ............... IV-12 4.5. Sequence diagram pengiriman dan penerimaan pesan chatting ............ IV-13 4.6. Flow chart proses penjadwalan kunci .................................................... IV-16 4.7. Flow chart proses enkripsi ..................................................................... IV-18 4.8. Flow chart proses dekripsi ..................................................................... IV-21 4.9. Rancangan struktur menu Secure Chatting di Android.......................... IV-23 xv
4.10. Rancangan menu utama ....................................................................... IV-24 4.11. Rancangan form registrasi.................................................................... IV-24 4.12. Rancangan form login .......................................................................... IV-25 4.13. Rancangan menu home ........................................................................ IV-25 4.14. Rancangan menu online friends ........................................................... IV-26 4.15. Rancangan menu offline friends ........................................................... IV-26 4.16. Rancangan menu chatting .................................................................... IV-27 4.17. Rancangan menu about ........................................................................ IV-27 5.1. Implementasi halaman awal Secure Chatting ........................................ V-3 5.2. Implementasi antar muka halaman utama .............................................. V-3 5.3. Implementasi halaman login .................................................................. V-4 5.4. Implementasi antar muka home ............................................................. V-5 5.5. Implementasi antar muka Online Friends dan Offline Friends ............. V-5 5.6. Implementasi antar muka chatting ......................................................... V-6 5.7. Implementasi antar muka hasil enkripsi ................................................ V-6 5.8. Flow graph penjadwalan kunci .............................................................. V-7 5.9. Output penjadwalan kunci...................................................................... V-12 5.10. Flow graph proses enkripsi .................................................................. V-12 5.11. Flow graph proses dekripsi .................................................................. V-16 A.1. Activity diagram Login ......................................................................... A-1 A.2. Activity diagram registrasi .................................................................... A-2 A.3. Activity diagram about .......................................................................... A-3 A.4. Sequence diagram login ........................................................................ A-4 A.5. Sequence diagram registrasi ................................................................. A-5 A.6. Sequence diagram about ....................................................................... A-5 A.7. Sequence diagram menampilkan detil posisi ........................................ A-7
xvi
DAFTAR PERSAMAAN
Tabel
Halaman
2.1. konversi little endian plainteks ............................................................ II-17 2.2. Input Whitening plainteks .................................................................... II-18 2.3. Satu ronde jaringan Feitsel Twofish ..................................................... II-18 2.4. Konversi little endian chiperteks ......................................................... II-18 2.5. Pembentukan chiperteks dengan konversi little endian ....................... II-18 2.6. Fungsi F................................................................................................ II-19 2.7. Fungsi g ................................................................................................ II-20 2.8. Pembagian kunci M dengan konversi little endian .............................. II-21 2.9. Pembentukan kunci M ......................................................................... II-21 2.10. Konversi biner ke hexa ...................................................................... II-21 2.11. Pembentukan kunci S. ........................................................................ II-22 2.12. Pembagian kata-kata dalam byte dalam fungsi h. .............................. II-23 2.13. Subtitusi dan XOR pada fungsi h jika k ≥ 3....................................... II-24 2.14. Subtitusi dan XOR pada fungsi h jika k = 3 ...................................... II-24 2.15. Subtitusi dan XOR pada fungsi h dalam seluruh kasus ..................... II-24 2.16. Key dependent S-Boxes ..................................................................... II-25 2.17. Ekspansi Kunci. ................................................................................. II-26 2.18. Permutasi q. ........................................................................................ II-27
v
DAFTAR LAMPIRAN
Lampiran
Halaman
A. Perancangan Model Sistem ...................................................................... A-1 B. Pengujian White Box ............................................................................... B-1 C. Pengujian Tambahan .............................................................................. C-1 D. Hasil Implementasi .................................................................................. D-1 E. Tabel ASCII ............................................................................................. E-1 F. Tabel Kebenaran ....................................................................................... F-1
xviii
DAFTAR SIMBOL
Pengguna Sistem (Aktor) NewClass
Proses (Use case) NewUseCase
Aktivitas (Activity)
Keputusan (Decision)
Status mulai (start state)
Status selesai (end state)
Kelas (class)
viii
DAFTAR ISTILAH
Android
: Sistem operasi untuk perangkat komunikasi jenis smartphone.
Android SDK
: Kumpulan
library
untuk
development
aplikasi
Android. Android Runtime
: Pustaka inti penyedia fungsi-fungsi di Android.
Database
: Basis data yang digunakan untuk menyimpan data.
Interface
: Antarmuka.
Java development kit
: Merupakan kumpulan library untuk pemrograman Java
Server
: yang menyediakan layanan sistem.
Smartphone
: Perangkat komunikasi
yang di dalamnya telah
ditanamkan sistem pintar seperti sistem operasi dan aplikasi pendukung lainnya. Web browser
: Aplikasi untuk menjelajahi informasi berbasis web.
Secure
: Aman.
xxii
BAB I PENDAHULUAN
1.1
Latar Belakang Perkembangan pesat pada teknologi smart phone Android telah memacu
para developer untuk membuat berbagai aplikasi yang memudahkan kehidupan manusia. Berdasarkan data dari International Data Cooperation (IDC) pada tahun 2012 , Android menguasai 75% pasar smartphone, jauh mengalahkan para pesaingnya seperti Windows Phone, Apple iOS, Symbian dan BlackBerry. Berdasarkan data dari IDC, sebanyak 136 juta smartphone Android berhasil dikapalkan selama kuartal ketiga tahun ini dengan penguasaan pasar mencapai 75%, meningkat dari tahun lalu yang hanya menguasai 57,5%. Diantara aplikasi yang paling populer saat ini ialah aplikasi pesan instan yang kerap disebut sebagai aplikasi chatting. Aplikasi chatting menjadi populer karena digunakan setiap hari oleh pengguna. Saat ini banyak pengguna smartphone yang lebih memilih menggunakan aplikasi chatting dibandingkan sms , ini dikarenakan murahnya tarif internet yang ditawarkan berbagai operator , kecepatan menerima pesan pada aplikasi chatting dibandingkan sms yang terkadang memiliki gangguan jaringan sehingga pesan yang dikirim tidak bisa langsung sampai ke tujuan. Disamping berbagai kemudahan yang diberikan aplikasi chatting, masih terdapat permasalahan diantaranya mengenai keamanan. Kebanyakan aplikasi chatting yang digunakan belum memiliki kemanan yang cukup untuk melindungi kerahasiaan pesan dari hacker. Keamanan sangat penting untuk meyakinkan bahwa pesan diterima secara utuh ke tujuan tanpa ada modifikasi dari hacker. Celah kemanan pada aplikasi chatting terdapat pada pesan yang dikirim melalui server , maka ada kemuningkinan server bisa disabotase oleh hacker sebelum pesan sampai ke tujuan. Selain itu celah keamanan juga terdapat pada jaringan saat pesan dikirimkan. Teknologi kriptografi yang merupakan teknik menyembunyikan pesan dalam ilmu komputer dapat meningkatkan kemananan bertukar informasi melalui
I-1
media chatting. Salah satu kriptografi simetris yang tepat digunakan dalam aplikasi chatting ialah Twofish yang tergolong dalam kriptografi simetris sehingga dapat digunakan secara real-time. Algoritma Twofish merupakan algoritma kuat yang sampai saat ini dinyatakan aman karena masih belum ada serangan kriptanalisis yang benar – benar dapat mematahkan algoritma ini (Bruce Schneier). Adapun penelitian sbelumnya tentang aplkasi chatting dengan enkripsi Twofish ialah
Implementasi Mobile Chat pada sistem operasi android 2.2,
Respati Bahry Mahputra (2011). Implementasi algoritma Twofish untuk enkripsi dan deskripsi SMS pada ponsel berbasis Android oleh Wijaya, Chandra Ari and Triana, Willya (2012). Pada jurnal yang berjudul Implementation of Secure Master Using Modified Twofish Algorithm in FPGA Devices (International Journal of Engineering Research and Applications (IJERA) disebutkan bahwa twofish adalah salah satu algoritma kriptografi yang paling aman dan membutuhkan proses yang cepat pada enkrpsi dan deksripsinya. Dari latar belakang diatas, maka pada tugas akhir ini penulis membangun sebuah aplikasi chatting dengan menggunakan teknologi kriptografi kunci simetris Twofish-128 bit agar proses enkripsi dan dekripsi berjalan lebih cepat. Untuk itu tugas akhir yang akan dibuat berjudul “Rancang Bangun Secure Chatting Pada Platform Android Dengan Menggunakan Algoritma Twofish“. 1.2
Rumusan Masalah Berdasarkan latar belakang di atas dapat ditarik rumusan masalah dalam
penelitian ini sebagai berikut: 1.
Bagaimana cara membangun aplikasi chatting yang aman menggunakan platform Android dengan teknologi kriptografi Twofish.
1.3
Batasan Masalah Batasan masalah pada penelitian ini bertujuan agar pembahasan tidak
meluas dan dapat terfokus pada bidang kajiannya, maka batasan masalahnya sebagai berikut: 1. Perancangan sistem menggunakan platform Android
I-2
2. Aplikasi yang akan dibangun bersifat cilent server. 3. Algoritma kriptografi yang digunakan adalah Algoritma Twofish dengan panjang kunci 128 bit dan Mode Operasi CBC. 4. Aplikasi chatting terbatas dengan fitur pengiriman teks.
1.4
Tujuan Penelitian Tujuan dari penelitian ini adalah membangun aplikasi chatting aman dari
serangan hacker dengan teknologi kriptografi menggunakan algoritma Twofish.
1.5
Sistematika Penulisan Berikut merupakan rencana susunan sistematika penulisan laporan tugas
akhir yang akan dibuat. Sistematika penulisan laporan tugas akhir ini meliputi: BAB I PENDAHULUAN Bab I ini merupakan bagian yang akan menguraikan hal-hal seperti; latar belakang masalah, rumusan masalah, hal-hal yang menjadi batasan masalah, metodologi penelitian, tujuan penulisan, dan sistematika penulisan laporan tugas akhir BAB II LANDASAN TEORI Bab ini berisi tentang teori-teori dan konsep-konsep tentang Android, kriptografi, metode Twofish serta menjelaskan tentang proses kerja metode Twofish
untuk mengamankan pesan pada aplikasi secure
chatting. BAB III METODOLOGI PENELITIAN Bab ini berisi tentang cara-cara atau hal-hal yang dilakukan dalam menyelesaikan kasus tugas akhir ini. BAB IV ANALISIS DAN PERANCANGAN Bab ini berisi tentang analisis dari penelitian yang dilakukan dalam tugas akhir ini sekaligus menerangkan perancangan Aplikasi Secure Chatting pada Platform Android menggunakan kriptigrafi metode Twofish. BAB V IMPLEMENTASI DAN PENGUJIAN
I-3
Bab ini berisi tentang langkah-langkah pembangunan aplikasi Secure Chatting dan menguji hasil dari rancangan yang akan dibangun. BAB VI PENUTUP Bab ini berisi kesimpulan dan saran mengenai hasil analisis, perancangan, hasil implementasi dan hasil pengujian yang telah dilakukan terhadap aplikasi Secure Chatting.
I-4
BAB II LANDASAN TEORI
2.1
Pengertian Komunikasi
Komunikasi ialah suatu proses yang memungkinkan seseorang atau beberapa orang yangbertukar informasi baik dalam bentuk verbal dan non verbal antara satu dan lainnya , sehingga terjadi pemahaman antara kedua pihak yang melakukan komunikasi tersebut. Istilah komunikasi communication berasal dari kata latin communicatio, dan bersumber dari kata communis yang artinya membuat kebersamaan atau membangun kebersamaan antara dua orang atau lebih. 2.1.1 Pengertian Komunikasi Menurut Para Ahli 1. Theodore M. Newcomb “Setiap tindakan komunikasi dipandang sebagai suatu transmisi informasi,terdiri dari rangsangan yang diskriminatif, dari sumber kepada penerima” 2. Carl I. Hovland “Komunikasi adalah proses yang memungkinkan seseorang (komunikator) menyampaikan rangsangan (biasanya lambang-lambang verbal) untuk mengubah perilaku orang lain (komunikan)”. 3. Everett M. Rogers “Komunikasi adalah proses dimana suatu ide dialihkan dari sumber kepada suatu penerima atau lebih, dengan maksud untuk mengubah tingkah laku mereka”. 4. Harold Lasswell Who Says What In Which Channel to Whom With What Effect? Atau Siapa Mengatakan Apa Dengan Saluran Apa Kepada Siapa Dengan Pengaruh Bagaimana?.
II - 1
Komunikasi terbagi dua yaitu verbal dan non verbal. Komunikasi verbal yaitu suatu proses komunikasi dengan menggunakan simbol atau lambanglambang. Simbol-simbol yang digunakan selain sudah ada yang diterima menurut konvensi internasional seperti simbol lalu-lintas, alfabet latin, simbol matematika, juga .terdapat simbol-simbol lokal yang hanya bisa dimengerti oleh kelompokkelompok masyarakat tertentu. Sedangkan komunikasi non verbal adalah proses komunikasi dengan menggunakan kode non verbal. Kode non verbal biasa disebut bahasa isyarat atau bahasa diam (silent language), maupun bahasa tubuh (body language).
2.1.2
Unsur-Unsur Penting Dalam Komunikasi
1. Sumber pembuat atau pengirim informasi. Dalam komunikasi antar manusia, sumber bisa terdiri dari satu orang, tetapi bisa juga dalam kelompok misalnya partai, organisasi atau lembaga. Sumber biasa disebut juga komunikator atau dalam bahasa Inggrisnya disebut source, sender atau decoder. 2. Pesan yang disampaikan oleh pengirim kepada penerima. Pesan dapat disampaikan dengan cara tatap muka atau melalui media komunikasi. 3. Media yang digunakan untuk
memindahkan pesan dari sumber
kepadapenerima. 4. Penerimayang menjadi sasaran pesan yang dikirim oleh sumber. Penerima bisa terdiri dari satu orang atau lebih. Penerima biasa disebut komunikan atau dalam bahasa Inggris disebut audience atau receiver. 5. Efek atau pengaruh adalah perbedaan antara apa yang dipikirkan, dirasakan dan dilakukan oleh penerima sebelum dan sesudah menerima pesan. Pengaruh ini bisa tergantung dari pengetahuan, sikap dan tingkah laku seseorang. (De Fleur, 1982). 6. Umpan Balik adalah suatu bentuk tanggapan balik dari penerima setelah memperoleh pesan yang diterima.
II-2
2.2Chat Messanger Online chat adalah suatu teknologi internet yang memungkinkan pengguna melakukan komunikasi berbasis teks melalui internet sebuah jaringan LAN atau Local Area Network ataupun internet. Pengertian Chat Messanger atau Chatting adalah mengobrol. Dalam dunia komputer dan internet, pengertian Chat Messanger adalah suatu fasilitas dalam internet untuk berkomunikasi sesama pengguna internet yang sedang on-line. Percakapan di Internet dapat menggunakan perangkat lunak seperti pengirim pesan instan, Internet Relay Chat, dan lain-lain. Beberapa perangkat lunak untuk percakapan di Internet antara lain AOL Instant Messenger (AIM) , Camfrog , Campfire, Gadu-Gadu, Google Talk, ICQ (OSCAR), Internet Relay Chat (IRC), Jabber (XMPP), MUD, MUSH, PalTalk, Yahoo! Messenger, Skype. 2.3
Android Android adalah platformyang berjalan diatas sistem operasi Linux.Android
yang merupakan sistem operasi perangkat mobile ini berlisensi open source.Artinya android menyediakan platform terbuka bagi para pengembang untuk dapat dengan bebas menciptakan aplikasi mereka sendiri. Saat ini versi Android sudah mencapai versi 2.4 alias Android Ice Cream Sandwich. Bahasa pemrograman dasar yang digunakan untuk pengembangan aplikasi yang berjalan diatas androidadalah Java dengan pemanfaatan Google Developed Java Libraries.Kode Java dikompilasikan dengan data dan file resources yang dibutuhkan aplikasi dan digabungkan oleh aapt tools menjadi suatu paket Android. File tersebut ditandai dengan ekstensi .apk. File inilah yang didistribusikan sebagai aplikasi dan diinstall pada perangkat mobile. Android SDK (Software Development Kit) adalah sebuah paket tools yang diperlukan untuk mulai membangun aplikasi yang berjalan di platform android menggunakan bahasa java. Selain android SDK untuk pengembangan aplikasi, android juga tersedia bebas dalam bentuk Operating System (OS).Sehingga para
II-3
vendor smartphone berlomba-lomba untuk mengeluarkan produk smartphone berbasis android.
2.3.1
Sejarah Android Pada tahun 2005 Google Inc membeli Android Inc yang pada saat itu
dimotori oleh Andy Rubin, Rich Miner, Nick Sears dan Chris White. Kemudian dibentuklah Open Handset Alliance yang ditujukan untuk mengembangkan android secara intensif. Kemudian pada tanggal 5 November 2007 Android pertama kali diluncurkan, dan smartphone pertama yang menggunakan sistem operasi Android dikeluarkan oleh T-Mobile dengan sebutan G1 pada bulan September 2008. Pada tanggal 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, yaitu Atheros Communications, yang diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group. Hingga saat ini Android telah merilis beberapa versi Android untuk menyempurnakan versi sebelumnya. Selain berdasarkan penomoran, pada setiap versi Android terdapat kode nama berdasarkan nama-nama kue. Hingga saat ini sudah terdapat beberapa versi yang telah diluncurkan, diantaranya: versi 1.5 dirilis pada 30 April 2009 diberi nama Cupcake, versi 1.6 dirilis pada 15 September 2009 diberi nama Donut, versi 2.0/2.1 dirilis pada 26 Oktober 2009 diberi nama Éclair, versi 2.2 dirilis pada bulan Mei 2010 diberi nama Froyo dan versi 2.3 dirilis pada Desember 2010 yang diberi nama Gingerbread, Versi 2.4 dirilis pada 4 mei 2011 dengan nama Android Ice Cream sandwich.
2.3.2
Arsitektur Android Android merupakan platform yang open source sehingga banyak pihak
dapat mengembangkan aplikasi dengan platform android. Gambar di bawah ini merupakan diagram arsitektur platform android.
II-4
Gambar 2.1 Anatomi Android Gambar 2.1 Arsitektur Android 1. Application and Widgets (layerpaling atas) Layer yang hanya memungkinkan user berinteraksi pada aplikasi seperti download, installkemudian menjalankan aplikasi tersebut. 2.
Application Framework (ke dua dari atas) Layer bagi para pengembang untuk membuat aplikasi yang akan dijalankan di android. Pada layer ini seorang pengembang dapat mengakses beberapa komponen dan dapat mengolahnya, seperti Views, Content Provider, Resource Manager, Notification Manager, dan Activity Manager.
3. Libraries dan android runtime Libraries yangmerupakan penyimpanan fitur-fitur yang dibutuhkan dalam pengembangan aplikasi android. Seperti sql-lite yang digunakan untuk pengolahan database.Sedangkan android runtime merupakan layer yang membuat aplikasi android dapat di jalankan. 4. Linux Kernel Layer inti yang berisi file-file sistem yang mengatur sistem processing memory, recources, drivers, dan sistem operasi android lainnya.
II-5
2.3.3
Komponen Aplikasi Aplikasi Android dibangun menggunakan bahasa Java. Kode Java yang
dikompilasibersama dengan data file resource yang dibutuhkan oleh aplikasi, prosesnya di paket oleh tools yang dinamakan apt tools kedalam paket Android, sehingga menghasilkan file dengan ekstensi apk. Berikut adalah komponen-komponen yang terdapat pada aplikasi android, yaitu: 1. Activities Activity adalah komponen utama suatu aplikasi android yang menyajikan user interface (UI) kepada pengguna, sehingga pengguna dapat melakukan interaksi. Satu activity biasanya akan dipakai untuk menampilkan aplikasi atau yang bertindak sebagai user interface (UI) saat aplikasi diperlihatkan kepada user. Dalam suatu aplikasi biasanya terdapat kumpulan activities baik yang kita buat atau activities yang diakses adri aplikasi lainnya.Untuk pindah dari satu activity ke activity lain, kita dapat melakukan dengan satu even, misalnya klik tombol, memilih opsi atau menggunakan triggers tertentu. 2. Service Service tidak memiliki Graphic User Interface (GUI), sehingga komponen service diproses tidak terlihat oleh kasat mata. Service memperbaharui sumber data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan data yang terus diproses, bahkan ketika activity tidak aktif. 3. Broadcast Receiver Broadcast receiver berfungsi untuk menanggapi dan bereaksi untuk menyampaikan notifikasi. Seperti notifikasi ada telpon masuk. Notifikasi merupakan respon dari broadcast yang dikirim oleh OSandoid. Broadcast receiver tidak memiliki user interface, tetapi memiliki sebuah activity untuk merespon informasi yang diterima atau menggunakan notification manager untuk memberi tahu pengguna, seperti lampu latar atau getaran. 4. Content Provider Content provider mengelola sekumpulan data yang bersifat shared.Data dapat disimpan dalam file seperti database SQLite. Content provider menyediakan
II-6
cara untuk mengakses data yang dibutuhkan oleh suatu activity, misalnya ketika kita menggunakan aplikasi yang membutuhkan peta atau aplikasi yang membutuhkan untuk mengakses data kontak dan navigasi, maka disinilah fungsi dari content provider.
2.3.4
Kelebihan Platform Android Persaingan platform atau sistem operasi semakin ketat, ini dapat dilihat
dari banyaknya sistem operasi yang ada seperti, Symbian, BlackBerry, Java Mobile Edition dan Linux Mobile (LiM0). Namun, Android adalah yang pertama menggabungkan hal seperti berikut : 1. Keterbukaan, Bebas pengembangan tanpa dikenakan biaya terhadap sistemkarena berbasiskan Linux dan open source. Pembuat perangkat menyukai hal ini karena dapat membangun platform yang sesuai yang diinginkan tanpa harus membayar royality. 2. Arsitektur komponen dasar Android terinspirasi dari teknologi internet Mashup. Bagian dalam sebuah aplikasi dapat digunakan oleh aplikasi lainnya, bahkan dapat diganti dengan komponen lain yang sesuai dengan aplikasi yang dikembangkan. 3. Banyak dukungan service, kemudahan dalam menggunakan berbagai macam layanan pada aplikasi seperti penggunaan layanan pencarian lokasi, database SQL, browser dan penggunaan peta. Semua itu sudah tertanam pada Android sehingga memudahkan dalam pengembangan aplikasi. 4. Siklus hidup aplikasi diatur secara otomatis, setiap program terjaga antara satu sama lain oleh berbagai lapisan keamanan, sehingga kerja sistem menjadi lebih stabil. 5. Dukungan grafis dan suarat terbaik, dengan adanya dukungan 2D grafis dan animasi yang diilhami oleh Flash menyatu dalam 3D menggunakan OpenGL memungkinkan membuat aplikasi maupun game yang berbeda. 6. Portabilitas aplikasi, aplikasi dapat digunakan pada perangkat yang ada saat ini maupun yang akan datang.
II-7
2.4 Kriptografi Kriptografi ialah ilmu dan seni menyembunyikan pesan yang bersandarkan pada ilmu matematika dengan tujuan untuk menciptakan keamanan informasi dan kerahasiaan dari suatu pesan.Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu : 1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi. 2. Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya. 3. Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain. 4. Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada kerahasiaan algoritma yang digunakan (yang artinya apabila algoritma yang digunakan telah diketahui maka pesan sudah jelas "bocor" dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma tersebut), kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya.
II-8
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi : 1. Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli). 2. Cipherteks(C)adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi. 3. Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi cipherteks. 4. Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah cipherteks menjadi plaintext, sehingga berupa data awal/asli. 5. Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi. Kriptografi terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi cipherteks (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti.
Gambar 2.2 Diagram proses enkripsi dan dekripsi Dasar matematis yang mendasari proses enkripsi dan deskripsi adalah relasi antara dua himpunan yaitu yang berisi elemen plaintext dan yang berisi elemen cipertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunan-himpunan tersebut. Apabila elemen-elemen plaintext dinotasikan dengan P, elemen-elemen cipherteks dinotasikan dengan C, sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan notasi D, maka secara matematis proses kriptografi dapat dinyatakan sebagai berikut : Enkripsi : E(P)=C Dekripsi : D(C)=P atau D(E(P))=P
II-9
2.4.1
Mekanisme yang berkembang pada Kriptografi modern
Kriptografi modern merupakan suatu perbaikan yang mengacu padakriptografi klasik.Pada kriptografi modern tedapat beberapa tipe penyandian yang dimaksudkan untuk mengamankan informasi yang dikirim melalui jaringan komputer. Diantara tipe penyandian pada kriptografi modern ialah : 2.4.1.1 Penyandian dengan Kunci Simetris Ini adalah jenis kriptografi yang paling umum dipergunakan. Kunci untuk membuat pesan yang disandikan sama dengan kunci untuk membuka pesan yang disandikan itu. Jadi pembuat pesan dan penerimanya harus memiliki kunci yang sama persis. Siapapun yang memiliki kunci tersebut – termasuk pihak-pihak yang tidak diinginkan – dapat membuat dan membongkar rahasia cipherteks. Problem yang paling jelas disini terkadang bukanlah masalah pengiriman cipherteks-nya, melainkan masalah bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan. Contoh algoritma kunci simetris yang terkenal adalah DES (Data Encryption Standard) dan RC-4.
Gambar 2.3 Skema penyandian dengan kunci simetris 2.4.1.2 Penyandian dengan Kunci Asimetris Pada pertengahan tahun 70-an Whitfield Diffie dan Martin Hellman menemukan teknik enkripsi asimetris yang merevolusi dunia kriptografi. Kunci asimetris
adalah
pasangan
kunci-kunci
kriptografi
yang salah
satunya
dipergunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang
yang
mendapatkan
kunci
publik
dapat
menggunakannya
untuk
mengenkripsikan suatu pesan, sedangkan hanya satu orang saja yang memiliki
II-10
rahasia tertentu – dalam hal ini kunci privat – untuk melakukan pembongkaran terhadap sandi yang dikirim untuknya.
Gambar 2.4 Skema penyandian dengan kunci Asimetris Teknik enkripsi asimetris ini jauh lebih lambat ketimbang enkripsi dengan kunci simetris. Oleh karena itu, biasanya bukanlah pesan itu sendiri yang disandikan dengan kunci asimetris, namun hanya kunci simetrislah yang disandikan dengan kunci asimetris. Sedangkan pesannya dikirim setelah disandikan dengan kunci simetris tadi. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan penemunya yakni Rivest, Shamir dan Adleman). 2.4.2
Jenis Pemrosesan Data Pada Kriptografi Berdasarkan besar data yang diolah dalam satu kali proses, maka
algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu : 1. Blok Chipper Block Cipher adalah algoritma enkripsi yang akan membagi-bagi plaintext yang akan dikirimkan dengan ukuran tertentu (disebut blok) dengan panjang t, dan setiap blok dienkripsi dengan menggunakan kunci yang sama. Pada umumnya, block cipher memproses plaintext dengan blok yang relatif panjang lebih dari 64 bit, untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci. Contoh algoritma kriptografi dengan jenis pemrosesan block chipper : DES, 3DES, GOST, RC5, AES, Blowfish, IDEA, LOKI, RC2, FEAL, Lucifer, CAST, CRAB, SAFER, Twofish, Serpent, RC6, MARS, Camellia, 3-WAY, MMB, SkipJack.
II-11
2. Stream Chipper Stream Cipher adalah algoritma enkripsi yang mengenkripsi data persatuan data, seperti bit, byte, nible atau per 5 bit. Setiap mengenkripsi satu satuan data digunakan kunci yang merupakan hasil pembangkitan dari kunci sebelumnya. Contoh algoritma kriptografi dengan jenis pemrosesan : RC4 (Rivest Cipher 4), A5, A2, SEAL, WAKE, Cellular Automaton.
2.4.3
Mode Operasi Pada Blok Cipher
Dalam mode operasi blok cipher terdapat beberapa jenis pemrosesan data. Variasi mode operasi ini ditujukan agar sistem sandi blok dapat dipakai sesuai dengan kebutuhan berdasarkan permintaan aplikasi. Berikut adalah mode opeasi yang terdapat pada blok cipher, yaitu: 1. Electronic codebook (ECB) Pada mode ini blok-blok plaintext (x) yang identik (yang menggunakan kunci sama) akan menghasilkan cipherteks (c) yang identik pula. Pada mode ini, setiap blok plainteks dienkripsi secara individual dan independen. Secara matematis mode ECB dinyatakan sebagai berikut : Enkripsi :
Ci= EK(Pi)
Dekripsi:
Pi= DK(Ci) P-1
C-1
Ek
Ek
C-1
P-1
Gambar 2.5 Skema enkripsi dan dekripsi dengan mode ECB
II-12
2. Cipher block chaining (CBC) Pada prosesnya, koded ini melibatkan penggunaan initializing vector (IV) yang menyebabkan blok-blok cipherteks yang identik apabila dienkripsi menggunakan kunci dan IV yang sama. Berubahnya IV, kunci atau blok plaintext pertama akan menghasilkan cipherteks yang berbeda. Secara matematis dapat dinyatakan : Enkripsi :Ci = Ek(Pi Ci-1) Dekripsi :Pi=(Dk(Ci) Ci-1 IV
P-1
Ek
C-1
P-2
Ek
IV
P-n
...
C-2
Ek
C-n
C-1
Dk
C-n
C-2
...
Dk
Dk
P-1
P-2
P-n
Gambar 2.6 Proses Enkripsi dan Dekripsi CBC Pada mode CBC masukan untuk enkripsi merupakan hasil dari XOR antara teks asli dengan teks kode sebelumnya. Kunci digunakan pada setiap blok yang ada. Pola dari teks asi ini selalu berulang dan ditutupi oleh operasi XOR sehingga penyerang lebih sulit untuk menganalisis kemungkinan teks aslinya. 3. Cipher feedback (CFB) Jika pada mode CBC, plaintext sebesar n bit diproses dalam sekali waktu (menggunakan sebuah n bit cipher blok), beberapa aplikasi mengharuskan r bit plaintext untuk dienkripsi terlebih dahulu dan ditransmisikan bebas delay, untuk r < n (biasanya r = 1 atau r = 8); dalam kasus ini CBF digunakan. Dalam mode ini juga melibatkan penggunaan initializing vector (IV).
II-13
4. Output feedback (OFB) Mode operasi ini digunakan apabila kesalahan propagasi sama sekali harus dihindari. Hampir mirip dengan CFB, dan juga memungkinkan enkripsi menggunakan besar blok yang berfariasi. 2.5 Algoritma Twofish Algoritma Twofish merupakan perngembangan dari algoritma Blowfish , algoritma ini beroprasi dalam model blok dan tergolong dalam kriptografi simetris. Perancangan Twofish dilakukan dengan memperhatikan kriteria-kriteria yang diajukan National Institute of Standards and Technology (NIST) untuk kompetisi Advanced Encryption Standard (AES) yakni sebagai berikut : 1. Merupakan blok kode dengan panjang kunci simetri dan blok sepanjang 128 bit. 2. Panjang kunci yang digunakan ialah 128 bit, 192 bit dan 256 bit. 3. Tidak memiliki kunci lemah. 4. Efiensi algoritma , baik pada intel pentium pro dan perangkat lunak lainnya serta platform perangkat keras. 5. Rancangan yang fleksibel dan dapat dirtikan, misalnya dapat menerima panjang kunci tambahan, dapat diterapkan pada platform dan aolikasi yang sangat variatif, seta cocok untuk aliran kode, fungsi Has dan MAC. 6. Rancangan yang sederhana agar memudahkan proses analisis dan implementasi algoritma. Selain kriteria yang telah disebutkan diatas, pada Twofish juga ditambahkan kriteria pada performasi berikut : 1. Menerima kunci dengan panjang 256 bit. 2. Mengenkripsikan data dalam waktu kurang dari 500 clock cycles per blok pada intel Pentium Pro dan Pentium II , n=untuk versi algoritma yang teroptimasi sebelumnya.
II-14
3. Mampu membentuk sebuah kunci 128 bit (untuk kecepatan enkripsi yang optimal) dalam waktu yang kurang dari waktu yang dibutuhkan untuk mengenkripsi 32 blok pada Pentium, Pentium Pro dan Pentium II. 4. Tidak menggunakan operasi yang membuat Twofish tidak efisien pada mikroprosesor selain 32 bit, mikroprosesor 8 bit , dan mikroprosesor 16 bit. Twofish juga tidak menggunakan operasi yang dapat mengurangi efisiensi mikroprosesor 64 bit. Algoritma Twofish merupakan algoritma kuat yang sampai saat ini dinyatakan aman karena masih belum ada serangan kriptanalisis yang benar – benar dapat mematahkan algoritma ini. Algoritma ini juga tidak dipatenkan sehingga penggunaannya pada alat enkripsi tidak perlu mengeluarkan biaya.
2.5.1. Twofish Building Blocks Twofish menggunakan struktur sejenis Feitsel dalam 16 putaran dengan tambahan teknik whitening terhadap masukan dan keluaran. Adapun blok yang membangun Twofish ialah sebagai berikut. 1. Jaringan Feitsel Jaringan Feitsel adalah metode umum untuk mentransformasi fungsi apapun (biasanya disebut fungsi f) kedalam permutasi. Bagian penting dari jaringan Feitsel adalah fungsi f, membagi bit-bit input kedalam dua bagian yang sama panjang. Salah satu bagiannya mengalami transformasi nonlinier, hasilnya ditambahkan dengan setengah bagian lainnya, kemudian kedua bagian di pertukarkan posisi antara bagian kiri dan kanan. Keuntungan dari jaringan feitsel adalah fungsi yang sama dapat digunakan untuk melakukan proses enkripsi maupun dekripsi. Algoritma Twofish melakukan 16 ronde (iterasi) jaringan Feitsel. Output sebuah ronde menjadi input bagi ronde berikutnya. 2. S – Boxes S-Box (Substitution box) adalah tahap penggantian nilai sebuah byte. SBox merupakan bagian dari fungsi h. S-Box terdiri dari dua operasi dalam, yaitu operasi XOR dan permutasi. Operasi dalam S-Box dilakukan dalam
II-15
k tingkat, artinya dilakukan k kali operasi XOR dan permutasi. Operasi XOR dilakukan antara byte-byte input dengan byte-byte yang diturunkan dari kunci bantuan Me, Mo atau S. Output dari S-Box dikalikan dengan Matriks MDS, menghasilkan output dari fungsi h. 3. MDS Matrix Kode MDS (Maximum Distance Separable) adalah transformasi linear dari field a ke field b. Gabungan field a dan field b menghasikan vector komposit elemen a + b, dengan ketentuan bahwa jumlah minimum dari elemen bukan nol dari suatu vector bukan nol paling sedikit b+1. Jumlah elemen yang berbeda antara dua vector yang berbeda dihasilkan oleh matrix MDS paling sedikit b+1. Penjumlahan dan perkalian yang berlaku pada matrix MDS merupakan operasi pada GF(28). 4. Transformasi Pseudo Hadamard Transformasi Pseudo Hadamard, disingkat PHT, merupakan operasi penjumlahan mod 232, di defenisikan : a‟ = a + b mod 232 b‟ = a+2b mod 232 Twofish menggunakan PHT 32 bit untuk melakukan mixing terhadap output nya dari dua buah fungsi g 32 bit parallel. 5. Whitening Whitening merupakan teknik meng-XOR kan material kunci sebelum putaran utama dan setelah putaran terakhir. Whitenning menambah tingkat kesulitan serangan pencarian kunci terhadap teks kode dengan menyembunyikan masukan spesifik terhadap putaran Pertama dan terakhir dari fungsi f. 6. Key Schedule (Penjadwalan Kunci) Penjadwalan kunci ialah proses pengubahan bit-bit kunci menjadi upa-upa kunci. Twofish membangun banyak material kunci dan memiliki penjadwalan kunci yang rumit untuk proses enkripsi dan dekripsi.
II-16
2.5.2 Tahap Implementasi Twofish
Plaintext (128 bit)
K0
K1
K2
K3
Input Whitening
F g
S-Box 0
K2r+8 1 <<<
PHT
S-Box 1
Fr,0
MDS S-Box 2 S-Box 3
g
One Round
S-Box 0 S-Box 1
Fr,1 MDS
<<<8 S-Box 2
K2r+9
S-Box 3
>>> 1
. . .
15 More Round Undo Last Swap
K4
K7
K6
K5
Output Whitening
Chipertext (128 bit)
Gambar 2.7 Struktur Algoritma Twofish Pada algoritma Twofish teks asli dibagi kedalam empat bagian kata dengan ukuran 32 bit. Teks asli dengan ukuran 16 byte, yaitu p0, .., p15 dibagi kedalam empat bagian menjadi p0,.., p3 dengan ukuran masing-masing 32 bit dengan menggunakan konversi little endian. 3
Pi =
P(di+j).28j
i=0,…,3
(2.1)
j0
II-17
Di dalam langkah whitening, kata-kata ini di-XOR dengan 4 kata dari kunci yang diperluas i=0,…,3
R0,i=P Ki
(2.2)
Pada setiap 16 putaran, dua kata pertama digunakan sebagai masukan kepada fungsi F, yang juga menerima masukan nomor putaran. Kata yang ketiga di-XOR dengan keluaran pertama F dan kemudian diputar ke kanan satu bit. Kata keempat diputar ke kiri satu bit kemudian di-XOR dengan kata keluaran F Yang kedua . Akhirnya, keduanya saling ditukar menghasilkan persamaan : (Fr,0,Fr,1)=F(Fr,0,Fr,1,r) Rr+1,0=ROR(Rr,2 Fr,0,1 Rr+1,1=ROL(Rr,3,1) Fr,1 Rr+1,2 =Rr,0 Rr+1,3=Rr,1
(2.3)
untuk r = 0,…,15 di mana ROR dan ROL adalah fungsi yang merotasikan argumen pertama ke kanan atau ke kiri dengan jumlah bit sesuai dengan agumen kedua. Langkah whitening keluaran membatalkan `pertukaran‟ putaran terakhir dan meng XOR kata-kata dengan empat kata dari kunci yang diperluas. Ci=R16,(i+2) mod 4 Ki+4
I = 0,…,3
(2.4)
empat kata dari cipherteks kemudian menulis seperti 16 byte c0,…,c15 sama seperti menggunakan konversi little-endian untuk plaintext. C i / 4 8 ( i mod 4 ) 2
Ci =
mod 28 i = 0,…,15
(2.5)
II-18
2.5.3 Fungsi F Fungsi F adalah suatu permutasi yang bergantung pada kunci dengan nilai 64-bit. Fungsi ini menerima tiga argumen, dua kata masukan R0 dan R1, dan nomor putaran untuk menentukan sub-kunci mana yang akan dipakai. R0 yang dilewati fungsi g, menghasilkan T0. R1 diputar 8 bit ke kiri kemudian melewati fungsi g untuk menghasilkan T1. Hasil T0 dan T1 selanjutnya dikombinasikan dalam sebuah PHT danditambahkan 2 kata dari kunci yang diperluas menghasilkan persamaan : T0=g(R0) T1=g(ROL(R1,8)) F0=(T0 + T1 + K2r+8) mod 232 F1=(T0 + 2T1 + K2r+9) mod 232
(2.6)
Di mana ( F0, F1) adalah hasil dari F. Hasil keluaran ini nantinya akan dipertukarkan dan dimasukkan kembali keputaran selanjutnya.
Gambar 2.8 Satu putaran Fungsi f(kunci 128 bit)
II-19
2.5.4
Fungsi g Fungsi g membentuk jantungnya Twofish. Fungsi g terdiri dari dua
elemen, yaitu key-dependent S-boxes dan MDS Matrix. Kata masukan 32 bit X dipecah menjadi empat byte, masing-masing sepanjang 8 bit. Masing-masing byte dijalankan melewati S-box key-dependent. Masing-masing S-box adalah bijective, yaitu mengambil 8 bit masukan, dan menghasilkan 8 bit keluaran. Ke empat hasil diinterpretasikan sebagai vektor yang panjangnya 4 di terhadap GF (28), dan dikalikan dengan yang matriks MDS 4x4 (menggunakan field GF (28) untuk perhitungan komputasinya). Hasil vektor diartikan sebagai kata 32-bit sebagai hasil dari fungsi g. xi = X
/2
8i
mod 2
8
i = 0,…,3
yi = si x i
z0 z1 z2 z3
i = 0,…,3
. . MDS .
=
.
y0 y1 y2 y3
3
Z=
z i .2
8
i0
(2.7)
Keterangan : 1. si adalah S-Box key-dependent 2. Z adalah hasil dari g. Untuk merumuskan dengan baik, harus ditetapkan koresponden antara nilai-nilai byte dan elemen-elemen Galois Field (28), direpresentasikan GF (28) sebagai GF(2)[x]/v(x) di mana v(x) = x8 + x6 + x
5
+ x3 + 1 adalah suatu polinomial 7
primitif dari 8 tingkat di atas GF(2). Unsur Bidang a= i 0 aixi dengan ai Є GF 7
(2) adalah dikenal dengan nilai byte i 0
aixi. Ini adalah beberapa pengertian
II-20
pemetaan alamiah penambahan di dalam GF (28) berkorespondensi dengan suatu XOR dari bytes. Matriks MDS-nya adalah sebagai berikut :
MDS =
01
EF
5B
5B
EF
EF
EF
5B
01
EF
01
EF
5B 01 EF 5B
Di mana elemen-elemen ditulis sebagai nilai-nilai byte hexadecimal. 2.5.5 Penjadwalan Kunci Tahap penjadawalan kunci bertujuan membangun
40 sub kunci, dari
kunci yang diperluas K0,…,K39, yang akan digunakan pada proses enkripsi dan dekripsi. dan 4 buah S-Box key-dependent yang digunakan di dalam fungsi g. Twofish didefinisikan untuk kunci-kunci dengan panjang N= 128, N= 192, dan N= 256. Beberapa kunci yang lebih pendek dari 256 bit dapat digunakan oleh lapisannya dari nol hingga yang lebih besar yang didefinisikan sebagai panjang kunci. Kemudian didefenisikan k=N/64. Tahapan penjadwalan kunci terdiri dari 5 bagian, yakni penambahan panjang kunci, key-dependent S-Boxes, fungsi h, dan permutasi q dan ekspansi kunci. Pada saat kunci dimasukkan di algoritma twofish di defenisikan sebagai kunci M. Kunci M terdiri dari 8k byte, yakni m0,…,m8k-1. Byte-byte adalah yang pertama diubah ke dalam kata-kata berukuran 2k dari setiap 2 bit. Secara matematis dinyatakan sebagai berikut : 3
Mi =
m (4i
j)
.2
8 j
i = 0,…2k-1
(2.8)
j0
Kemudian byte-byte tersebut dikonversi menjadi dua vector kata-kata dengan panjang k. Me =
(M0,M2,…,M2k-2)
Mo = (M1,M3,…,M2k-1)
(2.9)
II-21
Setelah mendapatkan kunci bantuan Me dan dan Mo. Kata ketiga dari vektor dengan panjang k adalah juga diperoleh dari kunci, yakni kunci S. Hal ini dilakukan dengan mengambil byte-byte kunci di dalam kelompok yang berjumlah 8, menginterpretasikannya sebagai vektor di atas GF (28), dan mengalikannya dengan matrils 4x8 yang diturunkan oleh suatu kode RS. Masing-masing hasil dari 4 byte kemudian diinterpretasikan sebagai suatu kata 32 bit.. Kata-kata ini menyusun vektor yang ketiga. Berikut proses pembentukan kunci S secara matematis :
s i,0 s i ,1 s i,2 s i , 3
. . RS .
=
m Si m Si 1 m Si 2 m . Si 3 m Si 4 m Si 5 m Si 6 m Si 7
3
Si=
S i , j .2
j0
8 j
(2.10)
Ketrerangan : i = 0,…,k-1, dan S=
(Sk-1,Sk-2,…,S0)
(2.11)
Urutan kata-kata pada S disusun “terbalik". Karena Untuk perkalian matriks RS, GF (28) diwakili oleh GF (2)[x]/w(x), di mana w(x)= x8+x6+x3+x2+1 adalah polynomial primitif derajat dari 8 tingkat di atas GF(2). Pemetaan antara nilainilai byte dan elemen-elemen GF (28) menggunakan defnisi yang sama sebagaimana yang digunakan untuk perkalian matriks MDS. Dalam pemetaan ini, matriks RS ditunjukkan sebagai berikut :
II-22
RS=
01
A4
55
87 5 A
58
DB
A4
56
82
F 3 1E
C6
68
02
A1
FC
C 1 47
AE
3D
A4
55
87
5 A 58
DB
9E
9E E5 19 03
Ke tiga vektor Me, Mo, dan S ini membentuk basis dari jadwal kunci. Kunci bantuan Me dan Mo digunakan oleh S-Box pada tahap ekspansi kunci dan kunci bantuan S digunakan pada proses enkripsi dan dekripsi. 2.5.5.1 Penambahan Panjang Kunci Twofish dapat menerima kunci-kunci dengan panjang byte sampai 256 bit. Untuk ukuran-ukuran kunci yang tidak didefinisikan di atas, kunci diisi pada bagian akhir dengan nol byte kepada yang lebih panjang berikutnya. Sebagai contoh, suatu kunci 80-bit m0,…,m9 akan diperluas dengan mengatur mi = 0 untuk i= 10,…,15 dan diperlakukan sebagaimana pada kunci 128-bit. 2.5.5.2 Fungsi h Fungsi h menerima dua input, yaitu 32 bit kata X dan daftar L. Daftar L merupakan salah satu dari kunci bantuan S-Box yakni vector S. Fungsi h bekerja pada k tingkatan. Pada tahap awal 32 bit kata X dipecah menjadi 4 byte, dan kata L di pecah menjadi satuan byte-byte. Lalu pada setiap tingkatan keempat byte word X dilewatkan pada kotak S statis dan dilakukan operasi XOR dengan sebuah byte yang diturunkan dari word L. Kemudian byte-byte tersebut sekali lagi dilewatkan pada kotak S dan dikalikan dengan MDS Matrix dan menhhasilkan keluaran z yang merupakan hasil dari fungsi h. Secara formal pembagian kata-kata kedalam byte didefenisikan sebagai berikut : li,j = L i
/2
xj = X
/2
8
8 j
mod 2
8
mod 2
8
(2.12)
untuk i=0,…,k-1 dan j=0,…,3. Kemudian urutan subtitusi dan XOR diterapkan :
II-23
yk,j = xj
j = 0,…,3
jika k≥3 maka : y3,0
=
q1[y4,0] l3,0
y3,1
=
q0[y4,1] l3,1
y3,2
=
q0[y4,2] l3,2
y3,3
=
q1[y4,3] l3,3
y2,0
=
q1[y3,0] l3,0
y2,1
=
q1[y3,1] l3,1
y2,2
=
q0[y3,2] l3,2
y2,3
=
q0[y3,3] l3,3
(2.13)
jika k=4 maka :
(2.14)
Dalam seluruh kasus berlaku : y0
=
q1[q0[q0[y2,0] l1,0] l0,0]
y1
=
q0[q0[q1[y2,1] l1,1] l0,1]
y2
=
q0[q1[q0[y2,2] l1,2] l0,2]
y3
=
q1[q1[q1[y2,3] l1,3] l0,3]
(2.15)
Di sini, q0 dan q1 ditetapkan permutasi di atas nilai 8-bit yang akan didefinisikan dalam algoritma Twofish. Menghasilkan
vektor yang merupakan perkalian
matriks MDS, seperti halnya dalam fungsi g.
II-24
x q1
q0
q0
q1 L3 k=4
k<4
q0
q0
q1
q1 L2 k>2
k=2
q1
q0
q1
q0 L1
q1
q1
q0
q0 L0
q0
q1
q0
q1
MDS
Z
Gambar 2.9 Fungsi h 2.5.3.3 Key-Dependent S-Boxes Didefinisikan S-Box dalam fungsi g oleh : g(x)= h(X; S)
(2.16)
Hal itu adalah karena i= 0,…,3, S-Box Key-Dependentsi dibentuk oleh pemetaan dari xi ke yi di dalam fungsi h, di mana daftar L sama dengan vektor S yang berasal dari kunci.
II-25
2.5.3.4 Ekspansi Kunci Tahap Ekspansi kunci pada Algoritma Twofish membangun 40 sub kunci k0, k1, …,k39. Delapan kunci pertama akan digunakan pada prses input dan output whitening sedangkan 32 kunci lainnya digunakan dalam fungsi F selama proses enkripsi dan dekripsi, untuk membangun 40 sub kunci ini digunakan fungsi h dan hasil dari vector kunci M yang telah diperoleh pada tahap penjadwalan kunci sebelunya, adapun persamaanya secara matematis ditulis sebagai berikut : ρ
= 224 + 216 + 28 + 20
Ai
= h(2iρ,Me)
Bi
= ROL(h((2i + 1) ρ,Mo),8)
K2i
= (Ai + Bi) mod 232
K2i+1
= ROL((Ai + 2Bi) mod 232,9)
(2.17)
Konstanta ρ digunakan untuk menduplikat byte yang mempunyai properti untuk i= 0,…,255, kata itu jika terdiri dari empat byte yang sama, masing-masing dengan nilai i. Fungsi h diberlakukan bagi kata-kata jenis ini. Untuk Ai nilai-nilai byte itu adalah 2i, dan argumentasi yang kedua dari h adalah Me. Bi dihitung dengan cara yang sama menggunakan 2i+1 sebagai byte nilai dan Mo sebagai argumentasi yang kedua, dengan suatu putaran ekstra di atas 8 bit. Nilai-nilai Ai dan Bi Dua dikombinasikan dalam PHT. Salah satu dari hasil itu selanjutnya diputar dengan 9 bit. Kedua hasil tersebut membentuk dua kata kunci yang diperluas. 2.5.3.5 Permutasi q0dan q1 Permutasi q0 dan q1 adalah ditetapkan permutasi di atas nilai-nilai 8 bit yang dibangun dari empat 4-bit permutasi yang masing-masing berbeda. Untuk nilai masukan x didefinisikan sebagai nilai output y sebagai berikut : a0, b0 = x / 16 , x mod 16
II-26
a1 = a0 b0 b1 = a0 ROR1(b0,1) 8a0 mod 16 a2, b2 = t0[a1],t1[b1] a3 = a2 b2 b3 = a2 ROR1(b2,1) 8a2 mod 16 a4, b4 = t2[a3],t3[b3] y = 16b4 + a4
(2.18)
di mana ROR4 adalah suatu fungsi yang serupa dengan ROR yang merupakan putaran nilai 4-bit. Pertama, byte dipecah menjadi dua bagian. Ini dikombinasikan dalam suatu bijective yang mencampur langkah. Masing-masing bagian kemudian melintasi 4-bitfixed S-Box. Ini diikuti oleh yang lain. Akhirnya, dua bagian dikombinasikan kembali ke dalam satu byte. Untuk permutasi q0 S-Box 4-bit didefenisikan sebagai berikut : t0
=
[8 1 7 D 6 F 3 2 0 B 5 9 E C A 4]
t1
=
[E C B 8 1 2 3 5 F 4 A 6 7 0 9 D]
t2
=
[B A 5 E 6 D 9 0 C 8 F 3 2 4 7 1]
t3
=
[D 7 F 4 1 2 6 E 9 B 3 0 8 5 C A]
di mana masing-masing S-Box 4-Bit diwakili oleh daftar masukan yang menggunakan notasi hexadecimal. (untuk masukan 0,…,15 didaftarkan dalam order.) Dengan cara yang sama, untuk q1 S-Box 4-bit didefenisikan sebagai berikut: t0
=
[2 8 B D F 7 6 E 3 1 9 4 0 A C 5]
t1
=
[1 E 2 B 4 C 3 7 6 D A 5 F 9 0 8]
II-27
2.6
t2
=
[4 C 7 5 1 6 9 A 0 E D 8 2 B 3 F]
t3
=
[B 9 5 1 C 3 D E 6 4 7 F 2 0 8 A]
Konversi Little Endian Pada proses matematika maupun komputasi Algoritma Twofish sering
menggunakan konversi little endian baik pada proses enkripsi maupun dekripsi, berikut ialah penjelasan tentang konversi little endian dan big endian :
Gambar 2.10 Contoh konversi Little Endian dan Big Endian Endianness merupakan suatu cara atau prinsip tentang bagaimana byte-b Endian. Endianness adalah atribut dari sistem komputer yang menandai apakah bilangan bulat diwakili dari kiri ke kanan atau dari kanan ke kiri. Pada komputer sekarang ini digunakan prosesor Gigahertz, dimana Endianness harus dipilih pada setiap kali arsitekstur perangkat keras atau perangkat lunak dirancang, dan itu bukan merupakan jalan dari hukum alam untuk menentukannya. Semua itu bergantung dengan sistem komputer yang digunakan dengan memikirkan kelas byte yang mandalam angka multibyte yang tersedia. Endianness sendiri terdiri dari dua kelas/versi yaitu Big Endian dan Little Endian. Big Endian adalah byte yang paling signifikan dari banyaknya tempat data multibyte yang disimpan di alamat memori yang tertinggi dengan alamat tersebut tentu saja mempunyai bidang atau tempat yang lebih besar. Sedang, Little Endian adalah
byte
yang
paling
signifikan
dari
banyaknya
tempat
II-28
data multibyte yang disimpan di alamat memori yang terendah, dengan alamat tersebut tentu saja mempunyai bidang atau tempat yang lebih kecil Konsep Big Endian dan Little Endian digunakan dalam penyimpanan data, khususnya data yang terdiri dari byte jamak (multiple byte). Dalam hal ini diperlukan pengurutan nilai-nilai skalar multibyte dan penentuan mengenai byte mana yang akan di muatterlebih dahulu. Oleh karena itu digunakan konsep Big Endian dan Little Endian. Big Endian dan Little Endian juga bertujuan untuk memudahkan transmisi data antara komputer yang satu dengan yang lainnya. Metode penyimpanan yang digunakan berbentuk binner yang pada umumnya dipakai oleh komputer. Konsep ini juga bertujuan untuk membentuk multiple byte menjadi satu kesatuan data yang tunggal. Big Endian digunakan jika alamat byte rendah digunakan untuk MSB (More/Most Significant Byte) byte paling besar dari word atau berarti penyimpanan byte-byte yang paling kiri berarti di dalam alamat-alamat byte numerik terendah. Sedangkan, Little Endian digunakan untuk penyimpanan sebaliknya yaitu alamat byte rendah digunakan untuk LSB (Less Significant Byte) byte kurang dari word atau berarti penyimpanan byte-byte yang kurang berarti didalam alamat-alamat byte yang terendah. Contoh : Akan dilakukan penyimpanan informasi 32-bit 12345678 (hexa) yang akan disimpan dalam lokasi memori 1000 ke atas. Karena terdapat 4 byte, maka informasi tersebut akan menempati lokasi memori 1000 sampai 1003. a. Pada metode Big Endian, MSB disimpan pada alamat bawah dan LSB disimpan pada alamat atas. b. Pada metode Little Endian, LSB disimpan pada alamat bawah dan MSB disimpan pada alamat atas. Susunan alamat-alamat memori dan byte diperlihatkan pada gambar berikut. Tabel 5.1 Contoh Little Endian dan Big Endian 1000 1001 Alamat 12 34 Big Endian 78 56 Little Endian
1002 56 34
1003 78 12
II-29
2.7. Galois Field (28) Galois Field (28), disingkat GF(28), adalah himpunan sejumlah (28) elemen, yaitu bilangan 0 sampai 255. Setiapelemen dari GF(28) di representasikan sebagai sebuah byte atau barisan delapan buah digit biner b7,b6,b5,b4,b3,b2,b1,b0. Selain direpresentasikan sebagai barisan delapan digit biner, sebuah elemen dari GF(28)d apat pula direpresentasikan dalam bentuk : Polinomial : b(x) = b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x1+b0x0 =∑ dimana bi elemen {0,1} untuki = 0, 1..7 Bilangan heksa decimal antara “00” sampai “FF” dinotasikan‘h1,h2’elemen {0,1,…,9,A,B,…,F} Contoh representasi bilangan GF(28): Desimal
: 255
Byte
: 11010111
Polinomial
: x7 + x6+ x4+ x2+ x + 1
Heksadesimal : „C7‟ Operasi-operasi dalam GF(28) terdiri dari operasi penjumlahan serta operasi perkalian. 2.7.1
Penjumlahandalam Galois Field (28)
Penjumlahan dalam GF (28) adalah penjumlahan modulo 2, yaitu melakukan operasi exclusive or (XOR) pada setiap pangkat yang berkorespondensi dalam polynomial dari kedua elemen yang dijumlahkan operator XOR. a7a6a5a4a3a2a1 +b7b6b5b4b3b2b1b0=c7c6c5c4c3c2c1c0
II-30
Dimana ci = ai bi, untuki=0,…7. Operasi penjumlahan dalam GF (28) memenuhi sifat grup abelian : a. Tertutup b. Asososiatif c. Memilikielemenidentitas, yaitu 0 d. Memilikisebuah invers. e. Tiapelemen adalah invers penjumlahan terhadap dirinya sendiri. f. Komutatif. Contoh : 11011110 + 01011101 dalam bentukpolinomial ditulis : (x7+ x6+ x4+ x3+ x2+ x) + (x6+ x4+ x3+ x2+ 1) = x7+( x6 x6) +(x4+x4) + (x3+x3)+ (x2+x2) + x +1= x7 ( x6 x6) (x4+x4) (x3+x3) (x2+x2) x 1= x7+ x + 1 Contoh diatas bila ditulis dalam heksadesimal : „DE‟+‟5D‟=‟DE‟ ‟5D‟ =‟83 Ditulis dalam bilangan decimal : 222 + 93 = 222 93 = 131 2.7.2
Perkaliandalam Galois Field (28) Perkalian dalam GF(28) adalah perkalian dimana hasil perkaliannya
dimodulo dengan suatu polynomial primitif. Polinominal primitif adalah polinominal tak tereduksi dengan koefisien pagkat tertingginya bernilai 1. Pada Twofish, ditetapkan dua polinominal primitif. V(x) = x8 + x6 + x5 + x3 +1 W(x) = x8 + x6 + x3 +x2 + 1
II-31
Polinomial primitive v(x) digunakan untuk mereduksi hasil perkalian dengan Matrix MDS. Sedangkan w(x) digunakan untuk mereduksi perkalian dengan matrix Reed – Solomon. Tujuan mereduksi hasil perkalian dua buah byte dengan polynomial primitive agar hasil kali byte tersebut tetap berderajat dibawah delapan. Sifat polynomial primitive ialah tidak dapat dibagi oleh polinomial lain kecuali oleh 1 dan dirinya sendiri, unutuk mereduksi hasil perkalian polinomial dengan polinomial primitif, lakukan langkah-langkah berikut : 1. Lihat derajat tertinggi dari polinomial hasil perkalian. Jika derajat tertingginya ≥ 8, maka hitung n = pangkat tertinggi dari polinomial hasil perkalian 8. 2. Kalikan polinomial primitive dengan xn. 3. Lakukanoperasi XOR antara hasil perkalian pada langkah ke-2, dengan polinomial hasil perkalian. 4. Jika polinomial hasil langkah ke-3 masih berderajat ≥ 8, ulangi langkah ke1 sampaidiperoleh polinomial berderajat dibawah 8. Contoh : Akan dilakukan perkalian (x6 + x5 + x) ● (x7 + x4 + x3 + x2 + 1) dengan polinomial primitive (x8 + x6 + x5 + x3 + x2 + 1). (x6+ x5 + x) ● (x7 + x4 + x3 + x2 + 1) = x13 + x10 + x9 + x8 + x6 + x12 + x9 + x8 + x7 + x5 + x8 + x5 + x4 + x3 + x = x13 x12 x10 (x9 x9 ) (x8 x8 x8) x7 x6 (x5 x5) x4 x3 x= (x13 x12 x10 x8 x7 x6 x4 x3 x)= (x13 + x12+x10+x8+x7+x6+x4+x3+x) mod (x8 + x6 + x5 + x3 + 1) Pangkat tertinggi dari polynomial hasil perkalian diatas adalah 13 n = 13 – 8 = 5, berarti (x8 + x6 + x5 + x3 + 1)●x5= x13 + x11 +x10+x8+x5
II-32
x13 + x12+x10+x8+x7+x6+x4+x3+x x13 + x11 +x10+x8+x5 = x12+ x11 +x7 +x6 +x5 +x4 +x3 +x x12+ x11 + x7 + x6 + x5 + x4 + x3 x berderajat > 8 , maka : n = 12 – 8 = 4, berarti (x8 + x6 + x5 + x3 + 1) ● x4 = x12 + x10 +x9 +x7 +x4 x12+ x11 + x7 + x6 + x5 + x4 + x3 + x x12 + x10 +x9 +x7 +x4 = x11+ x10+ x9+ x6 + x5+ x3+ x x11+ x10 + x9 + x6 + x5+ x3+ x berderajat > 8, maka : n = 11 – 8 = 3, berarti (x8 + x6 + x5 + x3 + 1) ● x3 = x11 + x9 +x8 +x6 +x3 x11+ x10 + x9 + x6 + x5+ x3+ x x11 + x9 +x8 +x6 +x3 = x10 +x8 +x5+x x10 + x8 + x5+ x berderajat > 8, maka : n = 10 – 8 = 2, berarti (x8 + x6 + x5 + x3 + 1) ● x2 = x10 + x8 +x7 +x5 +x2 x10+ x8 + x5+ x x10 + x8 +x7 +x5 +x2 = x7+ x2+ x x7+ x2+ x berderajatnya < 8, maka diperolehhasilnya x7+ x2+ x. 2.8
Unified Modelling Languange (UML) Unified Modelling Language(UML) adalah sebuah bahasa yg telah
menjadi
standar
dalamindustri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem piranti lunak. UMLmenawarkan sebuah standar untuk merancang model sebuah sistem.Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak,dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, sertaditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class danoperation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasabahasaberorientasi objek seperti C++, Java, C# atau VB.NET.
II-33
Walaupun demikian, UML tetapdapat digunakan untuk modeling aplikasi prosedural dalam VB atau C (Dharwiyanti, 2003). UML merupakan sebuah standar dalam pembuatan dari model-model yang mempresentasikan sistem software dan bisnis yang beorientasi objek. UML menggabungkan diagram-diagram terbaik yang diterapkan oleh software developer selama 40 tahun belakangan. Pemodelan standarisasi UML tidak mendikte bagaimana untuk menerapkan pemodelannya. Standar pendekatan ini menyediakan kebebasan besar bagi para developer untuk menerapkan gaya dan tekniknya untuk memastikan konsistensi dalam pekerjaan mereka (Pender, 2002). Dalam aplikasi-aplikasi bisnis, metodologi-metodologi pengembangan aplikasi
yang
menggunakan
bahasa
pemrograman
terstruktur(structured
programming language), DFD, dan ERD kurang dapat beradaptasi dengan kebutuhan dan harapan pengguna (user’s needs and expectations), dengan alasan itu para pakar dibidang perancangan perangkat lunak pada sekitar tahun 19801990 mulai bekerja dengan bahasa pemrograman berorientasi objek (OOP[Object Oriented Programming]) seperti C++ dan Java. Oleh karena itu, UML merupakan kolaborari antara metoda Booch, OMT(object Modeling Technique), serta OOSE(Object Oriented Software Engineering) dan beberapa metoda lainnya merupakan metodologi yang paling sering digunakan saat ini untuk mengadaptasi maraknya penggunaan bahasa ”pemrograman berorientasi objek ”(OOP) (Adi Nugroho, 2009). 2.7.1. Usecase Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yangditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use casemerepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuahpekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya.Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistemuntuk melakukan pekerjaan-pekerjaan tertentu(Dharwiyanti, 2003).
II-34
Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem,mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yangada pada sistem.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 dipanggil setiap kali usecase yang meng-include dieksekusi secara normal.Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitasdapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviournya sendiri.Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakanspesialisasi dari yang lain.
Gambar 2.11 Usecase Diagram, sumber (www.ibm.com) 2.7.2. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasukpengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequencediagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah
II-35
yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dariapa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internaldan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal.Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class.Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanyasebuah message.Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untukobjek boundary, controller dan persistent entity.
Gambar 2.12 Sequence Diagram 2.7.3. Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek danmerupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan(atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut(metoda/fungsi).
II-36
Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungansatu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.Class memiliki tiga area pokok: 1. Nama (dan stereotype) 2. Atribut 3. Metoda Atribut dan metoda dapat memiliki salah satu sifat berikut: a. Private, tidak dapat dipanggil dari luar class yang bersangkutan b. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yangmewarisinya c. Public, dapat dipanggil oleh siapa saja
Gambar 2.13 Class Diagram, sumber (www.csse.monash.edu.au)
II-37
2.6.4. Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang,bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana merekaberakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi padabeberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dansebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Olehkarena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksiantar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.
Gambar 2.14 Activity Diagram
II-38
Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas
menggambarkan
proses
yang
berjalan,
sementara
use
case
menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat
untukmenggambarkan
aktivitas.
Decision
digunakan
untuk
menggambarkan behaviour pada kondisitertentu. Untuk mengilustrasikan prosesproses paralel (fork dan join) digunakan titik sinkronisasiyang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek manayang bertanggung jawab untuk aktivitas tertentu.
II-39
BAB III METODOLOGI PENELITIAN 3.1 Tahapan Penelitian Metodologi penelitian yang digunakan dalam penyusunan Tugas Akhir ini ialah metodologi Rational Unified Process (RUP). Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan usecase driven dan pendekatan iteratif untuk siklus pengembangan perangkat lunak. 3.1.1. Alur Tahapan Rational Unified Process Alur tahapan RUP yang akan digunakan dalam merancang dan membangun aplikasi secure chatting pada platform Android ini yaitu seperti pada Gambar 3.1: FASE INCEPTION Pengenalan permasalahan penentuan posisi
MULAI
FASE ELABORATION
Pembuatan Proposal Pembuatan UML Studi literatur tentang algoritma Twofish
Pembuatan Pseudocode Algoritma dan perhitungan
Pembuatan Deskripsi Sistem
Pembuatan Prototype Aplikasi
FASE CONSTRUCTION FASE TRANSITION Pengkodean
Pengujian aplikasi dengan metode blackbox
Implementasi Mengamati Kekurangan
SELESAI
Mengambil kesimpulan den memberikan saran pengembangan aplikasi
Gambar 3.1. Tahapan penelitian dengan metode RUP
III-1
3.2.
Tahapan Rational Unified Process (RUP) Berikut ini akan diuraikan tahapan-tahapan pembuatan aplikasi secure
chatting pada platform Android dengan menggunakan metode Rational Unified Process (RUP). 3.2.1. Fase Inception Fase ini merupakan fase analisa, dimana dilakukan beberapa kegiatan untuk mengidentifikasi aplikasi yang akan dibuat. Pada fase ini akan dilakukan kegiatan sebagai berikut: a. Pengenalan masalah, yaitu memahami permasalahan yang terjadi, mengapa diperlukannya aplikasi secure chatting pada platform Android. 1. Aplikasi chatting yang tengah populer dikalangan pengguna smartphone. 2. Kebanyakan aplikasi chatting yang digunakan tidak memiliki kemanan yang cukup untuk melindungi kerahasiaan pesan dari hacker. 3. Algoritma Twofish merupakan algoritma kuat yang sampai saat ini dinyatakan aman karena masih belum ada serangan kriptanalisis yang benar – benar dapat mematahkan algoritma ini (Bruce Schneier). 4. Algoritma Twofish termasuk kepada kategori penyandian dengan kunci simetris sehingga kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris dan dapat digunakan secara “real-time”. 5. Berdasarkan data dari International Data Cooperation (IDC) pada tahun 2012 , Android menguasai 75% pasar smartphone, jauh mengalahkan para pesaingnya seperti Windows Phone, Apple iOS, Symbian dan BlackBerry.
III-2
Pembuatan proposal untuk pembangunan aplikasi secure chatting pada platform Android, yaitu mencakup latar belakang permasalahan, pokok permasalahan, tujuan dan batasan permasalahan. Studi literatur. Mencakup penelusuran teori-teori yang berhubungan dengan penelitian, yang bersumber dari buku, jurnal, artikel internet, dan penelitian-penelitian sejenis yang dapat mendukung pemecahan masalah dalam penelitian yang dilakukan, mencakup: 1. Kinerja algoritma twofish dan penerapannya pada aplikasi chatting. 2. Pemrograman Android, termasuk sejarah, lingkungan operasional Android, keunggulan dan pengkodean untuk sistem operasi Android. 3. Object Oriented Analysis and Design (OOAD), mencakup deskripsi dan struktur OOAD, serta pendekatannya dengan Unified Modelling Language (UML). 4. Rational Unified Process (RUP), mencakup deskripsi dan fase-fase RUP. 6. Pembuatan UML (Unified Modelling Language), kegiatan ini akan didokumentasikan pada bab empat, yaitu analisa dan perancangan. 7. Pembuatan deskripsi arsitektur aplikasi yang akan dibangun juga akan didokumentasikan pada bab analisa dan perancangan. 3.2.2. Fase Elaboration Fase ini merupakan fase perancangan desain aplikasi yang akan dibangun, sesuai dengan hasil analisa pada fase sebelumnya. Pada fase ini akan dilakukan kegiatan sebagai berikut : a. Perancangan struktur menu yang akan didokumentasikan pada bab analisa dan perancangan. b. Perancangan
prototype
antarmuka
aplikasi
yang
akan
didokumentasikan juga pada bab analisa dan perancangan.
III-3
3.2.3. Fase Construction Pada fase construction yaitu akan dilakukan pembangunan aplikasi secure chatting pada platform Android sesuai dengan rancangan dan deskripsi yang telah dibuat sebelumnya pada fase elaboration. Dari penjelasan di atas maka hasil yang harus dicapai pada proses Construction adalah : 1.
Membangun aplikasi secure chatting pada platform Android dengan tools Eclipse Galileo untuk platform android menggunakan bahasa pemrograman Java.
2.
Menerapkan algoritma Twofish pada aplikasi secure chatting pada platform Android.
3.
Implementasi aplikasi menggunakan device handphone dengan Sistem operasi Android ( Samsung Galaxy Mini).
4.
Melakukan pengujian kepada pengguna sehingga disesuaikan apabila ada kesalahan pembangunan aplikasi.
3.2.4. Fase Transition Pada fase ini dilakukan Instalasi , penyebaran dan sosialisasi perangkat lunak dilakukan pada tahap ini. Fase ini merupakan tahapan evaluasi aplikasi sesuai dengan kebutuhan pengguna setelah dilakukan pengujian sebelumnya. Pada tahapan ini akan terlihat kekurangan dari pada aplikasi yang dibuat dari jawaban pengguna terhadap aplikasi yang dibuat. Berikut hasil yang harus dicapai pada tahapan ini: 1.
Melakukan pengujian dengan metode white box. a. Menjelaskan tahap – tahap logika aliran setiap proses enkripsi, dekripsi dan penjadwalan kunci. b. Pengujian kebenaran hasil enkripsi dan dekripsi.
2.
Melakukan pengujian dengan metode black box.
III-4
a. Pengujian dilakukan Pada Device Android yang berbeda beda tidak hanya pada Android Samsung Galaxy Mini, apakah aplikasi dapat digunakan dengan baik atau masih terdapat kekurangan. b. Pengujian dilakukan menggunakan Povider yang berbeda beda, apakah aplikasi berjalan baik atau tidak c. Pengujian panjang pesan yang dapat dikirim. 3.
Melakukan pengamatan terhadap kekurangan yang terjadi pada saat pengujian aplikasi.
4.
Membuat kesimpulan terhadap hasil pengujian dan merangkum kekurangan aplikasi agar dapat dikembangkan dikemudian hari.
III-5
BAB IV ANALISA DAN PERANCANGAN 4.1 Fase Inception Berdasarkan metodologi penelitian dalam pembuatan Tugas Akhir ini yang menggunkan RUP (Rational Unified Process) maka alur pertama yang harus dilakukan dari tahapan RUP yaitu inception dimana dalam bab sebelumnya telah dijelasakan poin-poin yang harus dilakukan dalam fase inception ini. Sebagian poin-poin yang termasuk dalam fase inception sudah dimasukkan didalam Bab I sampai Bab II yang meliputi pengenalan masalah, pembuatan proposal, dan studi litetarur. Point berikutnya untuk pembuatan deskripsi sitem akan dijelaska pada Bab ini yang meliputi deskripsi umum sistem dan struktur aplikasi Secure chatting. 4.1.1 Deskripsi Umum Sistem Perangkat lunak yang akan dibangun merupakan perangkat lunak yang diterapkan pada telepon selular yang bersistem operasi Android dan memiliki fungsi untuk melakukan enkripsi dan dekripsi. Perangkat lunak yang akan dibangun harus dapat melakukan pengiriman dan menerima pesan. Perangkat lunak yang akan dibuat merupakan perangkat lunak yang digunakan untuk berkomunikasi, oleh sebab itu perangkat lunak yang dibuat akan diterapkan pada pengirim dan penerima. Pengguna akan berinteraksi dengan perangkat lunak melalui user interface yang disediakan oleh perangkat lunak, pengguna memasukkan data dengan menggunakan keypad yang dimiliki oleh telepon selular. Pesan yang telah dibuat dikirimkan ke telepon selular lain melalui jaringan SMS. Secara umum arsitektur global perangkat lunak dapat dilihat pada Gambar 4.1 berikut. .
IV - 1
Cipherteks
Plainteks Bismillah
!@#$^%vv&*((*^BV CFF
Encrypt Twofish Algorithm
Sender
Send Plainteks Bismillah
Twofish Algorithm
Decrypt Recipient
Database
Gambar 4.1 Arsitektur Global Sistem Aplikasi Secure chatting Berdasarkan gambar telah dijelaskan bahwa aplikasi ini berfungsi untuk mengenkripsi pesan teks Chatting. Pesan yang diketikan pengguna yang berperan sebagai pengirim berbentuk pesan singkat pada umumnya yaitu menggunakan karakter default teks phone. Ketika pengirim mengklik tombol “send” maka pesan akan langsung di enkripsi sehingga yang sampai ke database ialah pesan yang telah terenkripsi (cipherteks), kemudian saat pesan dikirim ke penerima maka akan berlangsung proses dekripsi dan penerima akan langsung menerima pesan dalam bentuk plainteks. 4.2 Fase Elaboration Tahap kedua dalam alur proses RUP yaitu elaboration dimana dalam alur ini dilakukan perancangan terhadap aplikasi yang akan dibuat. Dalam perancangan yang akan dibuat meliputi pembuatan UML, perancangan peudocode algoritma dan perhitungannya serta pembuatan prototype atau perancangan interface aplikasi. 4.2.1 Perancangan Sistem Setelah dilakukan beberapa tahapan dalam analisa sistem, maka dapat dilakukan beberapa perancangan aplikasi Secure chatting ini. Perancanganperancangan yang akan dijelaskan dalam laporan ini meliputi perancangan model dalam bentuk UML (Unifed Modeling Language) yang terdiri dari Use Case Diagram, Class Diagram, Sequence Diagram, danActivity Diagram. IV-2
4.2.1.1 Model Use Case Hal-hal yang dapat dilakukan oleh pengguna terhadap sistem dapat dilihat pada diagram use case pada Gambar 4.2 berikut
Register
extends Online Friends extends
Login
Offline Friends
Sender include SendMessege
Encrypt
Recipient
include ReadMessege Decrypt
Gambar 4.2 Use Case Diagram aplikasi Secure Chatting Tabel 4.1. Spesifikasi usecase Registrasi Usecase
Registrasi
Aktor Utama
User
Deskripsi Singkat
Proses megirimkan data user ke server online
Kondisi Awal
User belum terdaftar
Kondisi Akhir
User terdaftar di server. 1. User memilih menu Register 2. Tampil form Register
Main success scenario
3. User menigisi isian form dan meng-klik tombol send. 4. Tampil pesan user terdaftar di server. 5. User sukses terdaftar server.
IV-3
Tabel 4.2. Spesifikasi usecase Login Usecase
Login
Aktor Utama
User
Deskripsi Singkat
Proses masuknya user ke aplikasi
Kondisi Awal
User belum masuk ke aplikasi
Kondisi Akhir
User masuk ke aplikasi 1. User memilih menu login. 2. Tampil form login.
Main success scenario
3. User mengisi form login. 4. User menekan tombol login. 5. User masuk ke aplikasi
Tabel 4.3. Spesifikasi Pengiriman dan Penerimaan Pesan Chatting Usecase
Pengiriman dan Penerimaan PesanChatting
Aktor Utama
Pengirim dan Penerima
Deskripsi Singkat
Proses pengiriman pesan ke server.
Kondisi Awal
User masuk ke halaman awal aplikasi
Kondisi Akhir
Data pesan terkirim ke server. 1. User memilih menu Online Friends 2. User memilih teman yang ingin diajak chatting. 3. Tampil halaman chatting. 4. User mengetik pesan.
Main success scenario
5. User mengklik tombol send 6. Pesan di enkripsi dengan algoritma Twofish. 7. Pesan sampai ke server dalam bentuk cipherteks. 8. Pesan di dekripsi dengan Algoritma Twofish 9. Pesan diterima dalam bentuk Plainteks. IV-4
4.2.1.2Class Diagram Class
adalah
sebuah
spesifikasi
yang
jika
diinstansiasi
akan
menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus
menawarkan
layanan
untuk
memanipulasi
keadaan
tersebut
(metoda/fungsi). Pada gambar 4.3 merupakan rancangan class diagram enkripsi aplikasi Secure chatting yang dibahas dalam laporan ini.
Gambar 4.3 Class Diagram aplikasi Secure Chatting. IV-5
Berikut detail masing-masing class yang berisi nama class, atribut, dan method, yang dapat di lihat pada tabel 4.8 di bawah ini. Tabel 4.4. Detail Class Diagram Aplikasi Secure Chatting No 1
2
3
4
5
Class Splash
Main_Form
MainActivity
Attribut -
wait : int
Method -
onCreate(Bundle):void
-
run():void
-
activity : Activity
-
Main_Form(Activity)
-
login : Button
-
getActivity()
-
Register : Button
-
getButtonLogin()
-
about : Button
-
getButonRegister()
-
exit : Button
-
getButtonAbout()
-
getButtonExit()
-
onCreate(Bundle)
-
onClick(View)
-
form : Main_Form
-
userIn : EditText
-
onStart()
-
passIn : EditText
-
clickHandler(View)
-
msgOut : EditText
RegisterActivi
-
pwd : String
-
onClick(View)
ty
-
user : String
-
mail : String
-
nickname : String
-
posisi : String -
onCreate(Bundle)
ChatArrayAdapter :
-
onCreate(Bundle)
ArrayAdapter<String>
-
onStart()
friendAdapter :
-
onCreateOptionsMenu(
LoginActivity
6
AboutActivity
-
7
SecureChattin
-
gAR -
ArrayAdapter<String> -
friendOff :
Menu) -
onOptionsItemSelected(
IV-6
ArrayAdapter<String> -
MenuItem)
menulist : ArrayAdapter<String>
-
upload : ArrayAdapter<String>
-
msgOut : EditText
-
userIn : EditText
-
passIn : EditText
-
username : EditText
-
pass : EditText
-
email : EditText
-
nick : EditText
-
chatService : SecureChattingARServ ice
8
SecureChattin
-
setURL : String
-
gARService
-
fl : friendList
e (Context context,
-
sndMsg : sendMsg
Handler handler)
-
getmsg : getsg
-
reg : Register
String to, String from,
-
si : signIn
String r): void
-
so : signOut
-
mhandler : Handler
-
-
SecureChattingARServic
sendMessage(String msg,
login(String usr, String pwd):void
-
findFriend (String usr, String cnd):void
-
getMsg (String friend, String user,String type, String run):void
-
regUser (String n, String e, String p, String k,
IV-7
String s):void
9
10
11
12
13
14
15
sendMsg
getMsg
Register
signIn
signOut
friendList
Enkripsi_Dekr ipsi
-
setlogout (String u):void
-
sendMsg (String m,
-
msg : String
-
to : String
String t, String n, String
-
from : String
r)
-
r : String
-
run () : void
-
to : String
-
getMsg (String a, String
-
from : String
-
running :int
-
msge : String
-
type : String
-
name : String
- Register (String n, String e,
-
email : String
String p, String k, String r)
-
password : String
-
nick : String
-
status : String
-
pwd : String
-
user : String
- user : String
-
user : String
-
friend ="": String
-
find: String
-
n, String r) -
run () : void
- run () : void
-
signIn (String usr, String pass)
-
run():void
-
signOut (String u)
-
run():void
-
friendList (String usrName, String fnd)
-
run():void
-
Enkripsi_Dekripsi()
-
CBC_in(String, byte[])
-
CBC_Out(String, byte[])
-
padding(byte[])
-
splitto16byte(String) IV-8
-
join_byte_16_to_string(b yte[][])
-
join_byte_array_string(b yte[][])
-
split_byte_array_string(S tring)
-
join_byte_array(byte[][])
-
byteArrayToHexString(b yte[])
16
-
hex2Byte(String)
Twofish_Algo
-
NAME : String
-
makeKey (byte[]:Object
rithm
-
IN : boolean
-
blockEncrypt (byte[] in,
-
OUT : boolean
int inOffset, Object
-
DEBUG : boolean
sessionKey)
-
debuglevel : int
-
err : PrintWriter
int inOffset, Object
-
TRACE : boolean
sessionKey)
-
debug(String):void
-
self_test() : Boolean
-
trace(boolean,
-
b0(int):int
String):void
-
b1(int):int
-
trace(String):void
-
b2(int):int
-
BLOCK_SIZE : int
-
b3(int):int
-
ROUNDS : int
-
RS_MDS_Encode(int,
-
MAX_ROUNDS : int
-
INPUT_WHITEN : int
-
RS_rem(int):int
-
OUTPUT_WHITEN :
-
F32(int, int, int[]):int
int
-
Fe32(int[], int, int):int
ROUND_SUBKEYS :
-
_b(int, int):int
int
-
blockSize():int
TOTAL_SUBKEYS :
-
self_test(int):boolean
-
-
blockDecrypt (byte[] in,
int):int
IV-9
int
17
Twofish_Prop
-
areEqual(byte[],
-
SK_STEP : int
-
SK_BUMP : int
-
intToString(int):string
-
SK_ROTL : int
-
toString(byte[]):string
-
P : byte[][]
-
toString(byte[], int,
-
P_00 -P_34 : int
-
GF256_FDBK : int
-
GF256_FDBK_2 : int
-
GF256_FDBK_4 : int
-
MDS : int[][]
-
RS_GF_FDBK : int
-
HEX_DIGITS : char[]
-
GLOBAL_DEBUG :
erties
byte[]):boolean
int):string -
main(String[]):void
-
getProperty(String):strin
boolean
g
-
ALGORITHM : String
-
-
VERSION : double
-
FULL_NAME : String
-
list(PrintStream):void
-
NAME : String
-
list(PrintWriter):void
-
properties : Properties
-
propertyNames():enumer
-
isTraceable(String):Bo
getProperty(String, String):string
ation
olean
18
19
FileChace
ImageLoader
-
getLevel(String):int
-
getOutput():printWriter
-
chaceDir
-
-
FileCache(Context)
-
getFile(String)
-
clear()
imageViews :
-
ImageLoader(Context)
Map
-
DisplayImage(String,
String>
ImageView) -
queuePhoto(String, IV-10
ImageView)
20
PhotoToLoad
-
url : String
-
imageView :
-
getBitmap(String)
-
decodeFile(File)
-
clearCache()
-
PhotoToLoad(String, ImageView)
ImageView 21
PhotosLoader
-
photoToLoad :
-
run()
-
BitmapDisplayer(Bitmap
PhotoToLoad -
PhotosLoader(PhotoTo Load)
22
23
24
BitmapDispla
-
bitmap : Bitmap
yer
-
photoToLoad :
JSONParser
LazyAdapter
, PhotoToLoad)
PhotoToLoad
-
run()
-
is : InputStream
-
JSONParser()
-
jObj : JSONObject
-
getJSONFromUrl(String,
-
json : String
-
activity : Activity
-
data :
ArrayList
ArrayList
ing, String>>)
List
) -
LazyAdapter(Activity,
String, String>>
-
getCount()
-
inflater : LayoutInflater
-
getItem(int)
-
imageLoader :
-
getItemId(int)
ImageLoader
-
getView(int, View, ViewGroup)
25
MemoryChac e
26
Utils
-
cache : Map<String,
-
get(String)
SoftReference
-
put(String, Bitmap)
>>
-
clear()
-
-
CopyStream(InputStrea m, OutputStream) IV-11
Berikut adalah deskripsi dan penjelasan dari kelas – kelas yang terdapat pada class diagram. 1. Splash Kelas ini dipanggil saat pertama kali menjalankan aplikasi yang berfungsi memanggil halaman awal aplikasi. 2. MainActivity Kelas ini merupakan kelas yang menangani menu utama aplikasi, yakni login, Register, about dan exit. 3. Main_Form Kelas ini dipanggil saat kelas Main_Activity di eksekusi. Berfungsi sebagai kelas yang menangani form utama aplikasi. 4. AboutActivity Kelas ini menangani halaman “about” aplikasi. 5. LoginActivity Kelas ini menangani proses login, setelah user sukses melakukan login kelas ini akan memanggil kelas SecureChattingAR untuk menampilkan halaman home. 6. RegisterActivity Kelas ini menangani proses registrasi. 7. SecureChattingAR Kelas ini meng-extends super class Activity dari sistem operasi Android. Kelas ini merupakan kelas yang menangani menu home setelah pengguna berhasil melakukan login, didalamnya terdapat method-method yang menangani proses chatting. 8. SecureChattingARService Kelas ini berfungsi untuk mengkoneksikan seluruh proses kelas pada aplikasi secure chatting dengan server, didalam kelas ini terdapat kelas – kelas yang hanya dapat digunakan pada kelas ini sendiri, kelas kelas tersebut menangani proses koneksi masing – masing proses ke server. IV-12
Adapun kelas – kelas yang terdapat pada SecureChattingARService ialah sebagai berikut : a. sendMsg Merupakan kelas yang menangani koneksi dari pengiriman pesan Chatting. b. getMsg Merupakan kelas yang menangani koneksi dari pengecekan pesan yang masuk. c. Register Merupakan kelas yang berfungsi untuk menangangi pendaftaran anggota chat baru. d. signIn Merupakan kelas yang menangani proses masuknya pengguna ke aplikasi Secure chatting. e. signOut Merupakan kelas yang menangani proses keluarnya pengguna dari aplikasi Secure chatting. f. friendList Merupakan kelas yang menangani pengecekan teman-teman yang sedang online. 9. Enkripsi_Dekkripsi Kelas ini merupakan kelas yang berfungsi sebagai pemanggil algoritma Twofish dan terdapat juga algoritma mode operasi Cipher Block Chainning (CBC). 10. Twofish_Algorithm Dalam kelas ini terdapat algoritma Twofish, mulai dari input whitening, fungsi F, S-boxes, MDS Matrix , 16 ronde jaringan Feitsel dan Output Whitenning. 11. ImageLoader Kelas ini merupakan kelas yang menangani loading image dari server.
IV-13
4.2.1.3 Activity Diagram Activity diagram merupakan alur kerja pada setiap usecase. Activity diagram pada analisa ini mencakup activity diagram setiap usecase. Gambar 4.5. dibawah ini menjelaskan activity menampilkan Pengiriman dan Penerimaan Pesan Chatting pada perangkat Android pengguna.Untuk Activity diagram lainnya dapat di lihat pada lampiran A. Pengiriman/Penerima
Android
Server
Mulai
Database User
Memilih Menu Online Friends
Memilih Teman Chatting
Menampilkan Menu Online Friends
Menampilkan Halaman Chatting Menuliskan Pesan Kirim Pesan
Tampilkan Pesan Plainteks
Enkripsi Twofish
Dekripsi Twofish
Database Pesan
Chiperteks
Selesai
Gambar 4.4 Activity Diagram pengiriman dan penerimaan pesan chatting. 4.2.1.4. Sequence Diagram Sequence Diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display dan sebagainya) berupa pesan yang digambarkan terhadap waktu. Gambar 4.5 dibawah ini menggambarkan sequence diagram pengiriman dan penerimaan pesan chatting. Untuk Sequence diagram lainnya dapat di lihat pada lampiran A.
IV-14
Pengirim/Penerima
Online Friends
OnlineList
Halaman Chatting
Button Send
Enkripsi_Dekripsi
Database
1.setupMenu2() 2.onFriendSetup() 3.Tulis Pesan 4. getText() 5. Enkripsi Twofish 6. Chiperteks 7. Dekripsi Twofish 8. Plainteks
Gambar 4.5 Sequence diagram pengiriman dan penerimaan pesan chatting 4.3. Analisis Enkripsi dan Dekripsi Proses enkripsi pesan pada aplikasi Secure chatting dimulai dengan mengkonversi data antara karakter teks ke kode ASCII kemudian ke biner. Twofish merupakan salah satu algoritma kriptografi yang bersifat block chipper proses enkripsi dan dekripsi dilakukan pembagian blok berukuran 128 bit. Pesan yang di enkripsi dimasukkan pada blok tersebut. Pesan yang memiliki ukuran lebih dari 128 bit akan dibagi menjadi beberapa blok bagian 128 bit akan dibagi menjadi beberapa bagian blok 128 bit. Pesan tersebut akan diproses setelah 128 bit pertama selesai. Jika ukuran blok kurang dari 128 bit. Diadakan penambahan karakter agar bisa memenuhi 128 bit tersebut (padding). Aplikasi secure chatting menggunakan mode enkripsi Chipper Block Chainning (CBC) dengan IV (Initialization Vector) adalah 0. Aplikasi ini juga Menggunakan padding dengan menambahkan karakter (spasi) sebanyak karakter yang dibutuhkan. Misal jika karakter yang dienkripsikan terdiri dari 7 data (56 bit) , maka dilakukan padding sebanyak 9 (16-7) bit di akhir. Pada proses dekripsi karakter tambahan akan dihapus (unpadding). Pada saat konversi data biner menjadi data teks pesan, sehingga pesan yang telah terdekripsi berukuran sama dengan plainteksnya. IV-15
Algoritma twofish memiliki panjang kunci 128 bit (16 karakter). Oleh karena aplikasi ini berlangsung real time maka agar proses pengiriman teks berlangsung singkat. Kunci ditanamkan pada program dengan panjang 128 bit. Algoritma Algoritma Twofish 128 bit dengan mode operasi CBC yang akan digunaka pada aplikasi Secure chatting pada tugas akhir ini akan dikelompokkan kedalam beberapa bagian, yaitu : A. Proses Penjadwalan Kunci Pada bab II telah dijelaskan bahwa pada saat kunci dimasukkan, Twofish akan membangun kunci bantuan Me, dan Mo yang akan digunakan pada tahap perluasan 40 sub kunci, kunci bantuan S digunakan untuk proses enkripsi dan dekripsi dan 40 sub kunci pada proses enkripsi dan dekripsi. Berikut ialah tahapan penjadwalan kunci : Start
Kunci M
n=N?
T
Tambah bit “0” hingga n = N
Y Hitung : k = N/64
Bangun Kunci Bantuan Me dan Mo
Bangun Kunci bantuan S
Bangun 40 Sub Kunci
Kunci bantuan Me, Mo , S dan 40 sub kunci
End
Gambar 4.6 Flow chart penjadwalan kunci
IV-16
Berdasarkan Gambar 4.6 dapat dijelaskan langkah-langkah penjadwalan kunci sebagai berikut : 1. Input kunci : kunci M 2. n = Panjang kunci M N= 128 Jika n < N, ditambahkan bit – bit “0” dibelakang kunci M, hingga n = N. 1 3. Hitung k = N/64 4. Bangun kunci bantuan Me dan Mo a. Kunci M terdiri dari 8k mi, bentuk kunci menjadi byte – byte m0, m1, …, mk-1. b. Kelompokkan byte-byte hasil dari langkah 4a dalam 2k word sepanjang 32 bit dengan aturan pada persamaan (2.8) yang telah dijelaskan pada bab II. c. Kelompokkan word-word Mi sesuai index, kedalam vektor Me dan Mo. Me beranggotakan Mi yang berindex genap, sedangkan Mo beranggotakan Mi yang berindex ganjil. d. Output berupa vektor Me dan Mo seperti yang telah dijelaskan pada persamaan (2.9) pada bab II. 5. Bangun kunci bantuan S : a. Kelompokkan byte-byte mi dalam k kelompok sepanjang 8 byte : {m8i. m8i+1, … m8i+7}, untuk i = 0, …, k-1 b. Kalikan tiap kelompok dengan matrix Reed-Solmon. sebagaimana yang telah dijelaskan pada persamaan (2.10) pada bab II. c. Bentuk word Si dari byte-byte Si,j. sebagaimana yang telah dijelaskan pada persamaan (2.11) pada bab II. d. Output vektor S. 6. Bangun 40 sub kunci : a. Tentukan nilai ρ IV-17
b. Lakukan 20 iterasi pada persamaan (2.17) tiap iterasi membangun 2 sub kunci. c. Output 40 sub kunci. 7. Dihasilkan kunci bantuan Me, Mo, S dan 40 sub kunci hasil perluasan kunci. B. Proses Enkripsi Berikut ialah tahapan proses enkripsi algoritma Twofish dengan mode operasi Chiper Block Chainning pada aplikasi Secure Chatting. Start
Baca seluruh karakter pesan
Konversi Pesan ke Biner, lalu ke Hexa
Initialization Vector (IV)
Panjang teks MOD 16 =0?
Tidak
Proses Paddning
Ya
Simpan di Temp (IV awal = 0)
Baca 1 block pertama 128 bit (16 byte)
XOR Plainteks dengan IV
Penjadwalan Kunci
Enkripsi 128 bit plainteks
Tidak
Chiperteks 128 bit Kunci M
Block Akhir?
Ya Chiperteks Keseluruhan dari Plainteks
End
Gambar 4.7 Flow chart proses enkripsi IV-18
Berdasarkan Gambar 4.7 dapat dijelaskan langkah-langkah proses enkripsi sebagai berikut : 1. Pengguna mengirimkan pesan teks. 2. Seluruh pesan dibaca oleh aplikasi. 3. Pesan dalam bentuk plainteks di konversi ke biner dan dibagi per 1 byte dengan menggunakan masing-masing kode ASCII karakter pesan. Kemudian Plainteks dalam bentuk biner dikonversi ke hexa. 4. Aplikasi akan membaca panjang plainteks, jika panjang plainteks kurang dari 128 bit, maka dilakukan padding (penambahan bit 0) hingga plainteks mencapai 128 bit. Jika plainteks memiliki ukuran lebih dari 128 bit maka akan diambil 128 bit pertama. 5. Proses enkripsi Twofish dengan Mode Operasi CBC : a. Plainteks dalam bentuk hexa di XOR kan dengan Initalization Vektor (IV), dalam aplikasi ini ditetapkan IV awal adalah “0”. b. Plainteks 128 bit (16 byte) plainteks p0, p1, . . . , p15 dipecah kedalam empat buah word P sepanjang 32 bit dengan konversi little endian (persamaan 2.1), sehingga plainteks menjadi P0, . . . , P3. c. Keempat teks asli dibagi menjadi dua bagian di kiri yakni P0 dan P1 lalu di kanan P2 dan P3. d. Lakukan proses Input Whitening yakni proses XOR antara keempat bagian teks asli dengan empat buah kata kunci yang telah diperluas. e. R0 dan R1 masuk pada fungsi F yang didalamnya terdapat fungsi g, dan dilanjutkan dengan PHT (Pseudo hadamard transform), dan dilakukan penambahan hasil PHT dengan kunci, tahap tahap fungsi F sebagai berikut : a. R0 dan R1 dimasukkan dalam fungsi g. untuk R1 sebelum dimasukkan dalam fungsi g akan dirotasikan ke kiri sebanyak 8 bit. R0 dan R1 melalui S-box dan selanjutnya IV-19
dikalikan dengan matriks MDS. Hasil dari fungsi g ialah TO dan T1. b. TO dan T1 melalui proses PHT yang merupakan penggabungan T0 dan T1.Hasil dari PHT ditambahkan dengan kunci yang telah terjadwal, hasil dari fungsi F dalah F0 dan F1. f. F0 dan F1 masing-masing di XOR dengan R2 dan R3. Hasil dari R2 di XOR dengan F0 lalu dirotasikan ke kanan sebanyak 1 bit. Sedangkan R3 di rotasikan ke kiri sebanyak 1 bit kemudian di XOR kan dengan F1. g. Lakukan swap (pertukaran atara blok kiri dan blok kanan). h. Lakukan iterasi terhadap Fungsi F sebanyak 16 kali, setiap iterasi sama dengan proses sebelumnya. i. Pada iterasi 16 dilakukan proses Output Whitenning terhadap hasil dari iterasi ke-16 dengan 4 kata kunci yang telah diperluas. j. Didapatkan 1 blok chiperteks Algoritma Twofish dalam Hexadesimal. 6. Periksa apakah ada blok plainteks yang belum terenkripsi, jika ada lakukan proses enkripsi untuk 128 bit berikutnya dan kirim data 128 bit chiperteks awal ke Initialitation Vector (IV), teruskan hingga seluruh pesan terenkripsi. 7. Chiperteks Chiperteks akan dikirim ke database sebagai hasil dari proses enkripsi. C. Proses Dekripsi : Berikut ialah tahapan proses dekripsi algoritma Twofish dengan mode operasi Chiper Block Chainning pada aplikasi Secure Chatting.
IV-20
Start
Chiperteks
Panjang chiperteks MOD 16 =0?
Tidak
Proses UnPadding
Ya
Kunci M
Baca 1 block pertama 128 bit (16 byte)
Penjadwalan Kunci
Dekripsi 128 bit plainteks
Simpan di Temp (IV awal = 0)
XOR Chiperteks dengan IV
Initialization Vector (IV)
128 Plainteks
Tidak
Block Akhir?
Ya
Selurh Plainteks dalam hexadecimal
Konversi plainteks ke karakter asli
End
Gambar 4.8 Flow chart proses dekripsi Berdasarkan Gambar 4.8 dapat dijelaskan langkah-langkah proses enkripsi sebagai berikut : 1. Pesan yang terkirim di ambil dalam bentuk ciphertext dari database server. IV-21
2. Aplikasi akan membaca panjang chiperteks, jika panjang chiperteks kurang dari 128 bit, maka dilakukan padding (penambahan bit 0) hingga plainteks mencapai 128 bit. 3. Proses dekripsi dimulai denga 128 bit pertama. 4. Proses Dekripsi Algoritma Twofish dengan Mode Operasi CBC : a. Input 16 ciphertext C0, C1, . . . , C15 b. Chiperteks 128 bit (16 byte) C0, C1, . . . , C15 dipecah kedalam empat buah word C sepanjang 32 bit dengan konversi little endian, sehingga chiperteks menjadi C0, . . . , C3. c. Keempat chiperteks dibagi menjadi dua bagian di kiri yakni C0 dan C1 lalu di kanan C2 dan C3. d. Lakukan proses Ouput Whitenning e. Lakukan Swap (pertukaran atara blok kiri dan blok kanan) f. 16 iterasi Fungsi F g. Pada iterasi ke 16 lakukan proses input whitening. h. Hasil input whitening di XOR kan dengan Initialization Vektor i. Didapatkan 1 blok plainteks dalam bentuk Hexa. j. Jika pada proses enkripsi dilakukan padding maka pada proses enkripsi dilakukan unpadding. k. Lakukan Konversi plainteks dari hexa ke karakter teks asli. 5. Periksa apakah ada blok chiperteks yang belum terenkripsi, jika ada lakukan proses enkripsi untuk 128 bit berikutnya dan kirim data 128 bit plainteks awal ke Initialitation Vector (IV), teruskan hingga seluruh pesan terenkripsi. 6. Chiperteks keseluruhan proses dalam hexadecimal. 7. Konversi ke karakter teks asli. 8. Pesan diterima dalam bentuk teks asli.
IV-22
4.4 Perancangan Struktur Menu Sistem Rancangan struktur menu merupakan tahapan untuk merancang bagaimana struktur menu yang akan dibangun. Berikut struktur menu dari sistem yang akan dibangun pada user dapat dilihat pada gambar di bawah ini. A. Rancangan Struktur Menu Sistem Rancangan struktur menu merupakan tahapan untuk merancang bagaimana struktur menu yang akan dibangun. Berikut struktur menu dari sistem yang akan dibangun pada user dapat dilihat pada gambar 4.9 di bawah ini. Aplikasi Secure Chatting
Register
Login
My Profile
Online Friends
Offline Friends
About
exit
SignOut
Gambar 4.9. Rancangan Struktur menu di Android Secure Chatting
B. Perancangan Antarmuka Pengguna Sistem Rancangan antar muka pengguna sistem berfungsi sebagai landasan awal dalam merancang tampilan antarmuka sistem. Pada analisa dan perancangan ini, antarmuka untuk pengguna sistem pada perangkat Android antara lain, antarmukahalaman awal, menu utama, menu home, menu online friends, menu offline friends dan halaman about. a. Halaman utama Pada aplikasi ini tampil apabila tombol aplikasi Secure chatting di klik, tampilan utama berisi menu-menu berupa My Profile, Login, Register, About dan Exit. Tampilan halaman utama pada aplikasi dapat dilihat sperti gambar berikut :
IV-23
Secure Chatting icon
Secure Chatting
Image Button Login
Image Button Register
Image ButtonA About
Image Button Exit
Gambar 4.10 Rancangan menu utama b. Halaman Register Menu Register ini tampil apabila menu Register pada aplikasi Secure chatting di klik. Pada interface Register, user menginputkan name, email, nickname dan Password lalu kemudian mengklik tombol Register. Ketika Tombol Register ditekan maka pengguna telah terdaftar di server. Secure Chatting icon
Register
Username
Nickname
Email
Password
Register Back
Gambar 4.11 Rancangan form registrasi IV-24
c. Halaman Login Menu Login ini tampil apabila menu Login pada aplikasi Secure chatting di klik. Pada interface Login, user menginputkan User Name dan Password lalu kemudian mengklik tombol Login. Ketika Tombol Login ditekan maka pengguna telah masuk ke dalam aplikasi Secure chatting. Secure Chatting icon
Login
username
password
Login Back
Gambar 4.12 Rancangan form login d. Halaman Pengguna Setelah melakukan login dengan username dan password, maka sistem akan menampilkan halaman utama pengguna yang terdiri dari menu Online Friends, Offline Friends dan Sign Out. Secure Chatting icon
Home
Image Button My Profil
Image Button Online Friends
Image Button Offline Friends
Image Button SignOut
Gambar 4.13 Rancangan menu home IV-25
e. Halaman My Profile Pada halaman My Profile sistem menampilkan data diri pengguna beserta foto. Secure Chatting
My Profile
icon
Photo
Versi 1.0 Nama
Nama
Username
Username
Password
Password
Email
Email
Gambar 4.14 Rancangan halaman My Profile f. Halaman Online Friends dan Offline Friends Pada halaman Online Friends sistem menampilkan daftar nama pengguna yang sedang online. Pada halaman ini pengguna dapat memilih teman yang ingin diajak Chatting dengan memilih salah satu teman yang sedang online.
IV-26
Gambar 4.15 Rancangan halaman Online Friends dan Offline Friends g. Halaman Chatting Ketika mengklik nama salah satu daftar pengguna yang sedang online maka pengguna dapat langsung melakukan Chatting dengan pengguna lain dengan menuliskan pesan yang akan di enkripsi kemudian di dekripsi kembali. Secure Chatting
Send
Gambar 4.16 Rancangan halaman Chatting h. Halaman About Halaman about berisi informasi mengenai aplikasi Secure Chatting. Secure Chatting
Image View
Versi 1.0 Ainatul Radhiah Teknik Informatika UIN SUSKA RIAU
Gambar 4.17 Rancangan halaman About IV-27
BAB V IMPLEMENTASI DAN PENGUJIAN 5.1 Fase Construction Pada bab ini memasuki fase construction model RUP yang berisikan penjelasan mengenai implementasi perangkat lunak yang meliputi implementasi perangkat lunak, batasan implementasi, implementasi kelas, dan implementasi antar muka. 5.1.1 Implementasi Perangkat Lunak Implementasi aplikasi Secure Chatting ini dibuat dengan menggunakan algoritma enkripsi Twofish dan dibangun dengan menggunakan bahasa pemograman Java, dan XML. Pemilihan perangkat lunak ini didasarkan pertimbangan sebagai berikut : 1. Java merupakan bahasa pemograman berorientasi object yang banyak diterapkan dalam aplikasi mobile. 2. Untuk pemograman di sistem Operasi Android menggunakan bahasa pemograman
Java
dan
runtimenya
menggunakan
DalvikVirtualMachine. 3. Untuk tampilan interface di Android menggunakan pemograman XML. 5.1.2 Batasan Implementasi Pada tugas akhir ini, perangkat lunak yang dibangun memiliki batasan berikut : 1. Perangkat lunak yang dibangun dapat dijalankan pada telepon selular bersistem operasi Android dengan spesifikasi minimal versi 2.2 dan menggunakan kartu GSM. 2. Menggunakan Database Server MySQL.
3. Menggunakan database server online di www.hostgator.com dengan url : http://baznaspekanbaru.or.id/achat 4. Waktu yang digunakan adalah waktu pada server database. 5.1.3 Lingkungan Implementasi Implementasi yang dilakukan menggunakan sebuah perangkat komputer untuk membangun perangkat lunak dan sebuah telopon selular bersistem operasi Android
yang digunakan untuk melakukan uji perangkat lunak yang telah
dibangun. Perangkat komputer yang digunakan untuk melakukan implementasi secara virtual memiliki spesifikasi sebagai berikut : 1. Prosessor Intel(R) Celeron(R) 1.50 GHz 2. RAM 2 GB 3. Hard Disk219 GB 4. Perangkat masukan Keyboard dan Mouse 5. Perangkat keluaran monitor Adapun perangkat lunak yang digunakan dalam melakukan implementasi adalah sebagai berikut : 1. Sistem Operasi Windwos 7 Ultimate 32 bit 2. Java Development Kit 3. Eclips Indigo 4. Androit SDK 1.6.10 dan Android Virtual Device Untuk hasil implementasi diujikan pada telepon selular Samsung Galaxi Mini dengan Android version 2.2 pada pengirim, dan Samsung LG L3 E400 dengan Android version 2.3 pada penerima.
5.1.4 Implementasi Antar Muka Sub bab ini berisi gambar-gambar hasil implementasi antar muka dari perangkat lunak yang telah dibangun. Gambar hasil implementasi tersebut merupakan gambar dari Emulator. V-2
Gambar 5.1 Implementasi halaman awal aplikasi Secure Chatting. Pada saat aplikasi pertama kali dibuka akan menampilkan halaman awal aplikasi Secure Chatting seperti pada gambar 5.1 , kemudian aplikasi akan menampilkan menu utama. . Berikut adalah interface menu utama :
Gambar 5.2 Implementasi antar muka menu utama V-3
Gambar 5.2 merupakan halaman menu utama saat membuka aplikasi. Pengguna memiliki 4 menu utama yaitu : 1. Login untuk masuk ke sistem. 2. Register untuk mendaftar ke aplikasi Secure Chatting. 3. About untuk melihat informasi aplikasi Secure Chatting. 4. Exit untuk keluar dari aplikasi. Menu login ialah Menu Create Message adalah menu untuk masuk ke system. Pengguna akan diarahkan menuju form login, berikut adalah interface login :
Gambar 5.3 Implementasi Antar Muka Login Gambar 5.3 di atas adalah form login untuk masuk ke aplikasi Secure Chatting bagi pengguna baru.Pengguna harus mengisi data username dan password. Saat tombol send di klik sistem akan elakukan validasi apakah data yang masuk sudah terdaftar di sistem sebagai pengguna. Jika data yang dimasukkan benar maka sistem akan menampilkan halaman utama kemudian menu utama aplikasi Secure Chatting. Jika data nama dan password tidak sesuai maka akan muncul pemberitahuan bahwa username atau password yang dimasukkan salah. Setelah masuk ke aplikasi maka pengguna akan diarahkan ke menu home. Berikut ialah interface menu home :
V-4
Gambar 5.4 Implementasi Antar Muka Home Gambar 5.5 di atas adalah halaman setelah pegguna masuk ke sistem, untuk mengedit foto pengguna dapat mengklik menu edit photo, untuk memulai chatting pengguna dapat enekan online friends, sedangkan untuk melihat daftar teman yang sedang offline pengguna dapat mengklik menu offline friends. Berikut ialah interface menu Online Fiends dan Online Friends :
Gambar 5.5 Implementasi antar muka online Friends dan offline Friends Gambar 5.5 adalah tampilan antar muka menu online friends dan menu offline friends. Pengguna yang ingin melakukan login dapat memilih menu online friends kemudian memilih salah satu teman yang hendak diajak login, dan untuk V-5
melihat pengguna lain yang sedang offline dapat memilih menu offline friends. Setelah memilih teman untuk login, maka pengguna diarahkan ke form login dan dapat melakukan pengiriman pesan. Berikut ialah interface Chatting :
Gambar 5.6 Implementasi antar muka chatting Gambar 5.6 di atas adalah halaman login dengan dua pengguna, ketika pengguna mengklik tombol send maka pesan langsung terenkripsi dengan menggunakan algoritma Twofish kemudian di kirim ke database dalam bentuk ciphertext. Pesan dikirim ke penerima secara otomatis. Saat proses pengiriman dari database ke penerima pesan di dekripsi dengan algoritma Twofish kemudian sampai ke penerima dalam bentuk plainteks asli. Berikut ialah hasil pengiriman pesan yang telah terenkripsi pada database :
Gambar 5.7 Implementasi Database Hasil Enkripsi di Server Online Dapat dilihat bahwa panjang chiperteks tergantung pada panjang pesan yang dikirim, seperti yang telah dijelaskan pada bab IV. Hasil implementasi interface lainnya dapat dilihat pada Lampiran D.
V-6
5.2 Fase Transition Alur terakhir dari RUP yaitu transition dimana dalam fase ini dilakukan pengujian dari aplikasi, dari pengujian tersebut dapat diambil kesimpulan terhadap aplikasi yang dibuat. 5.2.1
Pengujian Whitebox Pengujian aplikasi menggunakan White Box berfungsi untuk melakukan
pengujian
terhadap
struktur
kontrol
dari
perancangan
seperti
menguji
perulangan(loop) pada proses enkripsi, dekripsi dan penjadwalan kunci sehingga terlihat bagaimana aliran logika proses enkripsi dan dekripsi pada aplikasi Secure Chatting. Pengujian white box setiap proses menggunakan basis path testing dengan notasi flow graph. 5.2.1.1 Pengujian Whitebox Penjadwalan Kunci Kunci yang diujikan dalam aplikasi Secure Chatting untuk proses enkripsi dan dekripsi pesan menggunakan panjang kunci sepanjang 128 bit (16 karakter). Pada bab II telah dijelaskan bahwa algoritma Twofish membangun 40 sub kunci, dan kunci bantuan berupa vektor Me, Mo dan S. Proses Penjadwalan kunci ialah sebagai berikut : 1
2
3
4
5
6
7
8
Gambar 5.8 Flow Graph proses penjadwalan kunci V-7
Notasi Flow Graph pada Gambar 5.4 adalah sebagai berikut: 1. Mulai 2. Input Kunci 128 bit : Alhamdulillah123 Kunci dikonversi ke biner kemudian ke hexa descimal dengan mengambil nilai ASCII dari tiap karakter kunci. Tabel 5.1 Pengujian konversi karakter text ke biner dan hexa. No.
Karakter Biner
Hexa
1
A
01000001
41
2
l
01101100
6c
3
h
01101000
68
4
a
01100001
61
5
m
01101101
6d
6
d
01100100
64
7
u
01110101
75
8
l
01101100
6c
9
l
01101001
69
10
i
01101100
6c
11
l
01101100
6c
12
a
01100001
61
13
h
01101000
68
14
1
00110001
31
15
2
00110010
32
16
3
00110011
33
Didapatkan kunci dalam hexa sebagai berikut : 41 6C 68 61 6D 64 75 6C 69 6C 6C 61 68 31 32 33 Diperoleh panjang kunci (n) = 128 bit 3. Kemudian cek apakah n sudah sama dengan N, pada bab II telah dijelaskan bahwa N bernilai (128, 196 dan 256). Jika n < N, ditambahkan bit – bit “0” dibelakang kunci M, hingga n = N. V-8
4. Hitung nilai k k = n/64 , berarti k = 128/64 = 2 5. Bangun kunci bantuan Me dan Mo a. Kunci M terdiri dari 8k mi ,berarti 8.2 = 16 mi bentuk kunci menjadi byte – byte m0, m1, …, mk-1. m0 = 41, m1= 6C, m2= 68, m3= 61, m4=6D, m5=64, m6=75, m7=6C, m8=69, m9=6C, m10=6C, m11=61, m12=68, m13=31, m14=32, m15=33 b. Kelompokkan byte-byte mi dalam 2k word sepanjang 32 bit dengan aturan pada persamaan (2.8) yang telah dijelaskan pada bab II. 2k, berarti 2.2 = 4 Kelompokkan byte-byte mi kedalam 4 word yang masing-masing terdiri dari 32 bit, tiap pengelompokan menggunakan konversi little endian, yakni mengambil bit terkecil menjadi bit awal. M0 = 61686C41
M1= 696C7564
M2 = 616C6C69
M3 = 33323168
c. Kelompokkan word-word Mi sesuai index, kedalam vektor Me dan Mo. Me beranggotakan Mi yang berindex genap, sedangkan Mo beranggotakan Mi yang berindex ganjil. Mo ke 0 = 61686C41
Mo ke 1 = 616C6C69
Me ke 0 = 696C7564
Me ke 1 = 33323168
Dihasilkan dua vektor kunci Me dan Mo. 6. Bangun kunci bantuan S a. Kelompokkan byte-byte mi dalam k kelompok sepanjang 8 byte : {m8i. m8i+1, … m8i+7}, untuk i = 0, …, k-1 k = 2, berarti dihasilkan dua kelompok : Kelompok pertama : m0 = 41, m1= 6C, m2= 68, m3= 61, m4=6D, m5=64, m6=75, m7=6C Kelompok kedua : V-9
m8=69, m9=6C, m10=6C, m11=61, m12=68, m13=31, m14=32, m15=33 b. Kalikan tiap kelompok dengan matrikx Reed Solmon, sebagaimana yang telah dijelaskan pada persamaan (2.10) pada bab II. Hasil perkalian ialah : S0 = S0,3S0,2S0,2S0,3 = A778439F S1 = S1,3S1,2S1,2S1,3 = A63A8A26 c. Bentuk word Si dari byte-byte Si,j. sebagaimana yang telah dijelaskan pada persamaan (2.11) pada bab II. SboxKey ke 0 = 268A3AA6
SboxKey ke 1 = 9F4378A7
Dihasilkan vektor kunci S sebanyak k tingkatan. 7. Bangun 40 sub-kunci a. Tentukan nilai ρ = 01010101 b. Lakukan 20 iterasi (loop) pada persamaan (2.17) tiap iterasi membangun 2 sub kunci. c. Output 40 sub kunci : Sub key ke 0 =126B5C2E
Sub key ke 1 =F29E4418
Sub key ke 2 =83D0DF56
Sub key ke 3 =84E15887
Sub key ke 4 =B819D6A6
Sub key ke 5 =A5EC4BC9
Sub key ke 6 =4E698D84
Sub key ke 7 =2781F981
Sub key ke 8 =8BCCBBFD
Sub key ke 9 =668150F9
Sub key ke 10 =753EBF7A
Sub key ke 11 =7A14439C
Sub key ke 12 =D883836D
Sub key ke 13 =D953D9E2
Sub key ke 14 =28013C7D
Sub key ke 15 =34B48BF2
Sub key ke 16 =B8F2074B
Sub key ke 17 =326439FA
Sub key ke 18 =DF0647B6
Sub key ke 19 =565D41B4
Sub key ke 20 =4629B8BC
Sub key ke 21 =D00264F1
Sub key ke 22 =B2AAFE1D
Sub key ke 23 =4A8AF00C
Sub key ke 24 =AF600185
Sub key ke 25 =C1758615
Sub key ke 26 =F1C0C1AD
Sub key ke 27 =53996AC3
Sub key ke 28 =7BC3E662
Sub key ke 29 =BC18395D
Sub key ke 30 =4575C896
Sub key ke 31 =8222EAD6 V-10
Sub key ke 32 =2772BAB7
Sub key ke 33 =0B53807
Sub key ke 34 =F4517831
Sub key ke 35 =50F5C3BF
Sub key ke 36 =02BA47B0
Sub key ke 37 =A9CC7157
Sub key ke 38 =423C8B3D
Sub key ke 39 =73F8D692
8. Selesai. Setelah proses penjadwalan kunci selesai, dihasilkan kunci bantuan Me, Mo yang digunakan pada tahap penjadwalan kunci dan kunci bantuan S serta 40 sub kunci yang digunakan pada proses enkripsi dan dekripsi. Berikut adalah gambar hasil implementasi penjadwalan kunci.
V-11
Gambar 5.9 Output Penjadwalan Kunci
5.2.1.2 Pengujian Whitebox Proses Enkripsi Proses Enkripsi Pada pengujian ini, penulis akan menguji dengan memasukkan isi pesan dan key yaitu: Pesan : Bismillahhirrahmannirrahim Key
: Alhamdulillah123
Proses enkripsi pesan adalah sebagai berikut: 1
2
3
4
5
6
Gambar 5.10 Flow Graph Proses Enkripsi V-12
Notasi Flow Graph pada Gambar 5.6 adalah sebagai berikut: 1. Mulai 2. Mengambil data yang diinputkan pengguna pada saat menekan tombol send, Teks yang dimasukkan : Bismillahhirrahmannirrahim 3. Pesan dikonversi ke biner berdasarkan nilai ASCII masing-masing karakter. Tabel 5.2 Pengujian konversi pesan ke Biner Karakter
Decimal
Biner
Karakter
Decimal
Biner
1. B
66
0100 0010
14. a
97
01100001
2. i
105
01101001
15. h
104
01101000
3. s
115
01110011
16. m
109
01101101
4. m
109
01101101
17. a
97
01100001
5. i
105
01101001
18. n
110
01101110
6. l
108
01101100
19. n
110
01101110
7. l
108
01101100
20. i
105
01101001
8. a
97
01100001
21. r
114
01110010
9. h
104
01101000
22. r
114
01110010
10. h
104
01101000
23. a
97
01100001
11. i
105
01101001
24. h
104
01101000
12. r
114
01110010
25. i
105
01101001
13. r
114
01110010
26. m
109
01101101
Berdasarkan data pengujian tabel biner diatas di dapati jumlah karakter pesan sebanyak 26 karakter. 4. Pesan biner dikelompokkan setiap 8 bit untuk menentukan nilai hexa. 01000010 01101001 01110011 01101101 01101001 01101100 01101100 01100001 01101000 01101000 01101001 01110010 01110010 01100001 01101000 01101101 01100001 01101110 01101110 01101001 01110010 01110010 01100001 01101000 01101001 01101101. V-13
Kemudian hasil konversi akan dibagi tiap 128 bit, 16 byte , ika panjang bit kurang dari 128 bit maka aka nada penambahan bit “0” (padding) seperti yang telah dijelaskan pada bab IV. Inputan “Bismillahhirrahmannirrahim” berjumlah 25 byte (192 bit), Block pertama berjumlah 128 bit, maka untuk Block berikutnya dibutuhkan padding sebanyak 58 bit agar blok ke-2 berjumlah 128 bit.Pesan dalam bentuk hexa adalah plainteks yang akan dibagi dengan ukuran 16 byte setiap blok untuk proses enkripsi, maka hasil konversi ke hexa ialah : Block 1 : 42 69 73 6d 69 6c 6c 61 68 68 69 72 72 61 68 6d Block 2 : 616e6e6972726168696d000000000000
Padding
Proses enkripsi akan melakukan perulangan sebanyak jumlah blok pada flow graph nomor 4 (dalam hal ini 2 kali). Pada bab II telah dijelaskan bahwa jumlah putaran pada enkripsi Twofish adalah 16 kali. Pada bab IV telah dijelaskan bahwa mode operasi yang digunakan pada proses enkripsi ini ialah Cipher Block Chainning (CBC) dengan IV awal adalah “0”. a. Blok ke 1 Plainteks
: 4269736D696C6C61686869727261686D
IV
: 0000000000000000000000000000000000
Plainteks XOR IV
: 4269736D696C6C61686869727261686D
Input Whitening
: ADE261495C99931CC1884193C81EC395
Fungsi F Round Ke 0
: 4177605279477280653D5B8AB596A854
Fungsi F Round Ke 1
: 02D6E0D5DC33D9A6653D5B8AB596A854
Fungsi F Round Ke 2
: 02D6E0D5DC33D9A6EEA1701C561CBCEB
Fungsi F Round Ke 3
: 1FBEC0B9124ECE07EEA1701C561CBCEB
Fungsi F Round Ke 4
: 1FBEC0B9124ECE07FF345C5DCDD5931E
Fungsi F Round Ke 5
: 3DFA3C05208A8466FF345C5DCDD5931E
Fungsi F Round Ke 6
: 3DFA3C05208A8466339BA308C6E15363
Fungsi F Round Ke 7
: FE750C74EEC3D527339BA308C6E15363
Fungsi F Round Ke 8
: FE750C74EEC3D5276047FB2614BE8241 V-14
Fungsi F Round Ke 9
: A784D98573F350B26047FB2614BE8241
Fungsi F Round Ke 10
: A784D98573F350B2F75BF9445001CDC1
Fungsi F Round Ke 11
: 5B872C6B4918FD94F75BF9445001CDC1
Fungsi F Round Ke 12
: 5B872C6B4918FD94D198729E749181C8
Fungsi F Round Ke13
: D3AF53A8BB32A81FD198729E749181C8
Fungsi F Round Ke 14
: D3AF53A8BB32A81F9CFBFF62A358F2C3
Fungsi F Round Ke15
: D41043345F970A9E9CFBFF62A358F2C3
Output Whitening
: A4C097351C0D0C2CE88806382CD3FF87
ChiperText
: 380688E887FFD32C3597C0A42C0C0D1C
b. Blok kedua Plainteks
: 616E6E6972726168696D000000000000
IV(Chiperteks B1)
: 380688E887FFD32C3597C0A42C0C0D1C
Plainteks XOR IV
: 5968e681f58 b2445cfa C0A42C0C0D1C
Input whitenning
: 41776052794772801721D3A7B97BAECB
Fungsi F Round Ke 0
: 4177605279477280653D5B8AB596A854
Fungsi F Round Ke 1
: 02D6E0D5DC33D9A6653D5B8AB596A854
Fungsi F Round Ke 2
: 02D6E0D5DC33D9A6EEA1701C561CBCEB
Fungsi F Round Ke 3
: 1FBEC0B9124ECE07EEA1701C561CBCEB
Fungsi F Round Ke 4
: 1FBEC0B9124ECE07FF345C5DCDD5931E
Fungsi F Round Ke 5
: 3DFA3C05208A8466FF345C5DCDD5931E
Fungsi F Round Ke 6
: 3DFA3C05208A8466339BA308C6E15363
Fungsi F Round Ke 7
: FE750C74EEC3D527339BA308C6E15363
Fungsi F Round Ke 8
: FE750C74EEC3D5276047FB2614BE8241
Fungsi F Round Ke 9
: A784D98573F350B26047FB2614BE8241
Fungsi F Round Ke 10
: A784D98573F350B2F75BF9445001CDC1
Fungsi F Round Ke 11
: 5B872C6B4918FD94F75BF9445001CDC1
Fungsi F Round Ke 12
: 5B872C6B4918FD94D198729E749181C8
Fungsi F Round Ke 13
: D3AF53A8BB32A81FD198729E749181C8
Fungsi F Round Ke 14
: D3AF53A8BB32A81F9CFBFF62A358F2C3
Fungsi F Round Ke 15
: D41043345F970A9E9CFBFF62A358F2C3 V-15
Output Whitening
: BB59588FB9096D5C672692D18E429692
Cipherteks
: D19226679296428E8F5859BB5C6D09B9
Hasil enkripsi ialah penggabungan cipher teks dari dua blok diatas ialah sebagai berikut: 380688E887FFD32C3597C0A42C0C0D1CD19226679296428E8F5859B B5C6D09B9 Hasil masing – masing transformasi pada pengujian ini dapat dilihat pada lampiran B. 5. Data chiperteks dikirim ke database. 6. Selesai.
5.2.1.3 Pengujian Whitebox Proses Dekripsi Pengujian pada proses dekripsi ini berdasarkan pesan yang telah dienkripsi pada pengujian eknripsi sebelumnya. Pada saat pesan telah terkirim ke database maka aplikasi akan membaca seluruh seluruh karakter yang terdapat di dalam table messege (pesan) kemudian dilakukan proses dekripsi. berikut adalah Flow Graph untuk proses dekripsi: 1
2
3
4
5
6
7
8
Gambar 5.11 Flow Graph Proses Enkripsi V-16
Notasi Flow Graph pada Gambar 5.7 adalah sebagai berikut: 1. Mulai 2. Mengambil data cipherteks berada di database : 380688E887FFD32C3597C0A42C0C0D1CD19226679296428E8F5859B B5C6D09B9 3. Bagi cipherteks setiap 128 bit : Block 1: 380688E887FFD32C3597C0A42C0C0D1C Block 2 : 652620F169C749E9B5E56987F1A7CA97 4.
Proses Dekripsi Proses dekripsi dilakukan sebanyak jumlah blok flow graph tiga (dalamhal ini dua kali). a. Blok ke 1 Cipherteks
: D19226679296428E8F5859BB5C6D09B9
Input Whitening
: E88806382CD3FF87A4C097351C0D0C2C
Fungsi F Round Ke 16
: 9CFBFF62A358F2C3D3AF53A8BB32A81F
Fungsi F Round Ke 15
: D198729E749181C8D3AF53A8BB32A81F
Fungsi F Round Ke 14
: D198729E749181C85B872C6B4918FD94
Fungsi F Round Ke 13
: F75BF9445001CDC15B872C6B4918FD94
Fungsi F Round Ke 12
: F75BF9445001CDC1A784D98573F350B2
Fungsi F Round Ke 11
: 6047FB2614BE8241A784D98573F350B2
Fungsi F Round Ke 10
: 6047FB2614BE8241FE750C74EEC3D527
Fungsi F Round Ke 9
: 339BA308C6E15363FE750C74EEC3D527
Fungsi F Round Ke 8
: 339BA308C6E153633DFA3C05208A8466
Fungsi F Round Ke 7
: FF345C5DCDD5931E3DFA3C05208A8466
Fungsi F Round Ke 6
: FF345C5DCDD5931E1FBEC0B9124ECE07
Fungsi F Round Ke 5
: EEA1701C561CBCEB1FBEC0B9124ECE07
Fungsi F Round Ke 4
:EEA1701C561CBCEB02D6E0D5DC33D9A6
Fungsi F Round Ke 3
: 653D5B8AB596A85402D6E0D5DC33D9A6
Fungsi F Round Ke 2
: 653D5B8AB596A8544177605279477280
Fungsi F Round Ke 1
: 1721D3A7B97BAECB4177605279477280 V-17
Output Whitening
: 726968686D6861726D736942616C6C69
Plainteks CBC
: 4269736D696C6C61686869727261686D
IV
: 000000000000000000000000000000000
Plain. CBC XOR IV
: 4269736D696C6C61686869727261686D
Plainteks Hexa
: 4269736D696C6C61686869727261686D
b. Blok ke 2 Cipherteks
: 380688E887FFD32C3597C0A42C0C0D1C
Output Whitening
: 9CFBFF62A358F2C3D41043345F970A9E
Fungsi F Round Ke 16
: 9CFBFF62A358F2C3D3AF53A8BB32A81F
Fungsi F Round Ke 15
: D198729E749181C8D3AF53A8BB32A81F
Fungsi F Round Ke 14
: D198729E749181C85B872C6B4918FD94
Fungsi F Round Ke 13
: F75BF9445001CDC15B872C6B4918FD94
Fungsi F Round Ke 12
: F75BF9445001CDC1A784D98573F350B2
Fungsi F Round Ke 11
: 6047FB2614BE8241A784D98573F350B2
Fungsi F Round Ke 10
: 6047FB2614BE8241FE750C74EEC3D527
Fungsi F Round Ke 9
: 339BA308C6E15363FE750C74EEC3D527
Fungsi F Round Ke 8
: 339BA308C6E153633DFA3C05208A8466
Fungsi F Round Ke 7
: FF345C5DCDD5931E3DFA3C05208A8466
Fungsi F Round Ke 6
: FF345C5DCDD5931E1FBEC0B9124ECE07
Fungsi F Round Ke 5
: EEA1701C561CBCEB1FBEC0B9124ECE07
Fungsi F Round Ke 4
:EEA1701C561CBCEB02D6E0D5DC33D9A6
Fungsi F Round Ke 3
: 653D5B8AB596A85402D6E0D5DC33D9A6
Fungsi F Round Ke 2
: 653D5B8AB596A8544177605279477280
Fungsi F Round Ke 1
: 1721D3A7B97BAECB4177605279477280
Input whitening
: A4C0FA5C1C0D0C2C81E6685944B28DF5
Plainteks CBC
: 5968E681F58DB2445CFAC0A42C0C0D1C
IV (Chiperteks B1)
: 380688E887FFD32C3597C0A42C0C0D1C
Plainteks CBC XOR IV
: 616E6E6972726168696D000000000000
Plainteks 2 blok dalam bentuk hexa adalah sebagai berikut : V-18
4269736D696C6C61686869727261686D616E6972726168696D00000000000 000. 5. Hapus Padding Berdasarkan Bab IV (Analisis dan Perancangan) dijelaskan bahwa padding yang digunakan pada penelitian ini adalah heksa 00 pada akhir pesan. Oleh karena itu, padding tersebut akan dihapus sebelum dikonversi ke dalam pesan aslinya. Setelah padding dihapus, pesan hasil dekripsi dalam bentuk hexa adalah : 4269736D696C6C61686869727261686D616E6972726168696D. Hasil dari masing-masing transformasi proses ini dapat dilihat pada lampiran B. 6. Hasil plainteks di konversi ke biner untuk dikonversi ke karakter text normal. 01000010 01101001 01110011 01101101 01101001 01101100 01101100 01100001 01101000 01101000 01101001 01110010 01110010 01100001 01101000 01101101 01100001 01101110 01101110 01101001 01110010 01110010 01100001 01101000 01101001 01101101. 7. Tabel 5.3. Konversi biner ke hexa. Biner
Desimal Karakter
Biner
Desimal Karakter
0100 0010
66
B
01100001
97
a
01101001
105
i
01101000
104
h
01110011
115
s
01101101
109
m
01101101
109
m
01100001
97
a
01101001
105
i
01101110
110
n
01101100
108
l
01101110
110
n
01101100
108
l
01101001
105
i V-19
01100001
97
a
01101000
104
h
01101000
104
01101001
01110010
114
r
01110010
114
r
h
01100001
97
a
105
i
01101000
104
h
01110010
114
r
01101001
105
i
01110010
114
r
01101101
109
m
8. Tampilkan pesan : Bismillahhirrahmannirrahim. 5.2.2 Pengujian Blackbox Pengujian dengan menggunakan metode blackbox ini dilakukan dengan mengevaluasi cara kerja aplikasi yang telah dibuat apakah sesuai harapan atau tidak. 5.2.2.1 Pengujian Black Box Komponen Aplikasi. Pengujian black box komponen aplikasi dilakukan dengan cara mengujikan tiap-tiap bagian interface pada aplikasi, apakah telah berjalan sesuai rancangan atau belum. Berikut ialah table hasil pengujian komponen aplikasi : Tabel 5.4 Pengujian Blackbox komponen aplikasi N
Komponen
Hasil yang
o
Pengujian
diharapkan
1. Halaman Utama
Hasil Pengujian
Pengguna mengklik
Halaman utama dari
aplikasi Secure
aplikasi berhasil
Chatting dan
ditampilkan yang
menampilkan halaman berisi menu Login, utama
Ketera ngan
Benar
Register, Perihal dan Exit
2. Button
Aplikasi berhasil
Register pada menambah anggota menu
Anggota baru telah berhasil terdaftar
Benar
baru di database. V-20
Register
3. Button Login
Textfield dapat
Inputan textfiled
menuliskan inputan
dapat ditulis oleh
data anggota baru.
pengguna.
Aplikasi berhasil
Pengguna berhasil
pada menu
menampilkan halaman masuk ke sistem,
Login
utama.
Benar
dan menampilkan menu home yang
Textfield dapat
berisi Online
menuliskan inputan
Friends, Offline
data pengguna.
Friends dan Sign
Benar
Out. 4. Menu Online Friends
Aplikasi dapat
Daftar pengguna
menampilkan daftar
yang sedang online
pengguna yang sedang berhasil ditampilkan
Benar
online 5. Menu Offline Friends
Aplikasi dapat
Daftar pengguna
menampilkan daftar
yang sedang offline
pengguna yang sedang berhasil ditampilkan
Benar
offline 6. Button Send
Aplikasi dapat
Pesan dikirim ke
pada halaman mengenkripsi pesan.
databse dalam
Login
bentuk cipher teks Textfield dapat
Inputan textfiled
menuliskan inputan
dapat ditulis oleh
pesan.
pengguna.
Pesan di dekripsi
Pesan sampai dalam
sebelum terkirim ke
bentuk plainteks.
Benar
Benar
Benar
tujuan. 7. Menu About
Menampilkan
Informasi berhasil
informasi dari aplikasi
ditampilkan.
Benar
V-21
5.2.2.2 Pengujian Black Box Hasil Enkripsi dan Dekripsi Pada bagian ini akan diberikan hasil pengujian dari proses enkripsi dan dekripsi dengan kasus-kasus tertentu. Kasus-kasus yang akan diujikan adalah sebagai berikut : 1. Menguji kebenaran enkripsi dan dekripsi 2. Menguji panjang pesan hasil enkripsi. 3. Menguji keamanan isi pesan. Hasil pengujian kasus-kasus tersebut dapat dilihat pada tabel Lampiran C. A. Enkripsi dan Dekripsi pada Merk Handphone dan Versi Android Berbeda. Pengujian pengiriman pesan ini bertujuan untuk melakukan pengecekan terhadap pesan yang dikirimkan. Tata cara dari pengujian ini adalah melakukan pengiriman terhadap telepon selular bersistem operasi android versi 2.2 dan versi diatasnya dengan berbagai merk handphone.
Tabel 5.5 Pengujian pada Versi Android Berbeda Merk dan Jenis Versi Android Penerima
Pesan yang
Pesan yang
dikirim
diterima
Hasil Enkripsi di Database EDA37340A 39C88DC8A
Samsung Galaxi Mini, Android versi2.2. Froyo
Assalamu’alaikum Assalamu’alaiku .apa kabar?
m, apa kabar?
A1291EDF1 F0E146F5B 812ADF6EF F5AA4EFC9 A42F8607F4
Samsung Galaxi Young Versi 2.3. GingerBread
EDA37340A Assalamu’alaikum Assalamu’alaiku
39C88DC8A
.apa kabar?
A1291EDF1
m, apa kabar?
F0E146F5B V-22
812ADF6EF F5AA4EFC9 A42F8607F4 EDA37340A 39C88DC8A LG Optimus LG
Assalamu’alaikum Assalamu’alaiku
E400
. apa kabar?
m, apa kabar?
A1291EDF1 F0E146F5B 812ADF6EF F5AA4EFC9 A42F8607F4
5.2.3 Kesimpulan Pengujian Berdasarkan pengujian diatas, penulis dapat menyimpulkan beberapa hal, yakni sebagai berikut : 1. Hasil pengujian secara whitebox pada pembangkitan kunci Me dan Me menghasilkan hasil yang sama dengan perhitungan manual penjadwalan kunci Me dan Mo. Pada tahap penjadwalan kunci S dan 40 sub kunci tidak dapat dilakukan secara manual, melainkan harus dibentuk menggunakan kode program, karena memiliki proses matematis yang rumit, diantaranya menggunakan perkalian dan penjumlahan Galois Field (28) mada Matriks MDS dan Reed Solmon. Penjadwalan kunci Me, kunci Mo, kunci S dan 40 sub kunci berhasil dilakukan. 2. Hasil pengujian whitebox proses enkripsi dan dekripsi menghasilkan hasil yang sama pada proses perhitungan manual hingga tahap input whitening. Proses selanjutnya dapat dilihat dengan menggunakan kode program algoritma Twofish. Hasil dari 16 ronde feitsel Twofish dapat dilihat per-tahap mulai dari ronde 1 hingga ke 16. Data plainteks berhasil di enkripsi dan di dekripsi dengan benar.
V-23
3. Pada pengujian aplikasi secara blackbox dapat dievaluasi bahwa hasil aplikasi yang dibuat sudah sesuai harapan. 4. Jumlah blok hasil chiperteks berbanding lurus dengan jumlah blok plainteks. Semakin banyak teks yang dikirim semakin banyak pula jumlah chipertksnya. 5. Panjang pengiriman pesan ialah mencapai 3120 karakter. 6. Melalui hasil pengujian yang dilakukan pada telepon selular Android berbeda versi dan merk, pesan dapat disampaikan dengan baik dan fungsi dekripsi pesan berhasil dilakukan, dapat diketahui implementasi algoritma Twofish dengan mode operasi CBC untuk komunikasi melalui media Login pada sistem operasi Android dapat direalisasikan dengan baik.
V-24
BAB VI PENUTUP
6.1 Kesimpulan Berdasarkan analisis, perancangan dan implementasi pada sistem yang telah dibuat dapat diambil kesimpulan sebagai berikut: 1. Aplikasi Secure Chatting pada platform Android berhasil dibangun. 2. Enkripsi pesan chatting pada Android berhasil dibangun dengan menerapkan Algoritma Enkripsi Twofish 128 bit dengan mode operasi Cipher Block Chainning (CBC). 3. Hasil enkripsi menggunakan mode
operasi Cipher Block Chainning
(CBC) pada satu blok plainteks yang memiliki karakter sama menghasilkan cipherteks yang berbeda seingga meningkatkan keamanan pesan chatting. 4. Jumlah blok karakter teks yang dikirim berbanding lurus dengan jumlah blok chiperteks yang dihasilkan. Oleh karena itu semakin banyak teks yang dikirim akan semakin banyak pula chiperteksnya. 5. Jumlah karakter chiperteks yang dihasilkan lebih banyak dari jumlah teks yang dikirim, ini dikarenakan chiperteks dituliskan dalam hexadecimal. 6. Algoritma dapat melakukan pengamanan terhadap pesan yang dikirim melalui aplikasi Secure Chatting, dibuktikan dengan percobaan sniffing dengan menggunakan WireShark gagal memperoleh teks asli. 6.2 Saran Berdasarkan hasil pengujian yang dilakukan pada penelitian ini serta kesimpulan di atas, dapat disampaikan saran – saran untuk perbaikan pada pembangunan aplikasi pada penelitian selanjutnya yaitu: 1. Aplikasi Secure Chatting hanya dapat menerima pesan dalam bentuk teks. Pada penelitian selanjutnya dapat dikembangkan sehingga aplikasi dapat
menerima pesan dalam bentuk multimedia
seperti gambar, suara dan
video. Kemudian pesan dalam bentuk multimedia juga dienkripsi dengan algoritma twofish atau algoritma lain. 2. Pada pengembangan selanjutnya aplikasi Secure Chatting dapat dibuat dalam web apps.
VI-2
LAMPIRAN A PERANCANGAN MODEL SISTEM
Pada bab analisa dan perancangan telah dijelaskan adanya beberapa model diagram yang digambarkan pada laporan ini. Diantaranya use case diagram, class diagram, dan activity diagram. Untuk lebih jelasnya akan dipaparkan kelanjutan dari beberapa diagram yang ada pada bab analisa dan perancangan. A.1.
Activity Diagram Pada Perangkat Android Activity diagram merupakan alur kerja pada setiap use case. Activity
diagram pada analisa ini mencakup activity diagram setiap use case. A.1.1 Activity Diagram Login Gambar A.1 di bawah ini menjelaskan activity diagram menampilkan login pada perangkat Android. User
Android
Membuka Aplikasi
Mengisi username dan password
Server
Menampilkan halaman login
Kirim data
Database user Validasi
username dan password cocok?
Tampilkan pesan gagal login
tidak Status Online
Menampilkan menu utama
ya
Selesai
Gambar A.1 Activity Diagram login A-1
A-2
A.1.2 Activity Diagram Registrasi Gambar A.2 di bawah ini menjelaskan activity diagram menampilkan registrasi perangkat Android.
User
Android
Membuka Aplikasi
Server
Menampilkan halaman login
Kirim data
Mengisi username dan password
Database user Validasi
username dan password cocok?
Tampilkan pesan gagal login
tidak Status Online
Menampilkan menu utama
ya
Selesai
Gambar A.2 Activity Diagram Registrasi A.1.3 Activity Diagram About Gambar A.3 di bawah ini menjelaskan activity diagram menampilkan halaman about pada perangkat Android. Pengirim/Penerima
About
Sistem
Tampilan About
Gambar A.3 Activity DiagramAbout
A-3
A.2.
Sequence Diagram Pada Perangkat Android Sequence Diagram menggampbarkan interaksi antar objek di dalam dan di
sekitar sistem (termasuk pengguna, display dan sebagainya) berupa pesan yang digambarkan terhadap waktu.
A.2.1. Sequence diagram menampilkan proses login Gambar A.4 di bawah ini menjelaskan sequence diagram proses login pada perangkat Android. Pengguna
Menu
Login
Database
1. onCreate() 2. signIn():void 3.postdata():void 4.Validasi
5.1.Incorrect Username or Password 5.2. Show
Gambar A.4. Sequence Diagram Login A.2.2. Sequence diagram menampilkan proses registrasi Gambar A.5 di bawah ini menjelaskan sequence diagram proses registrasi pada perangkat Android.
A-4
Pengguna
Menu
Registrasi
Database
1.onCreate() 2.regUser():void 3.Validasi 4.Data belum lengkap 5.Simpan data
6.Selamat anda telah terdaftar di aplikasi Secure Chatting
Gambar A.5 Activity Diagram Registrasi A.2.3 Sequence diagram menampilkan proses Pemgiriman dan Penerimaan Pesan Gambar A.6 di bawah ini menjelaskan sequence diagram proses about pada perangkat Android. User
Menu
About
Pilih Menu About
Tampil
Gambar A6. Sequence Diagram About
LAMPIRAN B PENGUJIAN WHITE BOX
Pada Bab V (Implementasi dan Pengujian) digambarkan hasil pengujian menggunakan white box baik proses enkripsi maupun dekripsi. Pada pengujian ini, proses yang akan dijelaskan adalah transformasi masing-masing round pada proses enkripsi dan dekripsi berdasarkan plaintext dan key pada pengujian sebelumnya.
B.1 Pengujian White Box pada Proses Enkripsi Plaintext (heksa) : Block 1 : 42 69 73 6d 69 6c 6c 61 68 68 69 72 72 61 68 6d Block 2 : 61 6e 6e 69 72 72 61 68 69 6d 00 00 00 00 00 00
A. Block 1 : 42 69 73 6d 69 6c 6c 61 68 68 69 72 72 61 68 6d 1. Pecah kedalam 4 byte dengan konversi little endian, berikut hasilnya dalam hexa dan biner : P0 : 6D736942 = 01101101011100110110100101000010 P1 : 616C6C69 = 01100001011011000110110001101001 P2 : 72696868
= 01110010011010010110100001101000
P3 : 6D686172 = 01101101011010000110000101110010 2. Input Whitenning : Xor kan masing-masing Pi dengan empat subkey pertama, berikut empat subkey pertama dalam hexa dan biner. sKey ke 0 : C091080B = 11000000100100010000100000001011 sKey ke 1 : 3DF5FF75 = 00111101111101011111111101110101 sKey ke 2 : B3E129FB = 10110011111000010010100111111011 sKey ke 3 : A576A2E7 = 10100101011101101010001011100111 P0 XOR Skey 0 : 01101101011100110110100101000010 11000000100100010000100000001011 XOR
B-1
B-2
10101101111000100110000101001001 > ADE26149 (Hexa) P1 XOR Skey 1 : 01100001011011000110110001101001 00111101111101011111111101110101 XOR 01011100100110011001001100011100 > 5C99931C (Hexa) P2 XOR Skey 2 : 01110010011010010110100001101000 10110011111000010010100111111011 XOR 11000001100010000100000110010011 > C1884193 (Hexa) P3 XOR Skey 3 : 01101101011010000110000101110010 10100101011101101010001011100111 XOR 11001000000111101100001110010101 > C81EC395 (Hexa) Hasil I. Whitening : AD E2 61 49 5C 99 93 1C C1 88 41 93 C8 1E C3 95 X0 = AD E2 61 49 X1 = 5C 99 93 1C X2 = C1 88 41 93 X3 = C8 1E C3 95 3. Kemudian byte-byte tersebut dimasukkan dalam fungsi F yang di dalamnya terdapat fungsi g , sebagaimana yang telah dijelaskan pada bab II , fungsi g menghasilkan TO dan T1 kemudian T0 dan T1 dikombinasikan dengan PHT (Pseudo Hadamard Transformation) yang menghasilkan F0 dan F1 , berikut adalah hasil dari tiap-tiap Round : a. Round 1 : XO Melaui Fungsi g Menghasilkan T0 : 13A064B5 X1 Melaui Fungsi g Menghasilkan T1 : F33ADEC0 X2 Dikombinasikan dengan PHT menghasilkan F0 : CA7AB714 X2 digeser ke kanan 1 bit : 653D5B8A X3 digeser ke kiri 1 bit : 72F75D97
B-3
X3 Dikombinasikan dengan PHT menhasilkan F1 : B596A854 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 4177605279477280653D5B8AB596A854
b. Round 2 : X2 Melaui Fungsi g Menghasilkan T0 Round : FADFB8A4 X3 Melaui Fungsi g Menghasilkan T1 Round : B695DB15 X0 Dikombinasikan dengan PHT menhasilkan F0 : 05ADC1AA X0 digeser ke kanan 1 bit : 02D6E0D5 X1 digeser ke kiri 1 bit : F28EE500 X1 Dikombinasikan dengan PHT menhasilkan F1 : DC33D9A6 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 02D6E0D5DC33D9A6653D5B8AB596A854
c. Round 3 : XO Melaui Fungsi g Menghasilkan T0 : 6DD84673 X1 Melaui Fungsi g Menghasilkan T1 : FEA79683 X2 Dikombinasikan dengan PHT menghasilkan F0 : DD42E039 X2 digeser ke kanan 1 bit : EEA1701C X3 digeser ke kiri 1 bit : 6B2D50A9 X3 Dikombinasikan dengan PHT menhasilkan F1 : 561CBCEB Penggabungan X0,X1,X2,X3 Setelah fungsi F : 02D6E0D5DC33D9A6EEA1701C561CBCEB
d. Round 4 : X2 Melaui Fungsi g Menghasilkan T0 Round : 3738C4B3 X3 Melaui Fungsi g Menghasilkan T1 Round : BD8FD232 X0 Dikombinasikan dengan PHT menhasilkan F0 : 3F7D8172 X0 digeser ke kanan 1 bit : 1FBEC0B9 X1 digeser ke kiri 1 bit : B867B34D X1 Dikombinasikan dengan PHT menhasilkan F1 : 124ECE07
B-4
Penggabungan X0,X1,X2,X3 Setelah fungsi F : 1FBEC0B9124ECE07EEA1701C561CBCEB
e. Round 5 : XO Melaui Fungsi g Menghasilkan T0 : 8F321D83 X1 Melaui Fungsi g Menghasilkan T1 : 0CE25AEA X2 Dikombinasikan dengan PHT menghasilkan F0 : FE68B8BB X2 digeser ke kanan 1 bit : FF345C5D X3 digeser ke kiri 1 bit : AC3979D6 X3 Dikombinasikan dengan PHT menhasilkan F1 : CDD5931E Penggabungan X0,X1,X2,X3 Setelah fungsi F : 1FBEC0B9124ECE07FF345C5DCDD5931E
f. Round 6 : X2 Melaui Fungsi g Menghasilkan T0 Round : 5EF8160F X3 Melaui Fungsi g Menghasilkan T1 Round : A7CCC6D4 X0 Dikombinasikan dengan PHT menhasilkan F0 : 7BF4780A X0 digeser ke kanan 1 bit : 3DFA3C05 X1 digeser ke kiri 1 bit : 249D9C0E X1 Dikombinasikan dengan PHT menhasilkan F1 : 208A8466 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 3DFA3C05208A8466FF345C5DCDD5931E
g. Round 7 : XO Melaui Fungsi g Menghasilkan T0 : 56B5C21B X1 Melaui Fungsi g Menghasilkan T1 : CA52A8F8 X2 Dikombinasikan dengan PHT menghasilkan F0 : 67374610 X2 digeser ke kanan 1 bit : 339BA308 X3 digeser ke kiri 1 bit : 9BAB263D X3 Dikombinasikan dengan PHT menhasilkan F1 : C6E15363
B-5
Penggabungan X0,X1,X2,X3 Setelah fungsi F : 3DFA3C05208A8466339BA308C6E15363
h. Round 8 : X2 Melaui Fungsi g Menghasilkan T0 Round : 471BFFF3 X3 Melaui Fungsi g Menghasilkan T1 Round : FB35442A X0 Dikombinasikan dengan PHT menhasilkan F0 : FCEA18E9 X0 digeser ke kanan 1 bit : FE750C74 X1 digeser ke kiri 1 bit : 411508CC X1 Dikombinasikan dengan PHT menhasilkan F1 : EEC3D527 Penggabungan X0,X1,X2,X3 Setelah fungsi F : FE750C74EEC3D527339BA308C6E15363
i. Round 9 : XO Melaui Fungsi g Menghasilkan T0 : 90A6B739 X1 Melaui Fungsi g Menghasilkan T1 : BC2612A5 X2 Dikombinasikan dengan PHT menghasilkan F0 : C08FF64C X2 digeser ke kanan 1 bit : 6047FB26 X3 digeser ke kiri 1 bit : 8DC2A6C7 X3 Dikombinasikan dengan PHT menhasilkan F1 : 14BE8241 Penggabungan X0,X1,X2,X3 Setelah fungsi F : FE750C74EEC3D5276047FB2614BE8241
j. Round 10 : X2 Melaui Fungsi g Menghasilkan T0 Round : 25D8EBAD X3 Melaui Fungsi g Menghasilkan T1 Round : 135BECC0 X0 Dikombinasikan dengan PHT menhasilkan F0 : 4F09B30B X0 digeser ke kanan 1 bit : A784D985 X1 digeser ke kiri 1 bit : DD87AA4F X1 Dikombinasikan dengan PHT menhasilkan F1 : 73F350B2
B-6
Penggabungan X0,X1,X2,X3 Setelah fungsi F : A784D98573F350B26047FB2614BE8241
k. Round 11 : XO Melaui Fungsi g Menghasilkan T0 : 688931A4 X1 Melaui Fungsi g Menghasilkan T1 : 948D110B X2 Dikombinasikan dengan PHT menghasilkan F0 : EEB7F289 X2 digeser ke kanan 1 bit : F75BF944 X3 digeser ke kiri 1 bit : 297D0482 X3 Dikombinasikan dengan PHT menhasilkan F1 : 5001CDC1 Penggabungan X0,X1,X2,X3 Setelah fungsi F : A784D98573F350B2F75BF9445001CDC1
l. Round 12: X2 Melaui Fungsi g Menghasilkan T0 Round : 3A67C4AF X3 Melaui Fungsi g Menghasilkan T1 Round : C6FAB4EC X0 Dikombinasikan dengan PHT menhasilkan F0 : B70E58D6 X0 digeser ke kanan 1 bit : 5B872C6B X1 digeser ke kiri 1 bit : E7E6A164 X1 Dikombinasikan dengan PHT menhasilkan F1 : 4918FD94 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 5B872C6B4918FD94F75BF9445001CDC1
m. Round 13 : XO Melaui Fungsi g Menghasilkan T0 : 843A134B X1 Melaui Fungsi g Menghasilkan T1 : F9956196 X2 Dikombinasikan dengan PHT menghasilkan F0 : A330E53D X2 digeser ke kanan 1 bit : D198729E X3 digeser ke kiri 1 bit : A0039B82 X3 Dikombinasikan dengan PHT menhasilkan F1 : 749181C8
B-7
Penggabungan X0,X1,X2,X3 Setelah fungsi F : 5B872C6B4918FD94D198729E749181C8
n. Round 14 : X2 Melaui Fungsi g Menghasilkan T0 Round : B1D57B68 X3 Melaui Fungsi g Menghasilkan T1 Round : 34D44FE6 X0 Dikombinasikan dengan PHT menhasilkan F0 : A75EA751 X0 digeser ke kanan 1 bit : D3AF53A8 X1 digeser ke kiri 1 bit : 9231FB28 X1 Dikombinasikan dengan PHT menhasilkan F1 : BB32A81F Penggabungan X0,X1,X2,X3 Setelah fungsi F : D3AF53A8BB32A81FD198729E749181C8
o. Round 15 : XO Melaui Fungsi g Menghasilkan T0 : 21F072C4 X1 Melaui Fungsi g Menghasilkan T1 : A1A7197A X2 Dikombinasikan dengan PHT menghasilkan F0 : 39F7FEC5 X2 digeser ke kanan 1 bit : 9CFBFF62 X3 digeser ke kiri 1 bit : E9230390 X3 Dikombinasikan dengan PHT menhasilkan F1 : A358F2C3 Penggabungan X0,X1,X2,X3 Setelah fungsi F : D3AF53A8BB32A81F9CFBFF62A358F2C3
p. Round 16 : X2 Melaui Fungsi g Menghasilkan T0 Round : BDB6E01F X3 Melaui Fungsi g Menghasilkan T1 Round : 8BABF508 X0 Dikombinasikan dengan PHT menhasilkan F0 : A8208669 X0 digeser ke kanan 1 bit : D4104334 X1 digeser ke kiri 1 bit : 7665503F X1 Dikombinasikan dengan PHT menhasilkan F1 : 5F970A9E
B-8
Penggabungan X0,X1,X2,X3 Setelah fungsi F : D41043345F970A9E9CFBFF62A358F2C3 4. Setelah Output Whitening : A4 C0 97 35 1C 0D 0C 2C E8 88 06 38 2C D3 FF 87 5. Chiperteks : 38 06 88 E8 87 FF D3 2C 35 97 C0 A4 2C 0C 0D 1C
B. Block ke 2 -61 6e 6e 69 72 72 61 68 69 6d 00 00 00 00 00 00 1. Setelah CBC : 5968E681F58DB2445CFAC0A42C0C0D1C 2. Setelah Input Whitening : 41776052794772801721D3A7B97BAECB X1 = 41776052 X2 = 79477280 X3 = 1721D3A7 X4 = B97BAECB 3. Setelah Melalui Fungsi F : a. Round 1 : XO Melaui Fungsi g Menghasilkan T0 : 13A064B5 X1 Melaui Fungsi g Menghasilkan T1 : F33ADEC0 X2 Dikombinasikan dengan PHT menghasilkan F0 : CA7AB714 X2 digeser ke kanan 1 bit : 653D5B8A X3 digeser ke kiri 1 bit : 72F75D97 X3 Dikombinasikan dengan PHT menhasilkan F1 : B596A854 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 4177605279477280653D5B8AB596A854
b. Round 2 : X2 Melaui Fungsi g Menghasilkan T0 Round : FADFB8A4 X3 Melaui Fungsi g Menghasilkan T1 Round : B695DB15 X0 Dikombinasikan dengan PHT menhasilkan F0 : 05ADC1AA X0 digeser ke kanan 1 bit : 02D6E0D5 X1 digeser ke kiri 1 bit : F28EE500
B-9
X1 Dikombinasikan dengan PHT menhasilkan F1 : DC33D9A6 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 02D6E0D5DC33D9A6653D5B8AB596A854
c. Round 3 : XO Melaui Fungsi g Menghasilkan T0 : 6DD84673 X1 Melaui Fungsi g Menghasilkan T1 : FEA79683 X2 Dikombinasikan dengan PHT menghasilkan F0 : DD42E039 X2 digeser ke kanan 1 bit : EEA1701C X3 digeser ke kiri 1 bit : 6B2D50A9 X3 Dikombinasikan dengan PHT menhasilkan F1 : 561CBCEB Penggabungan X0,X1,X2,X3 Setelah fungsi F : 02D6E0D5DC33D9A6EEA1701C561CBCEB
d. Round 4 : X2 Melaui Fungsi g Menghasilkan T0 Round : 3738C4B3 X3 Melaui Fungsi g Menghasilkan T1 Round : BD8FD232 X0 Dikombinasikan dengan PHT menhasilkan F0 : 3F7D8172 X0 digeser ke kanan 1 bit : 1FBEC0B9 X1 digeser ke kiri 1 bit : B867B34D X1 Dikombinasikan dengan PHT menhasilkan F1 : 124ECE07 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 1FBEC0B9124ECE07EEA1701C561CBCEB
e. Round 5 : XO Melaui Fungsi g Menghasilkan T0 : 8F321D83 X1 Melaui Fungsi g Menghasilkan T1 : 0CE25AEA X2 Dikombinasikan dengan PHT menghasilkan F0 : FE68B8BB X2 digeser ke kanan 1 bit : FF345C5D X3 digeser ke kiri 1 bit : AC3979D6 X3 Dikombinasikan dengan PHT menhasilkan F1 : CDD5931E
B-10
Penggabungan X0,X1,X2,X3 Setelah fungsi F : 1FBEC0B9124ECE07FF345C5DCDD5931E
f. Round 6 : X2 Melaui Fungsi g Menghasilkan T0 Round : 5EF8160F X3 Melaui Fungsi g Menghasilkan T1 Round : A7CCC6D4 X0 Dikombinasikan dengan PHT menhasilkan F0 : 7BF4780A X0 digeser ke kanan 1 bit : 3DFA3C05 X1 digeser ke kiri 1 bit : 249D9C0E X1 Dikombinasikan dengan PHT menhasilkan F1 : 208A8466 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 3DFA3C05208A8466FF345C5DCDD5931E
g. Round 7 : XO Melaui Fungsi g Menghasilkan T0 : 56B5C21B X1 Melaui Fungsi g Menghasilkan T1 : CA52A8F8 X2 Dikombinasikan dengan PHT menghasilkan F0 : 67374610 X2 digeser ke kanan 1 bit : 339BA308 X3 digeser ke kiri 1 bit : 9BAB263D X3 Dikombinasikan dengan PHT menhasilkan F1 : C6E15363 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 3DFA3C05208A8466339BA308C6E15363
h. Round 8 : X2 Melaui Fungsi g Menghasilkan T0 Round : 471BFFF3 X3 Melaui Fungsi g Menghasilkan T1 Round : FB35442A X0 Dikombinasikan dengan PHT menhasilkan F0 : FCEA18E9 X0 digeser ke kanan 1 bit : FE750C74 X1 digeser ke kiri 1 bit : 411508CC X1 Dikombinasikan dengan PHT menhasilkan F1 : EEC3D527
B-11
Penggabungan X0,X1,X2,X3 Setelah fungsi F : FE750C74EEC3D527339BA308C6E15363
i. Round 9 : XO Melaui Fungsi g Menghasilkan T0 : 90A6B739 X1 Melaui Fungsi g Menghasilkan T1 : BC2612A5 X2 Dikombinasikan dengan PHT menghasilkan F0 : C08FF64C X2 digeser ke kanan 1 bit : 6047FB26 X3 digeser ke kiri 1 bit : 8DC2A6C7 X3 Dikombinasikan dengan PHT menhasilkan F1 : 14BE8241 Penggabungan X0,X1,X2,X3 Setelah fungsi F : FE750C74EEC3D5276047FB2614BE8241
j. Round 10 : X2 Melaui Fungsi g Menghasilkan T0 Round : 25D8EBAD X3 Melaui Fungsi g Menghasilkan T1 Round : 135BECC0 X0 Dikombinasikan dengan PHT menhasilkan F0 : 4F09B30B X0 digeser ke kanan 1 bit : A784D985 X1 digeser ke kiri 1 bit : DD87AA4F X1 Dikombinasikan dengan PHT menhasilkan F1 : 73F350B2 Penggabungan X0,X1,X2,X3 Setelah fungsi F : A784D98573F350B26047FB2614BE8241
k. Round 11 : XO Melaui Fungsi g Menghasilkan T0 : 688931A4 X1 Melaui Fungsi g Menghasilkan T1 : 948D110B X2 Dikombinasikan dengan PHT menghasilkan F0 : EEB7F289 X2 digeser ke kanan 1 bit : F75BF944 X3 digeser ke kiri 1 bit : 297D0482 X3 Dikombinasikan dengan PHT menhasilkan F1 : 5001CDC1
B-12
Penggabungan X0,X1,X2,X3 Setelah fungsi F : A784D98573F350B2F75BF9445001CDC1
l. Round 12 : X2 Melaui Fungsi g Menghasilkan T0 Round : 3A67C4AF X3 Melaui Fungsi g Menghasilkan T1 Round : C6FAB4EC X0 Dikombinasikan dengan PHT menhasilkan F0 : B70E58D6 X0 digeser ke kanan 1 bit : 5B872C6B X1 digeser ke kiri 1 bit : E7E6A164 X1 Dikombinasikan dengan PHT menhasilkan F1 : 4918FD94 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 5B872C6B4918FD94F75BF9445001CDC1
m. Round 13 : XO Melaui Fungsi g Menghasilkan T0 : 843A134B X1 Melaui Fungsi g Menghasilkan T1 : F9956196 X2 Dikombinasikan dengan PHT menghasilkan F0 : A330E53D X2 digeser ke kanan 1 bit : D198729E X3 digeser ke kiri 1 bit : A0039B82 X3 Dikombinasikan dengan PHT menhasilkan F1 : 749181C8 Penggabungan X0,X1,X2,X3 Setelah fungsi F : 5B872C6B4918FD94D198729E749181C8
n. Round 14 : X2 Melaui Fungsi g Menghasilkan T0 Round : B1D57B68 X3 Melaui Fungsi g Menghasilkan T1 Round : 34D44FE6 X0 Dikombinasikan dengan PHT menhasilkan F0 : A75EA751 X0 digeser ke kanan 1 bit : D3AF53A8 X1 digeser ke kiri 1 bit : 9231FB28 X1 Dikombinasikan dengan PHT menhasilkan F1 : BB32A81F
B-13
Penggabungan X0,X1,X2,X3 Setelah fungsi F : D3AF53A8BB32A81FD198729E749181C8
o. Round 15 : XO Melaui Fungsi g Menghasilkan T0 : 21F072C4 X1 Melaui Fungsi g Menghasilkan T1 : A1A7197A X2 Dikombinasikan dengan PHT menghasilkan F0 : 39F7FEC5 X2 digeser ke kanan 1 bit : 9CFBFF62 X3 digeser ke kiri 1 bit : E9230390 X3 Dikombinasikan dengan PHT menhasilkan F1 : A358F2C3 Penggabungan X0,X1,X2,X3 Setelah fungsi F : D3AF53A8BB32A81F9CFBFF62A358F2C3
p. Round 16 : X2 Melaui Fungsi g Menghasilkan T0 Round : BDB6E01F X3 Melaui Fungsi g Menghasilkan T1 Round : 8BABF508 X0 Dikombinasikan dengan PHT menhasilkan F0 : A8208669 X0 digeser ke kanan 1 bit : D4104334 X1 digeser ke kiri 1 bit : 7665503F X1 Dikombinasikan dengan PHT menhasilkan F1 : 5F970A9E Penggabungan X0,X1,X2,X3 Setelah fungsi F : D41043345F970A9E9CFBFF62A358F2C3
4. Setelah Input Whitening : BB 59 58 8F B9 09 6D 5C 67 26 92 D1 8E 42 96 92 5. Chiperteks blok ke dua : D1 92 26 67 92 96 428E 8F 58 59 BB 5C 6D 09 B9 Berdasarkan pengujian, hasil penggabungan chiperteks blok pertama dan blok kedua adalah : 38 06 88 E8 87 FF D3 2C 35 97 C0 A4 2C 0C 0D 1C D1 92 26 67 92 96 428E 8F 58 59 BB 5C 6D 09 B9
B-14
B.2 Pengujian White Box pada Proses Dekripsi Chiperteks (heksa) : Block 1 : 38 06 88 E8 87 FF D3 2C 35 97 C0 A4 2C 0C 0D 1C Block 2 : D1 92 26 67 92 96 428E 8F 58 59 BB 5C 6D 09 B9
Blok 1 - 38 06 88 E8 87 FF D3 2C 35 97 C0 A4 2C 0C 0D 1C 1. Pecah kedalam 4 bagian dengan ukuran masing – masing 32 byte dengan konversi little endian : C1 : E8880638 C2 : 2CD3FF87 C3 : A4C09735 C4 : 1C0D0C2C 2. Setelah Output Whitening : 13556B8B01C99BD6CB898C8EFA936BEE X2 : 13556B8B X3 : 01C99BD6 X0 : CB898C8E X1 : FA936BEE 3. Setelah melalui fungsi F : a. Round 16 : X2 Melaui Fungsi g Menghasilkan T0 : 14D81676 X3 Melaui Fungsi g Menghasilkan T1 : E024C7AC X1 Dikombinasikan dengan PHT menghasilkan F1 : D0965DAE X1 digeser ke kanan 1 bit : 684B2ED7 X0 digeser ke kiri 1 bit : 9713191D X0 Dikombinasikan dengan PHT menhasilkan F0 : B03AC7A1 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 16 : 13556B8B01C99BD6B03AC7A1684B2ED7 b. Round 15 : X0 Melaui Fungsi g Menghasilkan T0 : C84202B9
B-15
X1 Melaui Fungsi g Menghasilkan T1 : AF26A1D3 X3 Dikombinasikan dengan PHT menghasilkan F1 : 0A050A2C X3 digeser ke kanan 1 bit : 05028516 X2 digeser ke kiri 1 bit : 26AAD716 X2 Dikombinasikan dengan PHT menhasilkan F0 : BAEA73BF Penggabungan X2,X3,X0,X1 Setelah fungsi F : 15 : BAEA73BF05028516B03AC7A1684B2ED7 c. Round 14 : X2 Melaui Fungsi g Menghasilkan T0 : 02D1AD81 X3 Melaui Fungsi g Menghasilkan T1 : 2EA31D94 X1 Dikombinasikan dengan PHT menghasilkan F1 : 05D60E7B X1 digeser ke kanan 1 bit : 82EB073D X0 digeser ke kiri 1 bit : 60758F43 X0 Dikombinasikan dengan PHT menhasilkan F0 : 27D10442 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 14 : BAEA73BF0502851627D1044282EB073D d. Round 13 : X0 Melaui Fungsi g Menghasilkan T0 : 5BFD4C9A X1 Melaui Fungsi g Menghasilkan T1 : 7DA048CC X3 Dikombinasikan dengan PHT menghasilkan F1 : B169A713 X3 digeser ke kanan 1 bit : D8B4D389 X2 digeser ke kiri 1 bit : 75D4E77F X2 Dikombinasikan dengan PHT menhasilkan F0 : C5EDDB81 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 13 : C5EDDB81D8B4D38927D1044282EB073D e. Round 12 : X2 Melaui Fungsi g Menghasilkan T0 : 6026B7F8 X3 Melaui Fungsi g Menghasilkan T1 : B8E7C598 X1 Dikombinasikan dengan PHT menghasilkan F1 : 3A7C76AC X1 digeser ke kanan 1 bit : 1D3E3B56 X0 digeser ke kiri 1 bit : 4FA20884
B-16
X0 Dikombinasikan dengan PHT menhasilkan F0 : 67948DCC Penggabungan X2,X3,X0,X1 Setelah fungsi F : 12 : C5EDDB81D8B4D38967948DCC1D3E3B56 f. Round 11 : X0 Melaui Fungsi g Menghasilkan T0 : F536C292 X1 Melaui Fungsi g Menghasilkan T1 : 447BF6E6 X3 Dikombinasikan dengan PHT menghasilkan F1 : BEBCF66E X3 digeser ke kanan 1 bit : 5F5E7B37 X2 digeser ke kiri 1 bit : 8BDBB703 X2 Dikombinasikan dengan PHT menhasilkan F0 : 4057377B Penggabungan X2,X3,X0,X1 Setelah fungsi F : 11 : 4057377B5F5E7B3767948DCC1D3E3B56 g. Round 10 : X2 Melaui Fungsi g Menghasilkan T0 : C5E79E0B X3 Melaui Fungsi g Menghasilkan T1 : A8292804 X1 Dikombinasikan dengan PHT menghasilkan F1 : 652018B5 X1 digeser ke kanan 1 bit : B2900C5A X0 digeser ke kiri 1 bit : CF291B98 X0 Dikombinasikan dengan PHT menhasilkan F0 : 2971B6B9 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 10 : 4057377B5F5E7B372971B6B9B2900C5A h. Round 9 : X0 Melaui Fungsi g Menghasilkan T0 : 746A9D02 X1 Melaui Fungsi g Menghasilkan T1 : CF43EB92 X3 Dikombinasikan dengan PHT menghasilkan F1 : FC25C71E X3 digeser ke kanan 1 bit : 7E12E38F X2 digeser ke kiri 1 bit : 80AE6EF6 X2 Dikombinasikan dengan PHT menhasilkan F0 : 69587D0C Penggabungan X2,X3,X0,X1 Setelah fungsi F : 9 : 69587D0C7E12E38F2971B6B9B2900C5A
B-17
i. Round 8: X2 Melaui Fungsi g Menghasilkan T0 : AC14D254 X3 Melaui Fungsi g Menghasilkan T1 : C561C6CC X1 Dikombinasikan dengan PHT menghasilkan F1 : 1BB8B9CA X1 digeser ke kanan 1 bit : 0DDC5CE5 X0 digeser ke kiri 1 bit : 52E36D72 X0 Dikombinasikan dengan PHT menhasilkan F0 : A2D6149D Penggabungan X2,X3,X0,X1 Setelah fungsi F : 8 : 69587D0C7E12E38FA2D6149D0DDC5CE5 j. Round 7 : X0 Melaui Fungsi g Menghasilkan T0 : 7FDACBDD X1 Melaui Fungsi g Menghasilkan T1 : DE148205 X3 Dikombinasikan dengan PHT menghasilkan F1 : D3E1D2B5 X3 digeser ke kanan 1 bit : E9F0E95A X2 digeser ke kiri 1 bit : D2B0FA18 X2 Dikombinasikan dengan PHT menhasilkan F0 : 06590704 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 7 : 06590704E9F0E95AA2D6149D0DDC5CE5 k. Round 6 : X2 Melaui Fungsi g Menghasilkan T0 : A8528C8F X3 Melaui Fungsi g Menghasilkan T1 : 6E8B1385 X1 Dikombinasikan dengan PHT menghasilkan F1 : D73274AF X1 digeser ke kanan 1 bit : EB993A57 X0 digeser ke kiri 1 bit : 45AC293B X0 Dikombinasikan dengan PHT menhasilkan F0 : 31CF52DF Penggabungan X2,X3,X0,X1 Setelah fungsi F : 6 : 06590704E9F0E95A31CF52DFEB993A57 l. Round 5 : X0 Melaui Fungsi g Menghasilkan T0 : 2FC1EB54 X1 Melaui Fungsi g Menghasilkan T1 : 49AE4B49 X3 Dikombinasikan dengan PHT menghasilkan F1 : 95E4700D
B-18
X3 digeser ke kanan 1 bit : CAF23806 X2 digeser ke kiri 1 bit : 0CB20E08 X2 Dikombinasikan dengan PHT menhasilkan F0 : E29788DF Penggabungan X2,X3,X0,X1 Setelah fungsi F : 5 : E29788DFCAF2380631CF52DFEB993A57 m. Round 4 : X2 Melaui Fungsi g Menghasilkan T0 : 4A147BA8 X3 Melaui Fungsi g Menghasilkan T1 : 52566CB8 X1 Dikombinasikan dengan PHT menghasilkan F1 : 0D0B531C X1 digeser ke kanan 1 bit : 0685A98E X0 digeser ke kiri 1 bit : 639EA5BE X0 Dikombinasikan dengan PHT menhasilkan F0 : 86D3169C Penggabungan X2,X3,X0,X1 Setelah fungsi F : 4 : E29788DFCAF2380686D3169C0685A98E n. Round 3 : X0 Melaui Fungsi g Menghasilkan T0 : 71E69536 X1 Melaui Fungsi g Menghasilkan T1 : AD139687 X3 Dikombinasikan dengan PHT menghasilkan F1 : 54EA030B X3 digeser ke kanan 1 bit : AA750185 X2 digeser ke kiri 1 bit : C52F11BF X2 Dikombinasikan dengan PHT menhasilkan F0 : AFD51BC5 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 3 : AFD51BC5AA75018586D3169C0685A98E o. Round 2 : X2 Melaui Fungsi g Menghasilkan T0 : 20B9BA84 X3 Melaui Fungsi g Menghasilkan T1 : EC2583AD X1 Dikombinasikan dengan PHT menghasilkan F1 : B9332638 X1 digeser ke kanan 1 bit : 5C99931C X0 digeser ke kiri 1 bit : 0DA62D39 X0 Dikombinasikan dengan PHT menhasilkan F0 : ADE26149
B-19
Penggabungan X2,X3,X0,X1 Setelah fungsi F : 2 : AFD51BC5AA750185ADE261495C99931C p. Round 1 : X0 Melaui Fungsi g Menghasilkan T0 : 2247F694 X1 Melaui Fungsi g Menghasilkan T1 : A55A5E46 X3 Dikombinasikan dengan PHT menghasilkan F1 : 903D872B X3 digeser ke kanan 1 bit : C81EC395 X2 digeser ke kiri 1 bit : 5FAA378B X2 Dikombinasikan dengan PHT menhasilkan F0 : C1884193 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 1 : C1884193C81EC395ADE261495C99931C 4. Setelah Input Whitening : 726968686D6861726D736942616C6C69 5. Plainteks : 4269736D696C6C61686869727261686D
Blok 2 - D1 92 26 67 92 96 428E 8F 58 59 BB 5C 6D 09 B9 1. Pecah kedalam 4 byte masing – masing 32 bit C1 : 672692D1 C2 : 8E429692 C3 : BB59588F C4 : B9096D5C 2. Setelah Input Output Whitening : 9CFBFF62A358F2C3D41043345F970A9E X2 : 9CFBFF62 X3 : A358F2C3 X0 : D4104334 X1 : 5F970A9E 3. Setelah melalui fungsi F : a. Round 16 : X2 Melaui Fungsi g Menghasilkan T0 : BDB6E01F
B-20
X3 Melaui Fungsi g Menghasilkan T1 : 8BABF508 X1 Dikombinasikan dengan PHT menghasilkan F1 : 7665503F X1 digeser ke kanan 1 bit : BB32A81F X0 digeser ke kiri 1 bit : A8208669 X0 Dikombinasikan dengan PHT menhasilkan F0 : D3AF53A8 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 9CFBFF62A358F2C3D3AF53A8BB32A81F
b. Round 15 : X0 Melaui Fungsi g Menghasilkan T0 : 21F072C4 X1 Melaui Fungsi g Menghasilkan T1 : A1A7197A X3 Dikombinasikan dengan PHT menghasilkan F1 : E9230390 X3 digeser ke kanan 1 bit : 749181C8 X2 digeser ke kiri 1 bit : 39F7FEC5 X2 Dikombinasikan dengan PHT menhasilkan F0 : D198729E Penggabungan X2,X3,X0,X1 Setelah fungsi F : D198729E749181C8D3AF53A8BB32A81F
c. Round 14 : X2 Melaui Fungsi g Menghasilkan T0 : B1D57B68 X3 Melaui Fungsi g Menghasilkan T1 : 34D44FE6 X1 Dikombinasikan dengan PHT menghasilkan F1 : 9231FB28 X1 digeser ke kanan 1 bit : 4918FD94 X0 digeser ke kiri 1 bit : A75EA751 X0 Dikombinasikan dengan PHT menhasilkan F0 : 5B872C6B Penggabungan X2,X3,X0,X1 Setelah fungsi F : D198729E749181C85B872C6B4918FD94
d. Round 13 : X0 Melaui Fungsi g Menghasilkan T0 : 843A134B X1 Melaui Fungsi g Menghasilkan T1 : F9956196
B-21
X3 Dikombinasikan dengan PHT menghasilkan F1 : A0039B82 X3 digeser ke kanan 1 bit : 5001CDC1 X2 digeser ke kiri 1 bit : A330E53D X2 Dikombinasikan dengan PHT menhasilkan F0 : F75BF944 Penggabungan X2,X3,X0,X1 Setelah fungsi F : F75BF9445001CDC15B872C6B4918FD94
e. Round 12 : X2 Melaui Fungsi g Menghasilkan T0 : 3A67C4AF X3 Melaui Fungsi g Menghasilkan T1 : C6FAB4EC X1 Dikombinasikan dengan PHT menghasilkan F1 : E7E6A164 X1 digeser ke kanan 1 bit : 73F350B2 X0 digeser ke kiri 1 bit : B70E58D6 X0 Dikombinasikan dengan PHT menhasilkan F0 : A784D985 Penggabungan X2,X3,X0,X1 Setelah fungsi F : F75BF9445001CDC1A784D98573F350B2
f. Round 11 : X0 Melaui Fungsi g Menghasilkan T0 : 688931A4 X1 Melaui Fungsi g Menghasilkan T1 : 948D110B X3 Dikombinasikan dengan PHT menghasilkan F1 : 297D0482 X3 digeser ke kanan 1 bit : 14BE8241 X2 digeser ke kiri 1 bit : EEB7F289 X2 Dikombinasikan dengan PHT menhasilkan F0 : 6047FB26 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 6047FB2614BE8241A784D98573F350B2
g. Round 10 : X2 Melaui Fungsi g Menghasilkan T0 : 25D8EBAD X3 Melaui Fungsi g Menghasilkan T1 : 135BECC0 X1 Dikombinasikan dengan PHT menghasilkan F1 : DD87AA4F
B-22
X1 digeser ke kanan 1 bit : EEC3D527 X0 digeser ke kiri 1 bit : 4F09B30B X0 Dikombinasikan dengan PHT menhasilkan F0 : FE750C74 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 6047FB2614BE8241FE750C74EEC3D527
h. Round 9 : X0 Melaui Fungsi g Menghasilkan T0 : 90A6B739 X1 Melaui Fungsi g Menghasilkan T1 : BC2612A5 X3 Dikombinasikan dengan PHT menghasilkan F1 : 8DC2A6C7 X3 digeser ke kanan 1 bit : C6E15363 X2 digeser ke kiri 1 bit : C08FF64C X2 Dikombinasikan dengan PHT menhasilkan F0 : 339BA308 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 339BA308C6E15363FE750C74EEC3D527
i. Round 8 : X2 Melaui Fungsi g Menghasilkan T0 : 471BFFF3 X3 Melaui Fungsi g Menghasilkan T1 : FB35442A X1 Dikombinasikan dengan PHT menghasilkan F1 : 411508CC X1 digeser ke kanan 1 bit : 208A8466 X0 digeser ke kiri 1 bit : FCEA18E9 X0 Dikombinasikan dengan PHT menhasilkan F0 : 3DFA3C05 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 339BA308C6E153633DFA3C05208A8466
j. Round 7 : X0 Melaui Fungsi g Menghasilkan T0 : 56B5C21B X1 Melaui Fungsi g Menghasilkan T1 : CA52A8F8 X3 Dikombinasikan dengan PHT menghasilkan F1 : 9BAB263D X3 digeser ke kanan 1 bit : CDD5931E
B-23
X2 digeser ke kiri 1 bit : 67374610 X2 Dikombinasikan dengan PHT menhasilkan F0 : FF345C5D Penggabungan X2,X3,X0,X1 Setelah fungsi F : FF345C5DCDD5931E3DFA3C05208A8466
k. Round 6 : X2 Melaui Fungsi g Menghasilkan T0 : 5EF8160F X3 Melaui Fungsi g Menghasilkan T1 : A7CCC6D4 X1 Dikombinasikan dengan PHT menghasilkan F1 : 249D9C0E X1 digeser ke kanan 1 bit : 124ECE07 X0 digeser ke kiri 1 bit : 7BF4780A X0 Dikombinasikan dengan PHT menhasilkan F0 : 1FBEC0B9 Penggabungan X2,X3,X0,X1 Setelah fungsi F : FF345C5DCDD5931E1FBEC0B9124ECE07
l. Round 5 : X0 Melaui Fungsi g Menghasilkan T0 : 8F321D83 X1 Melaui Fungsi g Menghasilkan T1 : 0CE25AEA X3 Dikombinasikan dengan PHT menghasilkan F1 : AC3979D6 X3 digeser ke kanan 1 bit : 561CBCEB X2 digeser ke kiri 1 bit : FE68B8BB X2 Dikombinasikan dengan PHT menhasilkan F0 : EEA1701C Penggabungan X2,X3,X0,X1 Setelah fungsi F : EEA1701C561CBCEB1FBEC0B9124ECE07
m. Round 4 : X2 Melaui Fungsi g Menghasilkan T0 : 3738C4B3 X3 Melaui Fungsi g Menghasilkan T1 : BD8FD232 X1 Dikombinasikan dengan PHT menghasilkan F1 : B867B34D X1 digeser ke kanan 1 bit : DC33D9A6 X0 digeser ke kiri 1 bit : 3F7D8172
B-24
X0 Dikombinasikan dengan PHT menhasilkan F0 : 02D6E0D5 Penggabungan X2,X3,X0,X1 Setelah fungsi F : EEA1701C561CBCEB02D6E0D5DC33D9A6
n. Round 3 : X0 Melaui Fungsi g Menghasilkan T0 : 6DD84673 X1 Melaui Fungsi g Menghasilkan T1 : FEA79683 X3 Dikombinasikan dengan PHT menghasilkan F1 : 6B2D50A9 X3 digeser ke kanan 1 bit : B596A854 X2 digeser ke kiri 1 bit : DD42E039 X2 Dikombinasikan dengan PHT menhasilkan F0 : 653D5B8A Penggabungan X2,X3,X0,X1 Setelah fungsi F : 653D5B8AB596A85402D6E0D5DC33D9A6
o. Round 2 : X2 Melaui Fungsi g Menghasilkan T0 : FADFB8A4 X3 Melaui Fungsi g Menghasilkan T1 : B695DB15 X1 Dikombinasikan dengan PHT menghasilkan F1 : F28EE500 X1 digeser ke kanan 1 bit : 79477280 X0 digeser ke kiri 1 bit : 05ADC1AA X0 Dikombinasikan dengan PHT menhasilkan F0 : 41776052 Penggabungan X2,X3,X0,X1 Setelah fungsi F : 653D5B8AB596A8544177605279477280
p. Round 1 : X0 Melaui Fungsi g Menghasilkan T0 : 13A064B5 X1 Melaui Fungsi g Menghasilkan T1 : F33ADEC0 X3 Dikombinasikan dengan PHT menghasilkan F1 : 72F75D97 X3 digeser ke kanan 1 bit : B97BAECB X2 digeser ke kiri 1 bit : CA7AB714 X2 Dikombinasikan dengan PHT menhasilkan F0 : 1721D3A7
B-25
Penggabungan X2,X3,X0,X1 Setelah fungsi F : 1721D3A7B97BAECB4177605279477280 4. Setelah Input Whitening : A4C0FA5C1C0D0C2C81E6685944B28DF5 5. Plainteks Sebelum CBC : 5968E681F58DB2445CFAC0A42C0C0D1C 6. Setelah CBC : 616E6E6972726168696D000000000000 Berdasarkan hasil dekripsi blok 1 dan blok 2, maka plaintext hasil dekripsi adalah : 42 69 73 6D 69 6C 6C 61 68 68 69 72 72 61 68 6D 61 6E 69 72 72 61 68 69 6D
LAMPIRAN C PENGUJIAN TAMBAHAN C.1 Pengujian Panjang Pesan Enkripsi dan Dekripsi Pada pengujian ini akan diujikan panjang karakter yang dapat terenkripsi maupun terdekripsi, guna mengetahui panjang pesan maksimal yang dapat dikirim dan hasil dari enkripsi setiap karakter yang dikirim. Berikut ialah tabel pengujian panjang pesan : Tabel C.1 Pengujian Panjang Pesan Enkripsi dan Dekripsi
Plainteks
Jumlah
Chiperteks
Jumlah
karakter
dalam
Karakter
Plainteks
Hexa
Chiperteks
Hasil Dekripsi
Keterangan
Informasi
Berhasil Didekripsi
EB266C520A06B11EDC8 Jurusan Teknik Informatika
26
2BC5957B0978A780D21B
64
(2 blok)
8FFBC884217B1D643408
(2 blok)
6B784
Assalamu’alaikum
17 kata
EDA37340A39C88DC8A
(1 blok)
A1291EDF1F0E14
32
Assalamu’alaikum
Berhasil Didekripsi
(2 blok)
BE8F9AAF952052288789 FEF402DBD485753FB52
Segala yang telah
BCBDB02157300A885B8
terjadi memiliki
EDDAE353672BA01B1C8
banyak makna setelahnya.
cobaan melainkan sesuai dengan kesanggupan hambaNya. Sementara.
setelahnya. Kehidupan
94D7A79D8E8695DDED5 199
BBA2E3A5FF0B40715AD
416
(13 Blok)
A0731095F9512E1E959B
(13 blok)
bersifat Allah tidak akan memberikan
memiliki banyak makna
E3A26D8F4F9C0F81FBC
Kehidupan di dunia hanyalah ujian dan
Segala yang telah terjadi
2D0601A3FC8E3746CED
1837D08B95F42EB935FF C922F3AFB9ECAEDFFD 2BCC35CA0E8FB16CED
di dunia hanyalah ujian dan bersifat Allah tidak
Berhasil Didekripsi
akan memberikan cobaan melainkan sesuai dengan kesanggupan hambaNya. Sementara.
404D74DC9F380FC4EEE 7C7AD6A33AC5DAB7A B0CD0BD0019B288652E 5FA1DAFC6EB5BE85257 C-2
026B86F30D661F431A0C FC21D257CB6141B58FE6 19115D4B585F77709629F A359C0DBE47DD33A199 A9A4C4D7516F2BFDB35 7E45D2E5ACCEE9 ini tes panjang teks 1000 . . .(ulangi
ini tes panjang teks 1000 3120
ingga total kata 3120) ini tes
(195 blok)
055CF16E3BA2A D2E6E6560673
…
6240 (195 blok)
. . .(ulangi ingga total kata 3120) ini tes
Berhasil di dekripsi
panjang teks 1000
panjang teks 1000 ini tes panjang teks 1000 . . .(ulangi
4000
ingga total kata 4000) ini tes
(250 blok)
Data tidak terkirim ke database.
-
Pesan tidak sampai kepenerima
Tidak Berhasil di dekripsi
panjang teks 1000
C-3
C.2 Pengujian Keamanan Pesan Pengujian keamanan pesan dilakukan dengan sniffing menggunakan software WireShark. Wireshark merupakan salah satu tools atau aplikasi Network Analyzer atau Penganalisa Jaringan. Penganalisaan Kinerja Jaringan itu dapat melingkupi berbagai hal, mulai dari proses menangkap paket-paket data atau informasi yang lewat dalam jaringan yang sama. Pada pengujian ini laptop membuat jaringan wifi dengan menggunakan software Connectify. Kemudian dua buah handphone melakukan chatting dengan jaringan wifi tersebut. Pada waktu yang sama laptop melakukan sniffing dengan software wireshark. Hasil dari pengujian menggunakan wireshark ialah dapat ditangkap chiperteks dari teks yang dikirim. Berikut ialah hasil print screen hasiL sniffing menggunakan wireshark : Pengirim : Budi Penerima : Desi Pesan : Hai Chiperteks : 8866AF508B2727B659895755B3C3B9E2
C-4
Gambar C.1 Hasil pengujian keamanan pesan dengan Wireshark.
C-5
LAMPIRAN D HASIL IMPLEMENTASI
D.1
Implementasi Unjuk Kerja Aplikasi pada Perangkat Android Implementasi unjuk kerja pada perangkat Android merupakan tahap unjuk
kerja aplikasi yang telah dibangun langsung di perangkat Android. Implementasi kali ini menggunakan Emulator.
D.1.1. Halaman Registrasi Aplikasi Secure Chatting Gambar D.1 dibawah ini menampilkan halaman registrasi aplikasi Secure Chatting.
Gambar D.1 Implementasi Antar Muka Registrasi
D-1
Pengguna baru dapat melakukan registrasi dengan mengisi data name, email, nickname, password dan mengupload foto. Saat tombol register di klik maka sistem akan melakukan validasi apakah data yang dimasukkan telah terdaftar atau belum, jika data telah terdaftar sebelumnya akan muncul pesan pemberitahuan gagal registrasi, dan jika data yang dimasukkan belum terdaftar sebelumnyamaka data akan dikirim ke database dan pengguna akan mendapatkan pesan sukses melakukan registrasi. Setelah terdaftar di aplikasi Secure Chatting, maka pengguna bisa menggunakan aplikasi dengan maemilih menu login.
D.1.2. About Gambar D.2 dibawah ini menampilkan halaman service yang berjalan ketika menu Start Service di pilih.
Gambar D.2 Implementasi Antar Muka About Gambar D.2
adalah tampilan antar muka about padaa plikasi Secure
Chatting yang menampilkan informasi mengenai aplikasi.
D-2
D.1.3 My Profil Gambar D.3 dibawah ini merupakan halaman my profil yang dapat dipilih setelah mengklik menu “My Profil” pada home.
Gambar D.3 Implementasi halaman my profil
D-3
LAMPIRAN E TABEL ASCII
(Sumber: http://ascii-table.com/conversions.php)
(Sumber: http://ascii-table.com/conversions.php)
E-2
(Sumber: http://www.aubraux.com/design/ascii-table.php)
E-3
(Sumber: http://www.aubraux.com/design/ascii-table.php)
E-4
(Sumber:http://wwweng.uwyo.edu/electrical/research/FroshECE/Microp/Micropr ocessorsPORTHandout.pdf)
E-5
LAMPIRAN F TABEL KEBENARAN
Tabel F.1 Tabel Kebenaran
X
Y
1
OPERASI AND
OR
XOR
XNOR
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
(Sumber: http://www.tutorvista.com/math/binary-truth-table)
F -1