Gambar 3.6 Sequence Diagram
Proses Extraction-Decryption
3.3. Pseudocode
Pseudocode adalah bentuk penulisan dari algoritma yang menggunakan struktur
bahasa pemrograman sederhana yang bertujuan untuk dapat dibaca oleh manusia.
3.3.1. Pseudocode Enkripsi
Berikut adalah pseudocode untuk proses penyandian pesan rahasia encryption.
cek_kuncip, g, x, k y
← BigInteger.ModPowg, x, p c1
← BigInteger.ModPowg, k, p foreach char c in s
Universitas Sumatera Utara
c2 ← BigInteger.Powy, k c p
end foreach
Pada proses enkripsi user akan menginputkan kunci kriptografi, kemudian sistem akan mengecek apakah kunci kriptografi tersebut sesuai dengan syarat
algoritma ElGamal. Kemudian sistem akan menghitung nilai �. Setelah sistem
mendapatkan nilai y maka sistem akan menghitung nilai �1 dan �2.
3.3.2. Pseudocode Dekripsi
Berikut adalah pseudocode untuk proses pemulihan pesan rahasia decryption.
foreach char c in s cipherteks += System.Convert.ToInt32c.ToString + ;
end foreach string text = ;
string[] bitsplain = cipherteks.Split ; for int i = 0; i bitsplain.Length - 1; i+=2;
string[] bitsplain = cipherteks.Split end for
for int i = 0; i bitsplain.Length - 1
c1[i] ← Convert.ToInt32bitsplain[i]
c2[i] ← Convert.ToInt32bitsplain[i + 1]
c1x ← BigInteger.Powc1[i],p - 1 - x p
plain ← c2[i] x c1x mod p
end for
Pada proses dekripsi ciphertext dihasilkan dari proses ekstrasi. Kemudian cipherteks tersebut dilakukan split memisahkan untuk mendapat nilai dari
�1 dan �2. Kemudian
�1 dan �2 diubah menjadi nilai desimal. Setelah didapat nilai desimal �1 dan
�2 maka dilakukan perhitungan �1� dan ����� untuk menghasilkan plaintext.
3.3.3. Pseudocode Embedding
Berikut adalah pseudocode untuk proses penyisipan pesan ke dalam gambar embedding.
foreach char c in word bincipher += System.Convert.ToInt32c.ToString +
end foreach string binercipher =
string[] descipher = bincipher.Split for int i = 0; i descipher.Length - 1; i++
binercipher += getBinerConvert.ToInt32descipher[i] end for
Universitas Sumatera Utara
for nilaix = 0; nilaix batascitra + 1 fx
← mx +b pixelr
← gbr_asli.GetPixelfx, nilaix.R pixelg
← gbr_asli.GetPixelfx, nilaix.G pixelb
← gbr_asli.GetPixelfx, nilaix.B rx
← getBinerpixelr gx
← getBinerpixelg bx
← getBinerpixelb if mark == biner.Length
goto selesai else
{ rx
← rx.Remove7, 1.Insert7, biner[mark] }
if mark == biner.Length goto selesai
else {
gx
← gx.Remove7, 1.Insert7, biner[mark] }
if mark == biner.Length goto selesai
else {
bx
← bx.Remove7, 1.Insert7, biner[mark] }
end for
Pada proses embedding ciphertext dilakukan pemisahan kemudian ciphertext diubah kedalam bentuk desimal, setelah didapat nilai desimal dari ciphertext maka
ciphertext tersebut diubah ke dalam bentuk biner delapan bit. Kemudian sistem akan
melakukan penghitungan �� untuk mendapat letak pixel yang akan disisip. Setelah
didapat letak pixel, sistem akan mengubah pixel tersebut kedalam bentuk biner, kemudian sistem akan menghapus biner paling akhir dari pixel dan menambahkan
biner paling akhir ciphertext.
3.3.4. Pseudocode Extraction
Berikut adalah pseudocode untuk proses ekstraksi pesan ke dalam gambar extraction.
Bitmap gbr_asli = new BitmapStegoImage.Image for nilaix = 0; nilaix korx nilaix kory; nilaix++
fx ← mx + b
if fx = korx || fx = kory pixelr
← gbr_asli.GetPixelfx, nilaix.R
Universitas Sumatera Utara
pixelg ← gbr_asli.GetPixelfx, nilaix.G
pixelb ← gbr_asli.GetPixelfx, nilaix.B
rx ← getBinerpixelr
gx ← getBinerpixelg
bx ← getBinerpixelb
plainbiner += rx.Substring7, 1 plainbiner += gx.Substring7, 1
plainbiner += bx.Substring7, 1 end if
end for
Pada proses ekstraksi sistem akan melakukan perhitungan fx untuk mendapatkan pixel yang akan dilakukan proses ekstraksi nilai pixel diubah kedalam
bentuk biner delapan bit. Kemudian sistem mengambil nilai biner paling akhir dari pixel.
3.4. Flowchart