Kriptologi
Kriptografi
Kriptanalisis
xii
9
5
95
1
xii
Kriptologi
Kriptografi
Kriptanalisis
SKRIPSI
PENGAMANAN SOAL UJIAN SEKOLAH DENGAN ALGORITMA KRIPTOGRAFI ADVANCE ENCRYPTION STANDARD (AES) DAN METODE STEGANOGRAFI END OF FILE (EOF) PADA SMA NEGERI 1 WELERI
SCHOOL EXAM DATA SECURITY WITH ADVANCE ENCRYPTION STANDARD CRYPTOGRAPHIC ALGORITHM (AES) AND STEGANOGRAPHY END OF FILE (EoF)
ON SMA NEGERI 1 WELERI
Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik Informatika
Disusun oleh :
Nama : Ardiant Yosa Hastaka
NIM : A11.2012.07102
Program Studi : Teknik Informatika-S1
FAKULTAS ILMU KOMPUTER
UNIVERSITAS DIAN NUSWANTORO
SEMARANG
2017
PERSETUJUAN SKRIPSI
Nama : Ardiant Yosa Hastaka
NIM : A11.2012.07102
Program Studi : Teknik Informatika
Fakultas : Ilmu Komputer
Judul Tugas Akhir : Pengamanan Soal Ujian Sekolah Dengan Algoritma Kriptografi Advance Encryption Standard (Aes) Dan Metode Steganografi End Of File (Eof) pada SMA Negeri 1 Weleri
Tugas Akhir ini telah diperikas dan disetujui.
Semarang, 3 Maret 2017
Menjetujui:
Pembimbing,
Mengetahui:
Dekan Fakultas Ilmu Komputer
PENGESAHAN DEWAN PENGUJI
Nama : Ardiant Yosa Hastaka
NIM : A11.2012.07102
Program Studi : Teknik Informatika
Fakultas : Ilmu Komputer
Judul Tugas Akhir : Pengamanan Soal Ujian Sekolah Dengan Algoritma Kriptografi Advance Encryption Standard (Aes) Dan Metode Steganografi End Of File (Eof) pada SMA Negeri 1 Weleri
Tugas akhir ini telah diujikan dan dipertahankan dihadapan Dewan Penguji pada Sidang tugas akhir tanggal 3 Maret 2017. Menurut pandangan kami, tugas akhir ini memadai dari segi kualitas maupun kuantitas untuk tujuan penganugrahan gelar Sarjana Komputer (S.Kom.)
Semarang, 3 Maret 2017
Dewan Penguji:
Anggota 1
Anggota 2
Ketua Penguji
PERNYATAAN KEASLIAN SKRIPSI
Sebagai Mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan di bawah ini, saya :
Nama
: Ardiant Yosa Hastaka
NIM
: A11.2012.07102
Menyatakan bahwa karya tulis ilmiah saya yang berjudul :
Pengamanan Soal Ujian Sekolah Dengan Algoritma Kriptografi Advance Encryption Standard (Aes) Dan Metode Steganografi End Of File (Eof) pada SMA Negeri 1 Weleri
Merupakan karya asli saya (kecuali cuplikan dan ringkasan yang masing – masing telah saya jelaskan sumbernya). Apabila di kemudian hari, karya saya disinyalir bukan merupakan karya asli saya, yang disertai dengan bukti-bukti yang cukup, maka saya bersedia untuk dibatalkan gelar saya beserta hak dan kewajiban yang melekat pada gelar tersebut. Demikian surat pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Semarang
Pada tanggal : 3 Maret 2017
Yang Menyatakan
(Ardiant Yosa Hastaka)
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA
ILMIAH UNTUK KEPENTINGAN AKADEMIS
Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan di bawah ini, saya :
Nama
: Ardiant Yosa Hastaka
NIM
: A11.2012.07102
Demi mengembangkan Ilmu Pengetahuan, menyetujui untuk memberikan kepada Universitas Dian Nuswantoro Hak Bebas Royalti Non-Ekslusif (Non-exclusive Royalty-Free Right) atas karya ilmiah saya yang berjudul:
Pengamanan Soal Ujian Sekolah Dengan Algoritma Kriptografi Advance Encryption Standard (Aes) Dan Metode Steganografi End Of File (Eof) pada SMA Negeri 1 Weleri.
Dengan Hak Bebas Royalti Non-Eksklusif ini Universitas Dian Nuswantoro berhak untuk menyimpan, mengopy ulang (memperbanyak), mendistribusikannnya dan menampilkan / mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya selama tetap mencantumkan nama saya sebagai penulis / pencipta.
Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak Universitas Dian Nuswantoro, segala bentuk tuntutan hukum yang timbul atas pelanggaran Hak Cipta dalam karya ilmiah saya ini.
Demikian surat pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Semarang
Pada tanggal : 3 Maret 2017
Yang Menyatakan
(Ardiant Yosa Hastaka)
UCAPAN TERIMA KASIH
Dengan memanjatkan puji syukur kepada Tuhan Yesus yang telah memberikan wawasan serta pengalaman yang berharga kepada penulis sehingga laporan tugas akhir dengan judul Pengamanan Soal Ujian Sekolah Dengan Algoritma Kriptografi Advance Encryption Standard (Aes) Dan Metode Steganografi End Of File (Eof) pada SMA Negeri 1 Weleri dapat penulis selesaikan sesuai dengan rencana karena dukungan dari berbagai pihak yang tidak ternilai besarnya. Oleh karena itu penulis menyampaikan terima kasih kepada:
Dr. Ir. Edi Noersasongko,M.Kom, selaku Rektor Universitas Dian Nuswantoro Semarang.
Dr. Drs. Abdul Syukur, MM, selaku Dekan Fakultas Ilmu Komputer Universitas Dian Nuswantoro.
Heru Agus Santoso,Ph.D., selaku Ketua Program Studi Teknik Informatika.
Edy Mulyanto, SSi, M.Kom, selaku dosen pembimbing yang telah memberikan bimbingan kepada penulis dalam penyusunan laporan tugas akhir ini.
Erwin Yudi Hidayat, S.Kom, M.CS , selaku dosen wali yang telah memberikan bimbingan serta semangat kepada penulis dalam penyusunan laporan tugas akhir ini.
Dosen-dosen pengampu di Fakultas Ilmu Komputer Teknik Informatika Universitas Dian Nuswantoro Semarang yang telah memberikan banyak ilmu.
Ibu , Bapak serta Adik saya yang tidak pernah lelah memberikan doa serta dukungan kepada penulis untuk maju dan terus berusaha.
Amni Padmawati selaku teman pendamping saya selama menempuh penelitian dan motivasi agar terselesaikannya penelitian ini.
Sahabat-sahabat saya di Universitas Dian Nuswantoro yang selalu memberi dukungan dalam penelitian.
Teman-teman Dewan Perwakilan Mahasiswa yang selalu memberi motivasi sesaan dan dalam penulisan ini.
Rekan-rekan Team 12 Telkom Regional 4 Semarang yang selalu memberi dukungan dan doa agar terus berusaha.
Semoga laporan tugas akhir ini dapat memperluas wawasan dan pengetahuan yang bermanfaat dan berguna sebagaimana fungsinya.
Semarang, 3 Maret 2017
Penulis
ABSTRAK
Kemajuan teknologi telah berkembang pesat, khususnya pada pertukaran informasi yang semakin global. Kemampuan untuk mengakses serta bertukar data sudah sangat cepat. Hal ini juga mempengaruhi dunia kriminalitas pada dunia maya atau lebih dikenal dengan cyber crime. Seorang atau kelompok secara sengaja mengambil dan menyebarluaskan ataupun menggunakan sebuah informasi penting tanpa tanggung jawab. dengan demikian perlunya sebuah pengamanan untuk menjaga kerahasiaan suatu data.
Pengamanan data pada SMA Negeri 1 Weleri terutama pada data soal-soal ujian berangkat dari rentannya data yang berada di computer tanpa pengamanan khusus. Terlebih lagi tentang keluhan bocornya soal-soal ujian yang beredar luas di kalangan siswa dalam bentuk dokumen dalam smartphone mereka. Sehingga dilakukan cara atau metode untuk mengamankan data yang penting terutama soal ujian.
Metode yang akan digunakan dalam penelitian tugas akhir ini adalah AES sebagai algoritma kriptografinya dan End of File sebagai Metode penyisipannya. Sehingga keamanan akan lebih terjaga dengan memperkuat keamanan serta menyembunyikannya dalam suatu berkas yang lain. Hasilnya data akan lebih terjaga kerahasiaannya dan dapat diakses kembali dengan aman. Selain itu dapat diaplikasikan pada tahun-tahun kedepan.
Kata Kunci: Keamanan, kriptografi, steganografi, AES, Eof.
DAFTAR ISI
HALAMAN JUDUL i
PERSETUJUAN SKRIPSI ii
PENGESAHAN DEWAN PENGUJI iii
PERNYATAAN KEASLIAN SKRIPSI iv
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA v
UCAPAN TERIMA KASIH vi
ABSTRAK vii
DAFTAR ISI viii
DAFTAR TABEL x
DAFTAR GAMBAR xi
BAB I PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Rumusan Masalah 3
1.3. Batasan Masalah 3
1.4. Tujuan Penelitian 4
1.5. Manfaat Penelitian 4
BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 5
2.1. Tinjauan Studi 5
2.2. Tinjauan Pustaka 9
2.2.1. Keamanan Data dan File 9
2.2.2. Kriptografi 10
2.2.2.1. Komponen Kriptografi 12
2.2.2.2. Teknik Kriptografi 13
2.2.2.3. Algoritma Kriptografi Klasik 15
2.2.2.4. Algoritma Kriptografi Modern 19
2.2.3. Advance Encryption Standard (AES) 21
2.2.3.1. Enkripsi dan Dekripsi pada AES 22
2.2.4. Steganografi 28
2.2.4.1. Sejarah dan Definisi Steganografi 28
2.2.4.2. Kriteria Steganografi 29
2.2.4.3. Metode End of File 30
2.2.5. Bahasa Pemrograman Python 32
2.3. Kerangka Pemikiran 34
BAB III METODE PENELITIAN 35
3.1. Intrument Penelitian 35
3.2. Prosedur Pengambilan atau Pengumpulan Data 36
3.3. Teknik Analisis Data 36
3.4. Metode yang Diusulkan 36
3.4.1. Prosedur Enkripsi dan Penyisipan File 37
3.4.2. Prosedur Penyisipan Pengambilan ciphertext dengan End of File 38
3.5. Pengujian Metode 42
BAB IV ANALISIS HASIL PENELITIAN DAN PEMBAHASAN 60
4.1. Analisa Kebutuhan Aplikasi 60
a. Kebutuhan perangkat lunak 60
b. Kebutuhan Perangkat Keras 61
4.2. Prodesur Pembuatan Aplikasi 61
4.3. Pemodelan Bisnis 61
4.3.1. Use Case 62
4.3. Persiapan Data 63
4.4. Penghitungan Manual Advance Encryption Standard 66
4.4.1. Enkripsi 66
4.4.2. Dekripsi 73
4.4.3. Ekspansi Kunci (Round Key) 81
4.5. Implementasi Metode pada Python 83
4.5.1. Implementasi Enkripsi dan Penyisipan pada Python Shell 83
4.5.1.1. Enkripsi 84
4.5.1.2. Proses Penyisipan Data 87
4.5.2. Implementasi Pengambilan dan Dekripsi Python Shell 88
4.5.2.1. Proses Pengambian Data 88
4.5.2.2. Dekripsi 89
4.6. Analisis Pengujian Data 91
4.6.1. Pengujian Aplikasi 91
4.6.2. Pengujian Citra 93
BAB V PENUTUP 95
5.1. Simpulan 95
5.2. Saran 96
DAFTAR PUSTAKA xii
DAFTAR TABEL
Tabel 2.1 Ringkasan Penelitian 7
Tabel 2.2 Caesar Cipher dengan interval 3 15
Tabel 2.3 Tiga Buah Versi AES (Ariyus, 2008) 22
Tabel 4.1 Skenario Enkripsi dan Stego 62
Tabel 4.2 Skenario Unstego dan Dekripsi 63
Tabel 4.3 Data Awal Penelitian (Soal Ujian Sekolah dan citra yang digunakan) 65
Tabel 4.4 Ekspansi Kunci 82
Tabel 4.5 Pengujian proses Enkripsi AES 91
Tabel 4.6 Pengujian proses Steganografi EoF 92
Tabel 4.7 Pengujian Proses Ekstraksi Data EoF 92
Tabel 4.8 Pengujian proses Dekripsi AES 93
Tabel 4.9 Pengujian Editing Citra 93
DAFTAR GAMBAR
Gambar 2.1 . Kriptografi dan Kriptanalisis adalah cabang ilmu Kriptologi 13
Gambar 2.2 Bujursangkar Vigenere 18
Gambar 2.3. Proses Enkripsi Algoritma AES-128 23
Gambar 2.4. Input Output dan state array. 24
Gambar 2.5. S-box yang digunakan pada putaran AES. 25
Gambar 2.6. Transformasi SubBytes. (Wikipedia) 26
Gambar 2.7. Tranformasi ShiftRows (Wikipedia). 26
Gambar 2.8. Tranformasi MixCollumns() (Wikipedia) 27
Gambar 2.9. Tranformasi AddRoundKey (Wikipedia) 28
Gambar 2.10. Kerangka Pemikiran 34
Gambar 3.1. Prosedur Enkripsi dan Penyisipan File 37
Gambar 3.2. Metode Dekripsi File 38
Gambar 3.3. Flowchart Enkripsi AES-128 39
Gambar 3.4. Flowchart Dekripsi AES 40
Gambar 3.5. Elemen State dan kunci saat input. 42
Gambar 3.6. Subtitusi Array S dengan S-box AES 44
Gambar 3.7. Pergeseran baris ke-1 45
Gambar 3.8. Hasil pergeseran baris ke-1 dan pergeseran baris ke-2 45
Gambar 3.9. Hasil pergeseran baris ke-2 dan pergeseran baris ke-3 45
Gambar 3.10. Hasil pergeseran baris ke-3 45
Gambar 3.11. Matrix Enkripsi ShfitRow 46
Gambar 3.12. Proses putaran ke-2 hingga ke-6 49
Gambar 3.13. Putaran ke-7 hinggan ke-10 50
Gambar 3.14. S-Box untuk Dekripsi AES 55
Gambar 3.15. Matrix Dekripsi MixCollumn 56
Gambar 3.16. Hasil Dekripsi AES 58
Gambar 4.1. Block dari File Asli 66
Gambar 4.2. Python Shell 83
Gambar 4.3. Header yang diimport dalam program 84
Gambar 4.4. Fungsi dalam membentuk blok-blok AES 84
Gambar 4.5. Source Code AES 85
Gambar 4.6. Prosedur Pemanggilan AES 85
Gambar 4.7. Enkripsi Plaintext 85
Gambar 4.8. File Terenkripsi atau Ciphertext 86
Gambar 4.9. Fungsi penyisipan citra 87
Gambar 4.10. Cara penyisipan citra 87
Gambar 4.11. Source Code Pengekstraksian Data dari Citra 88
Gambar 4.12. Proses Pengekstraksian Data 89
Gambar 4.13. Fungsi dekripsi ciphertext 89
Gambar 4.14. Prosedur dekripsi ciphertext 90
Gambar 4.15. Dekripsi Ciphertext 90
BAB I
PENDAHULUAN
Latar Belakang
Teknologi informasi di era globalisasi saat ini telah mengalamai kemajuan yang pesat. Bidang informasi pun tidak luput dari pengaruh perkembangan saat ini. Kemampuan untuk mengakses dan menyediakan informasi secara cepat dan akurat menjadi sangat esensial bagi sebuah organisasi baik itu komersial, lembaga pemerintahan maupun individual (pribadi) [1]. Selaras dengan kemajuan teknologi, tidak kriminal yang marak terjadi adalah cyber crime atau kejahatan melalui internet. Beragam kejahatan yang terjadi di dunia maya, seperti yang kita kenal yaitu hacker, cracker, phreaker dan sebagainya. Data yang berada di internet pun bermacam-macam kepentingannya, mulai dari sesuatu yang disebarluaskan hingga informasi penting yang hanya orang tertentu yang boleh mengaksesnya, oleh sebab itu keamanan dan kerahasiaan data menjadi aspek penting dalam pertukaran dan pengambilan informasi pada saat ini [2].
Pengamanan data sangat dibutuhkan dalam pertukaran informasi. Informasi yang diambil ataupun ditukar mempunyai bermacam-macam jenis, seperti text, audio, video maupun gambar (citra). Perkembangan teknologi juga mempengaruhi pertukaran informasi saat yang dapat terjadi dengan sangat cepat dan singkat sehingga sangat rentan terjadi pencurian informasi dan manipulasi data yang kemudian disebarluaskan kembali.
Awal Mei 2016 lalu, Kiddicare sebuah pusat penjualan mainan dan asesoris anak-anak di Britania Raya ini telah diretas. Sebanyak 794 ribu akun yang termasuk nama, nomor telepon, email serta alamat rumah masing-masing pelanggan telah berhasil tersimpan dalam database sang peretas. Kecurigaan ini bermula dari pelanggan yang menerima pesan berisi link berisikan survei online, kegiatan ini lebih dikenal dengan nama phising (pengelabuhan) [3]. Sedangkan di Indonesia yang saat ini telah masuk pada era teknologi, dimana
hampir segala sesuatunya dilakukan dengan komputasi dan gadget. Buktinya ujian nasional yang telah diselenggarakan menggunakan computer atau lebih dikenal UNBK (Ujian Nasional Berbasis Komputer). Tidak hanya di UN, soal-soal Ujian Tengah Semester, Ujian Akhir Semester maupun Ujian Kenaikan Kelas serta yang terpenting adalah Ujian Sekolah dibuat menggunakan komputer terutama pada SMA Negeri 1 Weleri. File-file yang berceceran di dalam computer dapat dengan mudah dibongkar jika hanya mengandalkan keamanan dasar dari komputer itu sendiri. Karena itu diperlukan sebuah metode khusus dalam pengamanannya agar dapat meningkatkan kerahasiaan informasinya.
Teknik dalam pengamanan data yang dibutuhkan kali ini adalah kriptografi dan steganografi. Kedua teknik ini sangatlah sering digunakan dalam pengamanan-pengaman data yang dikatakan penting bagi suatu kegiatan tertentu. Seperti halnya pada algoritma kriptografi yang merupakan seni dalam merahasiakan pesan [1]. Dengan pola-pola tertentu, perhitungan-perhitungan matematika yang akurat, dan perkembangannya yang pesat, membuat kriptografi menjadi "seni" utama dalam pengamanan data pada saat ini. Algoritma kriptografi yang sering dipakai adalah Advance Encryption Standard(AES), RSA, Hill Cipher, Vigenere, Data Encryption Standard(DES), MD5,dan sebagainya. Algoritma yang akan digunakan pada penelitian ini adalah Advance Encryption Starndard (AES).
AES atau sering disebut Rijndael ini merupakan standard kriptografi yang ditetapkan National Institute of Standards and Technology (NIST) sebagai pengganti DES karena algoritma DES mempunyai kelemahan yang cukup fatal. Sehingga pada bulan Oktober 2000, NIST menentapkan AES sebagai algoritma standard kriptografi yang masih bertahan hingga saat ini [2].
Tidak luput dari algoritma pengamanan saja, dalam hal merahasiakan data steganografi pun ikut memberi kontribusi yang besar, terutama dalam penyisipan data yang dirahasiakan. Steganografi sendiri menurut Rinaldi Munir [2] merupakan teknik menyembunyikan data rahasia di dalam wadah (media) digital sehingga keberadaan data rahasia tersebut tidak diketahui oleh orang. Ada beberapa macam metode untuk penyembunyian pesan, diantaranya : Least Significant Bit(LSB), Least Significant Bit Matching Revisited(LSBMR), Discrete Cosine Transformation (DCT), Wavelet Transformation, Redundant Pattern Encoding, End of File(Eof), dan Spread Spectrum. Metode yang akan digunakan dalam penelitian ini adalah End of File (Eof) yang pada penelitian sebelumnya [4] menggunakan algoritma kriptografi Data Encryption Standard (DES) dan seperti yang dibahas pada latar belakang ini bahwa DES mempunyai kelemahan dalam pengamanan data sehingga disempurnakan dengan algoritma AES.
Dari masalah diatas maka penulis mengajukan judul penelitian "Pengamanan Soal Ujian Sekolah dengan Algoritma Kriptografi Advance Encryption Standard (AES) dan Metode Steganografi End of File (Eof) pada SMA Negeri 1 Weleri".
Rumusan Masalah
Dari latar belakang diatas dapat disajikan rumusan masalah sebagai berikut :
Bagaimana hasil enkripsi data dari Algoritma Advance Encryption Standard dan Metode End of File.
Bagaimana kualitas data sebelum dan sesudah melalui proses kriptografi dan steganografi?
Batasan Masalah
Penelitian ini mempunyai batasan penelitian pada Algoritma Advance Encryption Standard (AES-128) dan Metode End of File (Eof) serta hanya melakukan uji coba pada data berformat *.doc dan *.docx. Penelitian akan diimplementasikan pada Aplikasi berbasis Python serta objeknya adalah Soal Ujian Sekolah pada SMA Negeri 1 Weleri.
Tujuan Penelitian
Tujuan dari selesainya penelitian ini adalah mengamankan data Soal Ujian Sekolah dengan menggunakan Algoritma Advance Encryption Standard (AES) dan Metode End of File (Eof) serta mempertahankan kualitas data yang di amankan, dan diimplementasikan pada aplikasi keamanan data.
Manfaat Penelitian
Manfaat yang didapat pada akhir penelitian ini adalah :
Manfaat bagi Universitas
Memberi kontribusi pada literature yang terkait tentang Teknologi Informatika di bidang Keamanan.
Manfaat bagi Akademik
Penelitian ini dapat menjadi sebuah contoh nyata tentang pembelajaran, pemahaman serta penguasaan teori maupun praktikum yang didapat dalam bangku perkuliahan.
Manfaat bagi Instansi atau Sekolah
Penelitian ini akan menghasilkan sebuah pengamanan data, terlebih data penting seperti Soal Ujian maupun data lain yang hanya pihak penerima dan pengirim yang boleh mengetahuinya. Sehingga data dapat secara aman tersimpan maupun terkirim.
Manfaat bagi Penulis
Penulis mampu menerapkan ilmu tentang Kriptografi dan Steganografi yang telah didapat selama menempuh jenjang perkuliahan.
Memberikan pengalaman tersurat yang akan berguna dalam dunia kerja diluar akademi.
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
Tinjauan Studi
Sebelum melakukan penelitian terkait masalah yang akan diteliti, penulis terlebih dahulu mencari referensi yang telah ada tentang metode End of File (EoF) serta penelitian tentang algoritma Advance Encryption Standard (AES) sebagai teknik pengamanan data. Berikut ini adalah penilitian-penelitian terkait tentang masalah yang akan dibahas.
Penelitian pertama adalah penelitian oleh Yayuk Anggraeni dan Dolly Virgian Shaka Yudha Sakti dengan judul "Penerapan Steganografi Metode End of File (EoF) Dan Enkripsi Metode Data Encryption Standard (DES) Pada Aplikasi Pengamanan Data Gambar Berbasis Java Programming" [4]. Penelitian ini mengambil data dari Jogjack Factory Oulet yang merupakan perusahaan dalam bidang fashion di Jakarta pada tahun 2014. Algorutma pengamanan yang digunakan adalah Data Encryption Standard serta melakukan penyisipan dengan metode End of File. Bahasa Pemrograman yang digunakan adalah Java. Penelitian ini memfokuskan pada pengamanan DESign yang pada pengolahannya dikirim melalui internet sedangkan pada masa ini banyak oknum-oknum yang tidak bertanggungjawab dengan mencuri data melalui internet. Jika data DESign produk ini tercuri, perusahaan akan mendapatkan rugi yang besar. Oleh itu dibuatlah program untuk pengirim dan penerima agar dengan aman dalam bertransaksi data. Karena itu dibuatlah penelitian yang penghasilkan program untuk mengenkripsi data dengan algoritma Data Encryption Standard sebagai algoritma kriptografi modern serta penyisipan file dengan menggunakan metode End of File. Penyisipan dan penampilan data yang disembunyikan dalam penelitian ini dapat dikatakan sukses karena data rahasia dapat di keluarkan dengan tidak mempengaruhi kualitas, meskipun pada hasil penyisipan terdapat penambahan ukuran file yang menyebabkan ruang penyimpanan harus lebih besar.
Penelitian kedua adalah penelitian milik Adetya Krisna Prastyo dengan judul "Pengamanan Data Dengan Metode Advanced Encryption Standard Dan Metode Least Significant Bit" [5]. Algoritma yang digunakan dalam penelitian ini adalah Advanced Encryption Standard sebagai kriptografinya dan Least Significant Bit pada penyisipan atau steganografinya. Data yang digunakan oleh mahasiswa Universitas Dian Nuswantoro jurusan Teknik Informatika angkatan 2010 ini adalah data dalam bentuk Portable Document Format atau lebih dikenal dengan file dengan ekstensi pdf. Aplikasi yang digunakan adalah Visual Basic 2008 untuk kriptografin dan Ultima Steganography dalam penyisipannya. Penelitian ini menghasilkan program untuk membuat data file menjadi lebih aman karena telah tereknkripsi dengan algoritma Advanced Encryption Standard. Dalam penyisipannya juga tidak mengubah banyak kulaitas citra yang digunakan untuk media penyisipan, karena metode LSB lebih kepada pengubahan bit terakhir dari setiap warna dalam gambar sehingga kualitas dan ukuran gambar setelah dilakukan penyisipan tidak berubah secara kontrast. Hasil penyisipan juga tidak boleh dikakukan cropping atau pemotingan, penambahan brightness dan penambahan contrast karena dapan menyebabkan file yang disipan menjadi corrupt atau rusak.
Penelitian terakhir adalah milik Christy Atika Sari M.Kom dan Eko Hari Rachmawanto M.Kom yang berjudul "Gabungan Algoritma Vernam Cipher Dan End of File Untuk Keamanan Data"[6]. Algoritma yang digunakan adalah Vernam Cipher dan penyisipan dengan End of File. Data yang digunakan dalam penelitian ini menggunakan file .pdf sebagai file yang akan diamankan dan file .mp3 sebagai media penyisipan. Aplikasi yang digunakan untuk membuat program dalam penelitian ini adalah Visual Basic 6.0. Peneliti menggunakan Vernan Cipher karena termasuk kriptografi yang berjeni symmetric key, yaitu kunci yang digunakan dalam enkripsi maupun dekripsi adalah sama. Selai itu dalam proses enkripsi, Vernan Cipher menggunakan cara stream cipher yang berasal dari hasil XOR antara bit plaintext dengan bit key. Penyisipannya menggunakan End of File karena End of File langsung menambahkan data di akhir file. File hasil dari proses penyisipan juga dapat di keluarkan dengan baik. Tidak hanya pada file pdf, dalam penelitian ini juga di sebutkan telah menggunakan pada ukuran dan jenis file yang berbeda serta hasil yang sama-sama baik, hanya saja ukuran dari hasil file penyisipan bertambah dikarenakan ukuran hasil penyisipan adalah gabungan dari file asli dan file media penyisipan.
Tabel 2.1 Ringkasan Penelitian
Peneliti
Judul
Metode
Tahun
Hasil Penelitian
Yayuk Anggraeni dan Dolly Virgian Shaka Yudha Sakti
Penerapan Steganografi Metode End of File (EoF) Dan Enkripsi Metode Data Encryption Standard (DES) Pada Aplikasi Pengamanan Data Gambar Berbasis Java Programming
End of File (EoF) dan Data Encryption Standard (DES)
2014
Pembuatan Program pengamanan data DESain berupa citra dengan Java pada Jogjack Factory Oulet. File yang disisipkan tidak merubah kualitas gambar dan hasil dari pesyisipan menambah ukuran file.
Adetya Krisna Prastyo
Pengamanan Data Dengan Metode Advanced Encryption Standard Dan Metode Least Significant Bit
Advance Encryption Standard (AES) dan Least Significant Bit (LSB)
2014
Pembuatan program pengamanan data berextensi .pdf dengan Visual Basic 2008, dan penyisipan menggunakan Ultima Steganography. Ukuran file hasil enksipsi dan penyisipan tidak terlalu besar karena menggunakan LSB namun kekurangannya file asli akan corrupt atau rusak jika file hasil di potong, diubah kecerahan atau kontrasnya.
Christy Atika Sari M.Kom dan
Eko Hari Rachmawanto M.Kom
Gabungan Algoritma Vernam Cipher Dan End of File Untuk Keamanan Data
Vernam Cipher dan End of File (EoF)
2014
Menghasilkan program untuk mengenkripsi atau dekripsi dan menyisipkan file berbasis Visual Basic 6.0. Teknik pengamanan dapat diimplementasikan tidak hanya pada file berekstensi .pdf yang akan disisipkan pada file .mp3. hasil penyisipan mengubah ukuran file karena ukuran file hasil adalah gabungan dari file asli dan file yang disisipi.
Dari uraian diatas dapat disajikan perbedaan dari penelitian penulis terhadap penelitian-penelitian sebelumnya. Berikut ini perbedaannya:
Data yang akan digunakan dalam penelitian ini adalah Soal Ujian Sekolah tahun 2016 milik SMA Negeri 1 Weleri.
Data yang akan diproses lebih diutamakan pada file yang berformat .docx dan .doc. dan penyisipan pada citra yang bersangkutan di SMA Negeri 1 Weleri seperti gambar lapangan, kantor atau yang lainnya untuk mengecoh oknum yang tidak bertanggung jawab.
Algoritma yang akan dipakai dalam penelitian ini berbatas pada Algoritma Advance Encryption Standard (AES) dan metode steganografi End of File (EoF).
Tools yang akan digunakan pada penelitian ini adalah WinPython untuk Bahasa pemograman Python versi 3.4.
Tinjauan Pustaka
Keamanan Data dan File
Pengolahan data pada saat ini sudah menggunakan teknologi yang telah berkembang. Manusia modern pada saat ini dapat mengolah data-data penting dan menjadikannya dalam satu tempat, yang biasa disebut dengan file. Berikut definisi file menurut para ahli:
Menurut Hendrayudi, "File adalah data-data yang tersimpan dalam media yang mempunyai informasi besar file, tanggal & jam penyimpanan file, nama file, ciri file (ciri aplikasi yang membuat), & attribut file."
Lain halnya dengan McLeod (PEARSON) yang mengatakan "File adalah koleksi record yang saling berhubungan, seperti satu file dari seluruh record yang berisi field kode-kode mata kuliah & namanya."
Sedangkan definisi lain adalah menurut Edi S. Mulyanta yang mengatakan, "File merupakan urutan data yang digunakan untuk melakukan encode informasi digital untuk urusan penyimpanan & pertukaran data."
Dari keterangan diatas dapat disimpukan bahwa File adalah kumpulan data yang berisi informasi penting yang disimpan dalam wadah digital dalam pertukaran data.
Pengolahan data terjadi dalam komputer, sedangkan pada masa kini sering terjadi pencurian data yang menyebabkan kerugian besar bagi pemilik atau penerima data. Ancaman-ancaman yang terjadi meliputi Pengrusakan (Interuption), penyadapan (Interception), modifikasi (Modification), dan pemalsuan (Fabrication). Maka perlu diperhatikan aspek-aspek keamanan seperti berikut [2]:
Authentication
Adalah keaslian pesan, yaitu penerima dapan mengkonformasi bahwa data memang benar dari sang pengirim.
Integrity
Adalah kepastian bahwa data tidak dimodifikasi saat sampai kepada penerima.
Non-repudiation
Merupakan hal yang berhubungan dari pengirim, sehingga pengirim tidak dapat berbohong bahwa dialah yang mengirimkan data tersebut.
Authority
Informasi yang berada dalam system jaringan tidak dapat dimodifikasi oleh pihak yang tidak berhak untuk mengaksesnya.
Confidentiality
Merupakan usaha untuk menjaga informasi dari orang yang tidak berhak mengaksesnya.
Privacy
Merupakan data-data yang bersifat pribadi.
Availability
Berhubungan dengan ketersediaan informasi ketika dibutuhkan.
Access Control
Merupakan cara akses kepada informasi, biasanya berupa otentikasi dan privasi. Contohnya pada input username dan password.
Karena keamanan data sangatlah penting, perkembangan saat I telah banyak metode-metode pengamanan. Yaitu kriptografi dan setganografi serta watermarking.
Kriptografi
Kriptografi atau Cryptography berasal dari Bahasa Yunani "cryptos" yang artinya rahasia dan "graphein" yang artinya tulisan. Jadi kriptografi pada awalnya berarti tulisan rahasia [1]. Namun semakin berkembanganya ilmu pengetahuan sehingga muncul definisi-definisi baru tentang kriptografi.
Dony Ariyus dalam bukunya yang berjudul Pengantar Ilmu Kriptografi mengatakan, "Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain".
A. Menezes, P. van Oorschot dan S. Vanstone dalam buku Handbook of Applied Cryptography menulis, "Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi".
Sedangkan Rinaldi Munir mengatakan, "Kriptografi adalah sebuah disiplin ilmu karena teknik-teknik kriptografi dapat diformulasikan secara matematik sehingga menjadi sebuah metode yang formal".
Menurut definisi diatas, kriptografi mempunyai tujuan memberi layanan sebagai berikut:
Kerahasiaan
Kriptografi dapat membuat pesan tidak dapat dibaca oleh sembarang pihak, terutama pihak yang tidak berwenang dan bertanggung jawab.
Integritas data
Data yang diterima oleh sang penerima pesan adalah utuh dan tidak kurang satu apapun serta tidak ada manipulasi selama pengiriman.
Otentifikasi
Sang penerima dan pengirim dapat meyakin kan bahwa pesan yang dikirim benar adanya dan sampai dari pengirim ke penerima.
Nirpenyangkalan
Sebagai pencegahan sebuah penyangkalan dalam berkomunikasi pesan, yaitu pengirim menyangkal telah mengirim pesan atau penerima telah menyangkal telah menerima pesan. [1]
Dapat di simpulkan bahwa kriptografi merupakan sebuah metode matematis untuk mengamankan sebuah pesan untuk menjaga kerahasiaan, integritas data serta otentikasi dari data yang dirahasiakan.
Komponen Kriptografi
Pada dasarnya kriptografi memiliki beberapa komponen penting dalam pelaksanaannya [1] [2], seperti:
Enkripsi
Merupakan hal yang sangan penting dalam kriptografi, berupa cara pengamanan data yang dikirimkan sehingga terjaga kerahasiaannya. Enkripsi bisa diartikan sebagai cipher atau kode. Ketika tidak mengerti sebuah kata maupun kalimat, dalam pengartiannya akan menggunakan kamus. Namun berneda dengan enkripsi, untuk mengubah text biasa ke dalam bentuk kode menggunakan algoritma yang dapat mengkodekan data yang diinginkan.
Dekripsi
Merupakan kebalikan dari enkripsi, yaitu mengembalikan pesan yang sudah di enkripsi menjadi ke bentuk asalnya. Algoritmanya pun erbeda dengan yang digunakan pada saat enkripsi sebuah data.
Kunci / Key
Merupakan parameter yang digunakan untuk melakukan proses enkripsi maupun dekripsi. Kunci hanya diketahui oleh pengirim dan penerima karena kerahasiaannya untuk mengamankan data. Biasanya berupa string atau deretan bilangan. Kunci dalam kriptografi dibagi menadi dua yaitu kunci rahasia (private key) dan kunci public (public key).
Ciphertext
Algoritma kriptografi dapat disebut juga dengan cipher, sedangkan ciphertext merupakan pesan hasil dari enkripsinya. Pesan yang ada pada ciphertext tidak dapat dibaca karena berupa karakter-karakter yang tidak mempunyai makna atau atri.
Pesan / Plaintext
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain dari pesan adalah plaintext atau cleartext. Pesan yang tersimpan tidak hanya berupa text, tetapi juga dapat berupa citra (image), suara (audio), arsip (document) , maupun video.
Cryptanalysis dan Cryptology
Cryptanalysis adalah ilmu dan seni untuk memecahkan ciphertext menjadi plaintext tanpa mengetahui kunci atau algoritma yang digunakan. Pelaku yang melakukan cryptanalysis disebut Kriptanalis. Sedangkan Cryptology merupakan sebuah studi mengenai kriptografi dan kriptanalisis, karena kriptografi maupun kriptanalisis keduanya saling bersangkutan seperti pada gambar 2.1 yang menunjukan pohon kriptologi.
Gambar 2.1 . Kriptografi dan Kriptanalisis adalah cabang bidang ilmu Kriptologi
Teknik Kriptografi
Teknik Kriptografi pada umumnya dibedakan menjadi dua yaitu symmetric key (kunci simetrik) dan asymmetric key (kunci asimetris atau kunci publik).
Symmetric Algorithm
Algoritma kriptografi simetris atau kriptografi konvensional adalah algoritma yang menggunakan kunci enkripsi sama dengan kunci dekripsi Skemanya disebut symmetric-key jika kunci enkripsi sama dengan kunci dekripsi.
Dalam implementasinya, pengirim maupun penerima harus memilih salah satu kunci yang akan digunakan untuk enkripsi maupun dekripsi. Kunci yang digunakan haruslah rahasia karena hanya pengirim dan penerima yang mengetahui kunci tersebut.
Kelebihan dari algoritma ini adalah pengiriman pesan dari pengguna yang berbeda juga mempunyai kunci yang berbeda pula, sehingga kerahasiaan data akan terjamin jika pengirim maupun penerima tidak menyebarluaskannya.
Contoh algoritma terkenal yang menggunakan kunci simetris adalah Data Encryption Standard (DES), Advance Encryption Standard (AES), TwoFish.
Asymmetric Algorithm
Algoritma kriptografi asimetris sangatlah berbeda dengan algoritma simetris dikarenakan kunci yang digunakan pada proses enkripsi berbeda dengan proses dekripsi. Proses enkripsi memiliki kunci yang disebut Proses enkripsi memiliki kunci umum disebut public key yaitu kunci yang diketahui semua orang, namun pada proses dekripsi pada algoritma ini hanya diketahui oleh penerima, biasanya disebut private key atau kunci pribadi.
Kelebihan dari algoritma ini adalah pendistribusian kunci yang lebih aman serta jumlah kunci yang lebih sedikit. Sedangkan kekurangannya ada pada pemrosesannya karena algoritmanya lebih panjang dibandingkan kunci simetris.
Contoh algoritma yang memakai asymmetric-key adalah Rivest-Shamir-Adleman (RSA), Digital Signature Algorithm (DSA), serta ElGamal.
Algoritma Kriptografi Klasik
Pada dasarnya , kriptografi dibagi menjadi dua pengelompokan algoritma menurut perkembangannya. Algoritma ini dibagi menjadi algoritma kriptografi klasik dan algoritma kriptografi modern. Berikut ini adalah beberapa uraian dari algoritma kriptografi klasik yang sering digunakan dalam pengamanan data [1].
Caesar Cipher
Algoritma Caesar cipher ini menjadi algoritma dengan teknik subtitusi tertua yang pernah diketahui. Pencetusnya sendiri adlah kaisar Romawi Julius Caesar untuk menyandikan pesan yang dia kirim kepada gubernurnya, sehingga dinamakan Caesar cipher.
Pada Caesar cipher, tiap hurufnya disubtitisikan dengan huruf berikutnya pada interfal yang ditentukan dari sususan alphabet yang sama. Contohnya pada tabel 2 dibawah ini menunjukan sebuah tabel subtitusi dengan interval 3 huruf.
Tabel 2.2 Caesar Cipher dengan interval 3
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
Dari tabel tersebut dapat diimplementasikan pada plaintext "MAHASISWA SEMSTER AKHIR" menjadi seperti dibawah ini :
Plaintext:
MAHASISWA SEMESTER AKHIR
Chipertext:
PDKDVLVZD VHPHVWHU DNKLU
Kunci dalam Caesar cipher adalah jarak dari pergesannya itu sendiri. Secara umum untuk pergeseran huruf alphabet sejauh yang diinginkan (k) menggunakan fungsi sebagai berikut:
Enkripsi: C=EP=P+k mod 26 (2.1)
Dekripsi: P=DC=C-k mod 26 (2.2)
Sedangkan untuk enkripsi maupun dekripsi pesan yang disusun dari bilangan ASCII, persamaan diatas dapat diperluas menjadi:
Enkripsi: C=EP=P+k mod 256 (2.3)
Dekripsi: P=DC=C-k mod 256 (2.4)
Affine Cipher
Affine Cipher merupakan pengembangan dari Caesar cipher, yaitu mengalikan plaintext dengan sebuah nilai dan menambahkannya dengan sebuah pergeseran. Enkripsi plaintext P untuk menghasilkan ciphertxt C dapat dinyatakan melalui fungsi berikut:
Enkripsi: C=mP+b(mod n) (2.5)
C : Ciphertext
m : bilangan bulat yang harus relative prima.
n : ukuran alphabet
P : pesan atau plaintext
B : jumlah pergeseran
Untuk melakukan dekripsi, fungsi diatas harus dipecahkan agar memperoleh P. Solusi tersebut hanya ad ajika inversi m (mod n), dinyatakan dengan m-1. Sehingga fungsi dekripsi dapat dituliskan seperti:
Dekripsi: P=m-1(C-b)(mod n) (2.6)
C : Ciphertext
m-1 : inverse dari m (mod n).
n : ukuran alphabet
P : pesan atau plaintext
b : jumlah pergeseran
Misalkan untuk enkripsi plaintext "KRIPTO", jika dijabarkan dengan bilangan alphabet menjadi (10 17 8 15 19 14). Di enkripsi affine cipher dengan mengambil m = 7 (karena 7 relatif prima dengan 26) dan b = 10. Karena alphabet yang digunakan 26 maka n = 26. Sehingga akan muncul fungsi sebagai berikut.
C=7P+10mod 26
Perhitngannya sebagai berikut :
p1=10 c1 7.10 + 10 (80 mod 26) 2 "C"
p2=17 c2 7.17 + 10 (129 mod 26) 25 "Z"
p3=8 c3 7 . 8 + 10 (66 mod 26) 14 "O"
p4=15 c4 7.15 + 10 (115 mod 26) 11 "L"
p5=19 c5 7.19 + 10 (143 mod 26) 13 "N"
p6=14 c6 7.14 + 10 (108 mod 26) 4 "E"
Ciphertext : CZOLNE
Untuk proses dekripsinya, dihitung dulu 7-1 (mod 26), yang dapat dihitung dengan dipecahkan menjadi fungsi :
7x 1 (mod 26)
Solusinya adalah x = 15 (mod 26) sebab 7.15 = 105 1 (mod 26). Jadi untuk dekripsi digunakan rumus :
P 15(C-10)(mod 26)
Perhitungannya sebagai berikut:
c1=2 p1 15 (2 – 10) = (-120 mod 26) 10 "K"
c2=25 p1 15 (25 – 10) = (225 mod 26) 17 "R"
c3=14 p1 15 (14 –10) = (60 mod 26) 8 "I"
c4=11 p1 15 (11 –10) = (15 mod 26) 15 "P"
c5=13 p1 15 (13 –10) = (49 mod 26) 19 "T"
c6=4 p1 15 (4 – 10) = (-90 mod 26) 14 "O"
Plaintext akan kembali menjadi KRIPTO
Vigenere Cipher
Vigenere menjadi sebuah cipher alphabet-majemuk manual terbaik. Algoritma ini diciptakan oleh diplomat sekaligus sorang kriptologis dari Prancis, bernama Blaise de Vigenere pada tahun 1553. Dipublikasikan pada tahun 1586 dan berkembang luas 200 tahun kemudian. Cipher ini juga sudah dipecahkan pada pertengahan abad 19 oleh Babbage dan Kasiski.
Dalam sejarahnya Vigenere Cipher digunakan oleh Tentara Konfiderasi pada Perang Sipil Amerika hanya saja cipher ini berhasil dipecahkan sebelum perang sipil terjadi.
Alat untuk enkripsi dan dekripsi Vigenere sendiri sangatlah simple. Menggunakan bujursangkar Vigenere seperti yang ada pada Gambar 2.2.
Gambar 2.2 Bujursangkar Vigenere
Kolom paling kiri merupakan kolom fungsi, sedangkan baris paling atas merupakan plaintextnya. Setiap baris didalam bujursangkar menyatakan huruf-huruf ciphertext yang diperoleh dengan CAESar cipher, yang mana jumlah pergeseran huruf plaintext ditentukan nilai numerik kunci tersebut.
Masih ada lagi Algoritma kriptografi klasik yang masih banyak dipakai sebagai pengamanan maupun bahan pelajaran pada saat ini seperti Playfair Cipher dan Enigma Cipher. Algoritma Kriptografi klasik sudah jarang dipakai karena keamanannya yang mudah ditembuh oleh pada kriptoanalis, oleh karena itu muncul algoritma-algoritma baru dalam lingkup Algoritma Kriptografi Modern.
Algoritma Kriptografi Modern
Perkembangan jaman membuat pemikir-pemikir algoritma menciptakan banyak algoritma keamanan dengan kesulitan lebih tinggi, namun pada hakekatnya tidak lepas dari kriptografi klasik hanya saja penekanannya yang lebih berbeda. Kriptografi klasik menggunakan algoritma yang sederhana sehingga mudah untuk dipecahkan. Kriptografi modern menggunakan algoritma yang lebih kompleks dari kriptografi klasik sehingga para kriptanalis sendiri akan kesulitan dalam pemecahannya karnan membutuhkan kunci yang sesuai.
Algoritma kriptografi modern kebanyakan tidak menggunakan karakter pada enkripsinya, lebih pada penggunaan mode bit. Operasi dalam mode bit berarti semua data yang diproses meliputi plaintext, key, atau ciphertext dinyatakan dalam rangkaian bit biner, yaitu 0 dan 1 [9].
Kunci yang digunakan dalam algoritma kriptografi modern dapat berupa kunci simetri maupun kunci asimetri. Kunci simetri dalam kriptografi modern dikelompokan menjadi dua bagian, yaitu stream cipher (cipher aliran) dan block cipher (cipher blok).
Stream Cipher
Stream Cipher atau cipher aliran dasarnya beroprasi pada plaintext maupun ciphertext yang diubah menjadi bit per bit atau byte per byte. Algoritma klasik yang menggunakan jenis ini adalah Vigenere cipher dan one-time pad cipher. Diperkenalkan pertama kali oleh Vernan melalui algoritmanya yang terkenal yaitu Vernan cipher. Vernan mengadopsi dari one-time pad cipher yang dalam hal ini tiap karakter diubah menjadi bit. Algoritma kriptografi modern yang menggunakan jenis stream cipher ini adalah RC4 (Ron's Code berasal dari nama salah satu pengembang Algoritma RSA) dan A5 (algoritma yang sering digunakan pada enkripsi signal percakapan telepon).
Block Cipher
Block Cipher bisa juga disebut cipher block rangkaian bit-bit plaintext akan dibagi menjadi blok-blok bit dengan panjang yang sama, umumnya 64 bit hanya terkadang beberapa algoritma menggunakan bit lebih dari itu. Kriptografi modern tidak akan lepas dari kriptografi klasik, karena dasar dari kriptografi modern adalah teknik-teknik dari kriptografi klasik. Kriptografi klasik yang digunakan adalah subtitusi, transposisi atau permutasi, ekspansi, kompresi. Plaintext dalam block cipher dibagi menjadi beberapa blok dengan panjang tetap. Beberapa mode operasi untuk melakukan nkripsi dalam hal ini adalah sebagai berikut :
Electronic Code Book (EBC)
Cipher Block Chaining (CBC)
Cipher Feedback (CFB) dan
Output Feedback (OFB).
Beberapa algoritma kriptografi yang memakai cipher block adalah Data Encryption Standard (DES), Double DES, Tripe DES (3DES), RC5, GOST, dan algoritma yang digunakan pada penelitian ini yaitu Advance Encryption Standard (AES).
Advance Encryption Standard (AES)
Tahun 2001, National Institute of Standards and Technology (NIST) mempublikasikan Advance Encryption Standard (AES) sebagai algoritma kriptografi yang masih digunakan sampai saat ini. AES menggantikan DES (Data Encryption Standard) karena keamanan algoritma DES yang lemah. Terbukti pada tahun 1998, 70 ribu PC di internet mampu membobol satu kunci DES dalam kurun waktu 96 hari, tahun 1999 dalam waktu 22 hari. Hingga akhirnya dibangun mesin untuk membongkar kunci DES yang dapat memecahkan 25% kunci dalam 2,3 hari dan dapat memecahkan keseluruhan kunci pada 4,5 hari [2].
NIST mengumumkan sayembara untuk membuat algoritma standard kriptografi, hingga pada bulan Agustus 1998 NIST memilih 5 finalis dari 15 proposal yang masuk berdasarkan aspek keamanan algoritma, efisiensi dan fleksibilitas serta kebutuhan memory dalam pengoprasiannya. Finalis tersebut adalah :
Rijndael (Vincent Rijmen dan Joan Daemen dari Belgia)
Serpent (Ross Anderson, Eli Biham, dan Lars Knudsen dari Inggris).
Twofish (Tim Kriptografi diketuai Bruce Scheiner dari USA).
RC6 (Ron's Code dari Laboratorium RSA - USA)
MARS (dari International Business Machines / IBM)
Tahun 2000 pada bulan Oktober, NIST mengumumkan Rijndael sebagai Advance Encryption Standard (AES) pengganti Data Encryption Standard (DES). Rijndael berhasil menyingkirkan lawan-lawannya dengan 86 suara [1]. Algoritma ini dipilih NIST karena memiliki keseimbangan antara keamanan dan fleksibilitas dalam berbagai planform software dan hardware yang ada pada saat ini [2].
Algoritma Rijndael dasarnya sama pada algoritma DES yang menggunakan subtitusi dan permutasi serta sejumlah putaran atau cipher berulang. Berbeda dengan DES yang pemrosesannya berorientasi pada bit, Rijndael beroprasi pada orientasi byte sehingga dapat secara fleksibel saat diimplementasikan dalam berbagai software atau hardware.
Rijndael memiliki panjang kunci 128 sampai 256 bit dengan step 32 bit. Karena AES memiliki ketetapan panjang kunci 128, 192, dan 256 serta dukungan penuh dari algoritma Rijndael yang fleksibel maka AES saat ini dikenal dengan AES-128, AES-192, AES-286. Berikut perbedaan tiga versi AES tersebut:
Tabel 3.3 Tiga Buah Versi AES (Ariyus, 2008)
AES-128
AES-192
AES-256
Key Size
4 word (16 byte)
6 word (24 byte)
8 word (32 byte)
Plaintext block size
4 word (16 byte)
4 word (16 byte)
4 word (16 byte)
Number of round
10
12
14
Round key size
4 word (16 byte)
4 word (16 byte)
4 word (16 byte)
Expanded key size
44 word (176 byte)
52 word (208 byte)
60 word (240 byte)
Dari tabel diatas AES-128 bit menggunakan kunci Nk = 4 word atau kata yang setiap katanya terdiri dari 32 bit maka total kuncinya 128 bit. Karena total kuncinya 128 bit, maka terdapat sebanyak
2128=3,4×1038
kemungkinan kata kunci. Proses ini akan memakan waktu hingga 5,4x1024 tahun dalam pemecahannya meskipun memakai computer yang dapat memproses satu juta kunci per detik.
Enkripsi dan Dekripsi pada AES
Karena penelitian ini menggunakan algoritma Advance Encryption Standard dalam panjang kunci 128 makan yang digunakan adalah AES-128.
Algoritma AES masih menggunakan subtitusi dan permutasi serta sejumlah putaran atau cipher berulang seperti pada algoritma DES, hanya saja berbeda pada pemrosesannya yang memakai byte daripada bit serta tidak menggunakan jaringan Feistel seperti yang dilakukan DES maupun GOST. Proses yang dijalankan oleh AES yang beroprasi pada blok 128 bit dan kunci 128 bit adalah sebagai berikut [2]:
AddRoundKey: tahapan ini melakukan XOR antara plaintext dengan cipher-key. Tahapan ini dapat disebut juga initial round.
Putaran sebanyak Nr – 1 kali. Setiap putaran dilakukan proses:
SubBytes
ShiftRows
MixCollumns
AddRoundKey
Final Round: Proses untuk putaran terakhir.
SubBytes
ShiftRows
AddRoundKeys
Dari tahapan diatas maka dapat dibambarkan garis besar dalam Enkripsi AES-128 yang memiliki 10 putaran seperti pada Gambar 2.2.
Gambar 2.3. Proses Enkripsi Algoritma AES-128
Algoritma AES memiliki 3 parameter:
Plaintext: array yang berukuran 16-byte, berisi data masukan
Cipherkey: array yang berukuran 16-byte, berisi hasil enkripsi
Key: array berukutan 16-byte, berisi cipher key.
Enkripsi AES
Dengan 16-byte, maka baik blok kunci maupun data yang berukuran 128-bit dapat disimpan dalam 3 array yang disebutkan. Selama proses kalkulasi plaintext menjadi ciphertext, status sekarang dari data disimpan dalam array of bytes dua dimensi, state, yang berukuran "jumlah baris x jumlah kolom". Untuk blok 128-bit, ukuran staenya adalah 4 × 4. Elemen array state ditulis sebagai S [r, c], dengan interval 0 r < 4 dan 0 c < Nb (Nb disini adalah panjang blok dibagi 32. Pada AES-128, Nb = 128/32 = 4).
Awal enkripsi, 16-byte data akan dimasukan pada in0, in1, …, in15 disalin dalam array state seperti dibawah ini:
Gambar 2.4. Input Output dan state array.
Enkripsi maupun dekripsi dilakukan terhadap array S, dan keluarannya ditampung pada array out. Sekma dalam penyalinan array in ke array S adalah sebagai berikut:
Sr,c inr+4c untuk 0 r<4 dan 0 c
Penyalinan array S ke array out:
outr+4c Sr,c untuk 0 r<4 dan 0 c
Setelah input plaintext dan kunci, tahapan selanjutnya adalah memulai proses putaran yang dimana dalam setiap putaran akan mengalami proses SubBytes, ShiftRows, MixCollumns, dan AddRoundKey.
Transformasi SubBytes()
Tranformasi SubBytes dalam enkripsi maupun dekripsi adalah memetakan setiap byte dari array state menggunakan tabel subtitusi S-box. Berbeda dengan DES yang menggunakan S-box berbeda di setiap putarannya, AES hanya menggunakan S-box seperti pada Gambar 5.
Gambar 2.5. S-box yang digunakan pada putaran AES.
Cara subtitusi adalah sebagai berikut:
Untuk setiap byte pada array state, misalkan S[r,c] = xy, xy dalam hal ini adalah digit hexadecimal dari S[r,c], maka nilai subtitusinya dinyatakan sebagai S'[r,c] merupakan elemen yang ada dalam S-box dari perpotongan baris x dengan kolom y. gambar 2.5 memperlihatkan transformasi S-box.
Gambar 2.6. Transformasi SubBytes. (Wikipedia)
Tranformasi ShiftRows()
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.
Gambar 2.7. Tranformasi ShiftRows (Wikipedia).
Tranformasi MixCollumns()
Seperti pada penjelasan diatas, pada tahap ini adalah mengalikan setiap kolom dari array state dengan polinom a(x) mod (x4 + 1). MixCollumn memberikan difusi pada cipher. Setiap kolom diperlakukan sebagai polinom 4-suku pada GF(28). Polinom a(x) yang ditetapkan adalah:
ax=03x3+0x2+01x+{02} (2.7)
Perkalian ini dinyatakan sebagai perkalian matriks:
s'x=a(x) s(x) (2.8)
S0,c'S1,c'S2,c'S3,c'=02 01 01 03 03020101 0103 02 01 01 01 03 02S0,cS1,cS2,cS3,c
S0,c'=(02 S0,c) ({03} S1,c) S2,c S3,c
S1,c'=S0,c 02 S1,c ({03} S2,c) S3,c
S2,c'=S0,c S1,c 02 S2,c ({03} S3,c)
S3,c'=(03 S0,c) S0,c S1,c ({03} S3,c)
Gambar 2.8. Tranformasi MixCollumns() (Wikipedia)
Tranformasi AddRoundKey()
Pada tahapan ini akan dilakukan operasi XOR terhadap sebuah round key dengan array state, hasilnya akan disimpan pada array state. Seperti pada gambar 2.8.
Gambar 2.9. Tranformasi AddRoundKey (Wikipedia)
Ekspansi kunci.
Pada ekspansi kunci, ciphertext yang sudah ditemukan akan diambil beserta cipher key yang digunakan diawal untuk membuat round key, banyaknya round key tergantung pada banyaknya jumlah putaran. Prosesnya juga masih menggunakan S-box, hanya dalam generate tiap kolom memerlukan Rcon.
Steganografi
Sejarah dan Definisi Steganografi
Kerahasiaan pesan tidak hanya menggunakan kriptografi. Ada juga teknik lain yang telah diimplementasikan selama berabad-abad lalu, yaitu steganografi.
Definisi steganografi menurut Renaldi Munir dalam bukunya yang berjudul Kriptografi mengatakan "steganografi adalah ilmu dan seni menyembunyikan pesan rahasia didalam pesan lain sehingga keberadaan pesan tersebut tidak dapat diketahui".
Sedangkan dalam bukunya yang lain dengan judul Pengantar Pengolahan Citra Digital, Renaldi Munir menulis, "Steganografi adalah teknik menyembunyikan data rahasia dalam wadah atau media digital sehingga keberadaan data rahasia tersebut tidak diketahui orang lain".
Penerapan steganografi sudah dikenal oleh bangsa Yunani dalam pengiriman pesan dengan kepala budak atau prajurit sebagai media. Dalam hal ini, rambut budak dibotaki, lalu pesan ditulis pada kulit kepala budak. Ketika rambut budak sudah tumbuh maka dikirimlah budak kepada sang penerima dan ketika tiba disana kepalanya akan dibotaki kembali untuk membaca pesannya kembali.
Berbeda dengan bangsa Romawi yang dalam penerapannya menggunakan tinta tak-tamba (invicible ink) dalam penulisan pesan. Tinta tersebut dibuat dari campuran buah, susu, dan cuka. Cara membacanya adalah dengan memanaskan kertas tersebut dengan api [7].
Semakin berkembangnya jaman, steganografi hampir sama dengan kriptografi. Dalam pemrosesannya menggunakan media-media digital dan berkembangnya algoritma-algoritma baru dalam perjalanannya. Medianya pun tidak hanya text, melainkan juga citra, audio, atau video. Dalam penelitian ini akan difokuskan dalam media Citra.
Kriteria Steganografi
Penyembunyian data dalam citra digital pasti akan mendampak pada kualitas citra. Factor inilah yang perlu dihindari, oleh karena itu ditetapkan kriteria yang harus diperhatikan dalam menyembunyikan sebuah data, seperti [7]:
Fidelity
Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. Intinya, kualitas tidak berubah secara drastis.
Robustness
Data yang disembunyikan harus tahan (robust) terhadap berbagai operasi manipulasi yang dilakukan pada citra penampung, seperti pengubahan
kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan (cropping), enkripsi, dan sebagainya. Bila pada citra penampung dilakukan operasi-operasi pengolahan citra tersebut, maka data yang disembunyikan seharusnya tidak rusak (tetap valid jika diekstraksi kembali)
Recovery
Data yang disembunyikan harus dapat diungkapkan kembali
(reveal). Karena tujuan steganografi adalah data hiding, maka sewaktu-waktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut.
Metode End of File
Penelitian ini berbatas pada penggunaan algoritma End of File (EoF) pada metode steganografinya. Terlebih pada algoritma End of File yang merupakan pengembangan dari algoritma Least Significant Bit (LSB) [7]. Berbeda dengan Least Significant Bit yang menyisipkan pesan pada akhir bit seperti "00000101" (bagian yang ditebalkan adalah contoh pesan yang dirahasiakan), End of File menyembunyikan pesan dengan menyisipkan bit-bit pesan pada akhir file citra yang dijadikan tempat.
Penyisipan pesan di akhir file tidak akan merubah kualitas data awal dari file yang disisipi. Namun, perubahan terjadi pada ukuran file yang bertambah besar. Ini dikarenakan ukuran hasil penyisipan adalah ukuran pesan ditambah ukuran penampung [4] [6]. Untuk mencegah kesalahan pengambilan makan akan ditambahkan pengenalan pada akhir data yang akan disisipkan.
Algoritma atau langkah-langkah dalam penyisipan mengguakan End of File adalah sebagai berikut:
Masukkan plaintext/ciphertext yang akan disisipkan
Ubah plaintext/ciphertext menjadi kode decimal.
Inputkan citra yang akan disisipi plaintext/ciphertext.
Dapatkan atau baca nilai pixel dari citra.
Tambahkan plaintext/ciphertext pada akhir pixel citra yang disisipi dengan menambahkan karakter penanda di akhir plaintext/ciphertext.
Petakan kembali menjadi citra baru yang disebut dengan stego image atau citra hasil stegano.
Sebagai contoh penyisipan dari metode End of File, terdapat sebuah plaintext "UDINUS" yang akan disisipkan pada citra dengan ukuran 7x7 pixel. Sebagai berikut :
192
54
23
63
67
34
51
200
134
156
89
123
143
68
143
166
121
67
100
111
56
120
192
54
23
89
123
143
89
123
143
192
54
23
77
166
121
67
100
143
166
121
192
54
23
89
123
143
34
Pertama uraikan plaintext UDINUS menjadi kode ASCII sehingga menjadi = {85 68 73 78 85 83}
Kode yang sudah di desimalkan maka di inputkan di akhir citra dengan batasan "ÿ" yang jika di kodekan menjadi 255
192
54
23
63
67
34
51
200
134
156
89
123
143
68
143
166
121
67
100
111
56
120
192
54
23
89
123
143
89
123
143
192
54
23
77
166
121
67
100
143
166
121
192
54
23
89
123
143
34
85
68
73
78
85
83
255
Kemudian dipetakan kembali dalam bentuk citra.
Dalam proses penyisipan terdapat juga proses pengambilan pesan, berikut langkah-langkah dalam pengambilan pesan dari End of File:
Inputkan citra yang telah disisipkan plaintext/ciphertext.
Baca nilai pixel stego image yang terdapat pada baris terakhir di matrix pixel pada citra.
Ambil plaintext/ciphertext yang telah tersisipkan pada stego image, ambil dari nilai awal pixel pada matrix terakhir hingga nilai decimal dari karakter penanda sisipan.
Bahasa Pemrograman Python
Python mengacu pada Bahasa pemrograman Python yang memiliki syntax dan ketentuannya sendiri. Bahasa python sendiri merupakan Bahasa pemrograman Open Source dan dapat di download pada websitenya di http://python.org/, serta terdapat berbagai versi untuk semua system operasi termasuk Windows, Linux, dan Mac.
Python dikembangkan oleh Guido van Rossum pada tahun 1990 di CWI, Amsterdam sebagai kelanjutan dari bahasa pemrograman ABC. Versi terakhir yang dikeluarkan CWI adalah 1.2.
Tahun 1995, Guido pindah ke CNRI sambil terus melanjutkan pengembangan Python. Versi terakhir yang dikeluarkan adalah 1.6. Tahun 2000, Guido dan para pengembang inti Python pindah ke BeOpen.com dan membentuk BeOpen PythonLabs kemudian mengeluarkan pembaruan Python ke versi 2.0. Setelah mengeluarkan Python 2.0, Guido dan beberapa anggota tim PythonLabs pindah ke DigitalCreations. Saat ini python banyak melalui perkembangan hingga ke versi Python 3.5.
Nama Python dipilih oleh Guido sebagai nama bahasa ciptaannya karena kecintaan guido pada acara televisi Monty Python s Flying Circus. Oleh karena itu seringkali ungkapan-ungkapan khas dari acara tersebut seringkali muncul dalam korespondensi antar pengguna Python.
Sisi utama yang membedakan Python dengan bahasa lain adalah dalam hal aturan penulisan kode program. Bagi para programmer di luar python siap-siap dibingungkan dengan aturan indentasi, tipe data, tuple, dan dictionary. Python memiliki kelebihan tersendiri dibandingkan dengan bahasa lain terutama dalam hal penanganan modul, ini yang membuat beberapa programmer menyukai python. Selain itu python merupakan salah satu produk yang opensource, free, dan multiplatform. [9]
Tool yang digunakan dalam penelitian ini adalah WinPython, karena ini adalah bundle, maka dalam tool ini sudah memiliki berbagai modul yang diinginkan untuk pengolahan data dalam program Python yang dibuat.
Kerangka Pemikiran
Penulis perlu membuat gambaran singkat sebagai alur penyusunan laporan ini dengan kerangka pemikiran sebagai berikut:
Pengamanan Soal Ujian Sekolah dalam bentuk file .docxBuku dan jurnal tentang pengamanan data menggunakan kriptografi dan steganografiMembuat program pengamanan soal ujian yang dapat digunakan sekolahAdvance Encryption Standard (AES)End of File (EoF)Data Soal Ujian Sekolah SMA Negeri 1 WeleriWinPythonPermasalahanStudi PustakaTindakanMetodePenerapanToolProgram Pengamanan Soal Ujian Sekolah HasilPengamanan Soal Ujian Sekolah dalam bentuk file .docxBuku dan jurnal tentang pengamanan data menggunakan kriptografi dan steganografiMembuat program pengamanan soal ujian yang dapat digunakan sekolahAdvance Encryption Standard (AES)End of File (EoF)Data Soal Ujian Sekolah SMA Negeri 1 WeleriWinPythonPermasalahanStudi PustakaTindakanMetodePenerapanToolProgram Pengamanan Soal Ujian Sekolah Hasil
Pengamanan Soal Ujian Sekolah dalam bentuk file .docx
Buku dan jurnal tentang pengamanan data menggunakan kriptografi dan steganografi
Membuat program pengamanan soal ujian yang dapat digunakan sekolah
Advance Encryption Standard (AES)
End of File (EoF)
Data Soal Ujian Sekolah SMA Negeri 1 Weleri
WinPython
Permasalahan
Studi Pustaka
Tindakan
Metode
Penerapan
Tool
Program Pengamanan Soal Ujian Sekolah
Hasil
Pengamanan Soal Ujian Sekolah dalam bentuk file .docx
Buku dan jurnal tentang pengamanan data menggunakan kriptografi dan steganografi
Membuat program pengamanan soal ujian yang dapat digunakan sekolah
Advance Encryption Standard (AES)
End of File (EoF)
Data Soal Ujian Sekolah SMA Negeri 1 Weleri
WinPython
Permasalahan
Studi Pustaka
Tindakan
Metode
Penerapan
Tool
Program Pengamanan Soal Ujian Sekolah
Hasil
Gambar 2.10. Kerangka Pemikiran
BAB III
METODE PENELITIAN
Dalam penelitian ini, penulis akan menggunakan metode penelitian Eksperimental. Penelitian ini akan di fokuskan dalam pebuatan suatu system atau program dalam implementasi pengamanan data yang akan di enkripsi dan di sisipkan pada media citra, sehingga akan mengurangi pencurian data oleh oknum yang tidak bertanggung jawab.
Intrument Penelitian
Penelitian membutuhkan hardware software guna mendukung peneliti dalam mengimplementasikan penelitian yang dilakukan. Berikut kebutuhan yang diperlukan:
Objek Penelitian
Objek dalam penelitian ini adalah SMA Negeri 1 Weleri.
Bahan Penelitian
Dalam penelitian ini bahan akan diteliti adalah Soal Ujian Sekolah 2016 di SMA Negeri 1 Weleri yang merupakan dokumen rahasia.
Perangkat Penelitian
Perangkat-perangkat yang dibutuhkan dalam mendukung terlaksananya penelitian ini adalah sebagai berikut:
Hardware
Processor : AMD A4-5000 Quad-core
Harddisk : 500 GB
RAM : 4 GB
Software
Sistem Operasi - Microsoft Windows 10 Pro 64-bit
WinPython dengan Python 3.4
Microsoft Word 2013
Prosedur Pengambilan atau Pengumpulan Data
Dalam penyusunan laporan dan penelitian ini dibutuhkan data maupun informasi yang real sesuai penelitian yang dilaksanakan. Data yang digunakan adalah file Soal Ujian Sekolah tahun 2016 dengan format .doc (Microsoft Office Word 2003) ataupun format .docx (Microsoft Office Word 2007-2016). Data yang diperoleh menyesuaikan dengan banyaknya mata pelajaran yang digunakan, yaitu mata pelajaran yang diolah oleh masing-masing tim mata pelajaran di SMA Negeri 1 Weleri. Sedangkan dalam pengumpulan datanya, penulis mengumpulkan data melalui buku-buku dari perpustakaan maupun mencari buku yang terkait dengan penelitian di toko buku, serta mereview jurnal-jurnal terkait tentang penelitian.
Teknik Analisis Data
Teknik analisa data yang dilakukan penulis dalam pengolahan data penelitian ini adalah sebagai berikut:
Mengumpulkan data berupa citra yang berhubungan dengan setiap mata pelajaran untuk media penyisipan serta mengumpulkan bahan penelitian berupa Soal Ujian Sekolah berformat .doc atau .docx.
Melakukan Proses enkripsi dan dekripsi terhadap sample data secara manual, kemudian dilanjutkan dengan perbandingan dengan program yang dibuat untuk enkripsi dan dekripsi serta penyisipan data terenkripsi dalam citra.
Melakukan pengambilan data dari citra yang tersisipi kemudian dilakukan proses dekripsi terhadap data terenkripsi.
Pengecekan kualitas data sebelum dan setelah proses pengamanan.
Metode yang Diusulkan
Metode yang digunakan dalam penelitian ini yaitu Algoritma Advance Encryption Standard (AES) sebagai kriptografinya dan End of File (EoF) sebagai penyisipannya.
Prosedur Enkripsi dan Penyisipan File
File atau plaintext dengan kunci yang ditentukan akan diekripsi menggunakan algoritma Advance Encryption Standard sehingga menghasilkan ciphertext dengan format *.code. setelah itu dilakukan penyisipan kepada citra yang sudah ditentukan menggunakan algoritma End of File, sehingga menghasilkan stego image. Berikut diagramnya:
PLAINTEXT ; KEYEnkripsi Advance Encryption Standard (AES-128)Ciphertext ImageSteganografiEnd of File (EoF)STEGO IMAGEPLAINTEXT ; KEYEnkripsi Advance Encryption Standard (AES-128)Ciphertext ImageSteganografiEnd of File (EoF)STEGO IMAGE
PLAINTEXT ; KEY
Enkripsi
Advance Encryption Standard (AES-128)
Ciphertext
Image
Steganografi
End of File (EoF)
STEGO IMAGE
PLAINTEXT ; KEY
Enkripsi
Advance Encryption Standard (AES-128)
Ciphertext
Image
Steganografi
End of File (EoF)
STEGO IMAGE
Gambar 11. Prosedur Enkripsi dan Penyisipan File
Prosedur Penyisipan Pengambilan ciphertext dengan End of File
Pendekripsian stego image file berbalik dengan proses enkripsinya. Dimana awalnya mengeluarkan file dari stego image (unstego) yang akan menghasilkan cihpertext atau file cipher. Kemudian mengubah kembali ciphertext menjadi file asli dengan ekspansi kunci dengan memanggil cipher key dan Key yang diberikan pengguna. Setelah itu akan menghasilkan pesan asli sebelum dienkripsi. Berikut diagramnya.
CiphertextDekripsiPlaintext/ File AsliSTEGO IMAGEUNSTEGOCiphertextDekripsiPlaintext/ File AsliSTEGO IMAGEUNSTEGO
Ciphertext
Dekripsi
Plaintext/
File Asli
STEGO IMAGE
UNSTEGO
Ciphertext
Dekripsi
Plaintext/
File Asli
STEGO IMAGE
UNSTEGO
Gambar 12. Metode Dekripsi File
StartEnkripsiFile AddRoundKey( XOR Cipher Key )SubBytesShiftRowsn = 10i = 1i n-1MixColumnsAddRoundKey (XOR Sub-Kunci ke-i )i = i + 1SubBytesShiftRowsAddRoundKey( XOR Sub-Kunci ke- 10)Cipher TextYesNoStartEnkripsiFile AddRoundKey( XOR Cipher Key )SubBytesShiftRowsn = 10i = 1i n-1MixColumnsAddRoundKey (XOR Sub-Kunci ke-i )i = i + 1SubBytesShiftRowsAddRoundKey( XOR Sub-Kunci ke- 10)Cipher TextYesNo
Start
Enkripsi
File
AddRoundKey
(
XOR
Cipher Key
)
SubBytes
ShiftRows
n
=
10
i
=
1
i
n
-
1
MixColumns
AddRoundKey
(
XOR Sub
-
Kunci ke
-
i
)
i
=
i
+
1
SubBytes
ShiftRows
AddRoundKey
(
XOR Sub
-
Kunci ke
-
10
)
Cipher Text
Yes
No
Start
Enkripsi
File
AddRoundKey
(
XOR
Cipher Key
)
SubBytes
ShiftRows
n
=
10
i
=
1
i
n
-
1
MixColumns
AddRoundKey
(
XOR Sub
-
Kunci ke
-
i
)
i
=
i
+
1
SubBytes
ShiftRows
AddRoundKey
(
XOR Sub
-
Kunci ke
-
10
)
Cipher Text
Yes
No
Gambar 13. Flowchart Enkripsi AES-128
StartDekripsiFile CitraAddRoundKey (XOR Cipher Key )Inv SubBytesInv ShiftRowsn =1i = 9i nInv MixColumnsAddRoundKey (XOR Sub-Kunci ke-i )i = i - 1Inv SubBytesInv ShiftRowsAddRoundKey( XOR Sub-Kunci ke- 10)Cipher TextEndYesNoStartDekripsiFile CitraAddRoundKey (XOR Cipher Key )Inv SubBytesInv ShiftRowsn =1i = 9i nInv MixColumnsAddRoundKey (XOR Sub-Kunci ke-i )i = i - 1Inv SubBytesInv ShiftRowsAddRoundKey( XOR Sub-Kunci ke- 10)Cipher TextEndYesNo
Start
Dekripsi
File
Citra
AddRoundKey
(
XOR
Cipher Key
)
Inv SubBytes
Inv ShiftRows
n
=
1
i
=
9
i
n
Inv MixColumns
AddRoundKey
(
XOR Sub
-
Kunci ke
-
i
)
i
=
i
-
1
Inv SubBytes
Inv ShiftRows
AddRoundKey
(
XOR Sub
-
Kunci ke
-
10
)
Cipher Text
End
Yes
No
Start
Dekripsi
File
Citra
AddRoundKey
(
XOR
Cipher Key
)
Inv SubBytes
Inv ShiftRows
n
=
1
i
=
9
i
n
Inv MixColumns
AddRoundKey
(
XOR Sub
-
Kunci ke
-
i
)
i
=
i
-
1
Inv SubBytes
Inv ShiftRows
AddRoundKey
(
XOR Sub
-
Kunci ke
-
10
)
Cipher Text
End
Yes
No
Gambar 14.Flowchart Dekripsi AES
Membuat file stegoMasukkan citra dalam file stegoBeri karakter batasan di akhir file citra citra Masukkan file yang terenskripsiMembuat file stegoMasukkan citra dalam file stegoBeri karakter batasan di akhir file citra citra Masukkan file yang terenskripsi
Membuat file stego
Masukkan citra dalam file stego
Beri karakter batasan di akhir file citra citra
Masukkan file yang terenskripsi
Membuat file stego
Masukkan citra dalam file stego
Beri karakter batasan di akhir file citra citra
Masukkan file yang terenskripsi
Gambar 15. Proses penyisipan End of File
Masukkan stego imageUrai Citra menjadi bitCari karakter batasan di Antara citra dengan pesanKeluarkan file terenskripsiMasukkan stego imageUrai Citra menjadi bitCari karakter batasan di Antara citra dengan pesanKeluarkan file terenskripsi
Masukkan stego image
Urai Citra menjadi bit
Cari karakter batasan di Antara citra dengan pesan
Keluarkan file terenskripsi
Masukkan stego image
Urai Citra menjadi bit
Cari karakter batasan di Antara citra dengan pesan
Keluarkan file terenskripsi
Gambar 3.4. Proses penyisipan End of File
Gambar ditas merupakan langkah-langkah atau proses dalam penyisipan maupun ekstraksi data dari citra atau proses steganografi. Prosenya adalah dari penyisipan file terenkripsi AES kedalam citra dengan memberi batas tanda Antara bit akhir citra dengan file terenkripsi dan proses ekstraksi pesan dari citra tersisip menjadi file terenkripsi yang utuh.
Pengujian Metode
Untuk melakukan pengujian terhadap metode yang digunakan, peneliti memberikan contoh perhitungan terhadap metode yang diusulkan berdasarkan kajian pustaka yang dikumpulkan. Sebagai berikut:
Diberikan sebuah plaintext dan key sebagai berikut.
Plaintext (ASCII) : [2 ˆ 1 à C Z 1 7 ö 0 2 ¨ ¢ 4]
Plaintext (DEC) : [50 136 49 224 67 90 49 55 246 48 50 7 168 141 162 52]
Key (ASCII) : [+ ( « € ® ÷ Ï O ¦ ˆ <]
Key (DEC) : [43 40 171 9 128 174 247 207 21 20 21 79 22 166 136 60]
Dalam AES, penghitungan dipermudah dengan mengubah bilangan ke dalam bilngan hexadecimal (HEX). Ini dikarenakan dalam tahapan hasil tranformasi Addroundkey ke subbyte meggunakan –Box yang dimana S-Box dalam AES lebih sering menggunakan bilangan hexadecimal.
Enkripsi dan Penyisipan
Berikut contoh elemen state dan kunci dalam notasi HEX(hexadecimal):
Gambar 15. Elemen State dan kunci saat input.
Karena untuk mendapatkan AddRoundKey untuk memasuki putaran, makan dilakukan operasi XOR dari state terhadap cipher key. Berikut prosesnya.
Input [32] : 0 0 1 1 0 0 1 0
Cipher [2B] : 0 0 1 0 1 0 1 1
S [0,0] : 0 0 0 1 1 0 0 1 19
Input [88] : 1 0 0 0 1 0 0 0
Cipher [28] : 0 0 1 0 1 0 0 0
S [0,0] : 1 0 1 0 0 0 0 0 A0
Sehingga akan diperoleh initial round atau array S seperti berikut:
Tahap selanjutnya adalah memasuki putaran pertama. Putaran terjadi sebanyak Nr-1 . pada penelitian dan contoh ini menggunakan AES-128 bit yang menggunakan putaran sebanyak 10 kali.
Transformasi SubByte
Pada awal putaran, initial rount akan disubtitusikan menggunakan Transformasi SubByte. Tranformasi ini menggunakan S-box khusus yang hanya digunakan pada algoritma AES. Seperti berikut:
Cara subtisusinya adalah untuk setiap byte pada array state, misalkan S[r,c] = xy, xy dalam hal ini adalah digit hexadecimal dari S[r,c], maka nilai subtitusinya dinyatakan sebagai S'[r,c] merupakan elemen yang ada dalam S-box dari perpotongan baris x dengan kolom y.
Pada putaran pertama S[0,0] bernilai 19, sehingga saat di inputkan dalam S-box, 1 dan 9 akan bersebrangan membentuk bilangan baru, yaitu d4 sebagai S'[0,0].
Gambar 16. Subtitusi Array S dengan S-box AES
Sehingga saat selesai subtitusi seluruh bilangan akan muncul array baru seperti berikut:
Kemudian masuk pada tahap selanjutnya, yaitu Tranformasi ShiftRows.
Tranformasi ShiftRows()
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.
Pergeseran baris 1, 2 dan 3 dari array pada Gambar 3.8 diilustrasikan pada gambar dibawah ini:
Gambar 17. Pergeseran baris ke-1
Gambar 18. Hasil pergeseran baris ke-1 dan pergeseran baris ke-2
Gambar 19. Hasil pergeseran baris ke-2 dan pergeseran baris ke-3
Gambar 20. Hasil pergeseran baris ke-3
Sehingga menghasilkan array seperti pada gambar 3.10. Tahap selanjutnya adalah mengalikan setiap kolom dari array state dengan polinom a(x) mod (x4 + 1) pada tahapan MixCollumns().
Transformasi MixCollumns().
Dalam tahap ini, singkatnya adalah mengalikan tiap kolom dari hasil ShiftRow dengan matrix berikut :
Gambar 21. Matrix Enkripsi ShfitRow
Sehingga untuk membangun sebuah kolom baru akan diolah dari kolom pertama hasil shift row dikalikan dengan matrix diatas:
Dilihat dari kajian yang dikumpulkan dapat dituliskan :
r0 = 2a0 3a1 1a2 1a3
r1 = 1a0 2a1 3a2 1a3
r2 = 1a0 1a1 2a2 3a3
r3 = 3a0 1a1 1a2 2a3
Seperti halnya mengalikan antar matrix, hanya saja dalam Transformasi MixCollumns(), terdapat langkah-langkah operasi:
Perkalian dengan 1 artinya tidak berubah
Perkalian dengan 2 artinya menggeser byte ke kiri
Perkalian dengan 3 artinya menggeser byte kekiri dan kemudian melakukan XOR dengan nilai awal sebelum digeser.
Setelah digeser, harus dilakukan XOR dengan 0x11B (100011011) apabila hasil nilai yang digeser lebih besar daripada 0xFF (11111111).
Ambil kolom pertama, yaitu matrix
a0=d4
a1=bf
a2=5d
a3=30
Dimulai menghitung r0= 2a0 3a1 1a2 1a3 :
r0=(2 d4) (3 bf) (1 5d) (1 30)
r0=2 11010100 3 1011111 1 01011101 1 00110000
r0=(010110011) (011011010) (1011101) (110000)
r0=000000100
r0=04 (dalam HEXADECIMAL)
Begitu juga dengan menghitung r1, r2, dan r3. Perlu diingat kembali bahwa pertambahan disini adalah XOR.
Dari penjelasan diatas maka r0 hingga r3 adalah:
Sehingga dapat dibetuk sebuah array baru hasil transformasi MixCollumn:
Selanjutnya masuk pada tahap AddRoundKey.
Tranformasi AddRoundKey()
Proses ini sama dengan proses pertama, hanya saja Pada tahapan ini akan dilakukan operasi XOR terhadap sebuah round key dengan array state, hasilnya akan disimpan pada array state.
Maka akan diproses dari array hasil MixCollumns seperti pada proses di bawah ini:
State dan roundkey yang akan di proses XOR.
Proses XOR pada setiap kolom.
Hasil XOR dari state dan round key dari seluruh kolom.
Array pada gambar diatas adalah hasil dari putaran pertama. Karena pada AES-128 putaran terjadi 10 kali hingga Final Round. Proses pada putaran ke-2 hingga ke-10 akan terjadi seperti dibawah ini:
Gambar 22. Proses putaran ke-2 hingga ke-6
Gambar 23. Putaran ke-7 hinggan ke-10
Putaran ke 10 adalah Final Round, yang pada tahaannya tidak terjadi proses Tranformasi MixCollumns.
Pada akhir proses enskripsi akan terlihat ciphertext :
Metode End of File
Selanjutnya dimulai proses penyisipan dengan menggunakan metode End of File.
Setelah diperoleh ciphertext, maka siapkan citra yang akan di sisipkan. Disini akan diuji menggunakan sebuah citra dengan ukuran 8x8:
192
54
23
63
67
34
60
51
200
134
156
89
123
143
27
68
143
166
121
67
100
111
192
56
120
192
54
23
89
123
168
143
89
123
143
192
54
23
99
77
165
132
143
100
101
89
66
54
166
121
67
100
143
166
157
121
192
54
23
89
123
143
119
34
Karena ciphertext merupakan bilagan hexadecimal, maka perlu diubah ke dalam bentuk decimal. Contohnya 3916 = 5010, artinya 39 HEX adalah 50 dalam DEC. ketika ciphertext diproses akan muncul array baru.
57
2
220
25
37
220
17
106
132
9
133
11
29
251
151
50
Langkah seanjutnya menyisipkan ciphertext yang sudah diubah dalam decimal di "akhir " citra. Sebelumnya tambahkan karakter batasan antara citra dengan file. Dalam pengujian ini dilakukan dengan "#" Sehingga citra baru akan menjadi seperti:
192
54
23
63
67
34
60
200
134
156
89
123
143
27
143
166
121
67
100
111
192
120
192
54
23
89
123
168
89
123
143
192
54
23
99
165
132
143
100
101
89
66
166
121
67
100
143
166
157
#
57
2
220
25
37
220
17
106
132
9
133
11
29
251
151
50
#
Kemudian petakan kembali dalam bentuk citra. Sehingga menghasilkan sebuah data stego image, yang mempunyai ukuran citra penampung ditambah file yang disimpan.
Pengeluaran gambar dan Dekripsi
Langkah pertama dari dekripsi dalam penelitian ini adlah mengeluarkan ciphertext yang terdapat pada citra stego.
UNSTEGO
Dalam tahap unstego atau pengeluaran file dari citra mulanya bentuk citra dalam array, lalu cari karakter batasan di akhir array, dalam pengujian ini menggunakan karakter #. Berikut citra stego yang akan di keluarkan filenya.
192
54
23
63
67
34
60
200
134
156
89
123
143
27
143
166
121
67
100
111
192
120
192
54
23
89
123
168
89
123
143
192
54
23
99
165
132
143
100
101
89
66
166
121
67
100
143
166
157
#
57
2
220
25
37
220
17
106
132
9
133
11
29
251
151
50
#
Dari citra di atas, akan diambil file yang diletakan paling akhir dan dibatasi oleh karater "#". Yaitu [52 2 220 25 37 220 17 106 132 9 133 11 29 251 151 50]
Di dapati kembali sebuah ciphertext atau data yang diamankan dalam array:
57
2
220
25
37
220
17
106
132
9
133
11
29
251
151
50
Setelah mendapati ciphertext diatas, maka selanjutnya dilakukan proses dekripsi algoritma AES-128.
Dekripsi
Perlu diingat lagi bahwa AES menggunakan bilangan hexadecimal, maka ciphertext dalam bertuk decimal diatas diubah dalam bentuk hexadecimal seperti berikut:
Langkah selanjutnya adalah mencari bilangan hasil ShiftRow() pada putaran ke 10. Penjelasan mengapa langsung ke pada hasil ShiftRow adalah, pada putaran terakhir AES tidak menggunakan MixCollumn melainkan hasil shiftRow langsung di XOR kan dengan Round Key ke-10.
Pencarian Hasil Shiftrow didapati dengan operasi XOR antara ciphertext dan round key ke-10.
Ciphertext
Round Key ke-10
Sehingga menghasikan array baru yang berisi hasil Shiftrow:
Transformasi Inv ShiftRow.
Selanjutnya dilakukan proses Inv ShiftRow. Secara singkat langkah-langkahnya adalah:
Baris pertama tidak di geser
Baris kedua digeser ke kiri 1 (satu) kali
Baris ketiga digeser ke kiri 2 (dua) kali
Baris keempat digeser ke kiri 3 (tiga) kali.
Setelah melalui proses tersebut akan didapati array baru yang merupakan isi dari transformasi SubByte putaran ke-10.
Transformasi Inv SubByte.
Setelah mendapatkan hasil dari pembalikan ShiftRow, maka dilakukan proses pembalikan dari SubByte menjadi AddRoundKey.
Proses ini memerlukan sebuah S-Box yang merupakan kebalikan dari S-Box dalam enkripsi AES. Berikut tampilan inverse S-Box yang digunakan dalam dekripsi.
Gambar 24. S-Box untuk Dekripsi AES
Melaui S-Box diatas, array SubByte pada putaran ke-10 dapat disubtitusikan menjadi sebuah hasil AddRoudKey atau initial state pada putaran ke -9.
Penggunaannya sama dengan pada saat enkripsi. Contohnya E9 = EB; CB=59 dan seterusnya. Pada akhirnya menghasilkan sebuah initial round berikut:
Diketahui kembali sebuah initial round pada putaran ke-9 seperti diatas. Diulangi lagi proses XOR antara initial round ke-9 dengan round key ke-9. Hasil dari operasi XOR ini adalah array hasil transformasi MixCollumn pada putaran ke-9.
initial round ke-9
round key ke-9
hasil MixCollumn
Transformasi Inv MixCollumn
Dari hasil XOR antara initial round dan round key, akan menghasilkan hasil dari transformasi MixCollumn. Pada putaran ke-9 ini terjadi tranformasi ini karena telah masuk dalam putaran inti.
Catatan untuk langkah ini, perlu dilihat kembali pada enkripsi bahwa proses MixCollumn menggunakan matrix khusus. Begitu pula dengan dekripsi, dalam dekripsi dilakukan invers matrix yang digunakan pada enkripsi sehingga matrix yang digunakan dalam dekripsi sebagai berikut:
Dalam Desimal
Dalam Hexadecimal [10]
Gambar 25. Matrix Dekripsi MixCollumn
Berikut operasi mixcollumn pada dekripsi:
a0 = 0e b0 0b b1 0d b2 09 b3
a1 = 09 b0 0e b1 0b b2 0d b3
a2 = 0d b0 09 b1 0e b2 0b b3
a3 = 0b b0 0d b1 09 b2 0e b3
Ambil kolom pertama dari hasil XOR , yaitu kolom:
b0=47
b1=37
b2=94
b3=ed
Dimulai menghitung a0 = 0e b0 0b b1 0d b2 09 b3 :
a0=(0e 47) (0b 37) (0d 94) (09 ed)
a0=00001110 01000111 00001011 00110111
00001100 10010100 00001001 11101101
a0=(10000111) (11111010) (00111110) (11000100)
a0=10000111
a0=87 (dalam HEXADECIMAL)
Begitu juga dengan menghitung a1, a2, dan a3. Perlu diingat kembali bahwa pertambahan disini adalah XOR. Sehingga hasilnya adalah:
Sehingga terbentuk sebuah array baru yang berupa hasil ShiftRow pada putaran ke-9:
Selanjutnya proses seperti langkah-langkah dekripsi sebelumnya. Proses pada akhir putaran ke-9 hingga putaran ke-2 adalah seperti dibawah ini:
Gambar 3.8. Hasil Dekripsi AES
Dan proses terakhir adalah putaran pertama, berikut prosesnya.
Pada akhir proses, ciphertext akan kembali menjadi plaintext atau file asli seperti proses di awal.
Data yang dimasukkan masih sama persis dengan data yang di keluarkan. Dengan kata lain, dalam pengujian ini metode yang digunakan dapat berjalan dengan baik.
BAB IV
ANALISIS HASIL PENELITIAN DAN PEMBAHASAN
Analisa Kebutuhan Aplikasi
Tujuan dari analisa kebutuhan aplikasi ini adalah untuk mengetahui sifat dari masing-masing komponen yang digunakan dalam penelitian ini sehingga dapat membantu dalam petimbangan pembuatan aplikasi implementasi dari metode yang digunakan. Analisis ini meliputi kebutuhan perangkat lunak dan perangkat keras yang digunakan. Kebutuhan-kebutuhan tersebut adalah:
Kebutuhan perangkat lunak
Python 3.4
Bahasa pemrograman yang digunakan dalam perancangan aplikasi ini adalah Python dengan versi ke 3.4. Bahasa ini digunakan karena dalam pengaplikasiannya, Python mengguanakn Bahasa yang hamper setara dengan Bahasa yang digunakan sehari-hari sehingga logika dan aritmatika yang digunakan lebih mudah dipahami. Selain itu fungsi-fungsi yang digunakan sudah tertanam dalam modul yang sudah dimasukkan dalam library dalam aplikasinya.
Microsoft Word 2013
Selain dalam penulisan dokumentasi penelitian, aplikasi ini digunakan juga dalam pembuktian dari proses enkripsi dan dekripsi yang dilakukan. Karena penelitian ini dibatasi pada file yang berextensi .docx.
Sistem Operasi Windows 10 64bit
System operasi ini dipakai karena dalam perkembangannya, Windows 10 lebih mudah pengoprasiannya dan hamper semua software telah cocok digunakan dalam system operasi ini. Versi yang digunakan adalah versi 64bit, selain kinerjanya yang lebih cepat, memory yang digunakan pun dapat lebih besar daripada 32 bit.
Kebutuhan Perangkat Keras
Prosesor AMD A4-5000 Quad-core
Disk Space 10 GB
Ram 4 GB
Prodesur Pembuatan Aplikasi
Prosedur dalam pembuatan aplikasi dalam penelitian ini adalah sebagai berikut:
Mengumpulkan data-data yang akan diolah.
Melakukan pembatasan terhadap data-data yang telah diperoleh.
Mempersiapkan dan instalasi perangkan-perangkat keras yang dibutuhkan dalam penelitian.
Mempersiapkan dan instalasi perangkat lunak yang digunakan dalam penelitian sesuai spesifikasi system.
Pemodelan Bisnis
Dalam pemodelan ini, peneliti mengguanakn 2 (dua) buah actor yaitu pengirim dan penerima. Urutannya sebagai berikut:
Pihak pengirim
Taham ini, pengirim menjadi kunci utama dalam proses pengamanan data. Karena pengirim mempunyai hak penuh atas informasi yang akan diamankan yang nantinya akan diubah dalam data baru menggunakan Aplikasi kriptografi Advance Encryotion Standard dan diteruskan dalam penyisipan mengguanakn End Of File.
Informasi yang muncul
Informasi baru yang telah dibentuk dan didapatkan oleh pihak penerima adalah file berbentuk citra, dapat berupa JPG maupun PNG.
Pihak penerima
Tahap ini adalah tahap dalam pemulihan file. Dilakukan oleh pihak kedua yaitu penerima. Penerima akan melakukan penguraian data yang sudah di sisipkan dalam citra dan selanjutnya melakukan proses dekripsi sehingga kan muncul data asli.
Pelaku Pemrosesan
Pelaku dalam pemrosesan data tersebut adalah pihak pengirim dan pihak penerima.
Use Case
Use Case:
Proses Enkripsi dan Penyisipan (Stego)
Aktor:
Pengirim
Tujuan:
Data berhasil dienkripsi dan disembunyikan
Syarat:
1. Menginputkan data yang akan disembunyikan
2. Menyediakan file gambar untuk menyembunyikan data.
3. Mempersiapkan kunci atau password.
Tujuan :
Pengirim ingin mengamankan dan menyembunyikan file.
Skenario:
Pengirim membuka aplikasi enkripsi.
Pengirim memasukan datadan kunci yang akan dienkripsi.
Pengirim mendapat data enkripsi.
Pengirim membuka aplikasi Steganografi.
Pengirim memasukan data terenkripsi dan citra yang akan digunakan dalam penyisipan.
Pengirim mendapatkan data citra yang berisikan informasi.
Tabel 4.1 Skenario Enkripsi dan Stego
Use Case:
Proses Dekripsi dan Pengambilan (Unstego)
Aktor:
Penerima
Tujuan:
Data berhasil diuraikan dan didekripsi.
Syarat:
1. Menginputkan file stego untuk mengambil data.
2. Menginputkan file terenkripsi untuk dipulihkan pada keadaan semula.
3. Memasukan kunci.
Tujuan :
Penerima dapat mengambil data yang telah disembunyikan.
Skenario:
Penerima membuka aplikasi Steganografi.
Penerima memasukan citra yang akan diambil datanya.
Penerima mendapatkan data enkripsi.
Penerima membuka aplikasi Dekripsi.
Penerima memasukan file hasil enkripsi dan kunci yang sudah diberikan dari pengirim secara rahasia.
Penerima mendapatkan file hasil dekripsi.
Tabel 4.2 Skenario Unstego dan Dekripsi
Persiapan Data
Sebelum memasuki penelitian selanjutnya, dilakukan pengumpulan terhadap data yang nantinya akan digunakan sebagai bahan penelitian. Peneliti telah memperoleh data Soal Ujian Sekolah dari SMA Negeri 1 Weleri dan data citra sebagai objek penyisipan.
Data Dokumen
Besar
File
Data Citra
Besar
File
SOAL UJIAN SEKOLAH 2016 paket 14 seni budaya.docx
399KB
citra1.jpg
68KB
SOAL UJIAN SEKOLAH PAKET 47 seni budaya.docx
766KB
citra2.jpg
64KB
SOAL UJIAN SEKOLAH FISIKA 2016.docx
2971KB
citra3.jgp
12KB
SOAL UJIAN SEKOLAH 2016 MATEMATIKA.docx
143KB
citra4.jpg
154KB
SOAL UJIAN SEKOLAH 2016 BIOLOGI.docx
876KB
citra5.jpg
36KB
SOAL UJIAN SEKOLAH BAHASA INDONESIA.docx
235KB
citra6.jpg
155KB
SOAL UJIAN SEKOLAH KIMIA.docx
312KB
citra7.png
108KB
SOAL UJIAN SEKOLAH EKONOMI.docx
432KB
citra8.png
93KB
SOAL UJIAN SEKOLAH GEOGRAFI.docx
515KB
citra9.jpg
90KB
SOAL UJIAN SEKOLAH SOSIOLOGI.docx
168KB
citra10.jpg
184KB
Tabel 4.3 Data Awal Penelitian (Soal Ujian Sekolah dan citra yang digunakan)
Setelah seluruh data terkumpul, selanjutnya dapat dimulai pengimplementasian metode yang digunakan. Penelitian ini menggunakan metode Advance Encryption Standard sebagai proses enkripsi dan dekripsi serta End of File sebagai metode penyisipannya.
Penghitungan Manual Advance Encryption Standard
Seperti yang sudah dijelaskan pada pengujian metode pada Bab 3 (tiga), di tahapan ini metode akan diimplementasikan langsung pada file asli demi menemukan hasil yang tepat antara metode dengan aplikasi yang digunakan. Pembuktian metode ini menggunakan satu blok dari data biner file yang akan di enkripsi.
Enkripsi
Diambil data berupa satu blok dari file yang akan di enkripsi. Pembacaan blok ini menggunakan aplikasi Sublime Text pada system operasi Windows 10.
Gambar 4.1. Blok dari File Asli
Blok yang pertama diambil dan dibentuk menjadi elemen state atau plaintext, serta kunci yang diubah menjadi bilangan hexadecimal.
50
14
80
21
4B
00
00
00
03
06
00
CC
04
00
00
CF
Elemen state
(plaintext)
70
77
70
77
61
6F
61
6F
73
72
73
72
73
64
73
64
Key 'passwordpassword'
(cipher key)
Karena untuk mendapatkan AddRoundKey untuk memasuki putaran, makan dilakukan operasi XOR dari state terhadap cipher key. Berikut prosesnya.
Input [50] : 0 1 0 1 0 0 0 0
Cipher [70] : 0 1 1 1 0 0 0 0
S [0,0] : 0 0 1 0 0 0 0 0 20
Input [4B] : 0 1 0 0 1 0 1 1
Cipher [61] : 0 1 1 0 0 0 0 1
S [0,1] : 0 0 1 0 1 0 1 0 2A
Sehingga akan diperoleh initial round atau array S seperti berikut:
20
13
78
56
2A
6F
61
6F
70
74
73
BE
77
64
73
AB
Tahap selanjutnya adalah memasuki putaran pertama. Putaran terjadi sebanyak Nr-1 . pada penelitian dan contoh ini menggunakan AES-128 bit yang menggunakan putaran sebanyak 10 kali.
Transformasi SubByte
Pada awal putaran, initial rount akan disubtitusikan menggunakan Transformasi SubByte. Tranformasi ini menggunakan S-box khusus yang hanya digunakan pada algoritma AES. Seperti berikut:
Seperti yang sudah dijelaskan pada Bab 3. Pada putaran pertama S[0,0] bernilai 20, sehingga saat di inputkan dalam S-box, 2 dan 0 akan bersebrangan membentuk bilangan baru, yaitu B7 sebagai S'[0,0].
Sehingga saat selesai subtitusi seluruh bilangan akan muncul array baru seperti berikut:
B7
FB
BC
B1
E5
A8
EF
A8
51
92
8F
AE
F5
43
8F
62
Kemudian masuk pada tahap selanjutnya, yaitu Tranformasi ShiftRows.
Tranformasi ShiftRows()
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.
B7
FB
BC
B1
A8
EF
A8
E5
51
92
8F
AE
F5
43
8F
62
Baris ke 2 (dua) di geser ke kiri sejauh 1.
B7
FB
BC
B1
A8
EF
A8
E5
8F
AE
51
92
F5
43
8F
62
Baris ke 3 (dua) di geser ke kiri sejauh 2.
B7
FB
BC
B1
A8
EF
A8
E5
8F
AE
51
92
62
F5
43
8F
Baris ke 4 (empat) di geser ke kiri sejauh 3.
B7
FB
BC
B1
A8
EF
A8
E5
8F
AE
51
92
62
F5
43
8F
Hasil akhir proses Shift Row.
Tahap selanjutnya adalah mengalikan setiap kolom dari array state dengan polinom a(x) mod (x4 + 1) pada tahapan MixCollumns().
Transformasi MixCollumns().
Dalam tahap ini, singkatnya adalah mengalikan tiap kolom dari hasil ShiftRow dengan matrix berikut :
Sehingga untuk membangun sebuah kolom baru akan diolah dari kolom pertama hasil shift row dikalikan dengan matrix diatas:
Dilihat dari kajian yang dikumpulkan dapat dituliskan :
r0 = 2a0 3a1 1a2 1a3
r1 = 1a0 2a1 3a2 1a3
r2 = 1a0 1a1 2a2 3a3
r3 = 3a0 1a1 1a2 2a3
Seperti halnya mengalikan antar matrix, hanya saja dalam Transformasi MixCollumns(), terdapat langkah-langkah operasi:
Perkalian dengan 1 artinya tidak berubah
Perkalian dengan 2 artinya menggeser byte ke kiri
Perkalian dengan 3 artinya menggeser byte kekiri dan kemudian melakukan XOR dengan nilai awal sebelum digeser.
Setelah digeser, harus dilakukan XOR dengan 0x11B (100011011) apabila hasil nilai yang digeser lebih besar daripada 0xFF (11111111).
Ambil kolom pertama, yaitu matrix
a0=B7
a1=A8
a2=8F
a3=62
Perhitungan r0= 2a0 3a1 1a2 1a3 :
r0=(2 B7) (3 A8) (1 8F) (1 62)
r0=2 10110111 3 10101000 1 10001111 1 01100010
r0=(01110101) (11100011) (10001111) (01100010)
r0= 01111011
r0= 7B (dalam HEXADECIMAL)
Perhitungan r1 = 1a0 2a1 3a2 1a3 :
r1=(1 B7) (2 A8) (3 8F) (1 62)
r1=1 10110111 2 10101000 3 10001111 1 01100010
r1=(10110111) (01001011) (10001010) (01100010)
r1= 00010100
r1= 14 (dalam HEXADECIMAL)
Perhitungan r2 = 1a0 1a1 2a2 3a3:
r2=(1 B7) (1 A8) (2 8F) (3 62)
r2=1 10110111 1 10101000 2 10001111 3 01100010
r2=(10110111) (10101000) (00000101) (10100110)
r2= 10111100
r2= BC (dalam HEXADECIMAL)
Perhitungan r3 = 3a0 1a1 1a2 2a3:
r3=(3 B7) (1 A8) (1 8F) (2 62)
r3=3 10110111 1 10101000 1 10001111 2 01100010
r3=(11000010) (10101000) (10001111) (11000100)
r3= 00100001
r3= 21 (dalam HEXADECIMAL)
Begitu juga dengan menghitung r1, r2, dan r3. Perlu diingat kembali bahwa pertambahan disini adalah XOR.
Dari penjelasan diatas maka hasil dari mix column dalam satu blok adalah sebagai berikut:
7B
9C
92
50
14
22
47
42
BC
57
73
E1
21
A6
A0
BA
Tranformasi AddRoundKey()
Proses ini sama dengan proses pertama, hanya saja Pada tahapan ini akan dilakukan operasi XOR terhadap sebuah round key dengan array state, hasilnya akan disimpan pada array state.
Maka akan diproses dari array hasil MixCollumns seperti pada proses di bawah ini:
7B
9C
92
50
14
22
47
42
BC
57
73
E1
21
A6
A0
BA
Mix Collumn
D9
AE
DE
A9
21
4E
2F
40
30
42
31
43
86
E2
91
F5
Round Key 1
Sehingga menghasilkan blok baru yang akan diolah pada perulangan selanjutnya seperti berikut:
A2
32
4C
F9
35
6C
68
2
8C
15
42
A2
A7
44
31
4F
Hasil XOR blok Mix column dengan block round key
Karena pada AES-128 putaran terjadi 10 kali hingga Final Round. Proses pada putaran ke-1 hingga ke-10 akan terjadi seperti dibawah ini:
Putaran ke 10 adalah Final Round, yang pada tahapannya 'tidak' terjadi proses Tranformasi MixCollumns. Pada akhir proses enskripsi akan terlihat ciphertext :
68
a2
af
f8
07
e8
87
e3
18
9c
81
ce
f9
4d
3e
4c
Dekripsi
Dekripsi merupakan langkah dalam mentranformasikan kembali ciphertxt dalam bentuk plaintext atau mengembalikan informasi kedalam keadaan semula sebelum terenkripsi. Dekripsi AES tahapan-tahapannya sama seperti enkripsinya hanya berjalan mundur atau proses dari akhir ke awal.
Langkah pertama dalam dekripsi adalah menemukan hasil ShiftRow pada putaran ke-10. Ini dilakukan karena tidak adanya proses Mixcollumn tang terjadi pada putaran ke-10. Oleh karena itu dalam mencari hasil ShiftRow adalah dengan melakukan operasi XOR antara ciphertext dengan Round Key ke-10.
68
a2
af
f8
07
e8
87
e3
18
9c
81
ce
f9
4d
3e
4c
e6
cf
0d
19
62
6c
e2
42
d5
0c
8a
db
68
ea
af
9b
Ciphertext
Round Key ke-10
Input [68] : 0 1 1 0 1 0 0 0
Cipher [e6] : 1 1 1 0 0 1 1 0
Sr [0,0] : 1 0 0 0 1 1 1 0 8e
Input [07] : 0 0 0 0 0 1 1 1
Cipher [62] : 0 1 1 0 0 0 1 0
Sr [0,1] : 0 1 1 0 0 1 0 1 65
Sehingga menghasikan array baru yang berisi hasil Shiftrow:
8e
6d
a2
e1
65
84
65
a1
cd
90
0b
15
91
a7
91
d7
Transformasi Inv ShiftRow.
Selanjutnya dilakukan proses Inv ShiftRow. Secara singkat langkah-langkahnya adalah:
Baris pertama tidak di geser
Baris kedua digeser ke kanan 1 (satu) kali
Baris ketiga digeser ke kanan 2 (dua) kali
Baris keempat digeser ke kanan 3 (tiga) kali.
Setelah melalui proses tersebut akan didapati array baru yang merupakan isi dari transformasi SubByte putaran ke-10.
8e
6d
a2
e1
A1
65
84
65
cd
90
0b
15
91
a7
91
d7
Baris ke 2 (dua) di geser ke kanan sejauh 1.
8e
6d
a2
e1
65
84
65
a1
0b
15
cd
90
91
a7
91
d7
Baris ke 3 (dua) di geser ke kanan sejauh 2.
8e
6d
a2
e1
65
84
65
a1
cd
90
0b
15
a7
91
d7
91
Baris ke 4 (empat) di geser ke kanan sejauh 3.
8e
6d
a2
e1
a1
65
84
65
0b
15
cd
90
a7
91
d7
91
Hasil akhir proses Shift Row.
Transformasi Inv SubByte.
Setelah mendapatkan hasil dari pembalikan ShiftRow, maka dilakukan proses pembalikan dari SubByte menjadi AddRoundKey.
Proses ini memerlukan sebuah S-Box yang merupakan kebalikan dari S-Box dalam enkripsi AES. Berikut tampilan inverse S-Box yang digunakan dalam dekripsi seperti pada Bab 3.
Melaui S'-Box diatas, array SubByte pada putaran ke-10 dapat disubtitusikan menjadi sebuah hasil AddRoudKey atau initial state pada putaran ke -9.
Penggunaannya sama dengan pada saat enkripsi. Contohnya 8e = e6; a1=f1 dan seterusnya. Pada akhirnya menghasilkan sebuah initial round berikut:
8e
6d
a2
e1
a1
65
84
65
0b
15
cd
90
a7
91
d7
91
e6
b3
1a
e0
f1
bc
4f
bc
9e
2f
80
96
89
ac
0d
ac
S'BoxS'Box
S'Box
S'Box
Diketahui kembali sebuah initial round pada putaran ke-9 seperti diatas. Diulangi lagi proses XOR antara initial round ke-9 dengan round key ke-9. Hasil dari operasi XOR ini adalah array hasil transformasi MixCollumn pada putaran ke-9.
e6
b3
1a
e0
f1
bc
4f
bc
9e
2f
80
96
89
ac
0d
ac
30
29
c2
14
b3
0e
8e
a0
cd
d9
86
51
92
82
45
34
d6
9a
d8
f4
42
b2
c1
1c
53
f6
6
c7
1b
2e
48
98
Transformasi Inv MixCollumn
Dari hasil XOR antara initial round dan round key, akan menghasilkan hasil dari transformasi MixCollumn. Pada putaran ke-9 ini terjadi tranformasi ini karena telah masuk dalam putaran inti.
Catatan untuk langkah ini, perlu dilihat kembali pada enkripsi bahwa proses MixCollumn menggunakan matrix khusus. Begitu pula dengan dekripsi, dalam dekripsi dilakukan invers matrix yang digunakan pada enkripsi sehingga matrix yang digunakan dalam dekripsi sebagai berikut:
Dalam Desimal
Dalam Hexadecimal
Berikut operasi mixcollumn pada dekripsi:
a0 = 0e b0 0b b1 0d b2 09 b3
a1 = 09 b0 0e b1 0b b2 0d b3
a2 = 0d b0 09 b1 0e b2 0b b3
a3 = 0b b0 0d b1 09 b2 0e b3
Seperti halnya mengalikan antar matrix, hanya saja dalam Transformasi Inverse MixCollumns(), disadur dari http://crypto.stackexchange.com terdapat cara lain untuk menghitung nilai dalam lahkah ini, metodenya seperti dibawah ini :
Untuk perkalian dengan 09
bn×09=bn×2×2×2+bn
Untuk perkalian dengan 11 atau 0b
bn×0b=(bn×2×2+ bn×2+bn
Untuk perkalian dengan 13 atau 0d
bn×0d=(bn×2+bn×2)×2+bn
Untuk perkalian dengan 14 atau 0e
bn×0d=(bn×2+bn×2)+bn×2
Ambil kolom pertama dari hasil XOR , yaitu kolom:
d6
42
53
1b
b0 = d6
b1 = 42
b2 = 53
b3 = 1b
Menghitung a0 = 0e b0 0b b1 0d b2 09 b3 :
a0=(0e D6) (0b 42) (0d 53) (09 1B)
a0=00001110 11010110 00001011 01000010
00001101 01010011 00001001 00011011
a0=(00101000) (11100000) (10101010) (11000011)
a0= 10100001
a0= A1 (dalam HEXADECIMAL)
Menghitung a1 = 09 b0 0e b1 0b b2 0d b3 :
a1=(09 D6) (0e 42) (0b 53) (0d 1B)
a1=00001001 11010110 00001110 01000010
00001011 01010011 00001101 00011011
a1=(00111100) (10110001) (01011011) (10101111)
a1= 01111001
a1= 79 (dalam HEXADECIMAL)
Menghitung a2 = 0d b0 09 b1 0e b2 0b b3:
a2=(0d D6) (09 42) (0e 53) (0b 1B)
a2=00001101 11010110 00001001 01000010
00001110 01010011 00001011 00011011
a2=(01001001) (01100100) (01011111) (11110101)
a2= 10000111
a2= 87 (dalam HEXADECIMAL)
Menghitung a3 = 0b b0 0d b1 09 b2 0e b3:
a3=(0b D6) (0d 42) (09 53) (0e 1B)
a3=00001011 11010110 00001101 01000010
00001001 01010011 00001110 00011011
a3=(10001011) (01110111) (11111101) (10000010)
a3= 10000011
a3= 83 (dalam HEXADECIMAL)
d6
9a
d8
f4
42
b2
c1
1c
53
f6
6
c7
1b
2e
48
98
Inv-MixColInv-MixColsebelum Inverse Mix Column
Inv-MixCol
Inv-MixCol
a1
50
66
8b
79
4d
9f
ef
87
c7
16
cd
83
2a
b8
1e
Sesudah Inverse Mix Column
Sehingga terbentuk sebuah array baru yang berupa hasil ShiftRow pada putaran ke-9 seperti tabel diatas.
Selanjutnya proses seperti langkah-langkah dekripsi sebelumnya. Proses pada akhir putaran ke-9 hingga putaran ke-2 adalah seperti dibawah ini:
Pada akhir langkah ini, ciphertext akan kembali menjadi plaintext atau file asli seperti proses di awal.
Ekspansi Kunci (Round Key)
Advance Encryption Standard memiliki perhitungan special pada cipherkey atau kunci yang digunakan oleh pengirim dan penerima yang menyebabkan untuk setiap blok terproses akan memiliki kunci yang berbeda-beda yang dinamakan roundkey. Kalkulasi manualnya sebagai berikut:
Cipher Key: 70 61 73 73 77 6f 72 64 70 61 73 73 77 6f 72 64 70
Dibagi menjadi 4 sehingga terpecah sebagai :
w[0] = 70 61 73 73
w[1] = 6f 72 64 70
w[2] = 61 73 73 77
w[3] = 6f 72 64 70
Kondisi :
RotWord : Menggeser byte ke kiri satu setiap 4 (empat) baris sekali.
SubWord : seperti proses subtitusi menggunakan S-Box enkripsi.
Rcon : kondisi yang sudah disediakan oleh algoritma AES dalam operasi XOR setiap 4 (empat) baris sekali.
Untuk ekspansi lengkapnya dapat dilihat pada tabel dibawah ini:
i
temp
After Rotword
After Subword
Rcon[i/Nk]
After XOR with Rcon
w[i-Nk]
w[i]= temp XOR w [i-Nk]
w[0]
70 61 73 73
w[1]
77 6f 72 64
w[2]
70 61 73 73
w[3]
77 6f 72 64
6f 72 64 77
a8 40 43 f5
01 00 00 00
a9 40 43 f5
70 61 73 73
d9 21 30 86
w[4]
d9 21 30 86
77 6f 72 64
ae 4e 42 e2
w[5]
ae 4e 42 e2
70 61 73 73
de 2f 31 91
w[6]
de 2f 31 91
77 6f 72 64
a9 40 43 f5
w[7]
a9 40 43 f5
40 43 f5 a9
09 1a e6 d3
02 00 00 00
0b 1a e6 d3
d9 21 30 86
d2 3b d6 55
w[8]
d2 3b d6 55
ae 4e 42 e2
7c 75 94 b7
w[9]
7c 75 94 b7
de 2f 31 91
a2 5a a5 26
w[10]
a2 5a a5 26
a9 40 43 f5
0b 1a e6 d3
w[11]
0b 1a e6 d3
1a e6 d3 0b
a2 8e 66 2b
04 00 00 00
a6 8e 66 2b
d2 3b d6 55
74 b5 b0 7e
w[12]
74 b5 b0 7e
7c 75 94 b7
08 c0 24 c9
w[13]
08 c0 24 c9
a2 5a a5 26
aa 9a 81 ef
w[14]
aa 9a 81 ef
0b 1a e6 d3
a1 80 67 3c
w[15]
a1 80 67 3c
80 67 3c a1
cd 85 eb 32
08 00 00 00
c5 85 eb 32
74 b5 b0 7e
b1 30 5b 4c
w[16]
b1 30 5b 4c
08 c0 24 c9
b9 f0 7f 85
w[17]
b9 f0 7f 85
aa 9a 81 ef
13 6a fe 6a
w[18]
13 6a fe 6a
a1 80 67 3c
b2 ea 99 56
w[19]
b2 ea 99 56
ea 99 56 b2
87 ee b1 37
10 00 00 00
97 ee b1 37
b1 30 5b 4c
26 de ea 7b
w[20]
26 de ea 7b
b9 f0 7f 85
9f 2e 95 fe
w[21]
9f 2e 95 fe
13 6a fe 6a
8c 44 6b 94
w[22]
8c 44 6b 94
b2 ea 99 56
3e ae f2 c2
w[23]
3e ae f2 c2
ae f2 c2 3e
e4 89 25 b2
20 00 00 00
c4 89 25 b2
26 de ea 7b
e2 57 cf c9
w[24]
e2 57 cf c9
9f 2e 95 fe
7d 79 5a 37
w[25]
7d 79 5a 37
8c 44 6b 94
f1 3d 31 a3
w[26]
f1 3d 31 a3
3e ae f2 c2
cf 93 c3 61
w[27]
cf 93 c3 61
93 c3 61 cf
dc 2e ef 8a
40 00 00 00
9c 2e ef 8a
e2 57 cf c9
7e 79 20 43
w[28]
7e 79 20 43
7d 79 5a 37
03 00 7a 74
w[29]
03 00 7a 74
f1 3d 31 a3
f2 3d 4b d7
w[30]
f2 3d 4b d7
cf 93 c3 61
3d ae 88 b6
w[31]
3d ae 88 b6
ae 88 b6 3d
e4 c4 4e 27
80 00 00 00
64 c4 4e 27
7e 79 20 43
1a bd 6e 64
w[32]
1a bd 6e 64
03 00 7a 74
19 bd 14 10
w[33]
19 bd 14 10
f2 3d 4b d7
eb 80 5f c7
w[34]
eb 80 5f c7
3d ae 88 b6
d6 2e d7 71
w[35]
d6 2e d7 71
2e d7 71 d6
31 0e a3 f6
1b 00 00 00
2a 0e a3 f6
1a bd 6e 64
30 b3 cd 92
w[36]
30 b3 cd 92
19 bd 14 10
29 0e d9 82
w[37]
29 0e d9 82
eb 80 5f c7
c2 8e 86 45
w[38]
c2 8e 86 45
d6 2e d7 71
14 a0 51 34
w[39]
14 a0 51 34
a0 51 34 14
e0 d1 18 fa
36 00 00 00
d6 d1 18 fa
30 b3 cd 92
e6 62 d5 68
w[40]
e6 62 d5 68
29 0e d9 82
cf 6c 0c ea
w[41]
cf 6c 0c ea
c2 8e 86 45
0d e2 8a af
w[42]
0d e2 8a af
14 a0 51 34
19 42 db 9b
w[43]
19 42 db 9b
e6 62 d5 68
Tabel 4.4 Ekspansi Kunci
Implementasi Metode pada Python
Setelah pengolahan data manual seperti yang diuraikan diatas, pada tahap ini Peneliti mengimplementasikan metode yang digunakan dalam Bahasa pemrograman Python dengan versi 3.4. Dalam tahap ini akan diimplementasikan analisa dalam bentuk Command Python atau bentuk dasar. Setelah itu akan di bandingkan hasil Antara perhitungan manual dengan hasil akhir program.
Implementasi Enkripsi dan Penyisipan pada Python Shell
Metode kriptografi yang digunakan dalam penelitian ini adalah Advance Encryption Standard (AES) dengan panjangan kuncinya adalah 128bit. Untuk memulai proses enkripsi maupun dekripsi dalam Bahasa Python dibutuhkan module pendukung yang digunakan dalam proses enkripsi maupun dekripsinya. Pada penelitian ini digunakan module PyCrypto 3.4. Module ini berisi beberapa algoritma kriptografi yang sering dipakai, namun dikarenakan adanya batasan masalah dalam penelitian ini maka algoritma yang digunakan adalah algoritma AES.
Implementasi dari metode pada Python dijalankan dengan menggunakan Python Shell seperti gambar 4.2 dibawah ini.
Gambar 4.2. Python Shell
Dalam penulisan algoritmanya, bias menggunakan alat bantu seperti Notepad++, SublimeText, dan lain-lain. Dalam penelitian ini, peneliti hanya menggunakan editor yang disediakan oleh Python dalam Python shell.
Enkripsi
Proses enkripsi merupakan proses pengamanan data menggunakan algoritma yang dibutuhkan. Dalam penelitian ini algoritma yang digunakan adalah AES, maka dalam script yang dibangun pertama-tama melakukan import modul yang akan digunakan seperti gambar 4.3.
Gambar 4.3. Header yang diimport dalam program
Kemudian definisikan fungsi yang dibutuhkan dalam proses mengubah format file menjadi blok-blok. Ini dikarenakan AES sendiri merupakan salah satu dari jajaran kriptografi Block Cipher.
Gambar 4.4. Fungsi dalam membentuk blok-blok AES
Kemudian buat lagi fungsi untuk enkripsi.
Gambar 4.5. Source Code AES
Dalam gambar 4.5, key_size di tetapkan dengan nilai 128 ini dikarenakan penelitian ini menggunakan AES-128. Kemudian variable pesan diolah menjadi blok-blok sehingga akan mudah diproses. Variable "iv" atau initialization vector yaitu sebuah blok 'dummy' untuk melakukan proses penambahan block pada awal file, serta memberikan atribut acak pada proses tersebut. AES dalam penelitan ini menggunakan ECB, karena proses yang dilakukan adalah mengenkripsi masing-masing blok dengan kunci yang sama secara independen.
Gambar 4.6. Prosedur Pemanggilan AES
Gambar diatas merupakan script dalam pemanggilan dalam memilih file yang akan dienkripsi, kemudian membuat file baru yang merupakan ciphertext dari file yang dienkripsi. Berikut implementasinya.
File yang diujikan pada proses enkripsi adalah SOAL UJIAN SEKOLAH 2016 paket 14 seni budaya.docx dengan ukuran file 400 KiloByte. Data harus berada di satu folder dengan script yang digunakan.
Selanjutnya dalam Python Shell dilakukan pemanggilan fungsi enkripsi.
Gambar 4.7. Enskripsi Plaintext
Ketika proses enkripsi berhasil, maka akan dibuat file baru dengan ekstensi *.code sebagai hasil proses enkripsi.
Saat dibuka, file yang terenkripsi akan berbentuk seperti gambar dibawah ini.
Gambar 4.8. File Terenkripsi atau Ciphertext
Lalu ambil baris pertama dan ubah dalam bentuk hexadecimal.
String : ¾*Ì6OÒNÜš¨ YñChù¢èœM¯ >øãÎLÍ"óÉ<
Hex : be 2a cc 36 02 4f d2 4e dc 9a a8 1c 99 59 f1 43
68 07 18 f9 a2 e8 9c 4d af 87 81 3e f8 e3 ce 4c
05 cd 7c f3 c9 0b 0b 3c
Baris pertama pada baris diatas adalah baris random yang dihasilkan untuk penambahan keamanan file agar bukan awal data yang diproses untuk pertama kali. Sehingga baris kedua dalah awal data yang sudah terenkripsi algoritma AES, hasilnya pun sama dengan perhitungan awal sebelum implementasi dengan menggunakan python. Dengan demikin metode dalam penelitian ini dapat dipertanggungjawabkan.
Selanjutnya dilakukan penyisipan file terenkripsi terhadap citra yang digunakan sebagai media penyisipan dengan menggunakan metode End of File.
Proses Penyisipan Data
Tahap ini adalah tahap steganografi atau menyebunyikan data pada sebuah media. Dalam penelitian ini diimplementasikan pada media citra. Metode yang digunakan dalam penelitian ini adalah End of File yaitu menyisipkan pesan rahasia pada akhir dari sebuah data. Berikut implementasinya
Gambar 4.9. Fungsi penyisipan citra
Gambar diatas merupakan fungsi dalam menyisipkan data kedalam sebuah gambar. Berikut implementasinya.
Gambar diatas merupakan data image yang akan di sisipi oleh file terenkripsi yang mempunyai extensi *.code.
Gambar 4.10. Cara penyisipan citra
Gambar diatas adalah perintah dalam python shell untuk melakukan proses penyisipan.
Gambar diatas adalah keadaan hasil penyisipan, basar memori file citra bertambah menjadi lebih besar tergantung data yang disisipkan karena pada rumus awal dijelaskan bahwa End of File hanya menambahkan pesan pada akhir citra saja sehingga citra stego = citra asli + pesan.
Implementasi Pengambilan dan Dekripsi Python Shell
Proses Pengambian Data
Setelah melakukan penyisipan seperti langkah sebelumnya, maka dilakukan proses pengambilan data atau ekstraksi dari citra stego (hasil steganografi). Proses ini mengambil data tersembunyi yang berada dibelakang citra stego.
Gambar 4.11. Source Code Pengekstraksian Data dari Citra
Gambar 4.12. Proses Pengekstraksian Data
Dekripsi
Setelah data terenkripsi diambil dari data citra maka lagkah selanjutnya adalah proses dekripsi. Proses dekripsi merupakan proses mengubah hasil enkripsi (cipher) menjadi file awal atau data asli. Seperti pada enkripsi, dekripsi dalam python memerlukan modul sehingga fungsi di masukkan dalam satu file. Berikut file dekripsinya.
Gambar 4.13. Fungsi dekripsi ciphertext
Fungsi dalam gambar diatas merupakan proses pengubahan file terenkripsi menjadi file awal. Proses dekripsi menggunakan kunci yang sama saat melakukan enkripsi karena AES merupakan kriptografi simetris yang artinya kunci pada enkripsi sama dengan kunci pada dekripsi.
Gambar 4.14. Prosedur Dekripsi Ciphertext
Gambar diatas merupakan prosedur dalam dekripsi, dengan memilih file terenkripsi dan kunci pada awal enkripsi kemudian membuat file baru yang berupa data awal sebelum enkripsi dengan menambahkan nama "dekripsi_" sebagai bukti bahwa file telah di enkripsi.
Untuk implementasinya, buka python shell lalu panggil fungsi dekripsi.
Gambar 4.15. Dekripsi Ciphertext
Sehingga dalam folder akan dibuat lagi hasil dekripsi dengan awalan 'dekripsi_'.
Analisis Pengujian Data
Pengujian Aplikasi
Dalam tahap ini penulis melakukan pengujian dari aplikasi yang dibuat terhadap data yang telah disiapkan. Data yang digunakan hanyalah data yang berformat *.docx. Berikut hasil dari pengujian yang dilakukan.
Data Dokumen
Besar
File
Hasil Enkripsi
SOAL UJIAN SEKOLAH 2016 paket 14 seni budaya.docx
399KB
Sukses
SOAL UJIAN SEKOLAH PAKET 47 seni budaya.docx
766KB
Sukses
SOAL UJIAN SEKOLAH FISIKA 2016.doc
2971KB
Sukses
SOAL UJIAN SEKOLAH 2016 MATEMATIKA.docx
143KB
Sukses
SOAL UJIAN SEKOLAH 2016 BIOLOGI.docx
876KB
Sukses
SOAL UJIAN SEKOLAH BAHASA INDONESIA.doc
235KB
Sukses
SOAL UJIAN SEKOLAH KIMIA.doc
312KB
Sukses
SOAL UJIAN SEKOLAH EKONOMI.doc
432KB
Sukses
SOAL UJIAN SEKOLAH GEOGRAFI.doc
515KB
Sukses
SOAL UJIAN SEKOLAH SOSIOLOGI.docx
168KB
Sukses
Tabel 4.5 Pengujian proses Enkripsi AES
Setelah dilakukan pengujian terhadap data yang disiapkan, sebanyak 10 data dapat berhasil dienkripsi menggunakan Advance Encryption Standard. File baru sebagai hasil enkripsi mempunyai format ekstensi *.code. Selanjutnya dilakukan proses penyisipan terhadap file citra yang telah disiapkan.
Nama File
Besar File
Citra
Besar Citra
Citra Stego
Besar
Stego
SOAL UJIAN SEKOLAH 2016 paket 14 seni budaya.docx.code
399KB
citra1.jpg
68KB
citra1.jpg
466KB
SOAL UJIAN SEKOLAH PAKET 47 seni budaya.docx.code
766KB
citra2. jpg
64KB
citra2. jpg
892KB
SOAL UJIAN SEKOLAH FISIKA 2016.doc.code
2971KB
citra3. jpg
12KB
citra3. jpg
2983KB
SOAL UJIAN SEKOLAH 2016 MATEMATIKA .docx.code
143KB
citra4. jpg
154KB
citra4. jpg
297KB
SOAL UJIAN SEKOLAH 2016 BIOLOGI.docx.code
876KB
citra5. jpg
36KB
citra5. jpg
912KB
SOAL UJIAN SEKOLAH BAHASA INDONESIA.doc.code
235KB
citra6. jpg
155KB
citra6. jpg
390KB
SOAL UJIAN SEKOLAH KIMIA.doc.code
312KB
citra7.png
108KB
citra7.png
419KB
SOAL UJIAN SEKOLAH EKONOMI.doc.code
432KB
citra8.png
93KB
citra8.png
525KB
SOAL UJIAN SEKOLAH GEOGRAFI.doc.code
515KB
citra9. jpg
90KB
citra9. jpg
604KB
SOAL UJIAN SEKOLAH SOSIOLOGI.docx.code
168KB
citra10. jpg
184KB
citra10. jpg
351KB
Tabel 4.6 Pengujian proses Steganografi EoF
Pengujian End of File terhadap file terenkripsi dengan citra yang disediakan berhasil dilakukan. Citra stego atau citra hasil steganografi juga berhasil dibuka tanpa korup. Ukuran dari citra hasil steganografi merupakan gabungan dari file enkripsi dan citra awal.
citra stego=file enkripsi+citra awal
Setelah dilakukan penyisipan, dalam implementasinya, citra stego akan diberikan kepada penerima untuk dikembalikan ke kondisi awal. Disini terjadi proses ekstraksi data dan setelahnya dilakukan dekripsi sehingga informasi dapat diambil.
Citra Stego
Besar
Stego
File Ekstrasi
Besar
File
citra1.jpg
466KB
data_enkripsi1.code
399KB
citra2.jpg
892KB
data_enkripsi2.code
766KB
citra3.jpg
2983KB
data_enkripsi3.code
2972KB
citra4.jpg
297KB
data_enkripsi4.code
143KB
citra5.jpg
912KB
data_enkripsi5.code
876KB
citra6.jpg
390KB
data_enkripsi6.code
236KB
citra7.png
419KB
data_enkripsi7.code
312KB
citra8.png
525KB
data_enkripsi8.code
433KB
citra9.jpg
604KB
data_enkripsi9.code
515KB
citra10.jpg
351KB
data_enkripsi10.code
168KB
Tabel 4.7 Pengujian Proses Ekstraksi Data EoF
Pengujian pada steganografi pada proses ekstrasi data menghasilkan file baru dengan ekstensi *.code. Setelah file enkripsi berhasil di ekstrak, selanjutnya dilakukan proses dekripsi.
Citra Stego
Besar
Stego
File Ekstrasi
Besar
File
Keterangan
data_enkripsi1.code
399KB
data_enkripsi1.docx
399KB
Sukses
data_enkripsi2.code
766KB
data_enkripsi2.docx
766KB
Sukses
data_enkripsi3.code
2972KB
data_enkripsi3.doc
2971KB
Sukses
data_enkripsi4.code
143KB
data_enkripsi4.docx
143KB
Sukses
data_enkripsi5.code
876KB
data_enkripsi5.docx
876KB
Sukses
data_enkripsi6.code
236KB
data_enkripsi6.doc
235KB
Sukses
data_enkripsi7.code
312KB
data_enkripsi7.doc
312KB
Sukses
data_enkripsi8.code
433KB
data_enkripsi8.doc
432KB
Sukses
data_enkripsi9.code
515KB
data_enkripsi9.doc
515KB
Sukses
data_enkripsi10.code
168KB
data_enkripsi10.docx
168KB
Sukses
Tabel 4.8 Pengujian proses Dekripsi AES
Pengujian dekripsi dengan Advance Encryption Standard semua file berhasil kembali dalam keadaan semua dan berhasil dibuka sesuai data awal.
Pengujian Citra
Dalam pengujian citra pada tahapan ini, peneliti akan melakukan pengujian terhadap citra dengan 6 (enam) jenis image processing yaitu pemotongan (crop), penambahan dan pengurangan kecerahan (brightness), penambahan dan pengurangan kontras (contrast) serta penempelan citra lain.
Pemotongan citra (Crop)
Kecerahan (Brightness)
Kontras (Contrast)
Penempelan citra lain
Citra Stego
Jenis Editing
Keterangan
Citra1
Crop
Korup
Citra2
Penambahan Brightness
Korup
Citra2
Pengurangan Brightness
Korup
Citra8
Penambahan Kontras
Korup
Citra8
Pengurangan Kontras
Korup
Citra9
Penambahan citra lain
Korup
Tabel 4.9 Pengujian Editing Citra
Citra stego yang diuji dalam editing menggunakan software Adobe Photoshop CS6 mengalami korup dalam semua jenis editing. Ini disebabkan karena end of file adalah teknik steganografi dengan menyisipkan informasi pada baris paling belakang dari matrix media yang disispkan. Ketika dilakukan editing, aplikasi editing hanya menyimpan kembali citra menurut blok pixel yang terlihat, sehingga informasi yang ada dibelakang akan hilang saat penyimpanan.
BAB V
PENUTUP
Simpulan
Dari penelitian yang dilakukan peneliti meliputi tahapan perancangan hingga implementasi aplikasi kriptografi Adnvance Encryption Standard dan steganografi End of File, diperoleh kesimpulan sebagai berikut:
Melalui hasil yang diperoleh, terbukti bahwa aplikasi ini dapat mengamankan informasi sehingga tidak semua orang dapat mengambilnya dengan sembarangan terlebih tidak ada program dalam Windows yang dapat mengetahui data aslinya.
Selain terbukti dalam pengamanan, penelitian ini membuktikan bahwa bahasa Python dapat digunakan dalam pengamanan data maupun informasi yang rahasia karena hasil enkripsi dan dekripsi sama dengan perhitungan manualnya.
Informasi Sebelum dan setelah melalui proses Enkripsi, dekripsi serta Steganografi tidak berubah dan tidak mengalami kerusakan, dengan kata lain metode ini berjalan dengan lancer dan sukses.
Informasi yang diamankan melalui metode kriptografi serta steganografi tidak menjadi rusak dengan syarat tidak melakukan editing meliputi pemotongan (cropping), penambahan kecerahan (brightness), penambahan contrast serta penempelan gambar lain. Ini disebabkan karena end of file adalah teknik steganografi dengan menyisipkan informasi pada baris paling belakang dari matrix media yang disispkan. Ketika dilakukan editing, aplikasi editing hanya menyimpan kembali citra menurut blok pixel yang terlihat, sehingga informasi yang ada dibelakang akan hilang saat penyimpanan.
Saran
Dari penelitian yang dilakukan, saran-saran yang berguna dalam pengenbangan penelitian ini adalah sebagi berikut:
Aplikasi dijalankan masih menggunakan command dalam IDLE Python, Akan lebih baik lagi jika diberi interface yang menarik.
Implementasi stegano dalam Python ini masih menggunakan temporary file, baiknya dalam penelitian selanjutnya dapat mengimplementasikan stegano tanpa temporary file.
Penelitian ini dapat di implementasikan pada instansi lain yang memiliki dokumen yang dirahasiakan.
Karena berbasis pemrograman python, metode yang digunakan dalam penelitian ini dapat di implementasikan pada sebagian besar platform, tidak hanya pada desktop melainkan pada mobile, web dan lainnya.
DAFTAR PUSTAKA
[1]
D. Ariyus, Pengantar Ilmu Kriptografi: Teori Analisis dan Implementasi, Yogyakarta: Penerbit Andi, 2008.
[2]
R. Munir, Kriptografi, Bandung: Penerbit Informatika, 2007.
[3]
W. Wei, "Top 4 Data Breach reported in last 24 hours," 10 May 2016. [Online]. Available: http://thehackernews.com/2016/05/top-data-breach.html. [Accessed 12 May 2016].
[4]
A. Yayuk and V. Dolly, "Penerapan Steganografi Metode End Of File (Eof) Dan Enkripsi Metode Data Encryption Standard (Des) Pada Aplikasi Pengamanan Data Gambar Berbasis Java Programming.," in Konferensi Nasional Sistem Informasi 2014, Makassar, 2014.
[5]
K. P. Adetya, "Pengamanan Data Dengan Metode Advanced Encryption Standard Dan Metode Least Significant Bit," in Skripsi Teknik Informatika Universitas DIan Nuswantoro, Semarang, 2014.
[6]
A. S. Christy and H. R. Eko, "Gabungan Algoritma Vernam Cipher Dan End of File Untuk Keamanan Data," Techno.COM, vol. XIII, no. 3, pp. 150-157, 2014.
[7]
R. Munir, Pengolahan Citra Digital dengan Pendekatan Algoritmik, Bandung: Penerbit Informatika, 2005.
[8]
N. Gupta, Advance Encryption Standard (AES-128) Project Report, Rajasthan: Arya Institute of Engineering & Technology, 2014.
[9]
D. Triasanti, Konsep Dasar Python, Depok: Universitas Gunadarma, 2005.
[10]
A. Sweigart, Automate The Boring Stuff With Python: Practical Programming for Total Beginning, San Francisco: no starch press, 2015.
[11]
M. Lutz, Learning Python Powerful Object-Oriented Programming, 5th ed., Sebastopol,: O'Reilly Media, Inc., 2013.