Dalam dunia Privacy-Enhancing Technology dan Data Protection, kita mengenal istilah hash, tokenization dan encryption. Sepintas lalu ketiganya seperti sama saja, sama-sama menghasilkan barisan huruf-huruf yang tidak ada maknanya. Namun sebenarnya mereka adalah hal yang berbeda secara prinsip. Penerapannya dalam dunia data privacy dan data protection juga berbeda-beda. Ketiganya memiliki keunggulan masing-masing dalam penerapannya dalam pelindungan data pribadi.
Mari kita coba bahas satu per satu lebih detil.
Hash
Hash sering disebut juga dengan one-way function, karena fungsi ini cuma bekerja searah, kita tidak bisa menemukan inverse fungsinya (fungsi kebalikannya, yaitu mengambil kode hasil hash dan mengembalikan kata aslinya).
Banyak juga yang secara salah menyebut hash ini dengan istilah "one-way encryption", mungkin karena hasil dari hash itu seperti rangkaian karakter yang gibberish seperti hasil enkripsi. Hash berbeda dengan enkripsi, karena kita tidak bisa mendekripsinya (paling tidak secara teori harusnya begitu).
Hash biasanya digunakan untuk menyimpan dan memvalidasi password. Daripada menyimpan real password yang diketik oleh pengguna, aplikasi biasanya menyimpan text hasil hash dari password. Ketika user kemudian login dan memasukkan password, aplikasi akan menghash password yang dimasukkan user dan membandingkan hasilnya dengan text hash di dalam database. Kalau sama, authentication sukses, kalau berbeda maka reject.
Contoh, misalnya aplikasi kita ingin menyimpan password si Fulan, "rahasia". Password ini kemudian di-hash, misalnya dengan algoritma MD5 menjadi "ac43724f16e9241d990427ab7c8f4228". Maka yang disimpan ke dalam field password di dalam database bukan kata "rahasia" tetapi hasil hash-nya yaitu "ac43724f16e9241d990427ab7c8f4228". Ketika si Fulan itu login, dia akan memasukan password nya lagi yaitu "rahasia", lalu aplikasi akan menghash password yg dimasukkan ini dan hasilnya dibandingkan dengan kode yang tersimpan ke dalam database. Kalau passwordnya benar, maka tentu saja kode hash yang dihasilkan akan sama dengan yg disimpan di dalam database, dan proses login berhasil.
Proses hashing dapat dilakukan dengan cepat, berbeda dengan beberapa algoritma enkripsi yang perlu processing power yang lumayan besar sehingga butuh waktu lebih dari sekedar hasing.
Dalam dunia data privacy teknologi hash dapat digunakan pada skenario di bawah ini:
Misalnya ada 2 perusahaan, A dan B yang masing-masing memiliki daftar customer termasuk alamat emailnya. Ketika kedua perusahaan ini ingin kerja sama melakukan join marketing terhadap customer yang beririsan (customer yang merupakan customer dari perusahaan A dan juga sekaligus customer perusahaan B), maka masing-masing perusahaan tidak bisa mengirimkan database customernya untuk dicocokkan alamat! Kita hanya boleh sharing informasi pada customer yang beririsan saja. Bagaimana caranya kita mendapatkan daftar customer yang beririsan tanpa membuka alamat email lainnya?
Jawabnya dengan mengirimkan kode hash dari email customer! Ketika masing-masing mengirimkan daftar email customernya dalam bentuk hash, maka dengan membandingkan kode hash kita tahu mana yang emailnya sama dan itu adalah customer yang beririsan.
Encryption
Enkripsi adalah suatu proses untuk mengubah data yang bisa dibaca (plaintext) menjadi format yang tidak bisa dibaca (chipertext) dengan menggunakan suatu algoritma dan sebuah kata kunci (key) sehingga hanya orang yang memiliki kunci untuk mendekripsinya saja yang dapat mengembalikan chipertext ini ke format sebelumnya yang dapat dibaca.
Perhatikan di sini ada 2 hal penting dalam proses enkripsi, yaitu algoritma dan key. Algoritma terkait dengan function bagaimana menghasilkan chipertext dari plaintext dan key yang diberikan. Ada banyak algoritma yang digunakan untuk mengenkripsi masing-masing dengan kelebihan dan kekurangannya.
Sebelum kita bahas mengenai beberapa algoritma enkripsi, mari kita lihat jenis enkripsi dilihat dari kunci enkripsi (key) nya. Ada dua jenis enkripsi dilihat dari key nya, yaitu:
- Symmetric encryption
- Asymmetric encryption
Symmetric encryption
Symmetric encryption adalah jenis enkripsi di mana kunci (key) yang digunakan untuk mengenkripsi dan mendekripsi adalah kata yang sama.
Jenis-jenis algoritma symmetric encryption
- DES
- 3DES
- AES
- Blowfish
- Twofish
Asymmetric encryption
Asymmetric encryption adalah jenis enkripsi di mana kunci (key) yang digunakan untuk mengenkripsi dan mendekripsi adalah kata yang berbeda.
Jenis-jenis algoritma symmetric encryption
- RSA
- DSA
- Elgamal
- Diffie–Hellman
Tokenization
- vaulted
- vaultless
- Log in to post comments