The Leopard L15 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 (updated 7th Dec 2011 to include optional output indirection for added security):
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.
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 Security of L15 depends on pseudo-random indirection; Swap (state [ x ], ...).
L15 Algorithm Summary
L14/L15 Security Analysis
One Way State Functions (theoretical)
Copyright © 2006-2011 Robin Carey. All rights reserved.