PROGRAM ENKRIPSI DAN DESKRIPSI ALGORITMA TURBO PASCAL

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
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :


  • 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








4 Responses to "PROGRAM ENKRIPSI DAN DESKRIPSI ALGORITMA TURBO PASCAL"

  1. mau tanya gan

    kalau pake yang dengan perkalian dan penjmlahan itu gimna

    ReplyDelete
  2. Keep posting such good and meaningful articles. Good Job.

    ReplyDelete
  3. master izi sedot dan mempelajari, sngat bermanfaat

    ReplyDelete