BOOK THIS SPACE FOR AD
ARTICLE ADKriptografi (cryptography) adalah teknik mengamankan komunikasi di internet dengan cara mengaburkan pesan yang dikirim sehingga tidak dapat dibaca oleh pihak ketiga. Tanpa kriptografi, komunikasi di internet akan sangat tidak aman.
Untuk memahami cara kerja kriptografi, kita ambil contoh Bob dan Alice yang ingin bertukar pesan melalui internet, namun tidak ingin pesan tersebut dikirim dalam bentuk plain text karena khawatir dibaca oleh pihak yang tidak berwenang.
Kriptografi merupakan bidang yang luas dan terus berkembang, melibatkan berbagai teknik dan metode untuk memastikan keamanan dan privasi informasi. Berikut ini adalah beberapa bidang utama dalam kriptografi:
Enkripsi adalah proses mengubah informasi menjadi string acak untuk mencegah akses tidak sah. Enkripsi melakukan pengaburan pada data dengan menggunakan rumus yang disebut dengan key.
Sebagai contoh, Alice dan Bob ingin berkomunikasi melalui internet, namun mereka tidak ingin pesannya dikirim dalam bentuk plain text karena dapat dibaca oleh orang lain. Karena itu, Alice membuat rumus yang digunakan untuk mengubah pesan tersebut ke dalam teks acak sehingga tidak dapat dipahami oleh orang lain (proses ini disebut dengan enkripsi/encryption). Di sisi lain, Bob juga memiliki rumus untuk mengembalikan teks acak tersebut ke dalam bentuk aslinya (proses ini disebut dengan dekripsi/decryption). Rumus yang digunakan untuk mengacak teks dan mengembalikannya ke bentuk semula dinamakan dengan key.
Enkripsi dibagi menjadi dua, yaitu:
Symmetric encryption. Yaitu menggunakan key yang sama untuk melakukan enkripsi dan dekripsi. Jenis enkripsi ini kurang aman namun cepat.
Pada tahun 1977, National Institute of Standard and Technology (NIST) mempublikasikan Data Encryption Standard (DES). DES adalah algoritma symmetric encryption yang menggunakan key berukuran 56 bit. Namun, pada tahun 1998, DES dianggap rentan karena key dapat ditebak menggunakan teknik brute-force sehingga dapat membaca datanya dalam waktu 56 jam.
Lalu pada tahun 2001, NIST kembali mempublikasikan algoritma baru yaitu Advanced Encryption Standard (AES). Algoritma ini menggunakan key berukuran 128, 192, atau 256 bit. Algoritma ini dinilai aman dan masih digunakan hingga sekarang.
Berikut ini contoh melakukan symmetric encryption menggunakan GPG dan algoritma AES:
Asymmetric encryption. Yaitu menggunakan key yang berbeda untuk melakukannya enkripsi dan dekripsi. Key untuk melakukan enkripsi disebut public key sementara key untuk melakukan dekripsi disebut private key. Jenis enkripsi ini lebih aman namun lambat.
Algoritma yang sering digunakan yaitu RSA (singkatan dari nama penemunya yaitu Rivest, Shamir, dan Adleman). Sebagai contoh, pada gambar di bawah terdapat file ciphertext_message yang dienkripsi menggunakan public key milik Alice (tersimpan dalam file public-key-alice.pem):
Kemudian kita melakukan dekripsi menggunakan private key milik Bob (tersimpan dalam file) menggunakan OpenSSL:
Hashing adalah proses mengubah informasi menjadi string acak yang tidak bisa dikembalikan lagi ke teks semula. Berbeda dengan enkripsi yang menghasilkan teks acak menggunakan key, hashing menghasilkan teks acak menggunakan algoritma hashing. Algoritma hashing yang populer digunakan yaitu MD5 (Message Digest 5) dan SHA (Secure Hash Algorithm).
Hash biasa digunakan untuk identifikasi file dan menyimpan data sensitif seperti password. Ketika kita melakukan registrasi pada suatu website, maka password kita akan di hashing lalu teks hashing tersebut akan disimpan ke database. Jika kita login, maka password yang kita inputkan akan di hash lalu dibandingkan dengan hash password kita di database. Jika hash-nya sama, maka password tersebut benar.
MD5 juga biasa digunakan untuk memastikan integritas suatu file. MD5 akan menghasilkan output yang sama untuk input yang sama. Ini dapat digunakan untuk membandingkan hash dari file sumber dengan hash file baru untuk memastikan data tersebut belum dimodifikasi.
Berikut ini adalah contoh mendapatkan checksum sebelum file order.json diubah dan setelah diubah:
Encoding adalah proses mengubah informasi menjadi string acak tanpa menggunakan key. Dengan begitu, kita dapat melakukan encoding dan decoding (mengubah informasi ke bentuk semula) tanpa harus menggunakan key seperti enkripsi.
Jenis encoding yang populer digunakan yaitu Base64. Kita dapat melakukan encoding/decoding menggunakan bahasa pemrograman maupun online encoder seperti https://amp.base64encode.org/ dan https://amp.base64decode.org/
Itulah penjelasan mengenai kriptografi beserta bidang-bidangnya yang sering digunakan. Kriptografi merupakan topik yang luas. Memahami kriptografi sangat penting untuk dapat menciptakan komunitas yang aman melalui internet. Semoga bermanfaat!