Vigenere Cipher

August 22, 2009 at 6:42 am 2 comments

Pada artikel sebelumnya saya mencoba menerapkan Julius Caesar Enkripsi dengan menggunakan Visual Basic dan php, kali ini saya akan mencoba menerapkan salah satu metode enkripsi yaitu Vigenere Cipher.

Vigenere Cipher pertama kali diusulka oleh Blaise de Vigenere dari pengadiln Henry III di Perancis pada abad 16. Vigenere menggunakan table Vigenere dalam melakukan enkripsi. Tabel Vinegerenya seperti berikut :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

Tabel di atas sangat berhubungan dengan caesar cipher karena menggunakan pergeseran juga. Pada baris pertama pergeserannya adalah 0 (nol) kemudian baris kedua pergeserannya adalah 1 (satu) dan seterusnya sampai baris terakhir pergeserannya adalah 25. dengan demikian dalam penerapannya tabel vigenere tidak dibuatpun bisa, artinya nantinya tidak perlu membuat database beserta tabel vigenerenya. Namun jika mau dikembangkan akan lebih baik jika digunakan database dan tabel sendiri, apalagi jika nantinya isi dari tabel vigenerenya akan dimodifikasi, sehingga akan lebih sulit untuk dipecahkan alias didekripsikan oleh orang yang ingin berhak.

Misalkan seorang jenderal mengirim pesan kepada komandan perang di medan pertempuran pesannya sebagai berikut :

Pesan               : SERANGAN FAJAR

Kata Kunci      : PAGI

Cara mengenkripsinya kata kunci disejajarkan dengan pesan tersebut, sehingga hasilnya seperti berikut :

Plaintext S E R A N G A N F A J A R
Kata Kunci P A G I P A G I P A G I P
Ciphertext H A X I C G G V U A P I G

Ambil contoh S dengan P maka cara mencari ciphertextnya ditabel vigenere dilihat kolom S dan cari baris P maka hasil pertemannya adalah H, begitu juga untuk seterusnya.

Lalu bagaimana kalau dicoba dengan Visual Basic dan MySql ?

Pertama buat dahulu database dan tabelnya, atau anda bisa download saja.

Berikutnya buat desainnya seperti berikut :

vigenere1

Textbox untuk PLAINTEXT namenya adalah txtplain

Textbox untuk KUNCI namenya adalah txtkunci

Textbox untuk CIPHER namenya adalah txtcipher

Tombol Enkrisi namenya adalah cmdEnkripsi

Adodc1 namenya adalah Adovigenere

Sedangkan untuk Source codenya adalah
Private Sub cmdEnkripsi_Click()
panjangplain = Len(Trim(txtplain.Text))
j = 1
For I = 1 To panjangplain
kar = Mid(txtplain.Text, I, 1)
IndexAscii = Asc(kar) – 64
panjangkunci = Len(Trim(txtkunci.Text))
If kar = ” ” Then
data= ” ”
j = j – 1
Else
karkunci = Mid(txtkunci.Text, j, 1)
Adovigenere.RecordSource = “select * from tblvigenere where kunci = ‘” + karkunci + “‘”
Adovigenere.Refresh
data = Adovigenere.Recordset.Fields(IndexAscii)
End If
If j = panjangkunci Then
j = 1
Else
j = j + 1
End If
sandi = sandi +data
Next I
txtcipher.Text = sandi
End Sub

Private Sub txtkunci_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub txtplain_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Sehingga jika dirun hasilnya seperti berikut :

vigenere2

Entry filed under: Enkripsi. Tags: .

Enkripsi Julius Caesar Dekripsi pada Vigenere Cipher

2 Comments Add your own

  • 1. Mus  |  August 27, 2009 at 10:50 pm

    Assalamu ‘alaikum WR, WB
    salam kenal dan salam hangat selalu, Alhamdulillah! Kita semua masih bisa bertemu Ramadhan 1430 H Tahun ini, Selamat menunaikan ibadah puasa, semoga kita semua diberi kekuatan dan kemudahan dalam menjalankan segala perintahNnya, Amiin.
    Sahabat! 2 minggu lagi sebuah kontes seo RZSV yang saya ikuti akan berahir. Ada mimpi untuk memiliki sebuah komputer dengan berharap bisa memenangkan kontest tersebut. Saya tahu kontes ini berseberangan dengan idealisme blogger yang seharusnya, namun niatan tulus hanya untuk belajar seo. Jika berkenan sudilah kiranya menempatkan nama Rusli Zainal Sang Visioner di bagian sidebar atau blogroll blog sahabat, dengan link ke blog utama bukan pada Artikel. Seditaknya sampai kontes seo ini berahir, yaitu sampai 12 september saja,Setelah kontes berakhir, sahabat bisa menghapusnya. Bantulah saya mewujudkan impian saya, bantuan backlink dari sahabat sangatlah berarti bagi saya. tiada yang bisa saya berikan sebagai balasan atas bantuan dari sahabat kecuali ungkapan terima kasih yang sebesar-besarnya serta link back sebagaimana tradisi bertukar link.
    Wassalamu ‘alaikum WR. WB

    Reply
  • 2. Dekripsi pada Vigenere Cipher « Jingklak’s Weblog  |  September 10, 2009 at 2:33 am

    […] 10, 2009 Artikel ini kelanjutan dari vigenere cipher posting saya sebelumnya, untuk dekripsinya desainnya saya tambahkan sebagai berikut […]

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


August 2009
M T W T F S S
« Jun   Sep »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

%d bloggers like this: