Panduan Lengkap Kriptografi Modern: AES, RSA, ECC & Implementasi Python

💡 Fakta Penting: Setiap kali Anda mengirim pesan WhatsApp, berbelanja online, atau menggunakan mobile banking, Anda sedang memanfaatkan teknologi kriptografi canggih!

Konsep Dasar Kriptografi

Three Pillars of Cryptography

Confidentiality

Memastikan informasi hanya dapat diakses oleh pihak yang berwenang

Teknik: Enkripsi simetris/asimetris

Integrity

Memastikan data tidak diubah selama transmisi

Teknik: Hash functions, MAC

Authentication

Memverifikasi identitas pengguna/sistem

Teknik: Digital signature, certificates

Jenis-Jenis Algoritma Kriptografi

1. Kriptografi Simetris (AES)

Menggunakan kunci yang sama untuk enkripsi dan dekripsi

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

key = get_random_bytes(16) # AES-128
cipher = AES.new(key, AES.MODE_GCM)
ciphertext, tag = cipher.encrypt_and_digest(b"Data rahasia")

Keunggulan: Cepat, efisien untuk data besar

Kelemahan: Masalah distribusi kunci

2. Kriptografi Asimetris (RSA)

Menggunakan pasangan kunci publik dan privat

from Crypto.PublicKey import RSA

key = RSA.generate(2048)
private_key = key.export_key()
public_key = key.publickey().export_key()

# Enkripsi dengan kunci publik
from Crypto.Cipher import PKCS1_OAEP
cipher = PKCS1_OAEP.new(public_key)
ciphertext = cipher.encrypt(b"Data rahasia")

Keunggulan: Solusi distribusi kunci

Kelemahan: Lebih lambat dari simetris

Implementasi Praktis

Enkripsi File dengan Python

from cryptography.fernet import Fernet
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
import base64, os

# Generate key dari password
password = b"password_kuat"
salt = os.urandom(16)
kdf = PBKDF2HMAC(
algorithm=hashes.SHA256(),
length=32,
salt=salt,
iterations=100000
)
key = base64.urlsafe_b64encode(kdf.derive(password))

# Enkripsi file
cipher = Fernet(key)
with open("data.txt", "rb") as file:
encrypted = cipher.encrypt(file.read())
with open("data.enc", "wb") as file:
file.write(encrypted)

Perbandingan Algoritma Modern

Algoritma Jenis Keamanan Penggunaan
AES-256 Simetris Sangat kuat Enkripsi disk, SSL/TLS
RSA-4096 Asimetris Kuat Pertukaran kunci, tanda tangan
ECC-384 Asimetris Sangat kuat Blockchain, perangkat IoT
SHA-3 Hash Sangat kuat Integritas data

Kriptografi dalam Kehidupan Nyata

1. SSL/TLS untuk Keamanan Web

Protokol yang melindungi komunikasi internet menggunakan kombinasi:

  • Asimetris (RSA/ECC) untuk pertukaran kunci
  • Simetris (AES) untuk enkripsi data
  • Hash (SHA) untuk integritas

2. Blockchain dan Cryptocurrency

Memanfaatkan:

  • ECDSA untuk tanda tangan digital
  • Hash untuk proof-of-work
  • Kriptografi kunci publik untuk wallet

⚠️ Praktik Terbaik Keamanan

  • Jangan pernah membuat algoritma kriptografi sendiri
  • Selalu gunakan library yang sudah teruji (OpenSSL, PyCryptodome)
  • Update sistem secara berkala
  • Gunakan panjang kunci yang memadai (minimal 256-bit untuk simetris)

Sumber Belajar Lanjutan

  • Buku: "Cryptography Engineering" oleh Bruce Schneier
  • Kursus: Cryptography I oleh Dan Boneh (Stanford)
  • Tools Praktik: Cryptool (www.cryptool.org)
  • Challenge: Cryptopals (cryptopals.com)

*

إرسال تعليق (0)
أحدث أقدم