The following is a specification proposal for a new pseudo-random character generator (PRCG), tentatively called the “Tiny Tots PRCG”. This specification is to be considered open and royalty free; everyone is free to implement and extend this specification, although attribution is appreciated. It usefulness, however, may be limited and may only be of interest to cryptographic and mathematical academics or really bored parents.
- An organic, biological processing core based on an early revision of the Homo sapien architecture, commonly referred to as a “toddler”. The processor must be upgraded from the base “infant” model, but must not have been upgraded to the “grade schooler” patch.
- A significant amount of liquid. Water (dihydrogen oxide or hydrogen hydroxide) is highly recommended, although any fluid that will not cause damage to the processor core or the other physical components of the system may be a possible substitute. Excess liquid is not recommended as it increases the risk of permanent damage to the processor. Be aware that the original and final volumes of liquid may vary during the process due to evaporation, splashing, ingestion, and liquid waste excretion.
- A collection of foam characters and/or digits comprising the alphabet from which random characters will be selected.
- A entropy pool capable of containing the processor, the liquid, and the character set. Material composition is not significant so long that characters from the character set immersed in the liquid will be able to adhere to the side of the pool if placed there.
- Fill entropy pool with liquid. Adjust temperature for optimal operating environment for processor core. (Over- or under-heating may result in processor malfunction.)
- Introduce character set to entropy pool. Stir vigorously.
- Introduce processor to entropy pool. Note that some processors function well in the entropy pool environment while others produce various errors. Performance may vary based on processor model.
- Optional: introduce processor-safe detergent and remove dirt and debris for the outer casing. Periodic cleaning will improve overall processor performance over time.
- Initiate the pseudo-random character generation process by removing one character from the entropy pool and placing it on the casing of the pool. This casing will act both as a display device and as a character array to hold the final generated value. The initial character in the array will serve as the seed value.
- Encourage the processor to repeat the process. Additional seed characters may be required to initiate independent processing, although be aware that a larger seed will result in less overall entropy in the final result.
- Allow processor to operate on the task. The removal of characters from the result array and reintroduction to the entropy pool is expected, encouraged, and pretty much unavoidable. This should improve the entropy of the final value.
- Continue process until the processor swaps threads for another program, begins to malfunction, or it is time for the processor’s sleep cycle. Be aware that if process swapping occurs, the processor may swap back to the PRCG task unaided. Once execution is deemed complete, extract the processor from the entropy pool and remove excess liquid. If characters remain in the pool, leave them; do not introduce them to the result array or you may taint the entropy.
- Secure the processor to ensure proper ongoing function. Never leave the processor unattended without placing it in hibernation mode.
- Once the processor is secure and you have an opportunity to return to the entropy pool, read and record the result from the character array. Be aware that characters will likely be oriented in unconventional and non-standard notation. Pick one corner of the display device and read the values in an organized fashion. For example, pick the upper left corner and read the characters left to right, returning to the left at the end of a row and repeating with the next row. Continue until all characters are read from the array. Ignore any characters that remain in the pool.
- Store the result for later use.
Caveats, Limitations, and Additional Notes:
- The processor has a limited lifespan during which the pseudo-random functionality is optimal. It must have been upgraded sufficiently to execute crude motor skills, but not so far as to initiate higher pattern recognition skills such as character recognition, color matching, etc. that may taint the randomness of the result (i.e. an upgraded processor may inherently group characters of the same color).
- Most foam character sets have limited unique character values, such as the standard English alphabet or Arabic digits (0-9). Many times these characters sets only contain a single entry per character, eliminating the possibility of repeat characters in the final sequence and reducing the overall entropy of the result. Introducing additional character sets may increase entropy but may overwhelm the processor.
- Some foam character sets come with additional non-standard glyphs, often in the shape of iconic characters from animated television series. Before initiating the pseudo-random generation process, map standard characters, digits, symbols for the non-standard glyphs (Spongebob = asterisk, Patrick = pound hash, etc.).
- Sequence generation by this process is inherently slow and is likely not practical for everyday use. However, it does make for an entertaining thought exercise and will likely prove entertaining to owner/operators of the processor.