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.