Thread View: sci.crypt
5 messages
5 total messages
Started by cepek
Fri, 02 Oct 1992 22:29
Pseudo-one-time pads
Author: cepek
Date: Fri, 02 Oct 1992 22:29
Date: Fri, 02 Oct 1992 22:29
33 lines
2086 bytes
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
Author: Steven Bellovin
Date: Sat, 03 Oct 1992 01:59
Date: Sat, 03 Oct 1992 01:59
3 lines
644 bytes
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
Author: Robert Lewis Glendenning
Date: Mon, 05 Oct 1992 22:17
Date: Mon, 05 Oct 1992 22:17
25 lines
1705 bytes
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
Author: Ross Anderson
Date: Tue, 06 Oct 1992 11:33
Date: Tue, 06 Oct 1992 11:33
66 lines
3139 bytes
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
Author: W.A.Simon
Date: Mon, 12 Oct 1992 13:14
Date: Mon, 12 Oct 1992 13:14
68 lines
3340 bytes
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