Sandi Vigenère: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
k →Cara kerja: waduh |
k Perbaikan untuk PW:CW (Fokus: Elemen gaya teks HTML <b> (bold)) |
||
(45 revisi perantara oleh 29 pengguna tidak ditampilkan) | |||
Baris 1:
{{tanpa referensi}}
[[Image:Vigenere.jpg|right|thumbnail|Sandi Vigenère dinamai untuk menghormati Blaise de Vigenère (gambar), sekalipun [[Giovan Batista Belaso]] menemukannya sebelum Vigenère.]]▼
'''Sandi Vigenère''' adalah metode [[enkripsi|menyandikan]] teks [[alfabet]] dengan menggunakan deretan [[sandi Caesar]] berdasarkan huruf-huruf pada kata kunci. Sandi Vigenère merupakan bentuk sederhana dari sandi [[substitusi polialfabetik]]. Giovan Batista Belaso menjelaskan metode ini dalam buku ''La cifra del. Sig. Giovan Batista Belaso'' ([[1553]]); dan disempurnakan oleh [[diplomat]] [[Perancis]] [[Blaise de Vigenère]], pada [[1586]]. Pada abat ke-19, banyak orang yang mengira Vigenère adalah penemu sandi ini, sehingga, sandi ini dikenal luas sebagai "sandi Vigenère".▼
▲[[
Sandi ini dikenal luas karena cara kerjanya mudah dimengerti dan dijalankan, dan bagi para pemula sulit dipecahkan (metode pemecahan sandi Vigenère baru ditemukan pada [[1854]] oleh [[Charles Babbage]]). Pada saat kejayaannya, sandi ini dijuluki '''le chiffre indéchiffrable''' ([[bahasa Prancis]]: 'sandi yang tak terpecahkan').▼
▲'''Sandi Vigenère''' adalah metode [[enkripsi|menyandikan]] teks [[alfabet]] dengan menggunakan deretan [[sandi Caesar]] berdasarkan huruf-huruf pada kata kunci. Sandi Vigenère merupakan bentuk sederhana dari sandi [[substitusi polialfabetik]]. Kelebihan sandi ini dibanding sandi Caesar dan [[sandi monoalfabetik]] lainnya adalah sandi ini tidak begitu rentan terhadap metode [[kriptoanalisis|pemecahan sandi]] yang disebut [[analisis frekuensi]]. Giovan Batista Belaso menjelaskan metode ini dalam buku ''La cifra del. Sig. Giovan Batista Belaso'' ([[1553]]); dan disempurnakan oleh [[diplomat]] [[
▲Sandi ini dikenal luas karena cara kerjanya mudah dimengerti dan dijalankan, dan bagi para pemula sulit dipecahkan. Pada saat kejayaannya, sandi ini dijuluki '''le chiffre indéchiffrable''' (
==Cara kerja==▼
[[Image:Vigenere-square.png|right|thumbnail|320px|Tabel Vigenère, atau ''[[tabula recta]]'', dapat digunakan untuk [[enkripsi]] maupun [[dekripsi]] sandi Vigenère.]]▼
▲== Cara kerja ==
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, <tt>A</tt> menjadi <tt>D</tt>, <tt>B</tt> menjadi <tt>E</tt> and dan seterusnya. Sandi Vigenère terdiri dari beberapa sandi Caesar dengan nilai geseran yang berbeda.▼
▲[[
▲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, <
Untuk menyandikan suatu pesan, digunakan sebuah tabel alfabet yang disebut [[tabel Vigenère]]. 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▼
▲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
Misalnya, [[teks terang]] yang hendak disandikan adalah perintah "Serbu Berlin":
:<
Sedangkan kata kunci antara pengirim dan tujuan adalah "Pizza"
:"<
:<
Huruf pertama pada teks terang, <
{|
| Teks terang: || <
|-
| Kata kunci: || <
|-
| Teks bersandi: || <
|}
Proses
[[Enkripsi]] (penyandian) dengan sandi Vigenère juga dapat dituliskan secara matematis, dengan menggunakan penjumlahan dan [[
:<math>C_i \equiv (P_i + K_i) \mod 26</math>
atau C = P + K kalau jumlah dibawah 26 & - 26 kalau hasil jumlah di atas 26
dan dekripsi,
Baris 36 ⟶ 40:
:<math>P_i \equiv (C_i - K_i) \mod 26</math>
atau P = C - K kalau hasilnya positif & + 26 kalau hasil pengurangan minus
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 [[fungsi modulus]].▼
▲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 [[
== Pehitungan Sandi Vigenere ==
'''Rumus enkripsi vigenere cipher:'''
:<math>C_i \equiv (P_i + K_i) \mod 26</math>
'''atau'''
'''''Ci = ( Pi + Ki ) – 26''''' kalau hasil penjumlahan '''''Pi '''''dan '''''Ki''''' lebih dari 26
'''Rumus dekripsi vigenere cipher:'''
:<math>P_i \equiv (C_i - K_i) \mod 26</math>
'''atau'''
'''''Pi = ( Ci – Ki ) + 26''''' kalau hasil pengurangan '''''Ci''''' dengan '''''Ki''''' minus
'''Dengan:'''
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i
Nilai desimal karakter:
'''A=0 B=1 C=2 ... Z=25'''
Sebagai contoh, jika plaintext adalah '''STIKOMBALI''' dan kunci adalah '''KAMPUS''' maka proses enkripsi yang terjadi adalah sebagai berikut:
{|
| Plaintext: || <code>'''STIKOMBALI'''</code>
|-
| Key: || <code>'''KAMPUSKAMP'''</code>
|-
| Ciphertext: || <code>'''CTUZIELAXX'''</code>
|}
Pada contoh diatas kata kunci '''KAMPUS''' diulang sedemikian rupa hingga panjang kunci sama dengan panjang plainteksnya. Jika dihitung dengan rumus enkripsi vigenere plainteks huruf pertama '''S''' (yang memiliki nilai '''Pi=18''') akan dilakukan pergeseran dengan huruf '''K''' (yang memiliki '''Ki=10''') maka prosesnya sebagai berikut:
<b>Ci = ( Pi + Ki ) mod 26
= (18 + 10) mod 26
= 28 mod 26
= 2 </b>
'''Ci=2''' maka huruf ciphertext dengan nilai '''2''' adalah '''C''' . Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua plainteks telah terenkripsi menjadi ciphertext. Setelah semua huruf terenkripsi maka proses dekripsinya dapat dihitung sebagai berikut:
<b>Pi = ( Ci – Ki ) + 26
= ( 2 – 10 ) + 26
= –8 + 26
= 18</b>
'''Pi=18''' maka huruf plainteks dengan nilai '''18''' adalah '''S'''. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua ciphertext telah terdekripsi menjadi plainteks.
[[Kategori:Sandi sederhana]]▼
|