|
NAMEMath::Prime::Util::ChaCha - Pure Perl ChaCha20 CSPRNGVERSIONVersion 0.73SYNOPSISDESCRIPTIONA pure Perl implementation of ChaCha20 with a CSPRNG interface.FUNCTIONScsrandTakes a binary string as input and seeds the internal CSPRNG.srandA method for sieving the CSPRNG with a small value. This will not be secure but can be useful for simulations and emulating the system "srand".With no argument, chooses a random number, seeds and returns the number. With a single integer argument, seeds and returns the number. irandReturns a random 32-bit integer.irand64Returns a random 64-bit integer.random_bytesTakes an unsigned number "n" as input and returns that many random bytes as a single binary string.AUTHORSDana Jacobsen <dana@acm.org>ACKNOWLEDGEMENTSDaniel J. Bernstein wrote the ChaCha family of stream ciphers in 2008 as an update to the popular Salsa20 cipher from 2005.RFC7539: "ChaCha20 and Poly1305 for IETF Protocols" was used to create both the C and Perl implementations. Test vectors from that document are used here as well. For final optimizations I got ideas from Christopher Madsen's Crypt::Salsa20 for how to best work around some of Perl's aggressive dynamic typing. Our core is still about 20% slower than Salsa20. COPYRIGHTCopyright 2017 by Dana Jacobsen <dana@acm.org>This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Visit the GSP FreeBSD Man Page Interface. |