Browse > Article
http://dx.doi.org/10.13089/JKIISC.2018.28.1.25

High-Speed Implementation and Efficient Memory Usage of Min-Entropy Estimation Algorithms in NIST SP 800-90B  

Kim, Wontae (Dept. of Financial Information Security, Kookmin Univ.)
Yeom, Yongjin (Dept. of Financial Information Security, Kookmin Univ.)
Kang, Ju-Sung (Dept. of Financial Information Security, Kookmin Univ.)
Abstract
NIST(National Institute of Standards and Technology) has recently published SP 800-90B second draft which is the document for evaluating security of entropy source, a key element of a cryptographic random number generator(RNG), and provided a tool implemented on Python code. In SP 800-90B, the security evaluation of the entropy sources is a process of estimating min-entropy by several estimators. The process of estimating min-entropy is divided into IID track and non-IID track. In IID track, the entropy sources are estimated only from MCV estimator. In non-IID Track, the entropy sources are estimated from 10 estimators including MCV estimator. The running time of the NIST's tool in non-IID track is approximately 20 minutes and the memory usage is over 5.5 GB. For evaluation agencies that have to perform repeatedly evaluations on various samples, and developers or researchers who have to perform experiments in various environments, it may be inconvenient to estimate entropy using the tool and depending on the environment, it may be impossible to execute. In this paper, we propose high-speed implementations and an efficient memory usage technique for min-entropy estimation algorithm of SP 800-90B. Our major achievements are the three improved speed and efficient memory usage reduction methods which are the method applying advantages of C++ code for improving speed of MultiMCW estimator, the method effectively reducing the memory and improving speed of MultiMMC by rebuilding the data storage structure, and the method improving the speed of LZ78Y by rebuilding the data structure. The tool applied our proposed methods is 14 times faster and saves 13 times more memory usage than NIST's tool.
Keywords
SP 800-90B; Min-Entropy estimation; High-Speed implementation; Memory reduction; Entropy source;
Citations & Related Records
연도 인용수 순위
  • Reference
1 E. Barker and J. Kelsey, "Recommendation for Random Bit Generator (RBG) Constructions", (Second Draft) NIST SP 800-90C, Apr. 2016.
2 E. Barker and J. Kelsey, "Recommendation for Random Number Generation Using Deterministic Random Bit Generators", NIST SP 800-90A Revision 1, Jun. 2015.
3 M.S. Turan, E. Barker, J. Kelsey, K.A. McKay, M.L. Baish, and M.Boyle, "Recommendation for the Entropy Sources Used for Random Bit Generation", (Second Draft) NIST SP 800-90B, Jan. 2016.
4 NIST, SP 800-90B_EntropyAssessment, https://github.com/usnistgov/SP800-90B_Entropy Assessment, accessed Dec. 2017.
5 H.C. Shin, S.J. Woo and D.J, Choi, Python3.2 programming, 3rd Ed., Wikibook, Jun. 2015.
6 J. Kelsey, K.A. McKay, and M.S. Turan, "Predictive Models for Min-Entropy Estimation" International Workshop on Cryptographic Hardware and Embedded Systems - CHES 2015, pp. 373-392, Sep. 2015.
7 issues #31 : noniid_main.py Memory leak?, https://github.com/usnistgov/SP800-90B_EntropyAssessment/issues/31, accessed Dec. 2017.
8 A speed comparison test of C, Julia, Python, Numba, and Cython LUFactorization, https://www.ibm.com/developerworks/community/blogs/jfp/entry/A_Comparison_Of_C_Julia_Python_Numba_Cython_Scipy_and_BLAS_on_LU_Factorization?lang=en, accessed Dec. 2017.
9 E. Barker and J. Kelsey, "Recommendation for the Entropy Sources Used for Random Bit Generation", (First Draft) NIST SP 800-90B, Aug. 2012.
10 PerformancePython that is an article of scipy.org, http://scipy.github.io/old-wiki/pages/PerformancePython, accessed Dec. 2017.
11 Information of TrueRNG2, http://ubld.it/products/truerng-hardware-randomnumber-generator/, accessed Dec. 2017.
12 Cython homepage, http://cython.org/, accessed Dec. 2017.