rail fence autokey
TRANSCRIPT
-
8/10/2019 Rail Fence Autokey
1/21
LAPORAN
TUGAS KRIPTOGRAFI
MEMBUAT PROGRAM C RAIL FENCE DAN AUTOKEY
Oleh:
KELOMPOK 3
Tutde Suputrawan 1208605007
Aditya Caesar Bagaskara 1208605034
I Made Adi Bhaskara 1208605042
Putu Angga Satria Tidi 1208605072
I Made Martina 1208605084
I Putu Krisna Adi Syandhana 1208605070
Aryana Surya Budiman 1208605091
Putu Sugawa Arismunandar 1208605038
I Putu Raka Wiratma 1208605082
PROGRAM STUDI TEKNIK INFORMATIKAJURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS UDAYANA
2014
-
8/10/2019 Rail Fence Autokey
2/21
ii
KATA PENGANTAR
Puji syukur kami sampaikan ke hadapan Tuhan Yang Maha Esa, karena
berkat rahmatnya kami dapat menyelesaikan laporan Kriptografi.
Kami menyadari bahwa Laporan yang kami buat masih jauh dari sempurna,
oleh karena itu apabila menemukan kesalahan atau kekurangan dalam laporan ini,
baik dari segi bahasanya maupun isinya, kritik dan saran dari semua pihak yang
bersifat membangun selalu kami harapkan.Akhir kata, kami ucapkan terima kasih kepada dosen pembimbing dan semua
orang yang telah berperan serta dalam penyusunan laporan ini dari awal sampai
akhir.
Bukit Jimbaran, 17 September 2014
Kelompok
-
8/10/2019 Rail Fence Autokey
3/21
i
DAFTAR ISI
DAFTAR ISI .................................................................................................................. i
BAB1 PENDAHULUAN ............................................................................................. 1
1.1 Latar Belakang.................................................................................................. 1
1.2 Rumasan Masalah............................................................................................. 1
1.3 Batasan Masalah............................................................................................... 1
1.4 Tujuan dan Manfaat......................................................................................... 2
1.5 Metode penulisan.............................................................................................. 2
BAB II LANDASAN TEORI ....................................................................................... 3
2.1 Kriptografi......................................................................................................... 3
2.2 Vigenere Cipher................................................................................................ 3
2.2.1 Auto-Key Vignere cipher............................................................................. 6
2.3 Row Transposition Chiper............................................................................... 7
2.3.1. Rail Fence Cipher.......................................................................................... 7
BAB III PEMBAHASAN ............................................................................................. 8
3.1 Implementasi Autokey Cipher......................................................................... 8
3.2 Implementasi Rail Fence.................................................................................. 8
BAB 4.......................................................................................................................... 17
PENUTUP ................................................................................................................... 17
4.1 Kesimpulan...................................................................................................... 17
4.2 Saran................................................................................................................. 17
DAFTAR PUSTAKA ................................................................................................. 18
-
8/10/2019 Rail Fence Autokey
4/21
1
BAB1
PENDAHULUAN
1.1 Latar Belakang
Berkat perkembangan teknologi yang begitu pesat memungkinkan
manusia dapat berkomunikasi dan saling bertukar informasi/data secara jarak
jauh. Antar kota antar wilayah antar negara bahkan antar benua bukan merupakan
suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Seiring
dengan itu tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi
yang saling dipertukarkan tersebut semakin meningkat.
Suatu perusahaan atau bahkan individu-individu tidak ingin informasi
yang disampaikannya diketahui oleh orang lain atau kompetitornya atau negara
lain. Oleh karena itu dikembangkanlah cabang ilmu yang mempelajari tentang
cara-cara pengamanan data atau dikenal dengan istilah Kriptografi. Dalam
kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi.
1.2 Rumasan Masalah
Berdasarkan latar belakang di atas dapat dirumuskan suatu masalah sebagai
berikut :
1. Bagaimana perancangan dan mengimplementasikan algoritma
Kriptografi klasik Autokey Chiper kedalam Bahasa pemrograman C ?
2. Bagaimana perancangan dan mengimplementasikan algoritma
Kriptografi klasik Rail Fence kedalam Bahasa pemrograman C ?
1.3 Batasan Masalah
Batasan Masalah yang akan dibahas pada penulisan laporan ini adalah
bagaimana tahapan algoritma Autokey Chiper dan Rail fence untuk mengamankan
informasi dan di implementasikan ke dalam Bahasa C
-
8/10/2019 Rail Fence Autokey
5/21
2
1.4 Tujuan dan Manfaat
Adapun tujuan dan manfaat dari penulisan laporan ini adalah untuk
membuat suatu program dari implementasi algoritma Autokey Chiper dan Rail
fence Chiper ke dalam bahasa pemrograman C.
1.5 Metode penulisan
Metode penulisan yang digunakan dalam penulisan ini adalah dengan studi
pustaka yang berhubungan dengan masalah penulis serta media internet sebagai
sarana untuk mencari data-data yang diperlukan dalam pembuatan aplikasi
ini.Dalam tahapan pembuatan aplikasi ini, dikerjakan secara berurutan dan
berkesinambungan agar hasilnya dapat terlihat lebih baik.
-
8/10/2019 Rail Fence Autokey
6/21
3
BAB II
LANDASAN TEORI
2.1 Kriptografi
Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga
agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa
mengalami gangguan dari pihak ketiga. Menurut Bruce Scheiner dalam bukunya
"Applied Cryptography", kriptografi adalah ilmu pengetahuan dan seni menjaga
message-message agar tetap aman (secure). Kriptografi adalah cabang dari ilmu
matematika yang memiliki banyak fungsi dalampengamanan data. Kriptografi
adalah proses mengambil pesan/message dan menggunakan beberapa fungsi untuk
menggenerasi materi kriptografis (sebuah digest atau message
terenkripsi).Kriptografi, secara umum adalah ilmu dan seni untuk menjaga
kerahasiaan berita [bruce Schneier - Applied Cryptography]. Selain pengertian
tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik
matematika yang berhubungan dengan aspek keamanan informasi seperti
kerahasiaan data, keabsahan data, integritas data, serta autentikasi data.
2.2 Vigenere Cipher
Vigenere chiper merupakan salah satu algoritma kriptografi klasik untuk
menyandikan suatu plaintext dengan menggunakan teknik substitusi. Vigenere
cipher pada dasarnya cukup rumit untuk dipecahkan. Meskipun begitu, Vigenere
cipher tetap memiliki kelemahan. Salah satunya adalah dapat diketahui panjang
kuncinya dengan menggunakan metode kasiski. Hal ini disebabkan karena
umumnya terdapat frasa yang berulang cipher text yang dihasilkan.
EnkripsiCi=(Pi+Ki)mod26 DeskripsiPi=(Ci+Ki)mod26 Untuk menyandikan
pesan, digunakan sebuah pesan alphabetis yg di urut, dan di geser 1 shift untuk
alphabet yang selanjutnya.
-
8/10/2019 Rail Fence Autokey
7/21
4
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 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 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 Dst..
Kode vignere termasuk kode abjad-majemuk (polyalphabetic substitution
cipher). Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis,
Blaise de Vignere 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 vignere. Vignere merupakan pemicu perang sipil di
Amerika dan kode vignere digunakan oleh Tentara Konfederasi (Confederate
Army) pada perang sipil Amerika (American Civil War). Kode vignere berhasil
dipecahkan oleh Babbage dan Kasiski pada pertengahan abad 19. (Ariyus, 2008).
Algoritma enkripsi jenis ini sangat dikenal karena mudah dipahami dan
diimplementasikan. Teknik untuk menghasilkan ciphertext bisa dilakukan
menggunakan substitusi angka maupun bujursangkar vignere. Teknik susbtitusi
vignere dengan menggunakan angka dilakukan dengan menukarkan huruf
dengan angka, hampir sama dengan kode geser. Contoh:
Gambar 1 Contoh Tabel Substitusi Algoritma Kriptografi Vigenere Cipher
Plaintext: PLAINTEXT
Kunci: CIPHER
-
8/10/2019 Rail Fence Autokey
8/21
5
Gambar 2 Contoh Tabel Kriptografi dengan Algoritma Vigenere Cipher
Dengan metode pertukaran angka dengan huruf di atas, diperoleh bahwa
teks asli (PLAINTEXT) memiliki kode angka (15,11, 0, 8, 13, 19, 4, 23, 19),
sedangkan kode angka untuk teks kunci (CIPHER) yaitu (2, 8, 15, 7, 4, 17).
Setelah dilakukan perhitungan, maka dihasilkan kode angka ciphertext (17, 19,
15, 15, 17, 10, 6, 5, 8). Jika diterjemahkan kembali menjadi huruf sesuai urutan
awal, maka menjadi huruf RTPPRKGFI. Sedangkan metode lain untuk
melakukan proses enkripsi dengan metode vignere cipher yaitu
menggunakantabula recta (disebut juga bujur sangkar vignere).
-
8/10/2019 Rail Fence Autokey
9/21
6
Gambar 3 Contoh Tabula Recta Algoritma Kriptografi Vigenere Cipher
Kolom paling kiri dari bujursangkar menyatakan huruf-huruf kunci,
sedangkan baris paling atas menyatakan huruf-huruf plaintext. Setiap baris di
dalam bujursangkar menyatakan huruf-huruf ciphertert yang diperoleh
denganCaesar cipher, yang mana jumlah pergeseran huruf plaintext ditentukan
nilai numerik huruf kunci tersebut (yaitu, a=0, b=1, c=2, , z=25). Sebagai
contoh, huruf kunci c (=2) menyatakan huruf-huruf plaintext digeser sejauh 2
huruf ke kanan (dari susunan alfabetnya), sehingga huruf-huruf ciphertext pada
baris c adalah:
Gambar 4 Potongan Tabula Recta Baris ke-C
2.2.1 Auto-Key Vignere cipher
Idealnya kunci tidak digunakan secara berulang. Pada auto-key vignere
cipher, jika panjang kunci lebih kecil dari panjang plaintext, maka kunci
disambung dengan plaintext tersebut. Autokey merupakan bagian dari algoritma
vigenere Cipher yang termasuk ke dalam cipher abjad-majemuk (polyalpabetic
substitution cipher). Algoritma tersebut baru dikenal luas 200 tahun kemudian
yang oleh penemunya cipher tersebut kemudian dinamakan Vigenere Cipher.
Vigenere Cipher menggunakan Bujursangkar Vigenere untuk melakukan
enkripsi.Setiap baris di dalam bujursangkar menyatakan huruf-huruf cipherteks
yang diperoleh dengan Caesar Cipher algoritma tersebut kemudian di modifikasi
oleh Gerolamo Cardano menjadi Autokey Chipher.
Contoh proses enkripsi menggunakan algoritma
AutokeyCipher :
Plaintext : SAYA
Keyword :KAMU
Ciphertext :CAKU
-
8/10/2019 Rail Fence Autokey
10/21
7
2.3 Row Transposition Chiper
Transposition cipher adalah salah satu jenis teknik pengenkripsian pesan
dengan cara mengubah urutan huruf-huruf yang ada di dalam plainteks (pesan
yang belum dienkripsi) menjadi chiperteks (pesan yang telah dienkripsi) dengan
cara tertentu agar isi dari pesan tersebut tidak dimengerti kecuali oleh orang-
orang-orang tertentu.
Pada dasarnya prinsip pengubahan pesan mirip dengan anagram seperti
kata melepas diubah menjadi saeelpm), tapi tentu saja transposition cipher
mempunyai rumus atau kunci tertentu yang diperlukan agar pesan bisa dimengerti
(Wibowo, 2012). Berikut adalah contoh transposition chiper.
2.3.1. Rail Fence Cipher
Rail Fence Chiper adalah salah satu jenis transposition cipher yang
menggunakan prinsip seperti rel kereta api yang terdapat dua buah jalur besi dan
kayu jembatan ditengah-tengahnya. Dalam cipher ini kita menyusuri rel tersebut
dengan naik-turun melalui jembatan. Kunci dapat berupa seberapa jauh jembatan
kayu tersebut (panjang naik turun). Setelah itu pesan akan dibaca secara mendatar
untuk mendapatkan cipherteks.
-
8/10/2019 Rail Fence Autokey
11/21
8
BAB III
PEMBAHASAN
3.1 Implementasi Autokey Cipher
Saat menjalankan program autokey chiper ini pertama-tama kita masukkan
key dari program tersebut. Setelah itu, program akan menampilkan plaintext dari
key yang telah dimasukkan dengan kata pertama berada diatas, kata kedua berada
dibawah, kata ketiga berada diatas dan seterusnya seperti itu berselang-seling
hingga kata terakhir dari key. Selanjutnya, chipertext dari program tersebut
mencetak kata yang di bagian atas terlebih dahulu baru diikuti oleh kata yang
berada pada bagian bawah.
Contoh Proses :
Key : SAYA
Plaintext : S Y
A A
3.2 Implementasi Rail Fence
Saat menjalankan program ini pertama-tama kita masukkan plaintext dari
program tersebut. Setelah itu kita diminta juga memasukkan nilai dari keyword
tersebut. Nilai key dari program tersebut yaitu keyword ditambahkan dengan
huruf pada plaintext hingga key berjumlah sama dengan plaintext. Dalam setiap
kata tersebut berisi nilai dengan nilai dari setiap abjad berurut ditambah satu yaitu
a=0,b=1,c=2....z=25. Cara memperoleh ciphertext yaitu dengan menambahkan
nilai plaintext dengan key dan hasilnya dimodulokan dengan 26. Hasil dari jumlah
tersebut akan dikonversikan kembali ke kata dan ditampilkan pada chipertext pada
program ini.
Chipertext : SYAA
#include
#include
#include
-
8/10/2019 Rail Fence Autokey
12/21
9
// Fungsi input ASCII 0-25
int ambilNilai(int a)
{
int nilaiHuruf;
if(a==65 || a==97)
{
nilaiHuruf = 0;
}
if(a==66 || a==98)
{
nilaiHuruf = 1;
}
if(a==67 || a==99)
{
nilaiHuruf = 2;
}
if(a==68 || a==100)
{
nilaiHuruf = 3;
}
if(a==69 || a==101)
{
nilaiHuruf = 4;
}
if(a==70 || a==102)
{
nilaiHuruf = 5;
}
if(a==71 || a==103)
{
nilaiHuruf = 6;
}
if(a==72 || a==104)
{
nilaiHuruf = 7;
}
if(a==73 || a==105)
{
nilaiHuruf = 8;
}if(a==74 || a==106)
{
nilaiHuruf = 9;
}
if(a==75 || a==107)
{
nilaiHuruf = 10;
}
if(a==76 || a==108)
{
nilaiHuruf = 11;
}
-
8/10/2019 Rail Fence Autokey
13/21
10
if(a==77 || a==109)
{
nilaiHuruf = 12;
}
if(a==78 || a==110)
{
nilaiHuruf = 13;
}
if(a==79 || a==111)
{
nilaiHuruf = 14;
}
if(a==80 || a==112)
{
nilaiHuruf = 15;
}
if(a==81 || a==113)
{
nilaiHuruf = 16;
}
if(a==82 || a==114)
{
nilaiHuruf = 17;
}
if(a==83 || a==115)
{
nilaiHuruf = 18;
}
if(a==84 || a==116)
{
nilaiHuruf = 19;
}
if(a==85 || a==117)
{
nilaiHuruf = 20;
}
if(a==86 || a==118)
{
nilaiHuruf = 21;
}
if(a==87 || a==119){
nilaiHuruf = 22;
}
if(a==88 || a==120)
{
nilaiHuruf = 23;
}
if(a==89 || a==121)
{
nilaiHuruf = 24;
}
if(a==90 || a==122)
-
8/10/2019 Rail Fence Autokey
14/21
11
{
nilaiHuruf = 25;
}
return nilaiHuruf;
}
// Fungsi input Urutan Huruf 0-25 mengeluarkan ASCII Huruf
Besar Saja
int huruf Keluar(int a)
{
int asciiHuruf;
if(a==0)
{
ascii Huruf = 65;
}
if(a==1)
{
asciiHuruf = 66;
}
if(a==2)
{
asciiHuruf = 67;
}
if(a==3)
{
asciiHuruf = 68;
}
if(a==4)
{
asciiHuruf = 69;
}
if(a==5)
{
asciiHuruf = 70;
}
if(a==6)
{
asciiHuruf = 71;}
if(a==7)
{
asciiHuruf = 72;
}
if(a==8)
{
asciiHuruf = 73;
}
if(a==9)
{
asciiHuruf = 74;
-
8/10/2019 Rail Fence Autokey
15/21
12
}
if(a==10)
{
asciiHuruf = 75;
}
if(a==11)
{
asciiHuruf = 76;
}
if(a==12)
{
asciiHuruf = 77;
}
if(a==13)
{
asciiHuruf = 78;
}
if(a==14)
{
asciiHuruf = 79;
}
if(a==15)
{
asciiHuruf = 80;
}
if(a==16)
{
asciiHuruf = 81;
}
if(a==17)
{
asciiHuruf = 82;
}
if(a==18)
{
asciiHuruf = 83;
}
if(a==19)
{
asciiHuruf = 84;
}if(a==20)
{
asciiHuruf = 85;
}
if(a==21)
{
asciiHuruf = 86;
}
if(a==22)
{
asciiHuruf = 87;
}
-
8/10/2019 Rail Fence Autokey
16/21
13
if(a==23)
{
asciiHuruf = 88;
}
if(a==24)
{
asciiHuruf = 89;
}
if(a==25)
{
asciiHuruf = 90;
}
return asciiHuruf;
}
Rail Fence
void main()
{
int c1;
printf("Kelompok 3:\n\tNama Anggota:\n\t
1.Tutde Suptrawan\t\t1208605007\n\t
2.Aditya Caesar Bagaskara\t1208605034\n\t
3.I Made Adi Bhaskara\t\t1208605042\n\t
4.Aryana Surya Budiman\t\t1208605091\n");
printf("\t5.Putu Sugawa Arismunandar\t1208605038\n\t
6.Putu Angga Satria Tidi\t1208605072\n\t
7.I Made Martina\t\t1208605084\n\t
8.I Putu Krisna Adi Syandhana\t1208605070\n\t
9.I Putu Raka Wiratma\t\t1208605082\n");
printf("\t-------------------{crypt}----------------
");
printf("\nMenu Pilihan Cyrpto\n
1.Rail Fance\n
2.Autokey\nPilih Menu= ");
scanf("%d",&c1);
system("cls");
switch(c1)
{
case 1:
{
int akhir,i,j,k=0,l=0,m=0;
char s[20],a[10],b[10];
printf("Input String:");
scanf("%s",s);
system("cls");
printf("\nplaintext=\n\t\t");
akhir = strlen(s);
for(i=0;i
-
8/10/2019 Rail Fence Autokey
17/21
14
{
if(i%2==0)
{
a[k]=s[i];
k++;
}
else
{
b[l]=s[i];
l++;
}
}
for(i=0;i
-
8/10/2019 Rail Fence Autokey
18/21
15
hasil[awal1] = hurufKeluar(nilai3);
}
if(akhir1>akhir2)
{
int zz = 0;
for(akhir2;akhir2
-
8/10/2019 Rail Fence Autokey
19/21
16
Gambaran Autokey
Gambaran Rail Fence
-
8/10/2019 Rail Fence Autokey
20/21
17
BAB 4
PENUTUP
4.1 Kesimpulan
Jadi dalam mempelajari bidang ilmu kriptografi, peran dalam enkripsi dan
dekripsi sangatlah penting untuk menjaga kerahasiaan data. Dalam mengekripsi
dan mendekripsi data banyak metode yang bisa digunakan salah satunya yaitu rail
fence dan autokey chiper. Dalam hal ini, dengan menggunakan rail fence dan
autokey cipher untuk mengamankan data dengan metode yang mudah dipahami.
4.2 SaranMenurut saya, Metode autokey chiper mudah dipahami oleh orang. Jadi
lebih baik menggunakan rail fence dibandingkan autokey cipher dalam
mengenkripsi data.
-
8/10/2019 Rail Fence Autokey
21/21
18
DAFTAR PUSTAKA
http://www.rapidtables.com/convert/color/cmyk-to-rgb.htm diakses
pada tanggal 13-09-2014
http://www.purplemath.com/modules/radians.htm diakses pada tanggal
13-09-2014
http://mathwithbaddrawings.com/2013/05/02/degrees-vs-
radians/diakses pada tanggal 14-09-2014
http://math.rice.edu/~pcmi/sphere/drg_txt.html diakses pada tanggal
14-09-2014
http://www.rapidtables.com/convert/color/cmyk-to-rgb.htmhttp://www.purplemath.com/modules/radians.htmhttp://mathwithbaddrawings.com/2013/05/02/degrees-vs-radians/http://mathwithbaddrawings.com/2013/05/02/degrees-vs-radians/http://mathwithbaddrawings.com/2013/05/02/degrees-vs-radians/http://mathwithbaddrawings.com/2013/05/02/degrees-vs-radians/http://math.rice.edu/~pcmi/sphere/drg_txt.htmlhttp://math.rice.edu/~pcmi/sphere/drg_txt.htmlhttp://mathwithbaddrawings.com/2013/05/02/degrees-vs-radians/http://mathwithbaddrawings.com/2013/05/02/degrees-vs-radians/http://www.purplemath.com/modules/radians.htmhttp://www.rapidtables.com/convert/color/cmyk-to-rgb.htm