• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN SISTEM

3.2. Perancangan Sistem

3.2.1. Perancangan Flowchart Aplikasi

Pada bagian ini akan dijelaskan langkah-langkah pembuatan aplikasi dalam flowchart

sistem kemudian akan dijabarkan dalam bagian-bagian flowchart algoritma.

Flowchart di dalam sistem diantaranya: flowchart enkripsi Algoritma NTRUEncrypt

dan penyembunyian data EOF, flowchart ekstraksi EOF dan dekripsi pesan, flowchart enkripsi, flowchart dekripsi, flowchart penyisipan data, serta flowchart ekstraksi.

3.2.1.1.Flowchart Enkripsi Algoritma NTRUEncrypt dan Penyembunyian Data EOF

Pada proses ini, algoritma yang digunakan adalah algoritma NTRUEncrypt dan steganografi end of file. Jika pengguna adalah pengirim maka hal pertama yang akan dilakukan adalah menentukan parameter yang akan digunakan untuk membangkitkan kunci yaitu kunci privat dan kunci publik. Kemudian dilanjutkan dengan mengenkripsi plaintext, hasil enkripsi yaitu sebuah ciphertext kemudian disisipkan pada citra asli yang berformat bitmap (.bmp) menggunakan metode end of file yang terlebih dahulu diinputkan. Melalui proses tersebut maka akan dihasilkan Stego Image

yang telah disisipkan ciphertext. Flowchart enkripsi dan penyisipan pesan dapat dilihat pada gambar 3.1.

Mulai Input nilai parameter N, p, q dan df Input Plaintext Selesai Stego image Cipher Text Import citra .bmp Pembangkitan kunci privat dan

kunci publik

Enkripsi pesan

Penyisipian pesan dengan

metode EOF

Ada tiga predefined proses yang terdapat pada gambar 3.1. Predefined proses

adalah proses yang memiliki penjelasan lebih rinci dan dikembangkan agar lebih jelas dipahami. Adapun predefined process dari flowchart diatas antara lain proses pembangkitan kunci, enkripsi dan penyisipan pesan.

3.2.1.2.Flowchart Pembangkitan Kunci NTRUEncrypt

Pada proses ini, untuk membangkitkan kunci pengguna harus terlebih dahulu menentukan parameter yang digunakan algoritma NTRUEncrypt yaitu N, p, q dan df

yang terdapat pada tabel 2.1. Nilai N, p, q dan df digunakan untuk membangkitkan

polynomialf dan g. Kemudian sistem akan mencari nilai invers dari f modulus p (fp) dan invers dari f modulus q (fq). Tidak semua polynomial mempunyai invers, jika nilai invers tidak ditemukan, maka sistem akan membangkitkan kembali polynomial f yang lain. Setelah mendapat nilai f, maka sistem akan menghitung nilai polynomialH = (p x

fp x g) mod q. Polynomial H merupakan kunci publik dan polinomial f merupakan kunci privat. Proses pembangkitan kunci dapat dilihat pada gambar 3.2.

Mulai Input nilai parameter N, p, q dan df Bangkitkan polinom f dan g Nilai fp dan fq ada? Mencari nilai fp dan fq T Selesai Y Mencari kunci publik H = (p x fp x g) modulo q Polinom f dan H

3.2.1.3.Flowchart Enkripsi NTRUEncrypt

Setelah melakukan proses pembangkitan kunci, langkah selanjutnya adalah melakukan proses enkripsi. Pada proses enkripsi, plaintext diinputkan terlebih dahulu, kemudian plaintext tersebut diubah kedalam bentuk polynomial, yaitu polynomial m. Sistem akan membangkitkan nilai polynomial r yang berfungsi untuk menyamarkan pesan pada saat proses enkripsi. Pesan tersebut akan dienkripsi menggunakan kunci publik yaitu polynomial H dan polynomial r dengan rumus E = (r x H + m) mod q.

Polynomial E merupakan polynomial hasil dekripsi yaitu ciphertext. Proses enkripsi

plaintext dapa dilihat pada gambar 3.3 Mulai Input plaintext Plaintext diubah ke bentuk polynomial m Bangkitkan polynomial r Enkripsi Pesan e = (r x H + m) modulo q Polynomial E Selesai Polynomial H

3.2.1.4.Flowchart Penyisipan Steganografi EOF

Setelah melakukan pores enkripsi, langkah selanjutnya adalah proses penyisipan. Pada proses ini dimulai dengan menginputkan ciphertext dan citra yang akan menjadi media penyisipan ciphertext, yaitu citra dengan format bitmap (.bmp). Setelah itu sistem akan membaca nilai piksel citra, kemudian menyisipkan ciphertext pada akhir piksel. Untuk mengenal data yang disisipkan pada akhir citra, maka diperlukan suatu tanda pengenal atau simbol pada awal dan akhir ciphertext yang akan disisipkan. Proses penyisipan ciphertext pada citra asli akan menghasilkan citra stego. Proses penyisipan ciphertext dapat dilihat pada gambar 3.4.

Mulai

Input ciphertext, citra .bmp

Selesai Baca nilai pixel citra

Sisipkan ciphertext pada pixel citra dengan metode EOF

Citra stego

3.2.1.5.Flowchart Ekstraksi EOF dan Dekripsi Algoritma NTRUEncrypt

Pada proses ini, pengguna terlebih dahulu menginputkan citra stego. Untuk mendapatkan pesan, citra stego yang telah disisipkan ciphertext akan diekstraksi oleh penerima pesan. Hasil ekstraksi adalah citra asli dan ciphertext. Setelah proses ekstraksi, pengguna melakukan proses dekripsi ciphertext menggunakan kunci privat yang telah dibangkitkan dan parameter set yang digunakan saat membangkitkan kunci. Hasil dekripsi pesan adalah plaintext. Flowchart ekstraksi dan dekripsi pesan dapat dilihat pada gambar 3.5.

Mulai Ciphertext Selesai Plaintext Import citra stego Input nilai parameter N, p, q dan df Import kunci privat Ekstraksi Pesan Dekripsi Ciphertext

Gambar 3.5 Flowchart Ekstraksi dan Dekripsi Pesan

Predefined process yang terdapat pada gambar 3.5 antara lain proses ekstraksi dan dekripsi pesan.

3.2.1.6.Flowchart Ekstraksi Steganografi EOF

Pada proses ini dimulai dengan menginputkan citra stego. Citra stego merupakan citra yang telah disisipkan ciphertext. Setelah citra stego diinputkan, sistem akan membaca nilai setiap piksel citra stego. Sistem akan memeriksa tanda yang digunakan saat proses penyisipan. Jika penanda pesan ada, maka sistem akan melakukan proses ekstraksi pada citra tersebut. Sedangkan jika penanda pesan tidak ada, maka citra tersebut bukan citra yang disisipkan ciphertext. Proses ekstraksi pesan akan menghasilkan citra stego dan ciphertext. Proses ekstraksi ciphertext dapat dilihat pada gambar 3.6.

Mulai

Input stego image

Selesai Baca nilai pixel stego

image

Ekstraksi pesan dari

stego image EOF

Plaintext

Penanda pesan ada?

Y

T

3.2.1.7. Flowchart Dekripsi NTRUEncrypt

Pada proses dekripsi, pengguna kembali memasukkan nilai parameter yang digunakan pada saat pembangkitan kunci, kemudian menginputkan kunci privat yaitu polynomial f. Setelah itu sistem akan mencari nilai invers f modulo p (fp). Pesan tersebut akan dienkripsi dengan mencari nilai polynomial a = (f x e) mod q, dimana interval koefisien berada pada interval –q/2 dan q/2. Setelah mendapat polynomial a, sistem mencari polynomial b = a mod p, nilai koefisien polynomialb pada interval -1 dan 1, kemudian mencari nilai polynomial c = (fp x b) mod q, nilai koefisien polynomial c

pada interval -1 dan 1. Polynomial c merupakan hasil dekripsi pesan, kemudian diubah kembali ke string yaitu plaintext. Proses dekripsi dapat dilihat pada gambar 3.7

Mulai Input nilai parameter N, p, q dan df Import kunci privat f Cari Nilai fp Hitung nilai polinom a = (f x e) modulo q Hitung nilai polinom b = (a) modulo p Hitung nilai polinom c = (fp x b) modulo p Ubah polinomial c ke string Plaintext Mulai Ciphertext

Dokumen terkait