Materi Kriptografi Dasar
Kriptografi adalah studi tentang teknik komunikasi aman di hadapan pihak ketiga yang jahat, atau secara umum, pembangunan dan analisis protokol yang mencegah pihak ketiga membaca pesan pribadi. Kata "kriptografi" berasal dari bahasa Yunani Kuno: kryptos (tersembunyi, rahasia) dan graphein (menulis). Secara harfiah berarti "tulisan rahasia".
1. Tujuan Utama Kriptografi
Ada empat tujuan utama yang ingin dicapai kriptografi dalam pengamanan informasi:
Kerahasiaan (Confidentiality): Memastikan bahwa informasi hanya dapat diakses oleh pihak yang berwenang. Ini mencegah pengungkapan informasi sensitif kepada individu, entitas, atau proses yang tidak sah. Contohnya adalah enkripsi email sehingga hanya penerima yang dituju yang bisa membacanya.
Integritas Data (Data Integrity): Memastikan bahwa data belum diubah atau dirusak selama transmisi atau penyimpanan oleh pihak yang tidak berwenang. Ini melibatkan deteksi perubahan yang disengaja atau tidak disengaja. Contohnya, menggunakan hash function untuk memverifikasi bahwa file yang diunduh tidak rusak.
Autentikasi (Authentication): Memverifikasi identitas pengguna, sistem, atau entitas lain yang mencoba mengakses atau bertukar informasi. Ini juga bisa berarti memverifikasi sumber data. Contohnya adalah login dengan username dan password atau tanda tangan digital.
Nirpenolakan (Non-repudiation): Memastikan bahwa pengirim tidak dapat menyangkal telah mengirim pesan, dan penerima tidak dapat menyangkal telah menerima pesan. Ini memberikan bukti asal dan integritas data. Contohnya adalah tanda tangan digital pada transaksi keuangan yang mengikat pengirim pada tindakannya.
2. Konsep Dasar
a. Enkripsi dan Dekripsi
Seperti yang sudah dijelaskan, enkripsi adalah proses mengubah data plaintext (data asli) menjadi ciphertext (data terenkripsi yang tidak dapat dibaca) menggunakan algoritma enkripsi dan kunci enkripsi. Sebaliknya, dekripsi adalah proses mengubah ciphertext kembali menjadi plaintext menggunakan algoritma dekripsi dan kunci dekripsi yang tepat.
b. Algoritma Kriptografi (Cipher)
Ini adalah serangkaian instruksi matematis atau prosedur yang digunakan untuk melakukan enkripsi dan dekripsi. Kualitas keamanan suatu sistem kriptografi sangat bergantung pada kekuatan algoritmanya dan panjang kuncinya.
c. Kunci Kriptografi
Kunci adalah parameter rahasia yang digunakan oleh algoritma untuk mengubah plaintext menjadi ciphertext dan sebaliknya. Keamanan kunci sangat krusial; jika kunci terkompromi, seluruh sistem keamanan bisa runtuh. Kunci biasanya berupa deretan bit acak.
3. Jenis-jenis Kriptografi
Secara umum, kriptografi dibagi menjadi dua jenis utama berdasarkan penggunaan kuncinya:
a. Kriptografi Simetris (Symmetric-Key Cryptography)
Definisi: Menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Kunci ini harus dijaga kerahasiaannya dan dibagikan secara aman antara pengirim dan penerima.
Kelebihan: Sangat cepat dan efisien dalam hal komputasi, cocok untuk mengenkripsi data dalam jumlah besar.
Kekurangan: Masalah utama adalah distribusi kunci; bagaimana cara berbagi kunci rahasia secara aman kepada semua pihak yang membutuhkan? Jika kunci berhasil dicuri oleh pihak ketiga, keamanan komunikasi akan terancam.
Algoritma Populer:
AES (Advanced Encryption Standard): Standar enkripsi yang paling banyak digunakan saat ini, sangat kuat dan efisien.
DES (Data Encryption Standard): Pendahulu AES, sekarang dianggap kurang aman untuk sebagian besar aplikasi karena ukuran kuncinya yang kecil (56-bit). Namun, varian 3DES (Triple DES) masih digunakan di beberapa aplikasi lama.
Blowfish, Twofish: Algoritma lain yang juga dikenal kuat.
b. Kriptografi Asimetris (Asymmetric-Key Cryptography / Public-Key Cryptography)
Definisi: Menggunakan pasangan kunci yang saling terkait secara matematis:
Kunci Publik (Public Key): Dapat dibagikan kepada siapa pun. Digunakan untuk mengenkripsi pesan atau memverifikasi tanda tangan digital.
Kunci Privat (Private Key): Harus dijaga kerahasiaannya oleh pemiliknya. Digunakan untuk mendekripsi pesan yang dienkripsi dengan kunci publik yang sesuai, atau untuk membuat tanda tangan digital.
Kelebihan: Mengatasi masalah distribusi kunci pada kriptografi simetris karena kunci publik dapat didistribusikan secara terbuka. Sangat cocok untuk pertukaran kunci aman dan tanda tangan digital.
Kekurangan: Lebih lambat dan membutuhkan lebih banyak daya komputasi dibandingkan kriptografi simetris, sehingga kurang efisien untuk enkripsi data dalam jumlah besar.
Algoritma Populer:
RSA (Rivest–Shamir–Adleman): Salah satu algoritma kunci publik tertua dan paling banyak digunakan, cocok untuk enkripsi data kecil dan tanda tangan digital.
ECC (Elliptic Curve Cryptography): Menawarkan tingkat keamanan yang sama dengan RSA tetapi dengan ukuran kunci yang lebih kecil, menjadikannya lebih efisien untuk perangkat dengan sumber daya terbatas (misalnya, smartphone).
Diffie-Hellman Key Exchange: Protokol untuk memungkinkan dua pihak yang tidak memiliki pengetahuan sebelumnya tentang satu sama lain untuk secara aman membangun kunci rahasia bersama melalui saluran komunikasi yang tidak aman.
4. Hash Function (Fungsi Hash)
Definisi: Fungsi satu arah yang mengambil input data (pesan) dengan ukuran berapa pun dan menghasilkan output dengan ukuran tetap yang disebut nilai hash atau message digest. Fungsi ini bersifat satu arah, artinya dari nilai hash, sangat sulit atau tidak mungkin untuk merekonstruksi data aslinya.
Tujuan: Terutama digunakan untuk integritas data dan autentikasi. Jika bahkan satu bit data asli diubah, nilai hash yang dihasilkan akan sangat berbeda.
Properti Penting:
Determinisme: Input yang sama selalu menghasilkan output hash yang sama.
Efisiensi Komputasi: Mudah untuk menghitung nilai hash untuk input apa pun.
Resistensi Terhadap Pra-citra (Pre-image Resistance): Tidak mungkin secara komputasi untuk menemukan input yang menghasilkan nilai hash tertentu.
Resistensi Terhadap Pra-citra Kedua (Second Pre-image Resistance): Tidak mungkin secara komputasi untuk menemukan input lain yang menghasilkan nilai hash yang sama dengan input yang diberikan.
Resistensi Terhadap Kolisi (Collision Resistance): Tidak mungkin secara komputasi untuk menemukan dua input berbeda yang menghasilkan nilai hash yang sama.
Algoritma Populer:
MD5 (Message Digest 5): Sekarang dianggap tidak aman untuk aplikasi keamanan karena kerentanan terhadap kolisi, tetapi masih digunakan untuk verifikasi integritas file non-kritis.
SHA-1 (Secure Hash Algorithm 1): Mirip dengan MD5, juga ditemukan rentan terhadap kolisi, sehingga tidak direkomendasikan untuk aplikasi keamanan baru.
SHA-2 (SHA-256, SHA-512): Keluarga algoritma hash yang saat ini dianggap kuat dan banyak digunakan (misalnya, dalam blockchain Bitcoin).
SHA-3 (Keccak): Pemenang kompetisi NIST untuk standar hash baru, menawarkan alternatif modern untuk SHA-2.
5. Tanda Tangan Digital (Digital Signature)
Definisi: Mekanisme kriptografi yang digunakan untuk memverifikasi keaslian dan integritas pesan atau dokumen digital. Mirip dengan tanda tangan tulisan tangan, tetapi jauh lebih aman.
Cara Kerja: Pengirim menggunakan kunci privatnya untuk membuat tanda tangan digital dari nilai hash pesan. Penerima kemudian menggunakan kunci publik pengirim untuk memverifikasi tanda tangan tersebut.
Tujuan: Memberikan autentikasi pengirim dan nirpenolakan, serta memastikan integritas data.
0 Komentar