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:
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, 2009, 2010 Robin Carey. All rights reserved.