CryptRndTest: An R Package for Testing the Cryptographic Randomness

In this article, we introduce the R package CryptRndTest that performs eight statistical randomness tests on cryptographic random number sequences. The purpose of the package is to provide software implementing recently proposed cryptographic randomness tests utilizing goodness of-fit tests superior to the usual chi-square test in terms of statistical performance. Most of the tests included in package CryptRndTest are not available in other software packages such as the R package RDieHarder or the C library TestU01. Chi-square, Anderson-Darling, Kolmogorov-Smirnov, and Jarque-Bera goodness-of-fit procedures are provided along with cryptographic randomness tests. CryptRndTest utilizes multiple precision floating numbers for sequences longer than 64-bit based on the package Rmpfr. By this way, included tests are applied precisely for higher bit-lengths. In addition CryptRndTest provides a user friendly interface to these cryptographic randomness tests. As an illustrative application, CryptRndTest is used to test available random number generators in R.

Haydar Demirhan , Nihan Bitirim

CRAN packages used

RDieHarder, randtests, DescTools, CryptRndTest, Rmpfr, kSamples, tseries, copula, gmp

CRAN Task Views implied by cited packages

Distributions, Finance, NumericalMathematics, Econometrics, Environmetrics, ExtremeValue, Multivariate, TimeSeries


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".


For attribution, please cite this work as

Demirhan & Bitirim, "The R Journal: CryptRndTest: An R Package for Testing the Cryptographic Randomness", The R Journal, 2016

BibTeX citation

  author = {Demirhan, Haydar and Bitirim, Nihan},
  title = {The R Journal: CryptRndTest: An R Package for Testing the Cryptographic Randomness},
  journal = {The R Journal},
  year = {2016},
  note = {},
  doi = {10.32614/RJ-2016-016},
  volume = {8},
  issue = {1},
  issn = {2073-4859},
  pages = {233-247}