Panduan Enkripsi Lanjutan: AES, RSA, ECC & Kriptografi Post-Quantum

Panduan komprehensif ini mengeksplorasi konsep enkripsi tingkat lanjut, algoritma, dan protokol yang digunakan dalam sistem komunikasi aman modern. Ideal untuk developer dan profesional keamanan.

Catatan: Panduan ini mengasumsikan kamu sudah familiar dengan konsep dasar enkripsi. Untuk pemula, mulai dengan Tips Keamanan untuk Pemula.

Algoritma Enkripsi Simetris

AES (Advanced Encryption Standard)

Standar emas untuk enkripsi simetris, diadopsi oleh pemerintah AS pada tahun 2001.

Fitur Utama

  • Ukuran key: 128, 192, atau 256 bit
  • Ukuran block: 128 bit
  • Rounds: 10, 12, atau 14 tergantung ukuran key
  • Performa: Sangat optimal, akselerasi hardware tersedia

Mode Umum

  • GCM (Galois/Counter Mode): Authenticated encryption, direkomendasikan untuk sebagian besar kasus
  • CBC (Cipher Block Chaining): Mode tradisional, memerlukan MAC terpisah
  • CTR (Counter): Dapat diparalelkan, digunakan dalam beberapa protokol

ChaCha20

Stream cipher modern yang dirancang oleh Daniel J. Bernstein, semakin populer sebagai alternatif AES.

Keunggulan

  • Lebih cepat dari AES pada perangkat tanpa akselerasi hardware
  • Implementasi constant-time (tahan terhadap timing attack)
  • Desain sederhana, lebih mudah diimplementasikan dengan aman
  • Digunakan dengan Poly1305 untuk authenticated encryption

Enkripsi Asimetris

RSA (Rivest-Shamir-Adleman)

Banyak digunakan untuk key exchange dan digital signature.

Pertimbangan Key

  • Ukuran key minimum: 2048 bit (4096 bit direkomendasikan untuk keamanan jangka panjang)
  • Performa: Komputasi mahal dibandingkan enkripsi simetris
  • Skema padding: Gunakan OAEP untuk enkripsi, PSS untuk signature
  • Ancaman quantum: Rentan terhadap komputer quantum (algoritma Shor)

Elliptic Curve Cryptography (ECC)

Alternatif yang lebih efisien dari RSA dengan keamanan setara pada ukuran key yang lebih kecil.

Curve Populer

  • Curve25519: Dirancang untuk ECDH key exchange, banyak diadopsi
  • Ed25519: Untuk digital signature, digunakan dalam SSH, GPG
  • P-256 (secp256r1): Standar NIST, didukung luas
  • P-384, P-521: Level keamanan lebih tinggi

Keunggulan Dibanding RSA

  • ECC 256-bit ≈ keamanan RSA 3072-bit
  • Komputasi lebih cepat
  • Key dan signature lebih kecil
  • Kebutuhan bandwidth dan penyimpanan lebih rendah

Protokol Key Exchange

Diffie-Hellman (DH)

Memungkinkan dua pihak untuk membuat shared secret melalui channel yang tidak aman.

Varian

  • Classic DH: Implementasi asli
  • ECDH: Versi Elliptic Curve (lebih efisien)
  • X25519: ECDH modern menggunakan Curve25519

Perfect Forward Secrecy (PFS)

Memastikan komunikasi masa lalu tetap aman bahkan jika key jangka panjang dikompromikan.

Implementasi

  • Generate ephemeral key pair untuk setiap sesi
  • Hancurkan session key setelah digunakan
  • Digunakan dalam TLS 1.3, Signal Protocol, dll.

Hash Function

Keluarga SHA-2

  • SHA-256: Output 256-bit, banyak digunakan
  • SHA-384, SHA-512: Level keamanan lebih tinggi
  • Aplikasi: Digital signature, validasi sertifikat, password hashing (dengan teknik yang tepat)

SHA-3 (Keccak)

  • Konstruksi berbeda dari SHA-2 (sponge function)
  • Tahan terhadap length extension attack
  • Cocok untuk aplikasi yang memerlukan margin keamanan tinggi

BLAKE2/BLAKE3

  • Lebih cepat dari SHA-2 dan SHA-3
  • Aman secara kriptografi
  • BLAKE3: Sangat dapat diparalelkan, sangat baik untuk data besar

Key Derivation Function (KDF)

PBKDF2 (Password-Based Key Derivation Function 2)

  • Tujuan: Menurunkan cryptographic key dari password
  • Iterasi: Minimum 100.000 (rekomendasi OWASP)
  • Use case: Penyimpanan password, key derivation

Argon2

Pemenang Password Hashing Competition (2015), direkomendasikan untuk aplikasi baru.

Varian

  • Argon2id: Hybrid (direkomendasikan untuk sebagian besar kasus)
  • Argon2i: Dioptimalkan terhadap side-channel attack
  • Argon2d: Resistensi maksimum terhadap GPU attack

scrypt

  • Memory-hard function (tahan terhadap hardware attack)
  • Digunakan oleh Litecoin, Tarsnap
  • Keseimbangan baik antara keamanan dan kompatibilitas

Message Authentication Code (MAC)

HMAC (Hash-based MAC)

  • Menggabungkan hash function dengan secret key
  • Menyediakan autentikasi dan integritas
  • Umum: HMAC-SHA256, HMAC-SHA512

Poly1305

  • One-time authenticator
  • Digunakan dengan ChaCha20 untuk authenticated encryption
  • Cepat dan constant-time

Authenticated Encryption

Mengapa Penting

Enkripsi saja tidak menjamin integritas. Penyerang dapat memodifikasi ciphertext tanpa terdeteksi. Authenticated encryption menyelesaikan masalah ini.

AEAD (Authenticated Encryption with Associated Data)

  • AES-GCM: Paling banyak didukung
  • ChaCha20-Poly1305: Lebih baik pada perangkat mobile
  • AES-CCM: Digunakan dalam beberapa protokol wireless

Digital Signature

RSA Signature

  • Padding: Gunakan PSS (Probabilistic Signature Scheme)
  • Hash function: SHA-256 atau lebih tinggi
  • Ukuran key: Minimum 2048 bit

ECDSA (Elliptic Curve Digital Signature Algorithm)

  • Signature lebih kecil dari RSA
  • Memerlukan generasi nonce yang hati-hati (RNG lemah = key dikompromikan)
  • Varian deterministik (RFC 6979) direkomendasikan

Ed25519

  • Deterministik (tidak memerlukan RNG)
  • Generasi dan verifikasi signature cepat
  • Signature kecil (64 byte)
  • Tahan terhadap side-channel attack

Protokol Modern

Signal Protocol

Protokol enkripsi end-to-end terdepan yang digunakan oleh Signal, WhatsApp, Facebook Messenger.

Fitur Utama

  • Double Ratchet: Terus memperbarui key
  • Perfect Forward Secrecy: Pesan masa lalu tetap aman
  • Post-Compromise Security: Pulih dari key compromise
  • Asynchronous: Bekerja bahkan saat penerima offline

TLS 1.3

Versi terbaru dari protokol Transport Layer Security.

Peningkatan

  • Menghapus algoritma dan cipher suite yang lemah
  • Selalu menyediakan forward secrecy
  • Handshake lebih cepat (1-RTT, opsi 0-RTT)
  • Encrypted Server Hello

Noise Protocol Framework

Framework protokol kriptografi modern untuk membangun sistem komunikasi aman.

Aplikasi

  • WireGuard VPN
  • Lightning Network
  • I2P messaging

Post-Quantum Cryptography

Ancaman

Komputer quantum dapat memecahkan RSA dan ECC menggunakan algoritma Shor. Algoritma simetris kurang terpengaruh tetapi memerlukan key yang lebih besar.

Kandidat Post-Quantum NIST

  • Kyber: Key encapsulation berbasis lattice
  • Dilithium: Digital signature berbasis lattice
  • SPHINCS+: Signature berbasis hash

Strategi Transisi

  • Pendekatan hybrid: Gabungkan algoritma klasik dan post-quantum
  • Tingkatkan ukuran symmetric key menjadi 256 bit
  • Pantau proses standardisasi NIST
  • Rencanakan algorithm agility

Best Practice Implementasi

Jangan Buat Crypto Sendiri

Gunakan library yang sudah mapan dan peer-reviewed:

  • libsodium: High-level, mudah digunakan
  • OpenSSL: Komprehensif, didukung luas
  • BoringSSL: Fork OpenSSL dari Google
  • Ring: Library kriptografi Rust

Key Management

  • Gunakan hardware security module (HSM) untuk key kritis
  • Implementasikan kebijakan key rotation
  • Jangan pernah hardcode key dalam source code
  • Gunakan key derivation untuk berbagai tujuan
  • Hapus key dari memori dengan aman setelah digunakan

Secure Random Number Generation

  • Gunakan cryptographically secure RNG (CSPRNG)
  • Jangan pernah gunakan fungsi rand() standar
  • RNG sistem operasi: /dev/urandom (Linux), CryptGenRandom (Windows)
  • Khusus bahasa: crypto.randomBytes (Node.js), modul secrets (Python)

Pencegahan Timing Attack

  • Gunakan perbandingan constant-time untuk secret
  • Hindari branching berdasarkan data secret
  • Waspadai cache timing attack
  • Gunakan library yang dirancang dengan resistensi timing attack

Testing dan Validasi

Security Audit

  • Penetration testing berkala
  • Code review oleh ahli keamanan
  • Security audit pihak ketiga
  • Program bug bounty

Compliance

  • FIPS 140-2/3: Standar pemerintah AS
  • Common Criteria: Sertifikasi keamanan internasional
  • PCI DSS: Persyaratan industri kartu pembayaran

Sumber untuk Pembelajaran Lebih Lanjut

Buku

  • "Cryptography Engineering" oleh Ferguson, Schneier, dan Kohno
  • "Serious Cryptography" oleh Jean-Philippe Aumasson
  • "Applied Cryptography" oleh Bruce Schneier

Sumber Online

  • Cryptopals Crypto Challenges
  • Kursus Cryptography Stanford (Coursera)
  • IACR ePrint Archive
  • Crypto Stack Exchange
Lihat enkripsi beraksi: SecretNote menggunakan enkripsi AES-256-GCM dengan key derivation aman untuk melindungi pesanmu. Coba sekarang!