3.4. Pseudocode Sistem
Pseudocode merupakan pendeskripsian dari algoritma pemrograman komputer yang
ada dimana menggunakan struktur sederhana dari bahasa pemrograman yang digunakan dan dapat dimengerti. Berikut merupakana pseudocode dari sistem yang
dibangun.
3.4.1. Psuedocode Enkripsi Pesan
ENKRIPSI PESAN DENGAN OTP
For i= 0 to Panjang kunci-1 Cipherteks= plainteks + key
Berikut ini merupakan penjelasan dari pseudocode di atas. Pseudocode,dimana pseudocode ini adalah proses enkripsi dari OTP. Perulangan sebanyak panjang
karakter untuk menghasilkan cipherteks nya dengan menggunakan nilai plainteks+kunci.
3.4.2. Psuedocode Enkripsi Kunci Pesan
ENKRIPSI KUNCI PESAN DENGAN RABIN
1. function enkripsiP,n: 2.
ifP n: 3.
C = powP,2,n 4.
return C 5. return False
1. function enkripsiPesanP, n: 2.
C = list 3.
for i = 0 to lengthP-1:
Universitas Sumatera Utara
4. C.appendenkripsiordP[i], n
5. if C[i] == False: break
6. return C
Berikut ini merupakan penjelasan dari pseudocode diatas dimana fungsi enkripsi dari rabin dengan parameter p dan n.jika p harus lebih kecil dari n dimana untuk cipherteks
nya yaitu dengan p2 mod n untuk nilai cipherteksnya jika benar. Jika salah maka dia akan kembali ke fungsi enkripsi.
3.4.3. Psuedocode Pembangkit Kunci
Pseudocode dari pembangkit kunci untuk algoritma Rabin terdiri dari dua bagian,
yaitu fungsi cek Kunci p, q dan bangkitkan Kunci sebagai berikut.
CEK KUNCI 1.function cekKuncip,q:
2.ifp mod 4 == 3 and TheoremFermat p and q mod 4 == 3 and TheoremFermatq
and p ≠q and lengthstrpq ≤ 8: 3.return True
4.return False
BANGKIT KUNCI 1.function bangkitkanKunci:
2.syarat_tdk_terpenuhi = True 3.while syarat_tdk_terpenuhi:
4.p = random3,9999
3.4.4. Pseudocode Dekripsi Kunci Pesan
Berikut ini adalah pseudocode dari proses dekripsi pada penelitian ini
.
Universitas Sumatera Utara
1.function autodekripsiC, p, q: 2.mp = powC, p+14, p
3.mq = powC, q+14, q 4.x, y, n = CRTmp,mq,p,q
5.P1 = x + y mod n 6.P2 = x
– y mod n 7.P3 = -x + y mod n
8.P4 = -x – y mod n
9.return minP1, P2, P3, P4
1.function dekripsiC, p, q: 2.
Psn = [] 3.
for i = 0 to lengthC-1: 4.
Psn.appendchrautodekripsiC[i],p,q 5.
return joinPsn
Pada algoritma Rabin, terdapat empat hasil dekripsi dan penerima pesan harus menentukan pesan yang benar. Terdapat beberapa cara yang dapat dilakukan untuk
dapat menentukan hasil dekripsi yang benar, seperti menggandakan pesan atau menggandakan nilai bit dari pesan sebelum dienkripsi dan hasil yang memiliki nilai
yang berulang merupakan kemungkinan hasil dekripsi yang benar. Jika pesan yang dienkripsi jumlahnya sedikit, maka penerima pesan relatif mudah
dalam menentukan hasil dekripsi. Namun jika pesan yang dienkripsi jumlahnya banyak, maka akan timbul kesulitan bagi penerima pesan dalam menentukan hasil
dekripsi. Penulis sudah mencoba melakukan enkripsi menggunakan kunci publik yang lebih besar dari 255 dan dekripsi untuk nilai yang mencakup karakter pada
ASCII 8 bit 1 sampai dengan 255 dan memberikan pengalaman bahwa hasil dekripsi yang benar biasanya adalah nilai yang paling kecil dari keempat hasil
dekripsi. Berdasarkan pengalaman tersebut, penulis melakukan modifikasi dalam proses dekripsi pada penelitian ini yaitu dengan melakukan proses autodekripsi
penerima pesan tidak direpotkan dalam menentukan nilai dekripsi yang dianggap benar.
Universitas Sumatera Utara
3.4.5. Pseudocode Dekripsi Pesan