Lab 4: ⊗ XOR Cipher - Fondasi Kriptografi Modern
Target: Memahami operasi XOR dan penggunaannya dalam enkripsi
Tools:python3
Konsep
XOR (⊕) adalah operasi bit yang digunakan di hampir semua kriptografi modern - AES, DES, One-Time Pad semuanya menggunakan XOR.
Sifat penting XOR:
A ⊕ B ⊕ B = A(reversibel - bisa didekripsi dengan key yang sama)A ⊕ 0 = A(identitas)A ⊕ A = 0(self-inverse)
Praktikum
cd ~ && mkdir crypto-lab4 && cd crypto-lab4
python3 << 'PYEOF'
import os
# 1. Single-byte XOR
def xor_single(data, key):
return bytes(b ^ key for b in data)
plaintext = b"HELLO XOR CIPHER"
key = 0x42
cipher = xor_single(plaintext, key)
decrypted = xor_single(cipher, key)
print(f"Plaintext: {plaintext}")
print(f"Key: 0x{key:02x}")
print(f"Cipher (hex): {cipher.hex()}")
print(f"Decrypted: {decrypted}")
print()
# 2. Multi-byte XOR (repeating key)
def xor_repeating(data, key):
return bytes(data[i] ^ key[i % len(key)] for i in range(len(data)))
text = b"This is a secret message with XOR encryption!"
key = b"KEY"
cipher = xor_repeating(text, key)
decrypted = xor_repeating(cipher, key)
print(f"Text: {text}")
print(f"Key: {key}")
print(f"Cipher: {cipher.hex()}")
print(f"Decrypt: {decrypted}")
print()
# 3. XOR untuk encrypt file
with open('/tmp/plain.txt', 'w') as f:
f.write("Data rahasia: password=admin123")
with open('/tmp/plain.txt', 'rb') as f:
data = f.read()
# Encrypt
key_bytes = b'MY_SECRET_KEY'
encrypted = xor_repeating(data, key_bytes)
with open('/tmp/encrypted.bin', 'wb') as f:
f.write(encrypted)
# Decrypt
decrypted = xor_repeating(encrypted, key_bytes)
print(f"File decrypt: {decrypted.decode()}")
PYEOF
️ Analisis
| Mode XOR | Key Space | Keamanan |
|---|---|---|
| Single-byte | 256 | Sangat lemah - brute force mudah |
| Repeating key | 256^len(key) | Rentan frequency analysis |
| One-Time Pad | Random, sepanjang data | Unconditionally secure |
Refleksi: XOR adalah batu bata kriptografi modern. Sendiri, XOR lemah. Tapi dikombinasikan dengan substitusi dan permutasi (seperti di AES), XOR menjadi bagian dari cipher terkuat di dunia.
Generated by @farishhz Agent Pentest Pipeline - TDCTF Security Academy