Newsgroup: it.comp.sicurezza.varie
Titolo: WEAK4-EX -- Another Poorman's 56-bit Data Encryption Algorithm

Recently I have designed two 56-bit algorithms, WEAK2-EX and WEAK3-EX,
with which the user can arbitrarily scale up the processing time and
the algorithm initialization time respectively such that the expected
average time for brute forcing can be rendered beyond any practically
infeasible bounds. (The number of rounds in these algorithms can be
suitably chosen such that brute forcing would be the only viable means
of analysis.) Thus, in exchange for some tolerable higher time
expenditure, the user can manage to obtain adequate security despite
the severe limitation posed by the forthcoming 56-bit key length
restriction.
The present algorithm, WEAK4-EX, is based on the same paradox-sounding
paradigm 'security through inefficiency' as its two predecessors but
extends the 'inefficiency' into an additional 'dimension', namely the
volume of the ciphertext. It has in total three user choosable scaling
factors of processing time. The first is the same as one of the two
employed in WEAK2-EX and controls the time rate of pseudo-random
number generation of the PRNG used. The second scaling factor
determines the number of pseudo-random bits thus obtained that are to
be XORed with each single bit of the plaintext. (In WEAK4-EX the
plaintext is treated as a bit stream.) The third scaling factor
determines (approximately) by how much the ciphertext is to be
expanded through filling it with pseudo-random bits at positions that
are determined by the PRNG.
Let input() designate the function delivering the next bit from the
plaintext and scf2 and scf3 be the second and third scaling factor
mentioned above. Then the encryption with WEAK4-EX can be conceptually
(not 'strictly speaking', see below) described by the following very
simple probabilistic automaton, where the function pbit(m) denotes the
result of XORing of m*32 pseudo-random bits obtained from the PRNG,
i.e. their parity:
      do
        with probability 1/scf2:
           output( input() XOR pbit(scf3) );
        with probability 1 - 1/scf2:
           output( pbit(1) );
      od;
In the implementation we use our PRNG (not a TRNG) to determine the
transition of the automaton. Thus the actual process is not random
but only a 'simulation' and is in fact deterministic, being governed
by the seed of the PRNG. For otherwise the receiver of the message
would have a hard task to do the decryption. Thus WEAK4-EX is a
pseudo-randomized encryption. It is not a (true) randomized
encryption such as the time-honoured but apparently now disfavoured
homophone cipher, where the decision of the choice of the homophones
can be made e.g. through casting of dices. (I suggested recently
though that homophones could once again be interesting in the light
of the 56-bit restriction.)
Through the (simulated) probabilistic nature of the algorithm the
analyst has the essential difficulty to identify which bits of the
ciphertext are information-bearing, i.e. encrypted plaintext bits,
and which are the filling nonsense bits. Since the information-bearing
bits are themselves obtained through XORing the plaintext bit with a
large number (some multiples of 32) of pseudo-random bits, brute
forcing would be the only viable method of attack if the factors scf2
and scf3 are adequately chosen. The price that the user has to pay
through the scaling factor scf3 is that the ciphertext is about scf3
times as large as the plaintext and hence incurs correspondingly
higher transmission expenditure. However, if the plaintext is fairly
short, which is very often likely to be the case in a poorman's
environment, such expansion of the ciphertext, if not carried to the
extreme, may well be sensible. In other cases, one can simply set
scf3=1 and exclusively employ the other two scaling factors to achieve
a sufficient level of security.
An implementation in Fortran 90 and an binary executable file for PC 
can be downloaded via my main Web page:
 
http://www.stud.uni-muenchen.de/~mok-kong.shen/
I am indebted to TPS for discussions leading to the present work.
Constructive critiques, comments and suggestions for improvements
are sincerely solicited.
M. K. Shen
-------------
NOTE: The program codes of WEAK2-EX and WEAK3-EX have been revised
(with an error reported by CWL and CK corrected). In the zip-file
for download, all three encryption programs and their binaries are
included.

Sorry for a typing error in text. Corrected:
      do
        with probability 1/scf3:
           output( input() XOR pbit(scf2) );
        with probability 1 - 1/scf3:
           output( pbit(1) );
      od;
M. K. Shen

:-) ..  ma questo scherza o dice sul serio ???

csf...@polaris.it
 wrote:
 >:-) ..  ma questo scherza o dice sul serio ???
Dice sul serio, se ne e` parlato su cypherpunks e non mi risulta che lo
abbiano linciato.
Che poi sia utile aggirare la legge in questo modo e` discutibile.
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]
Marco | * The Internet is full. Go away.  -- Joel Furr *