Pengertian Enkripsi
Enkripsi
adalah suatu metode yang digunakan untuk mengkodekan data
sedemikian rupa sehingga keamanan informasinya terjaga dan tidak dapat dibaca
tanpa di dekripsi (kebalikan dari proses enkripsi) dahulu. Encryption berasal
dari bahasa yunani kryptos yang artinya tersembunyi atau rahasia.
Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.
Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.
Manfaat Enkripsi
1. Beberapa manfaat yang
bisa didapatkan dari enkripsi ini adalah :
2. Kerahasiaan suatu
informasi terjamin
3. Menyediakan
authentication dan perlindungan integritas pada algoritma checksum/hash
4. Menanggulangi
penyadapan telepon dan email
5. Untuk digital
signature. Digital signature adalah menambahkan suatu baris statemen pada suatu
elektronik copy dan mengenkripsi statemen tersebut dengan kunci yang kita
miliki dan hanya pihak yang memiliki kunci dekripsinya saja yang bisa
membukanya.
6. Untuk digital cash
Kerugian Enkripsi
Penyalahgunaan
dan kerugian dari enkripsi adalah:
1. Penyandian rencana
teroris
2. Penyembunyian record
criminal oleh seorang penjahat
3. Pesan tidak bisa
dibaca bila penerima pesan lupa atau kehilangan kunci (decryptor).
Macam-macam Enkripsi pada
pemrograman website
Berikut
ada beberapa macam metode enkripsi yang dapat anda digunakan pada pemrograman website
seperti PHP, ASP dan yang lainnya.
1. Metode Enkripsi
MD2
1. Message-Digest
algortihm 2 (MD2) adalah fungsi hash cryptographic yang dikembangkan oleh
Ronald Rivest pada tahun 1989'
3. Meskipun algoritma
lainnya telah diusulkan sejak dulu, seperti MD4, MD5 dan SHA, bahkan sampai
dengan 2004 [update] MD2 tetap digunakan dalam infrastruktur kunci publik
sebagai bagian dari sertifikat yang dihasilkan dengan MD2 dan RSA.
2. Metode Enkripsi
MD4
1. Message-Digest
algortihm 4(seri ke-4) yang dirancang oleh Profesor Ronald Rivest dari MIT pada
tahun 1990. Panjangnya adalah 128 bit.
2. MD4 juga digunakan
untuk menghitung NT-hash ringkasan password pada Microsoft Windows NT, XP dan
Vista.
3. Metode Enkripsi
MD5
1. MD5 adalah salah satu
dari serangkaian algortima message digest yang didesain oleh Profesor Ronald
Rivest dari MIT (Rivest, 1994).
2. Saat kerja analitik
menunjukkan bahwa pendahulu MD5 yaitu MD4 mulai tidak aman, MD5 kemudian
didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan
oleh Hans Dobbertin).
3. Dalam kriptografi,
MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan
secara luas dengan hash value 128-bit.
4. Pada standart
Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi
keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas
sebuah file.
4. Metode Enkripsi
SHA
1. SHA adalah
serangkaian fungsi cryptographic hash yang dirancang oleh National Security
Agency (NSA) dan diterbitkan oleh NIST sebagai US Federal Information Processing
Standard.
2. SHA adalah Secure
Hash Algoritma. Jenis-jenis SHA yaitu SHA-0, SHA-1, dan SHA-2.
3. Untuk SHA-2
menggunakan algoritma yang identik dengan ringkasan ukuran variabel yang
terkenal sebagai SHA-224, SHA-256, SHA-384, dan SHA-512.
5. Metode Enkripsi
RC4
1. RC4 merupakan salah
satu jenis stream cipher, yaitu memproses unit atau input data pada satu saat.
Unit atau data pada umumnya sebuah byte atau bahkan kadang kadang bit (byte
dalam hal RC4).
2. Dengan cara ini
enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel.
3. RC4 adalah penyandian
stream cipher yang dibuat oleh Ron Riverst pada tahun 1987 untuk pengamanan
RSA.
4. Algoritmanya
didasarkan pada permutasi acak.
6. Metode Enkripsi
Base64
1. Base64 adalah sistem
untuk mewakili data mentah byte sebagai karakter ASCII.
2. Base64 menyediakan
6-bit encoding 8-bit ASCII karakter.
3. Base64 merupakan
format yang dicetak menggunakan karakter, memungkinkan binari data yang akan
dikirim dalam bentuk dan email, dan akan disimpan di database atau file.
Secara sederhana, enkripsi adalah mengubah (meng-kode-kan)
sebuah pesan yang dapat dimengerti manusia menjadi sulit atau bahkan tidak
dapat dimengerti oleh manusia. Tujuannya adalah untuk menjaga kerahasiaan pesan
tersebut.
Skrip enkripsi yang akan kita buat kali ini menggunakan
metode subtitusi karakter yang memanfaatkan fungsi str_replace(). Algoritma pemrogramannya kurang lebih
seperti ini:
·
Sebuah
input kita baca secara keseluruhan.
·
Ganti
karakter pada input sesuai dengan kode yang kita buat.
·
Tampilkan
hasil enkripsi sebagai sebuah output.
Sederhana bukan?
Saatnya beraksi...
Langkah pertama adalah menyiapkan daftar kode/sandi yang
diperlukan. Pada contoh kali ini, saya akan mengubah huruf vokal pada input.
1. <?php
2. $key
= array(
3. 'a' => '~',
4. 'i' => '$',
5. 'u' => '^',
6. 'e' => '#',
7. 'o' => '+'
8. );
9. ?>
Berhubung sifat dari str_replace() adalah case sensitive (huruf besar-kecil diperhatikan)
maka sebelum kita proses, ada baiknya jika input kita ubah menjadi lowercase
(huruf kecil) terlebih dahulu. Jika anda ingin mempertahankan besar-kecil nya
huruf, anda dapat menambahkan beberapa index pada variabel $key yaitu huruf besar.
1. <?php
2. $key
= array(
3. 'a' => '~',
4. 'i' => '$',
5. 'u' => '^',
6. 'e' => '#',
7. 'o' => '+',
8.
9. 'A' => '!',
10.
'I' => '%',
11.
'U' => '_',
12.
'E' => '=',
13.
'O' => '*'
14.
);
15.
?>
Setelah kunci peng-kode-an siap, saatnya mensubtitusikan
kode kita.
1. <?php
2. //
Jika ingin membuat menjadi lowercase
3. //
$input = strtolower($input);
4.
5. //
Subtitusi kode
6. $output
= str_replace(array_keys($key), $key, $input);
7.
8. //
Menampilkan output
9. echo
$output;
10.
?>
Skrip
secara keseluruhan:
1. <?php
2. $input=$_POST["input"];
3.
4. $key
= array(
5. 'a' => '~',
6. 'i' => '$',
7. 'u' => '^',
8. 'e' => '#',
9. 'o' => '+',
10.
11.
'A' => '!',
12.
'I' => '%',
13.
'U' => '_',
14.
'E' => '=',
15.
'O' => '*'
16.
);
17.
18.
// Jika ingin membuat menjadi
lowercase
19.
// $input = strtolower($input);
20.
21.
// Subtitusi kode
22.
$output =
str_replace(array_keys($key), $key, $input);
23.
24.
// Menampilkan output
25.
echo $output;
26.
?>
27.
28.
<form action=""
method="post">
29.
<textarea name="input"
cols="30" rows="8"></textarea>
30.
<input type="submit"
value="Encrypt!" />
31.
</form>
Untuk menambah variasi, dapat pula dituliskan kombinasi
huruf unik pada variable$key seperti:
1. <?php
2. $key
= array(
3. 'a' => '[53]',
4. 'i' => '[76]',
5. 'u' => '[25]',
6. 'e' => '[99]',
7. 'o' => '[01]',
8.
9. 'A' => '[02]',
10.
'I' => '[55]',
11.
'U' => '[18]',
12.
'E' => '[19]',
13.
'O' => '[15]'
14.
);
Untuk dekripsi kode, kita tinggal membalik variable
pada str_replace()
1. //
Enkripsi
2. $output
= str_replace(array_keys($key), $key, $input);
3.
4. //
Dekripsi
5. $output
= str_replace($key, array_keys($key), $input);