Profil

Kamis, 27 Juni 2013

Algoritma Kriptograpi Klasik

Sejarah dan Pengertian Kriptografi, Berasal dari akar kata Yunani kryptos dan gráphō, yang mempunyai arti "tulisan tersembunyi", telah ada hampir sepanjang kata-kata tertulis. Sepanjang masa, keuntungan dalam pertempuran antara ahlikriptologi (pembuat kode) dan cryptanalysts (pemecah kode) telah berpindah tangan berkali-kali. Peristiwa berikut ini adalah beberapa yang paling penting dalam sejarah perkembangan kriptografi.

Sejarah dan Pengertian KriptografiAbad ke-5 SM - Digunakannya kriptografi oleh Jendral Spartan untuk bertukar pesan rahasia menggunakan pita sempit membungkus perkamen sekitar staf silinder dikenal sebagai scytale, kemudian menyalin pesan mereka pada papirus. Pesan hanya dapat dibaca saat papirus adalah ulang luka di sekitar scytale ketebalan yang sama. Ini adalah penggunaan yang tercatat paling awal apa yang sekarang dikenal sebagai cipher transposisi.

Abad ke-2 SM - Sejarawan Polybius Yunani mengembangkan salah satu yang paling awal tercatat yaitu cipher substitusi dengan mengganti huruf-huruf alfabet, disusun dalam Polybius persegi, dengan angka.

Abad ke-1 SM - jenderal Romawi menggunakan cipher pergeseran sederhana, di mana setiap huruf dari pesan plaintext akan bergeser jumlah tetap huruf dalam alfabet untuk menghasilkan ciphertext. Sandi kemudian dikenal sebagai sandi Caesar setelah Julius Caesar, yang konon lebih suka pergeseran dari tiga huruf.

Abad ke-9 - matematikawan Islam Yaqūb bin Yusuf Abu Ishaq al-Kindi menerbitkan buku teks pertama memecahkan kode, A Manuscript on Deciphering Cryptographic Messages. Al-Kindi memperkenalkan buku klasifikasi cipher, polyalphabetic sandi, dan analisis frekuensi, teknik penting yang digunakan dalam memecahkan cipher substitusi. Analisis frekuensi menggunakan frekuensi relatif simbol dalam pesan berkode untuk mengungkapkan apa huruf alfabet.
Algoritma kriptografi klasik berbasis karakter
nMenggunakan pena dan kertas saja, belum ada komputernTermasuk ke dalam kriptografi kunci-simetrinTiga alasan mempelajari algoritma klasik:
nContoh: Caesar Cipher
nTiap huruf alfabet digeser 3 huruf ke kanan
nContoh:


Cipher Substitusi

1. Memahami konsep dasar kriptografi.
2. Dasar algoritma kriptografi modern.
3. Memahami kelemahan sistem cipher.
Algoritma kriptografi klasik:
1. Cipher Substitusi (Substitution Ciphers)   pi : 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
2.Cipher Transposisi (Transposition Ciphers)
  ci            : DE F G H I J K L M N O P Q R S T U V W X Y Z A B C
  Plainteks     :   AWASI ASTERIX DAN TEMANNYA OBELIX
  Cipherteks    :   DZDVL DVWHULA GDQ WHPDQQBA REHOLA
nDalam praktek, cipherteks dikelompokkan ke dalam kelompok n-huruf, misalnya kelompok 4-huruf:
nAtau membuang semua spasi:
nTujuannya agar kriptanalisis menjadi lebih sulit

DZDV LDVW HULA GDQW HPDQ QBAR EHOL A 
DZDVLDVWHULAGDQWHPDQQBAREHOLA  
nMisalkan A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher dirumuskan sebagai   berikut:
  Enkripsi: ci = E(pi) = (pi + 3) mod 26
  Dekripsi: pi = D(ci) = (ci – 3) mod 26 
nJika pergeseran huruf sejauh k, maka:
 
  Enkripsi: ci = E(pi) = (pi + k) mod 26
  Dekripsi: pi = D(ci) = (ci k) mod 26
  k = kunci rahasia
nUntuk 256 karakter ASCII, maka:
 
  Enkripsi: ci = E(pi) = (pi + k) mod 256
  Dekripsi: pi = D(ci) = (ci k) mod 256
  k = kunci rahasia


/* Program enkripsi file dengan Caesar cipher */
#include <stdio.h>
 
main(int argc, char *argv[])
{
 FILE *Fin, *Fout;
 char p, c;
 int k;
 
 Fin = fopen(argv[1], "rb");
 if (Fin == NULL)
   printf("Kesalahan dalam membuka %s sebagai berkas masukan/n",  argv[1]);   
 Fout = fopen(argv[2], "wb"); 
 printf("\nEnkripsi %s menjadi %s ...\n", argv[1], argv[2]);
 printf("\n");
 printf("k : ");
 scanf("%d", &k); 
 while ((p = getc(Fin)) != EOF)
 {
  c = (p + k) % 256;
  putc(c, Fout); 
 }
 
 fclose(Fin);
 fclose(Fout);
        }   

/* Program dekripsi file dengan Caesar cipher */
 
#include <stdio.h>
 
main(int argc, char *argv[])
{
 FILE *Fin, *Fout;
 char p, c;
 int n, i, k;
 
 Fin = fopen(argv[1], "rb");
 if (Fin == NULL)
   printf("Kesalahan dalam membuka %s sebagai berkas masukan/n",  argv[1]);   
 Fout = fopen(argv[2], "wb"); 
 printf("\nDekripsi %s menjadi %s ...\n", argv[1], argv[2]);
 printf("\n");
 printf("k : ");
 scanf("%d", &k); 
 while ((c = getc(Fin)) != EOF)
 {
  p = (c - k) % 256;
  putc(p, Fout); 
 }
  fclose(Fin);
 fclose(Fout);
        }    

Kelemahan: 
  Caesar cipher mudah dipecahkan dengan exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci).
Contoh: kriptogram XMZVH
PHHW PH DIWHU WKH WRJD SDUWB
KEY
1  oggv og chvgt vjg vqic rctva
2  nffu nf bgufs uif uphb qbsuz
3  meet me after the toga party
4  Ldds ld zesdq sgd snfz ozqsx
5  kccr kc ydrcp rfc rmey nyprw
6 
21 ummb um inbmz bpm bwoi xizbg
22 tlla tl hmaly aol avnh whyaf
23 skkz sk glzkx znk zumg vgxze
24 rjjy rj fkyjw ymj ytlf ufwyd
25 qiix qi ejxiv xli xske tevxc
Contoh: Kriptogram  HSPPW menghasilkan dua kemungkinan kunci yang potensial, yaitu k = 4 menghasilkan pesan DOLLS dan k = 11 menghasilkan WHEEL.
nDi dalam sistem operasi Unix, ROT13 adalah fungsi menggunakan Caesar cipher dengan pergeseran k = 13
  Jika kasusnya demikian, maka lakukan dekripsi terhadap potongan cipherteks lain tetapi cukup menggunakan k = 4 dan k = 11  agar dapat disimpulkan kunci yang benar

nContoh:  ROT13(ROTATE) = EBGNGR
nNama “ROT13” berasal dari net.jokes
  (hhtp://groups.google.com/group/net.jokes)  (tahun 1980)

nROT13 biasanya digunakan di dalam forum online untuk menyandikan jawaban teka-teki, kuis,  canda, dsb

nEnkripsi arsip dua kali dengan ROT13 menghasilkan pesan semula:
   P = ROT13(ROT13(P))  
   sebab        ROT13(ROT13(x)) = ROT26(x) = x
nJadi dekripsi cukup dilakukan dengan mengenkripsi cipherteks kembali dengan ROT13

Senin, 17 Juni 2013

Misteri danau purba di candi borobudur

Candi Borobudur kebanggaan Indonesia yang terletak di Kabupaten Magelang Propinsi Jawa Tengah kini mendapatkan gelar yang lengkap, mulai dari Guinness World Records sebagai Candi Buddha terbesar dan dari Warisan Dunia UNESCO sebagai situs Arkeologi.

Terlepas dari kemegahan dan keindahan Borobudur, lengkap dengan relief yang penuh kisah dalam agama Buddha, sejumlah misteri masih melingkupi candi ini.

Pada tahun 1814, atas jasa Gubernur Jenderal Britania Raya, Thomas Stamford Raffles, candi yang selama berabad - abad terkubur di bawah gundukan tanah, menjadi serupa bukit penuh semak belukar dan ditumbuhi pohon, mulai jadi perhatian pemerintah kolonial. Raffles juga lah yang pertama kali menuliskan nama “Borobudur” dalam bukunya, History of Java. Tak jelas asal mula nama itu.



Borobudur yang misterius itu diakui oleh Direktur Utama Taman Wisata Candi ( TWC ) Borobudur Prambanan Ratu Boko ( Persero ), Purnomo Siswoprasetjo.

Salah satunya, bagaimana cara Borobudur itu dibangun. Dari mana asal batu - batu besar material candi dan teknologi apa yang digunakan untuk mengangkat dan menyusunnya dengan presisi dan desain arsitektur yang mengagumkan.

“Apakah batu itu berasal dari Gunung Merapi, terus bagaimana membawanya dari Merapi menuju lokasi candi masih misteri,” kata Purnomo.


Tak hanya asal batu, di mana pembuat Borobudur mengukir dan memahat batu juga masih belum diketahui. Para arkeolog masih mencari dimana bengkel para seniman. “Mengukir dan memahat batu sedemikian besar ukurannya dan jumlahnya banyak, belum diketahui di mana tempatnya,” terang dia.

Letak Borobudur yang tak biasa, berada di atas bukit, dikelilingi dua pasang gunung kembar — Sindoro - Sumbing dan Merbabu - Merapi, sementara candi lain dibangun di tanah datar juga menjadi teka - teki yang belum terjawab.

Pada tahun 1931, seniman dan pakar arsitektur Hindu Buddha, W.O.J. Nieuwenkamp, mengajukan teori bahwa Daratan Kedu — lokasi Borobudur menurut legenda Jawa, dulunya adalah sebuah danau purba. Borobudur dibangun melambangkan bunga teratai yang mengapung di atas permukaan danau. Ini sebuah hipotesa yang menjadi perdebatan hangat di kalangan para ilmuwan saat itu.

Van Bemmelen dalam bukunya “The Geology of Indonesia” menyebutkan bahwa piroklastika Merapi pada letusan besar tahun 1006 telah menutupi danau Borobudur menjadi kering dan sekaligus menutupi candi ini hingga lenyap dari sejarah.

Fakta geologi juga memberi dukungan pada pendapat itu. “Di sekitar candi terdapat sumur yang airnya asin. Tapi yang sumurnya asin tidak di semua daerah, hanya di titik tertentu,” tutur Purnomo soal dugaan Borobudur dibangun di tengah danau purba.

Dia menambahkan, pertanyaan itu juga yang menarik banyak ilmuwan asing berdatangan, untuk melakukan penelitian. “Banyak para ahli dari luar negeri seperti dari Jepang yang datang ke Candi Borobudur khusus untuk meneliti danau purba itu. Mereka biasa tinggal selama satu minggu hingga dua minggu,” kata dia.


Salah satu cara untuk mengungkap misteri danau purba itu dengan meneliti sungai - sungai yang berada di sekitar Borobudur, termasuk Sungai Progo dan Elo. Juga pada masyarakat yang tinggal di sekitar candi.