• Tidak ada hasil yang ditemukan

INFORMATICS ENGINEERING STUDY PROGRAM FACULTY OF ENGINEERING SANATA DHARMA

N/A
N/A
Protected

Academic year: 2019

Membagikan "INFORMATICS ENGINEERING STUDY PROGRAM FACULTY OF ENGINEERING SANATA DHARMA"

Copied!
149
0
0

Teks penuh

(1)

JOIN OF CRYP

Propo To Obtain

INFORMATIC

FA

SAN

YPTOGRAPHY AND STEGANOG

IN MESSAGE SECURITY

A Thesis

oposed To Fullfill One Of The Requirements tain Bachelor Degree In Information Technol

By

STEFANUS DANU APRIYANTO 015314083

TICS ENGINEERING STUDY PR

FACULTY OF ENGINEERING

NATA DHARMA UNIVERSITY

YOGYAKARTA

2007

NOGRAPHY

ts nology

PROGRAM

(2)

GABUNGA

STEGANOGRA

Diaj

PROGRAM

UNIV

GAN ANTARA

CRYPTOGRAPHY

RAPHY

DALAM PENGAMAN A

S K R I P S I

iajukan untuk memenuhi salah satu syarat memperoleh Gelar Sarjana Teknik

Jurusan Teknik Informatika

Disusun Oleh

STEFANUS DANU APRIYANTO 015314083

AM STUDI TEKNIK INFORMAT

FAKULTAS TEKNIK

IVERSITAS SANATA DHARMA

YOGYAKARTA

2007

PHY

DAN

AN PESAN

ATIKA

(3)
(4)
(5)

HALAMAN PERSEMBAHAN

Karya ini kupersembahkan untuk :

Tuhan Yesus Kristus yang telah memberikan kesempatan untuk hidup dan menjalani semuanya, rahmat, kebijaksaan, kesehatan rohani dan jasmani, bimbingan dalam Roh Kudus dan semua kebaikan dan kasih sayang-Mu

Papa, Mama yang dengan sabar mengasuh, membimbing, memberikan kasih sayang, membesarkan dan mendampingi, memberikan semua tenaga, waktu, pikiran, dana, fasilitas. Adik-adikku yang dengan sabar membantu, mendorong, memberikan fasilitas.

My lovely yang telah mendampingi, memberikan cinta, memberikan kasih sayang, pengertian, dorongan, waktu-waktu yang indah

(6)

HALAMAN TERIMAKASIH

Papa dan Mama

Yang telah memberikan doa, cinta, kasih sayang, kesabaran, waktu, fasilitas, dana, dukungan, tenaganya. Thx for everything. You’re special parents.

Adik-adikku semua

Atas doa, bantuan, dukungan n semangat yang telah diberikan. You’re special sisters. Kristiani (My Lovely)

Atas doa, cinta, kasih sayang, kesabaran, waktu-waktu yang indah dalam kebersamaan, dukungan, suka, duka. You’re special gift from God for my life.

Pak Gun UNY

Atas pembentukan mental dan cara berfikir dengan metode LFA-nya secara tidak langsung, terima kasih juga untuk semangat dan pengertiannya.

Jenggot dan keluarga, Wulan, Bebek, Adit, Yudhie, Roni

Atas tumpangan rumahnya, fasilitas, ilmu programmingnya, logika pemrograman, suka, duka yang telah kalian berikan.

Christien, Desni ‘Deston’

Atas dukungan, fasilitas, hari-hari yang indah, permasalahan yang dikeluhkan sehingga

menambah ilmu penyusun, waktu, pikiran untuk curhat, suka, duka, pilem, lagu, software.

Teman-teman seperjuangan angkatan 01

Atas dukungan, saran, kritik, hari-hari yang indah selama berjuang, suka, duka.

Siwie, Itax dan sekeluarga (Mama-nya Itax, Ms Diaz, Mb Maya)

Atas dukungan, saran, kritik, hari-hari yang indah, kebutuhan jasmani dan rohani, suka,

duka.

Udit, Sentot, Kakek, Dadang n yayangnya, Antok, Danang, Wawan (Pati)

Atas kebutuhan jasmani, pilem, game, waktu buat ngenet, fasilitas, ilmu-ilmu diluar ilmu

penyusun.

Komputer dan Printer-ku, Warnet ‘RamaNet’

Yang telah membantu penyusun hingga saat ini meskipun kemampuanmu dari hari ke hari

semakin menyerupai kakek-kakek, terima kasih fasilitas internetnya.

AD-3712-HK (Si Black)

Yang telah setia mengantarkan penyusun kemanapun juga meskipun telah menderita

(7)

HALAMAN MOTTO

Serahkanlah hidupmu kepada TUHAN dan percayalah kepada-Nya, dan Ia

akan bertindak

Mazmur 37 : 5

Segala hal yang kita kerjakan merupakan kepercayaan Tuhan kepada kita, maka

kerjakanlah semaksimal mungkin sampai tuntas

Jangan pernah takut mencoba dan salah pada hal-hal baru karena kesalahan

merupakan awal dari kesuksesan

Motivator terbaik adalah masa lalu kita

Siapa menabur dia menuai

Hadapilah apa yang harus kita hadapi

(8)

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis tidak memuat karya atau bagian karya orang lain, kecuali yang telah saya sebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.

Yogyakarta, April 2007

(9)

KATA PENGANTAR

Puji dan syukur penyusun panjatkan kepada Tuhan Yang Maha Kuasa yang telah melimpahkan kasih saying dan karunia-Nya sehingga penyusun dapat menyelesaikan Tugas Akhir ini. Penulisan Tugas Akhir ini ditujukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika.

Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta beberapa pihak, baik secara langsung maupun secara tidak langsung. Oleh karena itu, penyusun ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut membantu dalam penulisan tugas akhir ini, baik dalam memberikan bimbingan, petunjuk, kerjasama, kritikan, maupun saran, antara lain kepada: 1. Bapak Drs. Jong Jek Siang, M.Sc., selaku Dosen Pembimbing, yang telah

memberikan bimbingan dengan kesabaran, dukungan hingga penyusun dapat menyelesaikan Tugas Akhir ini.

2. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik Informatika Universitas Sanata Dharma.

(10)

4. Kedua orang tua penyusun, adik-adik penyusun serta my lovely yang selalu mendoakan, memberikan semangat, dorongan kepada penyusun untuk dapat menyelesaikan Tugas Akhir ini.

5. Keluarga bapak Sukirman, atas rumah yang dipercayakan untuk dihuni oleh penyusun.

6. Teman-teman Jurusan Teknik Informatika Angkatan 2001 yang telah berjuang bersama.

7. Jenggot, Bebek, Adit, Yudhie, Roni, Wulan atas ilmu-ilmu yang udah dibagi, kesenangan yang diberikan.

8. Christien, Desni, yang telah mengingatkan, memberikan dukungan, semangat. Thx for everything, you’re my best friend.

9. Udit, yang telah menemani penyusun ke warnet tiap tengah malam sampai pagi.

10. Siwi, Itax n keluarga, atas dukungan, semangat, pengertian-pengertiannya. Kalian dah kayak keluarga sendiri bagi penyusun.

11. Sentot, Kakek, Dadang, atas persahabatannya. Buat Dadang, thx atas film, cd software, game-gamenya. Buat Sentot, thx buat kesenangan-kesenagannya. Buat Kakek, thx ya buat ilmu motornya.

12. Dan seluruh pihak yang telah ikut ambil bagian dalam penyelesaian Tugas Akhir ini yang tidak dapat penyusun sebutkan satu-persatu.

(11)

mengharapkan saran dan kritik yang membangun dari semua pihak sehingga Tugas Akhir ini akan menjadi lebih sempurna dan dapat bermanfaat bagi penyusun serta seluruh civitas akademika Universitas Sanata Dharma Yogyakarta.

(12)

INTISARI

Perkembangan teknologi menuntut para pelaku teknologi untuk lebih memperhatikan sisi keamanan data yang dimilikinya. Banyak cara dapat dilakukan oleh pemilik data untuk mengamankan data-datanya. Hal ini dilakukan karena adanya kesadaran akan pentingnya data yang dimiliki oleh pemilik data tersebut.

Kriptografi merupakan salah satu cara pengamanan data dengan cara mengacak data-data tersebut sehingga data-data tersebut tidak dapat dimengerti. Steganografi merupakan salah satu cara pengamanan data dengan cara menyembunyikan data-data tersebut ke dalam suatu media lain. Ada banyak algoritma yang digunakan dalam kriptografi maupun steganografi.

Algoritma Blowfish merupakan salah satu algoritma blok 64-bit pada kriptografi. Least Significant Bit merupakan salah satu algoritma pada steganografi. Penggabungan antara kedua algoritma tersebut dapat meningkatkan tingkat keamanan dari data yang ingin diamankan. Penggabungan antara kedua algoritma yaitu algoritma Blowfish dan Least Significant Bitdapat dibuat dengan menggunakan Microsoft Visual Basic 6.0.

(13)

Hasil percobaan menunjukkan bahwa persentase pertambahan jumlah karakter pada enkripsi dengan algoritma Blowfish akan sangat besar apabila jumlah karakter aslinya sangat sedikit. Persentase pertambahan jumlah karakter pada proses enkripsi akan mendekati titik 0% apabila jumlah karakter aslinya adalah (8 * n) - 1 dimana n = 1, 2, 3, …dst. Sedangkan untuk algoritma Least Significant Bitmenunjukkan bahwa penyisipan karakter teks tidak mempengaruhi ukuran file dari gambar yang dipilih. Jumlah karakter maksimal yang dapat disisipkan adalah 1/3 ukuran gambar.

(14)

ABSTRACT

The recent technology development ask the technician to more pay attention toward his own data’s security. Many ways are done by the data’s owner to secure his datas. The owner realize about how important his data is.

Cryptography is one of many ways in order to secure these important datas. It is done by messing those datas, so the datas cannot be understood. Steganography is another way to secure the datas by hiding those datas into another media. There are a lot of algorithm used by both cryptography and steganography.

Blowfish algorithm is one of 64-bit block algorithm of cryptography. Least Significant Bit is one of steganography algorithm. The uniting between those both algorithm can increase the data’s security rate. This uniting is Blowfish algorithm and Least Significant Bit. It is can be made by using Microsoft Visual Basic 6.0.

Result of Blowfish algorithm is messed that cannot be understood and the result of Least Significant Bit is the media that has been inserted by messed datas of Blowfish algorithm’s result. The media that uses for Least Significant Bit algorithm is the identify of bitmap extension (.*bmp).

(15)

inserted text character is not influence file size of picture. Maximal of character can be inserted is 1/3 picture size.

(16)

DAFTAR ISI

JUDUL…………..………...i

HALAMAN PERSETUJUAN………...ii

HALAMAN PENGESAHAN………...iii

HALAMAN PERSEMBAHAN ………...iv

HALAMAN TERIMAKASIH………...v

HALAMAN MOTTO………...vi

PERNYATAAN KEASLIAN KARYA ………..vii

KATA PENGANTAR………viii

INTISARI………..xi

ABSTRACT………xiii

DAFTAR ISI ………...xv

DAFTAR GAMBAR ………..………...xix

DAFTAR TABEL ………..…...xxii

DAFTAR RUMUS………....xxiii

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah………1

1.2 Rumusan Masalah……….2

1.3 Tujuan Penelitian………...2

1.4 Manfaat Penelitian ………3

1.5 Batasan Masalah ………...3

1.6 Metodologi Penelitian………...3

(17)

BAB II DASAR TEORI

2.1 Kriptogrfi(Cryptography) ……….6

2.1.1 Algoritma Kriptografi ……….……….7

2.1.2 Cipher Block Chaining (CBC)Mode...………...9

2.1.3 Initialization Vector(IV) ……….………...11

2.1.4 Blowfish ……….……….11

2.1.4.1 Key Expansion………..………15

2.1.4.2 Enkripsi Data………..………..22

2.1.4.3 Dekripsi Data ………..……….26

2.2 Steganografi (Steganography) ………26

2.2.1 Bitmap(BMP)……….……….28

2.2.2 Penyimpanan Data ………..29

2.2.3 Least Significant Bit……….………...30

2.2.3.1 ProsesEncoding………..……….30

2.2.3.2 ProsesDecoding………..……….34

BAB III ANALISIS DAN PERANCANGAN SISTEM 3.1 Perancangan Umum Proses Enkripsi dan Proses Dekripsi ……….38

3.1.1 Blowfish Enkripsi ………...38

3.1.1.1 Key Expansion………..………39

3.1.1.2 Enkripsi Data………..………...43

3.1.2 Blowfish Dekripsi ……….…………...45

3.1.2.1 Key Expansion………..………46

(18)

3.2 PerancanganUmum ProsesEncodingdan ProsesDecoding…………...50

3.2.1 Encoding……….50

3.2.2 Decoding……….53

3.3 Perancangan Umum Proses Cek Piksel Gambar ……….…..55

3.4 Desain Sistem………..56

3.4.1 Halaman Utama………...56

3.4.2 Halaman Cari Gambar ………....57

3.4.3 Halaman Masukkan/Generate Initialization Vector(IV) ……...58

3.4.4 Halaman Set Kunci/Password……….60

3.4.5 Halaman Pengecekan Piksel Gambar Secara Otomatis ……...62

3.4.6 Halaman Pengecekan Piksel Gambar dengan Pemasukkan Koordinat ………64

3.4.7 Halaman Pengecekan Piksel gambar dengan Koordinat Acak ..64

3.5 Keluaran Sistem………...65

BAB IV IMPLEMENTASI SISTEM 4.1 SpesifikasiHardwaredan Software………66

4.1.1 SpesifikasiHardware………..66

4.1.2 SpesifikasiSoftware………66

4.2 Pembuatan Antarmuka (Interface)………..66

4.2.1 Splash Screen………..66

4.2.2 Halaman Utama………...67

4.2.3 Halaman Cari Gambar ………....73

(19)

4.2.5 Halaman Masukkan IV pada Proses Dekripsi ………....76

4.2.6 Halaman Set Kunci dan Set Password………77

4.3 Simulasi Program………...79

4.4 Pembahasan………...87

4.4.1 Pembahasan Blowfish ………...87

4.4.2 Pembahasan Steganografi ………...91

BAB V PENUTUP 5.1 Kesimpulan ………...93

5.2 Kelebihan dan Kekurangan Sistem……….93

5.2.1 Kelebihan Sistem ………93

5.2.2 Kekurangan Sistem ……….94

5.3 Saran ……….94

DAFTAR PUSTAKA

(20)

DAFTAR GAMBAR

Gambar 2.1 Proses Enkripsi dan Dekripsi Secara Sederhana………6

Gambar 2.2 Algoritma Asimetris Secara Sederhana ……….8

Gambar 2.3 Algoritma Simetris Secara Sederhana………...9

Gambar 2.4Cipher Block Chaining(CBC)Mode Proses Enkripsi……….10

Gambar 2.5Cipher Block Chaining(CBC)Mode Proses Dekripsi……….10

Gambar 2.6 Algoritma Blowfish………..14

Gambar 2.7 Jaringan Feistel……….14

Gambar 2.8 Steganografi Secara Sederhana ………....28

Gambar 3.1FlowchartBlowfish pada Proses Enkripsi………...38

Gambar 3.2Flowchart Key Expansion………39

Gambar 3.3FlowchartEnkripsi Data………..43

Gambar 3.4FlowchartBlowfish Dekripsi………...45

Gambar 3.5FlowchartDekripsi Data………..47

Gambar 3.6Flowchart Encoding……….50

Gambar 3.7Flowchart Decoding………53

Gambar 3.8 Halaman Utama………57

Gambar 3.9 Halaman Cari Gambar………..58

Gambar 3.10 Halaman Generate Initialization Vector (IV) Proses Enkripsi………...59

Gambar 3.11 Halaman Masukkan Initialization Vector (IV) Proses Dekripsi ………60

Gambar 3.12 Halaman Set Kunci Enkripsi………..61

(21)

Gambar 3.14 Halaman SetPassword Encode………..61

Gambar 3.15 Halaman SetPassword Decode……….62

Gambar 3.16 Halaman Utama Cek Piksel Gambar………...63

Gambar 3.17 Halaman Informasi Piksel Gambar………..63

Gambar 3.18 Halaman Cek Piksel dengan Memasukkan Koordinat………....64

Gambar 3.19 Halaman Cek Piksel dengan Mengklik Koordinat Acak……….65

Gambar 4.1Splash Screen………...67

Gambar 4.2 Halaman Utama………68

Gambar 4.3 Halaman Cari Gambar………..73

Gambar 4.4 Halaman Memasukkan/Generate IV pada Proses Enkripsi ……….75

Gambar 4.5 Halaman Masukkan IV pada Proses Dekripsi………..76

Gambar 4.6 Halaman Set Kunci Enkripsi………77

Gambar 4.7 Halaman Set Kunci Dekripsi………78

Gambar 4.8 Halaman Set Password Encode………78

Gambar 4.9 Halaman Set Password Decode………78

Gambar 4.10PlaintextProses Enkripsi ………...80

Gambar 4.11 Generate IV Proses Enkripsi ………..80

Gambar 4.12 Set Kunci Proses Enkripsi………..81

Gambar 4.13CiphertextProses Enkripsi……….81

Gambar 4.14 Cari Gambar ProsesEncoding………...82

Gambar 4.15 PasswordEncoding………82

Gambar 4.16 Data Statistik Piksel……….83

(22)
(23)

DAFTAR TABEL

(24)

DAFTAR RUMUS

(25)

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Setiap perusahaan, organisasi maupun personal menginginkan semua data maupun informasi penting yang dimiliki terjamin keamanannya. Apabila terjadi kebocoran data maupun informasi penting yang dimilikinya, maka kejadian tersebut merupakan awal bencana untuk perusahaan, organisasi maupun personal yang bersangkutan. Untuk menghindari bencana tersebut maka dibutuhkan suatu pengaman data maupun informasi penting. Terdapat banyak jenis pengaman data maupun informasi mulai dari penggunaan password sederhana sampai penggunaan sertifikat digital. Hal tersebut dilakukan karena perusahaan, organisasi maupun personal sadar akan bahaya pencurian data atau informasi yang dapat terjadi sewaktu-waktu tanpa disadari oleh si pengirim data atau informasi tersebut.

(26)

Dalam pengamanan pesan, dapat digunakan teknik kriptografi saja atau teknik steganografi saja atau bahkan tidak menutup kemungkinan menggunakan kedua teknik tersebut secara bersamaan. Penggunaan secara bersamaan antara algoritma Blowfish dengan algoritma Least Significant Bit dapat dilakukan dengan cara menggunakan hasil akhir dari algoritma Blowfish sebagai masukkan dari algoritmaLeast Significant Bit.

Jika kedua teknik tersebut digunakan secara bersamaan, diharapkan aspek-aspek pengendalian keamanan dapat terpenuhi. Adapun aspek-aspek-aspek-aspek tersebut adalah proteksi data yang sensitive (privacy/confidentiality), informasi tidak berubah tanpa ijin (integrity), meyakinkan keaslian data (authentication), informasi harus dapat tersedia waktu dibutuhkan (availability), tidak dapat menyangkal (telah melakukan transaksi) (non repudiation, access control).

1.2 Rumusan Masalah

Bagaimana menerapkan algoritma Blowfish dan algoritma Least Significant Bit secara bersama dalam proses pengamanan data atau informasi penting.

1.3 Tujuan Penelitian

(27)

1.4 Manfaat Penelitian

Dapat membuat sistem aplikasi yang digunakan untuk mengamankan data atau informasi penting menggunakan teknik kriptografi dan teknik steganografi secara bersama.

1.5 Batasan Masalah

Adapun batasan masalah dalam pembuatan tugas akhir ini adalah :

1. Media penyimpanan data atau informasi pada teknik steganografi adalah berupa gambar dengan ekstensi Bitmap (*.bmp).

2. Berbasisstand-alone.

3. Panjang kunci untuk algoritma Blowfish adalah 56 byte.

1.6 Metodologi Penelitian

Metodologi penelitian yang digunakan untuk membuat suatu sistem aplikasi pengamanan pesan tersebut adalah :

1. Studi pustaka

(28)

2. Perancangan

Metode ini digunakan untuk melakukan perancangan sistem yang akan dibuat dimulai dari membuat flowchart sistem yang akan dibuat kemudian dilanjutkan dengan merancang tampilan antar muka sistem yang akan dibuat. Perancangan tampilan antar muka dapat berupa sketsa terhadap sistem yang akan dibuat.

3. Membuat program

Metode ini merupakan metode penulisan kode program baik untuk tampilan antar muka maupun kode program untuk algoritma-algoritma yang digunakan. Program yang digunakan untuk penulisan kode program ini adalah Microsoft Visual Basic 6.0

4. Pengujian

Metode ini digunakan untuk menguji program yang telah dibuat. Metode ini bertujuan untuk mengetahui apakah program dapat berjalan dengan baik dan benar. Dalam hal ini, hasil yang didapatkan apakah sama dengan data yang diberikan.

1.7 Sistematika Penulisan

Merupakan struktur penulisan pada pembuatan laporan ini, yaitu : a. Bab I : Pendahuluan

(29)

b. Bab II : Dasar Teori

Pada bab ini akan dibahas mengenai dasar-dasar teori yang mendukung dalam penyusunan tugas akhir ini, yaitu mengenai kriptografi, algoritma Blowfish, Cipher Block Chaining (CBC), Initialization Vector, Steganografi,Least Significant Bit (LSB).

c. Bab III : Analisis dan Perancangan Sistem

Bab ini berisi berisikan tentang analisis dan perancangan sistem yang akan dibuat.

d. Bab IV : Implementasi

Bab ini berisi tentang implementasi dari perancangan yang telah dibuat pada bab III.

e. Bab V : Kesimpulan dan Saran

Bab ini berisikan tentang kesimpulan dan saran dari penyusunan tugas akhir.

(30)

BAB II

DASAR TEORI

2.1 Kriptografi (Cyptography)

Kriptografi (Cryptography) berasal dari bahasa Yunani yaitu crypto dan

graphia yang berarti penulisan rahasia. Kriptografi merupakan suatu cabang ilmu matematika yang disebut cryptology. Kriptografi adalah ilmu atau seni mengamankan pesan dengan cara menyandikan atau mengacak data atau informasi tersebut sehingga tidak dapat dimengerti oleh pihak yang tidak berhak.

Pada awalnya kriptografi ini hanya digunakan untuk keperluan militer dan diplomatik. Dengan kemajuan teknologi dan kesadaran akan keamanan data atau informasi, maka kriptografi saat ini banyak digunakan untuk keperluan bisnis ataupun pengiriman data atau informasi.

Kriptografi secara garis besar terdiri dari dua proses yaitu proses enkripsi dan proses dekripsi. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan. Gambar 2.1 menjelaskan secara sederhana operasi enkripsi dan dekripsi.

(31)

Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :

EK (M) = C (Proses Enkripsi) DK (C) = M (Proses Dekripsi)

Pada proses enkripsi, pesan M disandikan dengan suatu kunci K lalu dihasilkan pesan C. sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelum dienkripsi. Dengan demikian keamanan suatu pesan tergantung pada kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang digunakan. Selama orang tersebut tidak mengetahui kunci yang dipakai, maka orang tersebut tetap tidak dapat membaca pesan yang telah disandikan.

2.1.1 Algoritma Kriptografi

Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan menjadi dua golongan, yaitu :

a. Algoritma Asimetris (Asymmetric Algorithms)

(32)

oleh setiap orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key)

Gambar 2.2 menjelaskan secara sederhana algoritma asimetris (asymmetric algorithms)

Gambar 2.2 Algoritma asimetris secara sederhana

Dari gambar 2.2 dapat dilihat bahwa pada algoritma asimetris terdapat dua kunci yang berbeda yaitu Kunci Umum dan Kunci Pribadi.

b. Algoritma Simetris (Symmetric Algorithms)

Algortima simetris (symmetric algorithms) atau disebut juga algoritma kriptografi konvensional adalah algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi.

(33)

Gambar 2.3 Algoritma simetris secara sederhana

Dari Gambar 2.3, dapat dilihat bahwa terdapat dua kunci yang sama yaitu Kunci 1 pada proses enkripsi dan Kunci 1 pada proses dekripsi.

Algoritma simetris dapat dibagi menjadi dua kategori, yaitu : algortima aliran (Stream Ciphers) dan algortima blok (Block Ciphers). Pada algoritma aliran, proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedangkan pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data.

2.1.2 Cipher Block Chaining(CBC)Mode

Cipher Block Chaining (CBC) merupakan mekanisme arus balik untuk algoritma blok (block cipher). Hasil dari proses enkripsi digunakan untuk memodifikasi proses enkripsi berikutnya. Setiap blok ciphertext tidak saja tergantung pada blok plaintext tetapi tergantung pada semua blok plaintext

sebelumnya.

(34)

untuk setiap blok tergantung pada semua blok sebelumnya. Secara sederhana, proses enkripsi menggunakan mode CBC dapat digambarkan sebagai berikut :

Pi-1

EK

Ci-1

EK

Pi+1

EK

Ci+1

Pi

Ci+1

Gambar 2.4Cipher Block Chaining (CBC) ModeProses Enkripsi

Pada proses dekripsi, blok ciphertextdidekripsi secara normal dan setelah mendapatkan hasil dari proses dekripsi kemudian hasil proses dekripsi tersebut di-XOR-kan dengan blok plaintextuntuk mendapatkanplaintextyang asli.

Secara sederhana, proses dekripsi menggunakan mode CBC dapat digambarkan sebagai berikut :

Ci-1

DK

Pi-1

Ci

DK

Pi

DK

Ci+1

Pi+1

(35)

2.1.3 Initialization Vector(IV)

Mode CBC memaksa blok plaintext yang sama, yang dienkripsi untuk menghasilkan blok ciphertext yang berbeda. Untuk plaintext pertama, sebelum dilakukan proses enkripsi dibutuhkan blok data acak yang disebut initialization vector (IV). IV tidak mempunyai arti tertentu, hanya membuat pesan tersebut menjadi unik. Dengan menambahkan IV, plaintext yang sama akan dienkripsi menjadi ciphertext yang berbeda. IV harus unik untuk setiap pesan yang dienkripsi menggunakan kunci yang sama, hal tersebut tidak mutlak dibutuhkan.

IV tidak perlu rahasia, IV tersebut bisa dikirimkan secara jelas bersama denganciphertext.

2.1.4 Blowfish

Blowfish termasuk dalam algoritma simetris kategori block cipherdimana metode enkripsinya mirip dengan DES. Algoritma Blowfish ini diciptakan oleh Bruce Schneier yang ditujukan untuk mikroprosesor besar yaitu 32-bit keatas dengancache data yang besar. Blowfish dikembangkan untuk memenuhi kriteria desain sebagai berikut :

 Cepat

Pada implementasi yang optimal Blowfish dapat mencapai kecepatan 26clock cycleper byte.

 Kompak

Blowfish dapat berjalan pada memori kurang dari 5 KB.

(36)

Blowfish hanya menggunakan operasi yang sederhana yaitu penambahan (addition), XOR, dan penelusuran tabel (table lookup) pada operand 32-bit dan desainnya mudah untuk dianalisa.

 Keamanan yang variabel

Panjang kunci Blowfish dapat bervariasi dan dapat mencapai 448 bit (56 byte).

Blowfish dioptimasikan untuk aplikasi kunci yang tidak sering berubah, seperti jalur komunikasi atau enkripsi file otomatis. Blowfish jauh lebih cepat dari DES apabila diimplementasikan pada 32-bit mikroprosesor dengan cache data yang besar, seperti Pentium dan Power PC. Blowfish tidak cocok untuk aplikasi sepertipacket switching, dengan perubahan kunci yang sering, atau sebagai fungsi

hash satu arah. Kebutuhan memorinya yang besar tidak memungkinkan untuk aplikasi kartu pintar (smart card).

Blowfish merupakan block cipher 64-bit dengan panjang kunci variabel. Algoritma ini terdiri dari dua bagian yaitu key expansion dan enkripsi data. Key expansion yaitu merubah kunci yang dapat mencapai 448 bit menjadi beberapa

arraysubkunci (subkey) dengan total 4168 byte.

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali putaran. Setiap putaran terdiri dari permutasi kunci-dependent, dan substitusi kunci- dan data-dependent. Semua operasi adalah penambahan dan XOR pada variabel 32-bit. Tambahan operasi lainnya hanyalah empat penelusuran tabel (table lookup)

(37)

Blowfish menggunakan subkunci yang besar. Kunci ini harus dihitung sebelum enkripsi atau dekripsi data.

ArrayP terdiri dari delapan belas 32-bit subkunci : P1, P2, P3, ……..,P18

Empat 32-bit S-box masing-masing mempunyai 256 entri : S1,0, S1,1, ……..,S1,255 S2,0, S2,1, ……..,S2,255 S3,0, S3,1, ……..,S3,255 S4,0, S4,1, ……..,S4,255

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel Network) yang terdiri dari 16 putaran.

(38)

Gambar 2.6 Algoritma Blowfish

(39)

2.1.4.1Key Expansion

Langkah pertama dalam algoritma Blowfish adalah memecah kunci asli ke dalam suatu set sub-kunci. Terdiri dari sebuah P-array dan 4 32-bit S-box. P-array berisi 18 32-bit sub-kunci, sementara S-box berisi 256.

a. Langkah-langkah yang diperlukan untuk menghitung sub-kunci adalah sebagai berikut :

1. Pertama-tama inisialisasi P-array dan kemudian empat S-box secara berurutan dengan string yang tetap. String ini terdiri dari digit hexadecimal dari pi. Sebagai contoh untuk P-array:

P1 = 0x243f6a88 P2 = 0x85a308d3 P3 = 0x13198a2e P4 = 0x03707344

2. XOR-kan P1 dengan 32-bit kunci pertama, XOR-kan P2 dengan 32-bit

kunci kedua dan seterusnya sampai P18.

3. Enkrip semua string nol dengan algoritma Blowfish dengan menggunakan subkunci yang telah di-XOR-kan pada langkah (1) dan (2).

4. Ganti P1dan P2dengan keluaran dari langkah (3).

5. Enkrip keluaran dari langkah (3) menggunakan algoritma Blowfish dengan subkunci yang sudah dimodifikasi.

6. Ganti P3dan P4dengan keluaran dari langkah (5).

(40)

subkunci ini dan tidak dibutuhkan langkah-langkah proses penurunan ini berulang kali, kecuali kunci yang digunakan berubah.

b. Contoh implementasi menghitung sub-kunci : Sebagai contoh kunci yang dipakai adalahabc. Langkah-langkah dalam menghitung sub-kunci : 1. Inisialisasi P-array

Sebagai contoh P-array yang digunakan dalam bentuk hexadesimal adalah sebagai berikut :

P1 = 243F6A88 P10 = 38D01377 P2 = 85A308D3 P11 = BE5466CF P3 = 13198A2E P12 = 34E90C6C P4 = 3707344 P13 = C0AC29B7 P5 = A4093822 P14 = C97C50DD P6 = 299F31D0 P15 = 3F84D5B5 P7 = 82EFA98 P16 = B5470917 P8 = EC4E6C89 P17 = 9216D5D9 P9 = 452821E6 P18 = 8979FB1B

Nilai desimal dari P-array adalah sebagai berikut : P1 = 608135816 P10 = 953160567 P2 = -205291294 P11 = -1101764913 P3 = 320440878 P12 = 887688300 P4 = 57701188 P13 = -10562458953 P5 = -1542899678 P14 = -914599715 P6 = 698298832 P15 = 1065670069 P7 = 137296536 P16 = -1253635817 P8 = -330404727 P17 = -1843997223 P9 = 1160258022 P18 = -1988494565

(41)

Kunci yang digunakan adalah abc. Nilai desimal dari kunci abc

ditampung ke dalam variabelKey()sehingga nilai dari : Key(0) = 97

Key(1) = 98 Key(2) = 99

Untuk mengubah Nilai menjadi berukuran 32-bit, maka rumus yang digunakan adalah sebagai berikut :

Kunci_32bit = Nilai_Baru OR Key()

dimana

Nilai_Baru = Nilai * (2 ^ Bit yang akan diubah)

……… Rumus 2.1

Sebelum dilakukan proses pngubahan, terlebih dahulu variabel Nilai diberikan nilai awalan yaitu “0”.

Nilai = 0

Setelah variabel Nilai diberi nilai “0”, maka proses selanjutnya adalah memulai proses pengubahan kunci 8-bit menjadi kunci 32-bit dengan menggunakan Rumus 2.1 dan rumus tersebut diulang sebanyak 4 kali.

for i = 0 to 3 i = 0

Kunci_32bit = Nilai_Baru OR Key(0)

Nilai_Baru = Nilai * (2 ^ Bit yang akan diubah)

Nilai_Baru = 0 * (2 ^ 8) Nilai_Baru = 0 * 256 Nilai_Baru = 0

Kunci_32bit = 0 OR 97 Kunci_32bit = 97

(42)

Kunci_32bit = Nilai_Baru OR Key(1)

Nilai_Baru = Nilai * (2 ^ Bit yang akan diubah)

Nilai_Baru = 97 * (2 ^ 8) Nilai_Baru = 97 * 256 Nilai_Baru = 24832

Kunci_32bit = 24832 OR 98 Kunci_32bit = 24930

i = 2

Kunci_32bit = Nilai_Baru OR Key(2)

Nilai_Baru = Nilai * (2 ^ Bit yang akan diubah)

Nilai_Baru = 24930 * (2 ^ 8) Nilai_Baru = 24930 * 256 Nilai_Baru = 6382080

Kunci_32bit = 6382080 OR 99 Kunci_32bit = 6382179

i = 3

Kunci_32bit = Nilai_Baru OR Key(0)

Nilai_Baru = Nilai * (2 ^ Bit yang akan diubah)

Nilai_Baru = 6382179 * (2 ^ 8) Nilai_Baru = 6382179 * 256 Nilai_Baru = 1633837824

Kunci_32bit = 1633837824 OR 97 Kunci_32bit = 1633837921

(43)

peng-XOR-an P-array ini diulang sampai semua P-array telah di-XOR-kan dengan kunci 32-bit.

for i = 0 to 17 i = 0

P(0) = P(0) XOR Kunci_32bit P(0) = 608135816 XOR 1633837921 P(0) = 1163725289

Setelah proses pengubahan kunci dari 8-bit menjadi 32-bit dan peng-XOR-an kunci 32-bit dengpeng-XOR-an P-arraytelah diulangi sebanyak 18 kali, maka hasil akhir untuk proses tersebut adalah sebagai berikut :

P1 = 1163725289 P10 = 1504866326 P2 = -406820431 P11 = -60037331 P3 = 1886971981 P12 = 1468558863 P4 = 1645350949 P13 = -1580315946 P5 = -966108864 P14 = -1424019009 P6 = 1258181555 P15 = 1558558678 P7 = 1766627833 P16 = -735745418 P8 = -1909649941 P17 = -260721477 P9 = 642335621 P18 = -367486600

3. Mengenkrip semua string nol dengan algoritma Blowfish dengan menggunakan subkunci yang telah di-XOR-kan pada langkah (2). String dengan nilai nol tersebut adalah DataL dan DataR. Proses mengenkrip menggunakan algoritma Blowfish ini diulang sebanyak 16 kali, dan untuk P(17) di-XOR-kan dengan XR yang terakhir dan P(18) di-XOR-kan

dengan XLyang terakhir.

Algoritma Blowfish :

For i = 0 to 15

XL = XL XOR P(i)

XR = Feistel(XL) XOR XR

(44)

XL = XR

XR = Temp

Next i

Temp = XL

XL = XR

XR = Temp

XR = XR XOR P(16)

XL = XL XOR P(17)

………… Rumus 2.2

Jaringan Feistel :

XL / 4 = a, b, c, d

(dimana tiap bagian berukuran 8-bit).

F(XL) = ((S1,a +S2,b mod 232) XOR S3,c) + S4,d mod 232

………… Rumus 2.3

Implementasi mengenkrip semua string nol menggunakan algoritma Blowfish adalah sebagai berikut :

XL = 0 XR =0 For i = 0 to 15

i = 1

XL = XL XOR P0

XL = 0 XOR 1163725289 XL = 1163725289

XR = F(XL) XOR XR

XR = -4510473929 XOR 0

(diasumsikan F(XL) = -4510473929) XR = -4510473929

Tukarkan XL dan XR XL = -4510473929 XR = 1163725289 ………

i = 16

XL = XL XOR P16

(45)

XL = 552190235

XR = F(XL) XOR XR

XR = 149860499 XOR (-1666011246) XR = -1805902079

Tukarkan XL dan XR XL = -1805902079 XR = 552190235

Tukarkan XL dan XR XL = 552190235 XR = -1805902079

P-array yang belum diproses menggunakan algoritma Blowfish masih tertinggal dua elemen. Untuk memproses kedua elemen tersebut maka dilakukan langkah sebagai berikut :

XR = XR XOR P17

XR = -1805902079 XOR (-260721477) XR = 1680452538

XL = XL XOR P18

XL = 552190235 XOR (-361486600) XL = -890152861

Hasil dari mengenkrip semua string nol dengan algoritma Blowfish adalah sebagai berikut :

XL = -890152861 XR = 1680452538

4. Mengganti P1dan P2dengan keluaran dari langkah (3).

(46)

5. Ulangi langkah (3) dan kemudian ganti P3 dan P4 dan P-array yang

selanjutnya sampai semua nilai P-array digantikan dengan hasil dari proses pengenkripan dengan algoritma Blowfish.

2.1.4.2 Enkripsi Data

Langkah-langkah yang dibutuhkan dalam mengenkripsi data adalah sebagai berikut :

1. Membuat sub kunci

Langkah ini telah dijelaskan pada sub bab 2.1.2.1Key Expansion. 2. MengesetInitialization Vector (IV)

IV yang digunakan adalahfedcba0987654321 dimana IV tersebut merupakan susunan bilangan hexadesimal. Pengesetan IV ini adalah mengubah nilai hexadesimal ke byte. Hasil dari pengesetan IV diasumsikan sebagai berikut :

DataBytes (0) = 254 DataBytes (4) = 135 DataBytes (1) = 220 DataBytes (5) = 101 DataBytes (2) = 186 DataBytes (6) = 67 DataBytes (3) = 9 DataBytes (7) = 33

3. Mengambil nilai ASCII dari plaintext. Plaintext yang digunakan adalah abcdefgh. Hasil untuk PlainText diasumsikan sebagai berikut :

PlainText(0) = 97 PlainText(4) = 101 PlainText(1) = 98 PlainText(5) = 102 PlainText(2) = 99 PlainText(6) = 103 PlainText(3) = 100 PlainText(7) = 104

4. Melakukan padding terhadap plaintext yang telah dimasukkan. Hasil akhir dari penambahan karakter tersebut diasumsikan sebagai berikut :

(47)

PlainText (2) = 99 PlainText (10) = 8 PlainText (3) = 100 PlainText (11) = 8 PlainText (4) = 101 PlainText (12) = 8 PlainText (5) = 102 PlainText (13) = 8 PlainText (6) = 103 PlainText (14) = 8 PlainText (7) = 104 PlainText (15) = 8 5. Melakukan proses enkripsi data.

Langkah proses enkripsi data membutuhkan dua data yaitu data PlainText dan data DataIV dimana kedua data tersebut bertipe data byte. Hasil dari PlainText dan Data IV adalah sebagai berikut :

DataBytes (0) = 254 DataBytes (4) = 135 DataBytes (1) = 220 DataBytes (5) = 101 DataBytes (2) = 186 DataBytes (6) = 67 DataBytes (3) = 9 DataBytes (7) = 33

PlainText (0) = 97 PlainText (8) = 8 PlainText (1) = 98 PlainText (9) = 8 PlainText (2) = 99 PlainText (10) = 8 PlainText (3) = 100 PlainText (11) = 8 PlainText (4) = 101 PlainText (12) = 8 PlainText (5) = 102 PlainText (13) = 8 PlainText (6) = 103 PlainText (14) = 8 PlainText (7) = 104 PlainText (15) = 8

Sebelum melakukan proses enkripsi, yang perlu terlebih dahulu adalah meng-XOR-kan IV danplaintext.

For i = 0 to 8 – 1 Untuk i = 0

DataByte1(0)= DataByte1(0) XOR DataByte2(0) DataByte1(0) = 97 XOR 254

DataByte1(0) = 159 Untuk i = 1

DataByte1(1)= DataByte1(1) XOR DataByte2(1) DataByte1(1) = 98 XOR 220

(48)

Untuk i = 2

DataByte1(2)= DataByte1(2) XOR DataByte2(2) DataByte1(2) = 99 XOR 186

DataByte1(2) = 217 ……… Untuk i = 7

DataByte1(7)= DataByte1(7) XOR DataByte2(7) DataByte1(7) = 104 XOR 33

DataByte1(7) = 73

Hasil peng-XOR-an antara IV danplaintextdiasumsikan sebagai berikut : DataByte1 (0) = 159 DataByte1 (4) = 226

DataByte1 (1) = 190 DataByte1 (5) = 3 DataByte1 (2) = 217 DataByte1 (6) = 36 DataByte1 (3) = 109 DataByte1 (7) = 73

Setelah hasil peng-XOR-an tersebut didapatkan, langkah selanjutnya membagi data hasil peng-XOR-an tersebut menjadi 2 bagian dengan masing-masing bagian berukuran 32-bit. Variabel yang digunakan untuk penampungan data tersebut adalah DataL dan DataR. Hasil untuk variabel DataL adalah -1614882451dan hasil untuk DataR adalah-503110583.

Setelah DataL dan DataR didapatkan, langkah selanjutnya melakukan enkripsi data. Langkah enkripsi data telah diterangkan pada sub bab 2.1.2.1 Key Expansion pada bagian (b) no (3). Hasil dari enkripsi data adalah sebagai berikut :

xL = 1685131497 xR = 1200953162

(49)

a = (((Data_32bit And &HFF000000) \ 2 ^ 24) And &HFF)

b = (((Data_32bit And &HFF0000) \ 2 ^ 16) And &HFF)

c = (((Data_32bit And &HFF00) \ 2 ^ 8) And &HFF)

d = ((Data_32bit And &HFF) And &HFF)

………Rumus 2.4

Pemecahan data xL :

a = (((1685131497 AND &HFF000000) \ 2 ^ 24) And &HFF) a = 100

b = (((1685131497 And &HFF0000) \ 2 ^ 16) And &HFF) b = 113

c = (((1685131497 And &HFF00) \ 2 ^ 8) And &HFF) c = 16

d = ((1685131497 And &HFF) And &HFF) d = 233

Untuk xR, perintah yang dilakukan sama dengan perintah yang dilakukan pada xL. Hasil dari proses pembagian tersebut adalah sebagai berikut :

Hasil dari xL :

a = 100 c = 16 b = 113 d = 233 Hasil dari xR :

a = 71 c = 23 b = 149 d = 74

Langkah enkripsi data ini diulangi sebanyak jumlah blok data yang ada. Hasil dalam nilai ASCII dari proses enkripsi diasumsikan sebagai berikut:

(50)

DataOutput (6) = 23 DataOutput (14) = 163 DataOutput (7) = 74 DataOutput (15) = 127

Setelah didapatkan hasil akhir proses penghitungan sub kunci dan proses enkripsi data dimana hasil yang didapat dimana masih dalam bentuk nilai ASCII tersebut diubah menjadi karakter-karakter dari nilai ASCII tersebut. Hasil dalam bentuk karakter diasumsikan sebagai berikut :

Plaintext : abcdefgh

Kunci : abc

IV : fedcba0987654321

Ciphertext : dq_éG•_J• 7_´ˆe£•

2.1.4.3 Dekripsi Data

Langkah yang digunakan untuk proses dekripsi data sama dengan langkah yang digunakan untuk enkripsi data namun terdapat sedikit perbedaan dalam penggunaan urutan P-array. Urutan yang digunakan pada proses dekripsi data adalah mulai dari P18menuju ke P1.

2.2 Steganografi (Steganography)

Steganography, diperoleh dari bahasa Yunani yang berarti “tulisan yang ditutupi” [Johson, N. 1998] adalah menyembunyikan pesan rahasia di dalam pesan yang lain sehingga tidak ada yang bisa mendeteksi atau menguraikan pesan rahasia tersebut.

Beberapa hal yang diperlukan dalam melakukan steganografi adalah sebagai berikut :

(51)

Cover object atau cover mediumadalah objek atau media yang nantinya akan membawa pesan yang disembunyikan. Dengan kata lain media ini adalah sebagai media penutup dari pesan yang akan disembunyikan. Media ini bisa berupa gambar, video, suara, tulisan atau media digital yang lainnya.

2. Message

Message ini berupa pesan yang ingin dirahasiakan. Pesan ini bisa berupa tulisan, gambar, suara.

3. Password

Password, digunakan untuk keamanan pesan yang akan disimpan pada sebuah media.

(52)

Gambar 2.8 Steganografi secara sederhana

Terdapat dua jenis steganografi yaitu steganografi yang lemah (fragile steganography) dan steganografi yang kuat (robust steganography). Steganografi dikatakan lemah apabila isi dari pesan yang disimpan tersebut dapat diketahui jika media-stego diubah pada beberapa hal. Kejadian ini dapat terjadi apabila menggunakan lossy compression technique untuk media penyimpanannya. Steganografi dikatakan kuat apabila pesan yang disimpan tersebut tidak bisa dengan mudah diubah atau dihancurkan [Cummins, J.et al 2004].

2.2.1 Bitmap (BMP)

(53)

dengan jumlah bari dan kolom. Contoh 1024 x 768. Untuk menampilkan citra

bitmap pada monitor atau mencetaknya pada printer, computer menterjemahkan

bitmap ini menjadi piksel (pada layar) atau titik tinta (pada printer). Beberapa format file bitmap yang popular adalah BMP, PCX dan TIFF. Grafis dengan ekstensi BMP mempunyai ukuran 24-bit

2.2.2 Penyimpanan Data

Dua file yang dibutuhkan ketika seseorang memutuskan untuk menyembunyikan pesan kedalam sebuah gambar. File pertama yang dibutuhkan adalah file gambar dimana file gambar tersebut akan berisi pesan yang ingin disembunyikan. File ini disebut cover-image. File kedua yang dibutuhkan adalah file pesan yang berisi informasi yang dibutuhkan untuk disembunyikan. Pesan tersembunyi tersebut bisa berupa plaintext,ciphertext, gambar, atau apapun yang bisa disimpan dalam bentuk aliran bit.

Kunci pribadi (digunakan sebagai password untuk membuka pesan tersembunyi) yang bisa juga digunakan untuk menyembunyikan pesan tersebut dan kemudian untuk menguraikan pesan tersebut.

(54)

2.2.3 Least Significant Bit

Teknik ini pada dasarnya adalah menyembunyikan pesan di least significant bit of piksel pada sebuah gambar. Teknik ini merupakan teknik yang sederhana sehingga pesan yang disimpan sangat rentan terhadap hilangnya informasi. Prinsip dari teknik ini adalah menggantikan bit terakhir dari piksel gambar dengan bit dari pesan yang ingin disembunyikan.

Secara sederhana, teknik ini dapat dijelaskan sebagai berikut : Memasukkan pesan “A” kedalam gambar 24-bit.

Sebagai contoh, tiga piksel asli dari gambar 24-bit yang ditampilkan dalam bentuk biner adalah sebagai berikut :

( 00100111 11101001 11001000 ) >> 24-bit piksel pertama ( 00100111 11001000 11101001 ) >> 24-bit piksel kedua ( 11001000 00100111 11101001 ) >> 24-bit piksel ketiga ASCII dari A adalah 65 dan ditampilkan dalam bentuk biner adalah sebagai berikut :

(10000011) >> biner dari karakter “A”

Setelah dilakukan encoding pada bit yang terakhir dari 3 piksel tersebut, maka hasil dari pengencodingan tersebut adalah sebagai berikut :

( 00100111 11101000 11001000 ) >> 24-bit piksel pertama ( 00100110 11001000 11101000 ) >> 24-bit piksel kedua ( 11001001 00100111 11101001 ) >> 24-bit piksel ketiga

2.2.3.1 ProsesEncoding

(55)

1. Menambahkan string didepan dan dibelakang data yang akan dimasukkan ke dalam gambar. Penambahan string tersebut merupakan tanda awal dari data yang disimpan dan tanda akhir dari pesan yang disimpan.

2. Menggabungkan data yang akan disimpan dengan password yang digunakan. 3. Menyimpan hasil gabungan antara data yang akan disimpan dengan password

yang digunakan ke dalam piksel-piksel gambar yang digunakan sebagai media penyimpanan.

Contoh implementasi algoritmaLeast Significant Bit.

Sebagai contoh, data yang akan disimpan adalah karakter sdan password yang digunakan adalaha.

Penggabungan antara data yang akan disimpan dengan password yang digunakan dengan memanfaatkan fungsi XOR. Penggabungan tersebut dilakukan tiap karakter dari pesan yang akan disimpan dan password yang digunakan. Diasumsikan hasil dari penggabungan tersebut adalah18.

Setelah didapatkan nilai ASCII tersebut, langkah selanjutnya adalah mengubah nilai ASCII tersebut ke dalam bentuk biner.

Tabel 2.1 Pengubahan ASCII ke Biner

Pembagian Hasil Pembagian Sisa Pembagian

18 / 2 9 0

9 / 2 4 1

4 / 2 2 0

2 / 2 1 0

(56)

biner tersebut ditambahkan beberapa karakter “0” didepannya. Hasil setelah ditambahkan karakter “0” menjadi :00010010.

Setelah didapatkan nilai biner dari nilai ASCII hasil gabungan antara pesan dengan password, maka langkah selanjutnya adalah memasukkan nilai-nilai biner tersebut ke dalam piksel-piksel dari gambar yang digunakan sebagai media penyimpanan.

Diasumsikan, piksel yang dipilih dengan komponen-komponennya adalah sebagai berikut :

Piksel (0,0) dengan R = 35; G = 37; B = 254 yang selanjutnya ditampung sementara dalam variabel Ki

K1 = 35; K2 = 37; K3 = 254

Piksel (0,1) dengan R = 32; G = 36; B = 254 yang selanjutnya ditampung sementara dalam variabel Ki

K4 = 32; K5 = 36; K6 = 254

Piksel (0,2) dengan R = 22; G = 43; B = 198 yang selanjutnya ditampung sementara dalam variabel Ki

K7 = 22; K8 = 43

Variabel Ki merupakan penampungan sementara untuk komponen-komponen dari

tiap piksel.

Dari piksel-piksel yang telah terpilih tersebut, maka nilai dari komponen-komponennya yang merupakan bilangan ganjil dijadikan bilangan genap dengan cara mengurangkan nilai dari komponen-komponen yang merupakan bilangan ganjil tersebut dengan satu.

Piksel (0,0) dengan R = 35, G = 37, B = 254 K1 = 34; K2 = 36; K3 = 254

(57)

Piksel (0,2) dengan R = 22, G = 43, B = 198 K7 = 22; K8 = 42

Setelah dilakukan pengurangan pada komponen-komponen yang bernilai ganjil dari piksel yang terpilih, langkah selanjutnya adalah menambahkan bilangan biner dari pesan tersebut dengan komponen-komponen piksel yang telah diubah sebelumnya.

K1 = 34 + 0 = 34 K2 = 36 + 0

= 36 K3 = 254 + 0

= 254 K4 = 32 + 1

= 33 K5 = 36 + 0

= 36 K6 = 254 + 0

= 254 K7 = 22 + 1

= 23 K8 = 42 + 0

= 42

Dari proses penambahan bilangan biner dari pesan dengan komponen-komponen dari piksel, maka hasil yang didapatkan merupakan komponen RGB dari piksel yang terpilih. Sehingga RGB yang baru untuk :

Piksel (0,0) :

K1 = R = 34; K2 = G = 36; K3 = B = 254 Piksel (0,1) :

K4 = R = 33; K5 = G = 36; K6 = B = 254 Piksel (0,2) :

(58)

Pada Piksel (0,2), nilai dari komponen B tetap menggunakan nilai dari komponen yang lama dikarenakan piksel yang dibutuhkan untuk melekatkan pesan hanya berjumlah delapan komponen.

Dari contoh diatas maka didapatkan keluaran untuk proses ini adalah berubahnya nilai RGB pada gambar yang dipilih dan piksel-piksel yang terpilih.

Piksel asli :

Piksel (0,0) dengan R = 35, G = 37, B = 254 Piksel (0,1) dengan R = 32, G = 36, B = 254 Piksel (0,2) dengan R = 22, G = 43, B = 198

Piksel setelah penambahan pesan :

Piksel (0,0) dengan R = 34; G = 36; B = 254 Piksel (0,1) dengan R = 33; G = 36; B = 254 Piksel (0,2) dengan R = 23; G = 42; B = 198

2.2.3.2 ProsesDecoding

(59)

disatukan dengan nilai ASCII yang didapat dan selanjutnya akan dikonversikan ke karakter yang dapat dimengerti oleh penerima pesan.

Sebagai contoh, variabel yang dipakai adalah : ch = 0

Setelah melakukan pendeklarasian variabel tetap dengan nilai awal adalah nol, langkah selanjutnya adalah mengambil nilai dari piksel-piksel dimulai dari piksel (0,0), piksel (0,1) dan seterusnya sebanyak tinggi dan lebar dari gambar yang sebelumnya telah dilekati pesan oleh pengirim pesan. Penelusuran piksel-piksel ini akan berhenti apabila telah mendapati karakter yang ditambahkan di akhir pesan yang sebelumnya telah dilakukan pada saat melakukan proses

encoding.

Dari penelusuran piksel-piksel tersebut maka didapatkan : Nilai Piksel (0,0) = 16720931 Nilai Piksel (0,1) = 16655392 Nilai Piksel (0,2) = 12986902

Dan didapatkan nilai dari masing-masing komponen dari piksel-piksel tersebut adalah sebagai berikut :

Piksel (0,0) dengan R = 35; G = 36; B = 254 yang selanjutnya ditampung sementara dalam variabel Ki

K8 = 35; K7=36; K6=254

Piksel (0,1) dengan R = 33; G = 36; B = 254 yang selanjutnya ditampung sementara dalam variabel Ki

K5 = 33; K4 = 36; K3 = 254

Piksel (0,2) dengan R = 22; G = 42; B = 198 yang selanjutnya ditampung sementara dalam variabel Ki

(60)

Dari komponen-komponen tersebut supaya didapatkan nilai satu atau nol maka diperlukan fungsi modulus 2.

K8 = K8 mod 2 = 35 mod 2 = 1

K7 = K7 mod 2 = 36 mod 2 = 0

K6 = K6 mod 2 = 254 mod 2 = 0

K5 = K5 mod 2 = 32 mod 2 = 0

K4 = K4 mod 2 = 36 mod 2 = 0

K3 = K3 mod 2 = 254 mod 2 = 0

K2 = K2 mod 2 = 22 mod 2 = 0

K1 = K1 mod 2 = 42 mod 2 = 0

Apabila diamati lebih lanjut, varibel-variabel tampungan tersebut mirip susunan bilangan biner dengan jumlah 8 bit. Untuk mendapatkan nilai ASCIInya dari deretan tersebut digunakan cara sebagai berikut :

Untuk i = 8 sampai 1 i = 8

(61)

= 0 + 128 = 128 i = 7

ch = ch + ( 2 ^ (i-1) * Ki ) = ch + ( 2 ^ (7-1) * K7 ) = ch + ( 2 ^ 6 * 0 ) = 128 + ( 64 * 0 ) = 128 + 0

= 128 ………

i = 1

ch = ch + ( 2 ^ (1-1) * Ki ) = ch + ( 2 ^ (1-1) * K1 ) = ch + ( 2 ^ 0 * 1 ) = 160 + ( 1 * 0 ) = 160 + 0

= 160

(62)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Perancangan Umum Proses Enkripsi dan Proses Dekripsi

Pada perancangan umum proses enkripsi dan proses dekripsi, akan digunakanflowchart yang akan menerangkan sistem yang akan dibuat.Flowchart

tersebut meliputi flowchartt Blowfish Enkripsi dimana dalam proses Blowfish Enkripsi terdapat proses Key Expansion, Blok Enkripsi. Selain ituflowchart yang akan dipakai adalahFlowchart Blowfish Dekripsi dimana dalam proses Blowfish Dekripsi terdapat prosesKey Expansion, Blok Dekripsi.

3.1.1 Blowfish Enkripsi

(63)

Gambar 3.1 menggambarkan alur kerja dari algoritma Blowfish untuk proses Enkripsi. Dari gambar 3.1 dapat dilihat bahwa terdapat dua proses utama yaitu prosesKey Expansion dan proses Enkripsi Data.

ProsesKey Expansion membutuhkan tiga masukkan yaitu P-array, S-box dan Kunci. Hasil darikey expansionadalah P-array dan S-box yang baru.

Proses Enkripsi Data mempunyai masukkan yaitu P-array dan S-box hasil dari prosesKey ExpansiondanPlain Text. Hasil dari Proses Enkripsi Data adalah

Cipher Text.

3.1.1.1Key Expansion

(64)

Gambar 3.2 menggambarkan alur kerja dari proses Key Expansion. Masukkan dari proses ini adalah P-array, S-box dan Kunci dengan ukuran 8-bit. Langkah pertama yang harus dilakukan adalah mengubah kunci ukuran 8-bit menjadi 32-bit. Hasil dari proses pengubahan tersebut adalah kunci dengan ukuran 32-bit. Adapun script untuk mengubah Kunci 8-bit menjadi Kunci 32-bit adalah sebagai berikut :

For k = 0 To 3

Kunci_32 = Ubah_32(Kunci_32) Or KeyCrypto(j) j = j + 1

If j >= KeyBytes Then j = 0 Next k

Dimanascriptuntuk Ubah_32 adalah sebagai berikut :

Ubah_32 = (ByteTo32 And &H7FFFFF) * 2 ^ 8 If (ByteTo32 And &H800000) <> 0 Then

Ubah_32 = Ubah_32 Or &H80000000 End If

Langkah selanjutnya adalah meng-XOR-kan Kunci 32-bit dengan P-array. Hasil dari proses ini adalah P-array yang baru. Adapunscript untuk meng-XOR-kan P-array dengan Kunci 32-bit adalah sebagai berikut :

blf_P(i) = blf_P(i) Xor Kunci_32

Proses peng-XOR-an antara P-array dengan Kunci 32-bit dilakukan sebanyak 18 kali, sampai semua P-array sudah di-XOR-kan dengan Kunci 32-bit.

(65)

For i = 0 To Putaran_Blowfish - 1 xL = xL Xor blf_P(i)

xR = Feistel(xL) Xor xR temp = xL

xL = xR xR = temp Next i

temp = xL xL = xR xR = temp

xR = xR Xor blf_P(Putaran_Blowfish) xL = xL Xor blf_P(Putaran_Blowfish + 1)

Dalam script Blok Enkripsi terdapat pemanggilan fungsi Feistel (XL), dimana

fungsi tersebut memanggil algoritma Jaringan Feistel yang digunakan algoritma Blowfish. AdapunscriptJaringan Feistel adalah sebagai berikut :

Bagi_8(x, a, b, c, d)

Y = Tambah_SBox(blf_S(0, a), blf_S(1, b)) Y = Y Xor (blf_S(2, c))

Y = Tambah_SBox(Y, blf_S(3, d)) Feistel = Y

Pada script Jaringan Feistel terdapat pemanggilan fungsi Bagi_8(X,a,b,c,d), fungsi ini berguna untuk membagi data dengan ukuran 32-bit menjadi 4 bagian dengan ukuran tiap-tiap bagian adalah 8-bit. Adapun script untuk membagi data dengan ukuran 32-bit menjadi data dengan ukuran 8-bit adalah sebagai berikut :

(66)

Setelah proses pengenkripan string nol menggunakan algoritma Blowfish, maka langkah selanjutnya adalah mengganti nilai dari P-array dengan nilai dari variabel DataL dan variabel DataR. Maka hasil dari pengenkripan string nol dan penggantian nilai P-array dengan nilai dari variabel DataL dan variabel DataR adalah P-array yang baru. Proses pengenkripan dan proses penggantian nilai tersebut diulangi sebanyak 18 kali denganstepperulangannya adalah 2.

Setelah proses penggantian nilai P-array selesai dilakukan, proses selanjutnya adalah mengganti nilai dari S-box. Adapun script untuk mengganti nilai S-box adalah sebagai berikut :

For i = 0 To 3

For j = 0 To 255 Step 2

Call Encipher_Block(DataL, DataR)

blf_S(i, j) = DataL blf_S(i, j + 1) = DataR Next j

Next i

(67)

3.1.1.2 Enkripsi Data

Mulai

DataL 32-bit DataR 32-bit

Blok Enkripsi IV

CopyMemory(DataBlok,Plain Text) Plain Text

CopyMemory(DataReg,IV)

DataBlok = DataBlok XOR DataReg

DataBlok

Ya Gabung DataBlok /32-bit

Cipher Text

Selesai If iBlok < JumBlok

Tidak

CopyMemory(DataReg,DataBlok)

CopyMemory(DataOutput,DataBlok)

Gambar 3.3FlowchartEnkripsi Data

(68)

dimasukkan. Adapun script untuk mengkopi data IV ke dalam memori adalah sebagai berikut :

CopyMemory VarPtr(DataReg(0)), VarPtr(IV(0)), 8&

Data IV disimpan dalam variabelDataReg.Scriptuntuk mengkopi dataPlain Text

ke dalam memori adalah sebagai berikut:

CopyMemory VarPtr(DataBlok(0)), VarPtr(DataInput(iIndex)), 8&

DataPlain Text disimpan dalam variabelDataBlok.

Setelah data IV dan data Plain Textdikopikan ke dalam memori, proses selanjutnya adalah meng-XOR-kan data IV dan data Plain Text yang telah dikopikan ke dalam memori tersebut. Adapunscript untuk meng-XOR-kan antara

Plain Textdengan IV adalah sebagai berikut : For i = 0 To JumByte - 1

DataByte1(i) = DataByte1(i) Xor DataByte2(i) Next

Setelah didapatkan hasil dari peng-XOR-an tersebut, proses selanjutnya adalah data tersebut menggabungkan DataBlok tersebut menjadi dua dengan masing-masing bagian berukuran 32-bit. Hasil dari penggabungan tersebut disimpan ke dalam dua variabel yaitu variabel DataL dan variabel DataR. Adapunscript untuk menggabungkan data menjadi dua bagian dengan ukuran masing-masing 32-bit adalah sebagai berikut :

Join_Data = ((a And &H7F) * &H1000000) Or (b * &H10000) Or (CLng(c) * &H100) Or d

If a And &H80 Then

(69)

Setelah DataL dan DataR didapatkan, maka proses dilanjutkan ke pemanggilan fungsi Blok Enkripsi. Fungsi ini telah dijelaskan di Sub Bab 3.1.1.1 Key Expansion. Hasil dari proses Enkripsi Data disimpan dalam variabel DataReg, dimana variabel DataReg sebelumnya berisi nilai dari data IV. Dengan kata lain, hasil dari proses Blok Enkripsi menggantikan nilai dari data IV. Selain hasil tersebut disimpan ke dalam variabel DataReg, hasil tersebut juga disimpan ke dalam variabel DataOutput. Proses Enkripsi Data ini diulangi sebanyak jumlah blok yang ada.

3.1.2 Blowfish Dekripsi

(70)

Gambar 3.4 menggambarkan alur kerja dari algoritma Blowfish untuk proses Dekripsi. Dari gambar 3.4 dapat dilihat bahwa terdapat dua proses utama yaitu prosesKey Expansion dan proses Dekripsi Data.

ProsesKey Expansion membutuhkan tiga masukkan yaitu P-array, S-box dan Kunci. Hasil dari Key Expansion adalah P-array dan S-box yang baru. Proses

Key Expansion yang digunakan pada proses Dekripsi sama dengan proses Key Expansionyang digunakan pada proses Enkripsi.

Proses Dekripsi Data mempunyai masukkan yaitu P-array dan S-box hasil dari proses Key Expansion dan Cipher Text. Hasil dari Proses Dekripsi Data adalahPlain Text.

3.1.2.1Key Expansion

Proses Key Expansion yang digunakan pada Blowfish Dekripsi sama dengan proses Key Expansion yang digunakan pada Blowfish Enkripsi. Proses

(71)

3.1.2.2 Dekripsi Data

Gambar 3.5FlowchartDekripsi Data

(72)

dimasukkan. Adapun script untuk mengkopi data IV ke dalam memori adalah sebagai berikut :

CopyMemory VarPtr(DataReg(0)), VarPtr(IV(0)), 8&

Data IV disimpan dalam variabel DataReg. Script untuk mengkopi data Cipher Textke dalam memori adalah sebagai berikut:

CopyMemory VarPtr(DataBlok(0)), VarPtr(DataInput(iIndex)), 8&

Selain data Cipher Text disimpan ke dalam variabel DataBlok, data Cipher Text

juga disimpan ke dalam varibel DataSimpan.

Setelah data IV dan dataCipher Textdikopikan ke dalam memori, proses selanjutnya menggabungkan DataBlok menjadi dua bagian dengan masing-masing bagian berukuran 32-bit. Adapun script untuk menggabungkan data dengan ukuran 32-bit adalah sebagai berikut :

Join_Data = ((a And &H7F) * &H1000000) Or (b * &H10000) Or (CLng(c) * &H100) Or d

If a And &H80 Then

Join_Data = Join_Data Or &H80000000 End If

Setelah DataL dan DataR didapatkan, maka proses dilanjutkan ke pemanggilan fungsi Blok Dekripsi. Adapunscriptuntuk Blok Dekripsi adalah sebagai berikut :

For i = Putaran_Blowfish + 1 To 2 Step -1 xL = xL Xor blf_P(i)

xR = Feistel(xL) Xor xR temp = xL

xL = xR xR = temp Next i

(73)

xR = temp

xR = xR Xor blf_P(1) xL = xL Xor blf_P(0)

Terdapat perbedaan utama antara Blok Dekripsi dan Blok Enkripsi. Perbedaan tersebut terletak pada pemanggilan urutan array dari P-array. Adapun perbedaan tersebut adalah sebagai berikut :

Blok Enkripsi

For i = 0 To Putaran_Blowfish - 1 ………

xR = xR Xor blf_P(Putaran_Blowfish) xL = xL Xor blf_P(Putaran_Blowfish + 1) Blok Dekripsi

For i = Putaran_Blowfish + 1 To 2 Step -1 ………

xR = xR Xor blf_P(1) xL = xL Xor blf_P(0)

Setelah proses Blok Dekripsi selesai dilakukan, proses selanjutnya adalah meng-XOR-kan data IV yang telah dikopikan ke dalam memori dengan hasil dari proses Blok Dekripsi tersebut. Adapun script untuk meng-XOR-kan antara hasil proses Blok Dekripsi dengan IV adalah sebagai berikut :

For i = 0 To JumByte - 1

DataByte1(i) = DataByte1(i) Xor DataByte2(i) Next

(74)

3.2 Perancangan Umum ProsesEncodingdan ProsesDecoding

Pada perancangan umum proses encoding dan proses decoding, akan digunakanflowchart yang akan menerangkan sistem yang akan dibuat.Flowchart

tersebut meliputi flowchart Proses Encoding dan ProsesDecoding secara umum,

flowchart Encoding,flowchart Decoding.

3.2.1 Encoding

(75)

Gambar 3.6 menggambarkan alur kerja dari proses encoding. Proses tersebut dimulai dari pemasukkanTextdan Password. Setelah pemasukkan kedua elemen tersebut, proses selanjutnya adalah mengacakTextdanPassword tersebut. Adapun script untuk pengacakan antara Text dan Password tersebut adalah sebagai berikut :

mess = Asc(activeText)

For i = 1 To Len(activeKey)

Y = Asc(Mid$(activeKey, i, 1)) mess = mess Xor Y

Next

AcakKunci = mess

Setelah Text dan Password tersebut melalui proses pengacakan, maka hasil dari proses tersebut di konversi ke dalam bentuk biner. Adapun script untuk mengkonversi integer ke biner adalah sebagai berikut :

Do While n >= 1

j = n Mod 2 & j n = n \ 2

Loop

If Len(j) < 8 Then j = String(8 - Len(j), "0") & j ByteToBin = j

Setelah bilangan biner telah didapatkan, maka proses selanjutnya adalah pengambilan nilai komponen piksel-piksel dari citra yang telah dipilih dan kemudian menyimpan bilangan-bilangan biner tesebut ke dalam piksel yang terpilih. Adapun script untuk pengambilan nilai komponen piksel-piksel adalah sebagai berikut :

r = (pix(0) And RGB(255, 0, 0)) - (pix(0) And RGB(255, 0, 0)) Mod 2: elemen(1) = r

(76)

b = ((pix(0) And RGB(0, 0, 255)) \ 65536) - ((pix(0) And RGB(0, 0, 255)) \ 65536) Mod 2: elemen(3) = b

Adapun script untuk penyimpanan bilangan biner ke dalam komponen piksel-piksel yang terpilih adalah sebagai berikut :

For j = 1 To 8

elemen(j) = elemen(j) + CInt(Mid(conv_bin, j, 1)) ' * 1 Next j

.picView2.PSet (bb(0), aa(0)), RGB(elemen(1), elemen(2), elemen(3))

.picView2.PSet (bb(1), aa(1)), RGB(elemen(4), elemen(5), elemen(6))

.picView2.PSet (bb(2), aa(2)), RGB(elemen(7), elemen(8), b)

Prosesencoding dilakukan sebanyak panjangText yang ingin disimpan ke dalam Citra yang telah dipilih dan dimulai kembali dari proses pengacakan Text dan

(77)

3.2.2 Decoding

Citra Mulai

Nilai ASCII suatu karakter Penguraian Pixel Citra

Acak Password & Text Password

Selesai Text

If j < tinggi gambar Ya

Tidak

If j < lebar gambar

Ya

Tidak

Gambar 3.7Flowchart Decoding

Gambar 3.7 menggambarkan alur kerja dari proses Decoding. Proses

(78)

adalah mengambil nilai tiap komponen dari piksel-piksel Citra tersebut. Adapun

script untuk mengambil nilai tiap komponen dari piksel-piksel Citra adalah sebagai berikut :

pix(nmd) = .picView2.Point(i, j)

elemen(8) = ((pix(nmd) And RGB(255, 0, 0)) Mod 2)

elemen(7) = (((pix(nmd) And RGB(0, 255, 0)) \ 256) Mod 2) elemen(6) = (((pix(nmd) And RGB(0, 0, 255)) \ 256 ^ 2) Mod 2)

Apabila dicermati lebih lanjut, script pengambilan nilai komponen pada proses Decoding ada sedikit perbedaan dengan script pengambilan nilai komponen pada prosesEncoding.

Pada prosesEncoding:

r = (pix(0) And RGB(255, 0, 0)) - (pix(0) And RGB(255, 0, 0)) Mod 2

Pada prosesDecoding:

elemen(8) = ((pix(nmd) And RGB(255, 0, 0)) Mod 2) Pada prosesEncoding,script tersebut dimaksudkan untuk mengurangi 1 nilai dari komponen tersebut apabila nilai dari komponen tersebut adalah ganjil. Sedangkan pada prosesDecoding, pengurangan nilai tersebut tidak dibutuhkan.

Setelah proses penguraian tersebut dilaksanakan, maka hasil dari proses tersebut adalah Nilai ASCII dari suatu karakter. Setelah nilai tersebut didapatkan maka proses selanjutnya adalah mengacak kembali Nilai ASCII tersebut dengan

(79)

Proses Decodingdiulangi sebanyak panjang dari lebar Citra dan panjang dari tinggi Citra yang dipilih. Karena ketergantungan dari lebar dan tinggi Citra yang dipilih, maka kecepatan dari proses Decoding lebih lambat dari proses

Encodingyang hanya tergantung dari panjang karakter yang ingin disimpan.

3.3 Perancangan Umum Proses Cek Piksel Gambar

Proses cek piksel gambar tersebut merupakan proses bantuan untuk mengecek hasil dari proses encoding dimana gambar hasil proses encoding

tersebut tidak dapat dilihat secara kasat mata. Proses cek piksel gambar terdiri dari 3 proses yaitu :

a. Pengecekan seluruh piksel secara otomatis.

Proses ini dilakukan hanya dengan menekan satu tombol dan program bantu akan mengecek seluruh piksel dari gambar sebelum dilakukan prosesencoding

dan gambar setelah dilakukan proses encoding serta menampilkan elemen-elemen dari gambar-gambar tersebut dan juga memberikan informasi jumlah perubahan dari elemen-elemen tersebut.

b. Pengecekan piksel dengan cara memasukkan koordinat yang diinginkan Proses ini dilakukan dengan cara pengguna memasukkan koordinat x dan koordinat y yang diinginkan maka program bantu akan memberikan informasi elemen-elemen gambar sebelum dilakukan proses encoding dan informasi elemen-elemen gambar setelah dilakukan prosesencoding.

(80)

Proses ini dilakukan dengan cara pengguna mengklik gambar secara acak. Program bantu akan memberikan informasi tentang koordinat yang dimasukkan yang terpilih dan informasi elemen-elemen dari gambar sebelum dilakukan proses encoding dan informasi elemen-elemen dari gambar setelah dilakukan prosesencoding.

Ketiga proses tersebut dapat dilaksanakan secara terpisah.

3.4 Desain Sistem

3.4.1 Halaman Utama

Gambar 3.8 merupakan rancangan untuk Halaman Utama pada sistem aplikasi yang akan dibuat. Halaman utama ini nantinya akan terdiri atasmenu bar,

toolbar,radiobutton,text editor, dan status bar.

Menu bar sendiri terdiri atas menu File, menu Edit, menu View, menu Actions, menu Windows dan menu Help. Dari tiap-tiap menu bar masih terdapat beberapa sub menu bar.

Toolbar terdiri dari toolbar Pesan Baru, Buka Pesan, Simpan Pesan, Cut, Copy, Paste, Undo, Cari Gambar, Crypto dan Stegano. Toolbar ini merupakan penjabaran dari sub menu – sub menu dari menu bar.

(81)

Disamping menu bar, toolbar dan radiobutton, sistem aplikasi juga menyediakan text editor dimana pengguna tidak perlu menggunakan text editor lainnya hanya untuk menuliskan pesan yang diinginkan.

Fasilitas lain yang diberikan sistem aplikasi yang akan dibuat adalah informasi tentang operasi yang sedang dilakukan, informasi tentang status gambar yang telah dipilih atau belum dipilih, informasi tentang status kunci yang digunakan untuk proses enkripsi maupun proses dekripsi serta informasi tentang status password yang digunakan untuk prosesencodingdan prosesdecoding.

Gambar 3.8 Halaman Utama

3.4.2 Halaman Cari Gambar

(82)

Pakai Gambar. Selain itu halaman ini juga menyediakan preview untuk gambar yang telah dipilih dan juga informasi tentang gambar yang telah dipilih.

X

Cari Gambar

Preview

Cari Gambar

Bersih Gambar

Informasi Gambar

Nama Gambar : Tidak Diketahui Ukuran Gambar : 0 pixel X 0 pixel

Batal Pakai

Gambar OK

Gambar 3.9 Halaman Cari Gambar

3.4.3 Halaman Masukkan/Generate Initialization Vector(IV)

Gambar 3.10 merupakan rancangan utuk Halaman Generate Initialization Vector (IV) dimana halaman ini nantinya akan digunakan pada proses enkripsi. Halaman Generate Initialization Vector (IV), terdiri dari radiobutton, text box, dan tombol.

(83)

mengetahui tentang bilangan hexadesimal. Halaman ini menyediakan juga tombol Default IV. Tombol ini berguna untuk mengembalikan nilai IV ke nilai semula.

Gambar 3.10 Halaman Generate Initialization Vector (IV) Proses Enkripsi

(84)

Gambar 3.11 Halaman MasukkanInitialization Vector(IV) Proses Dekripsi

3.4.4 Halaman Set Kunci/Password

Gambar 3.12 merupakan rancangan untuk Halaman Set Kunci Enkripsi. Gambar 3.13 merupakan rancangan untuk Halaman Set Kunci Dekripsi.

Gambar

Gambar 2.3 Algoritma simetris secara sederhana
Gambar 2.5 Cipher Block Chaining (CBC) Mode Proses Dekripsi
Gambar 2.6 merupakan gambar flowchart yang menerangkan secara
Gambar 2.6 Algoritma Blowfish
+7

Referensi

Dokumen terkait

Kantor PPKB Kabupaten Jembrana sebagai SKPD yang dipimpin oleh pejabat eselon III di lingkungan Pemerintah Kabupaten Jembrana diwajibkan menyusun Rencana Kinerja tahunan

“ Iya selama saya bekerja sebagai buruh pabrik saya cukup merasa dirugikan karena dalam kontrak kerja apabila para buruh lembur sampai malam maka akan diberikan

Setidaknya 33,92% dari peserta sosialisasi telah memiliki usaha sampingan yang terbagi menjadi 24,42% usaha budidaya jangkrik dan sisanya tertarik mengembangkan usaha

1) Pada saat melakukan koneksi ke server , pada bagian “Koneksi ke Aplikasi Dapodik Tidak Terhubung “. Hal ini terjadi karena pada server sudah melakukan perubahan setting

Rotten Riley, Queen of Space Camp, looked like an Oort cloud about to explode. “No, because you’re always crossing

Penilaian kinerja dengan kriteria sebagai berikut: Indikator penilaian kinerja adalah  menunjukkan kerja sama yang baik dalam kelompok dengan mengambil

Data-data tersebut meliputi RAB, laporan mingguan, progress report, dan time schedule.Metode yang digunakan untuk menganalisis adalah metode nilai hasil (Earned Value

Penelitian ini bertujuan untuk menjelaskan keterampilan mengajar guru dalam pembelajaran Ilmu Pengetahuan Sosial siswa kelas V SD 2 Mlatinorowito dan peningkatan hasil