Sabtu, 02 Juli 2011

Enkripsi dan Deskripsi dalam Kriptografi

Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah chiper mengunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unintelligible). Karena teknik chiper merupakan suatu system yang telah siap untuk di automasi, maka teknik ini digunakan dalam system keamanan computer dan jaringan.
Sedangkan Deskripsi adalah sebuah proses mengembalikan hasil dari sebuah chiper ke kode awal atau data awal yang di  masukkan.
Plainteks -> Enkripsi -> Chiperteks -> Deskripsi -> Plainteks awal
contoh plainteks : uang disimpan di balik buku
contoh chiperteks : jdke aldjfdaj oe qtwey cvbn
Jadi Chiper adalah teknik substitusi setiap karakter dengan karakter lain dalam alphabet.
contoh :
C = chiperteks
P = plainteks
K = key
P : A B C D . . . . Z
C : D E F G . . . . C (digeser 3)
jadi
P : rahasia
C : udkdvld (k = 3)
Algoritma.


  • Enkripsi
    Algoritma Mencetak enkripsi
    Deklarasi :
    plain, chiper            : string
    key,i                        : Integer
    Deskripsi :
    read ( key, plain)

    for i=0 to strlen(plain) do
                 chiper[i] <= (plain[i]+key) mod 128;
                 end for
    write (chiper)
  • Deskripsi
    Algoritma Mencetak deskripsi
    Deklarasi :
    chiper, teks             : string
    key,i                        : Integer
    Deskripsi :
    read ( key, chiper)

    for i=0 to strlen(chiper) do
                 teks[i] <= (chiper[i] - key) mod 128;
                 end for
    write (teks)


contoh program enkripsi deskripsi
#include <cstdlib>
#include <iostream>
#include <string.h>
#define maks 500

using namespace std;
class Enkripsi{
public:
Enkripsi();
void enkripsi();
void deskripsi();
void output();
private:
char chiper[maks];
int key;
char plain[maks];

};

Enkripsi::Enkripsi(){
cout<<"Masukkan kata : ";
cin.getline(chiper,sizeof(chiper));
cout<<"Masukkan key  : ";
cin>>key;
cout<<endl;
}

void Enkripsi::enkripsi(){
for(int i=0;i<strlen(chiper);i+=1){
cout<<chiper[i]<<"("<<int(chiper[i])<<") ";
chiper[i] = (chiper[i]+key)%128;
}
}

void Enkripsi::deskripsi(){
for(int i=0;i<strlen(chiper);i+=1){
plain[i] = (chiper[i]-key)%128;
chiper[i] = plain[i];
}
}

void Enkripsi::output(){
for(int i=0;i<strlen(chiper);i+=1){
cout<<chiper[i];
}
}

int main(int argc, char *argv[])
{
Enkripsi Deskripsi;
Deskripsi.enkripsi();
cout<<"\n\nSetelah diEnkripsi : ";
Deskripsi.output();
Deskripsi.deskripsi();
cout<<"\n\nKembali diDeskripsi : ";
Deskripsi.output();

cout<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}


Tidak ada komentar:

Posting Komentar