Pages

Subscribe:

Labels

Enkripsi

Enkripsi  adalah Sebuah proses data encoding untuk mencegah pihak yang tidak berwenang melihat atau memodifikasinya.
Bila Anda bukan seorang paranoid, mungkin sekarang hal tersebut dapat berubah. Bila Anda menggunakan sebuah PC, banyak orang jahat yang dapat mencegat e-mail yang Anda kirim, dan rekan kerja Anda dapat membaca dokumen dari proyek yang tengah Anda kerjakan untuk keuntungan karir mereka. Ada sebuah teknologi yang dapat melindungi data Anda dari mata-mata yang selalu ingin mengintip, enkripsi. 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 Anda ketahui tentang enkripsi:
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.
Sebuah program enkripsi, baik itu yang berdiri sendiri (stand-alone) atau sudah terdapat pada aplikasi e-mail client Anda, memiliki proses yang sama: Data melewati sebuah formula matematis yang disebut algoritma, yang kemudian mengubahnya menjadi data terenkripsi yang disebut sebagai ciphertext. Formula ini memerlukan sebuah variabel dari Anda–yang disebut kunci–untuk mengembalikan data tersebut kembali ke bentuk asal, sehingga sangat sulit, bahkan hampir tidak mungkin, seseorang dapat memecahkan kode enkripsi tersebut. Tetapi tentu saja hal ini tidak berlaku jika orang tersebut berhasil mencuri kode enkripsi dari Anda. Jadi, berhati-hatilah dengan kode enkripsi yang Anda miliki.
Ada dua jenis enkripsi: simetris dan asimetris (juga disebut sebagai public key). 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.
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. Kunci menjadi potongan akhir yang menyusun teka-teki enkripsi, Kunci ini bermacam-macam jenisnya dalam hal panjang dan kekuatannya. Alasan: semakin panjang kuncinya, semakin besar jumlah kombinasi angka yang timbul. Sebagai contoh, bila program enkripsi Anda menggunakan kunci 128-bit, maka kunci Anda tersebut dapat berupa salah satu kombinasi dari 3,4 trilyun milyar milyar milyar kombinasi–atau 2 pangkat 128 kombinasi–dari angka satu dan nol. Seorang cracker mungkin akan lebih beruntung mendapat lotere dibanding ia harus memecahkan enkripsi tersebut menggunakan metode brutal (brute-force method, yaitu mencoba menebak kombinasi kunci satu per satu sampai mendapatkan kunci yang benar). Sebagai perbandingan, seorang ahli enkripsi menggunakan metode brutal ini dapat memecahkan kode enkripsi simetris 40-bit dalam waktu 6 jam dengan menggunakan PC biasa di rumah. Walau begitu, enkripsi 128-bit masih memiliki beberapa kelemahan; para profesional memiliki teknik yang canggih yang dapat menolong mereka memecahkan kode yang paling sulit sekali pun.

contoh enkripsi sederhana
//  ---------------------------------------------------------

//    Algorithm and Programming in C 

//  ---------------------------------------------------------
//      
//   Author : adhita muslim
//   Written in C Language using MS Visual C++
//   Copyright : 2007  
//        
//  ---------------------------------------------------------
/*
// Encryption (Caesar Cypher)

#include
 
#include

void main()
 
{
 char kata[255];
 int i,n;
 printf("Input string  : ");gets(kata);
 printf("Input value (nilai geser) : ");scanf("%i",&n);
 printf("\n"); for(i=0;kata[i]!='\0';i++) // to lower case
 {
  if(kata[i]>64 && kata[i]<=90)$0D
  {
   kata[i]=kata[i]+32;
  }
 }
 for(i=0;kata[i]!='\0';i++)
 {
  if(kata[i]==32)
   printf(" ");
  else
   printf("%c",((kata[i]-97+n)%26)+97);
 }
 printf("\n");
}

0 komentar:

Posting Komentar