Ika Nurul Hidayah HS
201731286
Kelas B
Kelompok 8
ALGORITMA VIGENERE CIPHEER
ALGORITMA
201731286
Kelas B
Kelompok 8
ALGORITMA VIGENERE CIPHEER
a.
1. Hubungan Ksk Dengan Kriptografi Algoritma Kelompok
Dalam sistem keamanan data
dikenal sebuah metode enkripsi
yang mempunyai kode-kode
pengamanan untuk mengacak data dan juga
mempunyai kode-kode untuk mengembalikan data
yang teracak ke
data yang sebenarnya. Enkripsi
bisa diartikan dengan chiper
atau kode, dimana
pesan asli (plaintext) diubah
menjadi kode-kode tersendiri
sesuai metode yang disepakati oleh kedua
belah pihak, baik pihak pengirim pesan maupun
penerima pesan
Teknik kriptografi enkripsi
dekripsi dengan menggunakan
Vigenere Cipher dapat
melindungi data dimana program
akan melakukan proses enkripsi dan deskripsi menggunakan dua
kunci yang berbeda satu kunci dibangkitkan dengan karakter plain text
dan satu lagi di
inputkan secara manual. Algoritma
enkripsi akan memberikan hasil
yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi
akan mengubah output (keluaran)
dari algoritma enkripsi. Setelah
itu ciphertext kemudian ditransmisikan oleh pengirim.
Kemudian akan dilakukan proses dekripsi, yaitu sebuah proses untuk mengembalikan
teks yang telah
acak menjadi kebentuk semula
dengan algoritma dan kunci yang
sama. Dalam hal ini dilakukan oleh penerima, sehingga akan kembali menjadi
sebuah informasi yang
dapat dipahami oleh penerima.
Algoritma vigenere
cipher merupakan salah
satu metode dari beberapa
metode yang digunakan
untuk melakukan kerahasian data, vigenere cipher
adalah algoritma yang melakukan enkripsi
sekaligus sebuah teks yang
terdiri dari beberapa huruf.
2. Penjelasan Algoritma Vigenere Cipher
a.
Pengertian
Vigenere chiper merupakan salah satu
algoritma kriptografi klasik untuk menyandikan suatu plaintext dengan
menggunakan teknik substitusi.Vigenere cipher pada dasarnya cukup rumit untuk
dipecahkan.
Cipher ini adalah termasuk cipher simetris,
yaitu cipher klasik abjad majemuk. Karena setiap huruf dienkripsikan dengan
fungsi yang berbeda. Vigenère Cipher merupakan bentuk pengembangan dari Caesar Cipher. Kelebihan
sandi ini dibanding Caesar Cipher dan cipher monoalfabetik lainnya adalah
cipher ini tidak begitu rentan terhadap metode pemecahan cipher yang disebut
analisis frekuensi.
Algoritma enkripsi jenis ini sangat dikenal
karena mudah dipahami dan diimplementasikan. Teknik untuk menghasilkan
ciphertext bisa dilakukan menggunakan substitusi angka maupun bujursangkar
vigènere. Teknik susbtitusi vigènere dengan menggunakan angka dilakukan dengan
menukarkan huruf dengan angka, hampir sama dengan kode geser.
b.
Sejarah
Kode vigènere termasuk kode abjad-majemuk
(polyalphabetic substitution cipher). Dipublikasikan
oleh diplomat (sekaligus seorang kriptologis) Perancis, Blaise de Vigènere pada
abad 16, tahun 1586. Sebenarnya Giovan Batista Belaso telah menggambarkannya
untuk pertama kali pada tahun 1533 seperti ditulis di dalam bukuLa Cifra del
Sig. Algoritma ini baru dikenal luas 200 tahun kemudian dan dinamakan kode
vigènere. Vigènere merupakan pemicu perang sipil di Amerika dan kode vigèneredigunakan
oleh Tentara Konfederasi (Confederate Army) pada perang sipil Amerika (American
Civil War). Kode vigènere berhasil dipecahkan oleh Babbage dan Kasiski pada
pertengahan abad 19. (Ariyus, 2008).
Dipublikasikan
oleh diplomat (sekaligus seorang kriptologis) Perancis, Blaise de Vigènere pada
abad 16, tahun 1586. Sebenarnya Giovan Batista Belaso telah menggambarkannya
untuk pertama kali pada tahun 1533 seperti ditulis di dalam bukuLa Cifra del
Sig. Algoritma ini baru dikenal luas 200 tahun kemudian dan dinamakan kode
vigènere. Vigènere merupakan pemicu perang sipil di Amerika dan kode
vigèneredigunakan oleh Tentara Konfederasi (Confederate Army) pada perang sipil
Amerika (American Civil War). Kode vigènere berhasil dipecahkan oleh Babbage
dan Kasiski pada pertengahan abad 19. (Ariyus, 2008).
Pertama
didokumentasikan deskripsi polyalphabetic cipher yang telah dirumuskan oleh
Leon Battista Alberti sekitar 1467 dan menggunakan logam cipher disk untuk
beralih antara cipher alphabets. Alberti sistem alphabets aktif hanya setelah
beberapa kata, dan yang aktif ditunjukkan dengan menulis surat yang sesuai
abjad di ciphertext. Nanti, di 1508, Johannes Trithemius, dalam karyanya
Poligraphia, invented the tabula recta, sebuah komponen penting dari Vigenère
cipher. Trithemius, namun hanya menyediakan progresif, kaku dan predictable
untuk beralih antara sistem cipher alphabets.
Apa
yang sekarang dikenal sebagai Vigenère cipher pada awalnya dijelaskan oleh
Giovan Battista Bellaso di 1553 buku La cifra del. Sig. Sig. Giovan Battista
Bellaso . Dia dibangun di atas tabula recta dari Trithemius, tetapi menambahkan
mengulangi “ikut” (tombol) untuk beralih cipher alphabets setiap huruf.
Blaise
de Vigenère dipublikasikan kepada keterangan yang sama tapi lebih kuat autokey
cipher sebelum pengadilan Henry III dari Perancis, pada 1586. Belakangan, pada
abad ke-19, penemuan Bellaso’s cipher adalah misattributed ke Vigenère. David
Kahn dalam bukunya The Codebreakers almarhumi misattribution yang mengatakan
bahwa sejarah telah “diabaikan dan kontribusi yang penting ini bukan nama
seorang yg memundurkan cipher untuk SD dan dia [Vigenère] meskipun dia tidak
ada hubungannya dengan itu”.
c.
Cara Kerja
Cara kerja Vigènere Cipher
:
Rumus
enkripsi vigenere cipher :
Pi = (Ci-Ki) mod 26
atau
Ci = ( Pi + Ki ) – 26,
kalau hasil penjumlahan Pi dan Ki lebih dari 26
Rumus
dekripsi vigenere cipher :
Pi = (Ci-Ki) mod 26
atau
Pi = ( Ci – Ki ) + 26,
kalau hasil pengurangan Ci dengan Ki minus
Keterangan:
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
Tabel Substitusi
Vigenere Chiper
d. Flowchart Algoritma dan
penjelasan
Berikut adalah
algoritma dekripsi dari metode vigenere cipher :
1. Masukkan pesan teks.
2. Masukkan
kunci (tidak boleh lebih dari panjang pesan).
3. kunci
diulang pada karakter sepanjang pesan.
4. Kunci
dan pesan dijadikan desimal.
5. Nilai
desimal pesan dikurangi nilai desimal kunci.
6. Hasil
pengurangan dijadikan ASCII.
7. Data
yang dijadikan ASCII ditampilakn.
8. Selesai..
3. Penjelasan Algoritma Kriptografi Berdasarkan Penerapan Tema Kasus
Menurut kelompok kami, ketika Anonymous
Indonesia mengirimkan pesan plaintex yang bertuliskan Stop Spying on Indonesia
ke situs iklan dan bisnis kelas bawah di Australia yang menjadi sasaran balas
dendam pihak Anonymous, mereka dapat menerapkan Algoritma Kriptografi Vinegere
Chiper agar pesan tersebut tidak semakin menyebar luas.
Anonymous mengirimkan pesan kepada situs
iklan dan bisnis di Australia dalam bentuk ciphertext sehingga yang dapat
membaca teks tersebut hanya admin di perusahaan tersebut.
4. Sintaks Dari Algoritma Vigenere Cipher Menggunakan Bahasa C++
#include <iostream>
#include <string>
using namespace std;
class Vigenere {
public:
string key;
Vigenere(string key)
{
for(int i = 0; i < key.size();++i)
{
if (key[i] >= 'A' && key [i] <= 'Z')
this->key += key [i];
else if (key[i] >= 'a' && key[i] <= 'z')
this->key += key [i] + 'A' - 'a';
}
}
string encrypt(string text)
{
string out;
for (int i = 0, j = 0; i < text.length(); ++i)
{
char c = text[i];
if (c >= 'a' && c<= 'z')
c += 'A' - 'a';
else if ( c < 'A' || c> 'Z')
continue;
out += (c +key[j] -2 * 'A') %26 +'A';
j = (j +1) % key.length();
}
return out;
}
string decrypt(string text)
{
string out;
for (int i = 0, j = 0; i < text.length(); ++i)
{
char c = text[i];
if (c >= 'a' && c<= 'z')
c += 'A' - 'a';
else if ( c < 'A' || c> 'Z')
continue;
out += (c - key[j] +26 ) %26 +'A';
j = (j +1) % key.length();
}
return out;
}
};
int main(){
string a,b;
cout<<"Masukkan Plaintext : ";
cin>>a;
cout<<"Masukkan Key : ";
cin>>b;
string original=a;
Vigenere chiper=b;
string encrypted = chiper.encrypt(original);
string decrypted = chiper.decrypt(encrypted);
cout<<endl;
cout<<"encrypted :"<<encrypted<<endl;
cout<<"decrypted :"<<decrypted<<endl;
}
#include <string>
using namespace std;
class Vigenere {
public:
string key;
Vigenere(string key)
{
for(int i = 0; i < key.size();++i)
{
if (key[i] >= 'A' && key [i] <= 'Z')
this->key += key [i];
else if (key[i] >= 'a' && key[i] <= 'z')
this->key += key [i] + 'A' - 'a';
}
}
string encrypt(string text)
{
string out;
for (int i = 0, j = 0; i < text.length(); ++i)
{
char c = text[i];
if (c >= 'a' && c<= 'z')
c += 'A' - 'a';
else if ( c < 'A' || c> 'Z')
continue;
out += (c +key[j] -2 * 'A') %26 +'A';
j = (j +1) % key.length();
}
return out;
}
string decrypt(string text)
{
string out;
for (int i = 0, j = 0; i < text.length(); ++i)
{
char c = text[i];
if (c >= 'a' && c<= 'z')
c += 'A' - 'a';
else if ( c < 'A' || c> 'Z')
continue;
out += (c - key[j] +26 ) %26 +'A';
j = (j +1) % key.length();
}
return out;
}
};
int main(){
string a,b;
cout<<"Masukkan Plaintext : ";
cin>>a;
cout<<"Masukkan Key : ";
cin>>b;
string original=a;
Vigenere chiper=b;
string encrypted = chiper.encrypt(original);
string decrypted = chiper.decrypt(encrypted);
cout<<endl;
cout<<"encrypted :"<<encrypted<<endl;
cout<<"decrypted :"<<decrypted<<endl;
}
5. Link Dari Blog Anggota Kelompok
Fajrahanugrahkskb.blogspot.com
Fajrahanugrahkskb.blogspot.com
https://indahazzurasttpln.blogspot.com/2018/12/keamanan-sistem-komputer.html?m=1
https://afifahnurlita.blogspot.com/2018/12/keamanan-sistem-komputer.html
https://mulyajefri.blogspot.com/2018/12/keamanan-sistem-komputer.html
https://afifahnurlita.blogspot.com/2018/12/keamanan-sistem-komputer.html
https://mulyajefri.blogspot.com/2018/12/keamanan-sistem-komputer.html
6. Referensi Sumber
b.
ANALISA ALGORITMA
1. Deskripsikan Hubungan Ksk Dengan Kriptpgrafi Algoritma Kelompok Dan
Algoritma Kelompok Lain Yang Memiliki Kesamaan Cara Kerja
Beaufort Cipher secara umum yaitu merupakan
teknik enkripsi subtitusi yang berfungsi untuk menyamarkan suatu pesan tertentu
dengan menggunakan tabel abjad dan keyword yang telah ditetapkan. Sama seperti
viginère cipher, ini menggunakan tabel yang terdiri dari abjad a-z pada baris
dan kolomnya yang sering disebut dengan tabula recta. Tabel ini juga memerlukan
suatu keyword atau kata kunci dalam mengenkripsi atau decipher pesan yang
tersembunyi tersebut.
2.
Penjelasan Algoritma Kelompok Lain
a. Pengertian
Beaufort cipher, yang diciptakan oleh Sir Francis
Beaufort, adalah substitusi cipher mirip dengan cipher Vigenere, dengan
mekanisme enciphering sedikit dimodifikasi dan tablo. Aplikasi yang paling
terkenal adalah di mesin cipher berbasis rotor, yang Hagelin M-209. Beaufort
cipher didasarkan pada persegi Beaufort yang pada dasarnya sama dengan persegi
Vigenere tetapi dalam urutan terbalik diawali dengan huruf "Z" di
baris pertama, di mana baris pertama dan kolom terakhir melayani tujuan yang
sama.
b. Sejarah
Algoritma Beaufort Cipher merupakan varian dari
algoritma Vignere Cipher Widyastuti, 2014. Algoritma ini ditemukan oleh
Laksamana Sir Francis Beaufort,
Royal Navy, yang juga merupakan pencipta skala Beaufort yaitu instrumen ahli meterorologi yang digunakan untuk menunjukkan kecepatan angin. Beaufort Cipher
termasuk algoritma kriptografi klasik kunci simetris Mollin, 2007. Proses enkripsi dan dekripsi pada algoritma Beaufort Cipher menggunakan
sebuah tabel yang disebut dengan tabel Beaufort Tassel, 1969.
Royal Navy, yang juga merupakan pencipta skala Beaufort yaitu instrumen ahli meterorologi yang digunakan untuk menunjukkan kecepatan angin. Beaufort Cipher
termasuk algoritma kriptografi klasik kunci simetris Mollin, 2007. Proses enkripsi dan dekripsi pada algoritma Beaufort Cipher menggunakan
sebuah tabel yang disebut dengan tabel Beaufort Tassel, 1969.
c. Cara kerja
Bukan hanya viginère cipher, berikut ini juga
merupakan cipher berasal dari negara Prancis. Karena berasal dari negara yang
sama tentunya teknik enkripsi yang digunakan tidak terlalu jauh berbeda
Yang membedakannya dari viginère cipher yaitu
penggunaan algoritma yang berbeda dari cara membaca tabelnya.
Viginère cipher membandingkan baris + kolom =
isi tabel
Beaufort cipher membandingkan kolom+ isi tabel
= baris
Enkripsinya menggunakan tabel dengan ketentuan berikut.
1. Huruf pada pesannya kita lihat pada kolom
tabel atas (bagian judulnya ;warna merah)
2. Huruf pada keywordnya kita lihat pada kolom
tabel bawah (isinya;warna hitam)
3. Telusuri kedua huruf tersebut dan lihat hasilnya pada baris table.
Formula proses
enkripsi :
Ci = Ek(Mi) = (Ki
– Mi) Mod 26 ..................................(1)
Formula proses
dekripsi :
Mi = Dk(Ci) = (Ki
– Ci) Mod 26 ...................................(2)
Keterangan :
Mi = Pesan yang
akan dienkripsi (plain)
Ci = Sandi
(cipher) Ki = Kunci
Ek = Fungsi
Enkripsi Dk = Fungsi Dekripsi
Nilai mod 26 di
atas tergantung dari jumlah kebutuhan karakter yang digunakan,pada awalnya
beaufort cipher hanya menggunakan 26 karakter, namun seiring dengan
perkembangan teknologi komputer saat ini, maka dapat menggunakan mod 256
(mengguakan seluruh tabel ASCII).
Proses Enkripsi
Proses Deskripsi
3. Pengetesan Kedua Algoritma Dengan Menggunakan Sintaks Bahasa Pemograman
Yang Dipilih Dengan Inputan Plaintext Berupa Nama Dan Nim (Proses Enkripsi Dan
Deskripsi)
a.
Vigenere Cipher
Pseudocode Enkripsi Vigenere Cipher
Deklarasi
Key, newKey, ika286 :
string;
karakter:array[1 …..
karakter.length]of string;
i, j : integer;
Dekripsi
input (key);
input (ika286);
for (int i ← 0; i < ika286.length)do
j ← i mod
key.length();
newKey ←
key(j);
end for;
write(newKey);
karakter [i] ← ika286;
key ← get(key. ika286);
for (int i ← 0; i <
karakter.length)do
ciphertext←(char)
(((95+((karakter[i]-‘ ’)+key(i)-‘ ‘)) mod 95+’ ’);
end for
write (ciphertext);
Pseudocode Dekripsi Vigenere Cipher
Deklarasi
Key, newKey, ciphertext :
string;
karakter:array[1 …..
karakter.length]of string;
i, j : integer;
Dekripsi
input (key);
input (ciphertext);
for (int i ← 0; i <
ciphertext.length)do
j ← i mod
key.length();
newKey ←
key.charAt(j);
end for;
write(newKey);
karakter [i] ← ciphertext;
key ← get(key.
ciphertext);
for (int i ← 0; i <
karakter.length)do
ika286 ←
(char) (((95+((karakter[i] – ‘ ’)-key.charAt(i) – ‘ ‘)) mod 95)+’ ’);
end for
write (ika286);
b.
Beaufort Cipher
Pseudocode Enkripsi Beaufort Cipher
Deklarasi
Key, newKey, ika286 :
string;
karakter:array[1 …..
karakter.length]of string;
i, j : integer;
Dekripsi
input (key);
input (ika286);
for (int i ← 0; i < ika286.length)do
j ← i mod
key.length();
newKey ←
key(j);
end for;
write(newKey);
karakter [i] ← ika286;
key ← get(key. ika286);
for (int i ← 0; i <
karakter.length)do
ciphertext←(char)
(((95-((karakter[i]-‘ ’)-key(i)-‘ ‘)) mod 95-’ ’);
end for
write (ciphertext);
Pseudocode Dekripsi Vigenere Cipher
Deklarasi
Key, newKey, ciphertext :
string;
karakter:array[1 …..
karakter.length]of string;
i, j : integer;
Dekripsi
input (key);
input (ciphertext);
for (int i ← 0; i <
ciphertext.length)do
j ← i mod
key.length();
newKey ←
key.charAt(j);
end for;
write(newKey);
karakter [i] ← ciphertext;
key ← get(key.
ciphertext);
for (int i ← 0; i <
karakter.length)do
ika286 ←
(char) (((95-((karakter[i] – ‘ ’)-key.charAt(i) – ‘ ‘)) mod 95)-’ ’);
end for
write (ika286);
4. Perbedaan Dan Perbedaan Beaufort Chipper Dan Vigenere Chipper
Persamaan
a.
Viginère cipher membandingkan baris + kolom = isi table
Beaufort cipher membandingkan kolom+ isi
tabel = baris
b.
Dalam Vigenere cipher kunci digunakan sebagai penambah plain teks dan
pengurang cipher teks. Sedangkan dalam formula yang digunakan Beaufort cipher,
kunci digunakan untuk dikurangkan dengan plain teks maupun cipher teks.
c.
Beaufort sebagai penyempurna Vigenere
Persamaan
a. Menggunakan teknik
substraksi
b. Penggunaan fungsi
modulo atau sisa hasil bagi
c. Jenis kunci yang yang
digunakan
5. Link Kelompok yang bersangkutan
6. Referensi sumber
Power point kelompok 9
Komentar
Posting Komentar