STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya...

73
STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya tulis sebagai salah satu syarat untuk memperoleh gelar Magister dari Institut Teknologi Bandung Oleh MUHAMMAD ISMAN JUNIAN RAHMAN NIM : 23214304 (Program Studi Magister Teknik Elektro) INSTITUT TEKNOLOGI BANDUNG Januari 2017

Transcript of STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya...

Page 1: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

STEGOKRIPTO DENGAN PENANDA DINAMIS

TESIS

Karya tulis sebagai salah satu syaratuntuk memperoleh gelar Magister dari

Institut Teknologi Bandung

OlehMUHAMMAD ISMAN JUNIAN RAHMAN

NIM : 23214304(Program Studi Magister Teknik Elektro)

INSTITUT TEKNOLOGI BANDUNGJanuari 2017

Page 2: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

ABSTRAK

Stegokripto dengan Penanda Dinamis

OlehMuhammad Isman Junian Rahman

NIM : 23214304(Progam Studi Magister Teknik Elektro)

Dengan semakin banyaknya informasi sensitif yang dikirim melalui internet,maka dibutuhkan pengamanan agar informasi sensitif tersebut tidak dapat diketahuioleh pihak yang tidak berkepentingan. Setidaknya ada dua cara agar informasi am-an dari pihak yang tidak berkepentingan yaitu dengan kriptografi dan steganografi.Kriptografi akan mengubah bentuk informasi menjadi acak sedangkan steganografiakan menyisipkan informasi ke dalam sebuah medium agar pihak yang tidak berke-pentingan tidak menyadari adanya informasi tersembunyi.

Penelitian ini menggabungkan kriptografi dan steganografi dengan cover beru-pa bit acak yang direpresentasikan dalam teks. Alasan penggunaan bit acak sebagaicover adalah rendahnya penggunaan sumber daya untuk membangkitkan bit acak,dan informasi yang telah dienkripsi menyerupai bit acak. Untuk membedakan an-tara bit acak dan informasi terenkripsi, digunakanlah penanda dengan bentuk yangdinamis. Pembentukan penanda mengadopsi modus operasi chaining pada blockcipher sehingga setiap penanda akan saling memengaruhi. Jika penanda yang digu-nakan memiliki bentuk tetap, maka pihak tidak berkepentingan akan curiga setiapkali muncul penanda tersebut.

Ada keunggulan dan kekurangan fungsional dari penggunaan penanda yang me-miliki bentuk dinamis. Keunggulannya adalah pesan-pesan yang dikirim bersamaandapat dipilah sedangkan kekurangannya adalah lebih rentan terhadap error karenasetiap penanda saling memengaruhi. Untuk menanggulangi kelemahan ini, ditam-bahkan penanda sinkronisasi sehingga tingkat recoverability pesan ketika terjadierror menjadi lebih tinggi. Dalam segi komputasi, sistem yang dikembangkan se-karang menggunakan sumber daya lebih sedikit yaitu 29% lebih rendah pada CPU,8% pada RAM, dan 2,7% pada jaringan jika dibanding sistem yang telah dikem-bangkan sebelumnya,

Kata Kunci: kriptografi, steganografi, stegokripto, noise, flag

i

Page 3: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

ABSTRACT

Stegocrypto with Dynamic Flag

ByMuhammad Isman Junian Rahman

NIM : 23214304(Progam Studi Magister Teknik Elektro)

With more and more sensitive information sent over the Internet, it is neces-sary to secure the communication so that sensitive information can not be known byunauthorized parties. At least, two methods can be done to secure communicationfrom unauthorized party. Those methods are cryptography and steganography. Cr-yptography will transform information into random form while steganography willinsert information into a medium so that unauthorized parties won’t be aware of thehidden information.

This research combines cryptography and steganography with text as cover,which is generated from random bits. The reason of using random bits as the co-ver are low cost of computing resources to generate random bits, and encryptedinformation usually resembles random bits sequence. To distinguish between ran-dom bits and encrypted information, flag with dynamic pattern is used. Flag patternformation adopt the chaining operation on a block cipher. If the flag have a samepattern, unauthorized party will suspicious whenever a same pattern appears repea-tedly.

There are advantages and disadvantages by using a dynamic flag. The advan-tage is messages that are sent simultaneously can be sorted, while the drawback ismessage will be more susceptible to error because each marker affect each other be-cause of chaining process. By adding a synchronization flag, the level of messagerecoverability is higher. In computing terms, current developed system uses fewerresources than the system that existed before, 29% fewer on CPU, 8 % fewer onRAM, and 2,7 % fewer on network usage.

Keywords: cryptography, steganography, stegocrypto, noise, flag, marker

ii

Page 4: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Stegokripto dengan Penanda Dinamis

OlehMuhammad Isman Junian Rahman

NIM : 23214304(Progam Studi Magister Teknik Elektro)

Institut Teknologi Bandung

MenyetujuiPembimbing

Tanggal ..............

Ir. Budi Rahardjo, M.Sc., Ph.D.

iii

Page 5: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

PEDOMAN PENGGUNAAN TESIS

Tesis S2 yang tidak dipublikasikan terdaftar dan tersedia di Perpustakaan InstitutTeknologi Bandung, dan terbuka untuk umum dengan ketentuan bahwa hak ciptaada pada pengarang dengan mengikuti aturan HaKI yang berlaku di Institut Tek-nologi Bandung. Referensi kepustakaan diperkenankan dicatat, tetapi pengutipanatau peringkasan hanya dapat dilakukan seizin pengarang dan harus disertai dengankaidah ilmiah untuk menyebutkan sumbernya.

Sitasi hasil penelitian Tesis ini dapat ditulis dalam bahasa Indonesia sebagaiberikut:Junian, Isman. (2017): Stegokripto dengan Penanda Dinamis, Tesis ProgramMagister, Institut Teknologi Bandung.

dan dalam bahasa Inggris sebagai berikut:

Junian, Isman. (2017): Stegocrypto with Dynamic Flag, Masters Program Thesis,Institut Teknologi Bandung.

Memperbanyak atau menerbitkan sebagian atau seluruh tesis haruslah seizin DekanSekolah Pascasarjana, Institut Teknologi Bandung

iv

Page 6: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Dipersembahkan untuk Ayah dan Ibu

v

Page 7: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

KATA PENGANTAR

Puji syukur ke hadirat Allah SWT atas segala rahmat, nikmat, bimbingan, dankasih saynag-Nya sehingga penulis dapat menyelesaikan tesis yang berjudul ”Ste-gokripto dengan Penanda Dinamis”. Penulis juga mengucapkan terima kasih kepa-da berbagai pihak yang telah mendukung penulis selama masa pengerjaan tesis ini,di antaranya adalah :

1. Ayah dan Ibu atas dukungan dan doa untuk penulis.

2. Ir. Budi Rahardjo, M.Sc., Ph.D. selaku pembimbing dalam pengerjaan pene-litian dan tesis in;

3. Dr. Tutun Juhana. ST. MT., Ir. Sigit Haryadi, MT., dan Ir. Hardi Nusantara,MT. selaku penguji dalam sidang tesis.

4. Seluruh dosen pengajar dan staf program studi Magister Tekik Elektro ITB.

5. Rekan-rekan di KK Telematika dan Jaringan Telekomunikasi.

Penulis menyadari bahwa tesis ini masih memiliki kekurangan, sehingga penulismengharapkan kritik dan saran terkait tesis ini. Semoga tesis ini dapat memberikanmanfaat.

Bandung, Januari 2017

Penulis

vi

Page 8: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

DAFTAR ISI

ABSTRAK iABSTRACT iiHALAMAN PEGESAHAN iiiPEDOMAN PENGGUNAAN TESIS ivHALAMAN PERUNTUKAN vKATA PENGANTAR viDAFTAR ISI viiDAFTAR LAMPIRAN ixDAFTAR GAMBAR xDAFTAR TABEL xiiDAFTAR SINGKATAN xiiiBab I Pendahuluan 1

I.1 Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1I.2 Perumusan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . 1I.3 Tujuan Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . 2I.4 Batasan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . . 2I.5 Sistematika Penulisan . . . . . . . . . . . . . . . . . . . . . . . . . 2

Bab II Tinjauan Pustaka 3II.1 Penelitian Sebelumnya . . . . . . . . . . . . . . . . . . . . . . . . 3II.2 Landasan Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

II.2.1 Kriptografi . . . . . . . . . . . . . . . . . . . . . . . . . . 3II.2.1.1 ChaCha20 . . . . . . . . . . . . . . . . . . . . . 5

II.2.2 Steganografi . . . . . . . . . . . . . . . . . . . . . . . . . 6II.2.3 Penggabungan Kriptografi dan Steganografi . . . . . . . . . 7II.2.4 Synchronized Chaos Communication . . . . . . . . . . . . 8

Bab III Desain dan Implementasi 9III.1 Desain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9III.2 Implementasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

III.2.1 Topologi . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Bab IV Evaluasi dan Validasi 18

IV.1 Pengujian Fungsional . . . . . . . . . . . . . . . . . . . . . . . . . 18IV.1.1 Pengujian pada Kondisi Ideal . . . . . . . . . . . . . . . . 18IV.1.2 Pengujian pada Kondisi Ideal Bersamaan . . . . . . . . . . 23

vii

Page 9: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

IV.1.3 Pengujian pada Kondisi Tidak Ideal Terkendali . . . . . . . 26IV.1.3.1 Error pada pecahan pesan pertama . . . . . . . . 27IV.1.3.2 Error pada pecahan pesan kedua . . . . . . . . . 30IV.1.3.3 Error pada pecahan pesan ketiga . . . . . . . . . 31IV.1.3.4 Error pada pecahan pesan keempat . . . . . . . . 32IV.1.3.5 Error pada IV . . . . . . . . . . . . . . . . . . . 33

IV.1.4 Pengujian pada Kondisi Tidak Ideal Bersamaan . . . . . . . 35IV.1.5 Pengujian Fungsional Kondisi Khusus . . . . . . . . . . . . 38

IV.2 Pengujian Kinerja . . . . . . . . . . . . . . . . . . . . . . . . . . . 40IV.2.1 Penggunaan CPU . . . . . . . . . . . . . . . . . . . . . . . 40IV.2.2 Penggunaan RAM . . . . . . . . . . . . . . . . . . . . . . 41

Bab V Kesimpulan dan Saran 43V.1 Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43V.2 Saran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

DAFTAR PUSTAKA 45LAMPIRAN 47

viii

Page 10: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

DAFTAR LAMPIRAN

Lampiran A: Hasil Pengujian IV.1.1, karakter yang digunakan hanyaASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Lampiran B: Hasil Pengujian IV.1.1.1, dengan menggunakan karakternon-ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Lampiran C: Kode Sumber Program . . . . . . . . . . . . . . . . . . . . 53

ix

Page 11: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

DAFTAR GAMBAR

Gambar II.1 (a) tanpa chaining, ECB; (b) dengan chaining, CBC . . . . 5Gambar II.2 Ilustrasi steganografi . . . . . . . . . . . . . . . . . . . . . 7

Gambar III.1 Diagram alir SDLC . . . . . . . . . . . . . . . . . . . . . 9Gambar III.2 Diagram alir program send . . . . . . . . . . . . . . . . . 10Gambar III.3 Diagram alir program receive . . . . . . . . . . . . . . . . 10Gambar III.4 Diagram alir program receive2 . . . . . . . . . . . . . . . 11Gambar III.5 Posisi program dalam sudut pandang steganografi. . . . . . 11Gambar III.6 Skema pada CBC . . . . . . . . . . . . . . . . . . . . . . 12Gambar III.7 Alur perhitungan penanda . . . . . . . . . . . . . . . . . . 13Gambar III.8 Posisi program dalam sudut pandang RabbitMQ. . . . . . . 15Gambar III.9 Topologi pengirim dan penerima terpisah. . . . . . . . . . 17

Gambar IV.1 Uji fungsionalitas pada pengirim . . . . . . . . . . . . . . 19Gambar IV.2 Pengiriman direpresentasikan dengan heksadesimal . . . . 22Gambar IV.3 Bagian penerima receive.py . . . . . . . . . . . . . . . . 22Gambar IV.4 Bagian penerima lanjut dan dekripsi receive2.py . . . . . 23Gambar IV.5 Uji pengiriman bersamaan pada penelitian sebelumnya. . . 24Gambar IV.6 Penerima pada penelitian sebelumnya ketika terjadi dua pe-

ngiriman bersamaan . . . . . . . . . . . . . . . . . . . . . . . . . . 24Gambar IV.7 Pengiriman bersamaan pada penelitian sekarang . . . . . . 25Gambar IV.8 Pesan berhasil dipilah karena penanda awal yang berbeda . 26Gambar IV.9 Terjadi bit error pada pecahan pesan ke-3 karakter ke-27

(L). Bandingkan dengan gambar IV.4 . . . . . . . . . . . . . . . . . 26Gambar IV.10Terjadi error pada pecahan pertama karakter pertama di

receive.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Gambar IV.11receive2.py ketika terjadi error pada pecahan pertama

karakter kedua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Gambar IV.12Terjadi error pada pecahan pesan pertama karakter ke-12

(ChaCha20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Gambar IV.13Terjadi error pada pecahan pesan pertama karakter ke-31

(AES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Gambar IV.14Terjadi error pada pecahan pesan kedua karakter terakhir

(ChaCha20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

x

Page 12: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar IV.15Terjadi error pada pecahan pesan kedua karakter ke-13 (AES) 31Gambar IV.16Terjadi error pada pecahan pesan ketiga karakter ke-21

(ChaCha20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Gambar IV.17Terjadi error pada pecahan pesan ketika karakter ke-14 (AES) 32Gambar IV.18Terjadi error pada pecahan pesan keempat karakter ke-8

(ChaCha20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Gambar IV.19Terjadi error pada pecahan pesan keempat karakter ke-13

(AES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Gambar IV.20Terjadi error pada pesan IV di bagian penanda IV . . . . . 34Gambar IV.21Terjadi error pada pesan IV di bagian isi IV . . . . . . . . 34Gambar IV.22Kondisi receiver2.py ketika terjadi error pada IV . . . . 35Gambar IV.23Salah satu pesan terdekripsi benar dan otomatis . . . . . . 36Gambar IV.24Salah satu pesan terdekripsi otomatis, lainnya tidak utuh

dan tercampur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Gambar IV.25Satu pesan terdekripsi namun tercampur . . . . . . . . . . 37Gambar IV.26 (Atas) Diterima di terminal windows; (Bawah) Apa yang

ditampilkan disalin-tempel di penyunting teks. . . . . . . . . . . . 38Gambar IV.27Menampilkan karakter UTF-8 di terminal linux ubuntu . . . 39Gambar IV.28Perbandingan penggunaan CPU pada penelitian sebelum-

nya dan penelitian sekarang . . . . . . . . . . . . . . . . . . . . . . 41Gambar IV.29Perbandingan penggunaan RAM pada penelitian sebelum-

nya dan penelitian sekarang . . . . . . . . . . . . . . . . . . . . . . 42

xi

Page 13: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

DAFTAR TABEL

Tabel II.1 Penggabungan steganografi dan kriptografi . . . . . . . . . . 8

Tabel IV.1 Parameter pengujian fungsional pada kondisi ideal . . . . . . 19Tabel IV.2 Pesan dikirim dan pesan diterima . . . . . . . . . . . . . . . 23Tabel IV.3 Parameter pengujian fungsional bersamaan untuk penelitian

sebelumya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Tabel IV.4 Pesan yang berhasil diterima saat terjadi error terkendali . . . 35Tabel IV.5 Uji kondisi khusus . . . . . . . . . . . . . . . . . . . . . . . 39Tabel IV.6 Rekapitulasi uji fungsional . . . . . . . . . . . . . . . . . . . 40

xii

Page 14: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

DAFTAR SINGKATAN

AES Advanced Encryption Standard. 4

AES-NI Advanced Encryption Standard New Instruction. 5

AMPQ Advanced Message Queuing Protocol. 15

CBC Cipher Block Chaining. 4

CPU Central Processing Unit. 14

ECB Electronic Code Book. 4

IV Initialization Vector. 6

LSB Least Significant Bit. 7

RAM Random Access Memory. 14

SDLC System Development Life Cycle. 9

xiii

Page 15: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Bab I Pendahuluan

I.1 Latar Belakang

Dengan semakin banyaknya informasi sensitif yang dikirim melalui internet se-misal meningkatnya proses perbankan melalui internet, maka dibutuhkan penga-manan agar informasi sensitif tersebut tidak dapat diketahui oleh pihak yang tidakberkepentingan. Setidaknya ada dua cara agar informasi aman dari pihak yang tidakberkepentingan yaitu dengan kriptografi dan steganografi. Kriptografi akan meng-ubah bentuk informasi menjadi acak sedangkan steganografi akan menyisipkan in-formasi ke dalam sebuah medium. Ada beberapa medium yang dapat digunakanuntuk menyisipkan pesan yaitu citra, suara, dan teks.

Untuk meningkatkan keamanan, dilakukan metode penggabungan kriptografidan steganografi yang dikenal dengan stegokripto (stegocrypto). Penelitian ini me-rupakan pengembangan dari penelitian terdahulu yang menggabungkan kriptografidan steganografi dengan cover-message berupa bit acak yang direpresentasikan da-lam teks. Pada penelitian terdahulu, bentuk pola penanda yang digunakan untukmenandai informasi terenkripsi adalah tetap [1] sehingga pihak yang tidak berke-pentingan akan curiga setiap muncul pola penanda tersebut. Bit acak digunakansebagai cover-message karena tidak membutuhkan cost yang besar untuk mem-bangkitkannya dan juga setiap sistem operasi sudah memiliki sistem pembangkitnilai acak yang dapat digunakan.

Ada masalah lain yang selalu ada pada proses transmisi yaitu transmisi tidakselalu bersifat ideal semisal terjadi error sehingga data yang diterima tidak samadengan data yang dikirim. Banyak hal yang dapat menyebabkan error, beberapadiantaranya adalah kurang baiknya kualitas media pengiriman, ataupun error karenaadanya penyerang yang mampu mengubah informasi yang dikirim. Pada penelitiansebelumnya, belum ada mekanisme untuk penanggulangan ketika terjadi error.

I.2 Perumusan Masalah

Masalah yang menjadi dasar penelitan ini adalah:

1. Bagaimana cara membangkitkan penanda dinamis pada stegokripto?

2. Bagaimana cara menanggulangi error yang terjadi pada proses transmisi?

1

Page 16: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

3. Apa keunggulan dari sistem penanda dinamis jika dibandingkan sistem pe-nanda tetap?

I.3 Tujuan Penelitian

Tujuan dari penelitian ini adalah:

1. Membuat stegokripto yang menggunakan penanda dinamis untuk setiap pe-ngiriman pesan terenkripsi.

2. Membuat stegokripto handal ketika terjadi error saat transmisi.

3. Mengetahui keunggulan dari sistem penanda dinamis

I.4 Batasan Masalah

Batasan masalah untuk penelitian ini adalah:

1. Jaringan komunikasi satu arah

2. Menggunakan bilangan acak yang kemudian direpresentasikan dalam teks se-bagai derau

3. Bilangan acak dibangkitkan oleh interpreter maupun sistem operasi

I.5 Sistematika Penulisan

Laporan penelitian ini dibagi menjadi beberapa bab berikut,

• Bab I Pendahuluan berisi latar belakang, rumusan masalah, tujuan, batasanmasalah, dan sistematika penulisan.

• Bab II Tinjauan Pustaka, berisi ilmu dan konsep yang mendukung pembahas-an penelitian ini.

• Bab III Desain dan Implementasi, berisi desain dari stegokripto dengan pe-nanda dinamis dan bagaimana implementasinya.

• Bab IV Evaluasi, berisi penjelasan dari hasil penelitian.

• Bab V Kesimpulan, berisi rangkuman yang dapat diambil dari hasil penelitianini beserta saran untuk pengembangan selanjutnya.

2

Page 17: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Bab II Tinjauan Pustaka

II.1 Penelitian Sebelumnya

Penelitian ini merupakan pengembangan dari penelitian sebelumnya yang ber-judul Desain dan Implementasi Stegokripto [1]. Pada penelitian sebelumnya, polapenanda yang digunakan bersifat tetap yaitu empat rangkaian karakter berupa ”ffff”.Dengan menggunakan penanda yang selalu sama, pihak tidak berkepentingan akancuriga dengan tingginya frekuensi kemunculan pola ini. Selain itu, penggunaan po-la yang sama membuat sistem tidak dapat memisahkan pesan yang dikirim secarabersamaan.

II.2 Landasan Teori

II.2.1 Kriptografi

Kriptografi adalah kajian teknik matematis yang berhubungan dengan keaman-an informasi seperti kerahasiaan, integritas, otentikasi, dan penyangkalan sebuahinformasi [2]. Ada banyak operasi primitif dalam kriptografi dan operasi-operasitersebut dapat dikategorikan ke dalam 3 kelompok yaitu primitif tanpa kunci, pri-mitif kunci simetris, dan primitif kunci asimetris. Hanya dua primitif yang digu-nakan dalam penelitian ini. Primitif yang digunakan adalah cipher kunci simetrisdari primitif kunci simetris dan fungsi hash dari primitif tanpa kunci.

Fungsi hash adalah sebuah fungsi satu arah yang menghitung dan memetakandata dengan panjang yang bebas ke dalam data yang memiliki panjang yang tetap.Dalam kriptografi, beberapa fungsi hash adalah untuk pembuatan tanda tangan elek-tronik dan pengecekan integritas data. Hash juga tidak membutuhkan kunci untukproses perhitungannya. Fungsi ini disebut satu arah karena jika input x diketahuimaka output y = hash(x) mudah didapatkan namun jika hasil hash y diketahui ma-ka sangat sulit untuk mencari x. Selain itu, karena hasil hash y memiliki panjangyang tetap dan independen terhadap panjang input x, maka akan ada kemungkinanterjadinya tabrakan antara hasil hash semisal hash(x) = hash(y).

Primitif kunci simetris sendiri terbagi menjadi dua kelompok yaitu kelompokblock cipher dan kelompok stream cipher. Dalam kriptografi, cipher adalah se-buah algoritma untuk melakukan prosedur enkripsi atau dekripsi. Umumnya, pro-ses enkripsi ditulis dengan c = Ek,IV (m) sedangkan proses dekripsi ditulis dengan

3

Page 18: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

m = Dk,IV (c), dengan:

c = ciphertext atau pesan terenkripsi

E = algoritma atau fungsi enkripsi

D = algoritma atau fungsi dekripsi

k = kunci

IV = initialization vector (opsional)

m = plaintext

Pada penelitian sebelumnya, cipher yang digunakan berasal dari kelompokblock cipher yaitu Advanced Encryption Standard (AES) sedangkan cipher yangdigunakan pada penelitian ini adalah ChaCha20 yang berasal dari kelompok stream

cipher. Block cipher melakukan enkripsi dengan memecah pesan m sehingga pes-an m menjadi m1,m2,m3, ...,mn dengan panjang tiap pecahan yang tetap dan lebihdari satu. Jika panjang pesan tidak habis dibagi panjang pecahan, maka diperlukanpadding. Stream cipher adalah block cipher dengan panjang tiap pecahan adalah1. Salah satu keuntungan dari peggunaan stream cipher adalah tidak adanya datatambahan berupa padding karena panjang tiap pecahan adalah 1.

Untuk meningkatkan keacakan hasil dari suatu cipher, dilakukan juga proseschaining yang umumnya membutuhkan informasi IV. Dengan menambahkan cha-

ining maka pecahan dengan isi yang sama akan terenkripsi menjadi ciphertext

yang berbeda [3]. Sebagai contoh, ada sebuah plaintext m dengan m1,m2, ...,mn

dan setiap pecahannya identik m1 = m2 = ... = mn. Jika tanpa proses chaining

semisal dengan Electronic Code Book (ECB), maka c1 = c2 = ... = cn sedangk-an jika ditambahkan proses chaining seperti Cipher Block Chaining (CBC), makac1 6= c2 6= ... 6= cn seperti pada gambar II.1. Kekurangan dari proses chaining ada-lah setiap blok saling bergantung. Penelitian ini mengadopsi proses chaining untukmembangkitkan pola penanda yang bersifat dinamis.

4

Page 19: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar II.1: (a) tanpa chaining, ECB; (b) dengan chaining, CBC

II.2.1.1 ChaCha20

ChaCha20 adalah sebuah cipher yang dibuat oleh Daniel J. Bernstein. Cha-Cha20 merupakan pengembangan dari Salsa20 yang juga dibuat oleh Daniel J. Ber-nstein. Untuk melakukan enkripsi dan dekripsi, hanya membutuhkan operasi pen-jumlahan, xor, dan rotasi bit sehingga menggunakan sumber daya komputasi yangsedikit, lebih cepat dari AES [4] [5], dan cocok untuk perangkat mobile. Berbedadengan ChaCha20, AES membutuhkan operasi lain yaitu inisialisasi s-box dan me-lakukan look up terhadap s-box sehingga akan menggunakan lebih banyak sumberdaya komputasi namun lebih cepat jika prosesor memiliki set instruktur Advanced

Encryption Standard New Instruction (AES-NI).Operasi utama pada ChaCha20 adalah operasi QUARTERROUND yang beru-

pa:

a = a+b; d = d⊕a; d = d <<< 16;

c = c+d; b = b⊕ c; b = b <<< 12;

a′ = a+b; d = d⊕a′; d′ = d <<< 8;

c′ = c+d′; b = b⊕ c′; b′ = b <<< 7;

(II.1)

dengan a, b, c, dan d merupakan sebuah bilangan dengan panjang 32 bit, sehinggaoperasi

QUARTERROUND(a,b,c,d) = (a′,b′,c′,d′)

Berdasarkan operasi QUARTERROUND, dibuat juga operasi COLUMNROUND

5

Page 20: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

dan DIAGONALROUND. Misalkan ada sebuah array x:

a b c d

e f g h

i j k l

m n o p

maka operasi COLUMNROUND terhadap array x ada-lah QUARTERROUND(a,e, i,m), QUARTERROUND(b, f , j,n),QUARTERROUND(c,g,k,o), dan QUARTERROUND(d,h, l, p) yangakan menghasilkan array x′ dengan hasil operasi QUARTERROUNDtersebut. Sedangkan operasi DIAGONALROUND terhadap array

x adalah QUARTERROUND(a, f ,k, p), QUARTERROUND(b,g, l,m),QUARTERROUND(c,h, i,n), dan QUARTERROUND(d,e, j,o).

ChaCha20 membutuhkan input kunci sepanjang 256 bit dan Initialization Vector

(IV) sepanjang 64 bit yang kemudian diinisialisasikan dengan cara mendistribusu-kannya ke dalam array x dengan ketentuan sebagai berikut:

• a,b,c,d diisi konstanta dengan a = 0x61707865, b = 0x3320646e, c =0x79622d32, dan d = 0x6b206574

• e, f ,g,h, i, j,k, l diisi dengan kunci yang dipenggal setiap 32 bit kemudiandiletakkan dalam urutan little-endian. Misalnya penggalan pertama berisi0x12345678, maka akan ditempatkan sebagai 78563412

• m,n diisi dengan jumlah blok yang biasanya dimulai dengan 1 sehingga blokm bernilai 0 dan blok n bernilai 1.

• o, p diisi dengan IV yang dipenggal setiap 32 bit kemudian diletakkan dalamurutan little-endian seperti peletakkan kunci.

Setelah array diinisialisi, dilakukan 10 kali operasi COLUMNROUND dan 10kali operasi DIAGONALROUND secara berurutan. Hasil akhirnya berupa array

kemudian diubah menjadi stream dengan little-endian kemudian di-xor-kan denganplaintext m untuk membentuk ciphertext c.

II.2.2 Steganografi

Steganografi merupakan ilmu penyembunyian pesan agar pihak yang tidak ber-kepentingan tidak menyadari jika ada pesan tersembunyi [6]. Biasanya pesan disi-sipkan di dalam sebuah berkas media seperti citra, suara, atau teks. Dalam stega-nografi, media yang digunakan untuk disisipi dikenal dengan istilah cover-message.

6

Page 21: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Media seperti citra dan suara lebih sering digunakan [7] sebagai cover-message

karena tingginya ukuran pesan yang dapat disisipkan jika dibandingkan menggu-nakan teks sebagai cover-message-nya sedangkan metode penyisipan yang seringdigunakan adalah dengan menyisipkan informasi pada Least Significant Bit (LSB).

Gambar II.2: Ilustrasi steganografi

Selain disisipkan pada berkas, protokol yang ada pada jaringan dapat dieksploi-tasi agar bekerja sebagai cover-message dengan memanfaatkan header. Selain pro-tokol, transmisi sinyal pada tingkat perangkat keras dapat dijadikan cover-message

juga semisal jika yang dikirim sebesar 5 volt maka yang dikirim adalah bit bernilaisatu namun jika yang dikirim sebesar 5,5 volt maka yang dikirim adalah bit bernilaisatu dan memiliki pesan tersembunyi beruba bit bernilai satu.

II.2.3 Penggabungan Kriptografi dan Steganografi

Untuk meningkatkan keamanan, ada beberapa metode yang bisa dilakukan diantaranya adalah melakukan enkripsi berulang, dan menggabungkan kriptografi dansteganografi. [8] melakukan keamanan dengan melakukan enkripsi kemudian stega-nografi dengan menyisipkan ciphertext di dalam citra medis seperti citra hasil x-rayatau CT-SCAN yang telah dipindai agar informasi pasien lebih aman. [9] mening-katkan keamanan dengan melakukan 2 tahap enkripsi kemudian disisipkan di dalamcover. Penggabungan steganografi dan kriptografi dikenal dengan istilah stegokrip-to.

Pada penelitian ini, dilakukan penggabungan kriptografi dan steganografi untukmeningkatkan keamanan. Dengan menggunakan kriptografi yang menghasilkan ci-

phertext c mirip bit acak dan menggunakan bit acak sebagai cover-nya, maka pi-hak yang tidak berkepentingan kesulitan untuk membedakan antara ciphertext danteks acak sehingga pihak yang tidak berkepentingan tidak yakin dengan adanya ci-

phertext di antara teks yang dihasilkan dari bit acak. Namun jika pihak yang tidak

7

Page 22: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Tabel II.1: Penggabungan steganografi dan kriptografi

Penelitian cipher cover-message Metode sisip Jenis pesanManish [8] AES Citra LSB teksUsha [9] Playfair + AES Citra LSB teksAl-Maarif [1] AES-ECB Teks (acak/derau) Acak, penanda teksBhalde [10] MD5 Suara LSB+parity bit teksHayfaa [11] AES Citra LSB+Kamus teks

berkepentingan yakin dengan adanya ciphertext di antara bit acak, maka butuh cost

yang besar untuk mencari ciphertext atau bahkan plaintext sedangkan untuk mem-bangkitkan bit acak hanya dibutuhkan cost yang sedikit [12].

II.2.4 Synchronized Chaos Communication

Synchronized chaos communication adalah salah satu cara untuk mengamank-an proses komunikasi [13]. Metode ini terdiri dari dua pihak yaitu pihak pengirimyang menjadi master/drive dan pihak penerima menjadi slave/response. Informa-si kemudian dimodulasikan dengan sinyal carrier yang berasal dari sistem kaotikagar informasi menjadi tersembunyi, mirip dengan kriptografi. Untuk mendapatkaninformasi yang sebenarnya, dibutuhkan sinkronisasi sistem kaotik di pengirim dansistem kaotik di penerima. Setelah tersinkronisasi, maka penerima dapat melakuk-an demodulasi untuk mendapatkan informasi sebenarnya. Chaos Communication

juga dapat digunakan untuk mengirimkan kunci rahasia untuk proses enkripsi [14].Penelitian ini mengadopsi gagasan chaos communication dengan mengubah sis-

tem kaotik menjadi dengan bit acak yang direpresentasikan dengan teks. Pengubah-an juga dilakukan pada proses sinkronisasinya, juga tidak dilakukan pada sistemkaotik atau bit acak melainkan pada bagian pesannya. Pengirim akan bertindaksebagai master dan penerima akan bertindak sebagai slave. Pengirim akan mengi-rimkan informasi IV untuk melakukan sinkronisasi dengan penerima.

8

Page 23: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Bab III Desain dan Implementasi

Bab ini membahas tentang perencanaan pengembangan stegokripto dan imple-mentasinya. Pengembangan pada penelitian ini dilakukan berdasarkan System De-

velopment Life Cycle (SDLC). Hal pertama yang dilakukan adalah melakukan ana-lisis untuk mencari solusi ,tujuan, dan kelebihan dari sistem yang dikembangkanseperti yang tertera pada bab sebelumnya. Setelah itu, mendesain sistem yang ak-an diimplementasikan secara detail seperti perhitungannya, prosesnya, dan diagramalirnya. Setelah desain selesai, masuk tahap implementasi yaitu penulisan kode pro-gram kemudian diuji untuk bug dan error. Setelah bersih dari bug dan error, eva-luasi dilakukan, memasuki tahap pemeliharaan dan kembali lagi ke tahap analisis.

Gambar III.1: Diagram alir SDLC

III.1 Desain

Ada empat program yang dibuat pada tesis ini. Program-program tersebut ada-lah:

1. Send

Program ini digunakan untuk mengirim pesan. Pesan yang berupa plaintext

akan dienkripsi dengan sebuah cipher. Hasil enkripsi menjadi sebuah cipher-

text. Dalam sudut pandang steganografi, yang dikirimkan program ini adalahsebuah secret-message. Pesan-pesan yang dikirimkan ini akan diberi penanda(flag) untuk membedakannya dari derau (noise).

9

Page 24: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar III.2: Diagram alir program send

2. Send noise

Program ini digunakan sebagai pembangkit teks acak yang menyerupai derauyang digunakan sebagai cover-message. Bentuk ciphertext umumnya miripbyte string acak maka teks acak yang dibangkitkan program ini juga haruslahberupa bytes string. Untuk menekan cost dalam segi komputasi, teks acak di-bangkitkan dengan memanfaatkan bilangan acak yang dihasilkan sistem ope-rasi.

3. Receive

Program ini akan menerima stego-message yang merupakan gabungan secret-

message dari program send dan cover-message dari program send noise. Pro-gram akan memilah antara noise dan secret-message berdasarkan penanda.Ketika ditemukan penanda, pesan akan diteruskan menuju program receive2.

Gambar III.3: Diagram alir program receive

4. Receive2

Program ini bertugas menyusun kembali pecahan-pecahan secret-message

yang diterima dan telah dipilah program receive kemudian melakukan dek-ripsi pada secret-message untuk mendapatkan sebuah plaintext m.

10

Page 25: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar III.4: Diagram alir program receive2

Program receive dan receive2 akan selalu berada pada modus listening. Programtidak akan berhenti hingga pengguna memutuskan untuk menutup atau mengakhiriprogram tersebut. Program send noise pun tidak akan berhenti sampai ditutup ataudiakhiri. Program send akan berhenti setelah blok pesan terakhir dikirim.

Gambar III.5: Posisi program dalam sudut pandang steganografi.

Di dalam program send, receive dan receive2, ada sub-process berupa perhi-tungan penanda. Hasil dari perhitungan penanda ini akan memberikan penandadinamis. Penanda dinamis ini memberikan keuntungan yaitu memungkinkan un-tuk memisahkan pesan-pesan yang dikirim secara bersamaan. Keuntungan ini tidakbisa diberikan oleh penanda tetap. Jika banyak pesan dikirimkan bersamaan dansetiap pesan yang dikirim menggunakan penanda yang sama maka tidak mungkinuntuk memisahkan pesan-pesan yang masuk.

11

Page 26: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar III.6: Skema pada CBC

Ide untuk membuat penanda dinamis ini terinspirasi dari modus operasi block

cipher seperti modus cipher block chaining yang ada pada bab II.2.1. Pada mo-dus tersebut, plaintext m dipecah menjadi beberapa bagian tergantung panjang blokmenjadi m1,m2, ...,mn. Untuk memroses m1, yang merupakan blok awal, membu-tuhkan infromasi IV. Untuk memroses m2 membutuhkan informasi m1, m3 mem-butuhkan informasi m2 dan seterusnya hingga mn yang membutuhkan informasimn−1. Proses chaining memiliki kelebihan yaitu mampu menambah keacakan ha-sil. Tentunya proses chaining pun memiliki kelemahan karena setiap blok salingberhubungan dan jika terjadi satu bit error saat pengiriman maka semua blok dariterjadinya bit error hingga akhir blok akan menjadi error.

Pada desain ini, IV yang digunakan memiliki panjang 64 bit dan panjang sebuahpecahan blok adalah 32 karakter atau 256 bit. Pengirim akan menjadi master danpenerima akan menjadi slave sehingga sistem di penerima akan mengikuti sistem dipengirim dengan input IV seperti pada chaos communication di bab II.2.4. PertamaIV diekspansi menjadi 72 bit dengan menambahkan leading zero kemudian dibagimenjadi tiga bagian yaitu 24 bit pertama (IV1), 24 bit kedua IV2, dan 24 bit ketigaIV3. Ketiga bagian tersebut saling di-xor-kan kemudian di-xor-kan lagi dengan sua-tu bilangan x yang memiliki panjang 24 bit juga. Hasil dari proses ini akan memilikipanjang 24 bit atau 3 byte string yang akan menjadi penanda pertama:

f1 = IV1⊕ IV2⊕ IV3⊕ x (III.1)

Setelah didapat f1, f1 ditambahkan di depan blok pesan pertama Ek(m1) kemudiandikirimkan sehingga pesan yang dikirim adalah f1 +Ek(m1).

12

Page 27: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar III.7: Alur perhitungan penanda

Untuk menghitung penanda selanjutnya dibutuhkan informasi penanda sebelumdan juga pesan yang dikirim sebelumnya. Jika pesan yang dikirim bukan kelipatan3 byte (panjang penanda), maka ditambah leading zero di depan pesan tersebut.Setelah ditambah, Ek(m1) dipecah setiap 3 byte (panjang penanda )menjadi:

Ek(m11),Ek(m12),Ek(m13), ...,Ek(m1n) (III.2)

Semua pecahan ini kemudian di-xor-kan sehingga menghasilkan penanda kedua f2

yang merupakan:

f2 = f1⊕Ek(m11)⊕Ek(m12)⊕Ek(m13)⊕ ...⊕Ek(m1n) (III.3)

13

Page 28: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

. Proses perhitungan ini dilakukan hingga blok n− 1 yang merupakan blok keduadari akhir. Pada blok ke-n atau blok terakhir, penanda yang dikirim di-xor-kan de-ngan suatu bilangan x yang sama dengan bilangan x pada perhitungan flag pertama

sehingga:

fn = fn−1⊕Ek(mn−11)⊕Ek(mn−12)⊕Ek(mn−13)⊕ ...⊕Ek(mn−1n)⊕ x (III.4)

Tujuan dari me-xor-kan dengan bilangan x adalah memberi aba-aba bahwa pecahanblok yang akan dikirim selanjutnya merupakan blok terakhir. Ketika blok akhir di-terima maka penerima akan menampilkan keseluruhan pesan yang telah didekripsidan dibangun ulang.

Untuk menanggulangi terjadinya bit error, didesainlah sebuah proses yaitu pro-ses sinkronisasi ulang setiap beberapa blok sekali. Dalam penelitian ini, sinkro-niasasi akan dilakukan setiap 4 blok sekali. Karena adanya penanda sinkronisasi,perhitungan penanda pun berubah. Dengan parameter penanda sinkronisasi tiap 4blok sekali, maka penanda ke-5 f5, ke-9 f9, ke-13 f13, dan seterusnya tidak la-gi bergantung pada pecahan sebelumnya melainkanakan bergantung pada IV danpenanda pertama, dengan:

f1 = hash(IV ) = f1 +(0∗256)

f5 = f1 +(1∗256)

f9 = f1 +(2∗256)

f13 = f1 +(3∗256)

...

(III.5)

Diperlukan penelitian lebih lanjut untuk menentukan jarak antar pendanda sinkro-nisasi, panjang tiap pecahan blok, dan panjang penanda agar lebih efisien.

III.2 Implementasi

Untuk mengimplementasikan program-program tersebut, maka dibutuhkan du-kungan dari piranti keras dan juga piranti lunak. Berikut adalah piranti yang digu-nakan dalam penelitian ini:

• Piranti keras

Laptop dengan Central Processing Unit (CPU) Intel i5-5200u dan Random

Access Memory (RAM) sebesar 8 GB. Intel i5-5200u ini sudah memiliki set

14

Page 29: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

instruksi AES-NI untuk mempercepat proses enkripsi dengan AES dan setinstruksi ini diaktifkan.

• Piranti lunak

1. RabbitMQ

Program yang mengimplementasikan Advanced Message Queuing Pro-

tocol (AMPQ) ini digunakan untuk mengemulasi sistem pengirimanpesan. Program yang digunakan adalah Rabbit MQ versi 3.6.5. Da-lam sudut pandang RabbitMQ, send.py dan sendnoise.py adalahklien(producer) untuk server(consumer) receive.py dan receive.py

adalah producer untuk consumer receive2.py

Gambar III.8: Posisi program dalam sudut pandang RabbitMQ.

2. Interpreter bahasa Python

Program pada penelitian ini ditulis dengan bahasa Python dan interpreteryang digunakan adalah Python versi 2.7.11.

3. Modul PyCryptodome.

Modul tambahan untuk Python yang digunakan untuk keperluan kripto-grafi. Modul yang digunakan adalah PyCryptodome versi 3.4.3

4. ChaCha20 sebagai cipher

Pada penelitian sebelumnya, cipher yang digunakan adalah block cipher

yaitu AES dengan modus ECB. Pada penelitian ini, cipher yang digu-nakan adalah stream cipher. Beberapa keunggulannya adalah kinerjayang lebih cepat, lebih tahan terhadap bit error, dan tidak memerlukanpadding. Cipher ini telah diimplementasikan di modul PyCryptodomesehingga tinggal memanggilnya di python.

5. Modul pika

Modul tambahan untuk Python yang digunakan untuk keperluan pengi-riman pesan (AMPQ) seperti RabbitMQ. Modul yang digunakan adalahpika versi 0.10.0

15

Page 30: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

6. Modul os

Modul bawaan dari Python yang salah satu fungsinya adalah mengambilrandom byte yang dibangkitkan oleh sistem operasi. Setelah diambil,random byte akan disusun menjadi sebuah string sehingga menyerupainoise yang merupakan cover-message

7. Windows 10 64 bit sebagai sistem operasi.

Python dan RabbitMQ dapat dijalankan di atas Windows 10.

8. Linux Ubuntu Server 16.04.01 sebagai sistem operasi.

Program-program yang diimplementasikan akan dijalankan juga diLinux Ubuntu kemudian dilakukan benchmark terhadap penggunaanRAM dan CPU-nya.

9. Valgrind

Program ini berfungsi untuk menganalisis penggunaan memori aktualoleh sebuah program. Program ini dijalankan di atas sistem operasi li-nux ubuntu.

Sesuai dengan sub bab sebelumnya tentang desain, ada 4 program yang dibuatyaitu program receive, program receive2, program send, dan program send noise.Semua program kemudian diimplementasikan dengan python kemudian disimpandengan nama receive.py untuk program receive, receive2 untuk program recei-

ve2, send.py untuk program send, dan sendnoise.py untuk program send noise.

III.2.1 Topologi

Untuk pengujian fungsional, pengujian dilakukan pada dua topologi. Bentuktopologinya sebagai berikut:

• Pengirim (send.py, sendnoise.py) dan penerima (receive.py,receive2.py) ada dalam satu perangkat dengan sistem operasi windows 10.

• Pengirim (send.py, sendnoise.py) dan penerima (receive.py,receive2.py) terpisah. Pengirim menggunakan perangkatdengan sistem operasi windows 10, dan penerima menggu-nakan perangkat virtual dengan sistem operasi linux ubuntu.

16

Page 31: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar III.9: Topologi pengirim dan penerima terpisah.

Sedangkan untuk pengujian kinerja, pengujian dilakukan dengan pengirim dan pe-nerima berada dalam satu perangkat virtual dengan sistem operasi linux ubuntu.

17

Page 32: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Bab IV Evaluasi dan Validasi

Bab ini membahas tentang pengujian dan analisis terhadap program yang te-lah diimplementasikan sesuai dengan yang tertera pada bab sebelumnya. Programyang telah diimplementasikan kemudian dibandingkan juga dengan program yangada pada penelitian sebelumnya untuk membandingkan dan mengukur peningkatankinerja yang terjadi.

IV.1 Pengujian Fungsional

Pengujian fungsional dilakukan dengan menguji program yang telah diimple-mentasikan sesuai dengan desain. Ada 4 skema pengujian yaitu pengujian padakondisi ideal, pengujian pada kondisi ideal bersamaan, pengujian pada kondisi tidakideal terkendali, dan pengujian pada kondisi tidak ideal bersamaan. Pada kondisiideal, jaringan disimulasikan dengan paramater bit error rate sebesar 0 sehingga ti-dak akan terjadi kesalahan pada proses transmisi dan hanya ada satu pengirim saja.Pada kondisi ideal bersamaan, beberapa pengirim akan mengirim pesan pada waktuyang hampir bersamaan yang bertujuan untuk mengetahui apakah penerima mam-pu memilah pesan dari pengirim yang berbeda. Pada pengujian kondisi tidak idealterkendali, hanya akan terjadi satu kali error saja pada pecahan pesan yang dikirimdan pecahan yang dibuat error bersifat deterministik, lokasi dapat ditentukan error

ditentukan oleh penguji. Untuk pengujian pada kondisi tidak ideal bersamaan, be-berapa pengirim melakukan pengiriman hampir bersamaan namun dengan kondisiyang tidak ideal semisal penanda awal yang sama.

IV.1.1 Pengujian pada Kondisi Ideal

Pada pengujian ini, dikirim sebuah pesan untuk menguji apakah program berha-sil memilah antara derau dan pesan yang berupa derau. Pengujian dilakukan denganmengirim pesan dengan parameter pada tabel IV.1. Maka pada program pengirimanyaitu sender.py akan menjadi seperti pada gambar IV.1.

18

Page 33: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Tabel IV.1: Parameter pengujian fungsional pada kondisi ideal

Parameter NilaiKunci k secretkey123456!secretkey123456!Pesan m This page contains examples on basic concepts of C

programming like: loops, functions, pointers, stru-ctures etc. All the examples in this page are testedand verified on GNU GCC compiler, although almostevery program on in this website will work on anycompiler you use. Feel free to copy the source codeand execute it in your device.

Panjang pesan 336 karakterBilangan awal x 0xffffffIV 0x7365c71905dd1e4c

Gambar IV.1: Uji fungsionalitas pada pengirim

Sesuai dengan yang tertera pada bagian desain, initialization vector IV sepan-jang 64 bit di-hash-kan terlebih dahulu menjadi 24 bit karena panjang penanda ada-lah 24 bit yang sama dengan 6 karakter heksadesimal atau 3 karakter pada UTF-8.IV sepanjang 64 bit 0x7365c71905dd1e4c diekspansi menjadi 72 bit dengan me-nambah leading zero menjadi 0x007365c71905dd1e4c. Penambahan leading zero

dilakukan karena 64 tidak habis jika dibagi 24. IV kemudian dibagi menjadi tigabagian dengan panjang tiap bagian adalah 24 bit atau 6 karakter heksadesimal yaituIV1 = 0x007365, IV2 = 0xc71905 dan IV3 = 0xdd1e4c. Kemudian, ketiga bagiantersebut saling di-xor-kan lalu di-xor-kan juga dengan bilangan awal x sehinggamembentuk penanda pertama f1 seperti pada persamaan IV.1. Penanda pertama f1

dapat dilihat pada gambar IV.1 dan gambar IV.2 pada baris ke-3. Pada gambar IV.1

19

Page 34: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

digunakan UTF-8 untuk mengodekan karakter yang dikirim sedangkan pada gam-bar IV.2 digunakan heksadesimal untuk mengodekan karakter. gambar IV.2 ditam-bahkan untuk memudahkan pemahaman terhadap proses penghitungan penanda.

f1 = hash(IV64bit)⊕ x

f1 = IV1⊕ IV2⊕ IV3⊕ x

f1 = 0x007365⊕0xc71905⊕0xdd1e4c⊕0xffffff

f1 = 0xe58bd3

(IV.1)

Selanjutnya, pesan m dipecah-pecah dengan panjang 32 karakter untuk setiappecahannya sehingga menjadi m1,m2, ...,mn kemudian setiap pecahannya dienkri-psi dengan ChaCha20 dengan kunci k dan IV menjadi ciphertext c1,c2, ...,cn ataucn = Ek,iv(mn). Setelah didapatkan pecahan ciphertext pertama, penanda pertamadiimbuhkan di depan ciphertext pertama sehingga menjadi f1+c1 kemudian pecah-an informasi ini dikirimkan. Untuk menghitung penanda selanjutnya, dibutuhkaninformasi penanda sebelumnya dan juga pecahan ciphertext sebelumnya. Informasitersebut kemudian di-hash-kan menjadi 24 bit seperti pada persamaan IV.1.

f1 = hash(IV )⊕ x

f2 = hash(c1)⊕ f1

f3 = hash(c2)⊕ f2

f4 = hash(c3)⊕ f3

...

(IV.2)

Sebagai contoh, untuk menghitung penanda kedua f2 yang juga memiliki pan-jang 24 bit, maka dibutuhkan informasi penanda sebelumnya yang merupakan pe-nanda pertama f1 dan ciphertext pertama c1 yaitu 0xe58bd3 sebagai penanda per-tama f1 dan 0xa1dae0947a2a983a37d2f49c881f8eb6d42e263f7fe831da4800-

73a15f7c0ece sebagai ciphertext pertama c1 seperti yang tertera pada baris ke-5pada gambar IV.2 atau pada gambar IV.1 yang menggunakan UTF-8 sebagai peng-kodeannya. Informasi ciphertext c1 tersebut di-hash-kan kemudian di-xor-kan de-ngan penanda pertama f1 untuk membentuk penanda ke-dua. Penambahan leading

zero diperlukan karena informasi c1 sepanjang 256 bit tidak habis jika dibagi 24 bit,dalam kasus ini ditambahkan 8 bit leading zero. Setelah ditambahkan leading zero,

20

Page 35: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

informasi kemudian dipotong setiap 24 bit kemudian di-xor-kan

f2 =hash(c1)⊕ f1

f2 =(0x00a1da⊕0xe0947a⊕0x2a983a⊕0x37d2f4⊕

0x9c881f⊕0x8eb6d4⊕0x2e263f⊕0x7fe831⊕

0xda4800⊕0x73a15f⊕0x7c0ece)⊕0xe58bd3

f2 =0x6b683a⊕0xe58bd3

f2 =0x8ee3e9

(IV.3)

Karena setiap penanda saling memengaruhi seperti pada persamaan IV.2, makahanya dibutuhkan satu bit error saja untuk memutuskan komunikasi. Untuk me-nanggulanginya, dilakukan proses sinkronisasi ulang yang terinspirasi dari teknikpengkodean MPEG-4. Dalam penelitian ini, proses sinkronisasi ulang dilakukansetelah mengirim empat pecah pesan sehingga proses sinkronisasi pertama akanterjadi pada penanda ke-5 f5, yang ke-2 pada penanda ke-9 f9, yang ke-tiga pa-da penanda ke-13 f13 dan seterusnya. Persamaan untuk proses sinkorinsasi adalahsebagai berikut:

f1 = hash(IV ) = f1 +(0∗256)

f5 = f1 +(1∗256)

f9 = f1 +(2∗256)

f13 = f1 +(3∗256)

...

(IV.4)

Untuk memberitahu penerima jika pecahan yang dikirim adalah pecahan ter-akhir maka dibutuhkan penanda khusus. Penanda yang dikirim adalah penandasinkronisasi selanjutnya yang kemudian di-xor-kan dengan bilangan awal x. Da-lam pengujian ini, ada 11 pecahan pesan yang dikirim maka penanda terakhirfn = f13⊕ x = ( f 1+(3∗256))⊕ x.

21

Page 36: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar IV.2: Pengiriman direpresentasikan dengan heksadesimal

Semua pecahan dikirimkan bersamaan dengan derau untuk menyamarkan pe-cahan yang dikirim. Penerima receive.py akan menerima semua yang dikirimbaik pesan terenkripsi berupa derau maupun derau yang sebenarnya. Kemudian pe-cahan pesan terenkripsi dan derau akan dipilah berdasarkan IV dan penanda. Padagambar IV.3 yang merupakan bagian penerima, pesan terenkripsi diberi highlight

sedangkan noise tidak diberi highlight. Jika receive.py menemukan IV atau pe-nanda, maka pesan akan diteruskan menuju receive2.py untuk didekripsi sepertipada gambar IV.4.

Gambar IV.3: Bagian penerima receive.py

22

Page 37: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar IV.4: Bagian penerima lanjut dan dekripsi receive2.py

Pada gambar IV.4, pecahan pesan didekripsi kemudian dibangun ulang. Setelahmenemukan penanda terakhir yang menandakan tidak ada lagi pecahan selanjutnya,pecahan pesan yang telah dibangun ulang akan ditampilkan. Pada pengujian ini,hasil antara pesan yang diterima dan dikirim sama yang berarti pengujian fungsionalpada kondisi ideal berhasil.

Tabel IV.2: Pesan dikirim dan pesan diterima

Pesan dikirim pesan diterimaThis page contains examples on ba-sic concepts of C programming li-ke: loops, functions, pointers, stru-ctures etc. All the examples inthis page are tested and verified onGNU GCC compiler, although al-most every program on in this web-site will work on any compiler youuse. Feel free to copy the source co-de and execute it in your device.

This page contains examples on ba-sic concepts of C programming li-ke: loops, functions, pointers, stru-ctures etc. All the examples inthis page are tested and verified onGNU GCC compiler, although al-most every program on in this web-site will work on any compiler youuse. Feel free to copy the source co-de and execute it in your device.

IV.1.2 Pengujian pada Kondisi Ideal Bersamaan

Pada penelitian sebelumnya, penerima tidak mampu membedakan pesan yangdikirim bersamaan semisal dilakukan pengiriman dengan parameter seperti pada ta-bel IV.3. Penerima tujuan yang dapat melakukan dekripsi decryption.py akanmenampilkan pesan yang tercampur dari pengirim pertama dan pengirim kedua se-perti pada gambar IV.6. Penerima tidak dapat melakukan pemilahan karena penanda

23

Page 38: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

yang digunakan selalu sama untuk semua pengirim yaitu ffff sehingga pesan akantercampur seperti pada gambar IV.6.

Tabel IV.3: Parameter pengujian fungsional bersamaan untuk penelitian sebelumya

Parameter Pengirim 1 Pengirim 2Pesan deretan abjad a-z dan A-Z

yang diulang 9 kalideretan angka 0-9 yang diu-lang 19 kali

Cipher AES ECBKunci secretkey123456!secretkey123456!

Gambar IV.5: Uji pengiriman bersamaan pada penelitian sebelumnya.

Gambar IV.6: Penerima pada penelitian sebelumnya ketika terjadi dua pengirimanbersamaan

24

Page 39: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Pada penelitian ini, diuji juga pengiriman bersamaan dengan parameter mi-rip dengan yang tertera pada tabel IV.4 namun cipher yang digunakan adalahChaCha20 bukan AES. Pengiriman dilakukan pada kondisi ideal sama seperti pa-da sub bagian 4.1.1. Ada dua pengirim yang mengirim bersamaan dengan pes-an dan IV yang berbeda. Pengirim pertama mengirimkan deretan abjad sedangk-an pengirim kedua mengirimkan deretan angka. Pengirim pertama menggunakanIV 0x77f13de68fa9aa81 yang menghasilkan penanda pertama f1 = 0x6bc400 se-dangkan pengirim kedua menggunakan IV 0x8c4b371f8b685730 yang mengha-silkan penanda pertama f1 = 0xa03b0f.

Gambar IV.7: Pengiriman bersamaan pada penelitian sekarang

Dengan penanda pertama yang berbeda antar pengirim, maka pesan-pesan yangdikirim bersamaan dapat diterima dan didekripsi secara utuh sehingga pengujianini berhasil seperti pada gambar IV.8. Untuk pengujian pada kondisi tidak idealmisalnya jika penanda pertama sama, dapat dilihat di sub bagian ke 4.1.4

25

Page 40: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar IV.8: Pesan berhasil dipilah karena penanda awal yang berbeda

IV.1.3 Pengujian pada Kondisi Tidak Ideal Terkendali

Pada pengujian ini, salah satu dan hanya satu pecahan pesan yang diterima akandiubah sehingga tidak sama dengan pesan yang dikirim. Pecahan pesan yang akandiubah pun bersifat deterministik, tidak acak. Tujuannya adalah untuk mengetahuiapakah proses sinkronisasi ulang berhasil atau tidak. Pada sub bagian ini, parameterpesan yang dikirim seperti pada tabel IV.1 dan gambar IV.1 pada sub bagian 4.1.1

Gambar IV.9: Terjadi bit error pada pecahan pesan ke-3 karakter ke-27 (L). Ban-dingkan dengan gambar IV.4

Awalnya, tidak ada proses sinkronisasi ulang sehingga pesan terputus setelahterjadi bit error seperti yang ditunjukkan pada gambar IV.9. Pada pecahan ke-

26

Page 41: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

tiga, terjadi error pada satu karakter yang menyebabkan perbedaan antara informasiyang dikirim dan informasi yang diterima. Error terjadi pada karakter ke-27. Padapengiriman, karakter ke-27 adalah karakter ”K” sedangkan pada penerima terja-di kesalahan dan yang diterima adalah karakter ”L” yang bisa terjadi karena error

transmisi, man-in-the-middle, ataupun hal lainnya. Karena setiap pecahan yang ber-isi penanda dan pesan berhubungan seperti pada persamaan IV.2 dan telah terjadierror pada pecahan ke-3 maka hasil perhitungan penanda ke-4 pada bagian peneri-ma tidak cocok dengan hasil perhitungan penanda ke-4 di bagian pengirim sehinggamengakibatkan penerimaan terputus. Dengan tidak adanya informasi penanda akhiryang mengisyaratkan proses penampilan pesan, maka pesan yang telah diterima ha-rus didekripsi secara manual. Jika tidak ada error, pesan yang diterima akan sepertipada gambar IV.4. Penerima akan mulai menerima lagi dari awal jika ada informasiIV yang diterima. Hasil keseluruhan dari pengujian ini dapat dilihat pada tabel IV.4.

IV.1.3.1 Error pada pecahan pesan pertama

Setelah proses sinkronisasi ulang diimplementasikan, dilakukan pengujian ter-hadap proses sinkronisasi ulang ini untuk mengetahui apakah proses sinkronisasiulang berjalan seperti yang telah didesain. Pengujian dilakukan dengan me-error-kan bagian penandanya dan juga bagian pesannya.

Gambar IV.10: Terjadi error pada pecahan pertama karakter pertama direceive.py

Untuk error yang diaplikasikan di bagian penanda, pengirim mengirimkanpecahan pertama dengan penanda 0xe58bd3(dalam bentuk heksadesimal) namunyang diterima adalah 0xe68bd3(dalam bentuk heksadesimal) seperti pada gambarIV.10 yang telah ditandai. Tidak ada pesan yang diterima sampai proses sinkroni-sasi ulang terjadi seperti pada gambar IV.11. Receive2.py akan menunggu penandasinkronisasi ulang selanjutnya. Sesuai dengan persamaan IV.3, maka penanda sink-ronisasi yang dihitung dan diharapkan adalah 0xe58cd3. Penanda sinkronisasi da-tang dan diteruskan menuju receive2.py seperti yang ditandai pada gambar IV.10

27

Page 42: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

dan gambar IV.11. Dalam kasus ini, 128 karakter pesan pertama hilang dan hanya208 karakter terakhir pesan yang dapat didekripsi atau sekitar 61% dari pesan asli.

Gambar IV.11: receive2.py ketika terjadi error pada pecahan pertama karakterkedua

Jika error terjadi bukan pada penanda, sebagai contoh terjadi pada karakter ke-12 pada pecahan pertama seperti pada gambar IV.12, maka pecahan yang memilikierror masih diteruskan menuju receive2.py. Kemudian penanda selanjutnya dihi-tung sesuai persamaan IV.2 yang menunjukkan bahwa f2 = hash(c1)⊕ f1. Namunkarena error yang terjadi maka f2 yang telah dihitung dan diharapkan tidak sesuaidengan f2 yang dikirim sehingga akan memengaruhi f3 dan f4 dan harus menunggupenanda sinkronisasi agar bisa menerima pecahan pesan lainnya. Dalam kasus ini,pecahan pertama sepanjang 32 karakter ditambah pecahan-pecahan setelah prosessinkronisasi sepanjang 208 berhasil didekripsi dengan panjang total 240 karakter.Namun ada satu karakter yang berbeda yaitu karakter ke-9 yang seharusnya meru-pakan karakter ’e’ namun didekripsi menjadi ’j’ karena error yang terjadi sehinggatotal karakter yang sama adalah 239 dari 336 atau sekitar 71%, 10% lebih tinggijika dibanding error pada penanda.

28

Page 43: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar IV.12: Terjadi error pada pecahan pesan pertama karakter ke-12 (Cha-Cha20)

Jika cipher yang digunakan adalah block cipher seperti AES dengan modusECB yang juga digunakan pada penelitian sebelumnya, maka 240 karakter dapatdidekripsi namun 16 karakter di antaranya salah sehingga hanya 224 karakter dari336 karakter yang didekripsi dengan benar, sekitar 66%, 5% lebih rendah jika di-bandingkan dengan menggunakan stream cipher seperti ChaCha20. Hal ini terjadikarena AES modus ECB merupakan block cipher.

Gambar IV.13: Terjadi error pada pecahan pesan pertama karakter ke-31 (AES)

29

Page 44: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

IV.1.3.2 Error pada pecahan pesan kedua

Saat terjadi error pada pecahan pesan ke-2, maka hasil perhitungan penandake-3 tidak cocok dengan penanda yang dikirim sehingga pecahan pesan ke-3 danke-4 tidak akan diterima. Penerima menerima kembali pesan setelah ada penandasinkronisasi selanjutnya yaitu penanda ke-5.

Gambar IV.14: Terjadi error pada pecahan pesan kedua karakter terakhir (Cha-Cha20)

Pada gambar IV.14, cipher yang digunakan adalah ChaCha20 dan terjadi error

pada pecahan pesan ke-2 karakter terakhir. Pecahan pesan ke-2 yang dikirim adalah”asic concepts of C programming l” namun yang diterima dan didekripsi adalah”asic concepts of C programming m”, ada perbedaan pada karakter terakhir. Totalpesan yang diterima adalah 272 karakter dengan 1 karakter error atau sekitar 80%.

30

Page 45: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar IV.15: Terjadi error pada pecahan pesan kedua karakter ke-13 (AES)

Pada gambar IV.15, cipher yang digunakan adalah AES. Total pesan yang diteri-ma adalah 272 karakter dengan 16 karakter error, sekitar 76% dari pesan yang diki-rim dan 4% lebih rendah dibanding menggunakan stream cipher seperti ChaCha20

IV.1.3.3 Error pada pecahan pesan ketiga

Saat terjadi error pada pecahan pesan ke-3, maka pecahan pesan ke-4 akan hi-lang karena hasil perhitungan penanda ke-4 tidak cocok dengan penanda ke-4 yangdikirim. Untuk dapat menerima kembali, dibutuhkan penanda sinkronisasi selanjut-nya yang ada pada penanda ke-5.

Gambar IV.16: Terjadi error pada pecahan pesan ketiga karakter ke-21 (ChaCha20)

Pada gambar IV.16, cipher yang digunakan adalah ChaCha20. Pesan yang di-

31

Page 46: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

kirim pada pecahan ke-3 adalah ”ike: loops, functions, pointers,” namun yang di-terima adalah ”ike: loops, functhons, pointers,” karena terjadi error pada karakterke-21 atau karakter ke-18 jika hanya pesan. Dari 336 karakter yang dikirim, 32karakter hilang karena penanda yang hasil kalkulasi penanda salah, 314 karakterberhasil didekripsi namun ada 1 karakter yang salah sehingga total karakter yangsama sekitar 93%.

Gambar IV.17: Terjadi error pada pecahan pesan ketika karakter ke-14 (AES)

Jika menggunakan AES seperti pada penelitian sebelumnya, 314 karakter diteri-ma namun 16 karakter di antaranya salah sehingga total karakter yang sama sekitar88%, 5% lebih rendah dibanding menggunakan stream cipher ChaCha20.

IV.1.3.4 Error pada pecahan pesan keempat

Saat terjadi error pada pecahan pesan ke-4 atau pecahan pesan sebelum penandasinkronisasi, maka tidak ada pesan yang hilang seperti pada gambar IV.18. Denganmenggunakan ChaCha20, 336 karakter berhasil didekripsi dengan 1 karakter salahsehingga total karakter yang sama adalah 335 karakter atau 99%.

32

Page 47: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar IV.18: Terjadi error pada pecahan pesan keempat karakter ke-8 (Cha-Cha20)

Dengan menggunakan AES, maka ada 16 karakter yang salah setelah dekripsidilakukan karena AES adalah block cipher yang panjang setiap block-nya adalah256 byte atau 16 karakter. Dari 336 karakter yang dikirim, 336 karakter berhasilditerima namun 16 karakter di antaranya berbeda sehingga total karakter yang samaadalah 95%, 4 % lebih rendah dibanding menggunakan ChaCha20.

Gambar IV.19: Terjadi error pada pecahan pesan keempat karakter ke-13 (AES)

IV.1.3.5 Error pada IV

Sebelum pengiriman pesan, terjadi pengiriman IV terlebih dahulu. IV meme-gang peranan penting karena IV digunakan untuk perhitungan penanda yang mana

33

Page 48: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

setiap penanda saling berhubungan seperti pada persamaan IV.2. dan untuk meng-hitung penanda sinkronisasi pun dibutuhkan informasi IV seperti pada persamaanIV.4.

Gambar IV.20: Terjadi error pada pesan IV di bagian penanda IV

Jika terjadi error pada penanda IV seperti pada gambar IV.20, makareceive.py tidak dapat menemukan IV. Penanda IV yang benar adalah ”IVIVIV”sedangkan pada gambar IV.20 penanda IV berupa ”IVIVIV” terkena error dan ber-ubah menjadi ”JVIVIV” sehingga tidak ada informasi IV yang diterima.

Gambar IV.21: Terjadi error pada pesan IV di bagian isi IV

gambar IV.21 menunjukkan adanya error pada badan IV. IV yang dikirimadalah 0x7365c71905dd1e4c namun yang diterima adalah 0x7366c71905dd1e4c

34

Page 49: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

atau dari ”se...” menjadi ”sf...” jika dikodekan dengan UTF-8. Karena programreceive.py menerima penanda IV ”IVIVIV” dengan benar maka informasi IV te-tap dihitung (hash) untuk mendapatkan bentuk penanda selanjutnya. Namun karenapenanda penanda salah maka penanda pertama yang diharapkan dari hasil perhi-tungan tidak sesuai dengan penanda yang dikirim sehingga tidak ada pesan yangditerima seperti pada gambar IV.22.

Gambar IV.22: Kondisi receiver2.py ketika terjadi error pada IV

Tabel IV.4: Pesan yang berhasil diterima saat terjadi error terkendali

Error penanda Error pesan

Lokasi error AES ChaCha20 AES ChaCha20

pertama 61% 61% 66% 71%kedua 71% 71 % 76% 80%ketiga 81% 81% 88% 93%keempat 93% 93% 95% 99%IV 0% 0% 0% 0%

IV.1.4 Pengujian pada Kondisi Tidak Ideal Bersamaan

Pada pengujian ini, dilakukan pengujian saat pengiriman bersamaan namun pa-da kondisi tidak ideal. Kondisi tidak ideal yang dimaksud adalah ketika penan-da pertama yang digunakan memiliki bentuk sama. Pada penelitian ini, penandamemiliki panjang 24 bit atau 6 karakter heksadesimal atau 3 karakter UTF-8 se-hingga kemungkinan munculnya sebuah penanda adalah 1/224 dan kemungkinan

35

Page 50: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

munculnya dua penanda yang sama adalah 1/248, yang artinya bisa saja terjadi tapikemungkinannya sangat kecil, terjadi 1 kali setiap 280 trilyun kali. Penanda diha-silkan dari IV sepanjang 64 bit yang kemudian di-hash-kan menjadi penanda 24 bit,artinya ada 264 permutasi IV dan hash collision dapat terjadi karena hanya ada 224

permutasi hasil hash. Oleh karena itu, sebuah penanda yang sama dapat dihasilkanoleh 240 permutasi IV yang berbeda.

Dari 30 kali pengujian yang dilakukan, beragam hasil didapat. Hasil-hasil yangdidapat sebagai berikut:

1. Pesan dari salah satu pengirim dapat didekripsi secara benar dan otomatissedangkan pesan dari pengirim lain tidak terdekripsi secara otomatis

Gambar IV.23: Salah satu pesan terdekripsi benar dan otomatis

2. Pesan-pesan yang dikirim bersamaan terdekripsi secara otomatis namun ha-nya salah satu saja yang benar dan utuh.

36

Page 51: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Gambar IV.24: Salah satu pesan terdekripsi otomatis, lainnya tidak utuh dantercampur

3. Satu pesan terdekripsi otomatis namun isi pesannya merupakan campuran an-tara pesan yang dikirim bersamaan.

Gambar IV.25: Satu pesan terdekripsi namun tercampur

Hal tersebut terjadi karena efek samping dari penanda sinkronisasi. Pesan-pesanyang dikirim hampir bersamaan tersebut berebut penanda sinkronisasi. Jika pengi-rim tidak mengirim hampir bersamaan semisal pengirim yang lain mengirim setelahpenerima menerima penanda sinkronisasi, maka pesan-pesan berhasil didekripsi se-cara sempurna.

Solusi lainnya adalah dengan tidak menggunakan penanda sinkronisasi. Dari30 kali percobaan yang dilakukan tanpa menggunakan penanda sinkronisasi, semua

37

Page 52: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

pesan yang dikirim bersamaan dapat didekripsi dengan sempurna walaupun dikirimdalam waktu yang bersamaan.

IV.1.5 Pengujian Fungsional Kondisi Khusus

Dengan beragamnya bahasa yang digunakan, maka karakter ASCII saja tidakcukup. Sebagai contoh ada karakter cyrillic, hiragana, katakana, kanji, pinyin, danhangul. Dalam pengujian ini, dilakukan pengiriman dengan tulisan yang mengan-dung karakter tersebut. Pengiriman dilakukan pada kondisi ideal dengan parameterkunci, bilangan awal, dan IV seperti pada tabel IV.1 dan pesan pada lampiran B.

Ketika diuji di sistem operasi windows, pesan yang diterima benar namun ti-dak dapat ditampilkan dengan tepat karena terminal (command-prompt) pada win-dows tidak mendukung karakter dengan pengodean UTF-8 sehingga pesan yangditerima harus disalin kemudian ditempel di penyunting teks yang mendukung pe-ngubahan pengkodean seperti aplikasi sublime teks. Cara lain untuk menyelesa-ikan kasus ini adalah dengan me-redirect output ke sebuah berkas kemudian dibu-ka dengan penyunting teks, dengan menambahkan memanggil receive2.py file

"berkas output".

Gambar IV.26: (Atas) Diterima di terminal windows; (Bawah) Apa yang ditampilk-an disalin-tempel di penyunting teks.

Berbeda dengan terminal di Windows, terminal pada linux seperti ubuntu da-

38

Page 53: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

pat menampilkan pesan dengan benar dan tepat. Semua karakter yang diuji dapatditampilkan dengan benar dan tepat pada ubuntu.

Gambar IV.27: Menampilkan karakter UTF-8 di terminal linux ubuntu

Selain pengiriman karakter non-ASCII, beberapa kondisi khusus juga diuji se-perti pada tabel IV.5. Untuk pengiriman berkas gambar dan suara, dilakukan mo-difikasi pada receive2.py agar informasi tambahan (verbose) seperti ”waiting formessage”, ”Received”, dan ”Printing message” dihilangkan sehingga hanya me-nampilkan pesan keseluruhannya saja kemudian di-redirect ke sebuah berkas. Per-intah yang digunakan untuk menyimpan pesan ke dalam suatu berkas adalah ada-lah receive2.py file "berkas output". Pengecekan checksum antara berkasgambar dan suara yang dikirim dilakukan untuk menyamakan apakah berkas yangdikirim dan diterima sama.

Tabel IV.5: Uji kondisi khusus

Pengiriman Harapan hasil Keberhasilan

Pesan dengan karakter non-ASCII Pesan diterima sama ya, denganpengecuali-an

Pesan dengan panjang 0 karakter Hanya penanda yang diterima YaPesan dengan panjang 1 karakter Penanda ditambah 1 karakter

diterimaya

Pesan teks 64 KB dalam berkas Pesan diterima sama yaCitra sebesar 7 KB dalam berkas Citra diterima sama yaSuara sebesar 5 MB dalam berkas Suara diterima sama ya

39

Page 54: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Tabel IV.6: Rekapitulasi uji fungsional

Pengujian Hasil yang diharapkan Keberhasilan

Ideal Satu pengirim Mampu memilah antara deraudan pesan terenkripsi

ya

Beberapa pengirim Mampu memilah pesan-pesan yang dikirim olehpengirim berbeda

ya

Tidak Ideal Satu pengirim Pesan dapat diterima kembalisetelah mendapatkan penandasinkronisasi

ya

Beberapa pengirim Mampu memilah pesan-pesan yang dikirim olehpengirim berbeda

ya, denganpengecuali-an

IV.2 Pengujian Kinerja

Sub bagian ini akan menguji kinerja penelitian sebelumnya dan dibandingkandengan kinerja pada penelitian sekarang. Aspek yang diukur adalah penggunaanCPU dan besarnya penggunaan RAM. Untuk pengukuran CPU, dilakukan denganperintah ps sedangkan untuk penggunaan RAM diukur dengan menggunakan pe-rangkat lunak valgrind. Pengukuran kinerja dilakukan di atas sistem operasi linuxubuntu 16.04.

IV.2.1 Penggunaan CPU

Secara keseluruhan, penggunaan CPU pada penelitian stegokripto dengan pe-nanda dinamis lebih rendah dibandingkan dengan penggunaan CPU pada peneli-tian sebelumnya yang menggunakan penanda tetap. Beberapa hal yang perbedaanpenggunaan CPU adalah perbedaan jumlah program yang diimplementasikan, besarkecilnya pecahan tiap pesan, perulangan, dan cipher yang digunakan. Pada peneliti-an sebelumnya, ada 5 program yang diimplementasikan sedangkan pada penelitianini ada 4 program yang diimplementasikan. Besar kecilnya pecahan pesan meme-ngaruhi penggunaan CPU karena semakin kecil pecahan pesan maka akan semakinbanyak perulangan yang terjadi. Pada sistem sebelumnya [?], setiap pecahan pesanmemiliki panjang 16 karakter UTF-8 atau 18 karakter UTF-8 jika ditambah penandasedangkan pada penelitian ini setiap pecahan pesan memiliki panjang 32 karakterUTF-8 atau 35 karakter UTF-8 jika ditambah penanda. Pada penelitian sebelum-

40

Page 55: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

nya, rata-rata penggunaan CPU adalah 12.08% sedangkan pada penelitian sekarangadalah 8.52% atau 29% lebih rendah dari penelitian sebelumya.

0 5 10 15 20 25 30

8

10

12

14

16

Percobaan ke-

CPU

terp

akai

(%)

Penggunaan CPU

SebelumSekarang

Gambar IV.28: Perbandingan penggunaan CPU pada penelitian sebelumnya danpenelitian sekarangSelain memengaruhi penggunaan CPU, besar kecilnya pecahan pesan akan meme-ngaruhi penggunaan jaringan. Semisal mengirim pesan dengan panjang 32 karaktermaka dibutuhkan 4 karakter penanda jika menggunakan sistem sebelumnya denganjumlah 36 karakter sedangkan pada sistem sekarang hanya membutuhkan 3 karakterpenanda dengan jumlah 35 karakter, ada penghematan sebesar 2,7%.

IV.2.2 Penggunaan RAM

Secara keseluruhan, penggunaan RAM pada penelitian ini lebih rendah dibanding-kan penggunaan RAM pada penelitian sebelumnya. Alasan utamanya adalah peng-gunaan program yang lebih sedikit, sebelumnya 5 program dan sekarang hanya4 program saja. Rata-rata penggunaan RAM pada penelitian sebelumnya ada-lah 18.52 MB sedangkan pada penelitian ini adalah 17.02 MB, sekitar 8% lebihrendah dibandingkan penelitan sebelumnya. Jika membandingkan apple-to-apple

antara aplikasi yang diimplementasikan, aplikasi decryption.py pada penelitiansebelumnya memiliki fungsi yang sama dengan aplikasi receive2.py. Aplikasidecryption.py hanya menggunakan 3 MB saja sedangkan aplikasi receive2.pymenggunakan 5 MB memori. Besarnya memori ini terjadi karena banyaknya varia-bel untuk mengidentifikasi pesan-pesan yang dikirim bersamaan.

41

Page 56: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

0 5 10 15 20 25 3016

16.5

17

17.5

18

18.5

19

Percobaan ke-

RA

Mte

rpak

ai(M

B)

Penggunaan RAM

SebelumSekarang

Gambar IV.29: Perbandingan penggunaan RAM pada penelitian sebelumnya danpenelitian sekarang

42

Page 57: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Bab V Kesimpulan dan Saran

V.1 Kesimpulan

Dalam penelitian ini, stegokripto dengan penanda dinamis berhasil diimplementa-sikan. Dari penelitian yang dilakukan, maka ditarik disimpulkan sebagai berikut:

1. Pola penanda dinamis pertama dapat dihasilkan dari sebuah IV yang kemu-dian di-hash-kan. Pola penanda dinamis selanjutnya bergantung pada polapenanda dinamis dan informasi sebelumnya yang kemudian di-hash-kan se-hingga setiap penanda saling berhubungan.

2. Dengan mengimplementasikan penanda sinkronisasi maka akibat dari error

saat transmisi dapat ditekan, pesan-pesan dapat diterima namun sebagian pes-an hilang. Jumlah pesan yang hilang berbanding lurus dengan jarak error

dan penanda sinkronisasi selanjutnya, semakin jauh jarak error dari penandasinkronisasi selanjutnya maka semakin banyak pesan yang hilang. Pengguna-an stream cipher ChaCha20 juga meningkatkan tingkat recoverability pesanyang terkena error jika dibandingkan dengan penggunaan block cipher seper-ti AES.

3. Keunggulan fungsional yang didapat dari sistem penanda dinamis adalahmampu memilah pesan yang dikirim dalam waktu hampir bersamaan. Bukanhanya pesan teks yang dapat dikirim, namun berkas citra dan suara pun dapatdikirimkan dengan sistem ini. Selain keunggulan fungsional, sistem penan-da dinamis ini lebih unggul dalam penggunaan sumber daya karena jumlahprogram dapat dikurangi walaupun lebih kompleks. Pada sistem sekarang,penggunaan CPU 29% lebih rendah dan penggunaan RAM 8% lebih rendahjika dibandingkan dengan penelitian sebelumnya.

V.2 Saran

1. Dilakukannya steganalisis untuk menguji keamanan.

2. Pengiriman IV dilakukan dengan metode lain.

3. Dilakukan adopsi menyeluruh terhadap sistem kaotik sehingga derau berupabit acak diganti dengan sistem kaotik tersinkronisasi dan tidak membutuhkan

43

Page 58: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

penanda, misal digunakan sistem kaotik tersinkronisasi untuk menentukanlokasi penyisipan pesan.

44

Page 59: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

DAFTAR PUSTAKA

[1] A. Al-Maarif, Desain dan Implementasi Stegokripto. Institut Teknologi Ban-dung, 2016.

[2] A. J. Menezes, S. A. Vanstone, and P. C. V. Oorschot, Handbook of Applied

Cryptography, 1st ed. Boca Raton, FL, USA: CRC Press, Inc., 1996.

[3] National Institute of Standards and Technology, Recommendation for Block

Cipher Modes of Operation: Method and Technique, 2001.

[4] D. J. Bernstein, “Chacha, a variant of salsa20,” Workshop Record of SASC

2008: The State of the Art of Stream Ciphers., 2008.

[5] Y. Nir, RFC 7539: ChaCha20 and Poly1305 for IETF Protocols, May 2015.

[6] K. Rabah, “Steganography-the art of hiding data,” Information Technology

Journal, vol. 3, pp. 245–269, 2004.

[7] D. S. Rao and P. S. Parihar, “Embedding approach of audio data in rb imagesusing circle equation,” International Journal on Recent and Innovation Trends

in Computing and Communication, vol. 2, pp. 2020–2026, July 2016.

[8] M. Trehan and S. Mittu, “Steganography and cryptography approaches com-bined using medical digital images,” International Journal of Engineering Re-

search and Technology, vol. 4, June 2015.

[9] S. Usha, G. A. S. Kumar, and K. Boopathybagan, “A secure triple level en-cryption method using cryptography and steganography,” in Proceedings of

2011 International Conference on Computer Science and Network Technolo-

gy, vol. 2, Dec 2011, pp. 1017–1020.

[10] P. Bhalde, “Performance improvement: Audio steganography technique paritybit combined with cryptography,” in Proceedings of the Second International

Conference on Information and Communication Technology for Competitive

Strategies, ser. ICTCS ’16. New York, NY, USA: ACM, 2016, pp. 136:1–136:5. [Online]. Available: http://doi.acm.org/10.1145/2905055.2905196

[11] H. Abdulzahra, R. Ahmad, and N. M. Noor, Eds., Combining Cryptography

and Steganography for Data Hiding in Images, 2014.

45

Page 60: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

[12] B. Rahardjo, Kuspriyanto, I. Muchtadi-Alamsyah, and M. W. Paryasto, “In-formation concealment through noise addition,” Procedia Computer Science,vol. 74, pp. 178 – 180, 2015.

[13] G. Feng and J. Cao, “Master-slave synchronization of chaotic systems witha modified impulsive controller,” Advances in Difference Equations, vol.2013, no. 1, p. 24, 2013. [Online]. Available: http://dx.doi.org/10.1186/1687-1847-2013-24

[14] A. A. Minai and T. D. Pandian, “Communicating with noise: How chaos andnoise combine to generate secure encryption keys,” CHAOS, Sep 1998.

46

Page 61: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

LAMPIRAN

Page 62: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

Lampiran A: Hasil Pengujian IV.1.1, karakter yangdigunakan hanya ASCII

Pesan yang dikirim Pesan dipenerima

The shadow of the mountain had all but blocked the setting sun in thewest and left the valley under a hazy yellow glow. Fog creeped its wayfrom the Earth before dissipating some ten feet above us as we foundflat ground for the first time since beginning our journey.

Sama

I could feel the waters of the swamp begin flooding my boots and Icould hear the young boy plopping around trying to stay dry.

Sama

These people were kind, they had welcomed me with open arms whenI was nothing more than a lonely beggar struggling to get over his alco-holism.

Sama

When I had showed them what I could do, thus began their generosityand thankfulness, as well as a few gifts to get some of the families onmy good side. I didn’t mind. I vowed to help them for as long as they’dhave me.

Sama

One second, I was remembering the life I lived before this, that of ahumble apothecary. I remembered the smell of the herbs, the feel of thespoon in my hand as I mixed the medicines together.

Sama

Then, as I realized that I was mixing the two foul liquids that definedmy life today, it all stopped.

Sama

Once we were given the all clear signal, the shuttles returned to thestation and docked. The only thing that had changed was the brand-newrecycled atmosphere smell, but that would pass in a few days.

Sama

The year is 2270. About 150 years ago the human race first startedtesting planet scale terraforming. Earth was running out of resourcesand we were long overdue for an upgrade. Why not go to the biggestplanet that we know of?

Sama

I heard that back in the day, werewolves were a myth. People claimedto see them, but there was very little proof. Most of the evidence wasblamed on wild animals. We know better now.

Sama

48

Page 63: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

The chorus of howls rang throughout the night sky. I looked up to counthow many full moons had risen tonight. There were four. AWOOOO-OOOOOOOOOOOOOOOO

Sama

For years, the boys had watched their imagination come to life, only todissolve at the last moment. The moment just before their mother couldlook up or walk around the corner.

Sama

It had always been harmless fun, an oddity they were comfortable within the context of an endless summer. No harm, no foul. Tomorrow wasanother opportunity to do it all over again.

Sama

She smiled at the faint scent in the air, the memory of a women, that hadto have been here in von Bhm’s sanctuary, his shelter from the world.She tried to imagine what the woman was like, that had made von Bhmopen up enough to invite her home.

Sama

Costa Rica has been powered on a mix of hydro, geothermal, wind, solarand biomass energy sources. 74.35 percent of the countrys electricityhas come from hydroelectric sources.

Sama

Geothermal plants contributed roughly 12.74 percent of electricity ge-neration, while wind turbines provided 10.30 percent, and biomass andsolar generated 0.74 percent and 0.01 percent each.

Sama

Trump has repeatedly praised Putin and nominated people seen as fri-endly toward Moscow to senior administration posts, but it is unclearwhether he would seek to roll back Obama’s actions, which mark apost-Cold War low in U.S.-Russian ties.

Sama

We will not forbid families and children from spending the New Yearsholidays at the places they are used to. Moreover, I invite the childrenof all American diplomats with accreditation in Russia to New Yearsand Christmas festivities in the Kremlin.

Sama

Security services were under pressure to prevent a repeat of the sexu-al attacks that occurred last New Year’s Eve, when a group of 1,000men of mostly North African and Middle Eastern origin unexpectedlydescended on the square separating the Cologne’s famous gothic cathe-dral from its main train station and molested hundreds of women.

Sama

China has announced a ban on all ivory trade and processing activitiesby the end of 2017. Conservation groups hailed the decision as ”histo-ric” and a ”game-changer” for the future of elephants.

Sama

49

Page 64: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

The move follows a resolution at the Convention on International Tradein Endangered Species (Cites) in South Africa in October.

Sama

Two executives with an Indonesian budget airline have resigned afterthe release of disturbing footage showing an Indonesian pilot staggeringthrough an airport metal detector en route to the cockpit of his plane.

Sama

Citilink had denied the pilot was drunk when initial reports emerged onWednesday but suspended him following the release of the footage. Hewas later sacked.

Sama

The president of the Philippines made his second murder confessionin a month Tuesday. President Rodrigo Duterte claimed he threw akidnapper out of a helicopter mid-flight during his tenure as mayor ofDavao.

Sama

The presidents statements were intended as a warning to corrupt offici-als, reports the Philippine Star.

Sama

Earlier this week The Ministry of Justice in Iran blocked Clash of Clansbecause psychologists in the country believe the game promotes violen-ce and what they are describing as tribal conflict.

Sama

In August, Iran was the first country to ban Pokmon Go over securityconcerns which, although a severe action to take was at least based onreasons that many authorities around the world had also expressed.

Sama

Crowds in Paris and across France have said goodbye to 2016. The lasttwo years have tested the country, with several terror attacks and thedeclaration of a nationwide state of emergency.

Sama

Governments around the world shut down the internet more than 50times in 2016 suppressing elections, slowing economies and limitingfree speech.

Sama

China is aiming to own the race for space in the next decade. China’sambitious and fast-growing space program is targeting a landing on thedark side of the moon by 2018, and reaching Mars before the end of thedecade.

Sama

Wu Yanhua, deputy chief of the National Space Administration, saidBeijing aims to launch its first Mars probe around 2020 to carry out or-biting and roving exploration, followed by a second mission that wouldinclude collection of surface samples from the red planet.

Sama

50

Page 65: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

51

Lampiran B: Hasil Pengujian IV.1.1.1, dengan

Menggunakan Karakter non-ASCII

Pesan yang dikirim Di penerima По сообщениям сирийской Обсерватории по наблюдению за соблюдением прав человека, среди погибших боевиков - члены руководства группировки, собравшиеся в штабе группировки на совещание. Однако их имена не называются.

Sama

Вообще же, как отмечается, по всей стране в этот день в воздух выбрасывается около четырех тысяч тонн вредных веществ, что можно приравнять к 15% всех автомобильных выбросов за год.

Sama

Ранее Европейское агентство по окружающей среде сообщило, что в Европе загрязнение воздуха ежегодно приводит к преждевременной смерти около 467 тысяч человек.

Sama

우병우(사진) 전 청와대 민정수석이 정부에 비판적인 교수들이

국공립대 총장에 임명되지 못하도록 하는 데 핵심적인 역할을 했다는

증언이 나왔다. 특히 범법 여부보다는 주로 사상이나 성향을 문제 삼아

후보자의 결격을 주장했다는 것이다. <본지 1월 2일자 12면, 3일자 6면>

Sama

장기 투자는 시속 65마일의 자동차와 같아 작은 핸들의 움직임으로도

방향성이 크게 바뀝니다. 그렇기 때문에 변동이 있을 때마다 리밸런싱을

반복하여 주가 하락기 평균 단가를 내림으로써 주가 상승 시 수익의

최대화를 확정하는 효과를 가져올 수 있습니다. 펀드는 장기 투자를

전제로 하는 투자이므로 역행 투자(주식시장이 떨어졌을 때 투자하는

방법)가 효과적임은 지난 역사를 보면 알 수 있습니다.

Sama

서목태의 성분은 체내에서 피부 보호 작용과 비만, 뇌기능 개선에

도움을 주는 약재다 .녹차에는 피부를 보호하는 물질을 함유하고 있다 .

국내에서 출시된 먹는 화장들에는 위에서 열거한 한약재들을 함유하고

있다. 한약재이다보니 먹어도 탈이 안난다.

Sama

安定した政治が今こそ求められています。 そのためには、皆さんの力がどうしても必要です。

Sama

Page 66: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

52

大統領の到着が遅れる様なので、その時間を使って墓参し

、晩年、平和条約締結に執念を燃やした父に報告しました

Sama

#G7 #伊勢志摩サミットを前に、#移民 や #難民、#テロ対策、#経済といった課題ついて全世界的な協力を強化すべく、@AbeShinzo と友好的かつ建設的な話し合いができた http://ow.ly/4nnvHK

Sama

Theo đó, sau khi nhận được báo cáo của Ban Thường vụ Đảng ủy xã Tiên Cẩm về việc ông Nhuận viết đơn xin nghỉ việc, lãnh đạo huyện Tiên

Sama

Ông Phái cho biết việc các địa phương xin hỗ trợ gạo cứu đói dịp tết không có gì đặc biệt, hàng năm Bộ LĐTB&XH vẫn nhận được các công

Sama

Người tung clip gây hiểu nhầm 'Công an đánh chết dân' xin lỗi : Chủ nhân Facebook Thắm Nguyễn cho rằng clip của mình đưa lên mạng

Sama

他回來就立刻告訴我,他試著和前任女友復合失敗。兩人個

性都很好強,在一起很不快樂,所以從此不會再見。感動於

他的坦誠,我們就正式成為情侶。大概我個性溫和,和他很

少爭執。又過了一年,我們兩人就結婚了

Sama

我和我太太都有遞解令,有兩個美國出生的小孩,才三歲和

五歲,尤其是五歲的小孩有輕度自閉症。除了兩個美國公民

小孩,我們沒有其他有身分的親屬。

Sama

餐廳服務生:平均小費應為消費額的17%到20%。網站建議,即使服務差勁,也至少給15%的小費。若是你有折價券,給小費應按折價前的價格。在服務生的薪資中,小費占85%到100%。

Sama

باء التي نفى المتحدث باسم وزارة الخارجية اإليرانية بهرام قاسمي األربعاء األن موجه إلى السعودية في موسم الحج القادترددت عن منع طهران حجاجها من الت

Sama

دى بحياة وتأتي هذه التصريحات وسط خالفات بين البلدين بعد حادث التدافع الذي أو حاجا إيرانيا. 464شخص السنة الماضية، بينهم 2300أكثر من

Sama

ة والية أميركي 30ومؤخرا، أثار منشور لزوكربرغ تحدث فيه عن خططه لزيارة التكهنات بأنه يطمح في أن يدخل عالم السياسة.

Sama

Page 67: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

53

Lampiran C: Kode Sumber Program

Kode sumber program dapat dilihat di https://github.com/monopecez/tesis-dynamic-flag

C.1 Send.py

# -*- coding: utf-8 -*- import pika import sys import random import time import base64 import os import subprocess from Crypto.Cipher import AES from Crypto.Cipher import ChaCha20 sendnoise = subprocess.Popen(["python", "sendnoise.py"]) def xor_message_chunk(message): n = 3 #flag size (bytes) if len(message) % 3 != 0: message = (n - len(message) % n) * "\x00" + message listnya = [int(message[i:i+n].encode('hex'),16) for i in range(0, len(message), n)] nextflagraw = 0 for item in listnya: nextflagraw = nextflagraw ^ item return nextflagraw def inttoseqchar(number): numberinhex = hex(number)[2:].zfill(6) listnya = [chr(int(numberinhex[i:i+2],16)) for i in range(0, 6, 2)] return ''.join(listnya) key = 'secretkey123456!' + 'secretkey123456!' encipher = ChaCha20.new(key = key) credentials = pika.PlainCredentials('admin','admin') recipientaddr = 'localhost' portaddr = 5672 parameters = pika.ConnectionParameters(recipientaddr, portaddr,'/',credentials) connection = pika.BlockingConnection(parameters) channel = connection.channel() channel.queue_declare(queue='firstqueue') isLast = False IV = encipher.nonce noresync = False notfound = False try: message = ''.join(sys.argv[1]) if sys.argv[1] == 'abjad': message = 9*"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" elif sys.argv[1] == 'numb': message = 45*"0123456789" elif sys.argv[1] == 'file': try: message = open(sys.argv[2], 'rb').read() except: print(sys.argv[2]) + " not found" notfound = True except: message = "This page contains examples on basic concepts of C programming like: loops, functions, pointers, structures etc. All the examples in this page are tested and verified on GNU GCC compiler, although almost every program on in this website will work on any compiler you use. Feel free to copy the source code and execute it in your device." try: if ''.join(sys.argv[1:]).find("noresync") != -1: noresync = True except: noresync = False if notfound: exit() channel.basic_publish(exchange='',

Page 68: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

54

routing_key='firstqueue', #routing_key='secondqueue', body= "IVIVIV" + str(IV), properties=pika.BasicProperties(delivery_mode = 2,)) print("[v] %s : IV is sent --->" % IV), print(IV.encode('hex') + ' ') initialflag = "FFFFFF" print("XOR-ed to: "), nextflagraw = xor_message_chunk(IV) ^ int(initialflag,16) print(hex(nextflagraw)[2:] + ' '), print("%s" % inttoseqchar(nextflagraw)) IVraw = nextflagraw print("__________SENDING__________") i = 0 while i != len(message)/32 + 1: if i == (len(message)/32): if noresync: nextflagraw = nextflagraw ^ int(initialflag,16) isLast = True if not noresync: if i%4 == 0: if not isLast: nextflagraw = IVraw + 256 * (i/4) else: nextflagraw = (IVraw + 256 * (i/4)) ^ int(initialflag,16) if isLast: nextflagraw = (IVraw + (256 * ((i/4)+1)) ^ int(initialflag,16)) nextflagraw = nextflagraw % 16777216 encipher = ChaCha20.new(key = key, nonce = IV) itemtobesent = inttoseqchar(nextflagraw) + encipher.encrypt(message[(i)*32:(i+1)*32]) channel.basic_publish(exchange='', routing_key='firstqueue', body= itemtobesent, properties=pika.BasicProperties(delivery_mode = 2,)) print("[v] %s is sent" % itemtobesent) time.sleep(random.uniform(0,0.001)) nextflagraw = nextflagraw ^ xor_message_chunk(itemtobesent[3:]) body = message[(i)*32:(i+1)*32] i = i + 1 time.sleep(random.uniform(0,0.5)) connection.close() sendnoise.kill()

Page 69: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

55

C.2 Sendnoise.py

import pika import sys import os import base64 import time import random credentials = pika.PlainCredentials('admin','admin') recipientaddr = 'localhost' portaddr = 5672 parameters = pika.ConnectionParameters(recipientaddr, portaddr,'/',credentials) connection = pika.BlockingConnection(parameters) channel = connection.channel() channel.queue_declare(queue='firstqueue') i = 0 while True: message = os.urandom(int(random.uniform(1,20)*3)) channel.basic_publish(exchange='', routing_key='firstqueue', body=message, properties=pika.BasicProperties(delivery_mode = 2,)) print("%s" % message), time.sleep(random.uniform(0,0.05)) connection.close()

Page 70: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

56

C.3 Receive.py

from __future__ import print_function import pika import time import base64 import random import sys connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() channel2 = connection.channel() channel.queue_declare(queue="firstqueue") channel2.queue_declare(queue="secondqueue") nextflag = "" nextflagraw = 0 initialflag = "FFFFFF" messageid = dict() messageidnum = 1 counter2 = 0 def xor_message_chunk(message): n = 3 #flag size (bytes) if len(message) % 3 != 0: message = (n - len(message) % n) * "\x00" + message listnya = [int(message[i:i+n].encode('hex'),16) for i in range(0, len(message), n)] nextflagraw = 0 for item in listnya: nextflagraw = nextflagraw ^ item return nextflagraw def inttoseqchar(number): numberinhex = hex(number)[2:].zfill(6) listnya = [chr(int(numberinhex[i:i+2],16)) for i in range(0, 6, 2)] return ''.join(listnya) def callback(ch, method, properties, body): global nextflag global nextflagraw global messageidnum global messageid global counter2 ch.basic_ack(delivery_tag = method.delivery_tag) errordi = int(sys.argv[1]) counter2 = counter2 + 1 if body.find('IVIVIV') != -1: counter2 = 0 if counter2 == errordi: nochartobecorrupted = random.randint(0,len(body) - 1 ) if nochartobecorrupted == len(body): nochartobecorrupted = nochartobecorrupted - 1 chartobecorrupted = body[nochartobecorrupted] corruptedchar = chr(int(chartobecorrupted.encode('hex'),16) + 1) body = body[:nochartobecorrupted] + corruptedchar + body[nochartobecorrupted+1:] nextflagraw = body[6:] nextflag = xor_message_chunk(nextflagraw) ^ int(initialflag,16) messageid[messageidnum] = [nextflag % 16777216, (nextflag + 256) % 16777216] messageidnum = messageidnum + 1 channel2.basic_publish(exchange='', routing_key='secondqueue', body=body, properties=pika.BasicProperties(delivery_mode = 2,)) for items in messageid: nextflagraw = messageid[items] if (body[:3].find(inttoseqchar(nextflagraw[0]))) != -1: if counter2 == errordi: nochartobecorrupted = random.randint(3,len(body)-1) chartobecorrupted = body[nochartobecorrupted] corruptedchar = chr(int(chartobecorrupted.encode('hex'),16) + 1) body = body[:nochartobecorrupted] + corruptedchar + body[nochartobecorrupted+1:] channel2.basic_publish(exchange='', routing_key='secondqueue', body=body, properties=pika.BasicProperties(delivery_mode = 2,)) messageid[items][0] = (nextflagraw[0] ^ xor_message_chunk(body[3:]))

Page 71: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

57

break elif (body[:3].find(inttoseqchar(nextflagraw[1]))) != -1: if counter2 == errordi: nochartobecorrupted = random.randint(3,len(body)-1) chartobecorrupted = body[nochartobecorrupted] corruptedchar = chr(int(chartobecorrupted.encode('hex'),16) + 1) body = body[:nochartobecorrupted] + corruptedchar + body[nochartobecorrupted+1:] channel2.basic_publish(exchange='', routing_key='secondqueue', body=body, properties=pika.BasicProperties(delivery_mode = 2,)) messageid[items][0] = (nextflagraw[1] ^ xor_message_chunk(body[3:])) % 16777216 messageid[items][1] = (nextflagraw[1] + 256) % 16777216 break elif body[:3].find(inttoseqchar(nextflagraw[0] ^ int(initialflag,16))) != -1 or body[:3].find(inttoseqchar(nextflagraw[1] ^ int(initialflag,16))) != -1 or body.find(inttoseqchar((nextflagraw[1] + 256) ^ int(initialflag,16))) != -1 : if counter2 == errordi: nochartobecorrupted = random.randint(3,len(body)-1) chartobecorrupted = body[nochartobecorrupted] corruptedchar = chr(int(chartobecorrupted.encode('hex'),16) + 1) body = body[:nochartobecorrupted] + corruptedchar + body[nochartobecorrupted+1:] messageid.pop(items) channel2.basic_publish(exchange='', routing_key='secondqueue', body=body, properties=pika.BasicProperties(delivery_mode = 2,)) break print(body,end=''), channel.basic_consume(callback, queue="firstqueue") print ("waiting for message(s)...") channel.start_consuming()

Page 72: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

58

C.4 Receive2.py

# -*- coding: windows-1251 -*- from __future__ import print_function import pika import time import base64 import sys from Crypto.Cipher import AES from Crypto.Cipher import ChaCha20 connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel2 = connection.channel() channel2.queue_declare(queue="secondqueue") nextflagraw = int('ffffff',16) decipher = dict() key = 'secretkey123456!' + 'secretkey123456!' counter = dict() counter2 = dict() messageid = dict() messageidnum = 1 fullbody = dict() iv = dict() def xor_message_chunk(message): n = 3 #flag size (bytes) if len(message) % 3 != 0: message = (n - len(message) % n) * "\x00" + message listnya = [int(message[i:i+n].encode('hex'),16) for i in range(0, len(message), n)] nextflagraw = 0 for item in listnya: nextflagraw = nextflagraw ^ item return nextflagraw def inttoseqchar(number): numberinhex = hex(number)[2:].zfill(6) listnya = [chr(int(numberinhex[i:i+2],16)) for i in range(0, 6, 2)] return ''.join(listnya) kefile = False try: if sys.argv[1] == 'file': filenya = open(sys.argv[2], 'wb') kefile = True except: pass def callback(ch, method, properties, body): initialflag = "FFFFFF" global fullbody global nextflagraw global messageid global messageidnum global decipher global iv global counter2 global counter if body[:6] == 'IVIVIV': nextflagraw = body[6:] iv[messageidnum] = nextflagraw decipher[messageidnum] = ChaCha20.new(key = key, nonce = nextflagraw) nextflag = (xor_message_chunk(nextflagraw) ^ int(initialflag,16)) messageid[messageidnum] = [nextflag % 16777216, (nextflag + 256) % 16777216] fullbody[messageidnum] = '' counter[messageidnum] = 0 counter2[messageidnum] = 0 messageidnum = messageidnum + 1 for items in messageid: nextflagraw = messageid[items] if body[:3] == inttoseqchar(nextflagraw[0]): decipher[items] = ChaCha20.new(key = key, nonce = iv[items]) fullbody[items] = fullbody[items] + decipher[items].decrypt(body[3:]) messageid[items][0] = (nextflagraw[0] ^ xor_message_chunk(body[3:])) % 16777216 counter[items] = counter[items] + 1 counter2[items] = counter2[items] + 1 break

Page 73: STEGOKRIPTO DENGAN PENANDA DINAMIS TESIS Karya …budi.rahardjo.id/files/students/isman-thesis.pdf · ubah bentuk informasi menjadi acak sedangkan steganogra akan menyisipkan in-formasi

59

elif body[:3] == inttoseqchar(nextflagraw[1]): if counter[items] != 4: fullbody[items] = fullbody[items] + " --ADA YANG HILANG-- " counter[items] = 1 decipher[items] = ChaCha20.new(key = key, nonce = iv[items]) fullbody[items] = fullbody[items] + decipher[items].decrypt(body[3:]) messageid[items][0] = (nextflagraw[1] ^ xor_message_chunk(body[3:])) % 16777216 messageid[items][1] = (nextflagraw[1] + 256) % 16777216 counter2[items] = 1 #print("Received[" + str(items) + "]: " + body) break elif body[:3] == inttoseqchar(nextflagraw[0] ^ int(initialflag,16)) or body[:3] == inttoseqchar(nextflagraw[1] ^ int(initialflag,16)) or body[:3] == inttoseqchar((nextflagraw[1] + 256) ^ int(initialflag,16)) : if counter[items] != counter2[items]: fullbody[items] = fullbody[items] + " --ADA YANG HILANG-- " decipher[items] = ChaCha20.new(key = key, nonce = iv[items]) fullbody[items] = fullbody[items] + decipher[items].decrypt(body[3:]) if kefile: filenya.write(fullbody[items]) filenya.close() fullbody.pop(items) messageid.pop(items) exit() else: print("Printing[" + str(items) + "]: " + fullbody[items]) fullbody.pop(items) messageid.pop(items) break ch.basic_ack(delivery_tag = method.delivery_tag) channel2.basic_consume(callback, queue="secondqueue") channel2.start_consuming()