Friday, April 15, 2011

[Kriptografi] Caesar Cipher


  • Pendahuluan Tentang Kriptografi
Dalam bidang ilmu kriptografi terdapat algortima yang menjadi fungsi dasarnya, yaitu :

  1. Enkripsi, merupakan pengamanan data yang dikirimkan agar terjaga kerahasiaannya. Pesan asli disebut plaintext, yang diubah menjadi kode – kode yang tidak bisa dimengerti. Dalam hal ini enkripsi disebut juga dengan cipher atau kode.

  2. Dekripsi, merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (teks-asli), disebut dengan dekripsi pesan. Algoritma yang digunakan untuk dekripsi tentu berbeda dengan algoritma yang digunakan untuk dekripsi.

  3. Kunci, yang dimaksud di sini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi menjadi dua bagian yaitu kunci rahasia (private key) dan kunci umum (public key)
  • Tentang Sandi Kaisar (Caesar Cipher)
Substitusi kode yang pertama dalam dunia penyandian dikenal dengan Kode Kaisar, karena penyandian ini terjadi pada saat pemerintahan Yulius Caesar. Dengan mengganti posisi huruf awal dengan alphabet atau disebut dengan algoritma ROT3.


Teknik penyandian ini termasuk sandi tersubtitusi pada setiap huruf pada plaintext digantikan oleh huruf lain yang dimiliki selisih posisi tertentu dalam alphabet.

Secara detail table dibawah ini menjelaskan pergeseran yang terjadi pada huruf alphabet.

ABCDEFGHIJKLM
0123456789101112

NOPQRSTUVWXYZ
13141516171819202122232425

Menjadi :

DEFGHIJKLMNOP
0123456789101112

QRSTUVWXYZABC
13141516171819202122232425

Jika pergeseran yang dilakukan sebanyak tiga kali, maka kunci untuk dekripsinya adalah 3. Pergeseran kunci yang dilakukan tergantung keinginan pengiriman pesan. Bisa saja kunci yang dipakai a = 7, b = 9, dan seterusnya.

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,


Sedangkan pada proses pemecahan kode (dekripsi), hasil dekripsi (Dn) adalah


Setiap huruf yang sama digantikan oleh huruf yang sama di sepanjang pesan, sehingga sandi Caesar digolongkan kepada, substitusi monoalfabetik, yang berlawanan dengan substitusi polialfabetik.
Source code Caesar Cipher (Enkripsi) dengan Bahasa C



#include<stdio.h>

#include<string.h>

int main()

{

int i, angka, angkaBaru, langkah;

char S[80];  char huruf; char enkripsi;

printf(" Penyandian Kode Kaisar \n");

printf(" masukkan sebuah kata (harus KAPITAL) : "); gets(S);

printf(" Masukkan berapa langkah yang ingin ditempuh : "); scanf("%d",&langkah);

printf(" Enkripsi : ");

for(i=0;i<(int)strlen(S);i++)

{

huruf=S[i];

angka=(int)(huruf-'A');

angkaBaru=(angka+langkah)%26;

enkripsi=(char)(angkaBaru+'A');

printf("%c",enkripsi);

}

getchar();

return 0;

}



Tampilan

1 comment: