Algoritma Krtiptografi Fusion Tree

17
LAPORAN Tugas Membuat Algoritma Kriptografi ALGORITMA FUSION TREE Mata Kuliah : Kriptografi Dosen : Dony Ariyus, M.Kom Oleh Duwi Haryanto 10.11.3719 JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM

description

FUSION TREE Algoritma

Transcript of Algoritma Krtiptografi Fusion Tree

Page 1: Algoritma Krtiptografi Fusion Tree

LAPORAN

Tugas Membuat Algoritma Kriptografi

ALGORITMA FUSION TREEMata Kuliah : Kriptografi

Dosen : Dony Ariyus, M.Kom

Oleh

Duwi Haryanto

10.11.3719

JURUSAN TEKNIK INFORMATIKA

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

AMIKOM

YOGYAKARTA

2013

Page 2: Algoritma Krtiptografi Fusion Tree

1. Dasar Teori

1.1. Caesar Chiper

Dalam kriptografi, sandi Caesar, atau sandi geser, kode Caesar atau Geseran

Caesar adalah salah satu teknikenkripsi paling sederhana dan paling

terkenal. Sandi ini termasuk sandi substitusi dimana setiap huruf pada teks

terang(plaintext) digantikan oleh huruf lain yang memiliki selisih posisi tertentu

dalam alfabet. Misalnya, jika menggunakan geseran 3, W akan

menjadi Z, I menjadi L, dan K menjadi N sehingga teks terang "wiki" akan menjadi

"ZLNL" padateks tersandi. Nama Caesar diambil dari Julius Caesar, jenderal, konsul,

dan diktator Romawi yang menggunakan sandi ini untuk berkomunikasi dengan

para panglimanya.

Langkah enkripsi oleh sandi Caesar sering dijadikan bagian dari penyandian yang

lebih rumit, seperti sandi Vigenère, dan masih memiliki aplikasi modern pada

sistem ROT13. Pada saat ini, seperti halnya sandi substitusi alfabet tunggal lainnya,

sandi Caesar dapat dengan mudah dipecahkan dan praktis tidak memberikan

kerahasiaan bagi pemakainya.

Memacahkan Kode Kaisar

Proses membaca teks tersandi menjadi teks terang disebut dekripsi. Sandi

Caesar dapat dipecahkan bahkan jika seseorang hanya memiliki teks tersandi tanpa

mengetahui nilai geserannya, ataupun bahwa sandi Caesar telah digunakan.

Jika pihak pemecah sandi hanya mengetahui bahwa digunakan substitusi

monoalfabetik dalam suatu sandi, sandi tersebut dipecahkan dengan cara analisis

frekuensi. Setiap bahasa memiliki huruf yang sering digunakan atau jarang digunakan.

Misalnya huruf a sering sekali digunakan dalam bahasa Indonesia, dan q atau x jarang

sekali muncul. Setiap bahasa memiliki pola frekuensi tertentu, yang menunjukkan

frekuensi relatif dari digunakannya huruf-huruf dalam bahasa tersebut. Pola frekuensi

huruf dalam bahasa Inggris ditunjukkan dalam gambar.

Jika pemecah kode menghitung frekuensi huruf pada teks tersandi,

karakteristik khusus pada grafik disamping tentu masih ada pada teks tersandi, hanya

saja posisinya telah digeser. Misalkan sang pemecah kode menemukan lonjakan diC,

Page 3: Algoritma Krtiptografi Fusion Tree

serta tiga batang tinggi berturut-turut diikuti enam batang rendah berturut-turut

dimulai dari O, maka bisa ditebak bahwa sandi tersebut menggunakan geseran 5 ke

kiri, dan dari kesimpulan ini kita dapat mendekripsi teks tersandi dengan menggeser

setiap huruf sandi 2 posisi ke kanan.

Cara kedua yang lebih mudah, dapat dilakukan jika sang pemecah sandi

mengetahui bahwa pengirim sandi menggunakan sandi Caesar. Sandi tersebut akan

dipecahkan dengan menggunakan brute force attack, yaitu mencoba ke-26

kemungkinan geseran yang digunakan. Biasanya hanya satu dari ke-26 kemungkinan

ini yang dapat dibaca. Misalkan suatu teks tersandi "EXXEGOEXSRGI". Pada tabel

disamping ditunjukkan hasil percobaan yang dilakukan, dan hanya satu hasil yang

dapat dibaca, yaitu attackatonce. Hal ini berarti pesan yang disandikan adalah pesan

berbahasa Inggris "attack at once", yang berarti "serang sekarang juga".

Dengan kemajuan komputer dan teknologi informasi, kedua cara diatas dapat

dijalankan dengan mudah dan cepat, sehingga saat ini sandi Caesar sama sekali tidak

berguna untuk menyembunyikan atau menyandikan dokumen-dokumen atau perintah-

perintah penting dan rahasia.

1.2. Tree

Tree merupakan salah satu bentuk struktur data non linear  yang menggambarkan

hubungan yang bersifat hirarkis (hubungan one to many) antara elemen-elemen. Tree

bisa didefinisikan sebagai kumpulan simpul/node dengan satu elemen khusus yang

disebut Root dan node lainnya terbagi menjadi himpunan-himpunan yang saling tak

berhubungan satu sama lainnya (disebut subtree).

Simpul/node

Sebuah Simpul dapat mengandung sebuah nilai atau suatu kondisi atau

menggambarkan sebuah struktur data terpisah atau sebuah bagian pohon itu sendiri.

Setiap simpul dalam sebuah pohon memiliki nol atau lebih simpul anak (child nodes),

yang berada dibawahnya dalam pohon (menurut perjanjian, pohon berkembang ke

bawah, tidak seperti yang dilakukannya di alam). Sebuah simpul yang memiliki anak

dinamakan simpul ayah (parent node) atau simpul leluhur (ancestor node)

atau superior. Sebuah simpul paling banyak memiliki satu ayah. Tinggi dari pohon

adalah panjang maksimal jalan ke sebuah daun dari simpul tersebut. Tinggi dari akar

Page 4: Algoritma Krtiptografi Fusion Tree

adalah tinggi dari pohon. Kedalaman dari sebuah simpul adalah panjang jalan ke

akarnya dari simpul tersebut.

Daun/leaf

Semua simpul yang berada pada tingkat terendah dari pohon dinamakan daun (leaf

node). Sejak mereka terletak pada tingkat paling bawah, mereka tidak memiliki anak

satupun. Seringkali, daun merupakan simpul terjauh dari akar. Dalam teori grafik,

sebuah daun adalah sebuah sudut dengan tingkat 1 selain akar (kecuali jika pohonnya

hanya memiliki satu sudut; maka akarnya adalah daunnya juga). Setiap pohon

memiliki setidaknya satu daun.

Dalam pohon berdasarkan genetic programming sebuah daun (juga dibilang

terminal) adalah bagian terluar dari sebuah program pohon. Jika dibandingkan dengan

fungsinya atau simpul dalam, daun tidak memiliki argumen. Di banyak kasus dalam

daun-GP input ke programnya

2. Tujuan

2.1. Membuat sebuah algoritma yang unik, belum pernah ada yang

menggunakannya.

2.2. Dengan memodifikasi algoritma caesar chiper diharapkan dapat mempersulit

deskripsi dari algoritma tersebut.

3. Batasan Masalah

3.1. Cabang dari tree sudah ditentukan sebelumnya antara penerima dan pengirim

pesan, dalam setiap parent dapat menghasilkan berapa child.

3.2. Algoritma ini adalah modifikasi dari algoritma kaisar chiper.

3.3. Menggunakan pohon(tree) sebagai modifikasinya.

4. Proses Pembuatan

4.1. Aturan Algoritma Tree Fusion

Menentukan Plaintext dan Key dan Key disini dibagi menjadi 2 bagian, Key

untuk melakukan penggabungan(fusion) dengan plaintext, Key untuk

menentukan karakter ke-n yang akan dijadikan root dalam tree.

Dalam pembentukan tree, ditentukan berapa child yang dapat dihasilkan dari

1 parent, disini yang akan digunakan 1 parent dapat menghasilkan 2 child.

Page 5: Algoritma Krtiptografi Fusion Tree

4.2. Deklarasi Plaintext dan Key 1 dan 2

Plaintext :

S A Y A S U K A C O K L A T

Key 1:

A M I K O M

Key 2:

8

Pada key 1 hilangkan karakter yang sama, maka bentuk key ke 1 setelah

menghilangkan karakter yang sama.

A M I K O

Mengubah setiap karakter pada plaintext dan key 1 ke kode kaisar

Plaintext

S A Y A S U K A C O K L A T

18 0 24 0 18 20 10 0 2 14 10 11 0 19

Key 1

A M I K O

A

B C

Parent

Child

Page 6: Algoritma Krtiptografi Fusion Tree

0 12 8 10 14

4.3. Pengabungan Plaintext

Penggabungan Plaintext dengan key 1, dengan melakukan operasi penjumlahan

terhadap setiap karakter yang telah dirubah dalam bentuk kaisar chiper. Berikut

iterasi ke -1.

18 0 24 0 18 20 10 0 2 14 10 11 0 19

0 12 8 10 14

Hasilnya :

18 0 24 0 18 20 10 0 2 14 10 11 0 19

Penggabungan Plaintext dengan key 1, putaran ke 2

18 0 24 0 18 20 10 0 2 14 10 11 0 19

0 12 8 10 14

Hasilnya :

4 12 10 12 4 6 22 12 14 0 22 23 1

2

5

Page 7: Algoritma Krtiptografi Fusion Tree

Penggabungan Plaintext dengan key 1, putaran ke 3

4 12 10 12 4 6 22 12 14 0 22 23 1

2

5

0 12 8 10 14

Hasilnya :

12 20 18 20 12 14 4 20 22 8 4 5 20 13

Penggabungan Plaintext dengan key 1, putaran ke 4

12 20 18 20 12 14 4 20 22 8 4 5 20 13

0 12 8 10 14

Haslinya :

22 4 2 4 22 24 14 4 6 18 14 15 4 23

Penggabungan Plaintext dengan key 1, putaran ke 5

22 4 2 4 22 24 14 4 6 18 14 15 4 23

0 12 8 10 14

Page 8: Algoritma Krtiptografi Fusion Tree

Hasilnya :

10 18 16 18 10 12 2 18 20 6 2 3 18 11

Mengubah setiap karakter angka ke dalam alphabet.

10 18 16 18 10 12 2 18 20 6 2 3 18 11

Hasilnya :

K S Q S K M C S U G C D S L

4.4. Memasukkan setiap karakter kedalam tree

Membagi plaintext 2 bagian sama panjang karakternya, jika karakternya tidak

bisa sama panjang ditambahkan paddingtext misal karakter ‘x’ .

Gunakan kunci ke 2 untuk menentukan hurufpuncaknya(root) yaitu 8, diambil

karakter ke 8 untuk dijadijan root.

K S Q S K M C S U G C D S L X

Dengan mengambil karakter ke-n sebagai root sesuai dengan key ke-2, kemudian

turunkan karakter yang ada disamping kanan dan kiri untuk dijadikan sebgai

child(untuk parent root). Kemudian untuk sisi kanan, ambil karakter sisi kanan

child(parent baru) untuk dijadikan child baru, letakkan pada samping luar,

kemudian ambil karakter sisi kanan berikutnya, untuk dijadikan child selanjutnya

,letakkan pada bagian dalam. Sama halnya dengan sisi kiri, langkahnya sama spt

yang dijelaskan diatasnya.

7 Karakter 7 Karakter

Page 9: Algoritma Krtiptografi Fusion Tree

Cara Membaca Tree

Cara membaca tree adalah baca terlebih dahulu parent kemudain child dari luar

kemudian kedalam bagian tree, proses ini di ulang sampai semua karakter pada

tree terbaca.

S C U C M K

U C G M S Q G S D K S K C X

L

Chipert Text yang dihasilkan

S C U C M K

U C G M S Q G S D K S K C X

L

Page 10: Algoritma Krtiptografi Fusion Tree

4.5. Deskripsi

S C U C M K

U C G M S Q G S D K S K C X

L

Mencari titik Acuan, titik acuan merupakan karakter yang didapat dari duplikasi

setiap karakter parent pada tree, sesuai dengan kesepakatan sebelumnya, bahwa 1

parent menghasilkan 2 child.

4.6. Menyusun plaintexbaru

Karakter yang diambil pertama kali adalah karakter dari dalam tree, karena dalam

penyusunan tree dilakukan dari luar ke dalam, maka dalam deskripsipnya

dilakukan berkebalikan, agar mendapatkan nilai plaintext sama dengan aslinya.

Dan setiap karakter titik acuan diambil 1 karakter saja.

K S Q S K M C S U G C D S L X

Kemudian diubah kedalam caesar chiper, dengan padding text dihilangkan,

didapatkan susunan seperti dibawah.

10 18 16 18 10 12 2 18 20 6 2 3 18 11 25

Page 11: Algoritma Krtiptografi Fusion Tree

Penyusunan palintext ke -1

Penyusunan dilakukan dengan melakukan operasi pengurangan terhadap

chipertex dengan menguranginya dengan key 1. Dimulai dari karakter paling

belakang dari key 1.

10 18 16 18 10 12 2 18 20 6 2 3 18 11

0 12 8 10 14

10-14 = 22(W)

A B C D E F G H I J K L M

0 1 2 3 4 5 6 7 8 9 10 11 12

N O P Q R S T U V W X Y Z

13 14 15 16 17 18 19 20 21 22 23 24 25

Hasilnya :

22 4 2 4 22 24 14 4 6 18 14 15 4 23 22

Page 12: Algoritma Krtiptografi Fusion Tree

Penyusunan plaintext ke-2

22 4 2 4 22 24 14 4 6 18 14 15 4 23 22

0 12 8 10 14

Hasilnya :

12 20 18 20 12 14 4 20 22 8 4 5 20 13 12

Penyusunan Plaintext ke-3

12 20 18 20 12 14 4 20 22 8 4 5 20 13 12

0 12 8 10 14

Hasilnya :

4 12 10 12 4 6 22 12 14 0 22 23 12 5 4

Penyusunan plaintext ke 4

4 12 10 12 4 6 22 12 14 0 22 23 12 5 4

0 12 8 10 14

Hasilnya :

18 0 24 0 18 20 10 0 2 14 10 11 0 19 18

Page 13: Algoritma Krtiptografi Fusion Tree

Penyusunan plaintext ke 5

18 0 24 0 18 20 10 0 2 14 10 11 0 19 18

0 12 8 10 14

Hasilnya :

18 0 24 0 18 20 10 0 2 14 10 11 0 19 18

4.7. Plaintext yang telah disusun

18 0 24 0 18 20 10 0 2 14 10 11 0 19 18

Kemudian setiap karakter angka diubah ke dalam karakter alphabet menggunakan

kaisar chiper.

S A Y A S U K A C O K L A T S

5. Tanya Jawab

A: Panjang cabang tree ditentukan tidak?

B : Ditentukan, sesuai dengan kesepakatan bersama, berapa child yang dapat dihasilkan oleh

1 parent, bukan ditentukan berdaskan cabangnya, berapapun karakter pada plaintext bisa

dimasukkan dalam tree.(kemarin ada miss komunikasi dengan penanya mengenai cabang

yang dihasilakan) makanya saya luruskan dalam laporan ini.

Page 14: Algoritma Krtiptografi Fusion Tree

Daftar Pustaka

Ariyus, Doni. 2008. Pengantar Ilmu Kriptografi. Andi Offset. Yogyakarta

http://id.wikipedia.org/wiki/Sandi_Caesar diakses pada tanggal 01 Januari 2013

http://id.wikipedia.org/wiki/Pohon_(struktur_data) diakses pada tanggal 01 Januari 2013