Rail Fence Autokey

download Rail Fence Autokey

of 21

Transcript of Rail Fence Autokey

  • 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