Pseudocode dan Flowchart Dekripsi ElGamal

3.3.4 Pseudocode dan Flowchart Dekripsi ElGamal

Pada tahap dekripsi, pesan hasil enkripsi ciphertext akan dikembalikan lagi ke bentuk aslinya. Pesan akan didekripsikan dengan menerima informasi kunci publik dan kunci privat. Berikut adalah pseudocode dari algoritma dekripsi elgamal : 1. function decryptMessage: 2. message = readfileciphertext 3. message = message.split 4. 5. messageInt = [] 6. for item in message: 7. messageInt.appendintitem 8. 9. alpha_exp_b = [] 10. malpha_exp_b = [] 11. 12. alpha_exp_b = messageInt[0::2] 13. malpha_exp_b = messageInt[1::2] 14. 15. p = public key prime number 16. a = private key 17. 18. p_min_a = p - 1 - a 19. 20. n = lenalpha_exp_b 21. decrypt = [] 22. decrypt_result = [] 23. 24. for i in range0,n: 25. decrypt.appendalpha_exp_b[i]p_min_a mod p 26. 27. for i in range0,n: 28. times = malpha_exp_b[i] decrypt[i] 29. decrypt_result.appendtimes mod p 30. 31. pesan = joinchri for i in decrypt_result Pada pseudocode baris 2 dan 3, sistem menerima inputan pesan ciphertext yang kemudian dipecah menjadi karakater-karakter dan disimpan pada variabel Universitas Sumatera Utara messageInt . Lalu karakter karakter ciphertext akan dibagi dua bagian, yang pertama disimpan di variabel alpha_exp_b dan yang kedua disimpan di variabel malpha_exp_b . Karakter yang disimpan di variabel pertama adalah karakter yang berada di posisi genap, sedangkan karakter di variabel kedua berada di posisi ganjil. Kemudian sistem menerima inputan berupa bilangan prima dari kunci publik, dan kunci privat ElGamal. Baris 18 sampai 29 menunjukkan proses perhitungan karakter karakter ciphertext diubah kembali menjadi representasi numerik masing- masing karakter. Dan yang terakhir pada baris 31, karakter karakter tersebut akan diubah kembali menjadi representasi alfabetnya masing-masing lalu dikembalikan menjadi satu pesan asli plaintext. Berikut flowchart algoritma dekripsi ElGamal yang dapat ditunjukkan dari Gambar 3.10. Universitas Sumatera Utara Gambar 3.10 Flowchart Dekripsi ElGamal Universitas Sumatera Utara

3.3.5 Pseudocode dan Flowchart Modulo Inverse