Cari Blog Ini

Sabtu, 12 Mei 2012

Implementasi Enkripsi Dekripsi pada Pascal

HALOO semuanya.. ^^ maaf nih baru bisa nge-post lagi.. lantaran beberapa waktu yang lalu saya sedang sibuk TA he..

Dalam post kali ini saya akan membahas implementasi enkripsi dan dekripsi pada pascal. Sebelumnya saya juga akan menguraikan secara singkat tentang penggunaan keduanya, juga tentang sumber ilmu yang menaungi keduanya.. :)


kriptografi 
Ilmu kriptografi adalah ilmu yang mempelajari tentang penyembunyian huruf atau tulisan sehingga membuat tulisan tersebut tidak dapat dibaca oleh orang yang tidak berkepentingan.
 Singkat cerita.. kriptografi dibagi atas dua sistem dasar, yaitu:
 SISTEM KRIPTOGRAFI SIMETRIK
 Simetrik artinya sama, yaitu dalam simetrik kunci yang digunakan adalah sama, si pengirim dan si penerima harus samasama saling mengetahui, dan itu artinya bawa sistem ini hanya menggunakan satu kunci saja.

SISTEM KRIPTOGRAFI ASIMETRIK 
Sistem kriptografi asimetrik, prinsipnya  setiap user mempunyai dua kunci yaitu public key dan private key. Kunci public bisa diketahui oleh siapapun, dan digunakan untuk mengenkripsi berita dan memverifikasi tanda tangan (digital signature).
Sedangkan kunci privat hanya diketahui oleh penerima, digunakan untuk mendeskripsi berita dan membuat tanda tangan. Dalam sistem asimetrik ini dapat menggunakan aplikasi dari Teori Bilanagn dan fungsi matematika yang mudah dihitunng sedangkan fungsi balikannya sulit dihitung.  
 
Gambar Enkripsi-dekripsi Kunci Simetrik
 
 
 
 
 
 
Gambar Enkripsi Kunci Asimetrik
 
 
 
 
 
 
 
 
Nah dari uraian singkat diatas, kita dapat mengimplementasikannya ke dalam pascal. Pada implementasi ini algoritma yang dipakai adalah algoritma Caesar.

 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);
           write('');
           gotoxy(1,24);
           write('');
           judul:='Program Enkripsi Deskripsi';
           gotoxy(52-length(judul),2);
           write(judul);
           gotoxy(30,4);
           for i := 30 to 49 do
           begin
                  write('-');
           end;
           gotoxy(30,5);
           writeln('1. Enkripsi Tulisan.');
           gotoxy(30,6);
           writeln('2. Dekripsi Tulisan.');
           gotoxy(30,7);
           Writeln('3. Exit');
           gotoxy(30,8);
           for i := 30 to 49 do
           begin
                  write('-');
           end;
           gotoxy(1,10);
           write('Masukkan pilihan anda : ');readln(pil);
           if pil = 1 then
           begin
                  write('Masukkan kalimat yang ingin di geser : ');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('Hasilnya adalah : ');
                           for i := 1 to length(kalimat) do
                           begin
                                  write(baru[i]);
                           end;
                           readkey;
                   end;
                   if pil = 2 then
                   begin
                           write('Masukkan kalimat yang ingin di geser : ');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 adalah : ');
                             for i := 1 to length(kalimat) do
                             begin
                                    write(baru[i]);
                             end;
                             readkey;
                    end;
                    until pil = 3;
  end.
 
Uraian program kriptografi diatas
 Pertamamasukkan pilihan menu yang akan dipilih, misalnya menu (1) enkripsi tulisan. Kemudian masukkan kalimat atau kata yang akan dienkripsi contoh disini adalah kata ‘tina’. Kemuadian masukkan banyaknya pergeseran yang akan dilakukan (dalam angka), misalnya: 2. Maka huruf pertama dari kata ‘tina’ yaitu ‘t’ akan digeser  ke belakang 2 kali sesuai  abjad dari ‘t’ menjadi  ‘v’ dan begitu pula huruf lainnya:
  •   imenjadi ‘k’
  •   ‘n’ menjadi ‘p’
  •   ‘a’ menjadi ‘c’ 
  
 
 
 
 
 
 
Jika memilih menu (2) deskripsi tulisan. Kemudian masukkan kalimat atau kata yang akan di deskripsi contoh disini adalah katatina’. Kemuadian masukkan banyaknya pergeseran yang akan dilakukan (dalam angka), misalnya: 2. Maka huruf pertama dari katatinayaitu ‘t’ akan digeser ke depan 2 kali sesuai  abjad dari ‘t’ menjadi  ‘r’ dan begitu pula huruf lainnya: 
  •       ‘imenjadi ‘g’ 
  •       ‘n’ menjadi ‘l’ 
  •       ‘a’ menjadi ‘y’  
 
 
 
 
 
 
Smoga Bermanfaat yaa...  sampai jumpa di post berikutnya..
*jika ada umur panjang dan waktu kosong, saya akan membagi apa yang saya buat dalam TA saya. sekian & terima kasih untuk mampir..^^

1 komentar:

DhanRanma mengatakan...

thank's, very useful to me :)