LAMPIRAN 1 :
DAFTAR PUBLIKASI ILMIAH PENULIS (TESIS)
No. Judul Artikel Penulis Publikasi
(Seminar/Jurnal.
dll)
Waktu
Publikasi
Tempat
1 Implementasi Pengamanan Data Menggunakan Enkripsi Caesar Cipher dengan Kombinasi Tabel ASCII
Zulfidar,
2 Keamanan Teks dengan Menggunakan Modifikasi Caesar Cipher yang Menggunakan Kunci Huruf Vokal
Zulfidar,
3 Analisis Kombinasi Algoritma Kriptografi Caesar Cipher dan Algoritma One Time Pad Pada Keamanan Pesan
Zulfidar,
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) & ","
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
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 <= N And found If (i Mod Prime(j)) = 0 Then
found = False End If
j = j + 1 End While If found Then
N = N + 1 Prime(N) = i End If
Next
Dim temp As String = "" For i = 0 To N
temp = temp & Prime(i) & " " Next
txtp.Text = Prime(CInt(Math.Ceiling(Rnd() * (N - 2))))
End Sub
Function SnM(ByVal x As Integer, ByVal y As Integer, ByVal n As Integer) Dim b As String
b = "" While y > 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
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
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
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