The plain_sight encryption system: CipherClock

I went to the trouble of making an effective cryptographic system for plain_sight, so I’ll give it a name, CipherClock and some explanation.

CipherClock is a single replacement algorithm which operates on all printable ASCII characters plus “space” and “new line.” It replaces each character of the plain text with a single cipher character in the same position. The cipher character is calculated from the key and from the position of the character in the message (referred to as the index).

The calculation of the cipher character cannot be reversed without having the key (except in certain weak key cases), or without knowing the index of the character in the message. Because there is no transposition or other moving around of the characters, this algorithm is a Stream type algorithm suitable for use in real time encryption of outgoing signals and decryption of incoming signals.

CipherClock uses a key consisting of an array of 20 integers which can have any value between and including 31 and 125 (31 is used to store the new line character which normally has the ascii character code 10). There are 95 possible values for each integer, and therefore there are 95^20 possible keys which is the equivalent of between a 131 bit key and a 132 bit key. This massive number of possibilities makes it unreasonable to attempt to brute force decrypt (guess and check every key by using all available computing resources) any encrypted message.

CipherClock calculates the cipher character by adding a combination of the key integers to a set of three rotating values. The exact combination of the key integers to use is selected from a rotating set of 27 different combinations, and the rotating values rotate by a set length with each incremental index position. The rotation lengths of the rotating values are pre-calculated based on properties of the key. The sum of all of these gears is then the number of positions (on the set of ASCII characters) by which to rotate the plain text character.

The main security of CipherClock is insured by the rotating set of 27 different key component combinations. The other three rotating values insure that even if the plain text is somewhat repetitive every 3, 9, or 27 times, the cipher text will not reveal nor highlight whatever useful information might be hidden in the small variances of that repetitive input.

Keys are weak if all integer values within the key are the same, but this can be easily detected and guarded against.

Leave a Reply