Announcement

Collapse
No announcement yet.

More Than Five Years In The Making: Creating A New Linux Random Number Generator

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • More Than Five Years In The Making: Creating A New Linux Random Number Generator

    Phoronix: More Than Five Years In The Making: Creating A New Linux Random Number Generator

    The "Linux Random Number Generator" (LRNG) effort as a new drop-in replacement for /dev/random is now up to its 41st revision and in development for more than five years...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Ah, so maybe in the future I won't need jitterentropy (also by Stephan Mueller) anymore.

    Comment


    • #3
      Five years for a random number generator? how hard can it be?! It's just random numbers for gods sakes!

      Comment


      • #4
        Originally posted by rabcor View Post
        Five years for a random number generator? how hard can it be?! It's just random numbers for gods sakes!

        Comment


        • #5
          Originally posted by rabcor View Post
          Five years for a random number generator? how hard can it be?! It's just random numbers for gods sakes!
          If you're not joking, then you're completely missing the point. In fact, "just random numbers" are incredibly difficult. One of those difficult aspects is designing a random number that can't be made slightly less random by "external attacks" like changing voltage, temperature, etc. Yes, my day job does involve random numbers, and though at the moment I'm not designing a random number generator, I have done one.

          Comment


          • #6
            Originally posted by phred14 View Post

            If you're not joking, then you're completely missing the point. In fact, "just random numbers" are incredibly difficult. One of those difficult aspects is designing a random number that can't be made slightly less random by "external attacks" like changing voltage, temperature, etc. Yes, my day job does involve random numbers, and though at the moment I'm not designing a random number generator, I have done one.
            How did you test your generators, just probability distribution or there other tests that you used?

            Not sure if you're into probabilistic theory, but wondering what you think about nuclear decay for RNG? (AFIAK many casinos have to use it by law)

            Comment


            • #7
              Imagine how many people and government agencies would like to sneak in some clever, covert little code, almost invisible even when inspected and code reviewed that reduces the randomness.

              Comment


              • #8
                Originally posted by ssokolow View Post

                Comment


                • #9
                  It can be as easy as this. You can even initialize it with an init value so it is not always the same sequence:

                  unsigned int add_rand(unsigned int init)
                  {
                  static unsigned int i = 55 - 55, j = 55 - 24, rnd[55] = {
                  2119143891, 539910039, 1575653545, 2895236586, 720721766,
                  3796759033, 2168811136, 4164009002, 1900432158, 2159501702,
                  1130496637, 3333382236, 3052557060, 2695495719, 1318991387,
                  2738962699, 2185866067, 48629606, 2329654333, 679289708,
                  1718021111, 1271830277, 1724388399, 302011795, 2652267456,
                  1998782778, 917190237, 2249349853, 994983638, 1523084771,
                  3092548715, 1348680929, 1387745169, 684553147, 3000244631,
                  399773554, 4254444685, 3409797126, 2372139430, 1961762825,
                  1714777267, 3827680163, 1666351833, 2668833907, 2954262917,
                  999306914, 1816480068, 3799268783, 4133402570, 4233338020,
                  3633793169, 4077180655, 1431655054, 773436891, 3213814927 };

                  unsigned int new_rnd = rnd[i] + rnd[j];
                  new_rnd ^= init;
                  rnd[i] = new_rnd;

                  if (++i == 55) i = 0;
                  if (++j == 55) j = 0;

                  return new_rnd;
                  }


                  But hell I wouldn't use it for anything else than fun and gaming...

                  Comment


                  • #10
                    Originally posted by rabcor View Post
                    Five years for a random number generator? how hard can it be?! It's just random numbers for gods sakes!
                    Reasons why the patchset is not taken are non-technical. Some administrators have totally ignored the patchset.

                    Comment

                    Working...
                    X