Pharaoh dreams three times, and three times the priests fail him. Joseph doesn't guess at meanings — he breaks codes. Three dreams, three real ciphers, each harder than the last.
Every cipher here is real — the same kind used for actual encryption, just small enough to break by hand. No made-up puzzle logic, no black boxes.
Dream 1 — Caesar cipher. Every letter shifted by a fixed amount. Only 26 possible shifts. Dream 2 — Substitution cipher. Every letter swapped for another, consistently. Frequency analysis helps. Dream 3 — XOR cipher. The same math real stream ciphers use, with a key you'll have to figure out from the story itself.