PENERAPAN ALGORITMA AES : RIJNDAEL DALAM PENGENKRIPSIAN DATA RAHASIA

dokumen-dokumen yang mirip
Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

BAB I PENDAHULUAN. Universitas Sumatera Utara

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD (AES)

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

BAB 2 TINJAUAN PUSTAKA

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

BAB 2 LANDASAN TEORI


Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

BAB II LANDASAN TEORI

Advanced Encryption Standard (AES)

Algoritma AES (Advanced Encryption Standard) dan Penggunaannya dalam Penyandian Pengompresian Data

BAB III ANALISA MASALAH DAN PERANCANGAN

TINJAUAN PUSTAKA. Kriptografi

BAB 2 LANDASAN TEORI

LAMPIRAN A ALGORITMA AES 128

IMPLEMENTASI ALGORITMA KRIPTOGRAFI AES UNTUK ENKRIPSI DAN DEKRIPSI

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom

MENGENAL PROSES PERHITUNGAN ENKRIPSI MENGGUNAKAN ALGORITMA KRIPTOGRAFI ADVANCE ENCRYPTION STANDARD(AES) RIJDNAEL

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

BAB II LANDASAN TEORI

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

Algoritma Enkripsi Baku Tingkat Lanjut

IMPLEMENTASI KRIPTOGRAFI MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDAR (AES) UNTUK PENGAMANAN DATA TEKS

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

Implementasi Algoritma Rot Dan Subtitusional Block Cipher Dalam Mengamankan Data

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

Implementasi Enkripsi File dengan Memanfaatkan Secret Sharing Scheme

Bab 2 Tinjauan Pustaka

Pengenalan Kriptografi

BAB III ANALISIS DAN DESAIN SISTEM

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS

Kriptografi Modern Part -1

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB 2 LANDASAN TEORI

BAB III ANALISA DAN DESAIN SISTEM

Perancangan Aplikasi Kriptografi File Dengan Metode Algoritma Advanced Encryption Standard (AES)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

Kriptografi Kunci Rahasia & Kunci Publik

BAB 2 TINJAUAN PUSTAKA

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

BAB 1 PENDAHULUAN 1.1. Latar belakang

BAB IV HASIL DAN PEMBAHASAN

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISIS DAN DESAIN SISTEM

STUDI DAN IMPLEMENTASI ALGORITMA RIJNDAEL UNTUK ENKRIPSI SMS PADA TELEPON GENGGAM YANG BERBASIS WINDOWS MOBILE 5.0

ALGORITMA KRIPTOGRAFI AES RIJNDAEL

+ Basic Cryptography

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

BAB III ANALISIS DAN DESAIN SISTEM

Pengkajian Metode dan Implementasi AES

Penerapan Matriks dalam Kriptografi Hill Cipher

BAB 1 PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

BAB 1 PENDAHULUAN. khususnya internet sangatlah cepat dan telah menjadi salah satu kebutuhan dari

BAB III ANALISA DAN DESAIN SISTEM. perancangan pembuatan kriptografi Impementasi AES ( Advanced Encyrption

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL


Perancangan Kriptografi Block Cipher 256 Bit Berbasis pada Pola Tuangan Air Artikel Ilmiah

BAB 2 LANDASAN TEORI

Modul Praktikum Keamanan Sistem

Analisa Perbandingan Algoritma Monoalphabetic Cipher Dengan Algoritma One Time Pad Sebagai Pengamanan Pesan Teks

APLIKASI PENGAMAN ISI LAYANAN PESAN SINGKAT PADA TELEPON SELULER BERBASIS J2ME MENGGUNAKAN ALGORITHMA SIMETRI SKRIPSI. Oleh : MIFTAHUL.

SKRIPSI ENKRIPSI TEKS MENGGUNAKAN ALGORITMA TWOFISH

Analisis Performansi Algoritma AES dan Blowfish Pada Aplikasi Kriptografi

(S.2) KRIPTOGRAFI METODA MODULAR MULTIPLICATON-BASED BLOCK CIPHER PADA FILE TEXT

Menggunakan Algoritma Kriptografi Blowfish

BAB I PENDAHULUAN. pesat, hal ini yang menyebabkan munculnya kemajuan teknologi informasi.

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

Algoritma Spiral shifting

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

BAB III ANALISIS DAN PERANCANGAN

BAB II TINJAUAN PUSTAKA

PENGAMANAN FILE GAMBAR PADA PERANGKAT MOBILE ANDROID MENGGUNAKAN METODE STEGANOGRAFI LSB DAN ALGORITMA KRIPTOGRAFI AES SKRIPSI

BAB I PENDAHULUAN 1.1 Latar Belakang

Pengantar Kriptografi

RANCANG BANGUN PROGRAM KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD

ANALISA DAN IMPLEMENTASI ALGORITMA TRIANGLE CHAIN PADA PENYANDIAN RECORD DATABASE

PERANCANGAN APLIKASI KRIPTOGRAPHY ADVANCED ENCRYPTION STANDARD TUGAS AKHIR. Disusun Oleh : DEDY BUDIAWAN NPM

Perancangan dan Implementasi Aplikasi Kriptografi Algoritma AES-128 Pada File Dokumen Artikel Ilmiah

Algoritma Kriptografi Modern (AES, RSA, MD5)

PENERAPAN COMPUTER ASSISTED INSTRUCTION DALAM PEMBELAJARAN PEMAHAMAN ALGORITMA CAESAR CIPHER

PERANCANGAN APLIKASI KRIPTOGRAFI BERLAPIS MENGGUNAKAN ALGORITMA CAESAR, TRANSPOSISI, VIGENERE, DAN BLOK CHIPER BERBASIS MOBILE

PERANCANGAN APLIKASI PENGAMANAN DATA TEKS DENGAN METODE ADVANCED ENCRYPTION STANDARD (AES) DAN METODE END OF FILE (EOF)

PERANCANGAN APLIKASI KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD BERBASIS ANDROID NASKAH PUBLIKASI

Transkripsi:

PENERAPAN ALGORITMA AES : RIJNDAEL DALAM PENGENKRIPSIAN DATA RAHASIA SKRIPSI Oleh: DEDI ALYANTO NIM.1244123 PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK TIME MEDAN 2016

ABSTRAK Data atau informasi merupakan salah satu aset penting bagi suatu entitas maupun individual, oleh karena itu perlindungan orisinalitas suatu data atau informasi dari pihak ketiga menjadi hal yang sangat penting. Banyak algoritma kriptografi diciptakan untuk menjaga kerahasiaan dan keamanan data-data tersebut. Dalam skripsi ini penulis mengaplikasikan algoritma kriptografi Rijndael dalam pengamanan data. Diawali dengan menganalisa cara kerja algoritma Rijndael kemudian merancang aplikasi yang dapat mengenkripsi dan mendekripsi plainteks yang di-input user. Hasil evaluasi memperlihatkan bahwa algoritma Rijndael dapat menghasilkan enkripsi yang tidak dapat dibaca atau dimengerti manusia biasa, dan menghasilkan dekripsi yang sama persis dengan plainteks awal yang di-input user. Kata kunci : Pengamanan data, Kriptografi, Algoritma Rijndael, AES. i

ABSTRACT Data or information is an significant asset for some entity or individual, thus the protection of data originality from third party is becoming an important matter. Many cryptography algorithm were created to secure the secrecy and the safety of the data. In this final essay, the writer use Rijndael algorithm in securing the data. First, we analyze how the algorithm works, then design a program which can encrypt and decrypt the plaintext that user inserted. The evaluation result showed that Rijndael algorithm can generate an encryption which can not be read or understood by normal people, and an decryption which is the same as the initial plaintext that user inserted. Keywords : Data securing, Cryptography, Rijndael Algorithm, AES. ii

KATA PENGANTAR Pertama sekali penulis mengucapkan puji dan syukur kepada Tuhan Yang Maha Esa dan kedua orang tua penulis yang telah memberikan dukungan dan semangat secara mental sehingga penulis dapat menyelesaikan skripsi ini dengan baik, atas rahmat-nya maka penulis dapat mengatasi hambatan yang ada. Skripsi ini merupakan salah satu persyaratan dalam penyelesaian studi program Teknik Informatika pada STMIK TIME Medan. Pada penulisan skripsi ini penulis mengambil judul PENERAPAN ALGORITMA AES : RIJNDAEL DALAM PENGENKRIPSIAN DATA RAHASIA. Penulis berharap agar skripsi yang telah dikerjakan ini dapat membawa manfaat bagi berbagai pihak. Dalam menyelesaikan skripsi ini, penulis mendapat banyak bantuan dari berbagai pihak. Oleh karena itu, melalui kesempatan yang baik ini, penulis ingin berterimakasih kepada : 1. Ibu Feriani Astuti, S.Kom, M.Kom, selaku Dosen Pembimbing I yang telah membantu dan membimbing penulis dalam menyelesaikan skripsi ini. 2. Bapak Hendri, S.Kom, M.Kom, selaku Dosen Pembimbing II dan Ketua Program Studi Teknik Informatika STMIK TIME Medan yang telah membantu dan membimbing penulis dalam menyelesaikan skripsi ini. 3. Bapak Simon Kangga Lee, selaku KetuaYayasan STMIK TIME Medan. 4. Bapak Prof. Chainur Arrasyid, S.H, selaku Ketua BPH STMIK TIME Medan. iii

5. Bapak Prof. Harlem Marpaung, Ph.D, selaku Ketua STMIK TIME Medan. 6. Bapak Jackri Hendrik, S.T, M.Kom, selaku Puket I STMIK TIME Medan. 7. Seluruh Staff dan Pegawai di PDAM Tirtanadi Cabang Medan Denai. 8. Kedua orang tua saya yang senantiasa mendukung dan mendoakan saya. 9. Seluruh teman-teman saya khususnya di STMIK TIME yang telah membantu terselesaikannya skripsi ini. Namun sebagai seorang mahasiswa yang masih dan harus terus belajar, penulis menyadari keterbatasan yang ada. Jika terdapat kekurangan dan ketidaksempurnaan pada skripsi ini, mohon diberikan saran dan kritik serta masukan untuk perkembangan dan kemajuan selanjutnya. Medan, April 2016 Penulis Dedi Alyanto iv

DAFTAR ISI ABSTRAK... i ABSTRACT... ii KATA PENGANTAR... iii DAFTAR ISI... v DAFTAR TABEL... viii DAFTAR GAMBAR... ix DAFTAR LAMPIRAN... xi BAB I PENDAHULUAN... 1 1.1 Latar Belakang Masalah... 1 1.2 Identifikasi Masalah... 3 1.3 Batasan Masalah... 3 1.4 Tujuan dan Manfaat Penelitian... 4 1.5 Metode Penelitian... 5 1.5.1 Metode Pengumpulan Data... 5 1.5.2 Analisis Sistem... 5 1.5.3 Perancangan Sistem... 6 1.5.4 Uji Coba Sistem... 7 1.5.5 Sistematika Penulisan... 7 BAB II LANDASAN TEORI... 9 2.1 Tinjauan Pustaka... 9 v

2.2 Teori Dasar Kriptografi... 10 2.3 Sejarah Kriptografi... 11 2.4 Algoritma Kriptografi... 12 2.4.1 Algoritma Simetri Kriptografi... 13 2.4.2 Algoritma Asimetri Kriptografi... 14 2.4.3 Fungsi Hash... 16 2.5 Teknik Dasar Kriptografi... 16 2.5.1 Kriptografi Klasik... 16 2.5.2 Kriptografi Modern... 18 2.6 Algoritma Rijndael... 19 BAB III ANALISIS DAN PERANCANGAN... 22 3.1 Analisis... 22 3.1.1 Analisis Kebutuhan... 22 3.1.1.1 Analisis Kebutuhan Fungsional... 22 3.1.1.2 Analisis Kebutuhan Non-Fungsional... 23 3.1.2 Analisis Proses... 23 3.1.2.1 Transformasi SubBytes... 24 3.1.2.2 Transformasi ShiftRows... 25 3.1.2.3 Transformasi MixColumns... 26 3.1.2.4 Transformasi AddRoundKey... 28 3.1.2.5 Ekspansi Kunci... 29 3.1.2.6 Simulasi Proses Enkripsi... 31 3.2 Perancangan... 37 3.2.1 Perancangan Sistem... 38 vi

3.2.2 Perancangan Tampilan... 38 BAB IV HASIL DAN PEMBAHASAN... 41 4.1 Hasil... 41 4.2 Pembahasan... 49 BAB V KESIMPULAN DAN SARAN... 54 5.1 Kesimpulan... 54 5.2 Saran... 54 DAFTAR PUSTAKA... 55 LAMPIRAN vii

DAFTAR TABEL Tabel 1.1 Perancangan Jadwal Penelitian... 5 Tabel 2.1 Representasi Bit, Hexadecimal dan Decimal... 18 Tabel 2.2 Operasi XOR... 18 Tabel 3.1 S-Box Rijndael... 24 Tabel 4.1 Tabel Pengujian Durasi Enkripsi terhadap Panjang Plainteks dan Kunci. 53 viii

DAFTAR GAMBAR Gambar 1.1 Flowchart Perancangan Aplikasi... 6 Gambar 2.1 Scytale... 12 Gambar 2.2 Algoritma Simetri Kriptografi... 13 Gambar 2.3 Algoritma Asimetri Kriptografi... 14 Gambar 2.4 Diagram Proses Enkripsi dan Proses Dekripsi... 21 Gambar 3.1 Transformasi SubByte dengan S-Box... 24 Gambar 3.2 Proses SubBytes... 25 Gambar 3.3 Hasil SubBytes... 25 Gambar 3.4 Transformasi ShitRows... 25 Gambar 3.5 Proses Transformasi ShitRows... 26 Gambar 3.6 Matriks Perkalian MixColumns... 27 Gambar 3.7 Transformasi MixColumns... 27 Gambar 3.8 Hasil dari ShiftRows... 27 Gambar 3.9 Operasi MixColumns... 27 Gambar 3.10 Hasil Keseluruhan MixColumns... 28 Gambar 3.11 Transformasi AddRoundKey... 28 Gambar 3.12 Proses Transformasi AddRoundKey... 29 Gambar 3.13 Proses Ekspansi Kunci... 29 Gambar 3.14 Proses Algoritma Rijndael... 30 ix

Gambar 3.15 Permodelan Sistem dalam Activity Diagram... 38 Gambar 3.16 Rancangan Tampilan Form Enkripsi... 39 Gambar 3.17 Rancangan Tampilan Form Dekripsi... 40 Gambar 4.1 Tampilan Form Login... 41 Gambar 4.2 Tampilan Utama... 42 Gambar 4.3 Tampilan Program Enkripsi... 42 Gambar 4.4 Tampilan Program Enkripsi saat Muncul Pesan Warning (1)... 43 Gambar 4.5 Tampilan Program Enkripsi saat Muncul Pesan Warning (2)... 45 Gambar 4.6 Tampilan Program Enkripsi saat Proses Enkripsi Selesai... 45 Gambar 4.7 Tampilan Program Dekripsi... 46 Gambar 4.8 Tampilan Program Dekripsi saat Muncul Pesan Warning... 47 Gambar 4.9 Tampilan Program Dekripsi saat Proses Dekripsi Selesai... 48 Gambar 4.10 Tampilan Program Dekripsi saat Salah input Parameter... 49 Gambar 4.11 Hasil Enkripsi dan Dekripsi dengan Plainteks Angka... 50 Gambar 4.12 Hasil Enkripsi dan Dekripsi dengan Plainteks Simbol... 51 Gambar 4.13 Hasil Enkripsi dan Dekripsi dengan Plainteks Multi Karakter... 52 x

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Data merupakan salah satu aset penting dalam kelangsungan hidup perusahaan, instansi - instansi pemerintahan, institusi - institusi pendidikan bahkan untuk pribadi. Penyimpanan data memerlukan berbagai macam pertimbangan, terutama dari segi keamanannya dan kerahasiaannya. Pada zaman sekarang masalah keamanan dan kerahasiaan data merupakan hal yang harus diperhatikan dalam komunikasi menggunakan komputer. Sudah sering terjadi kasus pembocoran data rahasia oleh pihak pihak tidak berwenang seperti hacker maupun cracker yang mengakibatkan kerugian besar bagi sang pemilik data. Hal ini tentunya akan mengganggu para pemilik data, dan juga pihak yang ingin berkomunikasi dalam rangka bertukar informasi baik kepentingan pribadi maupun kelompok. Sehingga dapat dikatakan bahwa perlindungan orisinalitas suatu data atau informasi menjadi kebutuhan yang penting dimasa sekarang dan seterusnya. Usaha perlindungan data dapat dilakukan dengan berbagai cara, salah satunya dengan mengaplikasikan bidang kriptografi. Dengan menggunakan kriptografi, data atau informasi dienkripsi menjadi suatu bentuk yang tidak bisa dibaca atau dimengerti isinya. Meskipun suatu data yang telah dienkripsi dibaca oleh pihak ketiga, mereka tidak akan mengerti isinya sehingga informasi pribadi pemilik data tetap terjaga dan si pemilik data pun tidak akan mengalami kerugian. 1

2 Data Encryption Standard (DES) adalah sebuah algoritma enkripsi sandi blok kunci simetrik dengan ukuran blok 64-bit dan ukuran kunci 56-bit. DES untuk saat ini sudah dianggap tidak aman lagi. Penyebab utamanya adalah ukuran kuncinya yang sangat pendek (56-bit). Sejak beberapa tahun yang lalu DES telah digantikan oleh Advanced Encryption Standard (AES). Advanced Encryption Standard (AES) merupakan standar enkripsi dengan kunci-simetris yang diadopsi oleh pemerintah Amerika Serikat. Standar ini terdiri atas 3 blok cipher, yaitu AES-128, AES-192 and AES-256, yang diadopsi dari koleksi yang lebih besar yang awalnya diterbitkan sebagai Rijndael. Masingmasing cipher memiliki ukuran 128-bit, dengan ukuran kunci masing-masing 128, 192, dan 256 bit. Algoritma kriptografi bernama Rijndael yang didesain oleh Vincent Rijmen dan Joan Daemen asal Belgia merupakan pemenang kontes algoritma kriptografi pengganti Data Encryption Standard (DES) yang diadakan oleh NIST (National Institutes of Standards and Technology) (en.wikipedia.org, 2015). Sebelumnya pada tahun 1997 NIST mengeluarkan AES untuk menggantikan DES karena DES dianggap telah usai masa berlakunya karena faktor keamanan yang disebabkan oleh berkembang pesatnya kecepatan komputer. Maka berdasarkan uraian diatas maka akan dilakukan penelitian tugas akhir yang menerapkan algoritma Rijndael dalam pengamanan data dengan judul, Penerapan Algoritma AES : Rijndael dalam Pengenkripsian Data Rahasia.

3 1.2 Identifikasi Masalah Berdasarkan latar belakang di atas, permasalahan yang ingin diselesaikan adalah bagaimana menerapkan algoritma Rijndael dalam pengenkripsian data rahasia sehingga data yang telah dienkripsi tidak dapat dibaca atau dimengerti oleh pihak lain sedangkan hasil dekripsi dapat sesuai dengan pesan atau data semula tanpa ada satu karakterpun yang berbeda baik huruf kecil maupun huruf besar. Contoh : pesan awal (plainteks) : RIJNDAEL, pesan setelah dienkripsi :!@#eqwe!12 dan pesan setelah didekripsi : RIJNDAEL. Apabila pesan setelah didekripsi menghasilkan : RIjNdaeL maka hasil tersebut dianggap salah karena beda huruf kecil dan besar jika dibandingkan dengan pesan awal. 1.3 Batasan Masalah Agar penelitian ini terarah dan tidak menyimpang dari permasalahan yang telah dirumuskan diatas, maka ruang lingkup pembahasannya dibatasi antara lain: 1. Perancangan aplikasi menggunakan Visual Studio 2010 dengan bahasa pemrograman VB.NET. 2. Hasil input-an pada aplikasi berupa plainteks dengan output cipherteks atau sebaliknya. 3. Input-an plainteks dapat terdiri dari karakter angka, huruf maupun simbol atau kombinasi dari ketiga variasi karakter tersebut. 4. Aplikasi terdiri dari satu textbox kunci, satu textbox enkripsi, satu textbox dekripsi dan dua tombol eksekusi.

4 5. Textbox enkripsi menerima input-an plainteks kemudian mengkonversi plainteks tersebut menjadi cipherteks sedangkan textbox dekripsi menerima input-an berupa cipherteks dan mengkonversikannya menjadi plainteks kembali. 6. Sebelum penkonversian antara plainteks menjadi cipherteks (atau sebaliknya) dimulai, perlu diisi textbox kunci terlebih dahulu kemudian dilanjutkan dengan menekan tombol eksekusi enkripsi atau tombol eksekusi dekripsi. 7. Kunci yang digunakan pada proses pengenkripsian maupun pengdekripsian data adalah dengan panjang 128 bit, 192 bit dan 256 bit. 1.4 Tujuan dan Manfaat Penelitian Tujuan penyusunan skripsi ini adalah menghasilkan sebuah aplikasi yang dapat melakukan enkripsi dan dekripsi data dengan menggunakan algoritma Rijndael yang akan digunakan untuk mengamankan data penting sebuah perusahaan, instansi pemerintahan, institusi pendidikan maupun pribadi. Manfaat dari penyusunan skripsi ini yaitu memberikan pengetahuan dan wawasan kepada perusahaan, instansi pemerintahan, institusi pendidikan dan pembaca tentang cara kerja algoritma Rijndael yang digunakan pada proses pengamanan data.

5 1.5 Metode Penelitian Penelitian dilaksanakan dalam jangka waktu April 2015 sampai dengan Agustus 2015 dan bertempat di PDAM Tirtanadi Cabang Medan Denai. Adapun jadwal penelitian dapat dilihat pada tabel 1.1. Bahan penelitian yang digunakan yaitu berupa jurnal ilmiah serta buku buku yang berhubungan dengan judul penelitian. Tabel 1.1 Perancangan Jadwal Penelitian Kegiatan Pengumpulan Data Analisa Sistem Perancangan Sistem Pembangunan November 2015 Desember 2015 Januari 2016 Febuari 2016 Maret 2016 April 2016 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Uji Coba Sistem Pembuatan Laporan 1.5.1 Metode Pengumpulan Data Metode yang digunakan dalam menyusun skripsi ini adalah metode studi pustaka. Referensi - referensi yang dipergunakan berupa jurnal, video tutorial, buku perpustakaan dan referensi dari internet yang berhubungan dengan kriptografi. 1.5.2 Analisis Sistem Selama pembangunan aplikasi ini berlangsung ada beberapa analisis yang dilakukan yaitu :

6 1. Analisis sistem kerja algoritma Rijndael, pada tahap ini penulis melakukan pengamatan, mempelajari dan memahami sistem kerja algoritma Rijndael sehingga diketahui cara enkripsi dan dekripsi pada algoritma Rijndael. 2. Analisis kebutuhan fungsional dan non fungsional sistem, dimana hasil dari analisis ini akan diketahui fitur mana saja yang harus dipenuhi oleh program yang akan dibangun serta fitur tambahan yang terdapat pada program tersebut. 1.5.3 Perancangan Sistem Aplikasi yang dirancang mempunyai dua textbox masing - masing adalah textbox enkripsi dan dekripsi. Textbox enkripsi menerima input-an berupa plaintext dan output berupa ciphertext. Selanjutnya copy paste output dari textbox enkripsi ke textbox dekripsi untuk mengubah ciphertext tersebut kembali menjadi plaintext yang semula. Mulai User menginput pesan rahasia yang akan dienkripsikan pada textbox yang disediakan untuk pengenkripsian Pesan yang diinput tadi akan mengalami proses pengenkripsian yang meliputi beberapa perhitungan matematika Proses pengenkripsian diatas menghasilkan output berupa cipherteks, atau pesan yang telah dienkripsikan User kemudian meng-copy paste hasil enkripsi tersebut ke textbox yang disediakan untuk pengdekripsian Pesan yang di-paste tadi akan mengalami proses pengdekripsian yang meliputi beberapa perhitungan matematika Proses pengdekripsian diatas menghasilkan output berupa plainteks, atau pesan yang sesungguhnya yang bisa dimengerti Selesai Gambar 1.1 Flowchart Perancangan Aplikasi

7 1.5.4 Uji Coba Sistem Uji coba yang akan dilakukan pada aplikasi yang dirancang adalah pengecekan apakah plainteks yang diperoleh pada saat dekripsi sama dengan plainteks yang sebelum dienkripsikan, dimana akan diuji peng-input-an plainteks dengan berbagai variasi karakter seperti : 1. Angka (1234567890) 2. Huruf (abcdefghijklmnopqrstuvwxyz) 3. Simbol (!#$%^&*()_+}{][\ ~`,.) 4. Kombinasi (12345abCDE!@#$%) 1.5.5 Sistematika Penulisan berikut: Adapun sistematika-sistematika penulisan dari skripsi ini adalah sebagai BAB I : PENDAHULUAN Bab ini adalah bab pendahuluan yang membahas tentang alasan pemilihan judul skripsi, perumusan masalah, batasan masalah, tujuan dan manfaat penelitian, metode penelitian dan sistematika pembahasan. BAB II : LANDASAN TEORI Bab ini mengemukakan tentang teori-teori, baik teori umum maupun teori khusus yang digunakan untuk membahas dan menganalisis masalah yang ada melalui studi pustaka.

8 BAB III : ANALISA DAN PERANCANGAN Di dalam bab ini dibahas mengenai perancangan dari aplikasi. Perancangan berisi tentang urutan dalam pembuatan sistem ini. Juga memuat tentang masalah yang diteliti dan pendekatan-pendekatan yang digunakan dalam penelitian. BAB IV : HASIL DAN PEMBAHASAN Dalam bab ini dibahas tentang hasil aplikasi yang disesuaikan dengan kebutuhan yang ada. Aplikasi ini nantinya akan diujicobakan kemudian dievaluasi apakah hasil rancangan sudah sesuai dengan kebutuhan atau belum. BAB V : KESIMPULAN DAN SARAN Bab ini merupakan bab terakhir dari seluruh rangkaian bab yang ada di laporan skripsi ini, maka dalam bab ini akan termuat kesimpulan dari hasil bahasan seluruh bab serta saran-saran yang dapat bermanfaat dan cukup memiliki alasan yang kuat untuk diperlihatkan serta dipertimbangkan untuk dilaksanakan.

BAB II LANDASAN TEORI 2.1 Tinjauan Pustaka Pada jurnal ilmiah yang penulis jadikan referensi dijelaskan bahwa algoritma Rijndael merupakan teknik enkripsi simetris yang efisien dan paling aman. Tingkat keamanan yang tinggi serta kecepatan enkripsi dan dekripsi yang sudah terjamin dari berbagai operasi. Operasi enkripsi dan dekripsi algoritma Rijndael terdiri dari beberapa ronde, dimana jumlah ronde yang dijalani ditentukan oleh panjang kunci yang digunakan. Tiap ronde juga terdiri dari berbagai fungsi yaitu : subbytes, shiftrows, mixcolumns dan addroundkey (Shiral, et. al. 2015), dimana fungsi fungsi tersebut serta cara kerja algoritma Rijndael akan dijelaskan pada dasar teori dibawah. Berdasarkan penjelasan pada referensi jurnal ilmiah tersebut tidak tertulis bahwa adanya kekurangan dari algoritma ini, oleh karena itu penulis akan membuat sebuah program pengenkripsian data rahasia yang mengimplementasikan algoritma Rijndael sebagaimana proses kerjanya sesuai dengan referensi yang dibaca. 9

10 2.2 Teori Dasar Kriprografi Kriptografi berasal dari bahasa Yunani, Crypto dan Graphia. Cripto berarti rahasia (secret) dan graphia berarti tulisan (writing). Menurut terminologinya, Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain. Ada 4 (empat) tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu : 1. Kerahasiaan (confidentiality) adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. 2. Integritas data (data integrity) adalah layanan yang menjamin bahwa pesan masih asli atau belum pernah dimanipulasi selama pengiriman. 3. Otentikasi (authentication) adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak - pihak yang berkomunikasi maupun mengidentifikasi kebenaran sumber pesan. 4. Anti-penyangkalan (non-repudiation) adalah layanan yang mencegah entitas yang berkomunikasi melakukan penyangkalan. Berikut adalah istilah - istilah yang digunakan dalam bidang kriptografi : 1. Plainteks, adalah pesan yang hendak dikirimkan (berisi data asli). 2. Cipherteks, adalah pesan yang merupakan hasil enkripsi 3. Enkripsi (fungsi E), adalah proses pengubahan plainteks menjadi chiperteks 4. Dekripsi (fungsi D), adalah kebalikan dari enkripsi yakni mengubah cipherteks menjadi plainteks, sehingga berupa data awal / asli.

11 5. Kunci, adalah bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi (Wasino, et. al., 2012). 2.3 Sejarah Kriptografi Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan 4000 tahun yang lalu, diperkenalkan oleh orang orang Mesir lewat hieroglyph. Jenis tulisan ini bukanlah bentuk standar untuk menulis pesan. Dikisahkan, pada zaman Romawi Kuno, pada suatu saat Julius Caesar ingin mengirim sebuah pesan kepada salah satu jendralnya melalui seorang kurir. Karena pesan tersebut mengandung rahasia maka Julius mengacak pesan tersebut sedemikian rupa sehingga cuman jendralnya saja yang bisa memahaminya. Yang dilakukan Julius Caesar adalah mengganti semua susunan alfabet dari a, b, c yaitu a menjadi d, b menjadi e dan seterusnya. Proses pengacakan alphabet disebut dengan enkripsi, sedangkan upaya jendral meyususn kembali alfabet tersebut disebut dengan dekripsi. Pada zaman Romawi juga telah ada alat pembuat pesan rahasia yang disebut Scytale. Scytale merupakan suatu alat yang memiliki pita panjang dari daun papirus dan ditambah dengan sebatang silinder. Mula mula pengirim pesan menulis pesan pada pita yang digulung pada batang silinder. Setelah itu pita dilepaskan dan dikirim. Untuk membaca pesan yang dikirim, penerima harus melilitkan kembali pita tersebut pada batang silinder yang memiliki diameter yang sama. Kunci pada penyandian scytale adalah diameter batang silinder atau jumlah huruf yang dapat ditulis secara melingkar pada batang silinder.

12 Gambar 2.1 Scytale (Sumber: commons.wikimedia.org/wiki/category:scytale, 12 Januari 2016) 2.4 Algortima Kriptografi Algoritma kriptografi dapat diartikan sebagai langkah langkah logis bagaimana menyembunyikan pesan dari orang yang tidak berhak atas pesan tersebut. Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibagi menjadi tiga yaitu: 1. Algoritma Simetri 2. Algoritma Asimetri 3. Hash Function. 2.4.1 Algoritma Simetri Kriptografi Algoritma ini juga disebut dengan algoritma klasik karena memakai kunci yang sama pada proses enkripsi dan dekripsinya. Bila mengirim pesan dengan menggunakan algoritma ini maka si penerima pesan harus diberitahu kunci dari pesan tersebut agar dapat mendekripsikan pesan yang dikirim. Secara umum, cipher yang termasuk dalam kriptografi simetri beroperasi dalam mode blok (block cipher), yaitu setiap kali enkripsi atau dekripsi dilakukan terhadap satu blok data yang berukuran tertentu, atau beroperasi dalam mode

13 aliran (stream cipher), yaitu setiap kali enkripsi atau dekripsi dilakukan terhadap 1 bit atau 1 byte data. Gambar 2.2 Algoritma Simetri Kriptografi (Sumber: erdisusanto.com/2012/10/konsep-dasar-kriptografi-simetris-dan.html, 14 Januari 2016) Kelebihan kriptografi kunci simetri adalah : 1. Proses enkripsi dan dekripsi membutuhkan waktu yang lebih singkat. 2. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui pengirim dan penerima saja. Kelemahan algoritma kunci simetri : 1. Kunci harus dikirim melalui saluran yang aman. 2. Kunci harus sering diubah. Algoritma kriptografi yang menggunakan kunci simetri diantaranya adalah : 1. Data Encryption Standard (DES), 2. RC2, RC4, RC5, RC6, 3. International Data Encryption Algorithm (IDEA), 4. Advanced Encryption Standard (AES). 5. One Time Pad (OTP), 6. A5, dan lain sebagainya.

14 2.4.2 Algoritma Asimetri Kriptografi Algortima asimetri sering disebut dengan algoritma kunci publik, dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsi berbeda. Pada algoritma asimetri kunci dibagi menjadi dua bagian : 1. Kunci umum (public key), kunci yang boleh semua orang mengetahuinya (dipublikasikan). 2. Kunci pribadi (private key), kunci yang dirahasikan (hanya boleh diketahui oleh satu orang). Kunci kunci tersebut saling berhubungan satu dengan lainnya. Dengan kunci publik orang dapat mengenkripsi pesan tapi tidak dapat mendekripsinya, hanya orang yang memiliki kunci pribadi yang dapat mendekripsi pesan tersebut. Algortima asimetri dapat melakukan pengiriman pesan lebih aman daripada algoritma simetri. Gambar 2.3 Algoritma Asimetri Kriptografi (Sumber: erdisusanto.com, 14 Januari 2016) Kelebihan algoritma kunci asimetri : 1. Hanya kunci pribadi yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi. 2. Pasangan kunci publik dan pribadi tidak perlu diubah. 3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.

15 Kelemahan algoritma kunci asimetri : 1. Proses enkripsi dan dekripsi lebih lambat daripada algoritma kunci simetri. 2. Ukuran cipherteks lebih besar dari plainteks. 3. Ukuran kunci relarif lebih besar daripada ukuran kunci simetri. Algoritma kriptografi yang menggunakan kunci asimetri diantaranya adalah : 1. Digital Signature Algorithm (DSA), 2. RSA, 3. Diffie-Hellman (DH), 4. Kriptografi Quantum, dan lain sebagainya. 2.4.3 Fungsi Hash Fungsi Hash sering disebut dengan fungsi satu arah (one-way function), merupakan suatu fungsi matematika yang mengambil masukan panjang variabel dan mengubahnya ke urutan biner dengan panjang yang tetap. Fungsi Hash biasanya diperlukan apabila ingin membuat sidik jari dari suatu pesan. Sidik jari pada pesan menandakan bahwa pesan tersebut benar benar dari orang yang diinginkan. 2.5 Teknik Dasar Kriptografi Secara umum kriptografi dibagi menjadi dua berdasarkan teknik yang digunakan yakni kriptografi klasik dan kriptografi modern.

16 2.5.1 Kriptografi Klasik Kriptografi klasik merupakan suatu algoritma yang menggunakan satu kunci untuk mengamankan data. Teknik ini sudah digunakan beberapa abad yang lalu. Dua teknik dasar yang biasa digunakan pada algoritma jenis ini adalah : 1. Teknik Subsitusi Teknik ini bekerja dengan menukar satu karakter dengan karakter yang lain. Langkah pertama adalah membuat sebuah tabel subsitusi. Tidak ada aturan khusus dalam membuat tabel subsitusi, dapat dibuat sesuai keinginan, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi. Salah satu contoh teknik subsitusi adalah teknik yang digunakan Julius Caesar atau dikenal dengan Caesar Cipher. 2. Teknik Transposisi (Permutasi) Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu. Prinsipnya adalah berlawan dengan teknik subsitusi. Dalam teknik subsitusi, karakter berada pada posisi yang tetap tetapi identitasnya yang diacak. Pada permutasi, identitasnya karakternya tetap, namun posisinya yang diacak sebelum dilakukan permutasi. Sebagai contoh : Ada enam kunci yang digunakan untuk melakukan permutasi cipher yaitu: Posisi Plainteks 1 2 3 4 5 6 Posisi Cipherteks 3 5 1 6 4 2 Untuk mendekripsikan digunakan juga 6 kunci invers cipher yaitu : Posisi Ciphertek s 1 2 3 4 5 6 Posisi Plainteks 3 6 1 5 2 4

17 Sehingga sebuah pesan Plainteks : K R I P T O G R A F I Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabila terjadi kekurangan pada blok bisa ditambahkan dengan huruf yang disepakati bersama, misalnya : X. Posisi = 1 2 3 4 5 6 1 2 3 4 5 6 Plainteks = K R I P T O G R A F I X Cipherteks = I O K T R P A X G I R F Untuk mendekripsikan cipherteksnya, maka harus melakukan hal yang sama seperti cipher-nya dengan menggunakan kunci invers cipher dari permutasi tersebut. Banyak teknik permutasi lain seperti zig-zag, segitiga, spiral, dan diagonal. Dari kombinasi teknik teknik inilah yang menjadi dasar dari pembentukan algoritma kriptografi yang dikenal dengan Kriptografi Modern (Ariyus, 2008:68).. 2.5.2 Kriptografi Modern Perbedaan kriptografi ini dengan kriptografi klasik adalah pada teknik ini menggunakan perhitungan komputasi atau program dalam pengoperasiannya, yang berfungsi mengamankan data baik yang ditransfer melalui jaringan komputer maupun tidak. Pada kriptografi ini karakter karakter yang akan dioperasikan seperti plainteks dan kunci dikonversikan ke dalam suatu urutan digit biner (bit) yaitu 0 dan 1, yang umumnya digunakan untuk skema pengkodean ASCII (American Standard Code for Information Interchange).

18 Contoh penulisan bit (basis dua) dengan basis lainnya yaitu heksadesimal (basis 16) dan desimal (basis 10) dengan empat bit yang menghasilkan bilangan desimal 0-15 dapat dilihat pada tabel dibawah ini. Tabel 2.1 Representasi Bit, Hexadecimal dan Decimal (Sumber : amethyst070188.wordpress.com, 20 Februari 2016) Operasi dasar enkripsi yang menggunakan bit biasanya menggunakan metode kombinasi dua bit yang disebut dengan XOR dengan menggunakan notasi. Tabel 2.2 Operasi XOR (Sumber : Sentot Kromodimoeljo, 2011) Sebagai contoh dalam bentuk heksadesimal dengan melihaat tabel 2.1 sebagai proses konversi dari heksadesimal ke bit sehingga dapat dioperasikan seperti tabel 2.2 yaitu operasi XOR. Contoh : 09 0D

19 Jadi, 09 0D = 04 2.6 Algoritma Rijndael Algoritma Rijndael yang disosialisasikan oleh National Institute of Standard and Technology (NIST) pada November 2001 lahir sebagai standar baru enkripsi yang dikembangkan dai algoritma DES (Data Encryption Standard) melalui seleksi ketat dengan algoritma lainnya. Algoritma ini dicetuskan oleh Vincent Rijmen dan Joan Daemen menjadi pemenang saat lomba seleksi algoritma baru pengganti DES. Alasan utama terpilihnya algoritma ini adalah algritma ini memiliki keseimbangan antara keamanan serta fleksibilitas dalam berbagai platform software dan hardware (Hanifah Fadhilah, 2012). Evaluasi terhadap Rijndael dijelaskan sebagai berikut : 1. Belum ada jenis serangan yang telah diketahui yang dapat memecahkan algoritma Rijndael. 2. Algoritma ini memakai S-Box nonlinier. 3. Rijndael tidak memakan banyak sumber daya komputasi. Kecepatan antara dekripsi lebih lama daripada enkripsinya. Algoritma Rijndael menggunakan subsitusi, permutasi dan sejumlah putaran yang dikenakan pada tiap blok yang akan dienkripsi dan dekripsi. Untuk setiap putarannya Rijndael menggunakan kunci yang berbeda. Kunci setiap putaran

20 disebut round key. Rijndael beroperasi dalam bentuk byte, ukuran blok untuk algoritma Rijndael adalah 128 bit (16 byte). Algoritma Rijndael mempunyai tiga parameter : 1. Plainteks, array yang berukuran 16 byte, yang berisi data masukan. 2. Cipherteks, array yang berukuran 16 byte, yang berisi hasil enkripsi. 3. Kunci, array yang berukuran 16 byte, yang berisi kunci cipher. Garis besar algoritma Rijndael yang beroperasi pada blok 128 bit dengan kunci 128 bit adalah sebagai berikut : 1. AddRoundKey, melaukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini juga disebut sebagai initial round. 2. Putaran sebanyak Nr-1 kali. Proses yang dilakukan pada setiap putaran adalah: a. SubBytes, adalah substitusi byte dengan menggunakan tabel substitusi (S-Box). b. ShiftRows, dilakukan melalui permutasi byte byte data dari kolom array yang berbeda. c. MixColumns, mengacak data di masing masing kolom array state. d. AddRoundKey, melakukan operasi XOR antara data dengan kunci. 3. Final Round, proses untuk putaran terakhir : a. SubBytes b. ShiftRows c. AddRoundKey

Gambar 2.4 Diagram Proses Enkripsi dan Proses Dekripsi 21

BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis Pada bagian ini akan dibahas berbagai macam analisis, yakni analisis kebutuhan fungsional, kebutuhan non-fungsional dan analisis proses kerja algoritma Rijndael. 3.1.1 Analisis Kebutuhan Kebutuhan merupakan syarat-syarat yang harus dipenuhi oleh sistem atau program yang akan dibangun. Ada dua jenis kebutuhan yang melatar belakangi suatu penelitian yaitu kebutuhan fungsional yang merupakan persyaratan utama yang harus dipenuhi oleh suatu sistem atau program dan kebutuhan non fungsional yang akan menjadi nilai lebih dari suatu sistem atau program bila dipenuhi. 3.1.1.1 Analisis Kebutuhan Fungsional Adapun beberapa persyaratan fungsional yang harus dipenuhi oleh perangkat lunak adalah sebagai berikut: 1. Perangkat lunak memperbolehkan user meng-input plainteks, cipherteks serta kunci yang diperlukan agar program bisa berjalan. 22

23 2. Perangkat lunak dapat mengenkripsikan plainteks input-an dari user dan mendekripsikan cipherteks input-an dari user sesuai dengan algoritma Rijndael. 3. Hasil dekripsi atau cipherteks sesuai dengan pesan awal atau plainteks tanpa ada 1 karakter pun yang berbeda. 3.1.1.2 Analisis Kebutuhan Non-Fungsional Adapun kebutuhan non-fungsional pada sistem yang akan dirancang adalah sebagai berikut: 1. Perangkat lunak akan memunculkan feedback berupa pop-up message apabila pesan telah selesai dienkripsi maupun didekripsi. 2. Perangkat lunak memperbolehkan user memilih panjang kunci yang diinginkan. 3. Perangkat lunak akan otomatis membatasi panjang kunci yang di-input sesuai dengan pilihan panjang kunci sebelumnya. 4. Input-an plainteks dapat terdiri dari karakter angka, huruf maupun simbol atau kombinasi dari ketiga variasi karakter tersebut. 5. Perangkat lunak menampilkan lamanya waktu enkripsi dan dekripsi pada bagian bawah program. 3.1.2 Analisis Proses Perangkat lunak yang dirancang menggunakan algoritma Rijndael terdapat 4 proses penting yaitu : SubBytes, ShiftRows, MixColumns dan AddRoundKey. Pada bagian ini akan dibahas dengan rinci cara kerja keempat proses tersebut.

24 3.1.2.1 Transformasi SubBytes Transformasi SubBytes memetakan setiap byte dari array state dengan menggunakan tabel substitusi S-Box. Tabel yang digunakan adalah: Tabel 3.1 S-Box Rijndael (Sumber : metode-algoritma.com) Cara pensubstitusian adalah sebagai berikut: jika setiap byte pada array state S[r,c]=xy, xy adalah digit heksadesimal dari nilai S[r,c], maka nilai substitusinya dinyatakan dengan S [r,c], adalah elemen di dalam S-Box yang merupakan perpotongan baris x dengan kolom y. Gambar 3.1 Transformasi SubByte dengan S-Box (Sumber : metode-algoritma.com)

25 (Sumber : metode-algoritma.com) Gambar 3.2 Proses SubBytes (Sumber : metode-algoritma.com) Gambar 3.3 Hasil SubBytes 3.1.2.2 Transformasi ShiftRows Transformasi ShiftRows melakukan pergeseran secara wrapping pada 3 (tiga) baris terakhir dari array state. Jumlah pergeseran bergantung pada nilai baris r. Baris r=1 digeser sejauh 1 byte, baris r=2 digeser sejauh 2 byte, dan baris r=3 digeser sejauh 3byte. Baris r=0 tidak digeser. Gambar 3.4 Transformasi ShiftRows

26 Geser baris ke-1: Hasil pergeseran baris ke-1 dan geser baris ke-2: Hasil pergeseran baris ke-2 dan geser baris ke-3: Hasil pergeseran baris ke-3 : (Sumber : metode-algoritma.com) Gambar 3.5 Proses Transformasi ShiftRows 3.1.2.3 Transformasi MixColumns Transformasi MixColumns mengalikan setiap kolom dari array state dengan matriks yang telah ditetapkan. Matriks yang ditetapkan adalah :

27 Gambar 3.6 Matriks Perkalian MixColumns Transformasi ini dinyatakan sebagai perkalian matriks : Gambar 3.7 Transformasi MixColumns (Sumber : en.wikipedia.org, 10 Januari 2016) (Sumber : metode-algoritma.com) Gambar 3.8 Hasil dari ShiftRows (Sumber : metode-algoritma.com) Gambar 3.9 Operasi MixColumns

28 (Sumber : metode-algoritma.com) Gambar 3.10 Hasil Keseluruhan MixColumns 3.1.2.4 Transformasi AddRoundKey Transformasi ini melakukan operasi XOR terhadap sebuah round key dengan array state, dan hasilnya disimpan di array state. (Sumber : metode-algoritma.com) Gambar 3.11 Transformasi AddRoundKey

29 Gambar 3.12 Proses Transformasi AddRoundKey (Sumber : metode-algoritma.com) 3.1.2.5 Ekspansi Kunci Algoritma Rijndael melaksanakan cipher key dan membuat suatu ekspansi kunci untuk menghasilkan suatu key schedule. Jika ekspansi kunci yang diperlukan Rijndael Nb(Nr+1) word, sehingga bisa digunakan AES 128 bit, maka 4(10+1)=40 word=44x32 bit=1408 bit subkey. Ekspansi dari 128 menjadi 1408 bit subkey, proses ini disebut dengan key schedule. Subkey ini diperlukan karena setiap round merupakan suatu inisial dari Nb word untuk Nr=0 dan Nb untuk Nr=1,3 untuk Nr= 2,...,11 Nb untuk Nr=10, dari operasi ini akan didapatkan schedule kunci yang berisi array linier 4 byte word (wi), 0=i(Nr+1). (Sumber : metode-algoritma.com) Gambar 3.13 Proses Ekspansi Kunci

30 Contoh dari keseluruhan proses Algoritma Rijndael dapat dilihat pada gambar di bawah ini. (Sumber : metode-algoritma.com) Gambar 3.14 Proses Algoritma Rijndael

31 3.1.2.6 Simulasi Proses Enkripsi Pada tahap ini akan disimulasikan proses enkripsi algoritma Rijndael pada ronde 0 dan ronde 1. Misalkan plainteks dan kunci yang digunakan adalah masing - masing seperti berikut : Plainteks : DEDI ALYANTO2016 Kunci : RIJNDAEL12345678 Langkah pertama yang dilakukan adalah mengubah plainteks dan kunci diatas menjadi bentuk hexadecimal dimana proses selanjutnya semua akan menggunakan bentuk hexadecimal. Hasil konversi akan menjadi seperti ini : Plainteks : 40 45 44 49 20 41 4C 59 41 4E 54 4F 32 30 31 36 Kunci : 52 49 4A 4E 44 41 45 4A 31 32 33 34 35 36 37 38 Setelah menkonversi plainteks dan kunci ke dalam hexadecimal, maka kita akan susun plainteks dan kunci ke dalam bentuk matriks 4x4 seperti gambar dibawah 44 20 41 32 45 41 4E 30 44 4C 54 31 49 59 4F 36 52 44 31 35 49 41 32 36 4A 45 33 37 4E 4C 34 38

32 Sebelum memasuki initial round atau round 0, kita terlebih dahulu harus mencari round key untuk tiap - tiap ronde. Pada ronde 0, subkey-nya sama dengan kunci yang pertama kali diinput. Pada ronde 0 plainteks akan melalui proses AddRounKey dimana pada tahap ini terjadi perhitungan XOR antara plainteks dengan kunci. Proses XOR terjadi terhadap masing - masing cell pada matriks diatas, contoh matriksteks[1,1] XOR matrikskunci[1,1] dan matriksteks[2,1] XOR matrikskunci[2,1], dan seterusnya. Dibawah ini akan disimulasikan proses XOR antara baris ke-1 kolom ke-1 pada masing - masing matriks. Baris ke-1 kolom ke-1 dari matriks plainteks : 44 Baris ke-1 kolom ke-1 dari matriks kunci : 52 Untuk melakukan XOR terlebih dahulu ubah bentuknya dari hexa ke bentuk biner sehingga seperti dibawah ini. Baris ke-1 kolom ke-1 dari matriks plainteks (biner 8 bit) : 01000100 Baris ke-1 kolom ke-1 dari matriks kunci (biner 8 bit) : 01010010 Selanjutnya membandingkan kedua parameter tersebut bit per bit sesuai dengan dijelaskan pada tabel 2.2 sehingga menghasilkan

33 Hasil diatas dikonversi balik ke hexa sehingga menghasilkan 44 52 = 16 Bila diteruskan perhitungan XOR terhadap cell - cell berikutnya maka akan mendapatkan hasil seperti ini 16 64 70 07 0C 00 7C 06 0E 09 67 06 07 15 7B 0E Sampai tahap ini ronde 0 telah selesai, selanjutnya akan dilankutkan ronde ke-1. Sama seperti ronde ke-0, ronde ke-1 juga memerlukan subkey yang juga berukuran 4x4. Pembentukan subkey berhubungan dengan subkey yang terbentuk pada ronde sebelumnya. Semua dijelaskan pada tabel dibawah ini. Untuk memperoleh kolom ke-i dari matriks 4x4 diperlukan kolom ke i-4 dan i-1 dari round key yang telah ada. Seperti pada tabel diatas, untuk memperoleh kolom pertama dari subkey ke-1 diperlukan kolom pertama dan ke-4 dari subkey ke-0. Cara mendapatkannya adalah seperti berikut:

34 Khusus kolom pertama pada tiap round key cara perhitungannya berbeda dengan cara perhitungan pada kolom 2, 3 dan 4. Pertama, ambil kolom Wi-1 kemudian cell paling atas dipindah ke cell paling bawah atau istilah RotWord. Setelah itu hasilnya disubsitusi dengan S-Box dimana tata cara substitusinya sudah dijelaskan pada bagian 3.1.2.1. Hasil substitusi dengan S-Box menjadi seperti berikut : Setelah disubstitusi, maka hasil tersebut akan di-xor dengan kolom Wi-4 dan kolom pertama dari tabel Rcon dimana terdapat pada bagian 3.1.2.5. Tentunya tata cara XOR juga cell terhadap cell yang urutan baris dan kolomnya sama. Hasil XOR terlihat pada gambar dibawah. Setelah diperoleh kolom pertama dari subkey ke-1 maka tabel subkey akan terlihat seperti berikut.

35 Sekarang kita akan mencari kolom ke-2 dari subkey ke-1, dimana juga diperlukan kolom i-1 dan i-4 dari tabel subkey. Cara mencari kolom ke-2 lebih sederhana dibandingkan dengan cara mencari kolom pertama, cukup men-xor-kan kolom i- 1 dan i-4 saja. Hasilnya akan seperti ini. Seterusnya untuk mendapatkan kolom ke-3 dan ke-4 caranya sama dengan kolom yang ke-2. Sehingga hasil keseluruhannya akan seperti ini. Setelah selesai mendapatkan subkey untuk ronde ke-1 kita akan lanjut ke proses subbytes. Pada bagian ini kita melakukan proses substitusi S-Box terhadap hasil addroundkey pada ronde ke-0. Dimana hasilnya adalah sebagai berikut.

36 Selanjutnya adalah proses shiftrows. Seperti yang sudah dijelaskan pada bagian 3.1.2.2, hasil shiftrows terhadap hasil subbytes yang diperoleh diatas adalah seperti berikut. Selanjutnya adalah proses mixcolumns, pada proses ini, terjadi perkalian matriks 4x4 antara hasil shiftrows yang diperoleh diatas dengan matriks yang telah dijelaskan pada bagian 3.1.2.3. Secara keseluruhan perkalian matriksnya adalah seperti berikut. Sama seperti perkalian matriks biasa, untuk mendapatkan W11, rumusnya adalah W11 = (02 * 47) (03 * 63) (01 * 85) (01 * AB), W12 = (02 * 43) (03 * 10) (01 * 6F) (01 * C5), W21 = (01 * 47) (02 * 63) (03 * 85) (01 * AB), dan seterusnya.

37 Hasilnya keseluruhannya akan seperti berikut. Selanjutnya adalah proses addroundkey, sama dengan addroundkey yang terjadi pada ronde ke-0, pada proses ini hasil mixcolumns yang diperoleh diatas di-xorkan dengan subkey ronde ke-1 yang kita telah peroleh tadi. Hasilnya adalah seperti berikut. Berikut merupakan hasil dari ronde ke-1, untuk ronde ke-2 sampai ke-9 ulangi saja proses diatas, dan untuk ronde terakhir atau ronde ke-10, lewati proses mixcolumns. Setelah itu, kita akan mendapatkan hasil enkripsi dari plainteks yang di-input. 3.2 Perancangan Pada bagian ini akan dibuat perancangan pada perangkat lunak yang akan dibuat, baik perancangan sistem kerja maupun perancangan tampilan program.

38 3.2.1 Perancangan Sistem Sistem ini terdiri dari dua program utama yaitu program enkripsi dan program dekripsi. Si penulis pesan menggunakan program enkripsi untuk mendapatkan cipherteks dan kemudian dikirim ke penerima pesan, kemudian si penerima menggunakan program dekripsi untuk mendekripsikan cipherteks sebelumnya kembali menjadi plainteks. Permodelan sistem dapat dilihat pada activity diagram dibawah ini. Gambar 3.15 Permodelan Sistem dalam Activity Diagram 3.2.2 Perancangan Tampilan

39 Perancangan tampilan program disini dibuat berdasarkan daripada perancangan sistem yang mana sistem ini terdiri dari dua program, yakni program enkripsi dan dekripsi, maka terdapat juga dua tampilan yaitu program tampilan untuk enkripsi dan dekripsi yang terlihat seperti gambar di bawah ini. 1 2 3 4 5 6 Gambar 3.16 Rancangan Tampilan Form Enkripsi Keterangan : 1. Title bar, berfungsi sebagai nama aplikasi. 2. Radio Button, memberikan pilihan pada user untuk menentukan panjang kunci yang diinginkan. 3. Textbox kunci, user meng-input kunci disini. 4. Textbox Plainteks, user meng-input plainteks disini.

40 5. Textbox Cipherteks, hasil enkripsi akan muncul disini, bersifat readonly, atau tidak bisa diedit. 6. Button ENCRYPT, ketika diklik, proses enkripsi akan dijalankan.

40 1 2 3 4 5 Gambar 3.17 Rancangan Tampilan Form Dekripsi Keterangan: 1. Title bar, berfungsi sebagai nama aplikasi. 2. Textbox kunci, user meng-input kunci disini. 3. Textbox Cipherteks, user meng-copy-paste pesan cipherteks yang diterima disini. 4. Textbox Plainteks, hasil dekripsi akan muncul disini, bersifat readonly, atau tidak bisa diedit. 5. Button DECRYPT, ketika diklik, proses dekripsi akan dijalankan.

BAB IV HASIL DAN PEMBAHASAN 4.1 Hasil Terdapat 2 program utama pada aplikasi ini, yaitu program enkripsi dan program dekripsi, dimana kedua fungsi tersebut dapat kita akses melalui program utama. Sebelum memasuki program utama kita perlu melewati form login terlebih dahulu yang seperti tampilan berikut. Gambar 4.1 Tampilan Login Form Setelah login sukses, maka akan muncul tampilan program utama seperti gambar dibawah ini. 41

42 Gambar 4.2 Tampilan Utama Dapat dilihat bahwa pada program utama terdapat pilihan dua fungsi, yakni fungsi Enkripsi dan fungsi Dekripsi, sedangkan pada menu profile hanya terdapat pilihan log out. Ketika pilihan Encryption diklik maka akan muncul tampilan seperti berikut. Gambar 4.3 Tampilan Program Enkripsi

43 Komponen komponen yang terdapat pada tampilan diatas serta kegunaan masing masing komponen tersebut sama dengan apa yang sudah dijelaskan sebelumnya pada bagian perancangan tampilan. Parameter parameter yang perlu di-input agar proses enkripsi dapat dijalankan adalah berupa kunci dan plainteks. Apabila salah satu dari kedua parameter tersebut tidak terisi maka akan muncul pesan warning seperti gambar dibawah ini. Gambar 4.4 Tampilan Program Enkripsi saat Muncul Pesan Warning (1)

44 Adapun panjang kunci yang diinput harus sesuai atau tidak melebihi panjang kunci yang dipilih pada radio button disebelahnya. Panjang 128 bit berarti 16 byte (16 karakter), 192 bit berarti 24 byte (24 karakter) dan 256 bit berarti 32 byte (32 karakter). Apabila melanggar aturan tersebut program juga akan mengeluarkan pesan warning.

45 Gambar 4.5 Tampilan Program Enkripsi saat Muncul Pesan Warning (2) Setelah parameter kunci dan plainteks telah terisi dengan benar maka proses enkripsi dapat dijalankan dengan menekan tombol ENCRYPT. Hasil enkripsi akan muncul pada bagian cipherteks. Berikut tampilan program setelah proses enkripsi berhasil. Gambar 4.6 Tampilan Program Enkripsi saat Proses Enkripsi Selesai

46 Dapat dilihat pada gambar diatas pesan info akan muncul apabila proses enkripsi sudah selesai dan hasil enkripsi muncul pada bagian cipherteks dan durasi enkripsi muncul pada bagian kanan bawah aplikasi. Untuk kasus diatas cuma memerlukan 0.004 detik untuk mengenkripsi plainteks tersebut. Tahap berikutnya adalah meng-copy cipherteks yang diperoleh diatas untuk dikirim ke penerima pesan dan kemudian di-paste pada program dekripsinya. Berikut merupakan tampilan program dekripsi dengan keadaan cipherteks telah di-paste pada program tersebut. Gambar 4.7 Tampilan Program Dekripsi

47 Sama seperti program enkripsi, program dekripsi juga memiliki parameter kunci dan teks yang mau didekripsi. Dan jika salah satu parameter tidak diisi maka proses dekripsi juga tidak bisa dilanjutkan dan akan muncul pesan warning. Gambar 4.8 Tampilan Program Dekripsi saat Muncul Pesan Warning

48 Apabila semua parameter telah diisi maka bisa dilanjutkan proses dekripsi dengan menekan tombol DECRYPT. Hasil dekripsi akan muncul pada bagian plainteks, seperti terlihat pada gambar dibawah ini. Gambar 4.9 Tampilan Program Dekripsi saat Proses Dekripsi Selesai Dapat dilihat pada gambar diatas pesan info akan muncul apabila proses dekripsi sudah selesai dan hasil dekripsi muncul pada bagian plainteks dengan hasil yang sama persis dengan plainteks yang sebelumnya di-input pada program enkripsi, baik dalam format spasi maupun huruf kecil atau besar. Durasi dekripsi muncul pada bagian kanan bawah aplikasi. Untuk kasus diatas cuma memerlukan 0.007 detik untuk mengdekripsi plainteks tersebut. Apabila pada parameter kunci ataupun cipherteks terjadi salah penginputan sehingga berbeda dengan yang sebelumnya di-input (kunci) atau dihasilkan (cipherteks) pada program enkripsi maka program dekripsi akan menampilkan pesan warning yang sepert dapat dilihat pada gambar dibawah ini.

49 Gambar 4.10 Tampilan Program Dekripsi saat Salah input Parameter Pada gambar diatas dapat dilihat bahwa kunci yang di-input sama tetapi cuma beda di huruf besar dan kecil saja. Dari contoh diatas dapat disimpulkan bahwa kunci maupun cipherteks yang di-input adalah case-sensitive dan mesti sesuai dengan apa yang sebelumnya di-input (kunci) dan diperoleh (cipherteks) pada program enkripsi. 4.2 Pembahasan Pada bagian ini penulis akan melakukan pembahasan terhadap hasil pengujian aplikasi yang dirancang. Adapun jenis pengujian yang dilakukan adalah:

50 1. Pengecekan hasil dekripsi apakah sama dengan plainteks awal yang diinput dengan berbagai variasi karakter (angka, huruf, simbol). 2. Durasi enkripsi dan dekripsi terhadap panjang kunci dan plainteks yang diinput. Gambar 4.11 Hasil Enkripsi dan Dekripsi dengan Plainteks Angka

Gambar 4.12 Hasil Enkripsi dan Dekripsi dengan Plainteks Simbol 51

Gambar 4.13 Hasil Enkripsi dan Dekripsi dengan Plainteks Multi Karakter 52

53 Pada ketiga gambar diatas dapat dilihat bahwa hasil dekripsi plainteks yang terdiri dari angka atau simbol maupun kombinasi dari angka, huruf dan simbol adalah sama persis dengan plainteks yang di-input pada awal, baik dari huruf kecil atau besar, spasi ataupun enter. Tabel 4.1 Tabel Pengujian Durasi Enkripsi terhadap Panjang Plainteks dan Kunci Panjang Plainteks 685 kata 1611 kata 3686 kata 7566 kata 15132 kata 30264 kata Panjang Kunci Durasi Enkripsi 128 bit 0.279 detik 196 bit 0.357 detik 256 bit 0.276 detik 128 bit 1.733 detik 196 bit 1.724 detik 256 bit 1.790 detik 128 bit 2.043 detik 196 bit 2.076 detik 256 bit 2.049 detik 128 bit 3.501 detik 196 bit 3.580 detik 256 bit 3.554 detik 128 bit 12.201 detik 196 bit 12.417 detik 256 bit 12.275 detik 128 bit 47.252 detik 196 bit 46.194 detik 256 bit 48.286 detik Dari tabel pengujian diatas dapat disimpulkan bahwa makin panjang plainteks yang di-input, makin lama proses enkripsi, sedangakan enkripsi dengan panjang kunci yang berbeda tidak berpengaruh banyak terhadap lamanya proses enkripsi.

BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan Setelah dilakukan analisis, perancangan, implementasi, serta evaluasi aplikasi pengenkripsian dengan menggunakan algoritma Rijndael dapat ditarik kesimpulan sebagai berikut: 1. Hasil enkripsi merupakan sekumpulan kombinasi karakter yang tidak dapat dibaca atau dimengerti oleh manusia biasa. 2. Hasil enkripsi selalu sama dengan dekripsi walapun teks di-input dengan berbagai kombinasi karakter (huruf, angka, simbol). 3. Perubahan panjang kunci yang dipakai tidak banyak mempengaruhi durasi enkripsi maupun dekripsi. 5.2 Saran Saran-saran yang dapat membantu dalam aplikasi pengenkripsian dengan menggunakan algoritma Rijndael adalah sebagai berikut: 1. Dapat menambah fitur untuk mengenkripsi file daripada plainteks. 2. Dapat dikembangkan dengan menggunakan metode lain seperti Blowfish, Twofish, Mars, RC6, Serpent, dan lain-lain. 3. Dapat dikembangkan dengan bahasa pemrograman lain, contoh: Visual C++, C#, Java, dan sebagainya. 54

DAFTAR PUSTAKA Rinaldi Munir, 2006, Kriptografi, Penerbit INFORMATIKA, Bandung. Rifki Sadikin, 2012, Kriptografi Untuk Keamanan Jaringan, Penerbit ANDI, Yogyakarta. Dony Ariyus, 2006, Kriptografi: Keamanan Data Dan Komunikasi, Cetakan Pertama, Penerbit GRAHA ILMU, Yogyakarta. Dony Ariyus, 2008, Pengantar Ilmu Kriptografi: Teori Analisis & Implementasi, Penerbit GRAHA ILMU, Yogyakarta. https://amethyst070188.wordpress.com/2010/11/06/tabel-konversi-desimalhexadecimal-binary-ascii/, diakses tanggal 20 Februari 2016. https://commons.wikimedia.org/wiki/category:scytale, diakses tanggal 12 Januari 2016. https://en.wikipedia.org/wiki/advanced_encryption_standard, diakses tanggal 10 Januari 2016. http://www.erdisusanto.com/2012/10/konsep-dasar-kriptografi-simetris-dan.html, diakses tanggal 14 Januari 2016. http://www.metode-algoritma.com/2013/06/algoritma-rijndael.html, diakses pada tanggal 15 Maret 2016. Shiral, et. al., 2015, An Approach to Rijndael Algorithm, tersedia pada : http://www.jiaats.com/journals-pdf/february-2015/jase/feb-jase-1.pdf, tanggal akses : 21 Januari 2016. 55