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

How Much Position Information Do Convolutional Neural Networks Encode?
How Much Position Information Do Convolutional Neural Networks Encode?How Much Position Information Do Convolutional Neural Networks Encode?
How Much Position Information Do Convolutional Neural Networks Encode?Kazuyuki Miyazawa
 
物体検出の歴史まとめ(1) 20180417
物体検出の歴史まとめ(1) 20180417物体検出の歴史まとめ(1) 20180417
物体検出の歴史まとめ(1) 20180417Masakazu Shinoda
 
Ques12「AIのテスト~誤検知と検出漏れ~」
Ques12「AIのテスト~誤検知と検出漏れ~」Ques12「AIのテスト~誤検知と検出漏れ~」
Ques12「AIのテスト~誤検知と検出漏れ~」hirokazuoishi
 
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争Yosuke Shinya
 
[DL輪読会]An Iterative Framework for Self-supervised Deep Speaker Representatio...
[DL輪読会]An Iterative Framework for Self-supervised Deep  Speaker Representatio...[DL輪読会]An Iterative Framework for Self-supervised Deep  Speaker Representatio...
[DL輪読会]An Iterative Framework for Self-supervised Deep Speaker Representatio...Deep Learning JP
 
マハラノビス距離とユークリッド距離の違い
マハラノビス距離とユークリッド距離の違いマハラノビス距離とユークリッド距離の違い
マハラノビス距離とユークリッド距離の違いwada, kazumi
 
画像認識と深層学習
画像認識と深層学習画像認識と深層学習
画像認識と深層学習Yusuke Uchida
 
[DL輪読会]Ensemble Distribution Distillation
[DL輪読会]Ensemble Distribution Distillation[DL輪読会]Ensemble Distribution Distillation
[DL輪読会]Ensemble Distribution DistillationDeep Learning JP
 
深層学習によるHuman Pose Estimationの基礎
深層学習によるHuman Pose Estimationの基礎深層学習によるHuman Pose Estimationの基礎
深層学習によるHuman Pose Estimationの基礎Takumi Ohkuma
 
研究分野をサーベイする
研究分野をサーベイする研究分野をサーベイする
研究分野をサーベイするTakayuki Itoh
 
音源分離における音響モデリング(Acoustic modeling in audio source separation)
音源分離における音響モデリング(Acoustic modeling in audio source separation)音源分離における音響モデリング(Acoustic modeling in audio source separation)
音源分離における音響モデリング(Acoustic modeling in audio source separation)Daichi Kitamura
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -tmtm otm
 
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...joisino
 
高速な物体候補領域提案手法 (Fast Object Proposal Methods)
高速な物体候補領域提案手法 (Fast Object Proposal Methods)高速な物体候補領域提案手法 (Fast Object Proposal Methods)
高速な物体候補領域提案手法 (Fast Object Proposal Methods)Takao Yamanaka
 
【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language ModelsDeep Learning JP
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...Deep Learning JP
 
モデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留するモデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留するTakahiro Kubo
 
ちょっと使えるようになる信頼度成長曲線(移行済)
ちょっと使えるようになる信頼度成長曲線(移行済)ちょっと使えるようになる信頼度成長曲線(移行済)
ちょっと使えるようになる信頼度成長曲線(移行済)tomitomi3 tomitomi3
 
GANの簡単な理解から正しい理解まで
GANの簡単な理解から正しい理解までGANの簡単な理解から正しい理解まで
GANの簡単な理解から正しい理解までKazuma Komiya
 

What's hot (20)

How Much Position Information Do Convolutional Neural Networks Encode?
How Much Position Information Do Convolutional Neural Networks Encode?How Much Position Information Do Convolutional Neural Networks Encode?
How Much Position Information Do Convolutional Neural Networks Encode?
 
物体検出の歴史まとめ(1) 20180417
物体検出の歴史まとめ(1) 20180417物体検出の歴史まとめ(1) 20180417
物体検出の歴史まとめ(1) 20180417
 
Ques12「AIのテスト~誤検知と検出漏れ~」
Ques12「AIのテスト~誤検知と検出漏れ~」Ques12「AIのテスト~誤検知と検出漏れ~」
Ques12「AIのテスト~誤検知と検出漏れ~」
 
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争
 
[DL輪読会]An Iterative Framework for Self-supervised Deep Speaker Representatio...
[DL輪読会]An Iterative Framework for Self-supervised Deep  Speaker Representatio...[DL輪読会]An Iterative Framework for Self-supervised Deep  Speaker Representatio...
[DL輪読会]An Iterative Framework for Self-supervised Deep Speaker Representatio...
 
マハラノビス距離とユークリッド距離の違い
マハラノビス距離とユークリッド距離の違いマハラノビス距離とユークリッド距離の違い
マハラノビス距離とユークリッド距離の違い
 
画像認識と深層学習
画像認識と深層学習画像認識と深層学習
画像認識と深層学習
 
[DL輪読会]Ensemble Distribution Distillation
[DL輪読会]Ensemble Distribution Distillation[DL輪読会]Ensemble Distribution Distillation
[DL輪読会]Ensemble Distribution Distillation
 
深層学習によるHuman Pose Estimationの基礎
深層学習によるHuman Pose Estimationの基礎深層学習によるHuman Pose Estimationの基礎
深層学習によるHuman Pose Estimationの基礎
 
研究分野をサーベイする
研究分野をサーベイする研究分野をサーベイする
研究分野をサーベイする
 
音源分離における音響モデリング(Acoustic modeling in audio source separation)
音源分離における音響モデリング(Acoustic modeling in audio source separation)音源分離における音響モデリング(Acoustic modeling in audio source separation)
音源分離における音響モデリング(Acoustic modeling in audio source separation)
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
 
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
 
高速な物体候補領域提案手法 (Fast Object Proposal Methods)
高速な物体候補領域提案手法 (Fast Object Proposal Methods)高速な物体候補領域提案手法 (Fast Object Proposal Methods)
高速な物体候補領域提案手法 (Fast Object Proposal Methods)
 
深層強化学習と実装例
深層強化学習と実装例深層強化学習と実装例
深層強化学習と実装例
 
【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
 
モデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留するモデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留する
 
ちょっと使えるようになる信頼度成長曲線(移行済)
ちょっと使えるようになる信頼度成長曲線(移行済)ちょっと使えるようになる信頼度成長曲線(移行済)
ちょっと使えるようになる信頼度成長曲線(移行済)
 
GANの簡単な理解から正しい理解まで
GANの簡単な理解から正しい理解までGANの簡単な理解から正しい理解まで
GANの簡単な理解から正しい理解まで
 

Recently uploaded

KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
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...Call Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
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 EscortsCall Girls in Nagpur High Profile
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
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.pptxupamatechverse
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 

Recently uploaded (20)

KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
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...
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
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
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman 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
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
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
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 

乱数とは

  • 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(キャッシュしか存在せず)