title: Using GMP for Cryptography: how to get random numbers?
body: <p>The <a href="http://gmplib.org/manual/Random-State-Initialization.html#Random-State-Initialization" rel="nofollow">documentation for GMP</a> seems to list only the following algorithms for random number generation:</p>
  
  <ul>
  <li><code>gmp_randinit_mt</code>, the Mersenne Twister;</li>
  <li><code>gmp_randinit_lc_2exp</code> and <code>gmp_randinit_lc_2exp_size</code>, linear congruential.</li>
  </ul>
  
  <p>There is also <code>gmp_randinit_default</code>, but it points to <code>gmp_randinit_mt</code>.</p>
  
  <p>Neither the Mersenne Twister nor linear congruential generators should be used for Cryptography.
  What do people usually do, then, when they want to use the GMP to build some cryptographic code?</p>
  
  <p>(Using a cryptographic API for encrypting/decrypting/etc doesn't help, because I'd actually   implement a new algorithm, which crypto libraries do not have).</p>