On the Subject of the Dreamcipher CM

A machine that knows no bounds when it comes to ciphers.

From the Dreamcipher module by Kaito Sinclaire.

Recreating the Glyph Alphabet

The table on page 3 is a glyph table. Some of the glyphs in the table have been mapped to a letter.

Start by creating a key using the keyword on screen 1 and the Boolean Expression on screen A. Convert the hexadecimal characters on screen 2 into binary.

Take the leftmost eight bits in the binary string and convert them to a decimal number, modulo 64. This is the number of the starting glyph, starting from zero in the top-left, proceeding in reading order.

Convert the letter on screen 2 to a Value via the Value Table. This is your starting offset.

Take the next four bits in the binary string, and convert them to a decimal number. Add one to that number, and advance that many additional glyphs, wrapping around to the top-left glyph if necessary. The resulting glyph maps to the 1st letter in the alphabet key.

Proceed likewise for the next four bits in the binary string, mapping the result to the next letter of the alphabet key.

Convert the 2 letters on screen B into Values via the Value Table, modulo 10, plus 1. The left value will be referred to as A and the right value will be referred to as B.

Do the following instructions down below until each letter of the alphabet key has been used:

  • Let X be the previous bit string.
  • Shift X left by A, XOR that with X, and save the result as X.
  • Shift X right by B, XOR that with X, and save the result as X.
  • All shifts are logical shifts—always shift in zeroes.
  • For each of the 4 bits of X, convert them to a decimal number. Add one to that number, and advance that many glyphs, again wrapping if necessary. The resulting glyph maps to the next letter in the alphabet key.
  • If a glyph you landed on already has a letter mapped to a letter, advance one additional glyph until the glyph you end up on doesn't have a mapped letter.

Decrypting the Word

Concatenate the glyphs on screens 3 and 4 in that order.

If the Submit Button is white, follow the instructions under Encrypt Instructions. Otherwise follow the instructions under Decrypt Instructions.

Encrypt Instructions

  • Locate the Nth glyph in the glyph table.
  • If the Nth glyph is outlined, go in reading order in the glyph table equal to the alphabetic position (A1Z26) of the Nth letter of the encrypted word, wrapping around when necessary.
  • Otherwise go in backwards reading order equal to the alphabetic position (A1Z26) of the Nth letter of the encrypted word, wrapping around when necessary.
  • The letter that the glyph you ended up on is mapped to becomes your Nth decrypted letter.

Decrypt Instructions

  • Locate the Nth glyph in the glyph table.
  • If the Nth glyph is outlined, go in backwards reading order in the glyph table equal to the alphabetic position (A1Z26) of the Nth letter of the encrypted word, wrapping around when necessary.
  • Otherwise go in reading order equal to the alphabetic position (A1Z26) of the Nth letter of the encrypted word, wrapping around when necessary.
  • The letter that the glyph you ended up on is mapped to becomes your Nth decrypted letter.

Do this for each letter of the encrypted word to get a decrypted word.

Glyph Table

Example

Encrypted Word: TQUZ
Key: CRUSADEBFGHIJKLMNOPQTVWXYZ
Hexidecimal: A7A4
A/B: 4/0 -> 5/1
Glyphs: B4 Filled, F1 Filled, B2 Filled, D8 Outlined
Using Decrypt Rules

A7A4 → 1010 0111 1010 0100
10100111 → 167 mod 64 → 39 → H4
1010 → 10 + 1 → 11 + H4 → C7: C
0100 → 4 + 1 → 5 + C7 → H7: R

1010011110100100
1111010010000000
0101001100100100
0010100110010010
0111101010110110

0111 → 7 + 1 -> 8 + H7 -> H8: U
1010 → 10 + 1 -> 11 + H8 -> C2: S
1011 → 11 + 1 → 12 + C2 → G3: A
0110 → 6 + 1 → 7 + G3 → F4: D

0111101010110110
0101011011000000
0010110001110110
0001011000111011
0011101001001101

0011 → 3 + 1 -> 4 + F4 -> B5: E
1010 → 10 + 1 -> 11 + B5 -> E6: B
0100 → 4 + 1 → 5 + E6 → B7: F
1101 → 13 + 1 → 14 + B7 → A1: G

0011101001001101
0100100110100000
0111001111101101
0011100111110110
0100101000011011

0100 → 4 + 1 -> 5 + A1 -> F1: H
1010 → 10 + 1 -> 11 + F1 -> A3: I
0001 → 1 + 1 → 2 + A3 → C3: J
1011 → 11 + 1 → 12 + C3 → G4: K

0100101000011011
0100001101100000
0000100101111011
0000010010111101
0000110111000110

0000 → 0 + 1 -> 1 + G4 -> H4: L
1101 → 13 + 1 -> 14 + H4 -> F6: M
1100 → 12 + 1 → 13 + F6 → C8: N
0110 → 6 + 1 → 7 + C8 → B1: O

0000110111000110
1011100011000000
1011010100000110
0101101010000011
1110111110000101

1110 → 14 + 1 -> 15 + B1 -> B3: P
1111 → 15 + 1 -> 16 + B3 -> C5: Q
1000 → 8 + 1 → 9 + C5 → D6: T
0101 → 5 + 1 → 6 + D6 → D7: V

1110111110000101
1111000010100000
0001111100100101
0000111110010010
0001000010110111

0001 → 1 + 1 -> 2 + D7 -> F7: W
0000 → 0 + 1 -> 1 + F7 -> G7: X
1011 → 11 + 1 → 12 + G7 → C1: Y
0111 → 7 + 1 → 8 + C1 → D2: Z

GOY--H--
--SZ----
IPJ---A-
-----DKL
-EQ-----
---TBM--
-FCV-WXR
--N----U

T + B4 Filled → M
Q + F1 Filled → A
U + B2 Filled → K
Z + D8 Outlined → E

Decrypted Word: MAKE