Kriptografi merupakan seni dan ilmu menyembunyikan informasi dari penerima yang tidak berhak. Kata cryptography berasal dari kata Yunani kryptos (tersembunyi) dan graphein (menulis).Cryptology adalah ilmu yang mencakup cryptography dan cryptanalysis. Proses utama dalam kriptografi yaitu:
- Enkripsi adalah proses dimana informasi/data yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu.
- Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi awal
- Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).
- Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.
- Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.
- Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli.
- Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.
Sejarah sistem sandi Caesar
Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf apfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik. Cipher semacam ini mencakup penggeseran alfabet dengan 3 huruf dan mensubstitusikan huruf tersebut. Substitusi ini kadang dikenal dengan C3 (untuk Caesar menggeser 3 tempat). Secar umum sistem cipher Caesar dapat ditulis sbb.:
Misalkan A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher dirumuskan sebagai berikut:
Enkripsi: C = E(P) = (P + 3) mod 26
Dekripsi: P = D(C) = (C – 3) mod 26
Contoh:
P : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
C : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Plainteks: AWASI ASTERIX DAN TEMANNYA OBELIX
Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA
Jika pergeseran huruf sejauh k, maka:
Enkripsi: C = E(P) = (P + k) mod 26
Dekripsi: P = D(C) = (C – k) mod 26
k = kunci rahasia
CONTOH PROGRAM MENGGUNAKAN PEMROGRAMAN TURBO PASCAL
KODE PROGRAM
KODE PROGRAM
PROGRAM CAESAR;
USES CRT;
LABEL 10;
VAR JUDUL, KALIMAT:STRING;
BARU: ARRAY[1..100] OF CHAR;
PIL, I, GESER, B : INTEGER;
SKALIMAT : CHAR;
BEGIN
REPEAT
CLRSCR;
GOTOXY(1,23);
WRITELN('NAMA: ACHMAD FITRAH ');
WRITELN('NPM : 08350341);
WRITELN(' ');
JUDUL:=' PROGRAM ENKRRIPSI DAN DESKRIPSI MENGGUNAKAN CAESAR CIPHER';
GOTOXY(52-LENGTH(JUDUL),2);
WRITE(JUDUL);
GOTOXY(15,3);
FOR I:=30 TO 52 DO
BEGIN
WRITE(' -');
END;
GOTOXY(15,4);
WRITELN('|1. ENKRIPSI TULISAN | ');
GOTOXY(15,5);
WRITELN('|2. DESKRIPSI TULISAN| ');
GOTOXY(15,6);
WRITELN('|3. EXIT | ');
GOTOXY(15,7);
FOR I:=15 TO 37 DO
BEGIN
WRITE(' -');
END;
GOTOXY(1,10);
WRITE('MASUKKAN PILIHAN ANDA : ');
READLN(PIL);
IF PIL=1 THEN
BEGIN
WRITE('MASUKKAN PLAINTEXT YANG AKAN ENKRIPSI: ');
READLN(KALIMAT);
WRITE('MASUKKAN BANYAKNYA PERGESERAN (DALAM ANGKA): ');
READLN(GESER);
FOR I:=1 TO LENGTH(KALIMAT) DO
BEGIN
WHILE GESER>26 DO
BEGIN
GESER:=GESER-26;
END;
SKALIMAT:=UPCASE(KALIMAT[I]);
IF ORD(SKALIMAT)=32 THEN
BEGIN
B:=32;
END
ELSE B:=ORD(SKALIMAT)+GESER;
IF B>90 THEN
BEGIN
B:=64+(B-90);
END;
BARU[I]:=CHR(B);
END;
WRITE('HASILN ENKRIPSI: ');
FOR I:=1 TO LENGTH(KALIMAT) DO
BEGIN
WRITE(BARU[I]);
END;
READKEY;
END;
IF PIL=2 THEN
BEGIN
WRITE('MASUKKAN PLAINTEXT YANG AKAN DI DESKRIPSI: ');
READLN(KALIMAT);
WRITE('MASUKKAN BANYAKNYA PERGESERAN (DALAM ANGKA): ');
READLN(GESER);
FOR I:=1 TO LENGTH(KALIMAT) DO
BEGIN
WHILE GESER>26 DO
BEGIN
GESER:=GESER-26;
END;
SKALIMAT:=UPCASE(KALIMAT[I]);
IF ORD(SKALIMAT)=32 THEN
BEGIN
B:=32;
GOTO 10;
END
ELSE
B:=ORD(SKALIMAT)-GESER;
IF B<65 THEN
BEGIN
B:=90-(64-B);
END;
10:
BARU[I]:=CHR(B);
END;
WRITE('HASILNYA DESKRIPSI: ');
FOR I:=1 TO LENGTH(KALIMAT) DO
BEGIN
WRITE(BARU[I]);
END;
READKEY;
END;
UNTIL PIL=3;
END.
OUTPUT PROGRAM
DESKRIPSI |
ENKRIPSI |
mau tanya gan
ReplyDeletekalau pake yang dengan perkalian dan penjmlahan itu gimna
Kalau Perkalian (*)
DeletePembagian (/)
Keep posting such good and meaningful articles. Good Job.
ReplyDeletemaster izi sedot dan mempelajari, sngat bermanfaat
ReplyDelete