--- 1/draft-ietf-tsvwg-tinymt32-04.txt 2019-06-17 13:13:21.031291108 -0700 +++ 2/draft-ietf-tsvwg-tinymt32-05.txt 2019-06-17 13:13:21.059291815 -0700 @@ -1,21 +1,21 @@ TSVWG M. Saito Internet-Draft M. Matsumoto Intended status: Standards Track Hiroshima University -Expires: December 14, 2019 V. Roca (Ed.) +Expires: December 19, 2019 V. Roca (Ed.) E. Baccelli INRIA - June 12, 2019 + June 17, 2019 TinyMT32 Pseudo Random Number Generator (PRNG) - draft-ietf-tsvwg-tinymt32-04 + draft-ietf-tsvwg-tinymt32-05 Abstract This document describes the TinyMT32 Pseudo Random Number Generator (PRNG) that produces 32-bit pseudo-random unsigned integers and aims at having a simple-to-use and deterministic solution. This PRNG is a small-sized variant of Mersenne Twister (MT) PRNG. The main advantage of TinyMT32 over MT is the use of a small internal state, compatible with most target platforms that include embedded devices, while keeping a reasonably good randomness that represents a @@ -31,21 +31,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on December 14, 2019. + This Internet-Draft will expire on December 19, 2019. Copyright Notice Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -60,21 +60,21 @@ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. TinyMT32 PRNG Specification . . . . . . . . . . . . . . . . . 3 3.1. TinyMT32 Source Code . . . . . . . . . . . . . . . . . . 3 3.2. TinyMT32 Usage . . . . . . . . . . . . . . . . . . . . . 7 3.3. Specific Implementation Validation and Deterministic Behavior . . . . . . . . . . . . . . . . . . . . . . . . 8 4. Security Considerations . . . . . . . . . . . . . . . . . . . 9 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 - 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 + 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 7.1. Normative References . . . . . . . . . . . . . . . . . . 10 7.2. Informative References . . . . . . . . . . . . . . . . . 10 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 1. Introduction This document specifies the TinyMT32 PRNG, as a specialization of the reference implementation version 1.1 (2015/04/24) by Mutsuo Saito and Makoto Matsumoto, from Hiroshima University, that can be found at [TinyMT-web] (TinyMT web site) and [TinyMT-dev] (Github site). This @@ -134,24 +134,23 @@ o mat1 = 0x8f7011ee = 2406486510 o mat2 = 0xfc78ff1f = 4235788063 o tmat = 0x3793fdff = 932445695 This parameter set is the first entry of the precalculated parameter sets in file tinymt32dc/tinymt32dc.0.1048576.txt, by Kenji Rikitake, and available at [TinyMT-params]. This is also the parameter set used in [KR12]. The TinyMT32 PRNG reference implementation is reproduced in Figure 1. - This is a C language implementation, compatible with the C99 (ISO/IEC - 9899:1999), C11 (ISO/IEC 9899:2011) and C18 (ISO/IEC 9899:2018) - versions of the C language. This reference implementation differs - from the original source code as follows: + This is a C language implementation, written for C99 [C99]. This + reference implementation differs from the original source code as + follows: o the original copyright and license have been removed by the original authors who are now authors of this document, in accordance with BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info); o the source code initially spread over the tinymt32.h and tinymt32.c files has been merged; o the unused parts of the original source code have been removed. This is the case of the tinymt32_init_by_array() alternative initialisation function. This is also the case of the @@ -447,20 +446,24 @@ ADAPTIVE/>. [Baccelli18] Baccelli, E., Gundogan, C., Hahm, O., Kietzmann, P., Lenders, M., Petersen, H., Schleiser, K., Schmidt, T., and M. Wahlisch, "RIOT: An Open Source Operating System for Low-End Embedded Devices in the IoT", IEEE Internet of Things Journal (Volume 5, Issue 6), DOI: 10.1109/JIOT.2018.2815038, December 2018. + [C99] "Programming languages - C: C99, correction 3:2007", + International Organization for Standardization, ISO/IEC + 9899:1999/Cor 3:2007, November 2007. + [KR12] Rikitake, K., "TinyMT Pseudo Random Number Generator for Erlang", ACM 11th SIGPLAN Erlang Workshop (Erlang'12), September 14, 2012, Copenhagen, Denmark, DOI: http://dx.doi.org/10.1145/2364489.2364504, September 2012. [MT98] Matsumoto, M. and T. Nishimura, "Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator", ACM Transactions on Modeling and Computer Simulation (TOMACS), Volume 8 Issue 1, Jan. 1998, pp.3-30, January 1998, DOI:10.1145/272991.272995, January