Path: cactus.org!milano!cs.utexas.edu!usc!rpi!news-server.csri.toronto.edu!
+     bonnie.concordia.ca!clyde.concordia.ca!altitude!elevia!alain
From: alain@elevia.UUCP (W.A.Simon)
Newsgroups: sci.crypt

Subject: Re: Braided streams
Message-ID: <1991Jun24.033238.6456@elevia.UUCP>
Date: 24 Jun 91 03:32:38 GMT
References: <1991Jun23.042445.9676@elevia.UUCP> 
Organization: The W.A.Simon Wild Life Fund
Lines: 196

In 
consp04@bingsuna.bingsuns.cc.binghamton.edu (Dan Boyd) writes:
>In article <1991Jun23.042445.9676@elevia.UUCP> 
>alain@elevia.UUCP (W.A.Simon) writes:
>> 	   At best, you will match a plaintext and a key to a given ciphertext,
>> 	   but you will have achieved no progress whatsoever towards breaching
>> 	   the security of the link, because a) you knew and expected the
>> 	   plaintext, b) the key it does allow you to extract won't be used
>> 	   right away, but at an undetermined time in the futur, depending on
>> 	   the available store of key material, and on the volume of traffic,
>> 	   c) you have no certitude that the known plaintext was in fact sent
>> 	   at that particular time, since you can retrieve it from any other
>> 	   traffic intercept just as well anyway.
>	You don't understand what a known-plaintext assumption is.
>It means, "Not only do I know that they sent this message though the
>pipeline at some time, I also know when."  It means you know where
>they enciphered that plaintext.

	In a typical known plaintext attack, you have a good idea of
	all the pertinent details and, possibly, a perfect knowledge
	of what the plaintext was to be.  This means that when a
	ciphertext comes through, you can try to find the key by working
	from the plaintext.  That key being a one-time pad, in the case
	of braided systems, you have learned nothing that will be useful
	next time around.  BTW, yes, I know what a plaintext attack is.  

	As to using the known plaintext attack to extract the key management
	stream, read on, for exciting news...

>	With your system, that means you can recover the key stream
>for that stretch of the message.

	Granted, if you know that you are dealing with two streams
	only; but this decison is not part of the system, it is
	dependant on the key.  And even then, we have shown that
	a sufficiently long ciphertext can be made to give out any
	arbitrary plaintext we might want (see below for reference).

	But, let's go back to the known plaintext attack for a minute.
	The French Ambassador in London is given the text of a prepared
	statement by HM's G, regarding the adoption of a common currency.
	The Elint people hiding somewhere in Scotland, where they share
	NSA facilities, know the text, and they expect it to come on
	the air.  In the meantime, in the French Embassy, Mrs Embassador
	finds out she won't have enough Roquefort, and that Champagne
	stocks are dangerously low.  She sends an order to Fauchon, in
	Paris, through the Quai d'Orsay.  Her message, you can believe
	me, will go before anything else does.  Since she is passing an
	order, and the diplomatic pouch is not due for another three days,
	she does her full shopping at one shot.  It is a rather long message.
	It is intercepted, and the spooks treat it as if it were the real
	McCoy.  Lo and behold, it jives!  The Braided Stream system strikes
	again: for any target plaintext, one can reconstruct a key that
	will allow for its extraction from the cipher text (message length
	allowing).  You get it?  Whatever ciphertext you intercept, it will
	allow a match with your "known" plaintext.  Even random noise would.
	So the "key", that they think they have recovered, is useless.  I will
	refer you to <1991Jub17.155825.1019@thunder.mcrcim.mcgill.edu>, in
	sci.crypt, for a convincing demo.

	In an added twist of fate, the cipherclerk in the Embassy decides
	the two messages are equally important (smart kid, he'll go far),
	so he decides that instead of noise in the second and third channel
	the second message will take another channel, and noise only one.
	There will be at least two plaintext streams braided together with
	some noise and some key management material. 

	So we now have only one ciphertext transmitted within the time frame
	of our known plaintext attack parameters.  The opposition are now
	certain they have extracted the real key when, in fact, it is a mix
	of the key and the shopping list.  At this point not only they could
	be fooled by the fact that they think they now own the real key, but
	they could also be fooled by the fact that what they think is the key,
	is only an artifact of the system.  Things are not getting any better
	for them.

>> 	   To breach the security, you would have to hit on a correct plaintext
>> 	   and key combination and keep hitting correctly until you intercept
>> 	   the portion of message where the compromised key starts being used.
>> 	   A tall order.
>	No, you don't have to keep hitting correctly.  You can just
>hop along trying the key stream you found until you find a place where
>you start recovering plaintext with it again.  You could go along for
>days until it matches again, but you would eventually find a match.

	In view of what I just explained above, you might want to
	rethink this argument.

>> 	   I don't, so far, provide a satisfying key management system.
>> 	   I do provide a channel for doing it.  That's also part of the
>> 	   novelty.  I may not have to "pin myself down", since any
>> 	   system that uses a fully secure seed, may be used to generate
>> 	   a fully secure sequence, as long as the choice of algorithm
>> 	   used to expand the seed is itself dependant on the key.  In
>> [ ... ]
>	You're breaking the fundamental assumptions here.  All these
>many different ideas for getting sequences of numbers are part of the
>SYSTEM, not part of the key.
>                              You have to assume that the enemy knows
>what those tokens mean.  When you send a token through saying 'use the
>Nth prime number' you have to assume the enemy knows what that token
>means.
>	An analyst of your system has to assume that the enemy knows
>what the sequences, algorithms and combinations are, because they're
>not part of the KEY, they're part of the SYSTEM.

	Normally, you would be right.  But say we have a long list of
	recipes (say 127).  Since our language uses up all possible values
	(by design) of the seven (arbitrary, but reasonable choice) bits
	[0-127], there is no unused bit combination to give away the
	presence of a key management stream.  Each recipe may require one
	or more parameter; for the same reasons as before, we structure the
	parameters so their value use up all possible values of the scale
	we allow them (say [0-3] if we allow 2 bits for the first parameter,
	and [0-7] if we allow 3 bits for the second parameter).  So, now we
	have a language that's part of the system, but the program is a
	string borrowed from the key stream.  The key stream is used up to
	drive the braiding algorithm, AND to generate a program for the
	purpose of key management.  This should use up the key stream quite
	rapidly, but now we have ways to refresh it in an unlimited
	fashion.  We have fallen out of the system, it is all key driven.
	The opposition doesn't have a leg to stand on.

	If that was not clear: I was trying to say that one could not
	find a subset of the stream that could match a key management
	stream any better than any other subset.  The key management
	stream is not distinguishable from the rest of the stuff, be it
	noise, or plaintext.

>> 	   You are confusing a book, the text of which educated guesses
>> 	   can be made about, and files containing random garbage, which
>> 	   you could try to grok out until you are blue in the face.
>	Your idea of 'random garbage' is incorrect.  Random number
> [ ... ]

	Give me credit for knowing the difference between pseudo-random
	and random, please.

> [ ... ]
>	So then we keep trying that stretch of recovered key against
>everything that comes though the net.  Eventually we hit a point where
>that key comes around again in your key-rotation sequence, and we're
>reading more, different plaintext.  We can again guess what came next
>in the plaintext, with some degree of accuracy, which means we can
>again recover some more key material.  We keep going on like this,
>accumulating key material.

	You would have so many plausible keys that they'd come out of
	your Cray's ears... forget it.  For each bit, you'd have to
	slide a window, and apply all you possible keys...  and at each
	bit, your number of possible keys would increase.  Good luck.

>>          And the ciphertext being longer (by an amount
>> 	   that varies according to the statistical profile of the
>> 	   key) than the plaintext, this is HARD work for the
>> 	   opposition.
>	It's not NP-hard.  It's not hard enough to make it unfeasible.

	I was tempted to say it is NP-hard, but my academic background
	is rather weak around these edges...  I'll let others decide.

>>    > (Jerry Leichter) I don't remember which cryptographer first
>>    > stated that he would never accept a new cryptosystem from
>>    > anyone who had not already broken a strong one, but this is (in
>> 	   Some great people have said a number of equally self serving
>> 	   things in the past.  I try to avoid adopting this kind of
>> 	   inbred thinking.
>	You're calling this statement self-serving.  You're calling
>the cryptographic community inbred.  You're arguing emotionally here.
>This doesn't inspire confidence.

	I am not calling the profession inbred.  You are not deciphering
	my mind here, so I would appreciate if you kept your "educated"
	guesses for yourself.  Read my words: "inbred thinking".  If the
	shoe fits, wear it, but don't pretend it fits the whole trade.
	The community as a whole doesn't necessarily accept this smart
	aphorism as the gospel, nor does it need dogmas.  That quote is
	dogma.  No scientific trade can afford dogma.  So who is being
	emotional?  Should this attempted manipulation inspire confidence?
	What is your particular problem here?

> [ ... ]
>	What does the ciphertext look like if I send a block of nulls?
>	And what does it look like if I send, with the same key, a
>block where all the bits are 1?

	A block of nulls/ones would result in a definite skewing
	of the statistical profile, for a burst of bits as long as
	the ciphertext needed to include the braid.  But the larger
	the number of streams, the least sensitive.  However, remember
	that our noise channel(s) could contain bursts of nulls, or
	bursts of ones, as well; so the opposition is up shit creek again. 

>  Dan
-- 
William "Alain" Simon
                                                   UUCP: alain@elevia.UUCP