FOR YOUR EYES ONLY // MODULE 02

THE STRADDLING CHECKERBOARD

ESTIMATED: 20 MINUTES
OPERATIONAL BRIEF

The Straddling Checkerboard converts text to digits using variable-length encoding — high-frequency letters get one digit, all others get two.

2.1 Structure

The checkerboard is a 3-row, 10-column grid.

The row 1 reserved positions are called escape digits. They signal that the next digit forms a 2-digit code addressing rows 2 or 3.

2.2 Why "Straddling"

The encoding straddles single and double digit codes. Letters in the top row use 1 digit. Letters in the lower rows use 2 digits (escape + column). Because common letters occupy the top row, the average code length is less than 2.

This variable-length encoding means the digit string cannot be parsed without the checkerboard key. An analyst seeing 7 2 0 8 does not know if that is four single-digit chars, two doubles, or one double and two singles. The ambiguity is intentional and protective.

(Note: it is not ambiguous to the decoder with the key, because the decoding algorithm is deterministic.)

2.3 Standard Construction

You need to choose:

  1. A keyword or key phrase
  2. Positions for the escape cells in row 1

Step 1: Extract unique characters from keyword, in order.

Step 2: Continue with remaining alphabet characters not in keyword, in standard order (skip those already used).

Step 3: Fill row 1 with the first 6 high-frequency characters. The remaining positions serve as escape prefixes for rows 2 and 3.

Step 4: Fill row 2 (escape=7) and row 3 (escape=8) with remaining characters.

DESIGN PRINCIPLE

Place the highest-frequency letters in the top row. In English, E T A O N I cover roughly 51% of all text. Each of these encodes to a single digit, saving key material on every message.

2.4 The Reference Checkerboard

We use this checkerboard throughout the course. Study it until you can construct it from memory.

0123456789
ROW 1 E T A O N I FIG / / FIG
7_ SRHLDCUMWF
8_ GYPBVKJXQZ

Single-digit codes (Row 1): E=0, T=1, A=2, O=3, N=4, I=5

Two-digit codes (Row 2, prefix 7): S=70, R=71, H=72, L=73, D=74, C=75, U=76, M=77, W=78, F=79

Two-digit codes (Row 3, prefix 8): G=80, Y=81, P=82, B=83, V=84, K=85, J=86, X=87, Q=88, Z=89

-- TRAINING REFERENCE --
STRADDLING CHECKERBOARD
REFERENCE LAYOUT — ESCAPE DIGITS: 7 AND 8 — FIGURE 3
01234 56789
ROW 1
SINGLE DIGIT
E0 T1 A2 O3 N4 I5 6FIG 7ESC→R2 8ESC→R3 9FIG
ROW 2
ESCAPE 7+COL
S70 R71 H72 L73 D74 C75 U76 M77 W78 F79
ROW 3
ESCAPE 8+COL
G80 Y81 P82 B83 V84 K85 J86 X87 Q88 Z89
DECODE ALGORITHM — STRICTLY LEFT TO RIGHT
1. Read digit D.
2. If D is NOT 7 or 8: look up D in Row 1. Output character. Advance 1.
3. If D IS 7: read next digit D2. Look up D2 in Row 2. Output character. Advance 2.
4. If D IS 8: read next digit D2. Look up D2 in Row 3. Output character. Advance 2.

NEVER look ahead. Never backtrack. A missed escape digit cascades — every subsequent character will be wrong.
E=0
T=1
A=2
O=3
N=4
I=5
S=70
R=71
H=72
L=73
D=74
C=75
U=76
M=77
W=78
F=79
G=80
Y=81
P=82
B=83
V=84
K=85
J=86
X=87
Q=88
Z=89
NAIVE ENCODING
2.00 digits/char
STRADDLING CB
~1.42 digits/char
PAD SAVINGS
~29%
6 high-frequency letters occupy
single-digit codes (~51% of English)
All others use 2-digit codes
OTP-SC COURSE — FIGURE 3 — STRADDLING CHECKERBOARD REFERENCE — V1.0
REFERENCE

2.5 Reading the Checkerboard

To encode a character:

Examples:

E  → 0              (row 1, col 0)
T  → 1              (row 1, col 1)
A  → 2              (row 1, col 2)
O  → 3              (row 1, col 3)
N  → 4              (row 1, col 4)
I  → 5              (row 1, col 5)
S  → 70             (row 2, col 0, escape=7)
R  → 71             (row 2, col 1)
H  → 72             (row 2, col 2)
D  → 74             (row 2, col 4)
M  → 77             (row 2, col 7)
G  → 80             (row 2, col 0, escape=8)
Y  → 81             (row 3, col 1)
P  → 82             (row 3, col 2)
B  → 83             (row 3, col 3)
Z  → 89             (row 3, col 9)

2.6 Encoding a Message

Plaintext: MEET AT NOON

Step 1: Remove spaces (or encode using a convention). Here we drop spaces:

M  E  E  T  A  T  N  O  O  N

Step 2: Encode each character:

M  → 77
E  → 0
E  → 0
T  → 1
A  → 2
T  → 1
N  → 4
O  → 3
O  → 3
N  → 4

Step 3: Concatenate:

77 | 0 | 0 | 1 | 2 | 1 | 4 | 3 | 3 | 4

Digit string: 7 7 0 0 1 2 1 4 3 3 4   (11 digits)

Step 4: Group into 5-digit groups for transmission:

77001 21433 4

This intermediate string is not the ciphertext. It is the input to the OTP encryption step.

Decoding Example

Decode: 7 7 0 0 1 2 1 4 3 3 4

Read 7: escape digit. Read next: 7. Row 2, col 7 = M. Output M.
Read 0: not escape. Row 1, col 0 = E. Output E.
Read 0: not escape. Row 1, col 0 = E. Output E.
Read 1: not escape. Row 1, col 1 = T. Output T.
Read 2: not escape. Row 1, col 2 = A. Output A.
Read 1: not escape. Row 1, col 1 = T. Output T.
Read 4: not escape. Row 1, col 4 = N. Output N.
Read 3: not escape. Row 1, col 3 = O. Output O.
Read 3: not escape. Row 1, col 3 = O. Output O.
Read 4: not escape. Row 1, col 4 = N. Output N.

Result: MEETATNOON — correct.

CRITICAL RULE

Process strictly left to right. Never look ahead. Any decoding error propagates forever if you jump around.

2.7 Exercises — Module 2

INSTRUCTIONS

Use the reference checkerboard for all exercises. Work on paper.

2.1 Encode these strings to digit sequences:

a) NORTH
b) SENDHELP
c) HIDE
d) ATDAWN
e) THECAT

a) NORTH: N=4, O=3, R=71, T=1, H=72 → 4 3 71 1 72 → 437172
b) SENDHELP: S=70, E=0, N=4, D=74, H=72, E=0, L=73, P=82 → 70 0 4 74 72 0 73 82 → 700474720 7382
c) HIDE: H=72, I=5, D=74, E=0 → 72 5 74 0 → 725740
d) ATDAWN: A=2, T=1, D=74, A=2, W=78, N=4 → 2 1 74 2 78 4 → 2174 2784
e) THECAT: T=1, H=72, E=0, C=75, A=2, T=1 → 1 72 0 75 2 1 → 172075 21

2.2 Decode these digit strings:

a) 1720
b) 77001
c) 71764340
d) 027170334
e) 72 0 73 82 70 1 3 82

a) 1720: 1=T, 7→R2: 2=H, 0=E → THE
b) 77001: 7→R2: 7=M, 0=E, 0=E, 1=T → MEET
c) 71764340: 7→R2: 1=R, 7→R2: 6=U, 4=N, 3=O, 4=N, 0=E → RUNONE
d) 027170334: 0=E, 2=A, 7→R2: 1=R, 7→R2: 0=S, 3=O, 3=O, 4=N → EARSOON
e) 72 0 73 82 70 1 3 82: 7→R2: 2=H, 0=E, 7→R2: 3=L, 8→R3: 2=P, 7→R2: 0=S, 1=T, 3=O, 8→R3: 2=P → HELPSTOP

2.3 How many digits does each character require?

E, R, Q, T, B, I, Z, N, H, G

E=1, R=2, Q=2, T=1, B=2, I=1, Z=2, N=1, H=2, G=2

Row 1 letters (E, T, I, N) = 1 digit. All others = 2 digits.

2.4 Calculate the average digits-per-character for the reference checkerboard, assuming standard English letter frequency (E=12.7%, T=9.1%, A=8.2%, O=7.5%, N=6.7%, I=7.0%). Compare to the naive 2.0 digits/char baseline.

Row 1 frequency total: E(12.7) + T(9.1) + A(8.2) + O(7.5) + N(6.7) + I(7.0) = 51.2%

Average = (0.512 × 1) + (0.488 × 2) = 0.512 + 0.976 = 1.488 digits/char

Savings vs naive: (2.0 − 1.488) / 2.0 = ~25.6%

DRILL: ENCODE FLASH

A random letter appears. Type its checkerboard code. Target: under 2 seconds.

DRILL: DECODE FLASH

A digit code appears. Type the letter it represents. Target: under 3 seconds.