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
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