Algoritma Vigenere

Algoritma Vigenere digunakan untuk kriptografi
Vigenere cipher memetakan dari karakter ke karakter lainya yang didasarkan pada kunci yang spesifik multiple shift. Sebuah kunci dengan panjang n merepresentasikan shift S0,S2,S3,…Sn-1.

Transformasi penyandian memetakan karakter ke I dari teks berita P = P0,P1,P2,P3….,Pt-1 ke karakter tek sandi I dari pesan rahasia C =c0,c1,c2,c3….cn-1, dengaan cara…..

Ci ≡ Pi + Sr ( mod m ) ( 0 ≤ Ci < m, 0 ≤ i < t )

Dimana r ≡ i ( mod n ) ( 0 ≤ r < n )

contoh programnya adalah :


namespace Cryptography140203080012
{
public partial class Form3 : Form
{
// Variabel global
int i, j;
public Form3()
{
InitializeComponent();
}

//Tombol Encrypt pada algoritma Vigenere
private void button1_Click(object sender, EventArgs e)
{
//menginisialisasikan textbox(Plain text & key) pada suatu variabel
String PlainText1 = tb_PlainText1.Text;
String key1 = tb_key1.Text;

// kondisi bila karakter kurang dari 10
if (PlainText1.Length < 10)
{
MessageBox.Show(“Plain text is less than 10 Character!!!”);
}
// kondisi bila salah satu textbox belum terisi data
else if ((PlainText1 == “”) || (key1 == “”))
{
MessageBox.Show(“Data it’s not complete!!!”);
}
else
{
//pengulangan untuk baris dan kolomnya sesuai dengan panjang karakter pada textbox (Plain Text)
for (i = 0, j = 0; i = key1.Length)
{
j = 0;
}
//menghitung encrypt dengan algoritma Vigenere Cipher = (Plain Text + key) % 26
int CT1 = 65 + (((PlainText1[i] – 65) + (key1[j] – 65)) % 26);

//mengkonversikan integer ke char
char CipherText1 = Convert.ToChar(CT1);
//memasukkan nilai ke dalam text boxt (CipherText)
tb_CipherText1.Text += CipherText1;
}

}

}
//Tombol clear untuk encrypt
private void button3_Click(object sender, EventArgs e)
{
tb_PlainText1.Text = “”;
tb_key1.Text = “”;
tb_CipherText1.Text = “”;
}

//Tombol clear untuk descrypt
private void button4_Click(object sender, EventArgs e)
{
tb_PlainText2.Text = “”;
tb_key2.Text = “”;
tb_CipherText2.Text = “”;
}

//Tombol Decrypt pada algoritma Vigenere
private void button2_Click_1(object sender, EventArgs e)
{
//menginisialisasikan textbox(Cipher text & key) pada suatu variabel
String CipherText2 = tb_CipherText2.Text;
String key2 = tb_key2.Text;

// kondisi bila karakter kurang dari 10
if (CipherText2.Length < 10)
{
MessageBox.Show(“Cipher text is less than 10 Character!!!”);
}

// kondisi bila salah satu textbox belum terisi data
if ((CipherText2 == “”) || (key2 == “”))
{
MessageBox.Show(“Data it’s not complete!!!”);
}
else
{
//pengulangan untuk baris dan kolomnya sesuai dengan panjang karakter pada textbox (Cipher Text)
for (i = 0, j = 0; i = key2.Length)
{
j = 0;
}

//menghitung decrypt dengan algoritma Vigenere Cipher = Plain Text – key
,hampir seperti encypt namun perbedaannya dari operator (dikurangi)

int PT1 = ((CipherText2[i] – 65) – (key2[j] – 65));
//kondisi bila PT1(Plain Text) bernilai negatif , dan harus dibalikan dari belakang. Seperti x,y,z
if (PT1 < 0)
{
PT1 = 26 + PT1;
}

//mengkonversikan integer ke char dan melakukan langkah selanjutnya dengan mengoperasikannya ke nilai hasil bagi (mod)
char PlainText2 = Convert.ToChar(65 + (PT1 % 26));

//memasukkan nilai ke dalam text boxt (Plain Text)
tb_PlainText2.Text += PlainText2;
}

}
}

}
}

2 Comments (+add yours?)

  1. dedy
    Apr 09, 2013 @ 21:27:05

    maaf gan.. ni pake program apa??

    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

%d bloggers like this: