Tempat ngumpulnya anak Himatika Perbanas
 
IndeksPortailCalendarFAQAnggotaGroupPencarianPendaftaranLogin

Share | 
 

 Implementasi Vernam Cipher dengan Visual Basic 6.0

Topik sebelumnya Topik selanjutnya Go down 
PengirimMessage
yadoy666
Script Learner
Script Learner


Jumlah posting : 121
Registration date : 20.09.07

PostSubyek: Implementasi Vernam Cipher dengan Visual Basic 6.0   Thu Aug 28, 2008 8:45 pm

Kriptografi bagi kebanyakan orang adalah sesuatu yang sangat sulit dan kita sebagai pemula cenderung malas untuk mempelajarinya. Namun ada sebuah metode kriptografi yang agak mudah untuk dipelajari dan para ahlipun telah menyatakan bahwa metode ini merupakan metode kriptografi yang cukup aman untuk digunakan. Metode tersebut biasa dikenal dengan nama One Time Pad (OTP) atau yang lebih dikenal dengan sebutan Vernam Cipher. Vernam Cipher diciptakan oleh Mayor J. Maugborne dan G. Vernam pada tahun 1917.

Algoritma One Time Pad (OTP) merupakan algoritma berjenis symetric key yang artinya bahwa kunci yang digunakan untuk melakukan enkripsi dan dekripsi merupakan kunci yang sama. Dalam proses enkripsi, algoritma ini menggunakan cara stream cipher yang berasal dari hasi XOR antara bit plaintext dan bit key.

contoh:
Saya memiliki sebuah plaintext yaitu RUSDI dan memiliki sebuah kunci yaitu
CRASH (ingat panjang kunci harus sama dengan plaintext dan sebaiknya tidak
ada karakter yang diulang).

Pertama kita harus mendapatkan kode ASCII dari plaintext kemudian diubah
ke bentuk biner


Code:


------------------------------------------
| Karakter  | ASCII | Notasi biner|
------------------------------------------
| R          | 82      | 0101 0010    |
| U          | 85      | 0101 0101    |
| S          | 83      | 0101 0011    |
| D          | 68      | 0100 0100    |
| I          | 73      | 0100 1001    |
------------------------------------------

Code:


-----------------------------------------
| Karakter  | ASCII | Notasi biner  |
------------------------------------------
| C          | 67      | 0100 0011    |
| R          | 82      | 0101 0010    |
| A          | 65      | 0100 0001    |
| S          | 83      | 0101 0011    |
| H          | 72      | 0100 1000    |
------------------------------------------

Setelah itu masing-masing karakter di XOR-kan dengan Key

R = 0101 0010 U = 0101 0101 S = 0101 0011 D = 0100 0100 I = 0100 1001
C = 0100 0011 R = 0101 0010 A = 0100 0001 S = 0101 0011 H = 0100 1000
XOR -------------------------------------------------------------------------
Cipher: 0001 0001 0000 0111 0001 0010 0001 0111 0000 0001
-----------------------------------------------------------------------------
ASCII : Ctrl-Q Ctrl-G Ctrl-R Ctrl-W Ctrl-A

Proses dekripsi pesan juga melakukan operasi yang sama yaitu XOR antara Cipher
dengan key.


Cipher: 0001 0001 0000 0111 0001 0010 0001 0111 0000 0001
Key: 0100 0011 0101 0010 0100 0001 0101 0011 0100 1000
XOR -------------------------------------------------------------------------
Plain : 0101 0010 0101 0101 0101 0011 0100 0100 0100 1001
-----------------------------------------------------------------------------
ASCII : R U S D I


Saya telah membuat sebuah program sederhana dengan menggunakan Visual Basic 6.0 sebagai implementasi dari Vernam Cipher yang tersebut diatas.



Program ini membutuhkan 3 buah text box 3 buah label dan 2 buah command button. Cara penggunaan program ini cukup sederhana, kita tinggal memasukan string yang akan kita enkrip/dekrip kemudian masukan juga kunci nya. Ingat untuk melakukan enkrip dan dekrip kunci yang dipergunakan harus sama.

Setelah kita menyiapkan textbox, label dan Command Button lalu kopi paste kan source code dibawah ini kedalam form.

Code:

Option Explicit
Private RByte() As Variant

Private Sub cmdDecrypt_Click()
TxtPlain.Text = crypt(TxtCipher.Text, False)
End Sub

Private Sub cmdEncrypt_Click()
TxtCipher.Text = crypt(TxtPlain.Text, True)
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
FrmAbout.Show
End Sub

Private Function crypt(strInput As String, _
ByVal bEncrypt As Boolean) As String

Dim I As Long
Dim NewAsc As Long
Dim keypos As Long

GetKey TxtKey
For I = 1 To Len(strInput)
If bEncrypt Then
NewAsc = Asc(Mid$(strInput, I, 1)) + RByte(keypos)
Else
NewAsc = Asc(Mid$(strInput, I, 1)) - RByte(keypos)
End If
Do While NewAsc < newasc =" NewAsc"> 255
NewAsc = NewAsc - 255
Loop
Mid$(strInput, I, 1) = Chr$(NewAsc)
keypos = keypos + 1
If keypos > UBound(RByte) Then
keypos = 0
End If
Next I
crypt = strInput

End Function

Private Sub GetKey(StrA As String)

Dim I As Long
If Len(StrA) Then
ReDim RByte(Len(StrA) - 1) As Variant
For I = 1 To Len(StrA)
RByte(I - 1) = Asc(Mid$(StrA, I, 1))
Next I
End If
End Sub


Kemudian coba jalankan..
String yang berupa plaintext akan diubah menjadi cipher text dan sebaliknya. Namun apabila key yang dimasukan berbeda maka akan menghasilkan hasil yang berbeda pula. Demikianlah tulisan saya ini. Semoga bermanfaat.


Referensi :
http://ezine.echo.or.id/ezine14/04_Algoritma_Enkripsi_One_Time_Pad.txt

NB
---
Source code lengkap, dapat di download pada

http://geocities.com/yadoy666/download/vernamcipher.zip
Kembali Ke Atas Go down
Lihat profil user http://yadoy666.blogspot.com
 
Implementasi Vernam Cipher dengan Visual Basic 6.0
Topik sebelumnya Topik selanjutnya Kembali Ke Atas 
Halaman 1 dari 1
 Similar topics
-
» bercanda dengan LOGIKA
» PROJECT VISUAL NOVEL[Need Volunteer]
» Minta pendapat mau beli helm dengan budget terbatas!
» bedanya ninja 250 dengan ninja 250 se
» HELP!!! beda MOTUL 5100 dengan MOTUL H-TECH

Permissions in this forum:Anda tidak dapat menjawab topik
Himatika Perbanas :: Interaksi Forum Pilihan :: Forum Membahas Semua Jenis Programming-
Navigasi: