From: adacrypt on
This is a bare bones, highly contrived and studiously configured
presentation of cryptography being modelled in modular arithmetic. It
is intended for the understanding of the design cryptographer reader
who has the mathematical wherewithal to understand the connections
within the design model in modular arithmetic being used by me and the
way in which the residue classes of prescribed moduli therein
translate as fallout random keys that are collated as sets of
encryption keying-data in the cryptography that then uses them for the
construction of ciphers.

The mathematics of this cryptography is my private invention.

The scheme uses Mutual Database Technology (appendix – A) in an
excursion that uses modular arithmetic as the encryption environment.
The core, obfuscating algorithm only, is discussed here.

Let’s say I want to set up an encryption scheme that will enable any
message length from 1 to 14250 characters long (as an arbitrary figure
- could be more), to be encrypted.
I will need key-sets of that same length also.
There are two random key-sets available i.e. the keypad formed from
multiples of the ASCII printable subset (elements 32 to 126 incl.,)
and the set of moduli being called the ‘N’s.

The set of N’s as moduli.
The minimum value that X may take to produce a key-set of 14250 N’s =
14250 + 63 = 14313, therefore in the formula that follows X is
initialised at 14313.
Then, ‘N’is a positive integer, belonging in the range (X +127) to 2(X
+32) i.e. 14440 to 28690.
Checking this, 28690 – 14440 = 14250 => the key-set of N’s is 14250

The set of keys being called ‘Key’.
This key set is created ad hoc at runtime by the computer reading in
the message for encryption, counting the characters in the external
file and then calculating the number of multiples of the 95 elements
of the ASCII printable subset that will be needed to provide an
adequate key-length (this may require some padding of the message to
make the two equal in length). This composite keypad is random by the
same definition of having equal probability of the elements, hence the
use of round multiples of a basic module of the 95 printable
characters of ASCII that is itself scientifically random per se.

Both of these key sets are read into the empty, waiting-to-be-filled,
arrays of the program software. At runtime, the program will call the
elements of each key array in sequential order as required for the
instantaneous use, the arrays are volatile and will empty themselves
again at the end of the program run. The arrays are scrambled and
sliced according to scrambling parameters that Alice alone decides.
Bob follows her instructions by applying the scrambling instructions
to the arrays of his database so as to stay in synchronism with
Alice’s database.

X as a key.
In theory X is a key also in being a random variable from a large
possibility space of random X’s but no great value of crypto-strength
is ascribed to it by me because of it being a constant but it does
count however at the same time as a useful stumbling block of some
degree to an adversary.

This version of the cipher plans a broad usable scope of message
lengths ahead of expected requirements, this is a general modus
operandi that permits many varying message lengths by the same program
sourcecode. It could also be arranged that each message length is
calculated at run time and dedicated keys only of the bare key-length
are used. That ploy is available for a special application if that is

How the cipher works.

[(X + Key) + (X + Plaintext)] (Mod N) = a residue >=0
Ciphertext = residue – N (ciphertext is always a negative integer)

Plaintext (as messagetext) = Ciphertext +2N – Key – 2X = the denary
representation of the messagetext in ASCII.

Note: the decryption algorithm is an equation in four unknowns i.e.
the Plaintext, the Key, the modulus ‘N’ and X. Key, N, and X must be
supplied from Bob’s database so to evaluate the denary value in ASCII
of the Plaintext as message text. These, being random keys, cause
total uncertainty to any illegal cryptanalyst (see appendix - B).


X = 14313.
There are 95^2 or 9025 combinations of Key and Plaintext.
N = 14250.
In passing, the key space is 9025 x 14250 = 128606250 (no additional
crypto strength significance is given to this statistic – there are
that many possible test examples however for testing if needed)

The Worked Example.
Any combination of Key, Plaintext and N in their prescribed ranges can
be encrypted with theoretically unbreakable strength by means of this

Let us say that I want to encrypt the character ‘}’ that has denary
representation of 125 in my plaintext domain that consists of the
ASCII printable subset (elements 32 to 126 incl.)

Let us say also that the key that was randomly called by the program
to do this is the character ‘&’ which has denary representation 38 in
ASCII and is the Key that will be paired with ‘}’ in the forthcoming
encryption process (the random Key could be any one of the 95
possibilities in ASCII that have equal probability).

The modulus ‘N’ that was called from the array of N’s may be anywhere
between 14440 and 28690 (see previous work), let’s say it is 23210 (it
could be any number in the range – this is nothing more than a wild

[(14313 + 38) + (14313 +125)] (Mod 23210) = 5579
Ciphertext = -17631

Plaintext = -17631 + 2 x 23210 – 38 – 2 x 14313 = 125 (as the denary
representation in ASCII)

The denary representation 125 translates back as ‘}’ in ASCII as you
would expect. The reader can test as many variations of this
encryption example as you wish and let me know if you find anything
wrong with it. There are 128606250 possibilities of non-repeating
combinations of Key, Plaintext and N that may be used in any test
case, the implications to powerful cryptography are clearly evident.

This is a very efficient cipher and much more so than the companion
vector ciphers on ( ) that are also on the
table. The vector ciphers are very mathematically elegant although I
must admit the ciphertext expansion of vector cryptography type is
pretty great. Even so, I take the view that unbreakable security of
information at any cost should be the aim – that cost should not be
important at national level anyway and is not a damning criticism of
vector cryptography.

In practice the ciphertext in the example above is always negative so
I can just treat it as a positive integer while it is in electronic
email transit and multiply it by (–1) on arrival.

There are five versions of this cipher up and running – they are
available as a single download complete with compiler and PDF from my
website .

The encryption/decryption rate of the ciphers is very high on my very
ordinary home computer – it should be very much quicker in a large
commercial mini computer I think. A salient feature of this cipher
design is that it encrypts both by reading in plaintext files
character by character from any external batch file and also by
reading in directly from the keyboard in real time (impromptu
emails). The operator is a non-specialist office worker who does not
need to have any knowledge of cryptography whatever. No specialist
user-assistance such as on-site cryptographers or specially trained
personnel is required. The software could possibly become little more
than an adjunct to word processing eventually so simple and robust is
the scheme. Any data type is manageable as an external file for

This cryptography is independent of the deleterious effect of
increasing brute force capability through increasing computer power
for all time and indeed contrary to this is enhanced by the upgraded
computing power that any such advances may bring. The cipher has a
theoretical message length capability of 1073741790 characters –
nearly half a million pages of plaintext – that is for 32 bit
arithmetic computers-

There’s more to come ! - adacrypt

From: David Eather on
You need to "go back to school" and learn the basics of cryptography. If
you must, approach the material as being of a totally different subject
to what you think you already know.

As it stands your cryptography is hopelessly flawed and your lack of
knowledge makes it impossible for you to understand any corrections
(imagine if you would trying to correct someone who says "mousees" for
"mice" but who has no concept of even the existence of rules of grammar).

I suggest that you read or re-read some basic books on cryptography such
as (all!) of these

The Code Book by Singh
The Code Breakers by Kahn
Cryptanalysis by Gaines
Elementary Cryptanalysis by Sinkov

Until you do I suspect the entire Usenet group has washed it's hands of
you. There is nothing further to say.