🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

5 total messages Started by cepek Fri, 02 Oct 1992 22:29
Pseudo-one-time pads
#1286
Author: cepek
Date: Fri, 02 Oct 1992 22:29
33 lines
2086 bytes
I have been thinking about pseudo-one-time pads (POTP) lately.

Assume you have a POTP generator (some new algorithm).  Let's say it
has a period of 2^64 (= 1.8e19) -- after that many output bytes the
pattern repeats.  The POTP seed maps to a starting point in the sequence
in a "complex" manner. 

Question 1:  Is 2^64 "enough"?  I realize this answer depends on many
things (cracking computer horsepower and memory, desired level of
security, number of years of intended use, computational complexity of
the POTP, etc.). Reasonably qualified answers like "it would take a
Cray-XMP about n years to evaluate 25 parallel multiply-add PRNGs 2^64
times" would be constructive here. 

Next, assume that we do not have access to any "real" random source.  By
this I am forcing the POTP seed value to be based only on user key(s)
and/or the message itself. 

Question 2:  With these two assumptions, how can such a POTP algorithm
be seeded "strongly"?  [An obvious example of weak usage: hashing a user
key into the (same) seed for each message.]  Are there good ways to
construct a seed given (only) a user key and the message text?

(Note: I know that keypress timings can be used to generate a very long,
random "message key", but I am excluding this option with my second
assumption above.) 

Further discussion and comments are hereby solicited.
_______________________________________________________________________
Mike Cepek, Senior Software Design Engineer     Internet: CEPEK@MGI.COM
Management Graphics, Inc., 1401 E. 79th St., Minneapolis, MN 55425  USA   
Front desk: +1 612/854-1220   My desk/Voice mail: 851-6112   Fax: -6159
\______PGP Public key available using FINGER or by email request______/
Re: Pseudo-one-time pads
#1298
Author: Steven Bellovin
Date: Sat, 03 Oct 1992 01:59
3 lines
644 bytes
The key, so to speak, to this scheme is how you generate the pseudo-random
numbers.  When I need good random numbers, I run DES in output feedback
mode.  Of course, the security of this PRNG is exactly that of DES itself.
Re: Pseudo-one-time pads
#1342
Author: Robert Lewis Glendenning
Date: Mon, 05 Oct 1992 22:17
25 lines
1705 bytes
There are two issues here: 1) The academic consideration of RNGs with
"truely" random distributions and 2) The consideration of being able to
predict the random number series.

All of the academic consideration of RNGs I have seen focus on 1). 2) is
necessary for using them in an encryption system. I have made my RNGs
pretty unpredictable by running 32 different Additive Congruential Method
RNGs, and only selecting one bit of each for each 32-bit number. I do so
by randomly (another RNG) selecting the particular bit from each. Of course,
this is computationally extremely expensive.

I believe that the OTP using itis pretty safe. However, safety can be improved
by compressing the oriignal file and then distributing it randomly through
a random number file.

The compression removes redundancy in the signal. The distributing it randomly
through a random number file hides the signal in noise, similar to spread
spectrum transmission.

However, none of this works if the opposition can predict the random number
series.

-- 
Lew Glendenning		rlglende@netcom.com
"Perspective is worth 80 IQ points."	Nils Bohr (or somebody like that).
Re: Pseudo-one-time pads
#1361
Author: Ross Anderson
Date: Tue, 06 Oct 1992 11:33
66 lines
3139 bytes
In<1992Oct5.221733.27777@netcom.com>, rlglende@netcom.com (Robert Lewis 
Glendenning) writes:

>                                                    I have made my RNGs
> pretty unpredictable by running 32 different Additive Congruential Method
> RNGs, and only selecting one bit of each for each 32-bit number. I do so
> by randomly (another RNG) selecting the particular bit from each. Of course,
> this is computationally extremely expensive.
>
> I believe that the OTP using itis pretty safe.

I don't.

If you're using a standard linear congruential generator as supplied with
the average compiler, then it will have 32 bits of internal state and we 
can assume the attacker knows the constants (the a, b such that x_{n+1} = 
ax_{n} (mod b)).

Now guess the internal state of the generator which you use as a pointer: 
this takes on average 2^{31} tries. For each guess, do the following:

  Take about 1500 bits of keystream and from it pick, for the first of the
  32 target generators, 40 bits which would have come from that
  generator (if our guess was right).

  Use the first 32 of these bits to solve for the target generator's state 
  (note x_{n+k) = ka.x_{n} (mod b)).

  Check the next 8 bits to see if they're consistent with your reconstruction. 

    If not, go to the next guess.
    If they are, go to the second target generator

     . . .

  If no contradiction is found despite reconstructing all 32 target
generators,   
  stop.

The above can be optimised a lot - with more maths, you can discard lots of
guesses at a time. 

It can get slightly messier if the generators' recurrence relations are 
unknown, but even then it's still reasonably tractable. Even with only the 
known optimisations, you'd have to put at least 80 bits of internal state 
in each of your component generators for the above analysis to become
unfeasible. Even then, I'd be nervous about someone coming up with a better
optimisation.

This is a variant of an attack on multiplexed shift register sequences which 
I thought up in 1986 and was allowed to send off for publication in 1989;

	Cryptologia vol XIV no 3 (July 1990) pp 285 - 288
	`Solving a class of stream ciphers' 
	RJ Anderson

There's a more general (but slower) attack in:

	Proc Crypto 89 (Springer LNCS 435) pp 164 - 174
	`On the Linear Consistency Test (LCT) in Cryptanalysis'
	KC Zeng, CH Yang, TRN Rao

Stream ciphers are fun - why do so few Americans do any work in the field?
Almost all the research seems to come from Europe and China!

Ross
Re: Pseudo-one-time pads
#1121
Author: W.A.Simon
Date: Mon, 12 Oct 1992 13:14
68 lines
3340 bytes
In <1992Oct5.221733.27777@netcom.com>
rlglende@netcom.com (Robert Lewis Glendenning)
writes:
> There are two issues here: 1) The academic consideration of RNGs with
> "truely" random distributions and 2) The consideration of being able to
> predict the random number series.

	For the sake of accuracy:

	(1) is it statistically random?
	(2) is it predictable?

	if (1) is not true, the chances for (2) becoming
	true increase.  This is the academic argument.

	The pragmatic argument says it is possible to
	generate a stream for which (2) is true, without
	consideration for the truth of (1).  But the fact
	is that if (2) is true, you can bet that (1) is
	likewise.  It won't be an accident.

> All of the academic consideration of RNGs I have seen focus on 1). 2) is
> necessary for using them in an encryption system. I have made my RNGs
> pretty unpredictable by running 32 different Additive Congruential Method
> RNGs, and only selecting one bit of each for each 32-bit number. I do so
> by randomly (another RNG) selecting the particular bit from each. Of course,
> this is computationally extremely expensive.

	You have 32 PRNG using different parameters (but same algorithm).
	You pick 1 bit from each, but in RANDOM order.  How random?  Is
	it another PRNG?

	You realize that if each PRNG is not cryptographically secure in
	its own right, the 32 are not any more secure, unless you have
	a "true" random source to pick your PRNG sequences.  In which
	case you don't need the 32 PRNGs.

> I believe that the OTP using itis pretty safe. However, safety can be improved
> by compressing the oriignal file and then distributing it randomly through
> a random number file.
> [ ... ]

	PRNGs can be usefull as key generators, if they are used
	to pick material from a non random source, but nevertheless
	unknown to the opposition.  Take one PRNG and use the result
	to index into a string of sufficient length (say, some book
	on CD).  As long as you don't divulge the source of your raw
	material (and change it often) you are in clover.  But: how do
	you distribute the key?  Do you phone your covert correspondant
	and tell him to go buy the CD?  Aside from the annoying security
	considerations, can you be sure the two of you will get the exact
	same text (editions vary from country to country)?

	But why bother with PRNG's of you have access to long files
	you can share with your correspondants.  The files themselves
	are good enough as a source of key material.

	Suppose you have enough raw material to make two files.  For each
	character of each file generate a parity bit.  If the two bits
	are different use the byte from the first file, else use the
	byte from the second file.  Advance to next byte of each file.
	Or you could simply use the parity bits as your OTP key.
	These are just two samples of the many ways...



--
 Alain
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads