Analisis Kombinasi Algoritma One Time Pad Dan Algoritma Elgamal Dalam Pengamanan Pesan

57

LAMPIRAN 1 :

DAFTAR PUBLIKASI ILMIAH PENULIS (TESIS)

No.

Judul Artikel

Penulis

Publikasi

Waktu

(Seminar/Jurnal.

Publikasi

Tempat


dll)
1

Implementasi Pengamanan

Zulfidar,

Seminar Nasional

19

Data Menggunakan Enkripsi

Achmad

Teknologi Informasi

Februari


Fauzi

dan Multimedia

2014

Caesar Cipher dengan
Kombinasi Tabel ASCII

Yogyakarta

2014
(SEMNASTEKNO
MEDIA 2014)

2

Keamanan Teks dengan
Menggunakan Modifikasi


3

Zulfidar,
Dewi

Caesar Cipher yang

Wahyuni

Menggunakan

,Achmad

Kunci Huruf Vokal

Fauzi

Analisis Kombinasi

Zulfidar,


Algoritma Kriptografi

Medan

Dewi

Caesar Cipher dan

Wahyuni

Algoritma One Time Pad

,Achmad

Pada Keamanan Pesan

Medan

Fauzi


Universitas Sumatera Utara

58

LAMPIRAN 2

Listing Program

Public Class Form1
Dim Prime(200) As Integer
Function E_ElGamal(ByVal Plain As String, ByVal p As Integer, ByVal g As
Integer, ByVal x As Integer)
Dim Temp As String = ""
Dim y = (g ^ x) Mod p
txty.Text = y
Dim X2(1000) As Integer
Dim a(1000), b(1000) As Integer
Dim Temp2(1000) As Integer
For i = 0 To Plain.Length - 1

X2(i) = Asc(Plain(i))
Next

Dim Kunci(1000) As Integer

For i = 0 To Plain.Length - 1
Kunci(i) = CInt(Math.Ceiling(Rnd() * (p - 2))) + 1
Next

For i = 0 To Plain.Length - 1
a(i) = SnM(g, Kunci(i), p)
Next

For i = 0 To Plain.Length - 1
b(i) = (SnM(y, Kunci(i), p) * X2(i) Mod p) Mod p
'Temp = Temp & Chr(a(i)) & Chr(b(i))
Temp = Temp & a(i) & "," & b(i) & ","
Next

Universitas Sumatera Utara


59

Temp = Temp.Substring(0, Temp.Length - 1)
Return Temp
End Function

Function D_ElGamal(ByVal Cipher As String, ByVal p As Integer, ByVal g
As Integer, ByVal x As Integer)

Dim TempCp() As String = Cipher.Split(",")
Dim Temp As String = ""
Dim Temp2(1000) As Integer
Dim C As Integer

For i = 0 To TempCp.Length - 1
Temp2(i) = CInt(TempCp(i))
Next
For i = 0 To TempCp.Length - 1


'Temp = Temp & Chr((SnM(Temp2(i), p - 1 - x, p) * Temp2(i + 1) Mod p)
Mod p)
C = (SnM(Temp2(i), p - 1 - x, p) * Temp2(i + 1) Mod p) Mod p
If C < 65 Then
Temp = Temp & Chr(C + 65)
Else
Temp = Temp & Chr(C)
End If
'Temp = Temp & (SnM(Temp2(i), p - 1 - x, p) * Temp2(i + 1) Mod p) Mod p
&""

i=i+1
Next
Return temp
End Function
Universitas Sumatera Utara

60

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles MyBase.Load
Timer1.Interval = 1
Timer1.Enabled = False
lblTime.Text = 0
txtPlain.Text = "FASILKOM"
txtKey_OTP.Text = "XBYHMDKO"
Prime(0) = 2
Prime(1) = 3
Dim j As Integer
Dim N As Integer = 1
Dim found As Boolean
For i = 5 To 255
j=0

found = True

While j 0
b = b & y Mod 2
y=y\2
End While

b = StrReverse(b)
Dim z As Integer
z=1
For i = 0 To b.Length - 1
If b.Chars(i) = "1" Then
z = (x * (z ^ 2)) Mod n
Else
z = (z ^ 2) Mod n
End If
Next
Return z
End Function

Function E_OTP(ByVal Plain As String, ByVal Key As String)
Dim Temp As String = ""
For i = 0 To Plain.Length - 1
Temp = Temp & Chr((Asc(Plain(i)) + Asc(Key(i))) Mod 26 + 65)
Next
Return Temp
End Function


Function D_OTP(ByVal Cipher As String, ByVal Key As String)

Universitas Sumatera Utara

62

Dim Temp As String = ""
Dim j As Integer
For i = 0 To Cipher.Length - 1
j = (Asc(Cipher.Substring(i, 1)) - Asc(Key.Substring(i, 1)))
If j < 0 Then j = j + 26
Temp = Temp & Chr(j Mod 26 + 65)
Next
Return Temp
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
lblTime.Text = 0
Timer1.Enabled = True
If txtKey_OTP.Text.Length txtPlain.Text.Length Then
MessageBox.Show("Panjang Kunci OTP harus sama dengan panjang
Plainteks")
Else
Dim Plain As String = txtPlain.Text

Dim C As String = ""
Dim p As Integer = CInt(txtp.Text)
Dim g As Integer = CInt(txtg.Text)
Dim x As Integer = CInt(txtx.Text)

txtCipher.Text = E_OTP(txtPlain.Text, txtKey_OTP.Text)
txtcipherkey.Text = E_ElGamal(txtKey_OTP.Text, p, g, x)

End If
Timer1.Enabled = False
End Sub

Universitas Sumatera Utara

63

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim C As String = ""

Dim p As Integer = CInt(txtp.Text)
Dim g As Integer = CInt(txtg.Text)
Dim x As Integer = CInt(txtx.Text)

txtKey_OTP.Text = D_ElGamal(txtcipherkey.Text, p, g, x)
txtPlain.Text = D_OTP(txtCipher.Text, txtKey_OTP.Text)

End Sub\
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
lblTime.Text = CInt(lblTime.Text) + 1
End Sub

Private Sub txtp_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles txtp.KeyDown
If e.KeyCode = 13 Then
Dim found As Boolean = False
Dim i As Integer = 0
While i < Prime.Length - 1 And Not found
If Prime(i) = CInt(txtp.Text) Then found = True
i=i+1
End While
If Not found Then
MessageBox.Show("Not Prime")
txtp.Text = ""
End If
End If
End Sub
Universitas Sumatera Utara

64

Private Sub txtp_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles txtp.TextChanged

End Sub

Private Sub txtPlain_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles txtPlain.KeyDown
End Sub

Private Sub txtPlain_LostFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles txtPlain.LostFocus
txtKey_OTP.Text = ""
For i = 1 To txtPlain.Text.Length
Randomize()
txtKey_OTP.Text = txtKey_OTP.Text & Chr((Math.Ceiling(Rnd() * (26)) +
64))
Next
End Sub

Private Sub txtPlain_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles txtPlain.TextChanged

End Sub

Private Sub lblTime_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles lblTime.Click

End Sub
End Class

Universitas Sumatera Utara