Kamis, 28 Oktober 2010

Steganografi

Latar Belakang Steganografi

Herodotus adalah seorang sejarawan Yunani pertama yang menulis tentang steganografi, yaitu ketika seorang raja kejam Yunani bernama Histaeus dipenjarakan oleh Raja Darius di Susa pada abad ke-5 sebelum Masehi. Histaeus harus mengirim pesan rahasia kepada anak laki-lakinya, Aristagoras di Militus. Ia menulis pesan dengan cara menato pesan pada kulit kepala seorang budak. Ketika rambut budak itu mulai tumbuh, Histaeus mengutus budak itu ke Militus untuk mengirim pesan dikulit kepalanya tersebut kepada Aristagoras.

Cerita lain yang ditulis oleh heredotus, yaitu Demeratus, mengisahkan seorang Yunani yang akan mengabarkan berita kepada Sparta bahwa Xerxes bermaksud menyerbu Yunani. Agar tidak diketahui pihak Xerxes, Demaratus menulis pesan dengan cara mengisi tabung kayu dengan lilin dan menulis pesan dengan cara mengukirnya pada bagian bawah kayu. Papan kayu tersebut dimasukkan kedalam tabung kayu, kemudian tabung kayu ditutup kembali dengan lilin.

Teknik steganografi yang lain adalah tinta yang tak terlihat. Teknik ini kali pertama digunakan pada zaman Romawi kuno, yaitu dengan menggunakan air sari buah jeruk, urin, atau susu sebagai tinta untuk menulis pesan. Cara membacanya adalah dengan dipanaskan diatas nyala lilin. Tinta yang sebelumnya tidak terlihat, ketika terkena panas akan berangsur-angsur menjadi gelap sehingga pesan dapat dibaca. Teknik ini juga pernah digunakan pada Perang Dunia II.
Pada masa lampau steganografi sudah dipakai untuk berbagai kebutuhan, seperti kepentingan politik, militer diplomatik, serta untuk kepentingan pribadi, yaitu alat komunikasi pribadi. Beberapa penggunaan steganografi pada masa lampau bisa kita lihat dalam beberapa peristiwa berikut ini :
  • Pada Perang Dunia II, Jerman menggunakan microdots untuk berkomunikasi. Penggunaan teknik ini biasa digunakan pada microfilm chip yang harus diperbesar sekitar 200 kali. Dalam hal ini Jerman menggunakan steganografi untuk kebutuhan perang sehingga pesan rahasia strategi atau apapun tidak bisa diketahui oleh pihak lawan. Teknologi yang digunakan dalam hal ini adalah teknologi baru yang pada saat itu belum bisa digunakan oleh pihak lawan.
  • Pada Perang Dunia II, Amerika Serikat menggunakan suku Indian Navajo sebagai media untuk berkomunikasi. Dalam hal ini Amerika Serikat menggunakan teknologi kebudayaan sebagai suatu alat dalam steganografi. Teknologi kebudayaan ini tidak diketahui atau dimiliki pihak lawan, kecuali oleh Amerika Serikat.
Dari catatan sejarah dan contoh-contoh steganografi konvensional tersebut, kita dapat melihat bahwa semua teknik steganografi konvensional selalu berusaha merahasiakan pesan dengan cara menyembunyikan, mengamuflase, ataupun menyamarkan pesan.

Sementara, saat ini perkembangan teknologi internet telah membawa perubahan besar bagi kecepatan pertukaran informasi maupun distribusi media digital. Media digital berupa teks, citra, audio, atau video dapat dipertukarkan atau didistribusikan dengan mudah melalui internet. Disisi lain, kemudahan ini dapat menimbulkan permasalahan ketika media tersebut adalah media yang sifatnya rahasia. Masalah ini juga bisa terjadi jika media tersebut terlindungi oleh hak cipta (copyright), tetapi dengan mudah orang lain membuat salinan yang sulit dibedakan dengan aslinya dan dengan mudah pula salinan tersebut didistribusikan atau diperbanyak oleh pihak-pihak yang tidak berhak.


Definisi Steganografi

Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan bahwa ada suatu pesan. Kata steganografi (steganografi) berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis”.

Kini, istilah steganografi termasuk penyembunyian data digital dalam file-file komputer. Contohnya, si pengirim mulai dengan file gambar biasa, lalu mengatur warna setiap pixel ke-100 untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang menyadarinya jika ia tidak benar-benar memperhatikannya).

Pada umumnya, pesan steganografi muncul dengan rupa lain seperti gambar, artikel, daftar belanjaan, atau pesan-pesan lainnya. Pesan yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi. Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak terlihat diantara garis-garis yang kelihatan.

Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam file-file lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file semula. Metode ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar. Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya kebanyakan diselesaikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan.

Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi komputer karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan diantaranya:
  • Format image : bitmap (bmp), gif, pcx, jpeg, dll.
  • Format audio : wav, voc, mp3, dll.
  • Format lain : teks file, html, pdf, dll.
Kelebihan steganografi daripada kriptografi adalah pesan-pesannya tidak menarik perhatian orang lain. Pesan-pesan berkode dalam kriptografi yang tidak disembunyikan, walaupun tidak dapat dipecahkan, akan menimbulkan kecurigaan. Seringkali, steganografi dan kriptografi digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.

Sebuah pesan steganografi (plaintext), biasanya pertama-tama dienkripsikan dengan beberapa arti tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext. Contohnya, ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext lainnya dapat dimanipulasi untuk membawa pesan tersembunyi; hanya penerima (yang harus mengetahui teknik yang digunakan) dapat membuka pesan dan mendekripsikannya.


Metode Steganografi

Kebanyakan algoritma steganografi menggunakan sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah selubung file. Sebuah program steganografi dibutuhkan untuk melakukan hal-hal berikut (baik implisit melalui suatu perkiraan maupun eksplisit melalui sebuah perhitungan), menemukan kelebihan bits dalam selubung file yang dapat digunakan untuk menyelubungi pesan rahasia didalamnya, memilih beberapa diantaranya untuk digunakan dalam menyelubungi data dan penyelubungan data dalam bits dipilih sebelumnya. Ada empat jenis metode Steganografi, yaitu :

Least Significant Bit Insertion (LSB)

Metoda yang digunakan untuk menyembunyikan pesan pada media digital tersebut berbeda-beda. Contohnya pada file image pesan dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan (LSB) pada data pixel yang menyusun file tersebut. Seperti kita ketahui untuk file bitmap 24 bit maka setiap pixel (titik) pada gambar tersebut terdiri dari susunan tiga warna merah, hijau dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Dengan demikian pada setiap pixel file bitmap 24 bit kita dapat menyisipkan 3 bit data. Kekurangan dari LSB Invertion : Dapat diambil kesimpulan dari contoh 8 bit pixel, menggunakan LSB Insertion dapat secara drastis merubah unsur pokok warna dari pixel. Ini dapat menunjukkan perbedaan yang nyata dari cover image menjadi stego image, sehingga tanda tersebut menunjukkan keadaan dari steganografi. Variasi warna kurang jelas dengan 24 bit image, bagaimanapun file tersebut sangatlah besar. Antara 8 bit dan 24 bit image mudah diserang dalam pemrosesan image, seperti cropping (kegagalan) dan compression (pemampatan). Keuntungan dari LSB Insertion : Keuntungan yang paling besar dari algoritma LSB ini adalah cepat dan mudah. Dan juga algoritma tersebut memiliki software steganografi yang mendukung dengan bekerja diantara unsur pokok warna LSB melalui manipulasi pallete (lukisan).

Algorithms and Transformation

Algoritma compression adalah metode steganografi dengan menyembunyikan data dalam fungsi matematika. Dua fungsi tersebut adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat spatial (spatial domain) ke tempat frekuensi (frequency domain).

Redundant Pattern Encoding

Redundant Pattern Encoding adalah menggambar pesan kecil pada kebanyakan gambar. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan), kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar.

Spread Spectrum method

Spread Spectrum steganografi terpencar-pencar sebagai pesan yang diacak (encrypt) melalui gambar (tidak seperti dalam LSB). Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses image (gambar).


Steganalisis dan Stegosystem

Seperti Kriptografi dan Kriptanalisis, Steganalisis didefinisikan sebagai suatu seni dan ilmu dalam mendeteksi informasi tersembunyi. Sebagai tujuan dari steganografi adalah untuk merahasiakan keberadaan dari sebuah pesan rahasia, satu keberhasilan penyerangan pada sebuah sistem steganografi terdiri dari pendeteksian bahwa sebuah file yang diyakini berisikan data terselubung. Seperti dalam Kriptanalisis diasumsikan bahwa sistem steganografi telah diketahui oleh si penyerang dan maka dari itu keamanan dari sistem steganografi bergantung hanya pada fakta bahwa kunci rahasia tidak diketahui oleh si penyerang.

Stegosystem disini berisi tentang penyerangan-penyerangan yang dilakukan terhadap suatu sistem steganografi, sebuah perbedaan penting harus dibuat diantara penyerangan-penyerangan pasif dimana penyerang hanya dapat memotong data dan penyerangan-penyerangan aktif dimana penyerang juga dapat memanipulasi data. Pada gambar dibawah ini menunjukkan sebuah diagram untuk menjelaskan sistem stego. Lingkaran-lingkaran menunjukkan tempat-tempat penyerang yang berpotensi memiliki jalan masuk ke satu atau lebih dari tempat-tempat tersebut akibat penyerangan-penyerangan yang berbeda jenis, dan juga berfungsi untuk melakukan sebuah penyerangan aktif. Jika lingkaran tidak terisi, penyerang hanya dapat melakukan penyerangan pasif yaitu menghalangi memotong data.

Penyerangan-penyerangan berikut memungkinkan dalam model dari stegosistem ini :
  • Stego-Only-Attack (Penyerangan hanya Stego).Penyerang telah menghalangi stego data dan dapat menganalisisnya.
  • Stego-Attack (Penyerangan Stego). Pengirim telah menggunakan cover yang sama berulangkali untuk data terselubung. Penyerang memiliki file stego yang berasal dari cover file yang sama. Dalam setiap file-file stego tersebut, sebuah pesan berbeda disembunyikan.
  • Cover-Stego-Attack (Penyerangan selubung Stego). Penyerang telah menghalangi file stego dan mengetahui cover file mana yang digunakan untuk menghasilkan file stego ini. Ini menyediakan sebuah keuntungan melalui penyerangan stego-only untuk si penyerang.
  • Manipulating the stego data (Memanipulasi data stego).Penyerang memiliki kemampuan untuk memanipulasi data stego. Jika penyerang hanya ingin menentukan sebuah pesan disembunyikan dalam file-stego ini, biasanya ini tidak memberikan sebuah keuntungan tapi memiliki kemampuan dalam memanipulasi data stego yang berarti bahwa si penyerang mampu memindahkan pesan rahasia dalam data stego (jika ada).
  • Manipulating the cover data (Memanipulasi data terselubung). Penyerang dapat memanipulasi data terselubung dan menghalangi hasil data stego. Ini dapat membuat tugas dalam menentukan apakah data stego berisikan sebuah pesan rahasia lebih mudah bagi si penyerang.


Kriteria Steganografi yang Bagus

Penyembunyian data rahasia kedalam citra digital akan mengubah kualitas citra tersebut. Hal ini tergantung pada ukuran file media penyimpan dan ukuran file pesan yang disisipkan . Untuk itu ada beberapa hal atau criteria yang harus diperhatikan dalam penyembunyian data, yaitu: 
  • Fidelity
Mutu citra penampung data tidak jauh berubah. Setelah terjadi penambahan pesan rahasia, stego-data masih terlihat dengan baik. Pengamat tidak mengetahui kalau didalam stego-data tersebut terdapat pesan rahasia. 
  • Robustness
Pesan yang disembunyikan harus tahan (robust) terhadap berbagai operasi manipulasi yang dilakukan pada stego-data, seperti pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan cropping, enkripsi, dan sebagainya. Bila pada citra penampung dilakukan operasi-operasi pengolahan citra tersebut, maka pesan yang disembunyikan seharusnya tidak rusak (tetap valid jika diekstraksi kembali).
  • Recovery
Data yang disembunyikan harus dapat diungkapkan kembali (recovery). Karena tujuan steganografi adalah penyembunyian informasi maka sewaktu-waktu pesan rahasia didalam stego-data harus dapat diambil kembali untuk digunakan lebih lanjut.


Sumber :
http://id.wikipedia.org/wiki/Steganografi
http://latifaulfah.blogspot.com/2010/03/steganografi.html

Teknik Pengamanan Program dan Sistem Operasi

Implementasi pengamanan sangat penting untuk menjamin sistem tidak diinterupsi dan diganggu. Proteksi dan pengamanan terhadap perangkat keras dan system operasi sama pentingnya. Sistem operasi hanya satu bagian
kecil dari seluruh perangkat lunak di suatu sistem. Tetapi karena sistem operasi mengendalikan pengaksesan ke sumber daya, dimana perangkat lunak lain meminta pengaksesan sumber daya lewat sistem operasi maka sistem operasi menempati posisi yang penting dalam pengamanan sistem.

Pengamanan perangkat lunak cenderung memfokuskan pada pengamanan sistem operasi, karena perangkat lunak aplikasi juga memberi resiko keamanan.Keamanan sistem operasi merupakan bagian masalah keamanan sistem computer secara total. Pengamanan sistem operasi berarti kecil jika setiap orang dapat melenggang di ruang sistem komputer. Pengamanan secara fisik dengan membatasi pengaksesan fisik secara langsung dengan fasilitas sistem computer harus dilakukan juga.

Keamanan
Keamanan sistem komputer adalah untuk menjamin sumber daya tidak digunakan atau dimodifikasi orang tak terotorisasi. Pengamanan termasuk masalah teknis, manajerial, legalitas dan politis.

Keamanan sistem terbagi menjadi tiga, yaitu :
  • Keamanan eksternal (external security).
Berkaitan dengan pengamanan fasilitas komputer dari penyusup (hacker) dan bencana seperti kebakaran dan kebanjiran.
  • Keamanan interface pemakai (user interface security).
Berkaitan dengan identifikasi pemakai sebelum pemakai diijinkan mengakses program dan data yang disimpan.
  • Keamanan internal (internal security).
Berkaitan dengan pengamanan beragam kendali yang dibangun pada perangkat keras dan sistem operasi yang menjamin operasi yang handal dan tak terkorupsi untuk menjaga integritas program dan data. Istilah keamanan (security) dan proteksi (protection) sering digunakan secara bergantian. Untuk menghindari kesalahpahaman, istilah keamanan mengacu ke seluruh masalah keamanan dan istilah mekanisme proteksi mengacu ke mekanisme sistem yang digunakan untuk memproteksi/melindungi informasi pada sistem komputer.


Petunjuk Pengamanan Sistem
Terdapat beberapa prinsip pengamanan sistem komputer, yaitu :
  • Rancangan sistem seharusnya publik.
Keamanan sistem seharusnya tidak bergantung pada kerahasiaan rancangan mekanisme pengamanan. Mengasumsikan penyusup tidak akan mengetahui cara kerja sistem pengamanan hanya menipu/memperdaya perancang sehingga tidak membuat mekanisme proteksi yang bagus.
  • Dapat diterima.
Skema yang dipilih harus dapat diterima secara psikologis. Mekanisme proteksi seharusnya tidak menganggu kerja pemakai dan memenuhi kebutuhan otorisasi pengaksesan. Jika mekanisme tidak mudah digunakan maka tidak akan digunakan atau digunakan secara tak benar.
  • Pemeriksaan otoritas saat itu.
Sistem tidak seharusnya memeriksa ijin dan menyatakan pengaksesan diijinkan, serta kemudian menetapkan terus informasi ini untuk penggunaan selanjutnya. Banyak sistem memeriksa ijin ketika file dibuka dan setelah itu (operasi-operasi lain) tidak diperiksa. Pemakai yang membuka file dan lupa menutup file akan terus dapat walaupun pemilik file telah mengubah atribut proteksi file.
  • Kewenangan serendah mungkin.
Program atau pemakai sistem seharusnya beroperasi dengan kumpulan wewenang serendah mungkin yang diperlukan untuk menyelesaikan tugasnya. Default sistem yang digunakan harus tak ada akses sama sekali.
  • Mekanisme yang ekonomis.
Mekanisme proteksi seharusnya sekecil, sesederhana mungkin dan seragam sehingga memudahkan verifikasi. Proteksi seharusnya dibangun dilapisan terbawah. Proteksi merupakan bagian integral rancangan sistem, bukan mekanisme yang ditambahkan pada rancangan yang telah ada.


Kebijakan Pengamanan
Suatu sistem computer bisa dilihat sebagai sekumpulan sumberdaya yang tersedia untuk dipergunakan oleh user yang berhak. Terdapat sejumlah komponen keamanan yang perlu diperhatikan oleh administrator :
  • Availability: Sistem harus tersedia untuk dipergunakan saat user memerlukannya. Serupa dengan itu , data penting harus juga tersedia pada setiap saat.
  • Utility: Sistem dan data pada system harus berguna untuk suatu tujuan
  • Integrity: Sistem dan data harus lengkap dan terbaca
  • Authenticity: Sistem harus mampu memverifikasi identitas dari user, dan user harus bisa memverifikasi identitas system
  • Confidentially: Data pribadi hanya boleh diketahui oleh pemilik data atau sejumlah pihak terpilih untuk berbagi data
  • Possession: Pemilik dari system harus mampu mengendalikannya. Kehilangan control pada suatu system ke tangan orang yang tidak berhak, akan berdampak pada keamanan system bagi pengguna lainnya.

Sumber : http://jarkom.4t.com/download/Pengamanan-Sistem-Operasi.pdf

    Model Enkripsi

    Salah satu hal yang penting dalam komunikasi menggunakan computer untuk menjamin kerahasian data adalah enkripsi. Enkripsi dalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah sistem pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim. Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, maka teknik ini digunakan dalam sistem keamanan komputer dan network.

    Pada bagian selanjutnya kita akan membahas berbagai macam teknik enkripsi yang biasa digunakan dalam sistem sekuriti dari sistem komputer dan network.


    Enkripsi Konvensional

    Proses enkripsi ini dapat digambarkan sebagai berikut :
    Plain teks -> Algoritma Enkripsi -> Cipher teks ->Algoritma Dekrispsi -> Plain teks
    User A | | User B
    |----------------------Kunci (Key) --------------------|
    Gambar 1

    Informasi asal yang dapat di mengerti di simbolkan oleh Plain teks, yang kemudian oleh algoritma Enkripsi diterjemahkan menjadi informasi yang tidak dapat untuk dimengerti yang disimbolkan dengan cipher teks. Proses enkripsi terdiri dari dua yaitu algoritma dan kunci. Kunci biasanya merupakan suatu string bit yang pendek yang mengontrol algoritma. Algoritma enkripsi akan menghasilkan hasil yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi akan mengubah output dari algortima enkripsi.

    Sekali cipher teks telah dihasilkan, kemudian ditransmisikan. Pada bagian penerima selanjutnya cipher teks yang diterima diubah kembali ke plain teks dengan algoritma dan dan kunci yang sama.

    Keamanan dari enkripsi konvensional bergantung pada beberapa faktor. Pertama algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsi cipher teks dengan dasar cipher teks tersebut. Lebih jauh dari itu keamanan dari algoritma enkripsi konvensional bergantung pada kerahasian dari kuncinya bukan algoritmanya. Yaitu dengan asumsi bahwa adalah sangat tidak praktis untuk mendekripsikan informasi dengan dasar cipher teks dan pengetahuan tentang algoritma diskripsi / enkripsi. Atau dengan kata lain, kita tidak perlu menjaga kerahasiaan dari algoritma tetapi cukup dengan kerahasiaan kuncinya.
    Manfaat dari konvensional enkripsi algoritma adalah kemudahan dalam penggunaan secara luas. Dengan kenyataan bahwa algoritma ini tidak perlu dijaga kerahasiaannya dengan maksud bahwa pembuat dapat dan mampu membuat suatu implementasi dalam bentuk chip dengan harga yang murah. Chips ini dapat tersedia secara luas dan disediakan pula untuk beberapa jenis produk. Dengan penggunaan dari enkripsi konvensional, prinsip keamanan adalah menjadi menjaga keamanan dari kunci.
    Model enkripsi yang digunakan secara luas adalah model yang didasarkan pada data encrytion standard (DES), yang diambil oleh Biro standart nasional US pada tahun 1977. Untuk DES data di enkripsi dalam 64 bit block dengan menggunakan 56 bit kunci. Dengan menggunakan kunci ini, 64 data input diubah dengan suatu urutan dari metode menjadi 64 bit output. Proses yang yang sama dengan kunci yang sama digunakan untuk mengubah kembali enkripsi.
    Enkripsi Public-Key
    Salah satu yang menjadi kesulitan utama dari enkripsi konvensional adalah perlunya untuk mendistribusikan kunci yang digunakan dalam keadaan aman. Sebuah cara yang tepat telah diketemukan untuk mengatasi kelemahan ini dengan suatu model enkripsi yang secara mengejutkan tidak memerlukan sebuah kunci untuk didistribusikan. Metode ini dikenal dengan nama enkripsi public-key dan pertama kali diperkenalkan pada tahun 1976.


    Plain teks -> Algoritma Enkripsi -> Cipher teks -> Algoritma Dekrispsi -> Plain teks
    User A | | User B
    Private Key B ----|
    |----------------------Kunci (Key) --------------------|
    Gambar 2

    Algoritma tersebut seperti yang digambarkan pada gambar diatas. Untuk enkripsi konvensional, kunci yang digunakan pada prosen enkripsi dan dekripsi adalah sama. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya, kunci yang berbeda, untuk dekripsi. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekrispi. Sehingga teknik berikut ini akan dapat dilakukan :
    1. Masing - masing dari sistem dalam network akan menciptakan sepasang kunci yang digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.
    2. Masing - masing dari sistem akan menerbitkan kunci enkripsinya ( public key ) dengan memasang dalam register umum atau file, sedang pasangannya tetap dijaga sebagai kunci pribadi ( private key ).
    3. Jika A ingin mengisim pesan kepada B, maka A akan mengenkripsi pesannya dengan kunci publik dari B.
    4. Ketika B menerima pesan dari A maka B akan menggunakan kunci privatenya untuk mendeskripsi pesan dari A.

    Seperti yang kita lihat, public-key memecahkan masalah pendistribusian karena tidak diperlukan suatu kunci untuk didistribusikan. Semua partisipan mempunyai akses ke kunci publik ( public key ) dan kunci pribadi dihasilkan secara lokal oleh setiap partisipan sehingga tidak perlu untuk didistribusikan. Selama sistem mengontrol masing - masing private key dengan baik maka komunikasi menjadi komunikasi yang aman. Setiap sistem mengubah private key pasangannya public key akan menggantikan public key yang lama. Yang menjadi kelemahan dari metode enkripsi publik key adalah jika dibandingkan dengan metode enkripsi konvensional algoritma enkripsi ini mempunyai algoritma yang lebih komplek. Sehingga untuk perbandingan ukuran dan harga dari hardware, metode publik key akan menghasilkan performance yang lebih rendah.

    Enkripsi Konvensional
    Yang dibutuhkan untuk bekerja :
    1. Algoritma yang sama dengan kunci yang sama dapat digunakan untuk proses dekripsi - enkripsi.
    2. Pengirim dan penerima harus membagi algoritma dan kunci yang sama.
    Yang dibutuhkan untuk keamanan :
    1. Kunci harus dirahasiakan.
    2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
    3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunc.

    Enkripsi Public Key
    Yang dibutuhkan untuk bekerja :
    1. Algoritma yang digunakan untuk enkripsi dan dekripsi dengan sepasang kunci, satu untuk enkripsi satu untuk dekripsi.
    2. Pengirim dan penerima harus mempunyai sepasang kunci yang cocok.
    Yang dibutuhkan untuk keamanan :
    1. Salah satu dari kunci harus dirahasiakan.
    2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
    3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci.

    Sumber : http://hari-susanto.blogspot.com/2010/02/enkripsi-sistem-keamanan-data-pada.html

    Public Key Infrastructure

    Public Key Infrastructure (PKI) adalah sebuah cara untuk otentikasi, pengamanan data dan perangkat anti sangkal. Secara teknis, PKI adalah implementasi dari berbagai teknik kriptografi yang bertujuan untuk mengamankan data, memastikan keaslian data maupun pengirimnya dan mencegah penyangkalan.

    Teknik-teknik kriptografi yang digunakan antara lain: - fungsi hash, - algoritma enkripsi simetrik, dan - algoritma enkripsi asimetrik. Fungsi hash akan digunakan bersama dengan algoritma enkripsi asimetrik dalam bentuk tanda tangan digital untuk memastikan integritas dan keaslian berita/data berikut pengirimnya. Algoritma enkripsi simetrik digunakan untuk mengamankan data dengan cara enkripsi. Dalam PKI penggunaan algoritma enkripsi simetrik tidak langsung didefinisikan tetapi telah diimplementasikan oleh berbagai perangat lunak. Secara garis besar PKI diwujudkan dalam bentuk kolaborasi antar komponen-komponennya.


    Komponen-komponen PKI antara lain: - Subscriber, - Certification Authority (CA), - Registration Authority (RA), - Sertifikat Digital. Secara praktis wujud PKI adalah penggunaan sertifikat digital. Sertifikat digital adalah sebuah file komputer yang berisi data-data tentang sebuah public key, pemiliknya (subscriber atau CA), CA yang menerbitkannya dan masa berlakunya.

    PKI telah diimplementasikan dengan berbagai aplikasi seperti S/MIME, HTTPS, VPN, dll. dapat melihat fitur S/MIME pada software email yang terkenal seperti Outlook Express, Mozilla Mail/Thunderbird, dan Evolution.

    Certificate Authority (disingkat menjadi CA), adalah sebuah entitas yang mengeluarkan sertifikat digital yang dapat digunakan oleh pihak-pihak lainnya. Disebut juga sebagai Certification Authority. Para CA merupakan contoh pihak-pihak yang dapat dipercayai, khususnya dalam transaksi secara online di Internet. CA merupakan salah satu ciri-ciri dari beberapa ciri-ciri lainnya dalam skema implementasi public key infrastructure (PKI).

    Ada banyak CA yang bersifat komersial yang untuk menggunakan jasanya, sebuah entitas, baik itu perseorangan ataupun organisasi, harus membayar jasa mereka. Beberapa pemerintahan dan institusi pendidikan mungkin memiliki CA mereka masing-masing, dan tentu saja di sana juga banyak tersebar CA yang menawarkan jasanya secara cuma-cuma.

    Kriptografi Public Key

    Permasalahan dari key distribution dipecahkan oleh public key cryptography, konsep ini diperkenalkan oleh Bywhitfield Diffie dan Martin Hellman di tahun 1975.

    Public key cryptography adalah suatu skema asymmetric yang menggunakan sepasang kunci untuk enkripsi: suatu kunci publik, yang mengenkrip data, dan suatu kunci privat yang bersesuaian untuk deskripsi. Anda mempublis kunci publik Anda kepada dunia sementra kunci pribadi disimpan oleh anda sendiri. Setiap orang dengan suatu salinan kunci publik Anda kemudian bisa mengenkripsi informasi yang hanya Anda dapat membaca melalui kunci privat.

    Gambar Enkripsi Public Key
    Keuntungan utama dari public key cryptography adalah mengizinkan orang yang belum memiliki kesepakatan keamanan sebelumnya untuk melakukan pertukaran pesan secara aman. Kebutuhan para pengirim dan penerima untuk berbagi kunci rahasia melalui suatu jalur rahasia telah dihilangkan. Seluruh komunikasi melibatkan hanya kunci publik dan tidak ada kunci privat yang ditransmisikan atau dishare.

    Beberapa contoh dari public-key cryptosystems sebagai berikut :
    • Elgamal (sesuai dengan nama penemunya, Taher Elgamal)
    • RSA (Nama berasal dari penemunya, Ron Rivest, Adi Shamir, and Leonard Adleman)
    • Diffie-Hellman and DSA
    • Algoritma tanda tangan digital (ditemukan oleh David Kravitz)  
        Sertifikat Digital (Digital certificates)


    Salah satu permasalahan dengan sistem kriptografi kunci publik adalah memastikan bahwa pengguna harus secara kostan berhati-hati untuk memastikan bahwa pengguna melakukan enkripsi dengan benar terhadap kunci seseorang. Dalam lingkungan dimana secara bebas menukarkan kunci via server-server publik, man-in-the-middle attacks adalah serangan yang dapat terjadi pada lingkungan ini. Di serangan ini, seseorang memasang suatu kunci palsu dengan nama dan user ID dari pengguna yang akan menerima. Data terenkripsi yang diterima oleh pemilik sebenarnya adalah dari kunci palsu ini sekarang ada pada pihak yang salah.


    Dalam sebuah lingkungan kunci publik, penting bahwa anda tahu untuk hal tertentu, kunci publik yang anda sedang mengenkrip data adalah benar-benar kunci publik si penerima bukan kunci publik palsu. Anda dengan mudah mengenkrip hanya kunci-kunci tersebut di mana secara fisik sudah ditangan anda. Tetapi misal anda ingin bertukar informasi dengan orang-orang yang belum anda bertemu sebelumnya, bagaimana memastikan anda memiliki kunci yang sebenarnya.


    Digital certificates(sertifikat digital) atau certs (sertifikat) yang menyederhanakan tugas memastikan apakah kunci publik ini benar pemilik sebenarnya. Sebuah sertifikat adalah sebuah bentuk surat kepercayaan atau pengakuan. antara lain dari surat kepercayaan atau pengakuan adalah SIM, KTP dan surat kelahiran. Setiap sertifikat tersebut memiliki informasi yang mengidentifikasikan anda dan beberapa penetapan otorasi bahwa seseorang telah mengkofirmasi identitas anda. Beberapa sertifikat seperti pasport, merupakan konfirmasi yang cukup penting dari identitas anda yang anda tidak ingin kehilangannya, agar tidak seseorang menggunakannya untuk berpura-pura sebagai anda.


    Sebuah sertifikat digital berfungsi seperti sebuah sertifikat fisik. Sertifikat digital adalah informasiyang mengandung publik key seseorang yang membantu orang lain untuk memeriksa keaslian dan keabsahan public key tersebut.

    Sumber : http://asaneresha.blogspot.com/2010/05/pki-public-key-infrastructure-ca.html

    Monoalfabetik dan Polialfabetik

    Sistem cipher substitusi adalah sebuah algoritma enkripsi dan dekripsi yang mensubstitusi unit-unit sebuah text dengan unit-unit lain berdasarkan aturan tertentu. Unit-unit ini bisa saja sebuah huruf, sepasang huruf, sebuah kata, dan sebagainya. Contoh sederhana cipher ini dapat dilihat pada gambar 1.
    Gambar 1. Cipher Substitusi

    Pada gambar 1 di atas, plaintext di enkripsi dengan mensubstitusi tiap huruf dengan huruf setelahnya pada alphabet latin. Ini adalah salah satu contoh cipher substitusi jenis monoalfabetik.

    Cipher subtitusi ini memiliki beberapa jenis, di antaranya adalah sebagai berikut:
    • Monoalfabetik
    • Polialfabetik

    Monoalfabetik

    Sistem cipher substitusi monoalfabetik memetakan tiap huruf satu per satu seperti pada contoh gambar 1 di atas, dimana tiap huruf alfabet dipetakan ke huruf setelahnya. Untuk melakukan dekripsi dari ciphertext, sebuah substitusi kebalikannya dilakukan, misalnya bila enkripsinya adalah mengganti huruf plaintext dengan huruf alfabet setelahnya, maka algoritma dekripsinya adalah mengganti huruf pada ciphertext dengan huruf alfabet sebelumnya.

    Kriptografi Julius Caesar termasuk ke dalam cipher jenis ini, dimana pada kriptografinya, tiap huruf dipetakan ke tiga huruf setelahnya, A menjadi D, B menjadi E, dan seterusnya. Cipher semacam ini sering disebut dengan Caesar Cipher, dimana enkripsi dilakukan dengan menggeser huruf pada alphabet sebanyak jumlah kunci yang diberikan. Contoh lain dari cipher jenis ini adalah cipher Atbash yang sering dipakai untuk alphabet Hebrew, dimana enkripsi dilakukan dengan mengganti huruf pertama dengan huruf terakhir, huruf kedua dengan huruf kedua terakhir, dan seterusnya.

    Dalam kriptografi, sandi Caesar, atau sandi geser, kode Caesar atau Geseran Caesar adalah salah satu teknik enkripsi 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" pada teks 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.

    Contoh
    Sandi Caesar mengganti setiap huruf di teks terang (plaintext) dengan huruf yang berselisih angka tertentu dalam alfabet. Contoh ini menggunakan geseran tiga, sehingga huruf B di plaintext menjadi E di teks tersandi (ciphertex)

    Cara kerja sandi ini dapat diilustrasikan dengan membariskan dua set alfabet; alfabet sandi disusun dengan cara menggeser alfabet biasa ke kanan atau ke kiri dengan angka tertentu (angka ini disebut kunci). Misalnya sandi Caesar dengan kunci 3, adalah sebagai berikut:

    Alfabet Biasa:   ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Alfabet Sandi:   DEFGHIJKLMNOPQRSTUVWXYZABC

    Untuk menyandikan sebuah pesan, cukup mencari setiap huruf yang hendak disandikan di alfabet biasa, lalu tuliskan huruf yang sesuai pada alfabet sandi. Untuk memecahkan sandi tersebut gunakan cara sebaliknya. Contoh penyandian sebuah pesan adalah sebagai berikut.

    teks terang:   kirim pasukan ke sayap kiri
    teks tersandi: NLULP SDVXNDQ NH VDBDS NLUL

    Proses penyandian (enkripsi) dapat secara matematis menggunakan operasi modulus dengan mengubah huruf-huruf menjadi angka, A = 0, B = 1,..., Z = 25. Sandi (En) dari "huruf" x dengan geseran n secara matematis dituliskan dengan,

    E_n(x) = (x + n) \mod {26}.
    Sedangkan pada proses pemecahan kode (dekripsi), hasil dekripsi (Dn) adalah

    D_n(x) = (x - n) \mod {26}.
    Setiap huruf yang sama digantikan oleh huruf yang sama di sepanjang pesan, sehingga sandi Caesar digolongkan kepada, substitusi monoalfabetik, yang berlawanan dengan substitusi polialfabetik.

    Polialfabetik

    Cipher polialfabetik pertama kali dijelaskan oleh Leone Battista Alberti pada tahun 1467 sementara tableau – sebuah tabel alfabet yang dapat digunakan untuk membantu enkripsi dan dekripsi cipher polialfabetik – diperkenalkan oleh Johannes Trithemius dalam bukunya Steganographia. Pada cipher ini, beberapa alfabet cipher digunakan sekaligus yang kemudian ditulis di sebuah tabel.

    Cipher dengan jenis polialfabetik yang paling terkenal adalah cipher Vigenère yang ditulis oleh Blaise de Vigenère pada abad ke-16. Cipher ini memanfaatkan tabel alfabet 26 X 26 – atau lebih dikenal dengan nama Tabula Recta – dan menggunakan kunci dan plaintext sebagai penanda posisi pada Tabula Recta untuk mendapatkan ciphertext-nya. Untuk melakukan dekripsi, kunci dan ciphertext digunakan sebagai penanda posisi untuk mendapatkan plaintext.

    Gambar 2. Tabula Recta
    Untuk melakukan enkripsi dengan cipher Vigenère, sebuah kata kunci diperlukan. Kata kunci ini akan diulang sampai panjangnya sama dengan panjang plaintext dan kemudian digunakan untuk mencari huruf pengganti pada tabula recta.

    Kata Kunci: BEG
    Plaintext: J I D A D
    Kunci: B E G B E

    Dengan kunci dan plaintext tersebut, enkripsi Vigenère dapat dilakukan dengan bantuan tabula recta. Untuk mendapat huruf pertama ciphertext, kita masukkan kunci sebagai baris dan plaintext sebagai kolom. Jadi, huruf pertama ciphertext adalah K, huruf yang terdapat pada baris B dan kolom J.

    Gambar 3. Enkripsi Huruf Pertama dengan Cipher Vigenère
    Ulangi untuk huruf ciphertext berikutnya, yaitu huruf pada baris E dan kolom I, didapatkan huruf M sebagai huruf ciphertext kedua. Langkah-langkah tersebut diulangi sampai plaintext sudah habis dienkripsi dan ciphertext yang didapat adalah KMJBH.

    Gambar 4. Enkripsi Huruf Kedua dengan Cipher Vigenère
    Keistimewaan cipher ini adalah kemudahanya dalam implementasi dan kekuatannya dalam menghadapi serangan. Meskipun dapat dipakai dengan sederhana, cipher ini tergolong amat kuat untuk masanya, bahkan disebut-sebut sebagai cipher yang tidak dapat dipecahkan sampai pada abad ke-20.

    Sumber :
    http://id.wikipedia.org/wiki/Sandi_Caesar
    http://webmail.informatika.org/~rinaldi/Matdis/2009-2010/Makalah0910/MakalahStrukdis0910-054.pdf

    Enkripsi dan Dekripsi

    Di bidang kriptografi, enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.
    Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.

    Ciphers

    Sebuah cipher adalah sebuah algoritma untuk menampilkan enkripsi dan kebalikannya dekripsi, serangkaian langkah yang terdefinisi yang diikuti sebagai prosedur. Alternatif lain ialah encipherment. Informasi yang asli disebuh sebagai plaintext, dan bentuk yang sudah dienkripsi disebut sebagai chiphertext. Pesan chipertext berisi seluruh informasi dari pesan plaintext, tetapi tidak dalam format yang didapat dibaca manusia ataupun komputer tanpa menggunakan mekasnisme yang tepat untuk melakukan dekripsi.

    Cipher pada biasanya memiliki parameter dari sebagian dari informasi utama, disebut sebagai kunci. Prosedur enkripsi sangat bervariasi tergantung pada kunci yang akan mengubah rincian dari operasi algoritma. Tanpa menggunakan kunci, chiper tidak dapat digunakan untuk dienkirpsi ataupun didekripsi.

    Cipher versus code

    Pada penggunaan non teknis, sebuah secret code merupakan hal yang sama dengan cipher. Berdasar pada diskusi secara teknis, bagaimanapun juga, code dan cipher dijelaskan dengan dua konsep. Code bekerja pada tingkat pemahaman, yaitu, kata atau frasa diubah menjadi sesuatu yang lain. Cipher, dilain pihak, bekerja pada tingkat yang lebih rendah, yaitu, pada tingkat masing-masing huruf, sekelompok huruf, pada skema yang modern, pada tiap-tiap bit. Beberapa sistem menggunakan baik code dan cipher dalam sistem yang sama, menggunakan superencipherment untuk meningkatkan keamanan.

    Menurut sejarahnya, kriptografi dipisah menjadi dikotomi code dan cipher, dan penggunaan code memiliki terminologi sendiri, hal yang sama pun juga terjadi pada cipher: "encoding, codetext, decoding" dan lain sebagainya. Bagaimanapun juga, code memiliki berbagai macam cara untuk dikembalikan, termasuk kerapuhan terhadap kriptoanalisis dan kesulitan untuk mengatur daftar kode yang susah. Oleh karena itu, code tidak lagi digunakan pada kriptografi modern, dan cipher menjadi teknik yang lebih dominan.

    Tipe-tipe cipher

    Ada banyak sekali variasi pada tipe enkripsi yang berbeda. Algoritma yang digunakan pada awal sejarah kriptografi sudah sangat berbeda dengan metode modern, dan cipher modern dan diklasifikasikan berdasar pada bagaimana cipher tersebut beroperasi dan cipher tersebut menggunakan sebuah atau dua buah kunci.

    Sejarah Cipher pena dan kertas pada waktu lampau sering disebut sebagai cipher klasik. Cipher klasik termasuk juga cipher pengganti dan cipher transposisi. Pada awal abad 20, mesin-mesin yang lebih mutakhir digunakan untuk kepentingan enkripsi, mesin rotor, merupkan skema awal yang lebih kompleks.


    Metode enkripsi dibagi menjadi algoritma symmetric key dan algoritma asymmetric key. pada algoritma symmetric key (misalkan, DES dan AES), pengirim dan penerima harus memiliki kunci yang digunakan bersama dan dijaga kerahasiaanya. Pengirim menggunkan kunci ini untuk enkripsi dan penerima menggunakan kunci yang sama untuk dekripsi. Pada algoritma asymmetric key (misalkan, RSA), terdapat dua kunci terpisah, sebuah public key diterbitkan dan membolehkan siapapun pengirimnya untuk melakukan enkripsi, sedangkan sebuah private key dijaga kerahasiannya oleh penerima dan digunakan untuk melakukan dekripsi.

    Cipher symmetric key dapat dibedakan dalam dua tipe, tergantung pada bagaimana cipher tersebut bekerja pada blok simbol pada ukuran yang tetap (block ciphers), atau pada aliran simbol terus-menerus (stream ciphers).

    Sumber : http://id.wikipedia.org/wiki/Enkripsi