Pseudocode Implementasi Kriptografi Algoritma Elgamal Dengan Steganografi Teknik Least Significant Bit (LSB) Berdasarkan Penyisipan Menggunakan Fungsi Linier

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