# Virtual Cubes

Activate JavaScript to see the Virtual Cubes!

### Non-reciprocal Enigma Rubik's Cube

This cube implements a more secure variant of Enigma Rubik's Cube by removing one of its weaknesses, self-reciprocity. It also adds a slightly more complex process for encoding and decoding a message.

The layout of the Non-reciprocal Enigma Rubik's Cube was created in 2021 by Stefan Berinde.

#### Self- and not self-reciprocal ciphers

A self-reciprocal cipher is a cipher that applies the same transformation to decrypt a message as the one used to encrypt it. Thus, the entire process is reversible. If, say, the letter 'E' is coded into an 'R', this means that 'R' would produce 'E' at the same setting of the device. Such a cipher has the advantage that the operator does not need to remember to switch between decoding and encoding. In spite of being more practical, it opens ways for a cryptanalytic attack, since the total number of substitution rules (letter permutations) is reduced from 26! ≈ 1026 to about 1012, which is the number of permutations with 26 elements having 2-cycles (swaps) only.

Examples of self-reciprocal ciphers are: Cryptography Cube, Enigma Rubik's Cube, Enigma Pocket Cube, as well as Enigma machine itself.

For general terminology regarding Rubik's Cube and cryptography, please check the page about Cryptography Cube.

The current cube is not self-reciprocal. It uses 26 English letters only, and every letter has a chance to be encoded, respectively decoded, into every other letter.

#### Encryption and decryption

The encoding and decoding processes are done as follows. From the initial state apply a 'key' by displacing each character in the key one quarter turn in the direction indicated by the sticky arrow nearby. On each face there is a circular path used as a correspondence between a 'plaintext' and a 'ciphertext' character. To encode a plaintext character, locate that letter first onto the cube and visually follow the circular path counter-clockwise until you meet another letter. That will be the ciphertext character. The decoding process is done in reverse, starting now with the encoded letter. Every face center contains a pictogram showing directions for encoding (towards secured padlock) and decoding (towards opened padlock). Furthermore, after each encoding/decoding of a plaintext character, that character must be rotated one quarter turn (for example) in the direction of its arrow, to change the permutation.

Here is a sample text to decode using the above description:
Key: CUBE
Ciphertext: RNJAC PSFWH MTVLQ PC

This cube can be used as an advanced version of Enigma Rubik's Cube.

It can also be used as a test case for cryptanalysis attack algorithms. In this regard we list below some design constraints that can be exploited by such attacks.

#### The parts of the cube

Every corner contains a single letter, and the rest are placed on edges. Half of edges contains two letters and the other half a single letter. The correspondence issue between letters sharing the same edge is solved by introducing two special overlapped paths along the same corner.

Ideally, the probability that any two given letters are in correspondence should be 1/26. Here it varies a bit, depending on the letters. The range of probabilities is between 1/20 and 1/80, excluding pairing a letter with itself, which is possible, but with a remotely low probability.

Only the 8 corner letters are responsible for rotating the outer cube layers, the other ones will do the middle layers only. To remove the risk of an improper cube scramble when applying a key, those 8 letters are chosen to be the ones with the highest frequency in English dictionary: E,S,I,A,R,N,T,O.

#### Comparison with the Enigma

The number of distinct states of this cube is about 1018. Enigma machine had 1023 distinct configurations.

Happy encoding!

(The decoded plaintext: THEGR EATER NORUB IK)