Lab 15: One-Time Pad - Satu-Satunya Cipher yang Sempurna
Target: Memahami One-Time Pad (OTP) - satu-satunya cipher yang mathematically unbreakable
Tools:python3
Konsep
One-Time Pad (OTP) adalah satu-satunya cipher dengan perfect secrecy - bahkan dengan komputer quantum pun tidak bisa dipecahkan.
Syarat:
- Key harus random (true random, bukan PRNG)
- Key harus sepanjang pesan
- Key hanya digunakan sekali (one-time)
- Key harus rahasia (hanya pengirim & penerima)
Praktikum
cd ~ && mkdir crypto-lab15 && cd crypto-lab15
python3 << 'PYEOF'
import os
def otp_encrypt(plaintext, key):
"""XOR plaintext dengan key (one-time pad)"""
return bytes(p ^ k for p, k in zip(plaintext, key))
def otp_decrypt(ciphertext, key):
"""XOR ciphertext dengan key yang sama"""
return bytes(c ^ k for c, k in zip(ciphertext, key))
# Pesan
message = b"ATTACK AT DAWN"
print(f"Pesan: {message} ({len(message)} bytes)")
# Generate key: true random! (sepanjang pesan)
key = os.urandom(len(message))
print(f"Key: {key.hex()} (random, {len(key)} bytes)")
print()
# Encrypt
ciphertext = otp_encrypt(message, key)
print(f"Cipher: {ciphertext.hex()}")
print()
# Decrypt
decrypted = otp_decrypt(ciphertext, key)
print(f"Decrypt: {decrypted.decode()}")
# Demonstrate: same key decrypts anything
print()
print("=== Demonstrasi: Perfect Secrecy ==*")
wrong_key = os.urandom(len(message))
wrong_decrypt = otp_decrypt(ciphertext, wrong_key)
print(f"Wrong key decrypts to: {wrong_decrypt.hex()}")
print(f" → Bisa menghasilkan 'pesan' apapun dengan key yang berbeda!")
print(f" → Inilah perfect secrecy - ciphertext tidak memberikan")
print(f" informasi apapun tentang plaintext tanpa key yang benar.")
PYEOF
️ Analisis
| Aspek | OTP | AES |
|---|---|---|
| Keamanan | Perfect secrecy (unconditional) | Computational security |
| Key length | = panjang pesan | 16-32 bytes |
| Key reuse | ❌ Bencana - bisa di-crack | Bisa (tapi tidak disarankan) |
| Praktis? | ❌ Distribusi key = masalah | ✅ |
Refleksi: OTP adalah Holy Grail kriptografi - sempurna secara matematis. Tapi masalah distribusi key membuatnya tidak praktis. Namun, OTP masih digunakan untuk saluran komunikasi paling rahasia (hotline Moscow-Washington).
15 Beginner Crypto Selesai!
| # | Topik | Konsep Kunci |
|---|---|---|
| 1-3 | Classical Ciphers | Caesar, Substitusi, Vigenère |
| 4 | XOR | Fondasi enkripsi modern |
| 5 | Base64 | Encoding ≠ Encryption |
| 6 | Hash | MD5/SHA, avalanche, collision |
| 7 | AES | Standar enkripsi global |
| 8 | RSA | Public key cryptography |
| 9 | Diffie-Hellman | Key exchange |
| 10 | Signatures | Sign & verify |
| 11 | HMAC | Message authentication |
| 12 | Password Hashing | bcrypt, salt, slow hash |
| 13 | Stegano vs Crypto | Dua pendekatan |
| 14 | Enigma | Sejarah + rotor cipher |
| 15 | One-Time Pad | Perfect secrecy |
Generated by @farishhz Agent Pentest Pipeline - TDCTF Security Academy