It's a matter of periods in the sequence of numbers generated by the PRNG. If the output of the PRNG has a single period that is of length 2^n, then you can avoid repetition by appropriately recording the section that you have already used. Thus if you start from 0 and get the first time to g1, the next time you start from g1 and get to g2, etc. etc. until you have used up the entire period (keeping a count of the numbers generated). One special kind of PRNGs that definitely satisfy the mentioned property of maximal period length are based on the so-called permutation polynomials mod 2^n. I used it in one of my software (s13.zetaboards.com/Crypto/topic/7355166/1/), where a literature reference to permutation polynomials as well as a practical implementation of PRNGs based on them are given.
Mok-Kong Shen
- 1.3k
- 1
- 11
- 15