Rabu, 23 Mei 2012

ENKRIPSI (Encryption) & DEKRIPSI (Decryption)

ENKRIPSI
Enkripsi komputer didasarkan pada ilmu kriptografi, yang telah lama digunakan. Sejarawan Yunani Lucius Mesterius Plutarchus (46-120) menulis tentang para jenderal tentara Spartan yang mengirim dan menerima pesan sensitif menggunakan scytale, sebuah kayu gelondong kecil. Para jenederal tersebut membungkus scytale dengan kertas yang terbuat dari kulit, dan menuliskan pesan sensitif di atasnya.

Ketika gulungan kertas dilepaskan dari gelondong kayu tersebut, tulisan terlihat bercampur aduk dan tidak memiliki makna. Tapi, bila jenderal lain menerima kertas tersebut, dan menggulungkannya di atas scytale dengan ukuran yang sama, sia bisa membaca isi pesan.

Namun saat ini, sebagian besar kriptografi mengandalkan komputer, mengingat kode yang dibuat manusia terlalu mudah untuk dipecahkan komputer. Cipher yang digunakan sekarang pun kini berupa algoritma. Pada umumnya, sistem enkripsi komputer termasuk ke dalam salah satu dari dua kategori enkripsi yakni : symmetric-key dan public-key.

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.

Enkripsi adalah sebuah proses data encoding atau pemecahan kode data yang hanya dapat dibaca bila kita memiliki sebuah kunci khusus. Dulu enkripsi hanya berkembang di dunia spionase/perang, tetapi saat ini teknologi tersebut telah merambah ke sektor bisnis dan kalangan pengguna rumahan: Enkripsi adalah tool terbaik untuk melindungi data, privasi, dan rahasia Anda.

Yang perlu diketahui tentang enkripsi yaitu:
-Mencegah akses yang tidak diinginkan pada dokumen dan pesan e-mail.
-Level enkripsi yang tinggi sukar untuk dibongkar.
-Perubahan dalam peraturan ekspor teknologi kriptografi akan meningkatkan penjualan software enkripsi.

Ada dua jenis enkripsi:
 
1.Enkripsi simetris 
Dengan enkripsi simetris, Anda menjalankan sebuah file melalui program dan membuat sebuah kunci yang mengacak file. Kemudian Anda mengirim file terenkripsi melalui e-mail ke si penerima dan secara terpisah mentransmit kunci dekodingnya (mungkin berupa sebuah password atau file data lainnya). Si penerima, dengan menjalankan aplikasi enkripsi yang sama, menggunakan kunci yang Anda berikan untuk menyatukan kembali file yang telah diacak. Enkripsi simetris sangat mudah dan sangat cepat dalam penggunaannya, tetapi tidak seaman enkripsi asimetris, karena seseorang dapat saja mencegat kunci dan mendekoding pesan tersebut. Tetapi karena kecepatannya itu, saat ini enkripsi simetris banyak digunakan pada transaksi e-commerce.


        
2.Enkripsi asimetris (public key).
Enkripsi asimetris sangat kompleks--tetapi jauh lebih aman. Diperlukan dua buah kunci yang saling berhubungan: sebuah kunci publik dan sebuah kunci pribadi. Anda membuat kunci publik Anda tersedia bagi siapa saja yang ingin Anda kirim informasi terenkripsi. Kunci tersebut hanya dapat mengenkoding data; ia tidak dapat mendekodingnya. Kunci pribadi Anda terjaga dengan aman bersama Anda. Saat orang-orang hendak mengirim informasi terenkripsi pada Anda, mereka mengenkripsinya menggunakan kunci publik Anda. Saat Anda menerima chipertext tersebut, Anda akan mendekripsikannya dengan menggunakan kunci pribadi Anda. Enkripsi asimetris menambahkan tingkat keamanan pada data Anda, tetapi akibatnya lebih banyak lagi waktu komputasi yang dibutuhkan, sehingga prosesnya menjadi sangat panjang dan lebih lama.

Enkripsi simetris dan asimetris menggunakan dua buah algoritma yang berbeda untuk menghasilkan chipertext. Pada enkripsi simetris, algoritmanya akan memecah-mecah data menjadi potongan-potongan kecil yang disebut blok. Kemudian ia akan mengganti letak huruf, mengubah informasi pada setiap blok menjadi angka, menkompresinya dan memperbesar ukuran data, dan kemudian menjalankannya melalui formula matematis termasuk kunci di dalamnya. Kemudian algoritma mengulangi proses tersebut, kadang-kadang sampai selusin pengulangan. Pada algoritma enkripsi asimetris, memperlakukan teks sebagai sebuah angka yang sangat besar, terus mengkalikannya menjadi angka yang lebih besar, dan kemudian mengkalkulasi sisanya setelah dibagi dengan angka terbesar ketiga lainnya. Akhirnya, angka sisa ini dikonversi menjadi teks kembali. Program enkripsi dapat menggunakan algoritma yang sama secara berbeda, itu sebabnya mengapa para penerima informasi yang terenkripsi harus memiliki program yang sama dengan si pengirim untuk mengenkoding data yang mereka terima.

Contoh alur dari ENKRIPSI
plaintext -> key + alogaritma -> ciphertext -> alogaritma + key -> plaintext.

Apa perbedaan enkripsi, encoding dan hash?
Enkripsi:
membutuhkan script/tool/alat bantu tambahan untuk membacanya. Jika kalian mengunakan enkripsi pada sistem kalian, maka kalian juga harus membuat decryptor nya juga. Hal ini karena program yang ada tidak bisa membaca enkripsi anda. Misal jika anda menggunakan caesar cipher pada PHP maka anda juga harus membuat decryptor nya, karena PHP tidak mengenali enkripsi model ini. Digunakan untuk menyimpan pesan rahasia misal: database intelejen, session, cookies
Encoding:
tidak membutuhkan alat bantu untuk membacanya. Karena biasanya sudah di include kan ke dalam program tersebut. Misal PHP yang langsung bisa membaca encoding base64 anda dengan hanya menggunakan fungsi base64_decode().
Hash:
tidak digunakan untuk dijalankan/script tapi hanya untuk di baca / diketahui. Hanya digunakan untuk menyimpan data-data tertentu yang biasanya penting. Misal: password.

Enkripsi (Encryption) adalah sebuah proses menjadikan pesan yang dapat dibaca (plaintext) menjadi pesan acak yang tidak dapat dibaca (ciphertext). Berikut adalah contoh enkripsi yang digunakan oleh Julius Caesar, yaitu dengan mengganti masing-masing huruf dengan 3 huruf selanjutnya (disebut juga Additive/Substitution Cipher):
Plaintext     Ciphertext
hello              khoos
bye          ebh
freelynx      iuhhobqa
dst..

dalam melakukan proses untuk meng-enkripsi diperlukan sebuah algoritma dan key. Pada contoh diatas, algoritma yang digunakan adalah:
-Konversikan huruf menjadi angka
-Masing-masing angka yang diperoleh jumlahkan dengan $n
-konversikan angka yang diperoleh kembali menjadi huruf

dengan:
-$n adalah Key yang dapat ditentukan sendiri.

Jika key yang kita gunakan adalah 1, algortima tersebut akan mengubah huruf:
-A menjadi B
-B menjadi C
-D menjadi E
-s menjadi t
dlsb

DEKRIPSI 
Dekripsi merupakan proses kebalikan dari enkripsi dimana proses ini akan mengubah ciphertext menjadi plaintext dengan menggunakan algortima ‘pembalik’ dan key yang sama. Contoh:

Ciphertext     Plaintext
khoos           hello
ebh          bye
iuhhobqa      freelynx
dst..

Untuk melakukan dekripsi ini, algoritma yang digunakan tentu saja berbeda dengan algortima enkripsi, namun pada dasarnya adalah “membalik” algoritma enkripsi. Perhatikan contoh algortima dekripsi berikut yang diambil dari algoritma enkripsi diatas:

-Konversikan huruf menjadi angka
-Masing-masing angka yang diperoleh kurangkan dengan $n
-Konversikan angka yang diperoleh kembali menjadi huruf

dengan:

-$n adalah key yang sama dengan yang digunakan dalam proses enkripsi.

Jika diperhatikan, baik algoritma enkripsi maupun dekripsi tidak jauh berbeda, yang berbeda hanyalah ketika memasukkan unsur key kedalam algoritma tersebut, dimana enkripsi menggunakan proses penjumlahan sedangkan dekripsi menggunakan pengurangan.

Masih menggunakan contoh yang sama dengan enkripsi, apabila kita gunakan key sama dengan 1, algoritma dekripsi diatas akan mengubah huruf:

-B menjadi A
-C menjadi B
-Z menjadi Y
-A menjadi Z
dst..

KRIPTOGRAFI (cryptographic) & STEGANOGRAFI

KRIPTOGRAFI
Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana. Secara umum algoritma kriptografi klasik dikelompokkan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma substitusi (substitution cipher). Cipher transposisi mengubah susunan huruf-huruf di dalam pesan, sedangkan cipher substitusi mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf lain.
 
Kriptografi modern dipicu oleh perkembangan peralatan komputer digital. Tidak seperti kriptografi
klasik yang mengenkripsi karakter per karakter (dengan menggunakan alfabet tradisionil), kriptografi modern beroperasi pada string biner. Kriptografi modern tidak hanya memberikan aspek keamanan confidentially, tetapi juga aspek keamanan lain seperti otentikasi, integritas data dan nirpenyangkalan. 

Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita.
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 [A. Menezes, P. van Oorschot and S. Vanstone - Handbook of Applied Cryptography]. Tidak semua aspek keamanan informasi ditangani oleh kriptografi.

Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :

-Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.
   
-Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.

-Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
   
-Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.

Secara garis besar kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan (penyandian), sedangkan tujuan dari kriptografi sendiri agar pesan dari kita tidak mudah terbaca oleh orang lain.
Sebagai contoh = surat cinta julius caesar ke cleopatra,.surat intelejen dll.

Prinsip-prinsip yang mendasari kriptografi yakni:
-Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.

-Data  integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).
   
-Authentication   (keotentikan)   yaitu   layanan   yang   berhubungan   dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.
   
-Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).
 
Jenis dari kriptografi ada beberapa macam seperti enkripsi/deskripsi,encode/decode,hash/one way hash.

Istilah2 dalam kriptografi :
#plaintext =
text asli (pesan yang akan di enkripsi)
#key=
kunci yang akan digunakan untuk kriptografi
#algorithma=
metode yang digunakan
#chipertext=
text atau pesan yang sudah di enkripsi
#enkripsi=
mengubah plaintext jadi ciphertext. contoh: caesar cipher: jika key= 1 maka m menjadi n HEXA = m menjadi 6D DEC = m menjadi 109 Binary: m menjadi 01101101
#dekripsi =
mengembalikan ciphertext jadi plaintext
#encoding =
mengubah code menjadi code acak (kode yang di kodekan kembali) contoh: base64: m menjadi bQ== HTML encode: m tetap menjadi m atau m URL encode: m menjadi m, space menjadi %20
#decoding =
mengembalikan kode acak ke kode awal (mengembalikan ke kode asli)
#hash=
metode enkripsi yang tidak bisa dikembalikan ke nilai awal atau one way hash,. ex=md5,sha-1 dll. 

Aplikasi kriptologi pada kehidupan sehari-hari, yaitu :

Mungkin tidak disadari bahwa saat ini benda-benda teknologi dalam kehidupan sehari-hari sudah menggunakan kriptografi. Telepon seluler, kartu ATM, kartu kredit, internet, LAN, mesin absensi atau GPS dan masih banyak lagi telah ditempeli kriptografi dengan intensitas yang berbeda. Dalam mengoperasikan kriptografi jenis ini, pengguna (end-user) tidak memerlukan pengetahuan khusus tentang kriptografi, karena aplikasi kriptografinya sudah langsung dapat dipakai (tanpa terasa).

Dalam kondisi khusus, penerapan kriptografi membutuhkan operator kripto, seperti penyampaian berita rahasia dari satu tempat ke tempat lain (kurir), penyimpanan data dan informasi rahasia ke dalam database atau pengoperasian mesin-mesin khusus kripto. Operator kripto ini diperlukan karena untuk mengelola kegiatan-kegiatan khusus tersebut membutuhkan manajemen kripto dan orang-orang terpercaya yang telah mempunyai sertifikat kripto.

Aplikasi kriptografi ini dipakai sebagai pengamanan informasi yaitu untuk :

1. menjaga kerahasiaan/privacy/confidentiality informasi terhadap akses pihak-pihak yang tidak memiliki kewenangan terhadap informasi tersebut.

2. menjaga keutuhan informasi (integrity) sehingga informasi yang ditransmisikan tidak mengalami perubahan baik oleh pihak yang tidak berhak ataupun sesuatu hal lain (misalnya transmisi yang buruk).

3. memastikan identitas (otentikasi) baik orang, mesin, program ataupun kartu bahwa memang pihak yang benar-benar berhak/asli/yang dimaksud. Otentikasi dapat juga digunakan untuk menyamarkan identitas (anonimity) terhadap yang tidak berhak.

4. mencegah penyangkalan (non-repudiation) bahwa data tersebut memang benar adalah data yang dikirimkan oleh pihak pengirim.

Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat dibedakan menjadi dua jenis yaitu :

-Algoritma simetris
Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi adalah kunci yang sama

-Algoritma asimetris
Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi menggunakan kunci yang berbeda.

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

-Algoritma block cipher
Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64-bit) dimana blok-blok ini dioperasikan dengan fungsi enkripsi yang sama dan akan menghasilkan informasi rahasia dalam blok-blok yang berukuran sama.

-Algoritma stream cipher
Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte atau bit), biasanya satu karakter persatuan persatuan waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu.




STEGANOGRAFI 
Steganografi adalah seni dan ilmu menulis pesan tersembunyi atau menyembunyikan pesan 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" berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis”.

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 di antara garis-garis yang kelihatan.

Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam berkas-berkas lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari berkas 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 pesan disembunyikan 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 berkas digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan di antaranya:

Format image : bitmap (bmp), gif, pcx, jpeg, dll.
Format audio : wav, voc, mp3, dll.
Format lain : teks file, html, pdf, dll.

Kelebihan steganografi jika dibandingkan dengan 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 berkas. 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 berkas image pesan dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan (LSB) pada data pixel yang menyusun file tersebut. Pada berkas bitmap 24 bit, 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 berkas 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 mengubah 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 di antara unsur pokok warna LSB melalui manipulasi pallete (lukisan).
Algorithms and Transformation

-Algoritma compression
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
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 (encrypted) 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).

Sederhananya steganografi merupakan teknik untuk menyembunyikan tulisan atau file ke dalam sebuah file. Sebagai contoh cara menyisipkan file ke dalam gambar, kita cukup menggunakan sedikit perintah yang ada di command prompt (CMD) windows.

Berikut Langkah-langkahnya:

-Persiapkan satu buah file jpg dan file yang hendak anda sisipkan.
-Dengan menggunakan winrar buatlah file .rar yang berisi dua buah file tadi.
-Misalkan file .rar itu saya beri nama test.rar dan file .jpg saya beri nama gambar.jpg
-Sekarang buka command prompt, masuk ke direktori file percobaan kita.
-Misalkan file disimpan di direktori D caranya : ketik pada command prompt D: tekan enter, Kita sekarang  telah berhasil masuk ke direktori D, ditandai dengan adanya tulisan D:\> di command prompt.
-Selanjutnya ketikkan perintah "copy /b gambar.jpg+test.rar hasil.jpg" tanpa tanda petik
-Tekan enter.
-Jika anda berhasil maka akan ada file bernama hasil.jpg dalam folder tersebut.
-Coba anda buka file hasil.jpg. Sekilas tidak akan ada bedanya dengan file gambar.jpg milik anda kecuali  ukuran filenya yang bertambah besar. Anda tetap bisa membuka file tersebut dengan Picture Editor atau Image  Viewer anda. Tidak ada tanda-tanda bahwa sebenarnya ada sebuah file rahasia didalamnya.

Bagaimana cara membuka file rahasia anda?

-Cara membukanya adalah sebagai berikut:
-Klik kanan pada file hasil.jpg lalu pilihlah [Open With] –> [Choose Program..].
-Pilihlah WinRar lalu klik [OK].
-Anda akan bisa melihat file rahasia anda dan bisa meng-extract seperti biasanya.

Rabu, 29 Februari 2012

Virtual Private Network (VPN)

Sebuah cara aman untuk mengakses local area network yang berada pada jangkauan, dengan menggunakan internet atau jaringan umum lainnya untuk melakukan transmisi data paket secara pribadi, dengan enkripsi Perlu penerapan teknologi tertentu agar walaupun menggunakan medium yang umum, tetapi traffic (lalu lintas) antar remote-site tidak dapat disadap dengan mudah, juga tidak memungkinkan pihak lain untuk menyusupkan traffic yang tidak semestinya ke dalam remote-site.
suatu jaringan privat (biasanya untuk instansi atau kelompok tertentu) di dalam jaringan internet (publik), dimana jaringan privat ini seolah-olah sedang mengakses jaringan lokalnya tapi menggunakan jaringan public.
VPN adalah sebuah koneksi Virtual yang bersifat privat mengapa disebut demikian karena pada dasarnya jaringan ini tidak ada secara fisik hanya berupa jaringan virtual dan mengapa disebut privat karena jaringan ini merupakan jaringan yang sifatnya privat yang tidak semua orang bisa mengaksesnya. VPN Menghubungkan PC dengan jaringan publik atau internet namun sifatnya privat, karena bersifat privat maka tidak semua orang bisa terkoneksi ke jaringan ini dan mengaksesnya. Oleh karena itu diperlukan keamanan data.

Konsep kerja VPN pada dasarnya VPN Membutuhkan sebuah server yang berfungsi sebagai penghubung antar PC. Jika digambarkan kira-kira seperti ini
internet <—> VPN Server <—-> VPN Client <—-> Client
bila digunakan untuk menghubungkan 2 komputer secara private dengan jaringan internet maka seperti ini: Komputer A <—> VPN Clinet <—> Internet <—> VPN Server <—> VPN Client <—> Komputer B
Jadi semua koneksi diatur oleh VPN Server sehingga dibutuhkan kemampuan VPN Server yang memadai agar koneksinya bisa lancar.

lalu apa sih yang dilakukan VPN ini?? pertama-tama VPN Server harus dikonfigurasi terlebih dahulu kemudian di client harus diinstall program VPN baru setelah itu bisa dikoneksikan. VPN di sisi client nanti akan membuat semacam koneksi virtual jadi nanti akan muncul VPN adater network semacam network adapter (Lan card) tetapi virtual. Tugas dari VPN Client ini adalah melakukan authentifikasi dan enkripsi/dekripsi.

Nah setelah terhubung maka nanti ketika Client mengakses data katakan client ingin membuka situs www.google.com. Request ini sebelum dikirimkan ke VPN server terlebih dahulu dienkripsi oleh VPN Client misal dienkripsi dengan rumus A sehingga request datanya akan berisi kode-kode. Setelah sampai ke server VPN oleh server data ini di dekrip dengan rumus A, karena sebelumnya sudah dikonfigurasi antara server dengan client maka server akan memiliki algorith yang sama untuk membaca sebuah enkripsi. Begitu juga sebaliknya dari server ke Client.

Keamanan Dengan konsep demikian maka jaringan VPN ini menawarkan keamanan dan untraceable, tidak dapat terdeteksi sehingga IP kita tidak diketahui karena yang digunakan adalah IP Public milik VPN server. Dengan ada enkripsi dan dekripsi maka data yang lewat jaringan internet ini tidak dapat diakses oleh orang lain bahkan oleh client lain yang terhubung ke server VPN yang sama sekalipun. Karena kunci untuk membuka enkripsinya hanya diketahui oleh server VPN dan Client yang terhubung. Enkripsi dan dekripsi menyebabkan data tidak dapat dimodifikasi dan dibaca sehingga keamananya terjamin. Untuk menjebol data si pembajak data harus melalukan proses dekripsi tentunya untuk mencari rumus yang tepat dibutuhkan waktu yang sangat lama sehingga biasa menggunakan super computing untuk menjebol dan tentunya tidak semua orang memiliki PC dengan kemampuan super ini dan prosesnya rumit dan memakan waktu lama, agen-agen FBI atau CIA biasanya punya komputer semacam ini untuk membaca data-data rahasia yang dikirim melaui VPN.

Apakah Koneksi menggunakan VPN itu lebih cepat????? Hal ini tergantung dari koneksi antara client dengan VPN server karena proses data dilakukan dari VPN otomatis semua data yang masuk ke komputer kita dari jaringan internet akan masuk terlebih dahulu ke VPN server sehingga bila koneksi client ke VPN server bagus maka koneksi juga akan jadi lebih cepat. Biasanya yang terjadi adalah penurunan kecepatan menjadi sedikit lebih lambat karena harus melewati 2 jalur terlebih dahulu temasuk proses enkripsi. VPN ini bisa digunakan untuk mempercepat koneksi luar (internasional) bagaimana caranya???
misal kita punya koneksi lokal (IIX) sebesar 1mbps dan koneksi luar 384kbps kita bisa menggunakan VPN agar koneksi internasional menjadi sama dengan koneksi lokal 1mbps.
Cara dengan menggunakan VPN Lokal yang diroute ke VPN Luar
internet <—->VPN Luar<—>VPN lokal <—>Client
mengapa model jaringan ini bisa lebih cepat sebab akses ke jaringan luar dilakukan oleh VPN luar lalu kemudian diteruskan oleh VPN lokal nah kita mengakses ke jaringan lokal yang berarti kecepatan aksesnya sebesar 1mbps. Tentunya diperlukan VPN dengan bandwith besar agar koneksinya bisa lancar.

 Gambar :


Selasa, 28 Februari 2012

Konvolusi Matlab

Konvolusi
Secara umum konvolusi didefinisikan sebagai cara untuk mengkombinasikan dua buah deret angka yang menghasilkan deret angka yang ketiga. Didalam dunia seismik deret-deret angka tersebut adalah wavelet sumber gelombang, reflektivitas bumi dan rekaman seismik.
Secara matematis, konvolusi adalah integral yang mencerminkan jumlah lingkupan dari sebuah fungsi a yang digeser atas fungsi b sehingga menghasilkan fungsi c. Konvolusi dilambangkan dengan asterisk ( *).
Sehingga, a*b = c berarti fungsi a dikonvolusikan dengan fungsi b menghasilkan fungsi c.

Konvolusi Image dengan Matlab

Konvolusi adalah salah satu proses filtering image yang sering dilakukan pada proses pengolahan
gambar. Pada MATLAB terdapat banyak sekali cara yang dapat dilakukan untuk melakukan proses
konvolusi. Proses konvolusi dilakukan dengan menggunakan matriks yang biasa disebut mask yaitu
matriks yang berjalan sepanjang proses dan digunakan untuk menghitung nilai representasi lokal
dari beberapa piksel pada image.
 
Gambar 
 
 
 
 







Contoh implementasi  konvolusi gambar d atas yaitu:

gambar=imread(‘smile.jpg’);
mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
hasil=conv2(double(imbw),mask,’valid’);
imshow(gambar)
figure, imshow(hasil)

Penjelasan : 

Fungsi penapis g(x,y) disebut convolution filter, convolution mask, Convolution kernel, atau template. Dlm domain diskret kernel konvolusi dinyatakan dlm btk matriks (umumnya 3 x 3, namun ada jg yg berukuran 2x2 atau 2x1 atau 1x2 Ukuran matriks biasanya lebih kecil dr ukuran citra. Setiap elemen matriks disebut koefisien konvolusi T 1 T 2 T 4 T 8 T 7 T 3 T 6 T 5 T 9 A B D H G C F E I Kernel Citra f(i,j) f(i,j)= AT 1 + BT 2 + CT 3 + DT 4 + ET 5 + FT 6 + GT 7 + HT 8 + IT 9 
 
Contoh: Citra f(x,y) berukuran 5x5 dan sebuah kernel ukuran 3x3 sbb: Lakukan operasi konvolusi antara citra f(x,y) dgn kernel g(x,y) f(x,y)*g(x,y)= ??????? f(x,y) = 4 3 5 4 6 6 5 5 2 5 6 6 6 2 6 7 5 5 3 3 5 2 4 4 g(x,y)= 0 -1 0 -1 4 -1 0 -1 0 Posisi (0,0) dr kernel 

Pixel-pixel pinggir diabaikan, tdk dikonvolusi (tetap). Duplikasi elemen citra, misalnya elemen kolom pertama disalin ke kolom M+1, begitu sebaliknya. Elemen kosong diasumsikan 0. Catatan: Ada masalah untuk pinggiran citra, hal ini dpt diatasi dgn cara: Dpt dilihat bhw operasi konvolusi merupakan komputasi pd aras lokal, krn komputasi utk suatu pixel pd citra keluaran melibatkan pixel-pixel tetangga pd citra masukannya. Konvolusi berguna pd proses pengolahan citra al: Perbaikan kualitas citra Penghilangan derau Penghalusan/pelembutan citra Deteksi tepi, penajaman tepi dll Contoh: lakukan konvolusi suatu citra foto hitam putih Anda dgn penapis Gaussian utk mempertajam tepi-tepi di dlm citra. Penapis Gaussian adalah sebuah mask berukuran 3x3 
 
Operasi konvolusi dilakukan perpixel & untuk setiap pixel dilakukan operasi perkalian dan penjumlahan, shg memerlukan komputasi yg besar. Jk citra berukuran NxN & kernel mxm, mk jumlah perkalian dlm orde N 2 m 2 Contoh: jk citra 512x512 & kernel 16x16 mk ada sekitar 32juta perkalian, tdk cocok untuk proses real time. Suatu cara mengurangi wkt komputasi adalah mentransformasi citra dan kernel ke dlm domain frekuensi dlm hal ini Transf. Fourier Keuntungan penggunaan domain frekuensi adalah proses konvolusi dpt diterapkan dlm btk perkalian langsung. g(x,y)= 1 2 1 2 4 2 1 2 1

Selasa, 14 Februari 2012

Cara Menampilkan Histogram Citra RGB pada Matlab

Bahwa dari sekian banyaknya warna yang ada dalam suatu gambar itu terdiri atau terbentuk dari perpaduan tiga warna dasar yaitu merah, hijau, dan biru atau yang lebih dikenal dengan sebutan ‘RGB’. Histogram suatu gambar ini bertujuan untuk menampilkan tingkat masing-masing RGB dari suatu gambar.
Penggunaan Matlab meliputi bidang–bidang:
• Matematika dan Komputasi
• Pembentukan Algorithm
• Akusisi Data
• Pemodelan, simulasi, dan pembuatan prototipe
• Analisa data, explorasi, dan visualisasi
• Grafik Keilmuan dan bidang Rekayasa

untuk menampilkan histogram dari matriks citra "R", "G", dan "B" ke dalam 1 grafik. Warna dari grafik yang dibuat sengaja dibuat seperti warna dari citra penyusun gambar, yakni merah untuk "R", hijau untuk "G", dan biru untuk "B".

Di bawah ini adalah listing programnya di Matlab :

img=imread('image.jpg');
red=img(:,:,1);
green=img(:,:,2);
blue=img(:,:,3);
A=imhist(red);
B=imhist(green);
C=imhist(blue);
x=1:256;
figure,plot(x,A,'r-')
hold on
plot(x,B,'g-')
plot(x,C,'b-')

Hasil grafik yang dibuat adalah seperti gambar di bawah ini :



Simple code dengan Matlab 7.0 







Hasil fungsi tsb :