Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Achmad Legia A. 0807100750
Aris Munandar. 0807100756
Rezki Priono. 0807100776
Tri Agustina R. 0807100783
Program Manajemen Persandian, Sekolah Tinggi Sandi Negara
Jl. Raya H. Usa Putat Nugug, Ciseeng, Parung Bogor
ABSTRAK
Sistem sandi ini pertama kali dipopulerkan oleh Blaise de vigenere seorang
diplomat Perancis pada abad ke15. Sistem sandi vigenere adalah sistem sandi
substitusi multialfabetik yaitu sistem sandi caesar dengan pergeseran alphabet
yang berlainan disesuaikan kata kuncinya. Sistsem sandi substitusi adalah menjadi
dengan cara mengganti hurufhuruf pesan/ teks aslinya dengan hurufhuruf sandi.
Sistem sandi Caesar dan Vigenere merupakan metode sistem sandi substitusi.
1
KATA PENGANTAR
Puji dan syukur, Kami panjatkan kepada Tuhan Yang Maha Esa karena atas berkat
rahmatNya, Kami dapat menyelesaikan makalah tepat pada waktunya. Kami
mengucapkan terima kasih kepada dosen pembimbing kami Bapak Adi Prasetyo, karena
dengan diberikannya tugas pembuatan makalah ini dapat memberikan ilmu yang
bermanfaat khususnya mengenai pemrograman khususnya bahasa pemrograman bahasa
C. Kami juga mengucapkan terima kasih kepada pihakpihak yang telah banyak
membantu dalam pembuatan makalah ini.
Makalah ini disusun untuk memenuhi tugas mata kuliah struktur data
algoritma dan pemrograman yang berkaitan dengan pembuatan program enkripsi
maupun dekripsi menggunakan system sandi klasik yaitu system sandi vigenere
yang berkaiatn langsung dengan kriptgrafi, dengan menggabungkan antara ilmu
kriptografi dan pemrograman, maka penulis membuat suatu program sistem sandi
vigenere dengan menggunakan bahasa pemrograman C.
Demikianlah makalah ini kami susun dengan referensi dari berbagai sumber
antara lain buku mata kuliah pemrograman, kriptografi dan juga dengan literature
melalui internet. Dengan ini kami berharap makalah ini dapat bermanfaat bagi
para pembaca.
Kami menyadari dalam penulisan makalah ini masih jauh dari kata
sempurna. Oleh karena itu Kami kan menerima dengan terbuka mengenai saran
dan kritik yang membangun demi proses perbaikan makalah ini.
Bogor, juli 2009
2
DAFTAR ISI
ABSTRAK 1
KATA PENGANTAR 2
DAFTAR ISI 3
BAB I PENDAHULUAN 5
1.1 Latar Belakang Permasalahan 6
1.2 Identifikasi Masalah 6
1.3 Perumusan Masalah 6
1.4 Pembatasan Masalah 7
1.5 Tujuan Penulisan 7
1.6 Metode Penulisan 7
1.7 Sistematika Penulisan 7
BAB II LANDASAN TEORI 9
2.1 Konsep Dasar Sistem Sandi Vigenere 9
2.2 Konsep Dasar Pemrograman Bahasa C 12
3
BAB III DETAIL IMPLEMENTASI/ SIMULASI 15
BAB IV ANALISIS DAN HASIL IMPLEMENTASI 21
BAB V PENUTUP 30
5.1 Kesimpulan 30
5.2 Saran 30
DAFTAR PUSTAKA 32
DAFTAR TABEL
Tabel 2.1 Tabel vigenere 10
4
BAB I
PENDAHULUAN
Masalah keamanan (security) merupakan salah satu hal yang penting di era
teknologi informasi sekarang ini. Banyak kasus cybercrime yang kita dengar dari
berbagai media massa. Jriptografi merupakan dasar pemahaman tentang pengamanan
terutama keamanan jaringan. Kriptografi telah banyak diaplikasikan di berbagai bidang
terutama yang menggunakan teknologi jaringan komputer. Bahkan sekarang ini
kriptografi sudah banyak dikenal orang sebagai contoh dalam transaksi mesin ATM,
transaksi Bank, kartu kredit, komunikasi melalui telepon, akses internet atau bahkan
pengaktifan peluru kendali sekalipun. Namun semakin berkembangnya kriptografi
modern, kriptografi klasik hingga sekarang ini masih banyak digunakan, salah satunya
adalah sistem sandi vigenere.
Dalam kriptografi, sandi substitusi adalah jenis metode enkripsi dimana setiap
satuan pada teks terang digantikan oleh teks terang digantikan oleh teks tersandi dengan
sistem yang teratur, suatu “satuan” dapat berarti satu huruf paling (paling umum),
pasangan huruf, suku kata, kata dan sebagainya. Sang penerima pesan baru dapat
membaca pesan tersebut setelah melakukan substitusi balik terlebih dahulu. Pada sandi
substitusi , satuansatuan pada teks terang diubah namun susunannya tetap. Kebalikannya
adalah sandi transposisi, dimana satuansatuan teks terang susunannya diacak sedemikian
rupa sehingga tidak dapat terbaca, namun tidak mengubah/ mensubstitusikan hurufhuruf
tersebut.
Sandi substitusi juga dikelompokkan menjadi berbagai jenis. Jika sandi tersebut
mensubstitusikan huruf demi huruf, maka ia disebut sandi substitusi sederhana. Jika
mensubstitusikan dengan urutan yang lebih besar disebut sandi substitusi poligraf.
Sebuah sandi substitusi monoalfabetik menggunakan pola substitusi yang tetap diseluruh
pesan (misal: sandi Caesar), sedangkan sandi substitusi polialfabetik menggunakan
substitusi yang berbedabeda sepanjang pesan (misal: sandi Vigenere).
5
1.1 Latar Belakang Permasalahan
Keamanan merupakan salah satu aspek yang penting dalam sebuah sistem
informasi. Banyak orang menyiasati bagaimana cara mengamankan informasi
yang penting bagi orang tersebut. Kriptografi adalah ilmu yang mempelajari
bagaimana menjaga keamanan suatu pesan (plaintext). Tugas utama kriptografi
adalah untuk menjaga agar baik pesan atau kunci ataupun keduanya tetap terjaga
kerahasiannya. Namun kriptografi tidak mudah untuk dimengerti, ditambah
membutuhkan waktu yang lama untuk hanya sekedar menyandi suatu berita
apabila dilakukan secara manual. Oleh karena itu, Bagaimana kriptografi dapat
mudah digunakan dan tidak membutuhkan waktu yang lama?.
1.2 Identifikasi masalah
1.3 Perumusan Masalah
6
1.4 Pembatasan Masalah
Sistem Vigenere ini adalah merupakan salah satu bentuk sistem sandi yang
dapat dituangkan dalam bentuk source code program bahasa C, sehingga pada
makalah ini akan dijelaskan tentang bagaimana bentuk coding vigenere, contoh
pemakaian beserta hasil tampilannya setelah di running.
1.5 Tujuan Penulisan
1.6 Metode Penulisan
1.7 Sistematika Penulisan
Adapun sistematika penulisan makalah ini adalah sebagai berikut:
• Abstraksi
7
Menjelaskan gambaran umum mengenai isi makalah.
• Kata Pengantar
• Daftar Isi
• Daftar Tabel
• Bab I Pendahuluan
• Bab II Landasan Teori
• Bab III Detail Implementasi dan Simulasi
• Bab IV Analisis dan Hasil Implementasi\
• Bab V Penutup
• Daftar Pustaka
8
BAB II
LANDASAN TEORI
Sandi ini dikenal dengan luas karena cara kerjanya mudah dimengerti dan
dijalankan dan bagi para pemula sulit dipecahkan. Pada saat kejayaannya, sandi ini
dijuluki le chiffre indenchiffrable (bahasa perancis: “sandi yang tak terpecahkan”).
Metode pemecahan sandi ini baru ditemukan pada abadke19. Pada tahun 1854, Charles
Babbage menemukan cara untuk memecahkan sandi vigenere. Metode ini dinamakan tes
Kasiski karena Friedrich Kasiskilah yang pertama mempublikasikannya.
2.1 Konsep Dasar sistem sandi vigenere
Sistem sandi vigenere merupakan pengembangan dari sandi Caesar, setiap
huruf dari suatu teks terang digantikan dengan huruf lain yang memiliki perbedaan
tertentu pada urutan alphabet. Misalnya pada sandi Caesar dengan geseran 3,
contohnya huruf “A” diubah menjadi huruf “D”, “B” menjadi “E” dan seterusnya.
Sandi Vigenere terdiri dari sandi Caesar dengan niali geseran yang berbeda.
9
Untuk menyandi suatu pesan, digunakan suatu tabel alfabet yang disebut
tabel vigenere. Tabel vigenere berisi alfabet yang dituliskan dalam 26 baris,
masingmasing baris digeser satu urutan kekiri dari baris sebelumnya, membentuk
ke26 kemungkinan sandi Caesar. Berikut merupakan table vigenere:
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 2.1 Tabel vigenere yang digunakan secara manual
10
Setiap huruf disandi dengan menggunakan barisbaris yang berbeda sesuai
kata kunci yang diulang. Misalnya:
Teks sandi: serbuberlin
Kata kunci: pizza (ket: Kata kunci harus diketahui oleh pengirim dan
penerima pesan)
Teks sandi: ….?
Huruf pertama pada teks terang “S” disandi dengan menggunakan huruf
pertama pada kunci “P”. Pada baris P dan kolom S di tabel vigenere, terdapat huruf
H. Demikian pula untuk huruf kedua digunakan huruf yang terletak pada baris I
(huruf kedua kata kunci) dan kolom E (huruf kedua teks terang), yaitu huruf M.
Proses ini dijalankan terus sehingga
Tt: s e r b u b e r l I n
Kk: p I z z a p I z z a p
Ts: H M Q A U Q M Q K I C
Proses sebaliknya yaitu mengubah teks sandi menjadi teks sandi disebut
dekripsi. Dekripsi dilakuka dengan mencari huruf teks bersandi pada baris berjudul
huruf dari kata kunci. Misalnya pada contoh diatas, untuk huruf pertama kita
mencari huruf “H” (huruf pertama pada teks sandi) pada huruf “P” (huruf pertama
pada kata kunci) yang terdpat dalam kolom S. Lalu M terdapat pada baris I di
kolom E, sehingga diketahui huruf kedua teks terang adalah E dan seterusnya
hingga didapat teks terang “serbuberlin”.
Enkripsi (penyandian) dengan sandi Vigenere juga dapat di tuliskan secara
matematis, dengan menggunakan penjumlahan dan operasi modulus, yaitu :
Ci = (Pi + Ki) mod 26
11
Dan dekripsi,
Pi = (Ci – Ki) mod 26
Keterangan : Ci adalah huruf keI pada teks tersandi, Pi adalah huruf keI
pada teks terang, KI adalah huruf kei pada kata kunci, dan mod adalah operasi
modulus (sisa pembagian).
2.2 Konsep Dasar Pemrograman Bahasa C
1. MEMASUKAN DATA
Beberapa fungsi pustaka yang biasa digunakan adalah :
• scanf()
• Kode penentu format :
%c : Membaca sebuah karakter
%s : Membaca sebuah string
%i, %d : Membaca sebuah bilangan bulat (integer)
%o : Membaca sebuah bilangan octal
%x : Membaca sebuah bilangan heksadesimal
%u : Membaca sebuah bilangan tak bertanda
12
• Tipe data
Dalam bahasa C terdapat lima tipe data dasar, yaitu :
1. char %c (Karakter/string)
2. int %i, %d (Integer/bilangan bulat)
3. float %f (Float/bilangan pecahan)
4. double %If (Pecahan presisi ganda)
5. void (Tidak bertipe)
• Deklarasi Variabel
Bentuk umum pendeklarasian suatu variable adalah :
Nama_tipe nama_variabel;
Contoh :
int x; II Deklarasi x bertipe integer
char y, huruf, nim[10]; II Deklarasivariable bertipe char
• getch()
Jika menggunakan fungsi getch() karakter yang dimasukan tidak
akan di tampilkan pada layer sehingga sering digunakan untuk
meminta inputan berupa password.
13
2. MENAMPILKAN DATA
• Menampilkan data ke layar monitor
Menggunakan fungsi printf(), puts(), dan putchar().
• Konstanta
\n : ganti baris baru (new line)
• Mengatur tampilan bilangan pecahan (float).
Bentuk umum :
• printf(“%m.nf”, argument);
m : menyatakan panjang range.
n : menyatakan jumlah digit di belakang koma
argument : nilai atau variable yang akan ditampilkan.
Contoh :
printf(“%5.2f”, nilai);
(artinya variable nilai akan di tampilkan sebanyak 5 digit dengan 2
digit di belakang koma)
14
3. Operator
•Operator Penugasan dalam bahasa C berupa tanda sama dengan (“=”).
Contoh :
nilai = 80;
A = x * y;
•Operator Arirmatika
Bahasa C menyediakan lima operador aritmatika, yaitu :
: untuk perkalian
/ : untuk pembagian
% : untuk sisa pembagian (modulus)
+ : untuk pertambahan
: untuk pengurangan
•Operator Hubungan (Perbandingan)
•Operator Unary
Sebagai contoh adalah – atau ++. Contoh : i++
15
•Komentar Program
4. Penyeleksian Kondisi
Penyeleksian kondisi digunakan untuk mengarahkan perjalanan suatu proses.
1. STRUKTUR KONDISI ”IF....”
Struktur if dibentuk dari pernyataan if dan sering digunakan untuk
menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi
atau bernilai benar, maka pernyataan yang ada di dalam blok if kan
diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah :
if(kondisi)
pernyataan;
2. STRUKTUR KONDISI ”IF.....ELSE....”
Dalam struktur kondisi if.....else minimal terdapat dua pernyataan.
Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka
pernyataan pertama yang dilaksnakan dan jika kondisi yang diperiksa
bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk
umumnya adalah sebagai berikut :
if(kondisi)
pernyataan1
16
else
pernyataan2
3. STRUKTUR KONDISI ”SWITCH....CASE....DEFAULT...”
switch(kondisi)
Case 1 : pernyataan1;
Break;
Case 2 : pernyataan2;
Break;
.....
.....
Case n :pernyataann;
Break;
Default : pernyataanm
17
}
4. STRUKTUR PERULANGAN “FOR”
for(inisialisasi; syarat; penambahan)
pernyataan;
5. Array (Larik)
Dilihat dari dimensinya array dapat dibagi menjadi Array dimensi
satu, array dimensi dua dan array multidimensi.
1. ARRAY DIMENSI SATU
• Setiap elemen array dapat diakses melalui indeks.
• Indeks arraysecara default dimulai dari 0.
• Deklarasi Array
Bentuk umum :
tipe_array nama_array[ukuran];
2. ARRAY DIMENSI DUA
18
Bentuknya dapat berupa matriks atau tabel.
• Deklarasi array :
tipe_array nama_array[baris][kolom];
3. ARRAY MULTIDIMENSI
Array multidimensi merupakan array yang mempunyai ukuran
lebih dari dua. Bentuk pendeklarasian array sama saja dengan array
dimensi satu maupun array dimensi dua.
Bentuk umumnya yaitu :
tipe_array nama_array[ukuran1][ukuran2]...[ukuranN];
• Header File ”stdio.h”
Fungsi pustakanya seperti printf() dan scanf()
• Header File ”conio.h”
Fungsi pustakanya seperti clrscr() dan getch()
• Fungsi Operasi String (tersimpan dalam header file”string.h”
• strcpy()
Berfungsi untuk menyalin suatu string asal ke variable string
tujuan.
Bentuk umum : strcpy(var_tujuan, string_asal);
19
• strlen()
Berfungsi untuk memperoleh jumlah karakter dari suatu string.
Bentuk umum : strlen(string);
• strupr()
Bentuk umum : strupr(string);
• strlwr()
20
BAB IV
ANALISIS DAN HASIL IMPLEMENTASI
Akhirnya dari berbagai analisa implementasi dapat kita mabil kesimpulan bahwa
sebenarnya sistem sandi vigenere mempunyai beberapa kelebihan dan kekurangan.
Kelebihan :
• Sistem sandi vigenere merupakan sistem sandi yang lumayan sulit untuk
dipecahkan, terutama jika menggunakan cara manual. Lebih sulit dipecahkan
dibandingkan dengan sistem sandi substitusi monoalfabet. Dahulu sempat diberi
julukan sebagai sandi yang tak terpecahkan.
• Mudah diwujudkan dalam bahasa pemrogaman.
• Mudah digunakan untuk enkripsi dan dekripsi.
Kekurangan :
• Vigenere dapat dipecahkan dengan metode kasiski.
• Seiring dengan perkembangan zaman, sistem vigenere sudah jarang digunakan.
4.1 Berikut ini adalah penjelasan mengenai program yang telah dibangun :
1. Keterangan / komentar mengenai program.
/* PROGRAM ENKRIPSI DAN DEKRIPSI */
21
/* SISTEM VIGENERE */
/* Kelompok I */
/* Tk. I Manajemen Persandian */
2. Merupakan header file bagi fungsi pustaka yang akan diikuti dalam program.
#include<stdio.h>
#include<string.h>
#include<conio.h>
3. Berupa fungsi utama.
void enkripsi(void);
void dekripsi(void);
main()
4. Variabel
Int pilihan;
5. Fungsi pustaka conio.h untuk membersihkan layar.
Clrscr();
22
6. Prototype dari fungsi pustaka stdio.h.
printf(” **************************************\n”);
printf(” SISTEM SANDI VIGENERE\n”);
printf(” Kelompok I”);
printf(” Tk. I Manajemen Persandian\n”)
printf(” ***************************************\n”);
printf(” masukan pilihan anda (1/2) !\n”);
printf(”1. Enkripsi\n”);
printf(”2. Dekripsi\n”);
printf(”Pilihan Anda\n”);
printf(”%d”,&pilihan);
printf(”\n\n”);
7. Berupa pemilihan kondisi.
Switch(pilihan)
case 1 : enkripsi();
break;
case 2 : dekripsi();
break;
default:printf(”masukan tidak ada...”);
8. Fungsi pustaka dari conio.h.
23
Getch();
Void enkripsi(void)
9. Variabel.
int periode,pjg_plaintext,n,i;
unsigned char key[25],ciphertext[225];
printf(masukan kunci:”);
10. Deklarasi variable.
Scanf(”%s”,&key);
11. Fungsi pustaka string.h untuk menghitung panjang string.
periode=strlen(key)
printf(”panjang periode=%d\n”,periode);
printf(”masukan plaintext:\n”);
scanf(”%s”,&plaintext);
pjg_plaintext=strlen(plaintext);
printf(”Panjang plaintext:%d\n”,pjg_plaintext);
24
12. Fungsi pustaka string.h untuk mengubah abjad ke huruf capital.
strupr(key);
strupr(plaintext);
13. Pemilihan kondisi ”for”.
for(i=1;i<=pjg_plaintext;i++)
14. Operasi aritmatika untuk mencari nulls.
n=i%periode;
15. Pemilihan kondisi ”if...else...”
if(n!0)
16. Operasi aritmatika untuk enkripsi.
ciphertext[i1]=((key[n1]+plaintext[i1])%26)+65;
else
ciphertext[i1]=((key[periode1]+plaintext[i1])%26)+65;
printf(”Ciphertext:%s\n”,ciphertext);
25
void dekripsi(void)
17. Variabel.
int periode,pjg_ciphertext,n,i;
unsigned char key[25],ciphertext[255],plaintext[255];
18. Fungsi pustaka dari header file stdio.h.
printf(”masukan kunci:\n”);
scanf(”%s”,&key);
19. Fungsi pustaka dari string.h untuk menghitung panjang string.
Periode=strlen(key);
printf(”panjang periode:%d\n”,periode);
printf(”masukan ciphertext:\n”);
scanf(”%s”,&ciphertext);
pjg_ciphertext=strlen(ciphertext);
printf(”panjang ciphertext:%d\n”,pjg_ciphertext);
20. Penyelesaian kondisi ”for”.
For(i=1;i<=pjg_ciphertext;i++)
26
21. Operasi aritmatika untuk menghitung jumlah nulls.
N=i%periode;
22. Penyelesaian kondisi ”if....else....”.
if(n!=0)
if(ciphertext[i1]<key[n1])
plaintext[i1]=((ciphertext[i1]key[n1])+26)+65;
else
plaintext[i1]=(ciphertext[i1]key[n1])+65;
else
if(ciphertext[i1]<key[periode1])
plaintext[i1]=((ciphertext[i1]key[periode1])+26)+65;
else
plaintext[i1]=(ciphertext[i1]key[periode1])+65;
printf(”plaintext:%s\n”,plaintext);
4.2 HASIL IMPLEMENTASI
1. PROGRAM ENKRIPSI
27
********************************
SISTEM SANDI VIGENERE
Kelompok I
Tk. I manajemen Persandian
********************************
Masukan pilihan anda (1/2) !
1. Enkripsi
2. Dekripsi
Pilihan Anda : 1
Masukan kunci :CRYPTO
Panjang periode=6
Masukan Plaintext:
SEKOLAHTINGGISANDINEGARAX
Panjang Plaintext:25
Ciphertext : UVIDEOJKGCZUKJYCWWPVEPKOZ
2. PROGRAM DEKRIPSI
28
********************************
SISTEM SANDI VIGENERE
Kelompok I
Tk. II manajemen Persandian
********************************
Masukan pilihan anda (1/2) !
1. Enkripsi
2. Dekripsi
Pilihan Anda : 2
Masukan kunci :CRYPTO
Panjang periode=6
Masukan ciphertext:
UVIDEOJKGCZUKJYCWWPVEPKOZ
Panjang ciphertext:25
Ciphertext : SEKOLAHTINGGISANDINEGARA
29
BAB V
PENUTUP
5.1 Kesimpulan
Sistem Sandi Vigenere diperkenalkan oleh Blaise de vigenere pada tahun
1585 dalam ”Traicte des Chiffer”, sebagai bentuk pengembangan dari metode
monoalphabetic. Metode ini juga merupakan dasar dari polyalphabetic
substitusion chiper. Beberapa ketentuan dalam metode ini adalah:
Setiap kunci dapat disubstitusikan dengan bermacammacam kunci yang
lainnya.
Menggunakan kata kunci.
Kata kunci digunakan secara berulang.
Kata kunci digunakan untuk menentukan enkripsi setiap alphabet dalam
palintext.
Huruf kei dalam plaintext dispesifikasikan oleh alphabet yang digunakan
dalam kunci.
Penggunaan alphabet bisa berulang.
5.2 Saran
Satu masalah utama simple substitusin chiper adalah cipher tersebut sangat
rawan terhadap analisis frekuensi. Dengan demikian cipher text yang cukup besar
dapat dengan mudah dipatahkan menggunakan mapping frekuensi dari huruf
30
hurufnya untuk menghetahui frekuensi dari english text. Oleh karena itu untuk
membuat cipher lebih aman dapat dilakukan dengan salah satu pendekatan yang
paling umum yaitu menekan data berfrekuensi normal dengan menggunakan
lebih dari satu alphabet untuk melakukan encrypt pesan
31
DAFTAR PUSTAKA
• Kurniawan, Yusuf, Kriptografi, Keamanan Internet dan Jaringan Komunikasi,
Penerbit Informatika.2004
• Munir, Rinaldi, Kriptografi, Penerbit Informatika. 2006
• www.google.com
32