Algoritma Krtiptografi Fusion Tree
-
Upload
duwi-haryanto -
Category
Documents
-
view
19 -
download
1
description
Transcript of 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
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,
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
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.
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
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
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
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
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
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
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
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
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.
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