Tuesday, May 14, 2013

Enkripsi (Subtitusi Cipher)



Enkripsi adalah proses mengubah atau mengamankan sebuah teks asli atau teks terang menjadi sebuah teks tersandi.
Dalam ilmu kriptografi, enkripsi adalah proses untuk mengamankan sebuah informasi agar informasi tersebut tidak dapat dibaca tanpa pengetahuan khusus.
Pada tahun 1970an, enkripsi dimanfaatkan untuk pengamanan oleh sekretariat pemerintah AS pada domain publik, namun sekarang enkripsi digunakan pada sistem secara luas, sperti ATM pada bank, e-commerce, dan lain sebagainya.
Kekurangan dan kelebihan enkripsi antara lain :
  • Kelebihan dari Enkripsi
    • Kerahasiaan suatu informasi terjamin
    • Menyediakan autentikasi dan perlindungan integritas pada algoritma checksum/hash
    • Menanggulangi penyadapan telepon dan email
    • Untuk digital signature
  • Kekurangan dari Enkripsi
    • Penyandian rencana teroris
    • Penyembunyian record kriminal oleh seorang penjahat
    • Pesan tidak bisa dibaca bila penerima pesan lupa atau kehilangan kunci
Dan tujuan dari enkripsi adalah :
  1. Kerahasiaan :Yaitu untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka informasi yang telah dienkripsi.
  2. Integritas data : Untuk menjaga keaslian/keutuhan data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
  3. Autentikasi : Ini berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
  4. Non-repudiasi/Nirpenyangkalan : Adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat. Cara kerja dari algoritma ini adalah dengan menggantikan setiap karakter dari plaintext dengan karakter lain.
Ada istilah dalam enkripsi, yaitu Ciphers, adalah sebuah algoritma untuk menampilkan enkripsi, yang disebut dekripsi. Informasi yang asli disebut plaintext, dan informasi yang sudah di enkripsi disebut ciphertext. Namun isi dari ciphertext tidak dapat dibaca atau diketahui oleh manusia maupun komputer, sebelum melalui proses yang tepat untuk melakukan dekripsi
Algoritma enkripsi
Enkripsi digunakan pertama dalam persandian pada waktu pemerintahan Yulius Caesar dikenal dengan Caesar Cipher dengan mengganti posisi huruf awal dari alphabet.
Contoh : huruf digeser 3 digit
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
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
Plaintext : “Saya main computer”
Ciphertext : “VDBD PDLQ FRPSXWHU”
Algoritma dari Caesar cipher adalah jika (a=1.b=2, dan seterusnya). Plaintex diberi simbol “P” dan cipher text adalah “C” dan kunci adalah “K”.
Rumus untuk enskripsi :
C = E(P) = (P+K) mod (26)
Dari contoh di atas, maka enskripsi dapat dilakukan dengan rumus :
C= E(P) =(P+3) mod (26)

Caesar Cipher menggunakan satu kunci/Subsitusi deret campur kata kunci :
Contoh : menggunakan kata kunci RINI ANGRAINI = RINAG
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
R I N A G B C D E F H J K L M O P Q S T U V W X Y Z
Note : huruf yang telah muncul pada Key tidak ditulis kembali.
Plaintext : “Belajar keamanan computer”
Ciphertext : “IGJRFRQ HGRKRLRL NMKOUTGQ”
Caesar Cipher menggunakan dua kunci :
Contoh : menggunakan kata kunci pertama : RINI ANGRAINI = RINAG
Kunci kedua : RAHMAT HIDAYAT = RAHMTIDY
K1 .
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
R I N A G B C D E F H J K L M O P Q S T U V W X Y Z
Chipertext
K2 K1 ke K2
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
R A H M T I D Y B C E F G J K L N O P Q S U V W X Z
Plaintext : “Saya belajar keamanan computer”
Ciphertext : “POXO BDCOION YDOEOFOF JGEKSQDN”
Penggunaan dua kunci akan menyulitkan untuk dideteksi, walaupun satu kunci sudah ditemukan. Cara untuk mengubah plaintext menjadi ciphertext adalah dengan menukarkan huruf asli dengan huruf yang sudah memakai kunci (T1) dan mencari huruf yang sama pada T2. Huruf yang akan menjadi ciphertext adalah huruf dari persamaan T2 seperti pada contoh diatas.
Caesar Cipher menggunakan tiga kunci :
Contoh : menggunakan kata kunci pertama : RINI ANGRAINI = RINAG
Kunci kedua : RAHMAT HIDAYAT = RAHMTIDY
Kunci ketiga : DIANA PUTRI = DIANPUTR
K1 .
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
R I N A G B C D E F H J K L M O P Q S T U V W X Y Z
K2
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
R A H M T I D Y B C E F G J K L N O P Q S U V W X Z
K3 .
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
D I A N P U T R B C E F G H J K L M O Q S V W X Y Z
Untuk tiga kunci pada plaintext dapat digunakan pendistribusian kunci-kunci, dimana plaintext terlebih dahulu dibagi menjadi block-block yang terdiri dari 6 huruf satu block.
Contoh :
Plaintext : “Saya belajar keamanan computer”
Block : Sayabe lajark eamana ncompu terxxx
K1 K2 K3 K1 K2
Maka Ciphertext : “SRYRIG FRCROE PDGDHD LNMKOU QTOWWW”
Shift Cipher
Teknik subsitusi shift cipher dengan modulus 26 dengan memberikan angka ke setiap alphabet seperti a=0, b=2, c=3,….,z=25.
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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Contoh :
Plaintext : “Lagi senang program”
Angka yang didapat P : “11 0 6 8 18 4 13 0 13 6 15 17 14 6 17 0 12”
Kalau key : 11
Maka angka C yang didapat adalah :
22 11 17 19 3 15 24 11 24 17 0 2 25 17 2 11 23
Kemudian angka hasil dikonversi ke bentuk huruf, sehingga akan didapatkan ciphertext sebagai
berikut :
WLRT DPYLYR ACZRCLX
Vigenere cipher
Pada Vigenere cipher memungkinkan setiap ciphertext memiliki banyak kemungkinan plaintext-nya, yang dapat dilakukan dengan 2 cara :
·         Angka
·         huruf
Angka :
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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Kita memiliki kunci dengan 6 huruf cipher. Jika ditukar dengan angka, maka akan menjadi K=(2, 8, 15, 7, 4, 17). Dengan demikian bila plaintext adalah “Sudah larut malamxxx”
S U D A H L A R U T M A L A M
18 20 3 0 7 11 0 17 20 19 12 0 11 0 12
2 8 15 7 4 17 2 8 15 7 4 17 2 8 15
20 2 18 7 11 2 2 25 9 0 16 17 13 8 1
ciphertextnya adalah :
UCSHL CCZIAQRNIB
Teknik Transposisi Chiper
Teknik ini menggunakan permutasi karakter. Penggunaan teknik ini memungkinkan pesan yang asli tidak dapat dibaca kecuali memiliki kunci untuk mengembalikan pesan tersebut ke bentuk semula (deskripsi). Ada 6 kunci yang digunakan untuk melakukan permutasi chipper :
B e l a j a
1 2 3 4 5 6
3 5 1 6 4 2
L j b a a e
Langkah yang harus dilakukan :
1.      Bentuk blok-blok text dari plaint text yang akan di enskripsikan, dimana setiap blok text terdiri dari 6 karakter/huruf.
2.      Setiap blok text yang dibentuk diberi nomor urutan dari 1-6.
3.      Setiap blok text yang telah dibentuk dipermutasikan atau ditukar letaknya sesuai dengan rumus di atas.
Plant text : Kriptografi dengan teknik transposisi chipper
Enskripsi :
Bentuk blok text :
1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 12 3 4 5 6
K R I P T O G R A F I D E N G A N T EKN I KT RANSPO SISICH IPPERX
1 2 3 4 5 6
3 5 1 6 4 2
Hasil Permutasi (chipper Text):
I T K O P R A I G D F R G N E T A N

Contoh enkripsi dalam bahasa pemrograman
Disini saya mencoba bahasa pemrograman yang ada pada YII Framework sebagai contoh kasus.
Berikut adalah sepenggal contoh kasusnya :
public function hashPassword($password,$salt)
{
return md5($salt.$password);
}
public function beforeSave()
{
$isinya=$this->generateSalt();
$dua=$this->password;
$this->enkrip=$isinya;
$this->password=$this->hashPassword($dua,$isinya);
$this->id_level=3;
return true;
}
Penjelasannya :
public function hashPassword($password,$salt)==> Mengenkripsi password sesuai dengan code yang diberikan
return md5($salt.$password)==> password akan di enkripsi dalam model md5
protected function generateSalt()==> menggenerate otomatis code enkripsi password.

Daftar Pustaka
-          Wikipedia
-          Akbar, N. A. 2012. Makalah Seminar Kerja Praktek METODE ENKRIPSI DAN DEKRIPSI BINER PADA BAHASA PEMROGRAMAN PHP. Teknik Elektro Fakultas Teknik UNDIP.

PRIYO SIGIT PURNOMO
1000631038
D-3 MANAJEMEN INFORMATIKA
UNIVERSITAS MUHAMMADIYAH JEMBER

2 comments:

  1. Nice infonya gan sangat bermutu, dan bermanfaat :) :) :D

    ReplyDelete
  2. Mantap min. Ane suka . Bermanfaat . Lanjut kan

    ReplyDelete