• Tidak ada hasil yang ditemukan

Rail Fence Autokey

N/A
N/A
Protected

Academic year: 2021

Membagikan "Rail Fence Autokey"

Copied!
21
0
0

Teks penuh

(1)

LAPORAN LAPORAN

TUGAS KRIPTOGRAFI TUGAS KRIPTOGRAFI

MEMBUAT PROGRAM C RAIL FENCE DAN AUTOKEY MEMBUAT PROGRAM C RAIL FENCE DAN AUTOKEY

Oleh: Oleh: KELOMPOK 3 KELOMPOK 3 Tutde

Tutde Suputrawan Suputrawan 12086050071208605007 Aditya

Aditya Caesar Caesar Bagaskara Bagaskara 12086050341208605034 I

I Made Made Adi Adi Bhaskara Bhaskara 12086050421208605042 Putu

Putu Angga Angga Satria Satria Tidi Tidi 12086050721208605072 I

I Made Made Martina Martina 12086050841208605084 I

I Putu Putu Krisna Krisna Adi Adi Syandhana Syandhana 12086050701208605070 Aryana

Aryana Surya Surya Budiman Budiman 12086050911208605091 Putu

Putu Sugawa Sugawa Arismunandar Arismunandar 12086050381208605038 I

I Putu Putu Raka Raka Wiratma Wiratma 12086050821208605082

PROGRAM STUDI TEKNIK INFORMATIKA PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN ILMU KOMPUTER JURUSAN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS UDAYANA UNIVERSITAS UDAYANA

(2)

ii ii

KATA PENGANTAR KATA PENGANTAR

Puji syukur kami sampaikan ke hadapan Tuhan Yang Maha Esa, karena Puji syukur kami sampaikan ke hadapan Tuhan Yang Maha Esa, karena  berkat rahmatnya kami dapat menyelesaikan laporan Kriptografi.

 berkat rahmatnya kami dapat menyelesaikan laporan Kriptografi.

Kami menyadari bahwa Laporan yang kami buat masih jauh dari sempurna, Kami menyadari bahwa Laporan yang kami buat masih jauh dari sempurna, oleh karena itu apabila menemukan kesalahan atau kekurangan dalam laporan ini, oleh karena itu apabila menemukan kesalahan atau kekurangan dalam laporan ini,  baik

 baik dari dari segi segi bahasanya bahasanya maupun maupun isinya, isinya, kritik kritik dan dan saran saran dari dari semua semua pihak pihak yangyang  bersifat membangun selalu kami harapkan.

 bersifat membangun selalu kami harapkan.

Akhir kata, kami ucapkan terima kasih kepada dosen pembimbing dan semua Akhir kata, kami ucapkan terima kasih kepada dosen pembimbing dan semua orang yang telah

orang yang telah berperan serta berperan serta dalam penyusdalam penyusunan laporan unan laporan ini dari ini dari awal sampaiawal sampai akhir.

akhir.

Bukit

Bukit Jimbaran, Jimbaran, 17 September 17 September 20142014

Kelompok Kelompok

(3)

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 Vigènere 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

(4)

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

(5)

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.

(6)

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

(7)

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 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 buku La 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ènere digunakan 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). 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. Contoh:

Gambar 1 Contoh Tabel Substitusi Algoritma Kriptografi Vigenere Cipher Plaintext: PLAINTEXT

(8)

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 vigènere cipher yaitu menggunakantabula recta (disebut juga bujur sangkar vigènere).

(9)

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 Vigènere cipher

Idealnya kunci tidak digunakan secara berulang. Pada auto-key vigènere 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.

(10)

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 c hiper.

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.

(11)

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.

(12)

// 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) {

(13)

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) {

(14)

{

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)

(15)

} 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)

(16)

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");

(17)

{ if(i%2==0) { a[k]=s[i]; k++; } else { b[l]=s[i]; l++; } } for(i=0;i<k;i++) { printf("%c ",a[i]); s[m]=a[i]; m++; } printf("\n\t\t");/*memunculkan hasil string*/ for(i=0;i<l;i++) { printf(" %c",b[i]); s[m]=b[i]; m++; }

printf("\n\ncipher text Adalah= %s",s); break;

} case 2: {

char penyeimbang1[25], penyeimbang2[25], penyeimbang3[25], penyeimbang4[25];//suatu fariabel bantu tidak berarti tetapi

bermakna

char nilaiPlain[25], nilaiKey[25], hasil[25];

int nilai3, awal1, awal2, nilai1[25], nilai2[25]; printf("Plaintext : ");

scanf("%s",&nilaiPlain); printf("Key\t : "); scanf("%s",&nilaiKey);

int akhir1 = strlen(nilaiPlain); int akhir2 = strlen(nilaiKey);

(18)

hasil[awal1] = hurufKeluar(nilai3); } if(akhir1>akhir2) { int zz = 0; for(akhir2;akhir2<akhir1;akhir2++) { nilai1[akhir2] = ambilNilai(nilaiPlain[akhir2]); nilai2[akhir2] = ambilNilai(nilaiPlain[zz]); nilai3 = (nilai1[akhir2] + nilai2[akhir2])%26; hasil[akhir2] = hurufKeluar(nilai3); zz++; } } else if(akhir1<akhir2) { int xx = 0; for(akhir2;akhir2<akhir1;akhir2++) { nilai1[akhir2] = ambilNilai(nilaiPlain[akhir2]); nilai2[akhir2] = ambilNilai(nilaiPlain[xx]); nilai3 = (nilai1[akhir2] + nilai2[akhir2])%26; hasil[akhir2] = hurufKeluar(nilai3); xx++; } } printf("%s\n",hasil); break; } } return 0; }

(19)

Gambaran Autokey

(20)

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 Saran

Menurut saya, Metode autokey chiper mudah dipahami oleh orang. Jadi lebih baik menggunakan rail fence dibandingkan autokey cipher dalam mengenkripsi data.

(21)

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

Gambar

Gambar 1 Contoh Tabel Substitusi Algoritma Kriptografi Vigenere Cipher
Gambar 2 Contoh Tabel Kriptografi dengan Algoritma Vigenere Cipher

Referensi

Dokumen terkait

ditandai dengan redaksi-redaksi hadis mereka yang mengindikasikan ketidakpercayaan kaum Syi’ah Imamiyah dengan keotentikan al-Qur’an, Rukun Iman yang berbeda, adanya

Bagian pengiriman menerima faktur penjualan serta surat jalan rangkap pertama dari bagian admin penjualan untuk diberikan kepada pembeli kemudian menerima motor dari bagian gudang

Tujuan : Menghasilkan personil yang mempunyai kompetensi sebagai Petugas Proteksi Radiasi pada pemanfaatan sumber radiasi dalam industri dan medik sesuai dengan peraturan yang

Dalam penelitian ini yang menjadi variabel terikat adalah pengetahuan metamorfosis hewan. Pengetahuan metamorfosis hewan yang dimaksudkan pada penelitian ini adalah

3) BNPB perlu menjaga program dan kegiatan yang mendukung Prioritas Nasional tahun 2017 untuk tidak berubah, dengan harapan dapat tercapainya Prioritas Nasional yang berkaitan dengan

Terlepas dari keunggulan yang dimiliki, kayu sebagai produk alam memiliki beberapa kelemahan diantaranya bersifat biodegradable terhadap rayap, jamur dan organisme perusak

Interpretant atau pengguna tanda adalah konsep pemikiran dari orang yang menggunakan tanda dan menurunkannya ke suatu makna tertentu atau makna yang ada dalam benak seseorang

Pada analisis tambahan dengan meng- gunakan teknik anova diperoleh hasil bahwa tidak ada perbedaan yang signifikan antara tipe kepri- badian dengan jenis kelamin,