| Algoritma Combo |
|
|
|
| Written by Administrator |
| Tuesday, 11 May 2010 15:22 |
|
Maka dengan kondisi seperti ini, dituntut daya kreatifitas tinggi dalam mengembangkan dan atau membuat algoritma baru agar semakin meningkatakan kualitas keamanan terhadap data yang ada. Salah satu solusi yang cukup menarik adalah penggabungan beberapa algortima yang ada sehingga meembuat prosess enkripsi menjadi lebih kuat. Dalam tulisan ini, saya mencoba sedikit memberi penjelasan mengenai beberapa algortima yang akan saya gunakan untuk kemudian digabungkan sehingga membentuk sebuah algoritma combo. Sengaja saya menggunakan beberapa algoritma sederhana agar dapat jadi panduan awal bagi para pemula untuk belajar tentang ilmu kriptografi, dan bagi para ‘expert’ bisa mengambil ide dari tulisan ini. Saya juga akan melampirkan sebuah code simple dalam bahasa C sebagai contoh agar para pembaca bisa lebih memahami tujuan dari tulisan ini. Code yang disertakan bisa di modifikasi dan di kembangkan untuk kepentingan eksperimen pula. ======= 1. Algoritma subtitusi (Caesar cipher) —| ========== Enkripsi —| Pada algoritma caesar klasik, setiap huruf plainteks diganti dengan barisan huruf berikutnya sesuai dengan kunci yang diberikan. contoh: jadi cipherteks dari “aku” adalah “hrb” dalam perhitungan matematis dinyatakan sebagai: C = (P + K) mod 26 dimana–> C : Cipherteks Jadi secara matematis plainteks “aku” diatas di-enkripsi dengan cara: a=1 , C = ( 1 + 7 ) mod 26=8, 8=h ========= Dekripsi —| Untuk melakukan dekripsi pesan pada algoritma subtitusi, kita mengganti setiap huruf cipherteks dengan huruf sejauh kunci sebelum huruf cipher tersebut, contoh: plainteks = “hrb” jadi plainteks dari “hrb” adalah “aku” dalam perhitungan matematis dinyatakan sebagai: P = (C – K) mod 26 dimana–> C : Cipherteks Jadi secara matematis plainteks “aku” diatas di-enkripsi dengan cara: h=8 , C = ( 8 – 7 ) mod 26=1, 1=a ========= Kelemahan Algoritma Subtitusi —| Kelemahan utama dari algoritma subtitusi adalah frekuensi kemunculan setiap huruf atau karakter pada chperteks yang mewakili huruf atau karakter tertentu dari plainteks. Dengan hal tersebut, attacker dapat membuat tabel sederhana, misalnya mengganti semua huruf atau karakter yang paling sering muncul dengan huruf vokal (a, i, u, e, o) pada chiperteks yang dia peroleh. ======= 2. Algoritma XOR—| Enkripsi/Dekripsi secara deskriptif, algoritma XOR mengenkrip plainteks dengan cara melakukan operasi XOR terhadap plainteks dengan kunci, contoh: Dekripsi:: ======= 3. Algortima RC4 —| ========= Pendahuluan —| RC4 adalah algoritma yang dibuat oleh Ron Rivest ( RC sendiri adalah singkatan dari Ron’s Code) RC4 merupakan salah satu chiper jenis aliran yang digunakan oleh SSL ( Secure Socket Layer) dan beberapa protocol security yang lainnya. Pengertian Stream Cipher / Cipher Aliran ” Algoritma kriptografi yang beroperasi dalam bentuk bit tunggal, ========= Enkripsi/Deskripsi —| ———————————————————-// for (i = j = 0; i < 256; i++) { i = j = 0; coba perhatikan potongan code diatas, gambaran mengenai prosess enkripsi dan deskripsi pada Algoritma RC4 bisa terjelaskan oleh code c diatas, kira-kira 1. Inisialisasi larik (Array) S sehingga S[0] —> S[255] ========= 4. Algortima Combo (Combo Encryption) —| Pola enkripsi combo yang saya pakai alurnya seperti berikut: 1. Diberikan sebuah kunci dengan maximal panjang 256 bit printf(”\nMasukan kunci anda:”);gets(kunci); 3. Lakukan inisialisasi pada kunci yang diberikan dengan algoritma RC4 rc4_init(kunci, n); 4. Enkripsi pertama dengan algoritma Subtitusi cipher = (plain + y ) % 256 ; Proses deskripsi dilakukan dengan membalikan prosess enkripsi. Hal diatas adalah ======= Source Code —| /*—————————————————|| #include #define MAX 256 unsigned char S[MAX]; int encryp(); static void gunakan (const char *nmprg) int main(int argc,char *argv[]) switch((* argv[1])) unsigned char rc4_init(unsigned char *key, unsigned int key_length) { for (i = 0; i < MAX; i++) for (i = j = 0; i < MAX ; i++) { i = j = 0; return 0; unsigned char rc4_output() { temp = S[i]; return S[(S[i] + S[j]) & MAX]; int encryp( char *in, char *out) output = fopen (out,”wb”); rc4_init(kunci, n); fclose(input); return 0; int decryp( char *in, char *out) output = fopen (out,”wb”); n = (strlen((unsigned char*)kunci)); rc4_init(kunci, n); return 0; ======= Penutup —| Artikel sederhana ini mencoba membuka atau membuat pikiran pembaca ‘terbang’ ke ======= Referensi/Daftar Pustaka —| [1] Munir, Rinaldo, Kriptografi, Penerbit Informatika, 2006 |
News flash
|
| Read more... |
Polls
Who's Online
Visitors









![]() | Today | 338 |
![]() | Yesterday | 400 |
![]() | This week | 1759 |
![]() | Last week | 3633 |
![]() | This month | 14867 |
![]() | Last month | 19258 |
![]() | All days | 597624 |
Your IP: 38.107.179.212
,
Today: May 24, 2012







Perkembangan teknologi informasi dewasa ini sangat pesat, tentu hal ini sangat berpengaruh dalam dunia kriptografi karena semakin pesatnya perkembangan processor maka makin cepat pula prosess cracking terhadap algoritma kriptografi yang ada.
Kunci tauhid itu satu: YAKIN.







