0Pricing
Cryptology Academy · Lesson

XOR Encryption & the One-Time Pad

Build a simple XOR cipher and discover its perfect-secrecy cousin.

XOR Encryption & the One-Time Pad is a free Cryptology Academy lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Cryptology Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Welcome

XOR encryption is simple: ciphertext = plaintext XOR key. When the key is truly random and used only once, we get the one-time pad — the only provably unbreakable cipher.

XOR Encryption Basics

key = bytes([0x5A, 0xF2, 0x3C, 0x11]) plaintext = bytes([0x48, 0x65, 0x6C, 0x6C]) # 'Hell' ciphertext = bytes(p^k for p,k in zip(plaintext,key)) # Result: 0x12 0x97 0x50 0x7D

XOR Self-Inverse Property

Decryption is the same as encryption: plain = cipher XOR key Proof: (P XOR K) XOR K = P XOR (K XOR K) = P XOR 0 = P This makes XOR ciphers trivially symmetric.

One-Time Pad Concept

A one-time pad (OTP) uses a random key as long as the message, used exactly once. Theoretically unbreakable: every ciphertext decrypts to every possible plaintext with equal probability.

Shannon's Perfect Secrecy Proof

Claude Shannon proved in 1949: a cipher has perfect secrecy if and only if the key is random, at least as long as the message, and used at most once. OTP is the only such practical cipher.

OTP Practical Limitations

The key must be as long as the message. It must be securely distributed. It can never be reused. These constraints make OTP impractical for most applications.

Key Reuse Attack: Many-Time Pad

If C1 = P1 XOR K and C2 = P2 XOR K, then C1 XOR C2 = P1 XOR P2. The key cancels out! An attacker with two ciphertexts gets P1 XOR P2, which leaks patterns.

Crib Dragging Attack

If the attacker guesses part of P1 (a 'crib' like ' the '), XORing with P1 XOR P2 at each position reveals the corresponding P2 text. Gradually the full plaintexts are recovered.

Real-World Key Reuse Failure

The Venona project decrypted thousands of Soviet one-time pad messages because KGB agents reused pads under wartime pressure. Key reuse broke provably perfect encryption.

XOR in Stream Ciphers

Modern stream ciphers (ChaCha20, RC4) generate a pseudorandom keystream and XOR it with plaintext. They approximate the OTP but use a short key expanded by a CSPRNG.

XOR Encryption Python Demo

import os def otp_encrypt(plaintext: bytes) -> tuple: key = os.urandom(len(plaintext)) ciphertext = bytes(p^k for p,k in zip(plaintext,key)) return ciphertext, key ciphertext, key = otp_encrypt(b'Secret!')

Quick Check

Why is reusing a one-time pad key catastrophically insecure?

Recap

XOR and the one-time pad are fundamental. Next we study why naive XOR schemes fail in practice and what attacks exploit key reuse.

Frequently asked questions

Is the “XOR Encryption & the One-Time Pad” lesson free?

Yes — the full text of “XOR Encryption & the One-Time Pad” is free to read here on the web, and the Cryptology Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Cryptology Academy course, upgrade to CoddyKit PRO.

What will I learn in “XOR Encryption & the One-Time Pad”?

Build a simple XOR cipher and discover its perfect-secrecy cousin. You practise Cryptology Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Cryptology Academy?

No prior experience is required. Cryptology Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “XOR Encryption & the One-Time Pad” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Cryptology Academy lesson?

Yes. Every Cryptology Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Bitwise Operations Refresher
  2. XOR Encryption & the One-Time Pad
  3. Why XOR Alone Is Not Secure
  4. XOR Inside AES & Stream Ciphers
← Back to Cryptology Academy