implementasi algoritma advanced encryption standard (aes) … · 2019. 11. 8. · implementasi...
TRANSCRIPT
Universitas Sumatera Utara
Repositori Institusi USU http://repositori.usu.ac.id
Departemen Ilmu Komputer Skripsi Sarjana
2017
Implementasi Algoritma Advanced
Encryption Standard (AES) Rijndael
untuk Proteksi File Audio
Prasetyo, M. Sigit
Universitas Sumatera Utara
http://repositori.usu.ac.id/handle/123456789/18386
Downloaded from Repositori Institusi USU, Univsersitas Sumatera Utara
IMPLEMENTASI ALGORITMA ADVANCED ENCRYPTION
STANDARD (AES) RIJNDAEL UNTUK PROTEKSI FILE AUDIO
SKRIPSI
M. SIGIT PRASETYO
131421094
PROGRAM EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016
Universitas Sumatera Utara
IMPLEMENTASI ALGORITMA ADVANCED ENCRYPTIONN STANDARD
(AES) RIJNDAEL UNTUK PROTEKSI FILE AUDIO
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer
M. SIGIT PRASETYO
131421094
PROGRAM EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016
Universitas Sumatera Utara
ii
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA ADVANCED
ENCRYPTION STANDARD (AES) RIJNDAEL
UNTUK PROTEKSI FILE AUDIO
Kategori : SKRIPSI
Nama : M. SIGIT PRASETYO
Nomor Induk Mahasiswa : 131421094
Program Studi : EKSTENSI S1 ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing :
Pembimbing II Pembimbing I
Dian Rachmawati, S.Si.,M. Kom Prof. Dr. Muhammad Zarlis
NIP. 198307232009122004 NIP. 195707011986011003
Diketahui/disetujui oleh
Program Studi Ekstensi S1 Ilmu Komputer
Ketua,
Dr. Poltak Sihombing, M.Kom
NIP. 19620217 199103 1 001
Universitas Sumatera Utara
iii
PERNYATAAN
IMPLEMENTASI ALGORITMA ADVANCED ENCRYPTION STANDARD (AES)
RIJNDAEL UNTUK PROTEKSI FILE AUDIO
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Oktober 2016
M. SIGIT PRASETYO
131421094
Universitas Sumatera Utara
iv
PENGHARGAAN
Syukur kepada Tuhan Yang Maha Esa penulis ucapkan, Tuhan yang telah
memberikan rahmat, berkah serta hidayah-Nya kepada penulis sehingga penulis dapat
menyelesaikan skripsi ini tepat waktu yang sesuai dengan instruksi dan peraturan yang
berlaku di Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera
Utara.
Selanjutnya penulis menyampaikan rasa terima kasih dan penghargaan yang
sebesar-besarnya kepada semua pihak yang telah memberikan bantuan dan masukan,
baik secara moril dan materil dalam menyelesaikan penulisan tugas akhir ini, terutama
sekali kepada:
1. Bapak Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas Sumatera
Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Si sebagai Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi
3. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu
Komputer.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi Ilmu
Komputer.
5. Bapak Prof. Dr. Muhammad Zarlis selaku Dosen Pembimbing I yang telah
meluangkan waktu, tenaga, dan pikiran dalam membimbing, mengarahkan,
menasehati, memotivasi, dan menyemangati penulis agar dapat menyelesaikan
skripsi ini.
6. Ibu Dian Rachmawati, S.Si.,M. Kom selaku Dosen Pembimbing II yang telah
meluangkan waktu, tenaga, dan pikiran dalam membimbing, mengarahkan,
menasehati, memotivasi, dan menyemangati penulis agar dapat menyelesaikan
skripsi ini.
7. Bapak Dr. Poltak Sihombing, M. Kom selaku dosen Pembanding I yang telah
memberikan kritik dan saran terhadap skripsi penulis.
Universitas Sumatera Utara
iv
8. Bapak Handrizal, S.Si.,M.Comp.,Sc selaku dosen Pembanding II yang telah
memberikan kritik dan saran terhadap skripsi penulis.
9. Seluruh staf pengajar dan pegawai Fakultas Ilmu Komputer dan Teknologi
Informasi.
10. Teristimewa orang tua yang penulis cintai, ibunda Rahmi Lubis yang tidak henti-
hentinya memberikan doa, motivasi, dan dukungan yang selalu menjadi sumber
semangat penulis.
11. Teman-teman seperjuangan mahasiswa Ekstensi S1-Ilmu Komputer stambuk
2013.
12. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat
penulis ucapkan satu per satu yang telah membantu menyelesaikan skripsi ini.
Penulis menyadari bahwa skripsi ini masih memiliki banyak kekurangan, baik
dari segi teknik, tata penyajian ataupun dari segi tata bahasa. Oleh karena itu penulis
bersedia menerima kritik dan saran dari pembaca dalam upaya perbaikan skripsi ini.
Semoga skripsi ini dapat bermanfaat bagi penulis dan pembaca, khususnya rekan-
rekan mahasiswa lainnya yang mengikuti perkuliahan di Universitas Sumatera Utara.
Medan, Oktober 2016
Penulis
M. Sigit Prasetyo
Universitas Sumatera Utara
v
ABSTRAK
Dengan memanfaatkan kriptografi di masa modern ini, proteksi file audio bukanlah
mustahil untuk dilakukan dengan tujuan untuk menjaga legalitas dari pemilik hak
cipta file audio tersebut. Algoritma kriptografi Advanced Encryption Standard (AES)
Rijndael merupakan standar enkripsi dengan kunci simetris yang diadopsi oleh
pemerintah Amerika Serikat, AES Rijndael telah dianalisis secara luas dan sekarang
digunakan diseluruh dunia, seperti halnya dengan pendahulunya Data Encryption
Standart (DES). Dalam penelitian ini penulis akan menerapkan algoritma Advanced
Encryption Standard (AES) untuk melakukan enkripsi pada tiap karakter yang terdapat
pada file audio tersebut dan menyimpan Cipher-text dari hasil enkripsi ke dalam
format file Audio yang sama, dan melakukan dekripsi pada file audio yang telah
dienkripsi ke bentuk File aslinya. Aplikasi yang dirancang dalam penelitian ini telah
mampu melakukan proses penyandian file Audio dengan Algoritma Advanced
Encryption Standart Rijndael. Diharapkan aplikasi yang dihasilkan dapat berguna bagi
pihak yang ingin menjaga kerahasiaan file audio miliknya.
Kata Kunci: Kriptografi, Advanced Encryption Standard, AES Rijndael, File Audio
Universitas Sumatera Utara
vi
RIJNDAEL’S ADVANCED ENCRYPTION STANDARD (AES) IMPLEMENTATION
FOR AUDIO FILES PROTECTION
ABSTRACT
Using cryptography nowadays, audio file protection is possible to do in order to protect
legality of the file who owns its copyright. Advanced Encryption Standard (AES) Rijndael’s
algorithm is the standard of encryption with symetric key adopted by US government.
Rijndael’s AES has been analysed extensively and currently used worldwide just like the
former standard, Data Encryption Standard (DES). In this study, the author will apply
Advanced Encryption Standard Algorithm to encrypt every character that lies in the audio file
and save the Cipher-text from encryption process in the same format, wich is audio file. And
decrypting the encrypted-audio file to its original form. The application that developed in this
study has been able to encrypt an audio file using Rijndael’s Advanced Encryption Standard
Algorithm. The author expecting creation of this application can be used by everyone who
wants to keep secret their legal audio file.
Keywords: Cryptography, Advanced Encryption Standard, Rijndael’s AES, Audio File
Universitas Sumatera Utara
vii
DAFTAR ISI
Hal.
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel viii
Daftar Gambar ix
Bab 1 Pendahuluan
1.1 Latar Belakang Masalah 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 2
1.5 Manfaat Penelitian 2
1.6 Metode Penelitian 3
1.7 Sistematika Penelitian 3
Bab 2 Landasan Teori
2.1 Kriptografi 5
2.1.1 Kriptografi Simetrik 6
2.1.2 Kriptografi Asimetrik 6
2.2 Advanced Encryption Standard (AES) 7
2.2.1. Rijndael Block Cipher 8
2.2.2. Enkripsi 9
2.2.2.1. Transformasi SubBytes 11
2.2.2.2. Transformasi ShiftRows 11
2.2.2.3. Transformasi Mix Columns 12
2.2.2.4. Transformasi AddRoundKey 13
2.2.2.5. Ekspansi Kunci 14
2.2.3. Dekripsi 15
2.3. File Audio 16
2.3.1. Interfensi Audio 17
2.3.2. Audio Digital 17
Bab 3 Analisis dan Perancangan Sistem
3.1 Analisis Masalah 18
3.2 Analisis Kebutuhan Sistem 19
3.2.1 Kebutuhan Fungsional 19
3.2.2 Kebutuhan nonfungsional 20
3.3 Pemodelan Sistem 20
3.3.1 Use-Case Diagram 21
3.3.2 Activity Diagram 23
Universitas Sumatera Utara
vii
3.3.3 Squence Diagram 25
3.4 Perancangan Sistem 27
3.5 Pseudocode Sistem 31
3.6 Perancangan Antarmuka 32
3.6.1. Rancangan Halaman Utama 32
3.6.2. Rancangan Halaman Output 34
Bab 4 Implementasi dan Pengujian
4.1 Implementasi Sistem 35
4.1.1 Halaman Utama 35
4.2 Pengujian Sistem 35
4.2.1. Pengujian proses enkripsi 36
4.2.2. Prngujian Proses dekripsi 36
4.2.3. Hasil Peengujian 37
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 48
5.2 Saran 48
Daftar Pustaka
Lampiran
Universitas Sumatera Utara
viii
DAFTAR TABEL
Hal.
3.1 Narative Use Case Enkripsi 21
3.2 Narative Use Case Download Audio Terenkripsi 21
3.3 Narative use-case Enkripsi Audio 22
3.4 Narative use-case Download Audio Terdekripsi 22
3.5 Komponen-Komponen pada Halaman Utama 31
Universitas Sumatera Utara
ix
DAFTAR GAMBAR
Hal.
2.1 Diagram Proses Enkripsi 9
2.2 Tabel S-Box 10
2.3 Contoh Transformasi ShiftRows() 11
2.4 Proses MixColumns 12
2.5 Contoh Transformasi AddRoundKey () 13
2.6 Proses Key Expansion 14
2.7 Diagram Alur Proses Dekripsi AES 15
3.1 Diagram Ishikawa 18
3.2 Diagram Use-Case 22
3.3 Diagram Activity Enkripsi 23
3.4 Diagram Activity Dekripsi 23
3.5 Sequence Diagram Enkripsi 24
3.6 Sequence Diagram Dekripsi 24
3.7 Flowchart Umum Enkripsi 26
3.8 Flowchart Umum Dekripsi 27
3.9 Flowchart Enkripsi AES 28
3.10 Flowchart Dekripsi AES 29
3.11 Rancangan Halaman Utama 31
3.12 Rancangan Halaman Output 32
4.1 Halaman Utama Aplikasi 33
4.2 Proses Enkripsi Selesai dan Cipher Audio Berhasil di Download 34
4.3 Proses Dekripsi Selesai dan File Audio Berhasil di Download 35
4.4 Plain-text File Audio uji 1 36
4.5 Cipher-text File Audio uji 1 36
4.6 Plain-text File Audio yang telah di dekripsi uji 1 37
4.7 Plain-text File Audio uji 2 38
4.8 Cipher-text File Audio uji 2 38
4.9 Plain-text File Audio yang telah di dekripsi uji 2 39
4.10 Plain-text File Audio uji 3 40
4.11 Cipher-text File Audio uji 3 40
4.12 Plain-text File Audio yang telah di dekripsi uji 3 41
4.13 Plain-text File Audio uji 4 42
4.14 Cipher-text File Audio uji 4 43
4.15 Plain-text File Audio yang telah di dekripsi uji 4 43
4.16 Grafik ukuran file 44
4.17 Grafik jumlah karakter
Universitas Sumatera Utara
BAB I
PENDAHULUAN
Bab ini menjelaskan mengenai latar belakang pemilihan judul skripsi “Implementasi
Algoritma Advanced Encryption Standart (AES) Rijndael Untuk Proteksi File Audio”,
rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi
penelitian, dan sistematika penulisan.
1.1. Latar Belakang
File audio saat ini adalah file yang cukup populer dan sangat mudah untuk dinikmati oleh
berbagai kalangan kapanpun dan dimanapun. Seiring dengan perkembangan teknologi yang
memudahkan pengguna untuk melakukan pertukaran informasi dengan bentuk audio dengan
waktu yang singkat, kemudahan tersebut akhirnya dapat digunakan secara negatif tanpa
memperhatikan aspek legalitas dan hak cipta dari produsen audio tersebut.
File audio bisa dengan mudah disalah gunakan oleh pihak-pihak yang tidak bertanggung
jawab yang seharusnya menjadi properti legal dari produsen dan secara legal dimiliki oleh
orang yang telah membelinya, Melihat hal tersebut, diperlukan suatu cara untuk memproteksi
file audio tersebut salah satu nya adalah dengan melakukan enkripsi terhadap file audio
tersebut dengan menggunakan algoritma AES RIJNDAEL. File audio yang telah di enkripsi
tidak dapat diputar/dimainkan dengan sempurna sehingga diperlukan aplikasi untuk
mendekripsi file tersebut ke bentuk awalnya sehingga akses ke file tersebut dapat lebih
terjaga legalitasnya.
Dengan memanfaatkan kriptografi di masa modern ini, proteksi file audio bukan mustahil
untuk dilakukan dengan tujuan untuk menjaga legalitas dari pemilik hak cipta file audio
tersebut. Dengan menggunakan algoritma kriptografi Advanced Encryption Standard
Rijndael untuk mengenkripsi file audio tersebut menjadi Cipher-text. Sehingga file tersebut
tidak dapat diputar dengan sempurna oleh orang yang tidak mempunyai legalitas pada file
audio tersebut dan dapat didekripsi kembali ke bentuk semula nya pada orang yang
mempunyai legalitas file audio tersebut, sehingga proteksi file tersebut dapat terjaga
legalitasnya Dalam kriptografi, Advanced Encryption Standard (AES) merupakan standar
Universitas Sumatera Utara
2
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. Masing-masing cipher memiliki
ukuran 128-bit, dengan ukuran kunci masing-masing 128, 192, dan 256 bit.
AES telah dianalisis secara luas dan sekarang digunakan di seluruh dunia, seperti halnya
dengan pendahulunya, Data Encryption Standard (DES).
1.2. Rumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan, hal yang mendasari rumusan
masalah yaitu bagaimana memberikan proteksi pada file audio untuk menjaga legalitas dari
kepemilikan hak cipta file tersebut sehingga tidak disebar luaskan tanpa memperhatikan
legalitasnya.
1.3. Batasan Masalah
Adapun batasan masalah adalah sebagai berikut:
1. Objek yang digunakan dalam Enkripsi/Dekripsi AES berupa file audio dengan
ekstensi MP3.
2. Output yang dihasilkan berupa Cipher-text yang disimpan dalam format file audio
dan dapat didekripsi kembali kebentuk file audio
3. Bahasa pemrograman yang digunakan untuk Enkripsi dan Dekripsi file adalah PHP.
1.4. Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah merancang suatu aplikasi pengamanan file audio
menggunakan algoritma kriptografi AES untuk menjaga legalitas dari pemilik file audio
tersebut. Sehingga penyebaran file dapat terjaga distribusinya.
1.5. Manfaat Penelitian
Manfaat dari penelitian ini adalah untuk memberikan keamanan pada file audio serta
memberikan kemudahan kepada pemilik legalitas file audio dalam pendistribusian file nya.
Universitas Sumatera Utara
3
1.6. Metode Penelitian
Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini adalah sebagai
berikut:
1. Studi Literatur
Penulis mengumpulkan bahan dan data referensi dari buku, skripsi, jurnal, artikel dan
sumber lain yang berkaitan dengan penulisan tugas akhir ini yaitu Implementasi
Algoritma Advanced Encryption Standart (AES) Rijndael Untuk Proteksi File Audio.
2. Analisis dan Perancangan Sistem
Berdasarkan rumusan dan batasan masalah, kebutuhan perancangan dianalisis disertai
pembuatan Use Case Diagram, Activity Diagram, Sequence Diagram, Flowchart dan
Design Interface dengan menggunakan UMLET.
3. Pengujian Sistem
Setelah pada tahap implementasi sistem, maka dilakukan pengujian aplikasi kepada 5
pengguna secara random (acak) disertai angket untuk mengetahui kelebihan dan
kekurangan terhadap aplikasi tersebut.
4. Dokumentasi
Metode ini berisi laporan dan kesimpulan akhir dari hasil analisa dan pengujian dalam
bentuk skripsi.
1.7. Sistematika Penelitian
Adapun langkah-langkah dalam menyelesaikan penelitian ini adalah sebagai berikut :
BAB 1 : PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi
“Implementasi Algoritma Advanced Encryption Standart (AES) Rijndael Untuk
Proteksi File Audio”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metodologi penelitian, dan sistematika penulisan.
BAB 2 : LANDASAN TEORI
Bab ini berisi teori-teori yang berkaitan dengan perancangan sistem aplikasi
pengamanan file audio menggunakan algoritma Advanced Encryption Standart
Rijndael.
BAB 3 : ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi pembahasan analisis dan perancangan sistem aplikasi, termasuk
didalamnya UML (Unified Modelling Language), Flowchart dan Desain Interface.
Universitas Sumatera Utara
4
BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisi implementasi dari perancangan sistem yang telah dibuat, dan
pengujian sistem untuk menemukan kelebihan dan kekurangan pada sistem.
BAB 5 : KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari seluruh bab sebelumnya serta saran yang diharapkan
dapat bermanfaat dalam proses pengembangan penelitian selanjutnya.
Universitas Sumatera Utara
BAB II
LANDASAN TEORI
Bab ini berisi teori-teori yang berkaitan dengan perancangan sistem Pengamanan File Audio
menggunakan Algoritma Advanced Encryption Standart (AES) Rijndael.
2.1. Kriptografi
Menurut (Dafid, D, 2006), Kata kriptografi (Cryptography) berasal dari bahasa Yunani yaitu
dari kata Cryptos yang artinya tersembunyi dan Graphein yang artinya menulis. Kriptografi
dapat diartikan sebagai suatu ilmu ataupun seni yang mempelajari bagaimana sebuah data
dikonversi ke bentuk tertentu yang sulit untuk dimengerti.(Schneier B, 1996). Ada 4 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.
Suatu data yang tidak disandikan disebut plaintext atau cleartext. Sedangkan data yang
telah tersandikan disebut ciphertext. Proses yang dilakukan untuk mengubah plaintext
Universitas Sumatera Utara
6
menjadi ciphertext disebut enkripsi (encryption) atau encipherment. Sedangkan proses untuk
mengubah ciphertext kembali ke plaintext disebut dekripsi (decryption) atau decipherment.
Dalam kriptografi diperlukan parameter yang digunakan untuk proses konversi data yaitu
suatu set kunci. Enkripsi dan dekripsi data dikontrol oleh sebuah kunci atau beberapa kunci.
Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan atas dua jenis
yaitu algoritma simetrik (symmetric) dan asimetrik (asymmetric).
2.1.1. Kriptografi Simetrik
Algoritma simetris atau disebut juga algoritma Kriptografi konvensional adalah algoritma
yang menggunakan kunci yang sama untuk proses enkripsi dan proses dekripsi. Algoritma
Kriptografi simetris dibagi menjadi 2 kategori yaitu algoritma aliran (Stream Ciphers) dan
algoritma blok (Block Ciphers). Pada algoritma aliran, proses penyandiannya berorientasi
pada satu bit atau satu byte data. Sedang pada algoritma blok, proses penyandiannya
berorientasi pada sekumpulan bit atau byte data (per blok). Contoh algoritma kunci simetris
adalah DES (Data Encryption Standard), blowfish, twofish, MARS, IDEA, 3DES (DES
diaplikasikan 3 kali), AES (Advanced Encryption Standard) yang bernama asli Rijndael.
2.1.2. Kriptografi Asimetrik
Kriptografi asimetrik (asymmetric cryptography) adalah algoritma yang menggunakan kunci
yang berbeda untuk proses enkripsi dan dekripsi. Kunci enkripsi dapat disebarkan kepada
umum dan dinamakan sebagai kunci publik (public key) sedangkan kunci dekripsi disimpan
untuk digunakan sendiri dan dinamakan sebagai kunci pribadi (private key). Oleh karena
itulah, Kriptografi ini dikenal pula dengan nama Kriptografi kunci publik (public key
cryptography). Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA
(Riverst Shamir Adleman) dan ECC (Elliptic Curve Cryptography).
Pada kriptosistem asimetrik, setiap pelaku sistem informasi memiliki sepasang kunci, yaitu
kunci publik dan kunci pribadi. Kunci publik didistribusikan kepada umum, sedangkan kunci
pribadi disimpan untuk diri sendiri.
Universitas Sumatera Utara
7
2.2. Advanced Encryption Standard
Menurut (Surian, D, 2006), Hingga tahun 1990-an, algoritma kriptografi yang banyak dipakai
adalah Data Encryption Standard (DES). Algoritma ini dipakai oleh National Institute of
Standards and Technology (NIST) sebagai standar enkripsi data Federal Amerika Serikat.
DES termasuk dalam algoritma enkripsi yang sifatnya cipher block, yang berarti DES
mengubah data masukan menjadi blok-blok 64-bit dan kemudian menggunakan kunci
enkripsi sebesar 56-bit. Setelah mengalami proses enkripsi maka akan menghasilkan output
blok 64-bit.
Seiring dengan perkembangan teknologi, kunci DES yang sebesar 56-bit dianggap
sudah tidak memadai lagi. Pada tahun 1998, 70 ribu komputer di Internet berhasil membobol
satu kunci DES dalam waktu 96 hari. Tahun 1999 kejadian yang sama terjadi lagi dalam
waktu lebih cepat yaitu hanya dalam waktu 22 hari. Pada tanggal 16 Juni 1998, sebuah mesin
seharga 250 ribu dolar dapat dengan mudah memecahkan 25% kunci DES dalam waktu kira-
kira 2,3 hari atau diperkirakan dapat memecahkan kunci DES dalam waktu 4,5 hari.
Adanya kenyataan bahwa algoritma kriptografi DES tidak lagi aman, maka NIST
mulai memikirkan sebuah algoritma kriptografi lain sebagai pengganti DES. Untuk itu
diadakan kontes Internasional dimana pesertanya adalah ahli kriptografi dari seluruh
dunia.Adapun diadakan secara terbuka dimaksudkan agar algoritma yang baru bukan dari
produk badan pemerintah yang dapat dengan sengaja menanamkan backdoor pada
algoritmanya. Backdoor ini dicurigai membuat plaintext dapat langsung dibaca tanpa harus
menggunakan kunci.
Pada tahun 1997 kontes pemilihan suatu standar algoritma kriptografi baru
pengganti DES dimulai dan diikuti oleh 21 peserta dari seluruh dunia. Algoritma yang akan
dipilih selain harus memenuhi beberapa kriteria, yaitu
1. Faktor keamanan, yang berarti algoritma tersebut harus tidak mudah dipecahkan oleh
cracker, bersifat acak atau tidak mudah diterka outputnya, dan tidak berdasar
algoritma matematika tertentu.
2. Faktor biaya, dimana diperhitungkan kecepatan prosesing pada baik pada hardware
dan software, dan besarnya memory yang dipakai.
3. Faktor karakteristik implementasi, yakni meliputi kesederhanaan algoritma yang
digunakan, kemudahan dan keamanan dalam implementasi di hardware dan software.
Universitas Sumatera Utara
8
Algoritma ini akan dinamakan Advanced Encryption Standard (AES). Setelah
melewati tahap seleksi yang ketat, pada tahun 1999 hanya tinggal 5 calon yaitu algoritma
Serpent (Ross Anderson University of Cambridge, Eli Biham Technion, Lars Knudsen-
University of California San Diego), MARS (IBM Amerika), Twofish (Bruce Schneier, John
Kelsey, dan Niels Ferguson-Counterpane Internet Security Inc, Doug Whiting-Hi/fn Inc,
David Wagner-University of California Berkeley, Chris Hall-Princeton University), Rijndael
(Dr. Vincent Rijmen-Katholieke Universiteit Leuven dan Dr. Joan Daemen Proton World
International), dan RC6 (RSA Amerika).
Setahun kemudian pada tahun 2000, algoritma Rijndael terpilih sebagai algoritma
kriptografi yang selain aman juga efisien dalam implementasinya dan dinobatkan sebagai
AES. Nama Rijndael sendiri berasal dari gabungan nama penemunya.
2.2.1 Rijndael Block Cipher
Algoritma Rijndael dirancang untuk memiliki properti di bawah ini.
1. Ketahanan terhadap semua jenis serangan yang diketahui.
2. Kesederhanaan rancangan.
3. Kekompakan kode dan kecepatan pada berbagai platform.
(Rosyadi, A, 2011) Rijndael cipher dapat dikategorikan sebagai iterated block cipher dengan
panjang blok variabel dan panjang kunci yang dapat dipilih secara independen sebagai 128,
192, atau 256 bit. Dalam desimal ada kira-kira 3.4 x 1038 kemungkinan kunci 128 bit, 6.2 x
1057 kemungkinan kunci 192 bit, dan 1.1 x 1077 kemungkinan kunci 256 bit. AES
menspesifikasikan tiga ukuran kunci, 128, 192, dan 256 bit dengan ukuran blok tetap 128 bit.
Kunci round diturunkan dari kunci cipher melalui jadwal kunci, yang terdiri dari
ekspansi kunci dan pemilihan kunci round. Jumlah round yang digunakan cipher Rijndael
adalah sebuah fungsi dari ukuran kunci sebagai berikut.
1. Kunci 256 bit = 14 round.
2. Kunci 192 bit = 12 round.
3. Kunci 128 bit = 10 round
Universitas Sumatera Utara
9
2.2.2 Enkripsi
Enkripsi adalah proses mengubah suatu pesan asli (plaintext) menjadi suatu pesan dalam
bahasa sandi (ciphertext).
C = E (M)
Keterangan :
M = Pesan asli (Plaintext)
E = Proses enkripsi dengan Key Private
C = Ciphertext (Plaintext yang terenkripsi AES)
Berikut ini merupakan gambar diagram proses enkripsi seperti yang ditunjukkan pada
Gambar 2.1.
Universitas Sumatera Utara
10
Gambar 2.1 Diagram Proses Enkripsi AES
(Rosyadi, A, 2011)
Garis besar Algoritma AES Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit
adalah sebagai berikut (di luar proses pembangkitan round key):
1. AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key.
Tahap ini disebut juga initial round.
2. Round : Putaran sebanyak Nr – 1 kali.
Proses yang dilakukan pada setiap putaran adalah:
A. SubBytes: substitusi byte dengan menggunakan table substitusi (S-box).
B. ShiftRows: pergeseran baris-baris array state secara wrapping.
C. MixColumns: mengacak data di masing- masing kolom array state.
D. AddRoundKey: melakukan XOR antara state dengan round key.
Universitas Sumatera Utara
11
3. Final round: proses untuk putaran terakhir:
A. SubBytes
B. ShiftRows
C. AddRoundKey
Langkah kerja dari enkripsi AES Rijndael adalah sebagai berikut:
2.2.2.1 Transformasi SubBytes
Transformasi SubBytes memetakan setiap byte dari array state dengan menggunakan tabel
substitusi S-box . Tabel S-box yang digunakan adalah seperti yang ditunjukkan pada gambar
2.2.
Gambar 2.2 Tabel S-box
(Surian, D, 2006)
2.2.2.2 Transformasi ShiftRows
Melakukan pergeseran secara wrapping (siklik) pada 3 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 3 byte. Baris r = 0 tidak digeser. Contoh
ditunjukkan pada Gambar 2.3 berikut.
Universitas Sumatera Utara
12
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:
Gambar 2.3 Contoh Transformasi ShiftRows()
(Rosyadi, A, 2011)
2.2.2.3 Transformasi MixColumns
Proses MixColumns akan beroperasi pada tiap kolom dari tabel state. Operasi ini
menggabungkan 4 bytes dari setiap kolom tabel state dan menggunakan transformasi linier
Universitas Sumatera Utara
13
Operasi Mix Columns memperlakukan setiap kolom sebagai polinomial 4 suku dalam Galois
field dan kemudian dikalikan dengan c(x) modulo (x4+1), dimana c(x)=3x3+x2+x+2.
Kebalikkan dari polinomial ini adalah c(x)=11x3+13x2+9x+14. Operasi MixColumns juga
dapat dipandang sebagai perkalian matrix.
Langkah MixColumns dapat ditunjukkan dengan mengalikan 4 bilangan di dalam Galois field
oleh matrix berikut ini.
Atau bila dijabarkan:
r0=2a0+a3+a2+3a1 r1=2a1+a0+a3+3a2 r2=2a2+a1+a0+3a3
a3=2a3+a2+a1+3a0
Operasi penjumlahan di atas dilakukan dengan operasi XOR, sedangkan operasi perkalian
dilakukan dalam Galois field. Seperti yang ditunjukkan pada gambar 2.4 berikut.
Gambar 2.4 Proses Mix Columns
(Surian, D, 2006)
Universitas Sumatera Utara
14
2.2.2.4 Transformasi AddRoundKey
Transformasi ini melakukan operasi XOR terhadap sebuah round key dengan array state, dan
hasilnya disimpan di array state. Pada Gambar 2.5 ditunjukan contoh Transformasi
AddRoundKey.
Contoh:
XOR-kan kolom pertama state dengan kolom pertama round key :
Hasil AddRoundKey() terhadap seluruh kolom:
Gambar 2.5 Contoh Transformasi AddRoundKey ()
(Rosyadi, A, 2011)
2.2.2.5 Ekspansi Kunci (Key Expansion)
Ekspansi kunci pada AES 128-bit (16-byte) menggunakan 4-words (16 byte) sebagai input
dan menghasilkan perluasan kunci menjadi 44 Words (176) Bytes. Gambar 2.6 menunjukkan
proses dari Key Expansion.
Universitas Sumatera Utara
15
Gambar 2.6 Proses Key Expansion
(Rosyadi, A, 2011)
2.2.3 Dekripsi
Dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi pesan asli
kembali.
M = D (C)
Ket :
C = Ciphertext (Hasil Plaintext terenkripsi)
D = Proses dekripsi menggunakan key private
M = Pesan asli setelah di dekripsi
Universitas Sumatera Utara
16
Gambar 2.7 menunjukkan proses dari sebuah dekripsi.
Cipher Text
AddRoundKey
AddRoundKey
InvShiftRows
InvSubBytes
AddRoundKey
InvMixColumns
InvShiftRows
InvSubBytes
Plain Text
Nr-1
S0,0
S1,0
S2,0
S3,0
S0,1
S1,1
S2,1
S3,1
S0,2
S1,2
S2,2
S3,2
S0,3
S1,3
S2,3
S3,3
S’0,0
S’1,0
S’2,0
S’3,0
S’0,1
S’1,1
S’2,1
S’3,1
S’0,2
S’1,2
S’2,2
S’3,2
S’0,3
S’1,3
S’2,3
S’3,3
Src
S’rc
Inv S- BOX
S0,0
S1,0
S2,0
S3,0
S0,1
S1,1
S2,1
S3,1
S0,2
S1,2
S2,2
S3,2
S0,3
S1,3
S2,3
S3,3
S’0,0
S’1,3
S’2,2
S’3,1
S’0,1
S’1,0
S’2,3
S’3,2
S’0,2
S’1,1
S’2,0
S’3,3
S’0,3
S’1,2
S’2,1
S’3,0
S0,0
S1,0
S2,0
S3,0
S0,1
S1,1
S2,1
S3,1
S0,2
S1,2
S2,2
S3,2
S0,3
S1,3
S2,3
S3,3
S0,c
S1,c
S2,c
S3,c
S’0,0
S’1,0
S’2,0
S’3,0
S’0,2
S’1,2
S’2,2
S’3,2
S’0,3
S’1,3
S’2,3
S’3,3
S’0,1
S’1,1
S’2,1
S’3,1
S’0,c
S’1,c
S’2,c
S’3,c
EDB
BED
DBE
DBE
00900
00090
00009
09000
S0,0
S1,0
S2,0
S3,0
S0,1
S1,1
S2,1
S3,1
S0,2
S1,2
S2,2
S3,2
S0,3
S1,3
S2,3
S3,3
S’0,0
S’1,0
S’2,0
S’3,0
S’0,1
S’1,1
S’2,1
S’3,1
S’0,2
S’1,2
S’2,2
S’3,2
S’0,3
S’1,3
S’2,3
S’3,3
W1,0
W0,0
W2,0
W3,0
W0,1
W1,1
W2,1
W3,1
W0,2
W1,2
W2,2
W3,2
W0,3
W1,3
W2,3
W3,3
Gambar 2.7 Diagram Alur Proses Dekripsi AES
(Sujrajat, J , 2011)
2.3 File Audio
Menurut (Rasyid F. M, 2007) Audio, atau suara, merupakan gelombang yang merambat
melalui medium tertentu. Perambatan tersebut tiba di telinga sehingga kita dapat mendengar.
Beberapa contoh format file audio adalah MP3, WMA, WAV dan AAC.
Universitas Sumatera Utara
17
2.3.1 Interfensi Audio
Interferensi merupakan fenomena yang terjadi ketika dua atau lebih gelombang bertemu
ketika melintasi medium yang sama. Interferensi menyebabkan terbentuknya gelombang
yang merupakan hasil dari perpaduan dua atau lebih gelombang tersebut. Apabila dua
gelombang yang bertemu memiliki bentuk yang sama, maka interferensi yang dihasilkan
bersifat konstruktif. Sebaliknya, apabila dua gelombang yang bertemu memiliki bentuk yang
berkebalikan, maka interferensi yang dihasilkan bersifat destruktif.
2.3.2 Audio Digital
Audio digital merupakan representasi audio yang disimpan dalam komputer secara biner
(terdiri dari 0 dan 1). Apabila direpresentasikan dalam bentuk gelombang, audio digital
memiliki sejumlah hingga nilai tekanan dan titik waktu.
Universitas Sumatera Utara
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Analisis sistem terdiri dari fase-fase berbeda yang mendeskripsikan pengembangan sistem.
Dalam tugas akhir ini, ada tiga fase analisis yaitu: analisis masalah, analisis kebutuhan dan
analisis proses. Analisis masalah bertujuan untuk memahami kelayakan masalah. Analisis
kebutuhan dilakukan untuk menjelaskan fungsi-fungsi yang ditawarkan dan mampu
dikerjakan sistem. Sedangkan analisis proses untuk memodelkan tingkah laku sistem.
3.1. Analisis Masalah
Dalam merancang suatu sistem diperlukan analisis terhadap sistem yang akan dirancang
terlebih dahulu. Tujuan dari analisis ini sendiri adalah agar sistem yang dirancang menjadi
tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga. Di samping itu dengan
dilakukannya analisis kita akan dapat mempermudah kerja kita dalam membuat sistem, dan
jika suatu saat nanti ada perbaikan atau penambahan dalam sistem tersebut, maka akan
mudah untuk diselesaikan.
Untuk dapat mengurangi ancaman yang dapat terjadi dalam pertukaran informasi yang
bersifat rahasia dalam sebuah proses komunikasi data dapat dilakukan dengan cara
melakukan pengkodean terhadap informasi yang akan disimpan atau dikirim.
Gambar 3.1. merupakan diagram Ishikawa yang dapat digunakan untuk menganalisis
masalah. Bagian kepala atau segiempat yang berada di sebelah kanan merupakan masalah.
Sementara di pada bagian tulang merupakan penyebab.
Universitas Sumatera Utara
19
Gambar 3.1 Diagram Ishikawa
Sistem yang akan dibangun menggunakan PHP yang memudahkan para pengguna untuk
melakukan proses pengamanan file audio.
3.2. Analisis Kebutuhan Sistem
Analisis kebutuhan sistem bertujuan untuk memahami kebutuhan dari sistem baru.
Kebutuhan sistem terbagi ke dalam dua jenis yaitu kebutuhan fungsional yang menjelaskan
seluruh aktifitas yang disediakan sistem dan kebutuhan nonfungsional yang menjelaskan
fitur-fitur, karakteristik dan batasan lainnya (optional).
3.2.1. Kebutuhan fungsional
Kebutuhan fungsional adalah fungsi-fungsi yang harus dipenuhi pada aplikasi yang
dirancang. Kebutuhan fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai
berikut:
a. Sistem harus mampu membaca String yang berada dalam file audio dan
mengkonversinya ke dalam bentuk binary.
Universitas Sumatera Utara
20
b. Sistem harus mampu melakukan enkripsi dengan menggunakan AES Rijndael setiap
karakter binary yang telah dibaca sehingga menghasilkan ciphertext yang disimpan
dalam bentuk format file audio.
c. Sistem Harus mampu melakukan dekripsi kembali Cipher Text yang tersimpan dalam
file audio dengan menggunakan Rijndael sehingga menghasilkan file audio aslinya
3.2.2. Kebutuhan nonfungsional
Kebutuhan nonfungsional mencakup karakteristik-karakteristik sebagai berikut:
1. Performa
Sistem yang akan dibangun dapat menunjukkan hasil dari fungsi kriptografi yang
dilakukan oleh sistem.
2. Efisiensi
Sistem yang akan dibangun harus sesederhana mungkin agar mudah digunakan oleh
pengguna, responsif.
3. Ekonomi
Sistem yang akan dibangun harus dapat bekerja dengan baik tanpa harus
mengeluarkan biaya tambahan dalam penggunaan perangkat keras maupun perangkat
lunak.
4. Dokumentasi
Sistem yang akan dibangun dapat menyimpan data hasil proses enkripsi dan dekripsi.
5. Manajemen kualitas
Sistem yang dibangun harus memiliki kualitas yang baik yaitu proses pembangkitan
kunci yang cepat dan proses enkripsi dan dekripsi yang akurat.
6. Kontrol
Sistem yang dibangun akan menampilkan pesan error untuk setiap input yang tidak
sesuai.
3.3. Pemodelan Sistem
Pemodelan sistem yang dirancang bertujuan menggambarkan peran user terhadap sistem
yang dibuat. Pemodelan sistem yang digunakan dalam perancangan sistem, yaitu use-case
diagram, activity diagram, dan squence diagram.
Universitas Sumatera Utara
21
3.3.1. Use-Case Diagram
Use-case Diagram adalah gambaran skenario penggunaan aplikasi sistem tentang
bagaimana cara sistem bekerja dengan user. Use-case Diagram membutuhkan
identifikasi siapakah pengguna yang akan menggunakan sistem tersebut. Pengguna
tersebut dinamakan actor. Actor berperan untuk melakukan komunikasi dengan sistem.
Hubungan antar actor dengan use-case dihubungkan dengan garis lurus.
Gambar 3.2 Diagram Use-Case
Pada gambar 3.2 menjelaskan peran aktor terhadap sistem yaitu dapat mengenkripsi serta
mendekripsi file audio, dan system akan menghasilkan output berupa file audio yang
terenkripsi maupun terdekripsi ke bentuk semula file audio.
Berikut ini merupakan tabel narrative use-case yang dapat dilihat pada tabel 3.1, tabel 3.2,
tabel 3.4 dan tabel 3.5
Universitas Sumatera Utara
22
Tabel 3.1 Narative use-case Enkripsi Audio
Use Case Name Enkripsi File Audio
Design Scope Sistem (Black Box)
Stakeholder and Interest Actor dapat melakukan enkripsi pada file audio
Precondition Actor menginputkan kunci 128 bit dan memilih file yang akan
dienkripsi
Minimal Guarantee Sistem memberikan pesan error jika panjang kunci tidak 128 bit
Success Guarantee Sistem Menampilkan File yang telah dienkripsi
Triger Actor Menekan tombol Submit(Enkripsi)
Main Success Scenario 1. Actor Menginput kunci 128 bit
2. Actor memilih file audio
3. Actor Menekan tombol Submit
Tabel 3.2 Narative use-case Download Audio Terenkripsi
Use Case Name Download Audio Terenkripsi
Design Scope Sistem (Black Box)
Stakeholder and Interest Actor dapat download audio yang telah di enkripsi
Precondition Actor melakukan enkripsi dengan submit file
Success Guarantee Browser mendownload file
Triger Actor Menekan tombol Download
Main Success Scenario 1. Actor Menekan tombol download
2. File terdownload
Universitas Sumatera Utara
23
Tabel 3.3 Narative use-case Enkripsi Audio
Use Case Name Dekripsi File Audio
Design Scope Sistem (Black Box)
Stakeholder and Interest Actor dapat melakukan dekripsi pada file audio
Precondition Actor menginputkan kunci 128 bit dan memilih file yang akan
didekripsi
Minimal Guarantee Sistem memberikan pesan error jika panjang kunci tidak 128 bit
Success Guarantee Sistem Menampilkan File yang telah didekripsi
Triger Actor Menekan tombol Submit(Dekripsi)
Main Success Scenario 1. Actor Menginput kunci 128 bit
2. Actor memilih Cipher Audio
3. Actor Menekan tombol Submit
Tabel 3.4 Narative use-case Download Audio Terdekripsi
Use Case Name Download Audio Terdekripsi
Design Scope Sistem (Black Box)
Stakeholder and Interest Actor dapat download audio yang telah di dekripsi
Precondition Actor melakukan dekripsi dengan submit file
Success Guarantee Browser mendownload file
Triger Actor Menekan tombol Download
Main Success Scenario 1. Actor Menekan tombol download
2. File terdownload
3.3.2. Activity Diagram
Activity Diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan
bagaimana mereka berakhir. Pada gambar 3.3 dan gambar 3.4 menjelaskan rancangan
aktivitas user dan respon sistem pada proses enkripsi dan dekripsi.
Universitas Sumatera Utara
24
Gambar 3.3 Activity Diagram Enkripsi
Universitas Sumatera Utara
25
Gambar 3.4 Activity Diagram Dekripsi
3.3.3. Squence Diagram
Sequence Diagram (diagram urutan) adalah suatu Diagram yang memperlihatkan atau
menampilkan interaksi-interaksi antar objek di dalam sistem yang disusun pada sebuah
urutan atau rangkaian waktu. Pada Gambar 3.5 dan Gambar 3.6 menggambarkan perilaku
aktor terhadap sistem untuk mengenkripsi dan dekripsi file audio.
Universitas Sumatera Utara
26
Gambar 3.5 Sequence Diagram Enkripsi
Gambar 3.6 Sequence Diagram Dekripsi
Universitas Sumatera Utara
27
3.4. Perancangan Sistem
Flowchart dapat didefinisikan sebagai bagan yang menunjukkan arus pekerjaan secara
keseluruhan dari sistem. Bagan ini menjelaskan urut-urutan dari prosedur-prosedur dan
proses prancangan sistem. Selain itu, flowchart juga memiliki fungsi memudahkan proses
pengecekan terhadap sistem yang akan dibuat. Berikut merupakan flowchart dari sistem yang
dibangun. Gambar 3.7 dan 3.8 dibawah ini menampilkan flowchart Enkripsi dan Dekripsi
dari Sistem.
Gambar 3.7 Flowchart Umum Enkripsi
Universitas Sumatera Utara
28
Gambar 3.8 Flowchart Umum Dekripsi
Pada Gambar 3.9 dan 3.10 dibawah ini menampilkan flowchart Enkripsi dan Dekripsi dari
Algoritma Advanced Encryption Standart (AES) Rijndael dengan panjang kunci 128 bit.
Gambar 3.9 Flowchart Enkripsi AES Rijndael kunci 128 bit
Universitas Sumatera Utara
29
Gambar 3.10 Flowchart Dekripsi AES Rijndael kunci 128 bit
3.5. PseudoCode System
Pseudocode merupakan pendeskripsian dari algoritma pemrograman komputer yang
menggunakan struktur sederhana dari bahasa pemrograman yang digunakan dan dapat
dimengerti. Berikut merupakan pseudocode dari sistem enkripsi AES Rijndael yang akan
digunakan.
function EncryptAES(key,EncryptedContent) {
nBlock=4;
nKey=length(key)/4;
nRound=nKey+nBlock+2;
s=array(array());
if (nKey!=4 AND nKey!= 6 AND nKey!=8) {
return false;
}
KeyExpansion();
xContent=EncodeToBinary(EncryptedContent);
xSize=length(xContent);
Universitas Sumatera Utara
30
For (i=0;i<xSize;i+=16) {
For (j=0;j<16;j++) {
if ((i+j) < xSize)
t[j]= xContent[i+j]
}
For (k=0;k<nRound; k++) {
AddRoundKey();
SubBytes();
MixColumns();
AddRoundKey();
}
SubBytes();
ShiftRows();
AddRoundKey();
For (l=0; l<(4*nBlock);l++) {
Cipher=s[l mod 4][l- (l mod nBlock) / nBlock]
Return Cipher;
}
}
}
3.6. Perancangan Antarmuka (Interface)
Perancangan Antarmuka (Interface) merupakan sarana interaksi antara pengguna dan sistem.
Hal ini berfungsi untuk memudahkan pengguna dalam melakukan proses sistem
3.6.1. Rancangan Halaman Utama
Rancangan antarmuka halaman Utama untuk mengenkripsi dan dekripsi file audio seperti
pada gambar 3.11 serta keterangan komponen pada halaman Utama dapat dilihat pada tabel
3.2.
Universitas Sumatera Utara
31
Gambar 3.11 Rancangan Halaman Utama
Tabel 3.5 Komponen-Komponen pada Halaman Utama
No Jenis Komponen Keterangan
1 Logo (Label) Logo dan Label pada halaman
2 Tab (Button) Tab untuk memilih aksi yang akan dilakukan
(Enkripsi/Dekripsi)
3 Form Input Teks (Input) Form Input untuk memasukkan key yang akan
digunakan
4 Form Input File (Input) Form Input untuk memilih file yang akan di eksekusi
5 Tombol Submit (Button) Tombol untuk mengeksekusi form
Universitas Sumatera Utara
32
3.6.2. Rancangan Halaman Output
Rancangan antarmuka halaman Output seperti pada gambar 3.12 serta keterangan komponen
pada halaman informasi objek dapat dilihat pada tabel 3.2
Gambar 3.12 Rancangan Halaman Output
Tabel 3.2 Komponen-Komponen pada Halaman Output
No Jenis Komponen Keterangan
1 Logo (Label) Logo dan Label pada halaman
2 Audio Player Audio Player untuk memutar file audio yang telah
didekripsi
3 Download Button (Button) Button untuk download file terenkrips/terdekripsi
Universitas Sumatera Utara
33
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi Sistem
Tahap implementasi sistem menggunakan XAMPP sebagai localhost dengan bahasa
pemrograman PHP.
4.1.1. Halaman Utama
Halaman Utama untuk mengenkripsi dan dekripsi file audio seperti pada gambar 3.7 .
Didalamnya terdapat 2 Tab untuk Enkripsi dan Dekripsi File, dimana pada masing-masing
tab terdapat kolom input Key dan Browse File.
Gambar 4.1 Halaman Utama Aplikasi
4.2. Pengujian Sistem
Pengujian sistem berguna untuk mendapatkan hasil yang baik dan melakukan perbaikan pada
rancangan sistem yang telah dibuat apabila ada kekurangan.
Universitas Sumatera Utara
34
4.2.1. Pengujian Proses Enkripsi
Melalui halaman utama aplikasi, Lakukan enkripsi dengan cara memilih tab Enkripsi,
dilanjutkan dengan memasukkan key 128 bit pada kolom Input Key dan pilih file Audio yang
akan dienkripsi melalui kolom Browse Audio File, kemudian Submit tombol Enkripsi.
Apabila Format Key telah benar sebesar 128bit maka Setelah Proses enkripsi selesai, sistem
akan mengeluarkan file Audio yang telah di enkripsi dan langsung didownload oleh browser.
Seperti yang tertera pada gambar 4.2..
Gambar 4.2 Proses Enkripsi Selesai dan Cipher Audio Berhasil di Download
4.2.2. Pengujian Proses Dekripsi
Melalui halaman utama aplikasi, Lakukan Dekripsi dengan cara memilih tab Dekripsi,
dilanjutkan dengan memasukkan kunci 128 bit yang sama dengan kunci saat melakukan
Enkripsi pada kolom Input Key dan pilih file Audio yang akan didekripsi melalui kolom
Browse Cipher Audio, kemudian Submit tombol Dekripsi.
Universitas Sumatera Utara
35
Apabila Format Key telah benar sebesar 128bit dan sama dengan kunci yang dimasukkan
pada saat enkripsi maka Setelah Proses enkripsi selesai, sistem akan mengeluarkan file Audio
aslinya dan langsung didownload oleh browser. Seperti yang tertera pada gambar 4.3.
Gambar 4.3 Proses Dekripsi Selesai dan File Audio Berhasil di Download
4.2.3. Hasil Pengujian
Hasil pengujian yang didapatkan melalui penelitian ini berupa hasil dari proses enkripsi dan
proses dekripsi.:
-Uji Coba File Size 184kb
Gambar 4.4 menunjukan susunan plaint-text dari file audio asli yang belum di enkripsi. File
Tersebut berjumlah 376.210 karakter dengan size sebesar 184kb
Universitas Sumatera Utara
36
Gambar 4.4 Plain-text File Audio uji 1
Gambar 4.5 merupakan Cipher-Text hasil Enkripsi dari File Audio .yang di enkripsi melalui
aplikasi. Setelah di Enkripsi jumlah karakter menjadi 501.632 dengan size sebesar 245kb
Gambar 4.5 Cipher-text File Audio uji 1
Universitas Sumatera Utara
37
Gambar 4.6 merupakan Plain-Text hasil Dekripsi dari Cipher Audio .yang di dekripsi melalui
aplikasi. Setelah di Dekripsi jumlah karakter dan size file audio sama dengan ukuran dan
karakter seperti sebelum di enkripsi, yaitu berjumlah 376.210 karakter dengan size sebesar
184kb
Gambar 4.6 Plain-text File Audio yang telah di dekripsi uji 1
-Uji Coba File Size 580kb
Gambar 4.7 menunjukan susunan plaint-text dari file audio asli yang belum di enkripsi. File
Tersebut berjumlah 1.260.856 karakter dengan size sebesar 580kb
Universitas Sumatera Utara
38
Gambar 4.7 Plaint-text File Audio uji 2
Gambar 4.8 merupakan Cipher-Text hasil Enkripsi dari File Audio .yang di enkripsi melalui
aplikasi. Setelah di Enkripsi jumlah karakter menjadi 1.681.130 dengan size sebesar 773kb
Gambar 4.8 Cipher-text File Audio uji 2
Gambar 4.9 merupakan Plain-Text hasil Dekripsi dari Cipher Audio .yang di dekripsi melalui
aplikasi. Setelah di Dekripsi jumlah karakter dan size file audio sama dengan ukuran dan
Universitas Sumatera Utara
39
karakter seperti sebelum di enkripsi, yaitu berjumlah 1.260.856 karakter dengan size sebesar
580kb
Gambar 4.9 Plain-text File Audio yang telah di dekripsi uji 2
-Uji Coba File Size 923kb
Gambar 4.10 menunjukan susunan plaint-text dari file audio asli yang belum di enkripsi. File
Tersebut berjumlah 1.888.548 karakter dengan size sebesar 923kb
Universitas Sumatera Utara
40
Gambar 4.10 Plaint-text File Audio uji 3
Gambar 4.11 merupakan Cipher-Text hasil Enkripsi dari File Audio .yang di enkripsi melalui
aplikasi. Setelah di Enkripsi jumlah karakter menjadi 2.518.080 dengan size sebesar 1.2mb
Gambar 4.11 Cipher-text File Audio uji 3
Gambar 4.12 merupakan Plain-Text hasil Dekripsi dari Cipher Audio .yang di dekripsi
melalui aplikasi. Setelah di Dekripsi jumlah karakter dan size file audio sama dengan ukuran
Universitas Sumatera Utara
41
dan karakter seperti sebelum di enkripsi, yaitu berjumlah 1.888.548 karakter dengan size
sebesar 923kb
Gambar 4.12 Plain-text File Audio yang telah di dekripsi uji3
-Uji Coba File Size 1.8Mb
Gambar 4.13 menunjukan susunan plaint-text dari file audio asli yang belum di enkripsi. File
Tersebut berjumlah 3.976.980 karakter dengan size sebesar 1.8mb
Universitas Sumatera Utara
42
Gambar 4.13 Plaint-text File Audio uji 4
Gambar 4.14 merupakan Cipher-Text hasil Enkripsi dari File Audio .yang di enkripsi melalui
aplikasi. Setelah di Enkripsi jumlah karakter menjadi 5.302.640 dengan size sebesar 2.4mb
Gambar 4.14 Cipher-text File Audio uji 4
Gambar 4.15 merupakan Plain-Text hasil Dekripsi dari Cipher Audio .yang di dekripsi
melalui aplikasi. Setelah di Dekripsi jumlah karakter dan size file audio sama dengan ukuran
Universitas Sumatera Utara
43
dan karakter seperti sebelum di enkripsi, yaitu berjumlah 3.976.980 karakter dengan size
sebesar 1.8mb
Gambar 4.15 Plain-text File Audio yang telah di dekripsi uji 4
Dari uji coba yang telah dilakukan di atas diperoleh hasil berupa grafik perbandingan ukuran
file sebelum di enkripsi dan sesudah di enkripsi seperti pada Gambar 4.16 berikut:.
Universitas Sumatera Utara
44
0
500
1000
1500
2000
2500
3000
3500
4000
4500
Uji coba 1 Uji coba 2 Uji coba 3 Uji coba 4
Grafik Ukuran File
Plain-text Cipher-text
Gambar 4.16. Grafik Ukuran File
Pada Gambar 4.17 menunjukan perbandingan jumlah karakter sebelum dilakukan enkripsi
dan sesudah dienkripsi
Universitas Sumatera Utara
45
0
1000000
2000000
3000000
4000000
5000000
6000000
7000000
8000000
9000000
10000000
Uji coba 1 Uji coba 2 Uji coba 3 Uji coba 4
Grafik Jumlah Karakter
Plain-text Cipher-text
Gambar 4.17. Grafik Jumlah Karakter
Universitas Sumatera Utara
BAB V
KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari seluruh bab sebelumnya serta saran yang diharapkan dapat
bermanfaat dalam proses pengembangan penelitian selanjutnya.
5.1. Kesimpulan
Berdasarkan hasil studi literatur, analisis, perancangan, implementasi, dan pengujian sistem
ini, maka kesimpulan yang didapat adalah sebagai berikut:
1. Aplikasi yang dirancang dalam penelitian telah mampu melakukan proses penyandian
file Audio dengan Algoritma Advanced Encryption Standart Rijndael
2. File Audio yang di enkripsi menjadi cipher-text memiliki karakter yang lebih banyak
dibandingkan dengan file audio sebelum dilakukan proses enkripsi
3. File Hasil dekripsi sama persis seperti seperti file awal sebelum dilakukan proses
enkripsi.
4. Waktu proses enkripsi dan dekripsi tergantung dari besarnya ukuran file yang di input
5.2. Saran
Adapun saran-saran yang dapat diberikan penulis untuk pengembangan dan perbaikan sistem
ini selanjutnya diharapkan pada penelitian selanjutnya untuk melakukan proses enkripsi dan
dekripsi pada file Video.
Universitas Sumatera Utara
i
DAFTAR PUSTAKA
Dewi, N.K, 2013. Implementasi Algoritma Rc6 untuk Proteksi File MP3, S(1) Ilmu
Komputer . Skripsi. Universitas Brawijaya.
Yanti, N.P, 2016. Implementasi Algoritma Advanced Encryption Standard (AES) untuk
Mengamankan File Gambar. S(1) Ilmu Komputer. Skripsi. Universitas Sumatera
Utara
Widiartha, I.M, dkk. 2012. Enkripsi dan Dekripsi Audio Format Amr Dengan Algoritma
Kriptografi Loki97, S(1) Ilmu Komputer. Skripsi. Universitas Udayana.
Maghrib, R.M, dkk 2013. Implementasi Steganografi menggunakan metode Least Significant
Bit dalam pengamanan data pada File Audio Mp3, S(1) Teknologi Informasi.Skripsi.
Universitas Islam Negeri Malang.
Rosyadi, A, dkk 2011. Implementasi Algoritma Kriptografi AES untuk enkripsi dan Dekripsi
Email, Makalah seminar tugas akhir. Universitas Diponegoro
David, D. 2006. Kriptografi Kunci Simetris Dengan Menggunakan Algoritma Crypton .
Makalah Seminar Tugas Akhir. STMIK MDP Palembang
Sujrajat, J, dkk 2006. Implementasi Kriptografi untuk keamanan data dengan menggunakan
metode Advanced Encryption Standart (AES) 128, Makalah Seminar Tugas Akhir.
Universitas Komputer Indonesia.
Surian, D, 2006. Algoritma Kriptografi Aes Rijndael. Jurnal Teknik Elektro
Rasyid F, M. 2007. Kriptografi Audio Dengan Teknik Interferensi Data Non Biner.
Universitas Sumatera Utara
ii
LISTING PROGRAM
AESclass()
<?php
class AES {
var $Nb;
var $Nk;
var $Nr;
var $sBox = array(
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5,
0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc,
0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a,
0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,
0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b,
0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85,
0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17,
0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88,
0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,
0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9,
0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6,
0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,
0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94,
0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68,
0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
);
var $invSBox = array(
0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38,
Universitas Sumatera Utara
iii
0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,
0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,
0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,
0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d,
0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2,
0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,
0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,
0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,
0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda,
0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,
0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a,
0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,
0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,
0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,
0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea,
0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,
0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85,
0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,
0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,
0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,
0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20,
0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,
0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31,
0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,
0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,
0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,
0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0,
0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26,
0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
);
var $ltable = array(
0x00, 0xff, 0xc8, 0x08, 0x91, 0x10, 0xd0, 0x36,
0x5a, 0x3e, 0xd8, 0x43, 0x99, 0x77, 0xfe, 0x18,
0x23, 0x20, 0x07, 0x70, 0xa1, 0x6c, 0x0c, 0x7f,
0x62, 0x8b, 0x40, 0x46, 0xc7, 0x4b, 0xe0, 0x0e,
0xeb, 0x16, 0xe8, 0xad, 0xcf, 0xcd, 0x39, 0x53,
0x6a, 0x27, 0x35, 0x93, 0xd4, 0x4e, 0x48, 0xc3,
0x2b, 0x79, 0x54, 0x28, 0x09, 0x78, 0x0f, 0x21,
0x90, 0x87, 0x14, 0x2a, 0xa9, 0x9c, 0xd6, 0x74,
0xb4, 0x7c, 0xde, 0xed, 0xb1, 0x86, 0x76, 0xa4,
0x98, 0xe2, 0x96, 0x8f, 0x02, 0x32, 0x1c, 0xc1,
0x33, 0xee, 0xef, 0x81, 0xfd, 0x30, 0x5c, 0x13,
0x9d, 0x29, 0x17, 0xc4, 0x11, 0x44, 0x8c, 0x80,
0xf3, 0x73, 0x42, 0x1e, 0x1d, 0xb5, 0xf0, 0x12,
0xd1, 0x5b, 0x41, 0xa2, 0xd7, 0x2c, 0xe9, 0xd5,
0x59, 0xcb, 0x50, 0xa8, 0xdc, 0xfc, 0xf2, 0x56,
0x72, 0xa6, 0x65, 0x2f, 0x9f, 0x9b, 0x3d, 0xba,
0x7d, 0xc2, 0x45, 0x82, 0xa7, 0x57, 0xb6, 0xa3,
0x7a, 0x75, 0x4f, 0xae, 0x3f, 0x37, 0x6d, 0x47,
0x61, 0xbe, 0xab, 0xd3, 0x5f, 0xb0, 0x58, 0xaf,
Universitas Sumatera Utara
iv
0xca, 0x5e, 0xfa, 0x85, 0xe4, 0x4d, 0x8a, 0x05,
0xfb, 0x60, 0xb7, 0x7b, 0xb8, 0x26, 0x4a, 0x67,
0xc6, 0x1a, 0xf8, 0x69, 0x25, 0xb3, 0xdb, 0xbd,
0x66, 0xdd, 0xf1, 0xd2, 0xdf, 0x03, 0x8d, 0x34,
0xd9, 0x92, 0x0d, 0x63, 0x55, 0xaa, 0x49, 0xec,
0xbc, 0x95, 0x3c, 0x84, 0x0b, 0xf5, 0xe6, 0xe7,
0xe5, 0xac, 0x7e, 0x6e, 0xb9, 0xf9, 0xda, 0x8e,
0x9a, 0xc9, 0x24, 0xe1, 0x0a, 0x15, 0x6b, 0x3a,
0xa0, 0x51, 0xf4, 0xea, 0xb2, 0x97, 0x9e, 0x5d,
0x22, 0x88, 0x94, 0xce, 0x19, 0x01, 0x71, 0x4c,
0xa5, 0xe3, 0xc5, 0x31, 0xbb, 0xcc, 0x1f, 0x2d,
0x3b, 0x52, 0x6f, 0xf6, 0x2e, 0x89, 0xf7, 0xc0,
0x68, 0x1b, 0x64, 0x04, 0x06, 0xbf, 0x83, 0x38
);
var $atable = array(
0x01, 0xe5, 0x4c, 0xb5, 0xfb, 0x9f, 0xfc, 0x12,
0x03, 0x34, 0xd4, 0xc4, 0x16, 0xba, 0x1f, 0x36,
0x05, 0x5c, 0x67, 0x57, 0x3a, 0xd5, 0x21, 0x5a,
0x0f, 0xe4, 0xa9, 0xf9, 0x4e, 0x64, 0x63, 0xee,
0x11, 0x37, 0xe0, 0x10, 0xd2, 0xac, 0xa5, 0x29,
0x33, 0x59, 0x3b, 0x30, 0x6d, 0xef, 0xf4, 0x7b,
0x55, 0xeb, 0x4d, 0x50, 0xb7, 0x2a, 0x07, 0x8d,
0xff, 0x26, 0xd7, 0xf0, 0xc2, 0x7e, 0x09, 0x8c,
0x1a, 0x6a, 0x62, 0x0b, 0x5d, 0x82, 0x1b, 0x8f,
0x2e, 0xbe, 0xa6, 0x1d, 0xe7, 0x9d, 0x2d, 0x8a,
0x72, 0xd9, 0xf1, 0x27, 0x32, 0xbc, 0x77, 0x85,
0x96, 0x70, 0x08, 0x69, 0x56, 0xdf, 0x99, 0x94,
0xa1, 0x90, 0x18, 0xbb, 0xfa, 0x7a, 0xb0, 0xa7,
0xf8, 0xab, 0x28, 0xd6, 0x15, 0x8e, 0xcb, 0xf2,
0x13, 0xe6, 0x78, 0x61, 0x3f, 0x89, 0x46, 0x0d,
0x35, 0x31, 0x88, 0xa3, 0x41, 0x80, 0xca, 0x17,
0x5f, 0x53, 0x83, 0xfe, 0xc3, 0x9b, 0x45, 0x39,
0xe1, 0xf5, 0x9e, 0x19, 0x5e, 0xb6, 0xcf, 0x4b,
0x38, 0x04, 0xb9, 0x2b, 0xe2, 0xc1, 0x4a, 0xdd,
0x48, 0x0c, 0xd0, 0x7d, 0x3d, 0x58, 0xde, 0x7c,
0xd8, 0x14, 0x6b, 0x87, 0x47, 0xe8, 0x79, 0x84,
0x73, 0x3c, 0xbd, 0x92, 0xc9, 0x23, 0x8b, 0x97,
0x95, 0x44, 0xdc, 0xad, 0x40, 0x65, 0x86, 0xa2,
0xa4, 0xcc, 0x7f, 0xec, 0xc0, 0xaf, 0x91, 0xfd,
0xf7, 0x4f, 0x81, 0x2f, 0x5b, 0xea, 0xa8, 0x1c,
0x02, 0xd1, 0x98, 0x71, 0xed, 0x25, 0xe3, 0x24,
0x06, 0x68, 0xb3, 0x93, 0x2c, 0x6f, 0x3e, 0x6c,
0x0a, 0xb8, 0xce, 0xae, 0x74, 0xb1, 0x42, 0xb4,
0x1e, 0xd3, 0x49, 0xe9, 0x9c, 0xc8, 0xc6, 0xc7,
0x22, 0x6e, 0xdb, 0x20, 0xbf, 0x43, 0x51, 0x52,
0x66, 0xb2, 0x76, 0x60, 0xda, 0xc5, 0xf3, 0xf6,
0xaa, 0xcd, 0x9a, 0xa0, 0x75, 0x54, 0x0e, 0x01
);
var $w;
var $s;
var $keyLength;
Universitas Sumatera Utara
v
function AES($z) {
$this->Nb = 4;
$this->Nk = strlen($z)/4;
$this->Nr = $this->Nk + $this->Nb + 2;
if ($this->Nk != 4 && $this->Nk != 6 && $this->Nk != 8)
die("Key is " . ($this->Nk*32) . " bits long. *not*
128, 192, or 256.");
$this->Nr = $this->Nk+$this->Nb+2;
$this->w = array();
$this->s = array(array());
$this->KeyExpansion($z);
}
function encrypt($x) {
$t = "";
$y = "";
$xsize = strlen($x);
for ($i=0; $i<$xsize; $i+=16) {
for ($j=0; $j<16; $j++) {
if (($i+$j)<$xsize) {
$t[$j] = $x[$i+$j];
}
else
$t[$j] = chr(0);
}
$y .= $this->encryptBlock($t);
}
return $y;
}
function decrypt($y) {
$t = "";
$x = "";
// put a 16-byte block into t
$ysize = strlen($y);
for ($i=0; $i<$ysize; $i+=16) {
for ($j=0; $j<16; $j++) {
if (($i+$j)<$ysize)
$t[$j] = $y[$i+$j];
else
$t[$j] = chr(0);
}
$x .= $this->decryptBlock($t);
}
return $x;
}
Universitas Sumatera Utara
vi
function encryptBlock($x) {
$y = "";
for ($i=0; $i<4*$this->Nb; $i++) {
$this->s[$i%4][($i-$i%$this->Nb)/$this->Nb] =
ord($x[$i]);
}
$this->addRoundKey(0);
for ($i=1; $i<$this->Nr; $i++) {
$this->subBytes();
$this->shiftRows();
$this->mixColumns();
$this->addRoundKey($i);
}
$this->subBytes();
$this->shiftRows();
$this->addRoundKey($i);
for ($i=0; $i<4*$this->Nb; $i++)
$y .= chr($this->s[$i%4][($i-$i%$this->Nb)/$this-
>Nb]);
return $y;
}
function decryptBlock($y) {
$x = "";
for ($i=0; $i<4*$this->Nb; $i++)
$this->s[$i%4][($i-$i%$this->Nb)/$this->Nb] =
ord($y[$i]);
$this->addRoundKey($this->Nr);
for ($i=$this->Nr-1; $i>0; $i--) {
$this->invShiftRows();
$this->invSubBytes();
$this->addRoundKey($i);
$this->invMixColumns();
}
$this->invShiftRows();
$this->invSubBytes();
$this->addRoundKey($i);
for ($i=0; $i<4*$this->Nb; $i++) {
$x .= ($this->s[$i%4][($i-$i%$this->Nb)/$this->Nb]
== chr(0) ? "" : chr($this->s[$i%4][($i-$i%$this->Nb)/$this->Nb]));
}
return $x;
Universitas Sumatera Utara
vii
}
function __destruct() {
unset($this->w);
unset($this->s);
}
function KeyExpansion($z) {
static $Rcon = array(
0x00000000,
0x01000000,
0x02000000,
0x04000000,
0x08000000,
0x10000000,
0x20000000,
0x40000000,
0x80000000,
0x1b000000,
0x36000000,
0x6c000000,
0xd8000000,
0xab000000,
0x4d000000,
0x9a000000,
0x2f000000
);
$temp = 0;
for ($i=0; $i<$this->Nk; $i++) {
$this->w[$i] = 0;
$this->w[$i] = ord($z[4*$i]);
$this->w[$i] <<= 8;
$this->w[$i] += ord($z[4*$i+1]);
$this->w[$i] <<= 8;
$this->w[$i] += ord($z[4*$i+2]);
$this->w[$i] <<= 8;
$this->w[$i] += ord($z[4*$i+3]);
}
for (; $i<$this->Nb*($this->Nr+1); $i++) {
$temp = $this->w[$i-1];
if ($i%$this->Nk == 0)
$temp = $this->subWord($this-
>rotWord($temp)) ^ $Rcon[$i/$this->Nk];
else if ($this->Nk > 6 && $i%$this->Nk == 4)
$temp = $this->subWord($temp);
$this->w[$i] = $this->w[$i-$this->Nk] ^ $temp;
$this->make32BitWord($this->w[$i]);
}
}
Universitas Sumatera Utara
viii
function addRoundKey($round) {
$temp = "";
for ($i=0; $i<4; $i++) {
for ($j=0; $j<$this->Nb; $j++) {
$temp = $this->w[$round*$this->Nb+$j] >>
(3-$i)*8;
$temp %= 256;
$temp = ($temp < 0 ? (256 + $temp) :
$temp);
$this->s[$i][$j] ^= $temp;
}
}
}
function invMixColumns() {
$s0 = $s1 = $s2 = $s3= '';
for ($i=0; $i<$this->Nb; $i++) {
$s0 = $this->s[0][$i]; $s1 = $this->s[1][$i]; $s2 =
$this->s[2][$i]; $s3 = $this->s[3][$i];
$this->s[0][$i] = $this->mult(0x0e, $s0) ^ $this-
>mult(0x0b, $s1) ^ $this->mult(0x0d, $s2) ^ $this->mult(0x09, $s3);
$this->s[1][$i] = $this->mult(0x09, $s0) ^ $this-
>mult(0x0e, $s1) ^ $this->mult(0x0b, $s2) ^ $this->mult(0x0d, $s3);
$this->s[2][$i] = $this->mult(0x0d, $s0) ^ $this-
>mult(0x09, $s1) ^ $this->mult(0x0e, $s2) ^ $this->mult(0x0b, $s3);
$this->s[3][$i] = $this->mult(0x0b, $s0) ^ $this-
>mult(0x0d, $s1) ^ $this->mult(0x09, $s2) ^ $this->mult(0x0e, $s3);
}
}
function invShiftRows() {
$temp = "";
for ($i=1; $i<4; $i++) {
for ($j=0; $j<$this->Nb; $j++)
$temp[($i+$j)%$this->Nb] = $this-
>s[$i][$j];
for ($j=0; $j<$this->Nb; $j++)
$this->s[$i][$j] = $temp[$j];
}
}
function invSubBytes() {
for ($i=0; $i<4; $i++)
for ($j=0; $j<$this->Nb; $j++)
$this->s[$i][$j] = $this->invSBox[$this-
>s[$i][$j]];
}
Universitas Sumatera Utara
ix
function mixColumns() {
$s0 = $s1 = $s2 = $s3= '';
for ($i=0; $i<$this->Nb; $i++) {
$s0 = $this->s[0][$i]; $s1 = $this->s[1][$i]; $s2 =
$this->s[2][$i]; $s3 = $this->s[3][$i];
$this->s[0][$i] = $this->mult(0x02, $s0) ^ $this-
>mult(0x03, $s1) ^ $this->mult(0x01, $s2) ^ $this->mult(0x01, $s3);
$this->s[1][$i] = $this->mult(0x01, $s0) ^ $this-
>mult(0x02, $s1) ^ $this->mult(0x03, $s2) ^ $this->mult(0x01, $s3);
$this->s[2][$i] = $this->mult(0x01, $s0) ^ $this-
>mult(0x01, $s1) ^ $this->mult(0x02, $s2) ^ $this->mult(0x03, $s3);
$this->s[3][$i] = $this->mult(0x03, $s0) ^ $this-
>mult(0x01, $s1) ^ $this->mult(0x01, $s2) ^ $this->mult(0x02, $s3);
}
}
function shiftRows() {
$temp = "";
for ($i=1; $i<4; $i++) {
for ($j=0; $j<$this->Nb; $j++)
$temp[$j] = $this->s[$i][($j+$i)%$this-
>Nb];
for ($j=0; $j<$this->Nb; $j++)
$this->s[$i][$j] = $temp[$j];
}
}
function subBytes() {
for ($i=0; $i<4; $i++) {
for ($j=0; $j<$this->Nb; $j++)
$this->s[$i][$j] = $this->sBox[$this-
>s[$i][$j]];
}
}
function mult($a, $b) {
$sum = $this->ltable[$a] + $this->ltable[$b];
$sum %= 255;
$sum = $this->atable[$sum];
return ($a == 0 ? 0 : ($b == 0 ? 0 : $sum));
}
function rotWord($w) {
$temp = $w >> 24;
$w <<= 8;
$this->make32BitWord($w);
$temp = ($temp < 0 ? (256 + $temp) : $temp);
$w += $temp;
return $w;
}
Universitas Sumatera Utara
x
function subWord($w) {
$temp = 0;
for ($i=0; $i<4; $i++) {
$temp = $w >> 24;
$temp = ($temp < 0 ? (256 + $temp) : $temp);
$w <<= 8;
$this->make32BitWord($w);
$w += $this->sBox[$temp];
}
$this->make32BitWord($w);
return $w;
}
function make32BitWord(&$w) {
$w &= 0x00000000FFFFFFFF;
}
}
?>
Universitas Sumatera Utara
xi
Nama : M. Sigit Prasetyo
Tempat, tanggal Lahir : Medan, 7 Oktober 1992
Jenis Kelamin : Laki-laki
Umur : 24 Tahun
Tinggi, berat badan : 170 cm/68 kg
Agama : Islam
Alamat : Jl. Tanjung Permai 3 no 51
Status : Belum Kawin
Telepon/HP : 081260498302
Email : [email protected]
2010 sampai dengan 2013 : D3 Teknik Informatika Universitas Sumatera Utara
2007 sampai dengan 2010 : SMA Negeri 4 Medan
2004 sampai dengan 2007 : SMP Negeri 16 Medan
1998 sampai dengan 2004 : SD Swasta IKAL Medan
Latarbelakang
Pendidikan :
Data Pribadi
Curriculum
Vitae
Universitas Sumatera Utara