- @ThothChildren
- 2018.5.20
- PV 285
ハードウェアによる真の乱数が欲しい
ー 概要 ー
ハードウェア乱数生成器を用いて真の乱数を得る方法についてまとめます.ソフトウェア的に生成される乱数よりもさらに不規則性を得られますが、ハードウェアから直接得られた乱雑性には偏りがあるためその偏りを取り除いて一様にする必要があります.真の乱数生成をTRNG(True Random Number Generation)と呼びます.
この章を学ぶ前に必要な知識
条件
- ハードウェア乱数生成器が必要
効果
- 真の乱数を得る
ポイント
- ハードウェアで物理現象を利用して乱数を生成します
- 物理現象を使用した乱数は0か1に落とす時などに偏りがちなため、一様にする処理が必要
- IntelやAMDにもオンチップのハードウェア乱数生成器がありRDRAND命令で取得可能
- 通常擬似乱数より生成が遅いのが欠点
- ダイオードの熱音源ノイズがよく使用されます
- 量子や光子を使用したデバイスもあります.
解 説
擬似乱数ではやはりどこまでいっても周期性をなくしたり完全な不規則性を得ることができません.そのため真の乱数を生成する方法としてハードウェア乱数生成器が用いられることがあります.これをTRNG(True Random Number Generator)と言います. | ハードウェアによる真の乱数 |
ハードウェア乱数生成器の特徴として以下のようなものが挙げられます.
・ハードウェア乱数生成器は通常擬似乱数の生成よりも時間がかかります.
・ハードウェア乱数生成器が直接得たノイズからの乱数では一様ではないため、それを一様化するソフトウェアの処理等が行われます.
・ハードウェア乱数生成器はダイオードや抵抗などで発生する熱雑音を使用した物理現象による乱雑性を利用しています.
ソフトウェアにおいても時間間隔や入力、デバイスのノイズ等から真の乱数二近い乱数生成を行うことができますが、これらはやはり外から調整可能なものがあり、それらの情報が抜かれることで予測可能になってしまう可能性をやはり孕んでいます.
一方でハードウェア乱数生成器によるものは、ソフトウェアよりは遅いですが、完全な真の乱数を得られます. | ハードウェア乱数生成器の特徴 |
IntelやAMDにおいてもハードウェア乱数生成器がオンチップで用意されています.
IntelではRDRAND命令によって熱雑音を利用したハードウェアによる乱数を得ることができますが、この実際のランダム性があるかどうかについては内部の仕組みが公開されていないため判断できません.そのためLinux等ではソフトによる/dev/random等が今でも使用されることがあります.
近年は、熱音源でなく量子や光子を使用したものが発表されており、高速なハードウェア量子生成器も作成され発売されています. | 実際に使用可能なハードウェア乱数生成器 |
この章を学んで新たに学べる
Comments