SlideShare a Scribd company logo
1 of 26
Download to read offline
乱数
2021/11/07 田中
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
目次

• 乱数とは

• 乱数生成器

• 疑似乱数生成器

• 疑似乱数生成器の例

• 暗号論的疑似乱数生成器

• 暗号論的疑似乱数生成器の例

• 乱数にまつわるお話

乱数とは?
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
乱数とは

• ランダムな数(列)

• 乱数が持つ性質 (下に行くほど厳しい制約)

• 弱:無作為性 (独立な一様分布)
• 強:予測不可能性(過去の数列から未来が予測されない)
• 真:再現不可能性(丸暗記以外に再現できない)
引用元: 結城 浩. 『暗号技術入門第3版』. SBクリエイティブ株式会社
. 2015年, 第12章乱数
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
乱数とは

• 様々な用途で重要な役割を果たしている

• シミュレーション, サンプリング, 数学的分析, プログラムの検証, 意思決定, 暗号化,
アート, 娯楽...
我々人類は乱数なしには生きていけない
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
乱数生成器

• 真の乱数を生成するもの

• サイコロ・くじ引き: 人力で遅い, 物理的に偏りが生じやすい

• 乱数表:パターンが少ない, 膨大な量を記録しておくのは難しい





速さ・故障・安全性の観点でリスクがある

物理現象から自動的に乱数を生成したい

Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
乱数生成器

• Linuxカーネルの/dev/random

• マウス操作, キー操作, ネットワークトラフィックなどの環境ノイズを
エントロピープールとして貯めこみ, ハッシュ化して真の乱数を作り出す
疑似デバイス
• ハードウェア乱数生成器

• 電気回路の熱雑音や放射性物質の崩壊と言った
物理的に存在するデタラメさを計測して乱数を発生するハードウェア
• IntelCPUの中にも組み込まれており, RdRand命令で呼び出し可能
まだ低速 → 多くの乱数を高速に供給し続けられない

引用元: https://ocw.u-tokyo.ac.jp/lecture_files/gf_23/12/notes/ja/12_matsumoto.pdf
💻計算機で演算によって

乱数を作りたい
計算機は決定論的なので必
ず同じ数列を出力

= 真の乱数は作れない
じゃあ疑似乱数

(乱数っぽい数)

を作ろう
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
• シード(初期値x_0)と漸化式(x_{n+1} = f(x_n))によって計算

• 高速に生成可能
• 必ず繰り返し(周期)が発生する
• シードのみ外部で決める必要がある

• 手入力
• 真の乱数生成器
• できるだけ長い周期の数列を作りたい

• 核シミュレーションでは何兆個もの
乱数が必要
疑似乱数生成器

引用元: 結城 浩(2015)『暗号技術入門第3版』SBクリエイティブ株式会社
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
• 平方採中法(von Neumann, 1940)

• 前の値を2乗して中央の値を取り出し,
次の値にする方法
• 周期は4桁で大体100前後
• 分布や周期があまりよくないため

現在は使われない

疑似乱数生成器の例

• 例. シード=2021, 10進数4桁

• 0 : 2021^2 = 04084441 -> 0844
• 1 : 0844^2 = 00712336 -> 7123
• 2 : 7123^2 = 50737129 -> 7371
• …
• 18 : 2900^2 = 08410000 -> 4100
• 19 : 4100^2 = 16810000 -> 8100
• 20 : 8100^2 = 65610000 -> 6100
• 21 : 6100^2 = 37210000 -> 2100
• 22 : 2100^2 = 04410000 -> 4100
• 23 : 4100^2 = 16810000 -> 8100
• …
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
• 線形合同法(Lehmer, 1960)

• 周期はM以下
• C言語のrand(), Excel 2010以
前のRAND() の内部実装

• 周期がやや短い

• 現実的にはM=2^32程度
• Mを増やすと生成が遅くなる
• Mを偶数にすると必ず奇数と
偶数が交互に出る

疑似乱数生成器の例

• 例. x_0(シード) = 2021, a = 123, c = 4567, M = 8910 

1 : 2021 × 123 + 4567 = 253150 (mod 8910) -> 3670 

2 : 3670 × 123 + 4567 = 455977 (mod 8910) -> 1567 

3 : 1567 × 123 + 4567 = 197308 (mod 8910) -> 1288 

4 : 1288 × 123 + 4567 = 162991 (mod 8910) -> 2611

5 : 2611 × 123 + 4567 = 325720 (mod 8910) -> 4960 

…

23 : 5527 × 123 + 4567 = 684388 (mod 8910) -> 7228 

24 : 7228 × 123 + 4567 = 893611 (mod 8910) -> 2611

25 : 2611 × 123 + 4567 = 325720 (mod 8910) -> 4960 

Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
疑似乱数生成器の例

• 非常に長周期で高い無作為性を持つ疑似乱数生成器が台頭

• キャリー付き乗算(Marsaglia, 1991)

• 周期は2^260〜2000000
• メルセンヌ・ツイスタ(松本-西村, 1998)

• 周期は2^19937 − 1
• 出力列は623次元空間内で均等分布(高い無作為性)
無作為性は󰢏

予測可能性は?

疑似乱数生成器は

過去の数列から

多項式時間で出力を

予測可能
つまり

予測不可能性を持たない

弱い疑似乱数
予測不可能性をもつ

強い疑似乱数を

作るには?
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
• 以下の2条件を満たす疑似乱数生成器*

• next-bit testに合格する
• 一部の数列をみても次の値を予測できる方法が存在しない
• state compromise extensionsに耐える
• 内部状態の一部または全部が明らかになっても
以前に生成された乱数列は推測できない
• 入力エントロピーに関する知識があっても出力を予測できない
→ 一方向ハッシュ関数や暗号化の一方向性を仮定して実用

暗号論的疑似乱数生成器

* 厳密な定義を探したが
, 最古の“state compromise extensions”は以下のサイトしか見つからなかった
. 現在はcaacheしか残っていない.
http://webcache.googleusercontent.com/search?q=cache:cGB5bhO-2RAJ:www.unf.edu/~wkloster/crypto/CryptographyNetSecurity-2004.ppt+&cd=1&hl=ja&ct=clnk&gl=jp
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.






暗号論的疑似乱数生成器の例

引用元: 結城 浩(2015)『暗号技術入門第3版』SBクリエイティブ株式会社
一方向ハッシュ関数を使った疑似乱数生成器 暗号を使った疑似乱数生成器
引用元: 結城 浩(2015)『暗号技術入門第3版』SBクリエイティブ株式会社
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
乱数にまつわるお話

• ポケモンの乱数調整



• Xbox360向けゲーム「カルドセプトサーガ」の悲劇



• League of Entropy:分散型ランダムビーコン



Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
• 第五世代(BW)では疑似乱数生成器にMT(メルセンヌ・ツイスタ)を使ってい
る

• 初期シードをDSのMACアドレスと本体時刻, 経過時間などの内部値から決定
• DSの時刻を調整し, 既知の情報から乱数を再現可能

• 望みの個体値を持つモンスターの出現を制御できる
※第五世代に限らずほとんどの世代で乱数調整が可能

ポケモンの乱数調整

Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
• Xbox360向けゲーム「カルドセプトサーガ」に

次のダイス目が偶数か奇数か推測できるという致命的バグが発覚

→ 炎上して店頭在庫回収へ

• ダイスの乱数に線形合同法を使用

• 下位ビットが0, 1の繰り返しになる

パラメータを踏み抜いてしまう

Xbox360向けゲーム「カルドセプトサーガ」の悲劇

引用元: https://www.famitsu.com/game/news/2006/12/14/103,1166086939,64495,0,0.html
(c)2006 OmiyaSoft(JAMSWORKS) (c)2006 NBGI ※"Culdcept","カルドセプト"は有限会社大宮ソフトの登録商標です。
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
• drandと呼ばれるRandomness-as-a-Serviceを実現するためのコンソーシアム

• LavaRand(Cloudflare):

• 本社にあるラバライトの壁の映像をseedにしたCSPRNG
• UChile(チリ大学)

• 地震, ラジオ, Twitter, Ethereumブロックチェーン,
独自RNGカードからランダムネスを抽出
• InterplanetaryGirl(ProtocolLabs)

• RdRand(環境ノイズおよびLinux PRNG+CPUソースのランダムネス)
• ChaChaRand(Kudelski Security)

• ChaCha20ストリーム暗号に基づく暗号論的疑似乱数生成器
• URand(EPFL)

• 沢山の/dev/urandom
League of Entropy:分散型ランダムビーコン

引用元: https://blog.cloudflare.com/ja-jp/league-of-entropy-ja-jp/, https://blog.cloudflare.com/lavarand-in-production-the-nitty-gritty-technical-details/
Strictly Confidential
Copyright©株式会社Acompany All rights reserved.
参考文献 (サイトの情報は2021/11/6時点のもの)

• 松本 眞(2014) 

あなたの使っている乱数、大丈夫? 松本 眞


• 松本 眞(2012) 

デタラメさの効用と、1+1=0の世界 松本 眞(東京大学数理科学研究科)


• 堀田敬介(2010) 

統計の分析と利用 Contents

• BPS株式会社(2019) 

乱数について本気出して考えてみる|TechRacho by BPS株式会社


• 佐竹真介, 菅野龍太郎(2020)

2.乱数発生の原理

• Cloudflare, Inc. 

Distributed Randomness Beacon


• 結城 浩(2015)

『暗号技術入門 第3版』SBクリエイティブ株式会社


• 荻伸一朗(2017) 

暗号技術入門12 乱数 | SpiriteK Blog

• Xiang-YangLi(2004)

http://webcache.googleusercontent.com/search?q=cache:cGB5bhO-2RAJ:www.unf.edu/~wkloster/crypto/CryptographyNet
Security-2004.ppt+&cd=1&hl=ja&ct=clnk&gl=jp(キャッシュしか存在せず)


More Related Content

What's hot

What's hot (20)

Vision and Language(メタサーベイ )
Vision and Language(メタサーベイ )Vision and Language(メタサーベイ )
Vision and Language(メタサーベイ )
 
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
 
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
 
【CVPR 2019】Do Better ImageNet Models Transfer Better?
【CVPR 2019】Do Better ImageNet Models Transfer Better?【CVPR 2019】Do Better ImageNet Models Transfer Better?
【CVPR 2019】Do Better ImageNet Models Transfer Better?
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
 
オープンワールド認識 (第34回全脳アーキテクチャ若手の会 勉強会)
オープンワールド認識 (第34回全脳アーキテクチャ若手の会 勉強会)オープンワールド認識 (第34回全脳アーキテクチャ若手の会 勉強会)
オープンワールド認識 (第34回全脳アーキテクチャ若手の会 勉強会)
 
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
【DL輪読会】Segment Anything
【DL輪読会】Segment Anything【DL輪読会】Segment Anything
【DL輪読会】Segment Anything
 
ウェーブレットと多重解像度処理
ウェーブレットと多重解像度処理ウェーブレットと多重解像度処理
ウェーブレットと多重解像度処理
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...
 
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
[DL輪読会]NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[DL輪読会]NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis[DL輪読会]NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[DL輪読会]NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
 

Recently uploaded

result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
Tonystark477637
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
rknatarajan
 

Recently uploaded (20)

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 

乱数とは

  • 2. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 目次
 • 乱数とは
 • 乱数生成器
 • 疑似乱数生成器
 • 疑似乱数生成器の例
 • 暗号論的疑似乱数生成器
 • 暗号論的疑似乱数生成器の例
 • 乱数にまつわるお話

  • 4. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 乱数とは
 • ランダムな数(列)
 • 乱数が持つ性質 (下に行くほど厳しい制約)
 • 弱:無作為性 (独立な一様分布) • 強:予測不可能性(過去の数列から未来が予測されない) • 真:再現不可能性(丸暗記以外に再現できない) 引用元: 結城 浩. 『暗号技術入門第3版』. SBクリエイティブ株式会社 . 2015年, 第12章乱数
  • 5. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 乱数とは
 • 様々な用途で重要な役割を果たしている
 • シミュレーション, サンプリング, 数学的分析, プログラムの検証, 意思決定, 暗号化, アート, 娯楽... 我々人類は乱数なしには生きていけない
  • 6. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 乱数生成器
 • 真の乱数を生成するもの
 • サイコロ・くじ引き: 人力で遅い, 物理的に偏りが生じやすい
 • 乱数表:パターンが少ない, 膨大な量を記録しておくのは難しい
 
 
 速さ・故障・安全性の観点でリスクがある
 物理現象から自動的に乱数を生成したい

  • 7. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 乱数生成器
 • Linuxカーネルの/dev/random
 • マウス操作, キー操作, ネットワークトラフィックなどの環境ノイズを エントロピープールとして貯めこみ, ハッシュ化して真の乱数を作り出す 疑似デバイス • ハードウェア乱数生成器
 • 電気回路の熱雑音や放射性物質の崩壊と言った 物理的に存在するデタラメさを計測して乱数を発生するハードウェア • IntelCPUの中にも組み込まれており, RdRand命令で呼び出し可能 まだ低速 → 多くの乱数を高速に供給し続けられない
 引用元: https://ocw.u-tokyo.ac.jp/lecture_files/gf_23/12/notes/ja/12_matsumoto.pdf
  • 11. Strictly Confidential Copyright©株式会社Acompany All rights reserved. • シード(初期値x_0)と漸化式(x_{n+1} = f(x_n))によって計算
 • 高速に生成可能 • 必ず繰り返し(周期)が発生する • シードのみ外部で決める必要がある
 • 手入力 • 真の乱数生成器 • できるだけ長い周期の数列を作りたい
 • 核シミュレーションでは何兆個もの 乱数が必要 疑似乱数生成器
 引用元: 結城 浩(2015)『暗号技術入門第3版』SBクリエイティブ株式会社
  • 12. Strictly Confidential Copyright©株式会社Acompany All rights reserved. • 平方採中法(von Neumann, 1940)
 • 前の値を2乗して中央の値を取り出し, 次の値にする方法 • 周期は4桁で大体100前後 • 分布や周期があまりよくないため
 現在は使われない
 疑似乱数生成器の例
 • 例. シード=2021, 10進数4桁
 • 0 : 2021^2 = 04084441 -> 0844 • 1 : 0844^2 = 00712336 -> 7123 • 2 : 7123^2 = 50737129 -> 7371 • … • 18 : 2900^2 = 08410000 -> 4100 • 19 : 4100^2 = 16810000 -> 8100 • 20 : 8100^2 = 65610000 -> 6100 • 21 : 6100^2 = 37210000 -> 2100 • 22 : 2100^2 = 04410000 -> 4100 • 23 : 4100^2 = 16810000 -> 8100 • …
  • 13. Strictly Confidential Copyright©株式会社Acompany All rights reserved. • 線形合同法(Lehmer, 1960)
 • 周期はM以下 • C言語のrand(), Excel 2010以 前のRAND() の内部実装
 • 周期がやや短い
 • 現実的にはM=2^32程度 • Mを増やすと生成が遅くなる • Mを偶数にすると必ず奇数と 偶数が交互に出る
 疑似乱数生成器の例
 • 例. x_0(シード) = 2021, a = 123, c = 4567, M = 8910 
 1 : 2021 × 123 + 4567 = 253150 (mod 8910) -> 3670 
 2 : 3670 × 123 + 4567 = 455977 (mod 8910) -> 1567 
 3 : 1567 × 123 + 4567 = 197308 (mod 8910) -> 1288 
 4 : 1288 × 123 + 4567 = 162991 (mod 8910) -> 2611
 5 : 2611 × 123 + 4567 = 325720 (mod 8910) -> 4960 
 …
 23 : 5527 × 123 + 4567 = 684388 (mod 8910) -> 7228 
 24 : 7228 × 123 + 4567 = 893611 (mod 8910) -> 2611
 25 : 2611 × 123 + 4567 = 325720 (mod 8910) -> 4960 

  • 14. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 疑似乱数生成器の例
 • 非常に長周期で高い無作為性を持つ疑似乱数生成器が台頭
 • キャリー付き乗算(Marsaglia, 1991)
 • 周期は2^260〜2000000 • メルセンヌ・ツイスタ(松本-西村, 1998)
 • 周期は2^19937 − 1 • 出力列は623次元空間内で均等分布(高い無作為性)
  • 19. Strictly Confidential Copyright©株式会社Acompany All rights reserved. • 以下の2条件を満たす疑似乱数生成器*
 • next-bit testに合格する • 一部の数列をみても次の値を予測できる方法が存在しない • state compromise extensionsに耐える • 内部状態の一部または全部が明らかになっても 以前に生成された乱数列は推測できない • 入力エントロピーに関する知識があっても出力を予測できない → 一方向ハッシュ関数や暗号化の一方向性を仮定して実用
 暗号論的疑似乱数生成器
 * 厳密な定義を探したが , 最古の“state compromise extensions”は以下のサイトしか見つからなかった . 現在はcaacheしか残っていない. http://webcache.googleusercontent.com/search?q=cache:cGB5bhO-2RAJ:www.unf.edu/~wkloster/crypto/CryptographyNetSecurity-2004.ppt+&cd=1&hl=ja&ct=clnk&gl=jp
  • 20. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 
 
 
 暗号論的疑似乱数生成器の例
 引用元: 結城 浩(2015)『暗号技術入門第3版』SBクリエイティブ株式会社 一方向ハッシュ関数を使った疑似乱数生成器 暗号を使った疑似乱数生成器
  • 22. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 乱数にまつわるお話
 • ポケモンの乱数調整
 
 • Xbox360向けゲーム「カルドセプトサーガ」の悲劇
 
 • League of Entropy:分散型ランダムビーコン
 

  • 23. Strictly Confidential Copyright©株式会社Acompany All rights reserved. • 第五世代(BW)では疑似乱数生成器にMT(メルセンヌ・ツイスタ)を使ってい る
 • 初期シードをDSのMACアドレスと本体時刻, 経過時間などの内部値から決定 • DSの時刻を調整し, 既知の情報から乱数を再現可能
 • 望みの個体値を持つモンスターの出現を制御できる ※第五世代に限らずほとんどの世代で乱数調整が可能
 ポケモンの乱数調整

  • 24. Strictly Confidential Copyright©株式会社Acompany All rights reserved. • Xbox360向けゲーム「カルドセプトサーガ」に
 次のダイス目が偶数か奇数か推測できるという致命的バグが発覚
 → 炎上して店頭在庫回収へ
 • ダイスの乱数に線形合同法を使用
 • 下位ビットが0, 1の繰り返しになる
 パラメータを踏み抜いてしまう
 Xbox360向けゲーム「カルドセプトサーガ」の悲劇
 引用元: https://www.famitsu.com/game/news/2006/12/14/103,1166086939,64495,0,0.html (c)2006 OmiyaSoft(JAMSWORKS) (c)2006 NBGI ※"Culdcept","カルドセプト"は有限会社大宮ソフトの登録商標です。
  • 25. Strictly Confidential Copyright©株式会社Acompany All rights reserved. • drandと呼ばれるRandomness-as-a-Serviceを実現するためのコンソーシアム
 • LavaRand(Cloudflare):
 • 本社にあるラバライトの壁の映像をseedにしたCSPRNG • UChile(チリ大学)
 • 地震, ラジオ, Twitter, Ethereumブロックチェーン, 独自RNGカードからランダムネスを抽出 • InterplanetaryGirl(ProtocolLabs)
 • RdRand(環境ノイズおよびLinux PRNG+CPUソースのランダムネス) • ChaChaRand(Kudelski Security)
 • ChaCha20ストリーム暗号に基づく暗号論的疑似乱数生成器 • URand(EPFL)
 • 沢山の/dev/urandom League of Entropy:分散型ランダムビーコン
 引用元: https://blog.cloudflare.com/ja-jp/league-of-entropy-ja-jp/, https://blog.cloudflare.com/lavarand-in-production-the-nitty-gritty-technical-details/
  • 26. Strictly Confidential Copyright©株式会社Acompany All rights reserved. 参考文献 (サイトの情報は2021/11/6時点のもの)
 • 松本 眞(2014) 
 あなたの使っている乱数、大丈夫? 松本 眞 
 • 松本 眞(2012) 
 デタラメさの効用と、1+1=0の世界 松本 眞(東京大学数理科学研究科) 
 • 堀田敬介(2010) 
 統計の分析と利用 Contents
 • BPS株式会社(2019) 
 乱数について本気出して考えてみる|TechRacho by BPS株式会社 
 • 佐竹真介, 菅野龍太郎(2020)
 2.乱数発生の原理
 • Cloudflare, Inc. 
 Distributed Randomness Beacon 
 • 結城 浩(2015)
 『暗号技術入門 第3版』SBクリエイティブ株式会社 
 • 荻伸一朗(2017) 
 暗号技術入門12 乱数 | SpiriteK Blog
 • Xiang-YangLi(2004)
 http://webcache.googleusercontent.com/search?q=cache:cGB5bhO-2RAJ:www.unf.edu/~wkloster/crypto/CryptographyNet Security-2004.ppt+&cd=1&hl=ja&ct=clnk&gl=jp(キャッシュしか存在せず)