TDCTF Academy Logo TDCTF ACADEMY

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:

  1. Key harus random (true random, bukan PRNG)
  2. Key harus sepanjang pesan
  3. Key hanya digunakan sekali (one-time)
  4. 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

PADA HALAMAN INI