blob: 7e9ab600417fbe88b3f30a3941a72cde0e739bd1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
---
title: Random Number Generator (乱数発生器)
slug: Glossary/RNG
tags:
- CodingScripting
- Glossary
translation_of: Glossary/RNG
---
<p><strong>PRNG</strong> (擬似乱数発生器) は、複雑で、予測できないように見えるパターンの数字を出力するためのアルゴリズムです。真の乱数 (放射性線源など) はまったく予測できないのに対し、すべてのアルゴリズムは予測可能なので、 PRNG は、開始パラメーターや<em>シード</em>が同じときには同じ数値を返します。</p>
<p>疑似乱数はゲームなど、様々な応用分野で使用されています。</p>
<p>暗号学的に安全な擬似乱数とは、暗号での使用に合うよう追加のプロパティを伴う擬似乱数であり、次のようなものがあります。</p>
<ul>
<li>(シードを知らずに) 攻撃者が計算によって出力を予測することができないもの</li>
<li>攻撃者がその現在の状態を解くことができた場合、攻撃者が以前に発行された数を解明することができないもの。</li>
</ul>
<p>多くの疑似乱数、は暗号学的に安全ではありません。</p>
<h2 id="Learn_more" name="Learn_more">関連情報</h2>
<h3 id="一般知識">一般知識</h3>
<ul>
<li>Wikipedia の{{Interwiki("wikipedia", "Pseudorandom number generator")}}</li>
<li>JavaScript の組み込み PRNG 関数である {{jsxref("Math.random()")}}。これは暗号学的に安全な PRNG ではありません。</li>
<li>{{domxref("Crypto.getRandomValues()")}}: 暗号学的に安全な数値を提供するためのものです。</li>
</ul>
<section class="Quick_links" id="Quick_Links">
<ul>
<li>{{domxref("RandomSource")}}</li>
<li>{{jsxref("Math.random()")}}</li>
<li>{{domxref("Crypto.getRandomValues()")}}</li>
</ul>
</section>
|