Title: The Design and Implementation of a Cryptographically Strong Pseudo-Random Number Generator Objective: For ages, poor algorithms for generating "random" numbers have plagued programmers and created gaping holes in security systems. There are a very amount of reasonably good prng's out there, and only a select few may be called "Cryptographically Strong." My intent is to make an algorithm for producing cryptographically strong pseudo-random sequences and implementing it in a computer program. Justification: Cryptography is a field which requires perfectly unpredictable numbers. While this is not possible, using a deterministic computer, it is of high importance to have algorithms to approximate perfection. The best algorithms, however, are pathetically slow in practical applications, my own implementation of one of the best, Blum Blum Shub, takes about 1/10th of a second to generate each new bit. Obviously, faster algorithms are needed for real programs. Description: A CSPRNG needs to have certain special qualities, above those of a simple prng. Given a sequence of bits, a person should have no greater chance of predicting the next bit than 1/2, and must have a long period. Mine, in addition, must be fast (thus it cannot use multiplication, division, and therefore modulo operations) and cannot be based on hash functions except during the seeding stage. For all practical purposes, my design should be able to spit out values indistinguishable from true random data. Limitations: "To infinity, and beyond!"