From: Francois Grieu on
On 03/06/2010 20:24, Phoenix wrote:
> The algorithm is:
>
> x_n+1 = FRAC( x_n ( x_n + b_n ) +c )
>
> b=1,2,3�2048
> c=(0;1)
>
> I ask criticism on the safety, randomness quality, speed performance,
> non linearity, crypto
> analisys, Discrete Logarithm Problem (DLP), etc.
>
> For more go to: http://www.number.com.pt/index.html

Let's replace the ambiguous notation x_n+1 by x{n+1}

Define the integers
k{n} = FLOOR( x{n}*(x{n}+b{n}) + c )
such that the recurrence becomes
x{n+1} = x{n}*(x{n}+b{n}) + c - k{n}

For all n
x{n+1} = x{n} *(x{n} + b{n} ) + c - k{n}
x{n+2} = x{n+1}*(x{n+1}+ 1 + (b{n}%2048) ) + c - k{n+1}

By subtracting the two, it comes that (within rounding errors and
possibly a mistake that can be fixed)
y{n} = x{n+1}*(x{n+1}+2+(b{n}%2048))-x{n+2}-x{n}*(x{n}+b{n})
is an integer with absolute value no more than 2050.

If the b{n} are known, from x{n} x{n+1} x{n+2} we can compute
z{n} = FRAC(y{n}+2050.5) // 2050 is here to avoid sign issues

If x{n} was a true Floating Point Random Number sequence uniformly
distributed on [0..1[, then z{n} would be a (marginally worse) one.

But with the Conjectured Cryptographically Secure PRNG proposed, z{n}
will be close to 0.5, always within a few thousands EPSILON of the
floating point type used. A plain statistical test of the standard
deviation of z{n} over just a handful of values will immediately fail.

If for some reason we had lost track of the b{n}, we can make that test
for each of the 2048 possible b{n} at the start of the sample, and
declare that the CSPRNG fails if one of the 2048 test fails (to a
confidence level 2048 times tighter than for a single test).


This illustrates that typically, a simple Floating-Point PRNG, if based
on floating point calculations only, will fail a specially-crafted
statistical test, and thus must not be considered a Cryptographically
Secure PRNG.


Fran�ois Grieu
From: Phoenix on
On 4 Jun, 17:16, Francois Grieu <fgr...(a)gmail.com> wrote:
> On 03/06/2010 20:24, Phoenix wrote:
>
> > The algorithm is:
>
> > x_n+1 = FRAC( x_n ( x_n + b_n ) +c )
>
> > b=1,2,3 2048
> > c=(0;1)
>
> > I ask criticism on the safety, randomness quality, speed performance,
> > non linearity, crypto
> > analisys, Discrete Logarithm Problem (DLP), etc.
>
> > For more go to:http://www.number.com.pt/index.html
>
> Let's replace the ambiguous notation  x_n+1  by  x{n+1}
>
> Define the integers
>   k{n} = FLOOR( x{n}*(x{n}+b{n}) + c )
> such that the recurrence becomes
>   x{n+1} = x{n}*(x{n}+b{n}) + c - k{n}
>
> For all n
>   x{n+1} = x{n}  *(x{n}  +      b{n}       ) + c - k{n}
>   x{n+2} = x{n+1}*(x{n+1}+ 1 + (b{n}%2048) ) + c - k{n+1}
>
> By subtracting the two, it comes that (within rounding errors and
> possibly a mistake that can be fixed)
>   y{n} = x{n+1}*(x{n+1}+2+(b{n}%2048))-x{n+2}-x{n}*(x{n}+b{n})
> is an integer with absolute value no more than 2050.
>
> If the b{n} are known, from x{n} x{n+1} x{n+2} we can compute
>   z{n} = FRAC(y{n}+2050.5)   // 2050 is here to avoid sign issues
>
> If x{n} was a true Floating Point Random Number sequence uniformly
> distributed on [0..1[, then z{n} would be a (marginally worse) one.
>
> But with the Conjectured Cryptographically Secure PRNG proposed, z{n}
> will be close to 0.5, always within a few thousands EPSILON of the
> floating point type used. A plain statistical test of the standard
> deviation of z{n} over just a handful of values will immediately fail.
>
> If for some reason we had lost track of the b{n}, we can make that test
> for each of the 2048 possible b{n} at the start of the sample, and
> declare that the CSPRNG fails if one of the 2048 test fails (to a
> confidence level 2048 times tighter than for a single test).
>
> This illustrates that typically, a simple Floating-Point PRNG, if based
> on floating point calculations only, will fail a specially-crafted
> statistical test, and thus must not be considered a Cryptographically
> Secure PRNG.
>
>   Fran ois Grieu

Thanks Grieu, for your time.
That is what I call a nice/usefull criticism here.
I will study with carefull your post.

Thanks again.
From: Maaartin on
On Jun 4, 4:20 pm, Phoenix <ribeiroa...(a)gmail.com> wrote:
> IEEE 754-2008 is sufficient for all areas of science, except for
> crypto?

The standard defines a lot of formats and a couple of modes. If *all*
existing HW implemented it all and all compiler supported *all* of
them, it would be nice, but this is obviously not the case. If there
were a single choice which was both supported everywhere and the most
efficient one, it could suffice. But there's none. Moreover, the most
important and obundant HW is neither my nor your PC, but some tiny
devices lacking FP at all.

On Jun 4, 5:44 pm, Mok-Kong Shen <mok-kong.s...(a)t-online.de> wrote:
> Others may certainly have different opinions. I personally think though
> that constraining communication partners to use hardware that produce
> identical sequences isn't a too serious issue in many practical cases.

It is. Just think about https, would you be happy if you couldn't
access your bank just because of them using other HW? And what about
secure email, etc.?

> If your scheme turns out to be superior in security (and maybe also
> processing efficiency) aspects, it would surely be a good contribution
> to cryto in my humble view.

There's no way how to show that something is secure except by a very
time-consuming analysis by many good cryptographers. That's why there
is only a couple of widely accepted ciphers, hashes, etc. Spending so
much time on analysis of something not generally usable is loosing
time.
From: Mok-Kong Shen on
Maaartin wrote:

> On Jun 4, 5:44 pm, Mok-Kong Shen<mok-kong.s...(a)t-online.de> wrote:
>> Others may certainly have different opinions. I personally think though
>> that constraining communication partners to use hardware that produce
>> identical sequences isn't a too serious issue in many practical cases.
>
> It is. Just think about https, would you be happy if you couldn't
> access your bank just because of them using other HW? And what about
> secure email, etc.?

Note the word "many" that I wrote. Consider e.g. the case where
different branch officies of a firm are to confidentially communicate
with one another. If that involves a PRNG that is based on computations
in R, then almost surely the firm could afford to purchase compatible
hardware, if not exactly identical hardware, for that purpose. In
more general situations, Intel-compatible PCs are sufficiently
"ubiquitous" and cheap, so that the problem in question could be
considered to be practically solved, I would say. Certainly, if
one partner uses Intel hardware and the other hardware from SUN,
I don't know for sure but I guess there could be incompatibility
problems. But that's outside of the "many" I meant.

M. K. Shen

From: Phoenix on
On 4 Jun, 20:48, Mok-Kong Shen <mok-kong.s...(a)t-online.de> wrote:

> Note the word "many" that I wrote. Consider e.g. the case where
> different branch officies of a firm are to confidentially communicate
> with one another. If that involves a PRNG that is based on computations
> in R, then almost surely the firm could afford to purchase compatible
> hardware, if not exactly identical hardware, for that purpose. In
> more general situations, Intel-compatible PCs are sufficiently
> "ubiquitous" and cheap, so that the problem in question could be
> considered to be practically solved, I would say. Certainly, if
> one partner uses Intel hardware and the other hardware from SUN,
> I don't know for sure but I guess there could be incompatibility
> problems. But that's outside of the "many" I meant.

M. K. Shen

At this point, my question is:

The incompatibility bettween i.e. (Intel/SUN) communications, is for
all areas (Chemistry, Trigonometry, Biology, Geometry, etc) or only
for crypto?
If answer is only for crypto, what is the solution to pass accurate
and compatible values in R from one system to another?