From: adacrypt on

Model and Theory.

This is a piece of niche number theory that enables a set of random
keys as the modulus N in a modular arithmetic model to be generated
for use as keys in encryption work. That set of moduli satisfies the
mandatory requirement in cryptography for one random key-set to be
provided in a cipher that claims theoretically unbreakable
cryptographic strength but the option is there also in this case for a
second random key-set to be generated if the user wants that as extra
backup security. The entire encryption environment is provided by the
modular settings of the residue classes that are associated with the
set of configured N’s.

The Vigenere square being used as the basic model of the eponymous
cipher is defined by its mathematical equation in this context.

Although the basic cipher type that ensues emanates from the historic
Vigenere Cipher the connection quickly becomes tenuous as the newly
adapted cipher type being called “Scalable Key Cryptography” is
developed along separate lines.


(Key + Plaintext) (Mod 27) = Ciphertext

as the equation of the original Vigenere square when that square is
populated by the 26 characters of the English alphabet’, I
deliberately chose Mod 27 for my purposes of demonstration here.

Suppose now I say that,
Plaintext = Ciphertext – Key
This is a deliberately naïve demonstration that acknowledges that
there are cases when ‘Key’ is larger than the Ciphertext and,
Ciphertext – Key < 0
(this example is being used deliberately to make the point here.)

In order to redress this imbalance I next add one multiple of the
modulus 27 to the ciphertext and repeat the demonstration and this

Ciphertext + N (the modulus) – Key >0 and is now in order for finding
the correct plaintext due to having been incremented by 1 value of N.

The upshot now is that there is a measurable range of moduli somewhere
between 1 and 27 that will always a give a residue that in turn gives
me a negative result that requires the addition of one multiple of the
current modulus to the residue so as to put things right in the
general equation,
Plaintext = Ciphertext – Key.

I am going to make this anomaly the basis of my algorithm in the
design of a new cipher that uses modular arithmetic. I am interested
only in those cases where the right-hand side of this equation is
deliberately negative. That requires that,

(Key + Plaintext) (Mod N) = a residue >= 0 when N divides once and
only once. Finding the set of N’s that will do this by operating on
every possible combination of (Key + Plaintext) is my next problem.

Upgrading the previous model.
If I extend the original Vigenere model that used the 26 letters of
the English language only and apply it to a modern information system
that now uses ASCII instead then this is what evolves in the
application of my theory to the equation of the square,

1) I populate the Vigenere square with the 95 printable subset of
2) I next determine the method of finding a sequence that gives me the
range of moduli that divides every combination of.

(Key +Plaintext) (Mod N) = a residue >= 0
this residue will always give a negative result if the equation,
Plaintext = Ciphertext – Key, is tested.

An abiding condition of my algorithm is that N divides once and only
once when producing the residue.

In my new model, I increment both the Key and the Plaintext by a value
X so that my new equation is,
[(X + Key) + (X + Plaintext)] (Mod N) = a residue >= 0

The variables ‘Key’ and ‘Plaintext’ are drawn from the printable
subset of ASCII characters i.e. elements numbered 32 to 126 incl. The
range of ‘N’ has to be established next. Incrementing with X is
necessary to give a large range of N’s

It happens then that X and N are related as follows,

Whatever the required maximum message length is to be then,
X = messagelength + 63.
X is initialised at that value in the formula that follows.
The sequence of N’s is then,

All the positive integers in the range => (X +127) to 2(X+32).

[(X +Key) + (X + Plaintext)] (Mod N) = a residue >= 0
Ciphertext = residue – N.

Plaintext (as messagetext) = Ciphertext +2N – Key – 2X
This gives the denary value of the messagetext in the ASCII subset of
printable characters.

Remember the important caveat, the modulus N divides once and only
once every time.

– still more to come - adacrypt