Seed, Noise and undoing pseudorandomization

  • Thread starter Thread starter AtlasSniperma
  • Start date Start date
  • Tags Tags
    Noise Seed
Click For Summary
SUMMARY

This discussion centers on the feasibility of extracting the seed used in generating pseudorandom numbers, specifically those produced by Perlin noise. It is established that while reversing the output of a Pseudorandom Number Generator (PRNG) is theoretically possible with a sufficiently large sample size, practical limitations arise due to the long periods of modern PRNGs. The rand() function, as implemented by the Knuth algorithm on Solaris 10, has a short period, while GNU C on Linux has a period of 2,147,483,647, making it impractical to reverse engineer in most cases. The discussion concludes that without prior knowledge of the data stream, cracking the seed remains uncertain.

PREREQUISITES
  • Understanding of Perlin noise generation techniques
  • Knowledge of Pseudorandom Number Generators (PRNGs)
  • Familiarity with the rand() function and its implementations
  • Basic concepts of seed-based algorithms
NEXT STEPS
  • Research the mechanics of Perlin noise generation
  • Study the properties and limitations of various PRNGs
  • Learn about the Knuth algorithm and its implementation of rand()
  • Explore methods for analyzing and reverse engineering PRNG outputs
USEFUL FOR

This discussion is beneficial for game developers, computer graphics programmers, and anyone interested in the intricacies of pseudorandom number generation and its applications in noise generation algorithms.

AtlasSniperma
Messages
22
Reaction score
0
Okay, title doesn't give a lot of information so please bear with me here.

Forget the why, I just need to figure out how.

I would like, given an array of floats(such as those that would be generated by perlin noise) to be able to extract what seed would be used to generate said set of numbers. I only think this is possible because perlin noise uses pseudorandom number generation, and I assume since pseudorandom numbers are generated from a seed and a process it should be possible to reverse the process.

However I understand if such a prospect is just not possible with the way modern computing works.
Thank you for your time.
 
Technology news on Phys.org
In theory, yes. You can reverse engineer the output of a PRNG if you have a large sample, generally one which is larger than the cycle (period of the PRNG).
In practice if the period of the PRNG is long enough, it becomes impractical to execute. rand() as implemented by the Knuth algorithm with RAND_MAX=32767 (on Solaris 10) has a very short period. GNU C (Linux) has a period for rand of 2147483647. Neither version is considered cryptographically sound, AFAIK.

Here is a discussion on a not technical level.
https://www.reddit.com/r/askscience/comments/m6c5d/can_pseudo_randomly_generated_numbers_be_reverse/

To answer your question - I do not know to crack your data stream a priori.
 

Similar threads

  • · Replies 21 ·
Replies
21
Views
8K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
25
Views
4K
  • · Replies 0 ·
Replies
0
Views
2K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
17
Views
6K
Replies
14
Views
3K
  • · Replies 30 ·
2
Replies
30
Views
7K