TDCTF Academy Logo TDCTF ACADEMY

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

PADA HALAMAN INI