DEV Community

sunu15712
sunu15712

Posted on

11810799000 doesn't want his 12324312000 to be called 0.000038195235563656617

The title is the puzzle. It's a sentence where every word has been turned into a number. Can you decrypt it?

No keys, no tricks with the alphabet order. Just numbers. Give it a shot before scrolling down.

Hints

Hint 1
Count the digits. 11 digits is roughly 100^5. What kind of characters have codes around 100?

Hint 2
Divide the first number by the second. The ratio is suspiciously clean.

Hint 3
The third number is less than 1. Something got divided.

Solution

Solution (spoiler)

Plaintext: "Linus doesn't want his Linux to be called GNU/Linux."

Each word is the product of the ASCII codes of its letters:

Ciphertext Computation Word
11810799000 L(76) × i(105) × n(110) × u(117) × s(115) Linus
12324312000 L(76) × i(105) × n(110) × u(117) × x(120) Linux
0.0000381952… GNU ÷ Linux = 470730 ÷ 12324312000 GNU/Linux

And yes, the slash in GNU/Linux is evaluated as actual division.

How to crack it

  1. **Digit count gives the word lengund 100, and 11 digits is about 100^5, so each word is probably five
  2. **The trailing zeros give away mungs rarely end in 000. It means factors like n (110) and x (120)
  3. **The ratio gives away the letter00 is exactly 23/24, which is 115/120, or s/x. So the two wordthe sentence structure makes Linus/Linux the obvious guess.
  4. **The fraction gives away the div 1207/31600800 as a fraction, and 1207 = 17 × 71. 71 is G. That's GN

It even matches history: Stallman aswhile Linus has always just called it
Linux.

Verify

from math import prod

p = lambda s: prod(map(ord, s))
print(p("Linus"), p("Linux"), p("GNU") / p("Linux"))
# 11810799000 12324312000 3.81952355
Enter fullscreen mode Exit fullscreen mode

Make your own

Want to make it harder? Some ideas:

  • Map letters to primes (a=2, b=3, c=5, …) so the magnitude doesn't reveal the word length.
  • Add an offset to each code before trailing zeros.
  • Pick a sentence nobody can guess fest leak by far.

Drop your own ciphers in the comment

Source: gitlab.com/sunuhwang/linus-cipher

Top comments (0)