The Leopard CSPRNG (Cryptographically Secure Pseudo Random Number Generator) was developed to rectify the shortcomings of the well known ARC4 algorithm (on which it is based). It is a simple and fast algorithm which can be easily implemented in software and/or hardware.
Leopard/L15
passes
the DIEHARD randomness test-suite.
L15 is used as the generator for the
/dev/urandom
pseudo-device in the
DragonFlyBSD
operating system.
Leopard appears to fulfill the criteria required of a digital-fingerprint algorithm. If the reader has been following recent developments in the digital-fingerprint history of cryptography, they will know that security issues have been discovered in some contemporary algorithms, rendering them useless.
The L15 algorithm:
L15.h (The L15 Algorithm; C++ header)
Note: The above source-code requires that the "unsigned char" type is exactly eight bits in size and that increment/decrement operations wrap (the FreeBSD operating system fulfills this requirement on every architecture).
L15P.h (Portable L15 Algorithm; C++ header)
Note: The above source-code is portable and allows the size of the internal-state to be altered from the default size of 256.
Note: The above source-code/L15-algorithm should really be altered so that y is initialised to be (stateSize-1) instead of 0. However, I have decided not to make this alteration (it's not vitally important, just technically correct) since it would involve incrementing to L16.
L15 Algorithm Summary
L14/L15 Security Analysis
One Way State Functions (theoretical)
Financial donations from gratified users would help to
maintain this website as a free service for others.
Thank you.
Copyright © 2006 Robin Carey