From: adacrypt on

Like the vector cryptography described elsewhere this cryptography is
also spatial but is confined to the XY plane and uses modular
arithmetic rather than position vectors to map plaintext to widely
dispersed points on lines in the XY plane. These lines all have
different periodicity (scale) and are always used only once for the
encryption of one only plaintext character. The varying scale of the
lines is induced by the congruence classes of the various moduli N
that divides combinations of,

(Key + Plaintext) (Mod N) = Ciphertext

which is the basic equation of the Vigenere square in the cipher of
that same name.

The congruence classes are than simulated by number lines (having the
same periodicity, N, superimposed on the arbitrary scale of the line)
and are used now for cryptography.

The crypto strength comes from the entanglement caused by the ever-
changing moduli and residue classes that results. All attempts at
inductive cryptanalysis are totally disabled. This cryptography is an
adaptation of the famous cipher by Blaise Vigenere of some four
centuries ago. The lines may have any direction but the scale is
unique to each line - hence Scalable Key in the cryptography title.
The ciphers read in files of plaintext and without further ado
encrypts them into unbreakable ciphertext at relatively high speed.
The ciphertext is secured by two random key sets that are used once
and once only in a message. The keysets are each of the same length
as the message length (no it is not a tiresome one time pad).

Plaintext.
The encryption alphabet for plaintext is the printable subset of ASCII
i.e. the elements numbered 32 to 126 inclusive. A single module of
this printable subset of ASCII is a random set per se, it has 95
characters in all. Plaintext characters for encryption are referenced
by their position as a decimal number in this printable subset set of
ASCII and are assigned an appropriate denary value as their
representation in all future computations.

Keys.
A larger ASCII random set that is comprised of equal numbers of the
same characters may be comprised by combining discrete multiples of a
single module. That module is equal to or in excess of, the message-
length in any message as needs be i.e. it must be a round multiple 'n'
say of one single ASCII subset. If a message length is short of the
key length thus formed, then the message length is made up to size by
'padding' which is also encrypted just as carefully as if it was
meaningful plaintext.

The name word 'Key' is used so as to conform to the textbook Vigenere
Cipher theory and general description documents and to conform also to
the notional equation of the Vigenere square.

A second Key Set.
There is another key by a different name - the modulus in the modular
arithmetic theory designated N, that is to be understood by the reader
as being a key also. This second key is drawn from a random set and
is a large single module of non-repeating elements that are usually
positive integers. This keyset may be envisaged as being about 14000
elements long of 2 to 5 digit integers.

A major part of the theory that follows is to do with the creation and
validation of this second set of random keys, it is a special exercise
in modular arithmetic.

In this cryptography every message can be secured by two random
encryption/decryption key sets. The two random key sets are each used
only once in a message and are made equal to the message length on
every occasion.

Encryption.
[(Key + X) + (Plaintext +X)] (Mod N) = a residue >= 0
Then, Ciphertext = residue - N
Decryption Key = residue + N

Decryption.
Plaintext (as message-text) = Ciphertext + 2N - KEY ( => value
converted back to character equivalent in ASCII)

Theory.
X is a positive integer parameter that decides the size of the second
key set i.e. of N's. Number of moduli produced by a complete run is N
= X - 63

Both Key and Plaintext are each an integer in the range 32 to 126.

N must divide ((Key + X) + (Plaintext +X)) just once and leave a
residue >= 0

The range of N's for a given X is,

(X + 63 +127) <= N <= 2(X +32)

The values (X + 63 +127) and 2(X +32) are the counters in a FOR Loop
that validates N according to certain designed conditions. (see
<http://www.scalarcryptography.co.uk>) .

While there, especially see download “Download - Compendium of Cipher
Sourcecode” (in preparation) in a title box => see also
“Make_Moduli_Program_Mark_0” for a working demonstration of how N 's
are found, within each downloaded directory (Folder).

The methodology of finding N was arrived at by empirical means, it is
not an easy think- through.

A full expansion of this cryptography is to be found on the website
above.

Comment.
It could be said that this cryptography is an instance of dispersed
spatial cryptography in the XY plane as a subset of three-dimensional
space vector cryptography.

Although vector cryptography is very elegant from a mathematical
viewpoint this cryptography is very much more efficient. Having
invented both cryptographies I can make this comparison with
impunity. They are both theoretically unbreakable in class

This cryptography i.e. both the vector displacement-driven and modular
arithmetic ciphers are intended to be up and running feasibility
models that prove the feasibility of the mathematical theory that is
being realised into workable ciphers. The ciphers do not have to tick
anybody else's boxes. I have no pretensions to software engineering
or infrastructure management and readily agree that the ciphers as
they stand need a big input from those experts if they are ever to be
adopted for mainstream cryptography. Unbreakable cryptography is thin
on the ground while there is a plentiful supply of software engineers
and system manager types so there should be no problem finding them.
In essence this cryptography owes its crypto strength to the
deliberately incoherent, unstructured way in which the plaintext is
scattered around a planar space, to a cryptanalyst it is totally
invulnerable but is systematically reversible by the legal entities of
the secure loop via their mutual databases. These are simple,
transparent, symmetric stream ciphers - just straight human
intelligence.

There are five versions of this cipher available as a single free
download from my website. There is also a suitable compiler in the
download that will enable them to be run in seconds. The salient
thing in my view about these ciphers is the success of the
mathematical algorithm at the core - when that works all else is made
possible, the cipher is there then for refinement by other experts -
my style of coding and anything else about the software development is
not important - many readers will find my style of coding ponderous
perhaps but that is only the box that the cryptography comes in - I
despise flashy (minimalised – cool ?) coding as it happens - the
ciphers on download are written in the Ada-95 programming language -
they can be operated with minimal user-assistance by non-specialist
office-trained operators - enjoy - adacrypt

A download comprised of the sourcecode of five versions of the cipher
is being prepared for my website http://www.scalarcryptography.co.uk
.. The download includes a compiler and descriptive PDF with
userguide. That should be available in about one week.

Copyright © 2009 Austin O'Byrne.
From: Gordon Burditt on
>Plaintext.
>The encryption alphabet for plaintext is the printable subset of ASCII

This choice is a major problem for the usability of any cryptography.
It doesn't even preserve line lengths. And adacrypt has indicated that
he prefers the bizarre choice of inserting newlines every 77 characters,
splitting up words at arbitrary places.

>i.e. the elements numbered 32 to 126 inclusive. A single module of
>this printable subset of ASCII is a random set per se, it has 95

What definition are you using here for "random set"? You expect
randomness in plaintext?

>characters in all. Plaintext characters for encryption are referenced
>by their position as a decimal number in this printable subset set of
>ASCII and are assigned an appropriate denary value as their
>representation in all future computations.

Values is values. It makes no difference whether the value is in decimal
or some other base, the math is exactly the same. There may be a difference
in how the result is represented if you don't translate back to the
95-character set of characters.