Anda di halaman 1dari 115

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

i
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: Mengetahui:
Pembimbing, Dekan Fakultas Ilmu Komputer

ii
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
inimemadai 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

iii
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)

iv
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)

v
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 Weleridapat penulis selesaikan sesuai
dengan rencana karena dukungan dari berbagai pihak yang tidak ternilai besarnya.
Oleh karena itu penulis menyampaikan terima kasih kepada:
1. Dr. Ir. Edi Noersasongko,M.Kom, selaku Rektor Universitas Dian
Nuswantoro Semarang.
2. Dr. Drs. Abdul Syukur, MM, selaku Dekan Fakultas Ilmu Komputer
Universitas Dian Nuswantoro.
3. Heru Agus Santoso,Ph.D., selaku Ketua Program Studi Teknik
Informatika.
4. Edy Mulyanto, SSi, M.Kom, selaku dosen pembimbing yang telah
memberikan bimbingan kepada penulis dalam penyusunan laporan tugas
akhir ini.
5. Erwin Yudi Hidayat, S.Kom, M.CS , selaku dosen wali yang telah
memberikan bimbingan serta semangat kepada penulis dalam penyusunan
laporan tugas akhir ini.
6. Dosen-dosen pengampu di Fakultas Ilmu Komputer Teknik Informatika
Universitas Dian Nuswantoro Semarang yang telah memberikan banyak
ilmu.
7. Ibu , Bapak serta Adik saya yang tidak pernah lelah memberikan doa serta
dukungan kepada penulis untuk maju dan terus berusaha.
8. Amni Padmawati selaku teman pendamping saya selama menempuh
penelitian dan motivasi agar terselesaikannya penelitian ini.
9. Sahabat-sahabat saya di Universitas Dian Nuswantoro yang selalu
memberi dukungan dalam penelitian.
10. Teman-teman Dewan Perwakilan Mahasiswa yang selalu memberi
motivasi sesaan dan dalam penulisan ini.
11. 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

vi
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.

vii
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.................................................................................... 8
2.2.1. Keamanan Data dan File ................................................................. 9
2.2.2. Kriptografi .................................................................................... 10
2.2.2.1. Komponen Kriptografi........................................................... 13
2.2.2.2. Teknik Kriptografi ................................................................. 14
2.2.2.3. Algoritma Kriptografi Klasik ................................................. 17
2.2.2.4. Algoritma Kriptografi Modern ............................................... 21
2.2.3. Advance Encryption Standard (AES)............................................. 23
2.2.3.1. Enkripsi dan Dekripsi pada AES ............................................ 24
2.2.4. Steganografi ................................................................................. 31
2.2.4.1. Sejarah dan Definisi Steganografi .......................................... 31
2.2.4.2. Kriteria Steganografi ............................................................. 32
2.2.4.3. Metode End of File ................................................................ 33
2.2.5. Bahasa Pemrograman Python ........................................................ 35
2.3. Kerangka Pemikiran ............................................................................ 37

viii
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 ................................................................................ 43
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 ........................................................................................ 74
4.4.3. Ekspansi Kunci (Round Key) ........................................................ 82
4.5. Implementasi Metode pada Python ...................................................... 84
4.5.1. Implementasi Enkripsi dan Penyisipan pada Python Shell ............. 84
4.5.1.1. Enkripsi ................................................................................. 85
4.5.1.2. Proses Penyisipan Data .......................................................... 88
4.5.2. Implementasi Pengambilan dan Dekripsi Python Shell .................. 89
4.5.2.1. Proses Pengambian Data ........................................................ 89
4.5.2.2. Dekripsi ................................................................................. 90
4.6. Analisis Pengujian Data ....................................................................... 92
4.6.1. Pengujian Aplikasi ........................................................................ 92
4.6.2. Pengujian Citra ............................................................................. 94
BAB V PENUTUP ............................................................................................ 95
5.1. Simpulan ............................................................................................. 95
5.2. Saran ................................................................................................... 96
DAFTAR PUSTAKA ........................................................................................ xii

ix
DAFTAR TABEL

Tabel 2.1Ringkasan Penelitian ............................................................................. 7


Tabel 2.2Caesar Cipher dengan interval 3 .......................................................... 17
Tabel 2.3Tiga Buah Versi AES (Ariyus, 2008) .................................................. 24
Tabel 4.1Skenario Enkripsi dan Stego ................................................................ 62
Tabel 4.2Skenario Unstego dan Dekripsi............................................................ 63
Tabel 4.3Data Awal Penelitian (Soal Ujian Sekolah dan citra yang digunakan) .. 65
Tabel 4.4 Ekspansi Kunci................................................................................... 83
Tabel 4.5Pengujian proses Enkripsi AES ........................................................... 92
Tabel 4.6Pengujian proses Steganografi EoF...................................................... 93
Tabel 4.7 Pengujian Proses Ekstraksi Data EoF ................................................. 93
Tabel 4.8 Pengujian proses Dekripsi AES .......................................................... 94
Tabel 4.9 Pengujian Editing Citra ...................................................................... 94

x
DAFTAR GAMBAR

Gambar 2.1 . Kriptografi dan Kriptanalisis adalah cabang ilmu Kriptologi ......... 14
Gambar 2.2 Bujursangkar Vigenere ................................................................... 21
Gambar 2.3. Proses Enkripsi Algoritma AES-128 ............................................... 26
Gambar 2.4. Input Output dan state array. ......................................................... 27
Gambar 2.5. S-box yang digunakan pada putaran AES........................................ 28
Gambar 2.6. Transformasi SubBytes. (Wikipedia) .............................................. 28
Gambar 2.7. Tranformasi ShiftRows (Wikipedia). .............................................. 29
Gambar 2.8. Tranformasi MixCollumns() (Wikipedia) ....................................... 30
Gambar 2.9. Tranformasi AddRoundKey (Wikipedia) ........................................ 30
Gambar 2.10. Kerangka Pemikiran..................................................................... 37
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. ................................................. 43
Gambar 3.6. Subtitusi Array S dengan S-box AES .............................................. 45
Gambar 3.7. Pergeseran baris ke-1 ..................................................................... 46
Gambar 3.8. Hasil pergeseran baris ke-1 dan pergeseran baris ke-2 .................... 46
Gambar 3.9. Hasil pergeseran baris ke-2 dan pergeseran baris ke-3 .................... 46
Gambar 3.10. Hasil pergeseran baris ke-3 .......................................................... 46
Gambar 3.11. Matrix Enkripsi ShfitRow ............................................................ 47
Gambar 3.12. Proses putaran ke-2 hingga ke-6 ................................................... 50
Gambar 3.13. Putaran ke-7 hinggan ke-10.......................................................... 51
Gambar 3.14. S-Box untuk Dekripsi AES .......................................................... 56
Gambar 3.15. Matrix Dekripsi MixCollumn ....................................................... 57
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

xi
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

xii
BAB I

PENDAHULUAN

1.1.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

1
(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
3

(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 BitMatching
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”.

1.2.Rumusan Masalah
Dari latar belakang diatas dapat disajikan rumusan masalah sebagai
berikut :
1. Bagaimana hasil enkripsi data dari Algoritma Advance Encryption
Standard dan Metode End of File.
2. Bagaimana kualitas data sebelum dan sesudah melalui proses kriptografi
dan steganografi?

1.3.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.
4

1.4.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.

1.5.Manfaat Penelitian
Manfaat yang didapat pada akhir penelitian ini adalah :
1. Manfaat bagi Universitas
Memberi kontribusi pada literature yang terkait tentang Teknologi
Informatika di bidang Keamanan.
2. Manfaat bagi Akademik
Penelitian ini dapat menjadi sebuah contoh nyata tentang pembelajaran,
pemahaman serta penguasaan teori maupun praktikum yang didapat dalam
bangku perkuliahan.
3. 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.
4. Manfaat bagi Penulis
a. Penulis mampu menerapkan ilmu tentang Kriptografi dan Steganografi
yang telah didapat selama menempuh jenjang perkuliahan.
b. Memberikan pengalaman tersurat yang akan berguna dalam dunia
kerja diluar akademi.
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI

2.1.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.

5
6

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,
7

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.1Ringkasan Penelitian

Peneliti Judul Metode Tahun Hasil Penelitian


Yayuk Penerapan End of File 2014 Pembuatan Program
Anggraeni dan Steganografi (EoF) dan Data pengamanan data
Dolly Virgian Metode End of Encryption DESain berupa citra
Shaka Yudha File (EoF) Dan Standard (DES) dengan Java pada
Sakti Enkripsi Metode Jogjack Factory Oulet.
Data Encryption File yang disisipkan
Standard (DES) tidak merubah kualitas
Pada Aplikasi gambar dan hasil dari
Pengamanan pesyisipan menambah
Data Gambar ukuran file.
Berbasis Java
Programming
Adetya Krisna Pengamanan Advance 2014 Pembuatan program
Prastyo Data Dengan Encryption pengamanan data
Metode Standard (AES) berextensi .pdf dengan
Advanced dan Least Visual Basic 2008, dan
Encryption Significant Bit penyisipan
Standard Dan (LSB) menggunakan Ultima
Metode Least Steganography. Ukuran
Significant Bit 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
8

kontrasnya.
Christy Atika Gabungan Vernam Cipher 2014 Menghasilkan program
Sari M.Kom Algoritma dan End of File untuk mengenkripsi atau
dan Vernam Cipher (EoF) dekripsi dan
Eko Hari Dan End of File menyisipkan file
Rachmawanto Untuk berbasis Visual Basic
M.Kom Keamanan Data 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:
a. Data yang akan digunakan dalam penelitian ini adalah Soal Ujian
Sekolah tahun 2016 milik SMA Negeri 1 Weleri.
b. 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.
c. Algoritma yang akan dipakai dalam penelitian ini berbatas pada
Algoritma Advance Encryption Standard (AES) dan metode
steganografi End of File (EoF).
d. Tools yang akan digunakan pada penelitian ini adalah WinPython
untuk Bahasa pemograman Python versi 3.4.

2.2.Tinjauan Pustaka
9

2.2.1. 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]:
1) Authentication
Adalah keaslian pesan, yaitu penerima dapan mengkonformasi
bahwa data memang benar dari sang pengirim.
2) Integrity
Adalah kepastian bahwa data tidak dimodifikasi saat sampai
kepada penerima.
3) Non-repudiation
10

Merupakan hal yang berhubungan dari pengirim, sehingga


pengirim tidak dapat berbohong bahwa dialah yang
mengirimkan data tersebut.
4) Authority
Informasi yang berada dalam system jaringan tidak dapat
dimodifikasi oleh pihak yang tidak berhak untuk
mengaksesnya.
5) Confidentiality
Merupakan usaha untuk menjaga informasi dari orang yang
tidak berhak mengaksesnya.
6) Privacy
Merupakan data-data yang bersifat pribadi.
7) Availability
Berhubungan dengan ketersediaan informasi ketika dibutuhkan.
8) 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.

2.2.2. 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
11

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, “Kriptografiadalah 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:
a. Kerahasiaan
Kriptografi dapat membuat pesan tidak dapat dibaca oleh
sembarang pihak, terutama pihak yang tidak berwenang dan
bertanggung jawab.
b. Integritas data
Data yang diterima oleh sang penerima pesan adalah utuh dan
tidak kurang satu apapun serta tidak ada manipulasi selama
pengiriman.
c. Otentifikasi
Sang penerima dan pengirim dapat meyakin kan bahwa pesan
yang dikirim benar adanya dan sampai dari pengirim ke
penerima.
d. 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.
12
13

2.2.2.1.Komponen Kriptografi
Pada dasarnya kriptografi memiliki beberapa komponen penting
dalam pelaksanaannya [1] [2], seperti:
a. 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.
b. 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.
c. 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).
d. 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.
14

e. 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.
f. 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.

Kriptologi

Kriptografi Kriptanalisis
Gambar 2.1. Kriptografi dan Kriptanalisis adalah cabang bidang ilmu Kriptologi

2.2.2.2.Teknik Kriptografi
Teknik Kriptografi pada umumnya dibedakan menjadi dua yaitu
symmetric key (kunci simetrik) dan asymmetric key (kunci asimetris
atau kunci publik).
a. Symmetric Algorithm
Algoritma kriptografi simetris atau kriptografi
konvensional adalah algoritma yang menggunakan kunci
15

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.
b. 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.
16
17

2.2.2.3.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].

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.

Tabel2.2Caesar 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
18

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: = ( ) = ( + ) (2.1)
Dekripsi: = ( ) = ( − ) (2.2)

Sedangkan untuk enkripsi maupun dekripsi pesan yang


disusun dari bilangan ASCII, persamaan diatas dapat
diperluas menjadi:

Enkripsi: = ( ) = ( + ) (2.3)
Dekripsi: = ( ) = ( − ) (2.4)

2. Affine Cipher
Affine Cipher merupakan pengembangan dari
Caesar cipher, yaitu mengalikan plaintext dengan sebuah
nilai dan menambahkannya dengan sebuah pergeseran.
Enkripsi plaintextP untuk menghasilkan ciphertxtC dapat
dinyatakan melalui fungsi berikut:

Enkripsi: = + ( ) (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
19

ajika inversi m (mod n), dinyatakan dengan m-1. Sehingga


fungsi dekripsi dapat dituliskan seperti:

Dekripsi: = ( − )( ) (2.6)
C : Ciphertext
-1
m : 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.
= 7 + 10( 26)
Perhitngannya sebagai berikut :
p 1=10  c1≡7.10 + 10 ≡ (80 mod 26) ≡ 2  “C”
p 2=17  c2≡7.17 + 10 ≡ (129 mod 26) ≡ 25  “Z”
p 3=8  c3≡7 . 8 + 10 ≡ (66 mod 26) ≡ 14  “O”
p 4=15  c4≡7.15 + 10 ≡ (115 mod 26) ≡ 11  “L”
p 5=19  c5≡7.19 + 10 ≡ (143 mod 26) ≡ 13  “N”
p 6=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 :
7 ≡ 1 ( 26)
Solusinya adalah x = 15 (mod 26) sebab 7.15 =
105≡1 (mod 26). Jadi untuk dekripsi digunakan rumus :
≡ 15( − 10)( 26)
20

Perhitungannya sebagai berikut:


c1=2  p 1≡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  p 1≡15∙(4 – 10) = (-90 mod 26) ≡ 14 
“O”
Plaintext akan kembali menjadi KRIPTO
3. 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
21

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.

2.2.2.4.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,
22

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).

1. 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).

2. 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 :
a. Electronic Code Book(EBC)
23

b. Cipher Block Chaining (CBC)


c. Cipher Feedback (CFB) dan
d. 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).

2.2.3. 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 :
1. Rijndael (Vincent Rijmen dan Joan Daemen dari Belgia)
2. Serpent (Ross Anderson, Eli Biham, dan Lars Knudsen dari
Inggris).
3. Twofish (Tim Kriptografi diketuai Bruce Scheiner dari USA).
4. RC6 (Ron’s Code dari Laboratorium RSA - USA)
5. MARS (dariInternational 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
24

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:

Tabel3.3Tiga 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
Roundkey 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
2 = 3,4 × 10
kemungkinan kata kunci. Proses ini akan memakan waktu hingga
5,4x10 24 tahun dalam pemecahannya meskipun memakai computer yang
dapat memproses satu juta kunci per detik.

2.2.3.1.Enkripsi dan Dekripsi pada AES


Karena penelitian ini menggunakan algoritma Advance
Encryption Standard dalam panjang kunci 128 makan yang digunakan
adalah AES-128.
25

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]:
1. AddRoundKey: tahapan ini melakukan XOR antara plaintext
dengan cipher-key. Tahapan ini dapat disebut juga initial
round.
2. Putaran sebanyak Nr – 1 kali. Setiap putaran dilakukan
proses:
a. SubBytes
b. ShiftRows
c. MixCollumns
d. AddRoundKey
3. Final Round: Proses untuk putaran terakhir.
a. SubBytes
b. ShiftRows
c. AddRoundKeys
Dari tahapan diatas maka dapat dibambarkan garis besar dalam
Enkripsi AES-128 yang memiliki 10 putaran seperti pada Gambar 2.2.
26

Gambar 2.3. Proses Enkripsi Algoritma AES-128

Algoritma AES memiliki 3 parameter:


1. Plaintext: array yang berukuran 16-byte, berisi data masukan
2. Cipherkey: array yang berukuran 16-byte, berisi hasil enkripsi
3. Key: array berukutan 16-byte, berisi cipherkey.

1.) 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 in 0, in 1, …, in15
disalin dalam array state seperti dibawah ini:
27

Gambar 2.4. Input Output dan state array.

Enkripsi maupun dekripsi dilakukan terhadap array S, dan


keluarannya ditampung pada array out. Sekma dalam penyalinan arrayin
ke array S adalah sebagai berikut:
[ , ]← [ + 4 ] 0 ≤ < 4 0 ≤ <
Penyalinan array S ke array out:
[ + 4 ] ← [ , ] 0 ≤ < 4 0 ≤ <

Setelah input plaintext dan kunci, tahapan selanjutnya adalah


memulai proses putaran yang dimana dalam setiap putaran akan
mengalami proses SubBytes, ShiftRows, MixCollumns, dan
AddRoundKey.

a. 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.
28

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)

b. Tranformasi ShiftRows()
Transformasi ShiftRows() melakukan pergeseran secara wrapping
(siklik) pada 3 baris terakhir dari array state. Jumlah pergeseran
29

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).


c. 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:

( ) = {03} + {0} + {01} + {02} (2.7)


Perkalian ini dinyatakan sebagai perkalian matriks:

( )= ( )⊗ ( ) (2.8)

02 03 01 01 ⎤
⎡ ,
⎤ ⎡ ⎡
,

⎢ , ⎥ ⎢ 01 02 03 01 ⎥
⎢ , ⎥
⎢ ⎥=⎢ ⎥
⎢ , ⎥ ⎢ 01 01 02 03 ⎥ ⎢ , ⎥
⎣ , ⎦ ⎣ 03 01 01 02 ⎦ ⎣ , ⎦

, = ({02} • , )⨁({03} • , )⨁ , ⨁ ,

, = , ⨁ {02} • , ⨁({03} • , )⨁ ,

, = , ⨁ , ⨁ {02} • , ⨁({03} • , )

, = ({03} • , )⨁ , ⨁ , ⨁({03} • , )
30

Gambar 2.8. Tranformasi MixCollumns() (Wikipedia)

d. Tranformasi AddRoundKey()
Pada tahapan ini akan dilakukan operasi XOR terhadap sebuah
roundkey dengan array state, hasilnya akan disimpan pada array
state. Seperti pada gambar 2.8.

Gambar 2.9. Tranformasi AddRoundKey (Wikipedia)

2.) Ekspansi kunci.


Pada ekspansi kunci, ciphertext yang sudah ditemukan akan
diambil beserta cipherkey yang digunakan diawal untuk membuat
31

roundkey, banyaknya roundkey tergantung pada banyaknya jumlah


putaran. Prosesnya juga masih menggunakan S-box, hanya dalam
generate tiap kolom memerlukan Rcon.

2.2.4. Steganografi
2.2.4.1.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,
32

audio, atau video. Dalam penelitian ini akan difokuskan dalam media
Citra.

2.2.4.2.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]:
1.) 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.
33

2.) 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)
3.) 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.

2.2.4.3.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:
34

a. Masukkan plaintext/ciphertext yang akan disisipkan


b. Ubah plaintext/ciphertext menjadi kode decimal.
c. Inputkan citra yang akan disisipi plaintext/ciphertext.
d. Dapatkan atau baca nilai pixel dari citra.
e. Tambahkan plaintext/ciphertext pada akhir pixel citra yang
disisipi dengan menambahkan karakter penanda di akhir
plaintext/ciphertext.
f. 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
35

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:
a. Inputkan citra yang telah disisipkan plaintext/ciphertext.
b. Baca nilai pixelstego image yang terdapat pada baris terakhir
di matrix pixel pada citra.
c. Ambil plaintext/ciphertext yang telah tersisipkan pada stego
image, ambil dari nilai awal pixel pada matrix terakhir hingga
nilai decimal dari karakter penanda sisipan.

2.2.5. 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.
36

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.
37

2.3.Kerangka Pemikiran
Penulis perlu membuat gambaran singkat sebagai alur penyusunan
laporan ini dengan kerangka pemikiran sebagai berikut:

Permasalahan Studi Pustaka


Buku dan jurnal tentang
Pengamanan Soal Ujian Sekolah
pengamanan data menggunakan
dalam bentuk file .docx
kriptografi dan steganografi

Tindakan

Membuat program pengamanan


soal ujian yang dapat digunakan
sekolah

Metode

Advance Encryption Standard (AES)


End of File (EoF)

Penerapan

Data Soal Ujian Sekolah SMA Negeri 1 Weleri

Tool

WinPython

Hasil

Program Pengamanan Soal Ujian Sekolah

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.

3.1.Intrument Penelitian
Penelitian membutuhkan hardware software guna mendukung peneliti
dalam mengimplementasikan penelitian yang dilakukan. Berikut kebutuhan
yang diperlukan:
a. Objek Penelitian
Objek dalam penelitian ini adalah SMA Negeri 1 Weleri.
b. Bahan Penelitian
Dalam penelitian ini bahan akan diteliti adalah Soal Ujian Sekolah
2016 di SMA Negeri 1 Weleri yang merupakan dokumen rahasia.
c. Perangkat Penelitian
Perangkat-perangkat yang dibutuhkan dalam mendukung
terlaksananya penelitian ini adalah sebagai berikut:
1. Hardware
a) Processor : AMD A4-5000 Quad-core
b) Harddisk : 500 GB
c) RAM : 4 GB
2. Software
a) Sistem Operasi - Microsoft Windows 10 Pro 64-bit
b) WinPython dengan Python 3.4
c) Microsoft Word 2013

35
36

3.2.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.

3.3.Teknik Analisis Data


Teknik analisa data yang dilakukan penulis dalam pengolahan data
penelitian ini adalah sebagai berikut:
1. 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.
2. 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.
3. Melakukan pengambilan data dari citra yang tersisipi kemudian
dilakukan proses dekripsi terhadap data terenkripsi.
4. Pengecekan kualitas data sebelum dan setelah proses pengamanan.

3.4.Metode yang Diusulkan


Metode yang digunakan dalam penelitian ini yaitu Algoritma Advance
Encryption Standard (AES) sebagai kriptografinya dan End of File (EoF)
sebagai penyisipannya.
37

3.4.1. 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 ; KEY

Enkripsi Image
Advance Encryption
Standard (AES-128)

Steganografi
End of File (EoF)
Ciphertext

STEGO IMAGE

Gambar 11. Prosedur Enkripsi dan Penyisipan File


38

3.4.2. 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.

STEGO IMAGE

UNSTEGO

Ciphertext

Dekripsi

Plaintext/
File Asli

Gambar 12. Metode Dekripsi File


39

Start

Enkripsi

File

AddRoundKey
( XOR Cipher Key )

n = 10
i= 1

No
i ≤ n- 1

Yes

SubBytes SubBytes

ShiftRows ShiftRows

AddRoundKey
MixColumns
( XOR Sub - Kunci ke - 10 )

AddRoundKey
Cipher Text
( XOR Sub - Kunci ke - i )

i=i+1

Gambar 13. Flowchart Enkripsi AES-128


40

Start

Dekripsi

Cipher Text

AddRoundKey
( XOR Sub - Kunci ke - 10 )

Inv ShiftRows

Inv SubBytes

n= 1
i= 9

No
i≥ n

Yes

AddRoundKey AddRoundKey
( XOR Sub - Kunci ke - i ) ( XOR Cipher Key )

Inv MixColumns File Citra

Inv ShiftRows End

Inv SubBytes

i= i-1

Gambar 14.Flowchart Dekripsi AES


41
42

Membuat file

Masukkan citra dalam file

Beri karakter batasan di akhir file citra citra

Masukkan file yang terenskripsi

Gambar 15. Proses penyisipan End of File

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.
43

3.5.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.

1. 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.
44

o Input [32] :0011 0010


o Cipher [2B] :0010 1011
o S [0,0] :0001 1001  19

o Input [88] :1000 1000


o Cipher [28] :0010 1000
o S [0,0] :1010 0000  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.

a. 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:
45

- 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.

b. 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.
46

- 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


47

- 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().

c. 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:
o Perkalian dengan 1 artinya tidak berubah
o Perkalian dengan 2 artinya menggeser byte ke kiri
48

o Perkalian dengan 3 artinya menggeser byte kekiri dan kemudian


melakukan XOR dengan nilai awal sebelum digeser.
o 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 :

= (2 • 4)⨁(3 • )⨁(1 • 5 )⨁(1 • 30)


= (2 • 11010100)⨁(3 • 1011111)⨁(1 • 01011101)⨁(1 • 00110000)
= (010110011)⨁(011011010)⨁(1011101)⨁(110000)
= 000000100
= 04 ( )

- Begitu juga dengan menghitung r1, r2, dan r3. Perlu diingat kembali
bahwa pertambahan disini adalah XOR.
- Dari penjelasan diatas maka r0 hingga r3 adalah:
49

- Sehingga dapat dibetuk sebuah array baru hasil transformasi MixCollumn:

- Selanjutnya masuk pada tahap AddRoundKey.

d. 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.


-
50

Hasil XOR dari state dan roundkey 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


-
51

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 :

e. 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:
52

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


53

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.
2. Pengeluaran gambar dan Dekripsi
- Langkah pertama dari dekripsi dalam penelitian ini adlah mengeluarkan
ciphertext yang terdapat pada citra stego.

a. 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


54

# 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.

b. 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
55

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:

c. Transformasi Inv ShiftRow.


- Selanjutnya dilakukan proses Inv ShiftRow. Secara singkat langkah-
langkahnya adalah:
o Baris pertama tidak di geser
o Baris kedua digeser ke kiri 1 (satu) kali
o Baris ketiga digeser ke kiri 2 (dua) kali
o 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.

d. Transformasi Inv SubByte.


56

- 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.
57

initial round ke-9 round key ke-9 hasil MixCollumn

e. 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•b 3


a1 = 09•b 0⨁ 0e•b1⨁ 0b•b2⨁ 0d•b 3
a2 = 0d•b 0⨁ 09•b 1⨁ 0e•b2⨁ 0b•b 3
a3 = 0b•b 0⨁ 0d•b 1⨁ 09•b2⨁ 0e•b 3

-
58

- Ambil kolom pertama dari hasil XOR , yaitu kolom:


b0=47
b1=37
b2=94
b3=ed

- Dimulai menghitung a 0 = 0e•b0⨁ 0b•b1⨁ 0d•b2⨁ 09•b3 :

= (0 • 47)⨁(0 • 37)⨁(0 • 94)⨁(09 • )


= (00001110 • 01000111)⨁(00001011 • 00110111)⨁
(00001100 • 10010100)⨁(00001001 • 11101101)
= (10000111)⨁(11111010)⨁(00111110)⨁(11000100)
= 10000111
= 87 ( )

- 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:
59

Gambar 3.8. Hasil Dekripsi AES


60

- 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

4.1.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:
a. Kebutuhan perangkat lunak
1) 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.
2) 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.
3) 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.

60
61

b. Kebutuhan Perangkat Keras


1) Prosesor AMD A4-5000 Quad-core
2) Disk Space 10 GB
3) Ram 4 GB

4.2.Prodesur Pembuatan Aplikasi


Prosedur dalam pembuatan aplikasi dalam penelitian ini adalah sebagai
berikut:
1. Mengumpulkan data-data yang akan diolah.
2. Melakukan pembatasan terhadap data-data yang telah diperoleh.
3. Mempersiapkan dan instalasi perangkan-perangkat keras yang
dibutuhkan dalam penelitian.
4. Mempersiapkan dan instalasi perangkat lunak yang digunakan dalam
penelitian sesuai spesifikasi system.

4.3.Pemodelan Bisnis
Dalam pemodelan ini, peneliti mengguanakn 2 (dua) buah actor yaitu
pengirim dan penerima. Urutannya sebagai berikut:
1. 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.
2. Informasi yang muncul
Informasi baru yang telah dibentuk dan didapatkan oleh pihak
penerima adalah file berbentuk citra, dapat berupa JPG maupun
PNG.
3. Pihak penerima
Tahap ini adalah tahap dalam pemulihan file. Dilakukan oleh pihak
kedua yaitu penerima. Penerima akan melakukan penguraian data
62

yang sudah di sisipkan dalam citra dan selanjutnya melakukan


proses dekripsi sehingga kan muncul data asli.
4. Pelaku Pemrosesan
Pelaku dalam pemrosesan data tersebut adalah pihak pengirim dan
pihak penerima.

4.3.1. 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:
1. Pengirim membuka aplikasi enkripsi.
2. Pengirim memasukan datadan kunci yang akan dienkripsi.
3. Pengirim mendapat data enkripsi.
4. Pengirim membuka aplikasi Steganografi.
5. Pengirim memasukan data terenkripsi dan citra yang akan
digunakan dalam penyisipan.
6. Pengirim mendapatkan data citra yang berisikan informasi.
Tabel4.1Skenario Enkripsi dan Stego
63

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
keadaansemula.
3. Memasukan kunci.
Tujuan :
Penerima dapat mengambil data yang telah disembunyikan.
Skenario:
1. Penerima membuka aplikasi Steganografi.
2. Penerima memasukan citra yang akan diambil datanya.
3. Penerima mendapatkan data enkripsi.
4. Penerima membuka aplikasi Dekripsi.
5. Penerima memasukan file hasil enkripsi dan kunci yang
sudah diberikan dari pengirim secara rahasia.
6. Penerima mendapatkan file hasil dekripsi.
Tabel4.2Skenario Unstego dan Dekripsi

4.3.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.
64

Besar Besar
Data Dokumen Data Citra
File File

SOAL UJIAN SEKOLAH


2016 paket 14 seni 399KB 68KB
budaya.docx

citra1.jpg

SOAL UJIAN SEKOLAH


PAKET 47 seni 766KB 64KB
budaya.docx

citra2.jpg

SOAL UJIAN SEKOLAH


2971KB 12KB
FISIKA 2016.docx

citra3.jgp

SOAL UJIAN SEKOLAH


2016 143KB 154KB
MATEMATIKA.docx

citra4.jpg

SOAL UJIAN SEKOLAH


876KB 36KB
2016 BIOLOGI.docx

citra5.jpg
65

SOAL UJIAN SEKOLAH


BAHASA 235KB 155KB
INDONESIA.docx

citra6.jpg

SOAL UJIAN SEKOLAH


312KB 108KB
KIMIA.docx

citra7.png

SOAL UJIAN SEKOLAH


432KB 93KB
EKONOMI.docx

citra8.png

SOAL UJIAN SEKOLAH


515KB 90KB
GEOGRAFI.docx

citra9.jpg

SOAL UJIAN SEKOLAH


168KB 184KB
SOSIOLOGI.docx

citra10.jpg
Tabel4.3Data Awal Penelitian (Soal Ujian Sekolah dan citra yang digunakan)
66

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.

4.4.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.

4.4.1. 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 70 77 70 77
4B 00 00 00 61 6F 61 6F
03 06 00 CC 73 72 73 72
04 00 00 CF 73 64 73 64
Elemen state Key ‘passwordpassword’
(plaintext) (cipher key)

Karena untuk mendapatkan AddRoundKey untuk memasuki putaran, makan


dilakukan operasi XOR dari state terhadap cipher key. Berikut prosesnya.
67

o Input [50] :0101 0000


o Cipher [70] :0111 0000
o S [0,0] :0010 0000  20

o Input [4B] :0100 1011


o Cipher [61] :0110 0001
o S [0,1] :0010 1010  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.
a. 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:
68

- 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.


b. 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.
69

B7 FB BC B1
A8 EF A8 E5
Baris ke 2 (dua) di geser ke kiri sejauh 1.
51 92 8F AE
F5 43 8F 62

B7 FB BC B1
A8 EF A8 E5
8F AE 51 92 Baris ke 3 (dua) di geser ke kiri sejauh 2.

F5 43 8F 62

B7 FB BC B1
A8 EF A8 E5
8F AE 51 92 Baris ke 4 (empat) di geser ke kiri sejauh 3.

62 F5 43 8F

B7 FB BC B1
A8 EF A8 E5
Hasil akhir proses Shift Row.
8F AE 51 92
62 F5 43 8F

- 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 :
70

- 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:
o Perkalian dengan 1 artinya tidak berubah
o Perkalian dengan 2 artinya menggeser byte ke kiri
o Perkalian dengan 3 artinya menggeser byte kekiri dan kemudian
melakukan XOR dengan nilai awal sebelum digeser.
o 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 :


= (2 • 7)⨁(3 • 8)⨁(1 • 8 )⨁(1 • 62)
= (2 • 10110111)⨁(3 • 10101000)⨁(1 • 10001111)⨁(1 • 01100010)
71

= (01110101)⨁(11100011)⨁(10001111)⨁(01100010)
= 01111011
= 7 ( )

- Perhitungan r1 = 1a0 ⨁ 2a1 ⨁ 3a2 ⨁ 1a3 :


= (1 • 7)⨁(2 • 8)⨁(3 • 8 )⨁(1 • 62)
= (1 • 10110111)⨁(2 • 10101000)⨁(3 • 10001111)⨁(1 • 01100010)
= (10110111)⨁(01001011)⨁(10001010)⨁(01100010)
= 00010100
= 14 ( )

- Perhitungan r2 = 1a0 ⨁ 1a1 ⨁ 2a2 ⨁ 3a3:


= (1 • 7)⨁(1 • 8)⨁(2 • 8 )⨁(3 • 62)
= (1 • 10110111)⨁(1 • 10101000)⨁(2 • 10001111)⨁(3 • 01100010)
= (10110111)⨁(10101000)⨁(00000101)⨁(10100110)
= 10111100
= ( )

- Perhitungan r3 = 3a0 ⨁ 1a1 ⨁ 1a2 ⨁ 2a3:


= (3 • 7)⨁(1 • 8)⨁(1 • 8 )⨁(2 • 62)
= (3 • 10110111)⨁(1 • 10101000)⨁(1 • 10001111)⨁(2 • 01100010)
= (11000010)⨁(10101000)⨁(10001111)⨁(11000100)
= 00100001
= 21 ( )

- 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
72

21 A6 A0 BA

c. 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 D9 AE DE A9
14 22 47 42 21 4E 2F 40
BC 57 73 E1 30 42 31 43
21 A6 A0 BA 86 E2 91 F5

Mix Collumn 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:
73

Putaran ke 10 adalah Final Round, yang pada tahapannya ‘tidak’ terjadi proses
Tranformasi MixCollumns. Pada akhir proses enskripsi akan terlihat ciphertext :
74

68 a2 af f8
07 e8 87 e3
18 9c 81 ce
f9 4d 3e 4c

4.4.2. 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 e6 cf 0d 19
07 e8 87 e3 62 6c e2 42
18 9c 81 ce d5 0c 8a db
f9 4d 3e 4c 68 ea af 9b

Ciphertext Round Key ke-10

o Input [68] :0110 1000


o Cipher [e6] :1110 0110
o Sr [0,0] :1000 1110  8e

o Input [07] :0000 0111


o Cipher [62] :0110 0010
o Sr [0,1] :0110 0101  65
Sehingga menghasikan array baru yang berisi hasil Shiftrow:
75

8e 6d a2 e1
65 84 65 a1
cd 90 0b 15
91 a7 91 d7
a. Transformasi Inv ShiftRow.
- Selanjutnya dilakukan proses Inv ShiftRow. Secara singkat langkah-
langkahnya adalah:
o Baris pertama tidak di geser
o Baris kedua digeser ke kanan 1 (satu) kali
o Baris ketiga digeser ke kanan 2 (dua) kali
o 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
Baris ke 2 (dua) di geser ke kanan sejauh 1.

91 a7 91 d7

8e 6d a2 e1
65 84 65 a1
0b 15 cd 90 Baris ke 3 (dua) di geser ke kanan sejauh 2.

91 a7 91 d7

8e 6d a2 e1
65 84 65 a1
cd 90 0b 15 Baris ke 4 (empat) di geser ke kanan sejauh 3.

a7 91 d7 91

8e 6d a2 e1
a1 65 84 65
Hasil akhir proses Shift Row.
0b 15 cd 90
a7 91 d7 91
76

b. 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 e6 b3 1a e0
a1 65 84 65 S’Box f1 bc 4f bc
0b 15 cd 90 9e 2f 80 96
a7 91 d7 91 89 ac 0d ac

- 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.
77

e6 b3 1a e0 30 29 c2 14 d6 9a d8 f4
f1 bc 4f bc b3 0e 8e a0 42 b2 c1 1c
9e 2f 80 96 cd d9 86 51 53 f6 6 c7
89 ac 0d ac 92 82 45 34 1b 2e 48 98

c. 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•b 1⨁ 0d•b2⨁ 09•b3


a1 = 09•b 0⨁ 0e•b 1⨁ 0b•b2⨁ 0d•b3
a2 = 0d•b 0⨁ 09•b 1⨁ 0e•b2⨁ 0b•b3
a3 = 0b•b 0⨁ 0d•b 1⨁ 09•b2⨁ 0e•b3
78
79

- 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 :

o Untuk perkalian dengan 09

 × 09 = ( × 2) × 2 × 2 +

o Untuk perkalian dengan 11 atau 0b


 × 0 = ((( × 2 ) × 2) + ×2 +
o Untuk perkalian dengan 13 atau 0d
 × 0 = ((( × 2) + ) × 2) × 2 +
o Untuk perkalian dengan 14 atau 0e
 × 0 = ((( × 2) + ) × 2) + ×2

- Ambil kolom pertama dari hasil XOR , yaitu kolom:


d6 b0 = d6
42 b1 = 42
53 b2 = 53
1b b3 = 1b

- Menghitung a0 = 0e•b 0⨁ 0b•b 1⨁ 0d•b2⨁ 09•b3 :


= (0 • 6)⨁(0 • 42)⨁(0 • 53)⨁(09 • 1 )
= (00001110 • 11010110)⨁(00001011 • 01000010)⨁
(00001101 • 01010011)⨁(00001001 • 00011011)
= (00101000)⨁(11100000)⨁(10101010)⨁(11000011)
= 10100001
= 1 ( )
80

- Menghitung a1 = 09•b 0⨁ 0e•b 1⨁ 0b•b2⨁ 0d•b3:


= (09 • 6)⨁(0 • 42)⨁(0 • 53)⨁(0 • 1 )
= (00001001 • 11010110)⨁(00001110 • 01000010)⨁
(00001011 • 01010011)⨁(00001101 • 00011011)
= (00111100)⨁(10110001)⨁(01011011)⨁(10101111)
= 01111001
= 79 ( )

- Menghitung a2 = 0d•b 0⨁ 09•b 1⨁ 0e•b2⨁ 0b•b3:


= (0 • 6)⨁(09 • 42)⨁(0 • 53)⨁(0 • 1 )
= (00001101 • 11010110)⨁(00001001 • 01000010)⨁
(00001110 • 01010011)⨁(00001011 • 00011011)
= (01001001)⨁(01100100)⨁(01011111)⨁(11110101)
= 10000111
= 87 ( )

- Menghitung a3 = 0b•b 0⨁ 0d•b 1⨁ 09•b2⨁ 0e•b3:


= (0 • 6)⨁(0 • 42)⨁(09 • 53)⨁(0 • 1 )
= (00001011 • 11010110)⨁(00001101 • 01000010)⨁
(00001001 • 01010011)⨁(00001110 • 00011011)
= (10001011)⨁(01110111)⨁(11111101)⨁(10000010)
= 10000011
= 83 ( )

d6 9a d8 f4 a1 50 66 8b
42 b2 c1 1c 79 4d 9f ef
Inv-MixCol
53 f6 6 c7 87 c7 16 cd
1b 2e 48 98 83 2a b8 1e

sebelum Inverse Mix Column Sesudah Inverse Mix Column

- Sehingga terbentuk sebuah array baru yang berupa hasil ShiftRow pada
putaran ke-9 seperti tabel diatas.
81

- Selanjutnya proses seperti langkah-langkah dekripsi sebelumnya. Proses


pada akhir putaran ke-9 hingga putaran ke-2 adalah seperti dibawah ini:
82

- Pada akhir langkah ini, ciphertext akan kembali menjadi plaintext atau file
asli seperti proses di awal.

4.4.3. 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 :
1. w[0] = 70 61 73 73
2. w[1] = 6f 72 64 70
3. w[2] = 61 73 73 77
4. w[3] = 6f 72 64 70
Kondisi :
a. RotWord : Menggeser byte ke kiri satu setiap 4 (empat) baris sekali.
b. SubWord : seperti proses subtitusi menggunakan S-Box enkripsi.
c. 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:


After w[i]= temp
After After
i temp Rcon[i/Nk] XOR with w[i-Nk] XOR w [i-
Rotword Subword
Rcon 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
83

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

Tabel4.4 Ekspansi Kunci


84

4.5.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.

4.5.1. 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
modulePyCrypto 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.
85

4.5.1.1.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
86

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. EnskripsiPlaintext


Ketika proses enkripsi berhasil, maka akan dibuat file baru
dengan ekstensi *.code sebagai hasil proses enkripsi.
87

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.
88

4.5.1.2.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


89

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.

4.5.2. Implementasi Pengambilan dan Dekripsi Python Shell


4.5.2.1.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


90

Gambar 4.12. Proses Pengekstraksian Data

4.5.2.2.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.
91

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_’.
92

4.6.Analisis Pengujian Data


4.6.1. 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.

Besar
Data Dokumen Hasil Enkripsi
File
SOAL UJIAN SEKOLAH 2016 paket 14 seni
399KB Sukses
budaya.docx
SOAL UJIAN SEKOLAH PAKET 47 seni
766KB Sukses
budaya.docx
SOAL UJIAN SEKOLAH FISIKA 2016.doc 2971KB Sukses
SOAL UJIAN SEKOLAH 2016
143KB Sukses
MATEMATIKA.docx
SOAL UJIAN SEKOLAH 2016 BIOLOGI.docx 876KB Sukses
SOAL UJIAN SEKOLAH BAHASA
235KB Sukses
INDONESIA.doc
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
Tabel4.5Pengujian 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.

Besar Besar Besar


Nama File Citra Citra Stego
File Citra Stego
SOAL UJIAN SEKOLAH
2016 paket 14 seni 399KB citra1.jpg 68KB citra1.jpg 466KB
budaya.docx.code
SOAL UJIAN SEKOLAH
PAKET 47 seni 766KB citra2. jpg 64KB citra2. jpg 892KB
budaya.docx.code
SOAL UJIAN SEKOLAH
2971KB citra3. jpg 12KB citra3. jpg 2983KB
FISIKA 2016.doc.code
SOAL UJIAN SEKOLAH
2016 MATEMATIKA 143KB citra4. jpg 154KB citra4. jpg 297KB
.docx.code
SOAL UJIAN SEKOLAH 876KB citra5. jpg 36KB citra5. jpg 912KB
93

2016 BIOLOGI.docx.code
SOAL UJIAN SEKOLAH
BAHASA 235KB citra6. jpg 155KB citra6. jpg 390KB
INDONESIA.doc.code
SOAL UJIAN SEKOLAH
312KB citra7.png 108KB citra7.png 419KB
KIMIA.doc.code
SOAL UJIAN SEKOLAH
432KB citra8.png 93KB citra8.png 525KB
EKONOMI.doc.code
SOAL UJIAN SEKOLAH
515KB citra9. jpg 90KB citra9. jpg 604KB
GEOGRAFI.doc.code
SOAL UJIAN SEKOLAH citra10.
168KB 184KB citra10. jpg 351KB
SOSIOLOGI.docx.code jpg
Tabel4.6Pengujian 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.
= +

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.

Besar Besar
Citra Stego File Ekstrasi
Stego 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
Tabel4.7 Pengujian Proses Ekstraksi Data EoF
94

Pengujian pada steganografi pada proses ekstrasi data menghasilkan file


baru dengan ekstensi *.code. Setelah file enkripsi berhasil di ekstrak,
selanjutnya dilakukan proses dekripsi.

Besar Besar
Citra Stego File Ekstrasi Keterangan
Stego File
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
Tabel4.8 Pengujian proses Dekripsi AES
Pengujian dekripsi dengan Advance Encryption Standard semua file berhasil
kembali dalam keadaan semua dan berhasil dibuka sesuai data awal.

4.6.2. 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.
a. Pemotongan citra (Crop)
b. Kecerahan (Brightness)
c. Kontras (Contrast)
d. 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
Tabel4.9 Pengujian Editing Citra
95
96

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

5.1.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:
1. 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.
2. 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.
3. 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.
4. 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.

95
96

5.2.Saran
Dari penelitian yang dilakukan, saran-saran yang berguna dalam
pengenbangan penelitian ini adalah sebagi berikut:
1. Aplikasi dijalankan masih menggunakan command dalam IDLE
Python, Akan lebih baik lagi jika diberi interface yang menarik.
2. Implementasi stegano dalam Python ini masih menggunakan
temporary file, baiknya dalam penelitian selanjutnya dapat
mengimplementasikan stegano tanpa temporary file.
3. Penelitian ini dapat di implementasikan pada instansi lain yang
memiliki dokumen yang dirahasiakan.
4. 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.

xii

Anda mungkin juga menyukai