NODE 7cc0fe94Gao's Chaos Cryptosystem Algorithim
"Nobuki Nakatuji" <bd1011@hotmail.com>Tue, 9 Sep 1997 12:36:45 +0800
P(i) Plaintext,C(i) Ciphertext,K(j) Key,Ch(i) Chaos signal,
L Irrational number
P(),C()-->Manage in byte,Length supposing that n byte.
K()-->Character line from ASCII CODE,Length supposing that m.
Ch(n)
begin
Xn+1=aXn(1.0-Xn)
return Xn+1
end
f(K)
begin
w = Sigmaj strtoul(K(j))j
delay=int(w/L)
return(double)(w/L-delay)
end
1.K input
2.delay generato
3.Ch(i) generato
4.P(i) acquire
5.C(i)=P(i) XOR Ch(i+delay)
6.C(i) output
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
NODE 25b8a1b5Re: Gao's Chaos Cryptosystem Algorithim
ichudov@Algebra.COM (Igor Chudov @ home)Tue, 9 Sep 1997 13:17:33 +0800
Nobuku,
Could you please write your encryption algorithm in some more formal
language (like C or Pascal) more completely? At least to me, the way you
presented it is a bit hard to understand.
Thank you
igor
Nobuki Nakatuji wrote:
>
>
> P(i) Plaintext,C(i) Ciphertext,K(j) Key,Ch(i) Chaos signal,
> L Irrational number
>
>
> P(),C()-->Manage in byte,Length supposing that n byte.
> K()-->Character line from ASCII CODE,Length supposing that m.
>
>
> Ch(n)
> begin
> Xn+1=aXn(1.0-Xn)
> return Xn+1
> end
>
>
> f(K)
> begin
> w = Sigmaj strtoul(K(j))j
>
> delay=int(w/L)
> return(double)(w/L-delay)
> end
>
>
> 1.K input
> 2.delay generato
> 3.Ch(i) generato
> 4.P(i) acquire
> 5.C(i)=P(i) XOR Ch(i+delay)
> 6.C(i) output
>
>
>
> ______________________________________________________
> Get Your Private, Free Email at http://www.hotmail.com
>
- Igor.
NODE d66cc688Re: Gao's Chaos Cryptosystem Algorithim
stewarts@ix.netcom.comWed, 10 Sep 1997 04:02:55 +0800
There has been work like this done before, though I don't have references
handy.
Check Schneier's "Applied Cryptography". It hasn't been very successful -
the output of the system looks very random, but you can predict each value
from the last, so known plaintext attack kills it. And even if the
mathematics are strong, the implementation can be weak.
At 09:18 PM 9/8/97 PDT, Nobuki Nakatuji wrote:
>P(i) Plaintext,C(i) Ciphertext,K(j) Key,Ch(i) Chaos signal,
>L Irrational number
>
>P(),C()-->Manage in byte,Length supposing that n byte.
>K()-->Character line from ASCII CODE,Length supposing that m.
>
>Ch(n)
>begin
>Xn+1=aXn(1.0-Xn)
>return Xn+1
>end
How long are Xn and Ch(n)? Double (64-bit IEEE floating point)?
Is 0<Ch(n)<1 ? (I assume yes...)
How long is L (since a true irrational is infinitely long)?
Is L part of the key, or shared by everybody?
>f(K)
>begin
>w = Sigmaj strtoul(K(j))j
>delay=int(w/L)
>return(double)(w/L-delay)
>end
How is f(K) used? Initialize Ch(0)?
What is strtoul? String to Unsigned Long?
If size(w) == ul == 32 bits, you only have a 32-bit key, too weak.
If size(w) == 64 bits, maybe you have a chance.
Be sure each piece of K(j) is long enough - adding a bunch of
short numbers together does not produce a long number.
An MD5 hash would be much better.
>1.K input
>2.delay generato
>3.Ch(i) generato
>4.P(i) acquire
>5.C(i)=P(i) XOR Ch(i+delay)
>6.C(i) output
How do you XOR a plaintext byte with (double) Ch(i)?
Do you really just use 1 byte of the Ch(i)? Then you may have a chance.
If you use all the bits of Ch(i), then known plaintext lets you
take C(i) XOR P(i) == Ch(i), which lets you generate Ch(i+1)....
You may not know the key, but you don't need to if you know the function.