Contoh Kegiatan Enkripsi Caesar Cipher Dengan Bahasa C
Sandi ini dikenal dengan banyak nama antara lain Caesar Cipher, sandi geser, kode Caesar atau Geseran Caesar. Nama Caesar diambil dari Julius Caesar, seorang Jenderal perang, Konsul, dan diktator Bangsa Romawi yang memakai sandi ini untuk berkomunikasi dengan para Panglima perang-nya. Caesar menggunakannya untuk mengirim pesan yang mengandung diam-diam atau seni administrasi militer.
Cipher ini merupakan salah satu teknikenkripsi paling sederhana dan paling terkenal. Banyak yang mempelajari kriptografi yang memulai tahap belajarnya dengan sandi ini. Sandi ini termasuk sandi substitusi dimana setiap abjad pada plaintext digantikan oleh abjad lain yang mempunyai selisih posisi tertentu dalam alphabet. Misalnya, kalau memakai kunci 3, W akan menjadi Z, I menjadi L, dan K menjadi N sehingga teks terperinci "wiki" akan menjadi "ZLNL" pada ciphertext
Masih belum diketahui seberapa efektif sandi Caesar pada waktu itu, namun kemungkinan besar sandi tersebut cukup aman, alasannya ialah amat sedikit dari musuh Caesar yang sanggup membaca, apalagi yang sanggup memecahkan sandi. Tidak ada catatan mengenai ditemukannya solusi untuk memecahkan sandi Caesar pada zaman itu. Catatan tertua mengenai pemecahan sandi substitusi monoalphabetic seperti sandi Caesar ialah pada periode ke-9, oleh kebudayaan Arab yang menemukan analisis frekuensi
Pada bulan April 2006 , seorang bos mafia buronan berjulukan Bernardo Provenzano tertangkap di pulau Sisilia. Keberhasilan ini tak lepas dari keberhasilan pihak berwenang memecahkan sandi yang dipakai sang buronan. Provenzano memakai suatu variasi dari sandi Caesar.
Dasar keilmuan dari Caesar cipher sebagian besar ialah matematika yang antara lain meliputi teori bilangan, aljabar dan fungsi. Subbab matematika tersebut sudah diajarkan semenjak pendidikan sekolah bahkan diperluas lagi di akademi tinggi.
Rumus Caesar cipher secara umum :
Enkripsi à C = E ( P ) = ( P + k) mod 26
Dekripsi à P = D ( C ) = ( C - k ) mod 26
#include<stdio.h>
#include<string.h>
int main()
{
int x, a1, a2, langkah;
char A[50]; char huruf; char enkripsi;
printf(” Penyandian Caesar Chiper \n”);
printf(” masukkan plaintext (KAPITAL) : “); gets(A);
printf(” Masukkan jumlah penggeseran : “); scanf(“%d”,&geser);
printf(” Hasil ciphertext : “);
for(x=0;x<(int)strlen(A);x++)
{
huruf=A[x];
angka=(int)(huruf-’A');
angkaBaru=(a1+geser)%26;
enkripsi=(char)(a2+’A');
printf(“%c”,enkripsi);
}
getchar();
return 0;
}
Sumber :
1. http://id(dot)wikipedia(dot)org/wiki/Sandi_Caesar
2. Buku “Kriptografi” , Rinaldi Munir, Penerbit Infomatika, 2006