Sandi Vigenère: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
kTidak ada ringkasan suntingan
Bot5958 (bicara | kontrib)
k Perbaikan untuk PW:CW (Fokus: Elemen gaya teks HTML <b> (bold))
 
(3 revisi perantara oleh 3 pengguna tidak ditampilkan)
Baris 9:
[[Berkas:Vigenere-square.png|ka|jmpl|320px|Tabel Vigenère, atau ''[[tabula recta]]'', dapat digunakan untuk [[enkripsi]] maupun [[dekripsi]] sandi Vigenère.]]
 
Sandi Vigenère sebenarnya merupakan pengembangan dari [[sandi Caesar]]. Pada sandi Caesar, setiap huruf teks terang digantikan dengan huruf lain yang memiliki perbedaan tertentu pada urutan alfabet. Misalnya pada sandi Caesar dengan geseran 3, <ttcode>A</ttcode> menjadi <ttcode>D</ttcode>, <ttcode>B</ttcode> menjadi <ttcode>E</ttcode> and dan seterusnya. Sandi Vigenère terdiri dari beberapa sandi Caesar dengan nilai geseran yang berbeda.
 
Untuk menyandikan suatu pesan, digunakan sebuah tabel alfabet yang disebut [[tabel Vigenère]] ([http://upload.wikimedia.org/wikipedia/commons/c/c7/Vigenere-square.png gambar]). Tabel Vigenère berisi alfabet yang dituliskan dalam 26 baris, masing-masing baris digeser satu urutan ke kiri dari baris sebelumnya, membentuk ke-26 kemungkinan sandi Caesar. Setiap huruf disandikan dengan menggunakan baris yang berbeda-beda, sesuai kata kunci yang diulang
Baris 15:
Misalnya, [[teks terang]] yang hendak disandikan adalah perintah "Serbu Berlin":
 
:<ttcode>serbuberlin</ttcode>
Sedangkan kata kunci antara pengirim dan tujuan adalah "Pizza"
:"<ttcode>PIZZA</ttcode>" diulang sehingga jumlah hurufnya sama banyak dengan teks terang:
:<ttcode>PIZZAPIZZAP</ttcode>
Huruf pertama pada teks terang, <ttcode>S</ttcode>, disandikan dengan menggunakan baris berjudul <ttcode>P</ttcode>, huruf pertama pada kata kunci. Pada baris <ttcode>P</ttcode> dan kolom <ttcode>S</ttcode> di tabel Vigenère, terdapat huruf <ttcode>H</ttcode>. Demikian pula untuk huruf kedua, digunakan huruf yang terletak pada baris <ttcode>I</ttcode> (huruf kedua kata kunci) dan kolom <ttcode>E</ttcode> (huruf kedua teks terang), yaitu huruf <ttcode>M</ttcode>. Proses ini dijalankan terus sehingga
{|
| Teks terang: || <ttcode>serbuberlin</ttcode>
|-
| Kata kunci: || <ttcode>PIZZAPIZZAP</ttcode>
|-
| Teks bersandi: || <ttcode>HMQAUQMQKIC</ttcode>
|}
 
Proses sebaliknya (disebut [[dekripsi]]), dilakukan dengan mencari huruf teks bersandi pada baris berjudul huruf dari kata kunci. Misalnya, pada contoh di atas, untuk huruf pertama, kita mencari huruf <ttcode>H</ttcode> (huruf pertama teks tersandi) pada baris <ttcode>P</ttcode> (huruf pertama pada kata kunci), yang terdapat pada kolom <ttcode>S</ttcode>, sehingga huruf pertama adalah <ttcode>S</ttcode>. Lalu <ttcode>M</ttcode> terdapat pada baris <ttcode>I</ttcode> di kolom <ttcode>E</ttcode>, sehingga diketahui huruf kedua teks terang adalah <ttcode>E</ttcode>, dan seterusnya hingga didapat perintah "<ttcode>serbuberlin</ttcode>".
 
[[Enkripsi]] (penyandian) dengan sandi Vigenère juga dapat dituliskan secara matematis, dengan menggunakan penjumlahan dan [[operasi modulus]], yaitu:
Baris 44:
Keterangan: <math>C_i</math> adalah huruf ke-i pada teks tersandi, <math>P_i</math> adalah huruf ke-i pada teks terang, <math>K_i</math> adalah huruf ke-i pada kata kunci, dan <math>mod</math> adalah [[operasi modulus]] (sisa pembagian).
 
== '''Pehitungan Sandi Vigenere''' ==
 
'''Rumus enkripsi vigenere cipher:'''
Baris 59:
 
'''atau'''
 
'''''Pi = ( Ci – Ki ) + 26''''' kalau hasil pengurangan '''''Ci''''' dengan '''''Ki''''' minus
 
'''Dengan:'''
<b>Dimana:<b>
 
Ci = nilai desimal karakter ciphertext ke-i
Baris 77:
 
{|
| Plaintext: || <ttcode>'''STIKOMBALI'''</ttcode>
|-
| Key: || <ttcode>'''KAMPUSKAMP'''</ttcode>
|-
| Ciphertext: || <ttcode>'''CTUZIELAXX'''</ttcode>
|}
 
Pada contoh diatas kata kunci '''KAMPUS''' diulang sedemikian rupa hingga panjang kunci sama dengan panjang plainteksnya. Jika dihitung dengan rumus enkripsi vigenere&nbsp; plainteks huruf pertama '''S''' (yang memiliki nilai '''Pi=18''') akan dilakukan pergeseran dengan huruf '''K''' (yang memiliki '''Ki=10''') maka prosesnya sebagai berikut:
 
&nbsp;<b>Ci = ( Pi + Ki ) mod 26
&nbsp;&nbsp;&nbsp; = (18 + 10) mod 26
&nbsp;&nbsp;&nbsp; = 28 mod 26