crypt-isaac 1.2.0 has been released!
ISAAC is a cryptographically secure PRNG for generating high quality random
numbers. Detailed information about the algorithm can be found at:
This library combines a pure Ruby implementation with a C implementation
bound as an extension. The C extension implementation currently runs about
10x faster than the pure ruby implementation on MRI. Requiring
'crypt/isaac' will use the C extension version if it was successfully
built, and fall back to the pure Ruby version if the C extension is
unavailable. One may specifically choose the C extension version by
requiring 'crypt/isaac/ext' or the pure ruby version by requiring
ISAAC is fast. This implementation is currently comparable to Random's
performance for both floats and for integers. ISAAC has strong statistical
properties, like the Mersenne Twister, but it is also cryptographically
strong, and different generators produce completely unique streams of
numbers, even if seeded with similar seeds (though the seed size is
substantial, so good seeding should make it difficult for two generators to
be similarly seeded).
The API is an extended version of the Ruby 2.x Random API, and one should
be able to use a Crypt::ISAAC instance any place that one uses a Random
Unlike Ruby's Random objects, however, individual generators may be
reseeded at any time by invoking #srand on them.
* Made the pure Ruby and the C extensions more tightly match the behavior
of Random with regard to the treatment of class methods, and the existence
of a default generator stored in the DEFAULT constant. So
Crypt::ISAAC::DEFAULT exists, now.
* Cleaned up the C extension code somewhat.
* Fixed some issues with the Rakefile.
* Made the tests more complete; restructured tests so that it will test
both the C extension implementation and the pure Ruby implementation on the
same set of tests.