You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
4.8 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual describes how to install and use the GNU multiple precision
arithmetic library, version 6.1.0.
Copyright 1991, 1993-2015 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.3 or any later
version published by the Free Software Foundation; with no Invariant Sections,
with the Front-Cover Texts being "A GNU Manual", and with the Back-Cover
Texts being "You have freedom to copy and modify this GNU Manual, like GNU
software". A copy of the license is included in
GNU Free Documentation License. -->
<!-- Created by GNU Texinfo 6.4, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Random State Seeding (GNU MP 6.1.0)</title>
<meta name="description" content="How to install and use the GNU multiple precision arithmetic library, version 6.1.0.">
<meta name="keywords" content="Random State Seeding (GNU MP 6.1.0)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="Random-Number-Functions.html#Random-Number-Functions" rel="up" title="Random Number Functions">
<link href="Random-State-Miscellaneous.html#Random-State-Miscellaneous" rel="next" title="Random State Miscellaneous">
<link href="Random-State-Initialization.html#Random-State-Initialization" rel="prev" title="Random State Initialization">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<a name="Random-State-Seeding"></a>
<div class="header">
<p>
Next: <a href="Random-State-Miscellaneous.html#Random-State-Miscellaneous" accesskey="n" rel="next">Random State Miscellaneous</a>, Previous: <a href="Random-State-Initialization.html#Random-State-Initialization" accesskey="p" rel="prev">Random State Initialization</a>, Up: <a href="Random-Number-Functions.html#Random-Number-Functions" accesskey="u" rel="up">Random Number Functions</a> &nbsp; [<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Random-State-Seeding-1"></a>
<h3 class="section">9.2 Random State Seeding</h3>
<a name="index-Random-number-seeding"></a>
<a name="index-Seeding-random-numbers"></a>
<dl>
<dt><a name="index-gmp_005frandseed"></a>Function: <em>void</em> <strong>gmp_randseed</strong> <em>(gmp_randstate_t <var>state</var>, const mpz_t <var>seed</var>)</em></dt>
<dt><a name="index-gmp_005frandseed_005fui"></a>Function: <em>void</em> <strong>gmp_randseed_ui</strong> <em>(gmp_randstate_t <var>state</var>, unsigned&nbsp;long&nbsp;int&nbsp;<var>seed</var><!-- /@w -->)</em></dt>
<dd><p>Set an initial seed value into <var>state</var>.
</p>
<p>The size of a seed determines how many different sequences of random numbers
that it&rsquo;s possible to generate. The &ldquo;quality&rdquo; of the seed is the randomness
of a given seed compared to the previous seed used, and this affects the
randomness of separate number sequences. The method for choosing a seed is
critical if the generated numbers are to be used for important applications,
such as generating cryptographic keys.
</p>
<p>Traditionally the system time has been used to seed, but care needs to be
taken with this. If an application seeds often and the resolution of the
system clock is low, then the same sequence of numbers might be repeated.
Also, the system time is quite easy to guess, so if unpredictability is
required then it should definitely not be the only source for the seed value.
On some systems there&rsquo;s a special device <samp>/dev/random</samp> which provides
random data better suited for use as a seed.
</p></dd></dl>
</body>
</html>